/* ============================================================
   Kanaa — composants (DA « Fraîcheur Pop », molécule-first)
   ============================================================ */
:root{
  --green:#1C7A4E; --green-d:#15613E; --lime:#C2F25E; --coral:#FF6F5E;
  --cream:#FAF7EF; --cream-2:#F2ECDC; --ink:#15211B; --muted:#5C6B62;
  --radius:18px; --radius-s:12px; --maxw:1200px;
  --display:'Bricolage Grotesque',sans-serif; --body:'Plus Jakarta Sans',sans-serif; --mono:'Space Mono',monospace;
}
.kanaa{font-family:var(--body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}
/* Loupe header : bouton sans style natif */
.k-search-toggle{background:none;border:0;padding:0;cursor:pointer;color:var(--ink);display:flex;align-items:center}
.k-search-toggle svg{width:22px;height:22px}

/* Overlay de recherche */
.k-search-overlay{position:fixed;inset:0;z-index:1000;background:rgba(21,33,27,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;padding-top:14vh;opacity:0;transition:opacity .25s}
.k-search-overlay[hidden]{display:none}
.k-search-overlay.open{opacity:1}
.k-search-box{display:flex;gap:10px;align-items:center;width:min(680px,92vw);background:#fff;border-radius:16px;padding:10px 12px;box-shadow:0 24px 60px rgba(12,24,16,.3);transform:translateY(-10px);transition:transform .25s}
.k-search-overlay.open .k-search-box{transform:none}
.k-search-box svg{width:22px;height:22px;color:var(--muted);flex-shrink:0;margin-left:6px}
.k-search-box input{flex:1;border:0;outline:none;font-family:var(--body);font-size:17px;color:var(--ink);background:none;min-width:0}
.k-search-box .k-btn{flex-shrink:0}
.k-search-close{margin-top:18px;background:none;border:0;color:#fff;font-size:15px;cursor:pointer;opacity:.85}
.k-search-close:hover{opacity:1}

/* Page résultats */
.k-search-head{max-width:760px;margin:0 auto;padding:40px 0 8px;text-align:center}
.k-search-head h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.5vw,44px);margin:5px 0 0}
.k-search-refine{display:flex;gap:10px;max-width:560px;margin:22px auto 0}
.k-search-refine input{flex:1;border:2px solid var(--cream-2);border-radius:999px;padding:12px 18px;font-family:var(--body);font-size:15px}
.k-search-refine input:focus{outline:none;border-color:var(--green)}
.k-search-head .count{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:14px}
.k-search-results{max-width:760px;margin:24px auto 0;display:flex;flex-direction:column;gap:12px}
.k-result{display:block;background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:20px 22px;text-decoration:none;color:var(--ink);transition:.18s}
.k-result:hover{border-color:var(--green);transform:translateY(-2px)}
.k-result .type{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green)}
.k-result h3{font-family:var(--display);font-weight:800;font-size:19px;margin:5px 0 4px;line-height:1.2}
.k-result p{font-size:14px;color:var(--muted);margin:0}
.k-result .more{display:inline-block;margin-top:10px;font-weight:700;font-size:13px;color:var(--green)}
.k-search-empty{max-width:560px;margin:30px auto 0;text-align:center;color:var(--muted)}
.k-search-empty p{margin:0 0 8px}

/* Page 404 + recherche vide */
.k-404{text-align:center;padding:70px 0 90px}
.k-404 .leaf{display:block;width:64px;height:64px;color:var(--green);opacity:.9;margin:0 auto 14px}
.k-404 .k-eyebrow{display:block}
.k-404 h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,52px);margin:8px 0 0}
.k-404 p{color:var(--muted);font-size:18px;margin:14px auto 28px;max-width:460px}
.k-404-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.k-404-links{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-top:30px;font-size:14px}
.k-404-links a{color:var(--muted);text-decoration:none;font-weight:600}
.k-404-links a:hover{color:var(--green)}
/* Sticky footer : la zone principale s'étire pour coller le footer en bas (pas de fond crème résiduel sous le footer sur les pages courtes : panier vide, 404…) */
.wp-site-blocks{display:flex;flex-direction:column;min-height:100vh}
.wp-site-blocks > main{flex:1 0 auto;width:100%;min-width:0;box-sizing:border-box}
.k-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.kanaa h1,.kanaa h2,.kanaa h3{font-family:var(--display);letter-spacing:-.025em;line-height:1.05;font-weight:800}
.k-eyebrow{font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.13em;text-transform:uppercase;color:var(--green)}
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;padding:14px 28px;border-radius:999px;border:2px solid var(--green);cursor:pointer;transition:.18s;text-decoration:none;line-height:1}
.k-btn-primary{background:var(--green);color:#fff}.k-btn-primary:hover{background:var(--green-d);border-color:var(--green-d);color:#fff}
.k-btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.k-btn-ghost:hover{background:var(--ink);color:var(--cream)}
.k-btn-lime{background:var(--lime);border-color:var(--lime);color:var(--ink)}.k-btn-lime:hover{filter:brightness(.95);color:var(--ink)}
.mol-cbd{background:rgba(28,122,78,.12);color:var(--green);border:1px solid rgba(28,122,78,.25)}.mol-stv10{background:rgba(255,111,94,.15);color:#E2543F;border:1px solid rgba(255,111,94,.3)}.mol-thv2{background:rgba(194,242,94,.3);color:#4d6b14;border:1px solid rgba(194,242,94,.6)}.mol-cbdx{background:rgba(21,97,62,.12);color:#15613E;border:1px solid rgba(21,97,62,.3)}
.mol::before{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background:currentColor;margin-right:.45em;vertical-align:middle;position:relative;top:-1px}
.k-hero-mol{position:absolute;top:24px;right:24px;z-index:3;font-family:var(--display);font-weight:800;font-size:22px;line-height:1;padding:9px 17px;border-radius:13px;background:linear-gradient(135deg,#FF8170,#E2543F);color:#fff;box-shadow:0 7px 20px rgba(255,111,94,.5)}
.k-hero-mol::before{display:none}
.k-pc-ph .mol-stv10,.k-gallery .main .mol-stv10{background:linear-gradient(135deg,#FF8170,#E2543F);color:#fff;border:none;box-shadow:0 5px 16px rgba(255,111,94,.45)}.k-pc-ph .mol-thv2,.k-gallery .main .mol-thv2{background:linear-gradient(135deg,#C2F25E,#9ABE3A);color:#243309;border:none;box-shadow:0 5px 16px rgba(194,242,94,.45)}.k-pc-ph .mol-cbdx,.k-gallery .main .mol-cbdx{background:linear-gradient(135deg,#2A8C5E,#15613E);color:#fff;border:none;box-shadow:0 5px 16px rgba(21,97,62,.4)}
.k-pc-ph .mol-cbd,.k-gallery .main .mol-cbd{background:linear-gradient(135deg,#2A8C5E,#15613E);color:#fff;border:none;box-shadow:0 5px 16px rgba(28,122,78,.4)}
.k-pc-ph .mol::before,.k-gallery .main .mol::before{display:none}

/* ---- TOPBAR ---- */
/* Bandeau d'annonces : un message à la fois, rotation automatique */
/* Le bandeau d'offres suit le défilement avec l'en-tête : le client garde la
   promesse commerciale sous les yeux au lieu de la perdre au premier scroll.
   Les deux sont dans un même bloc collant — deux sticky empilés obligeraient à
   coder en dur la hauteur du bandeau dans le décalage de l'en-tête, et tout
   casserait dès qu'un message passe sur deux lignes. */
.k-top{position:sticky;top:0;z-index:50}
.k-topbar{background:var(--ink);color:var(--cream);font-family:var(--body);font-weight:600;font-size:16px}
.k-topbar .k-wrap{display:flex;align-items:center;justify-content:center;gap:18px;padding:9px 24px}
.k-tb-track{position:relative;flex:1;max-width:660px;height:26px;overflow:hidden}
/* Un seul message dans le flux : les autres sont en display:none, donc aucun
   chevauchement possible pendant la bascule. Seul l'entrant est animé. */
.k-tb-item{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.k-tb-item.is-on{display:flex;opacity:.95;animation:k-tb-in .45s cubic-bezier(.22,.61,.36,1) both}
.k-tb-item.is-out{display:flex;opacity:0;animation:k-tb-out .34s cubic-bezier(.4,0,.7,1) both}
@keyframes k-tb-in{from{opacity:0;transform:translateY(22%)}to{opacity:.95;transform:none}}
@keyframes k-tb-out{from{opacity:.95;transform:none}to{opacity:0;transform:translateY(-22%)}}
.k-topbar svg{width:17px;height:17px;flex:none;color:var(--lime)}
.k-tb-item a{color:var(--lime);text-underline-offset:3px}
.k-tb-code{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--lime);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.k-tb-code:hover{color:#fff}
.k-tb-nav{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:0;padding:0;border-radius:50%;color:var(--cream);opacity:.55;cursor:pointer;transition:.16s}
.k-tb-nav svg{width:15px;height:15px;color:inherit}
.k-tb-nav:hover{opacity:1;background:rgba(250,247,239,.1)}
.k-tb-nav:focus-visible{outline:2px solid var(--lime);outline-offset:1px;opacity:1}
@media(max-width:600px){.k-topbar{font-size:12.5px}.k-topbar .k-wrap{gap:6px;padding:8px 10px}.k-topbar svg{width:15px;height:15px}.k-tb-track{height:20px}.k-tb-item{gap:6px}}
@media(prefers-reduced-motion:reduce){.k-tb-item.is-on,.k-tb-item.is-out{animation:none}}
@media(max-width:520px){.k-eyebrow{font-size:12.5px;letter-spacing:.1em}}

/* ---- HEADER ---- */
/* Le header est `sticky`, mais WordPress enveloppe la part dans <header class="wp-block-template-part">
   qui contient AUSSI la topbar : un élément sticky ne colle que dans les limites de son parent, donc il
   disparaissait au bout de ~40 px. `display:contents` efface ce wrapper de la mise en page — topbar et
   header deviennent enfants directs du flux, et le sticky porte alors sur toute la page.
   (Choisi plutôt qu'un `top` négatif : la topbar est en flex-wrap, sa hauteur varie en mobile.) */
header.wp-block-template-part{display:contents}
.k-header{z-index:50;background:rgba(250,247,239,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--cream-2)}
/* Connecté, la barre d'admin WP est en position:fixed par-dessus tout : sans ce décalage
   le header sticky se colle à top:0 et passe dessous (menu tronqué et illisible).
   32 px en desktop, 46 px sous 782 px — les hauteurs imposées par WordPress.
   N'affecte que les utilisateurs connectés ; un visiteur n'a pas la classe .admin-bar. */
body.admin-bar .k-header{top:32px}
@media screen and (max-width:782px){body.admin-bar .k-header{top:46px}}
.k-header .k-wrap{display:flex;align-items:center;gap:32px;padding:16px 24px}
.k-logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.k-logo .word{font-family:var(--display);font-weight:800;font-size:30px;color:var(--green);letter-spacing:-.03em;line-height:1}
.k-logo .word b{color:var(--coral)}
.k-nav{display:flex;gap:26px}.k-nav a{font-weight:600;font-size:15px;color:var(--ink);text-decoration:none}.k-nav a:hover{color:var(--green)}
.k-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.k-actions a{color:var(--ink);display:flex;align-items:center}.k-actions svg{width:22px;height:22px}
.k-cart-chip{background:var(--green);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:2px 7px;margin-left:-8px}
@media(max-width:880px){.k-nav{display:none}}

/* ---- HERO ---- */
.k-hero{padding:64px 0 72px}
.k-hero .k-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.k-hero h1{font-size:clamp(40px,6vw,68px);margin:0}
.k-hero h1 .hl{color:var(--green);position:relative;white-space:nowrap}
.k-hero h1 .hl::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:14px;background:var(--lime);z-index:-1;border-radius:4px}
.k-hero .lead{font-size:19px;color:var(--muted);margin:22px 0 30px;max-width:480px}
.k-hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.k-hero-stats{display:flex;gap:28px;margin-top:34px}
.k-hero-stats .s{flex:1;min-width:0}
@media(max-width:560px){.k-hero-stats{gap:14px}}
.k-hero-stats .s b{font-family:var(--display);font-size:28px;display:block;line-height:1}
.k-hero-stats .s span{font-size:13px;color:var(--muted)}
/* Hero en 1/1 depuis le shooting « set Kanaa » : la photo de famille des doypacks est carrée,
   donc `cover` ne rogne rien (l'ancien 1/1.05 amputait les sachets latéraux). */
.k-hero-visual{position:relative;aspect-ratio:1/1;border-radius:28px;background:var(--ink);overflow:hidden}
.k-hero-visual .k-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.k-hero-visual .bigleaf{width:60%;opacity:.5;color:var(--green)}
.k-hero-visual .note{position:absolute;bottom:18px;left:18px;right:18px;font-family:var(--mono);font-size:11px;color:var(--green-d);background:rgba(255,255,255,.6);border-radius:10px;padding:8px 12px;text-align:center}
.k-chip{position:absolute;z-index:2;background:rgba(18,28,22,.42);backdrop-filter:blur(13px) saturate(1.2);-webkit-backdrop-filter:blur(13px) saturate(1.2);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:12px 16px;box-shadow:0 10px 30px rgba(12,24,16,.28);color:#fff}
.k-chip.taux{top:24px;left:24px}.k-chip.taux b{font-family:var(--display);font-size:30px;color:var(--lime);display:block;line-height:1}
.k-chip.taux span{font-size:11px;color:rgba(255,255,255,.82);font-family:var(--mono)}
.k-chip.coa{bottom:24px;left:24px;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#fff}.k-chip.coa svg{width:20px;height:20px;color:var(--lime)}
@media(max-width:880px){.k-hero .k-grid{grid-template-columns:1fr}.k-hero-visual{order:-1}.k-hero-cta{justify-content:center}}

/* ---- TRUST STRIP ---- */
.k-trust{background:var(--ink);color:var(--cream);padding:26px 0}
.k-trust .k-wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.k-trust .t{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:600}
.k-trust .t svg{width:24px;height:24px;color:var(--lime);flex-shrink:0}
.k-trust .t small{display:block;font-weight:400;font-size:12px;opacity:.7}

/* ---- SECTION ---- */
.k-section{padding:80px 0}
.wp-block-group.k-section{padding-left:24px;padding-right:24px;box-sizing:border-box}
.k-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.k-sec-head h2{font-size:clamp(28px,4vw,42px);margin:0}
.k-sec-head p{color:var(--muted);max-width:420px;margin:8px 0 0}
/* Lien « voir tout » aligné sur le titre de section (il vivait dans un bloc à part,
   ce qui créait un décrochage vertical avant la grille). */
.k-sec-link{flex:none;color:var(--green);font-weight:800;text-decoration:none;white-space:nowrap;padding-bottom:4px}
.k-sec-link:hover{color:var(--green-d);text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.k-sec-head{align-items:flex-start}.k-sec-link{padding-bottom:0}}

/* ---- MOLECULE NAV ---- */
.k-molnav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.k-molnav a{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--cream-2);background:#fff;border-radius:999px;padding:9px 17px;font-weight:700;font-size:14px;text-decoration:none;color:var(--ink);transition:.18s}
.k-molnav a:hover{border-color:var(--ink);transform:translateY(-2px)}
.k-molnav a .d{width:11px;height:11px;border-radius:50%}.k-molnav a small{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--muted)}
.k-molnav .k-molnav-shop{margin-left:auto;align-self:center;border:none;background:none;color:var(--green);font-weight:800;padding:9px 4px}
.k-molnav .k-molnav-shop:hover{transform:none;border:none;text-decoration:underline}

/* ---- MANIFESTO ---- */
.k-manifesto{background:var(--ink);color:var(--cream);border-radius:28px}
.k-manifesto .in{padding:64px 40px}
.k-manifesto .k-eyebrow{color:var(--lime)}
.k-manifesto h2{font-size:clamp(30px,4.5vw,48px);color:#fff;max-width:760px;margin:14px 0 18px}
.k-manifesto h2 em{color:var(--lime);font-style:normal}
.k-manifesto p{color:#b9c2bb;max-width:620px;font-size:17px}
.k-mani-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.k-mani-grid .m{border-top:2px solid var(--lime);padding-top:16px}
.k-mani-grid .m b{font-family:var(--display);font-size:18px;color:#fff;display:block;margin-bottom:6px}
.k-mani-grid .m span{font-size:14px;color:#aab3ac}
@media(max-width:820px){.k-mani-grid{grid-template-columns:1fr}}

/* ---- COA ---- */
.k-coa .k-wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.k-coa-card{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:26px;font-family:var(--mono);box-shadow:0 14px 36px rgba(21,33,27,.07)}
.k-coa-card .row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px dashed var(--cream-2);font-size:14px}
.k-coa-card .row:last-child{border:none}.k-coa-card .row b{color:var(--green)}
.k-coa-card .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.k-coa-card .head .lot{font-size:12px;color:var(--muted)}.k-coa-card .head .ok{background:var(--green);color:#fff;font-size:11px;padding:4px 10px;border-radius:999px}
.k-bar{height:8px;background:var(--cream-2);border-radius:999px;overflow:hidden;margin-top:6px}.k-bar i{display:block;height:100%;background:var(--green);border-radius:999px}
@media(max-width:820px){.k-coa .k-wrap{grid-template-columns:1fr}}

/* ---- BLOG ---- */
.k-bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.k-bcard{border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--cream-2);transition:.2s;text-decoration:none;color:var(--ink);display:block}
.k-bcard:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(21,33,27,.08)}
.k-bcard .img{aspect-ratio:16/9;background:linear-gradient(135deg,#D9F2E3,#FFE0DB);position:relative;overflow:hidden}
.k-bcard .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.k-bcard .bd{padding:20px}.k-bcard .tag{font-family:var(--mono);font-size:11px;color:var(--green);text-transform:uppercase;letter-spacing:.1em}
.k-bcard h3{font-size:19px;margin:8px 0}.k-bcard p{font-size:14px;color:var(--muted);margin:0}
@media(max-width:820px){.k-bgrid{grid-template-columns:1fr}}

/* ---- NEWSLETTER (section pleine largeur : offre 1g=1g à gauche, club + formulaire à droite) ---- */
.k-news{background:var(--cream);border-radius:32px;overflow:hidden;box-shadow:0 24px 60px rgba(21,33,27,.12);display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.k-news-head{background:var(--green);color:#fff;padding:64px 56px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.k-news-head .k-news-logo{font-family:var(--display);font-weight:800;font-size:34px;color:#fff;letter-spacing:-.03em;line-height:1;margin-bottom:6px}
.k-news-head .k-news-logo b{color:var(--coral)}
.k-news-head .offer{font-family:var(--display);font-weight:800;font-size:clamp(38px,4.5vw,56px);line-height:1.02;margin:12px 0 16px}
.k-news-head .offer b{color:var(--lime)}
.k-news-head small{display:block;max-width:380px;margin:0 auto;opacity:.9;font-size:15.5px;line-height:1.55}
.k-news-body{padding:64px 56px;display:flex;flex-direction:column;justify-content:center;text-align:center}
.k-news-body h2{font-size:clamp(26px,3vw,36px);margin:0}
.k-news-body p{color:#3a4d3f;margin:14px auto 28px;max-width:440px;font-size:15.5px;line-height:1.6}
.k-news form{display:flex;gap:10px;width:100%;max-width:420px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.k-news input[type=email]{flex:1;min-width:220px;padding:15px 22px;border-radius:999px;border:2px solid var(--cream-2);font-size:15px;font-family:var(--body)}
.k-news .k-btn-primary{flex:0 0 100%;padding:15px}
.k-news-consent{display:flex;flex:0 0 100%;width:100%;justify-content:center;align-items:flex-start;gap:8px;margin-top:4px;color:var(--muted);font-size:12.5px;line-height:1.4}
.k-news-consent input[type=checkbox]{flex:none;width:16px;height:16px;accent-color:var(--green);margin:2px 0 0;cursor:pointer}
.k-news-consent span{flex:1;text-align:left}
.k-hp{position:absolute !important;left:-9999px !important;top:auto;width:1px;height:1px;overflow:hidden}
.k-news .js-news-msg{flex:0 0 100%;width:100%;text-align:center;font-size:13px;margin-top:6px}
.k-news .js-news-msg:empty{display:none}
.k-news .js-news-msg.ok{color:var(--green)}
.k-news .js-news-msg.err{color:#c0392b}
.k-news .age{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:20px}
@media(max-width:820px){.k-news{grid-template-columns:1fr}.k-news-head{padding:48px 32px 40px}.k-news-body{padding:44px 32px}}

/* ---- FOOTER ---- */
.k-footer{background:var(--ink);color:#aab3ac;padding:64px 0 28px}
/* Espacement visuel régulier : des colonnes de largeur égale donnent des écarts INÉGAUX, parce que
   les contenus n'ont pas la même largeur (« Fleurs » laisse un vide, le champ e-mail remplit tout).
   On dimensionne donc chaque colonne sur son contenu et on répartit l'espace restant à parts égales.
   Alignement par la ligne de base : le wordmark et les <h2> n'ont pas la même taille. */
.k-fgrid{display:grid;grid-template-columns:minmax(240px,300px) auto auto 208px auto;justify-content:space-between;column-gap:32px;max-width:var(--maxw);margin:0 auto;padding:0 24px;align-items:baseline}
/* Capture e-mail : dernière colonne du footer, donc présente sur toutes les pages. Bouton lime
   logé dans le champ pour tenir dans une colonne. Le handler AJAX (mu-plugin kanaa-newsletter)
   écoute tout form.js-newsletter en délégation — rien à brancher côté JS. */
.k-fnews p{font-size:13.5px;color:#aab3ac;margin:0 0 13px;line-height:1.55}
.k-fnews p b{color:var(--lime)}
.k-fnews-row{position:relative}
.k-fnews-row input[type=email]{width:100%;box-sizing:border-box;background:#1B2A22;border:1.5px solid #2F4438;color:#fff;border-radius:999px;padding:11px 48px 11px 16px;font:inherit;font-size:14px}
.k-fnews-row input[type=email]::placeholder{color:#7D8B82}
.k-fnews-row input[type=email]:focus{outline:none;border-color:var(--lime)}
.k-fnews-btn{position:absolute;top:50%;right:5px;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:50%;background:var(--lime);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.18s}
.k-fnews-btn:hover{filter:brightness(.95);box-shadow:0 2px 12px rgba(194,242,94,.5)}
.k-fnews-btn svg{width:16px;height:16px}
.k-fnews-consent{display:flex;gap:8px;align-items:flex-start;margin:11px 1px 0;font-size:11.5px;color:#8B968D;line-height:1.4;cursor:pointer}
/* Case à cocher maison : cochée = pastille lime + coche encre, comme le bouton d'envoi. */
.k-fnews-consent input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:15px;height:15px;margin:1px 0 0;position:relative;background:#1B2A22;border:1.5px solid #2F4438;border-radius:4px;cursor:pointer;transition:.15s}
.k-fnews-consent input[type=checkbox]:hover{border-color:var(--lime)}
.k-fnews-consent input[type=checkbox]:checked{background:var(--lime);border-color:var(--lime)}
.k-fnews-consent input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:1px;width:3px;height:7px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.k-fnews-consent input[type=checkbox]:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.k-fnews .js-news-msg{font-size:12.5px;margin-top:8px;line-height:1.4}
.k-fnews .js-news-msg:empty{display:none}
.k-fnews .js-news-msg.ok{color:var(--lime)}
.k-fnews .js-news-msg.err{color:#FF8170}
.k-footer .word{font-family:var(--display);font-weight:800;font-size:28px;color:#fff;line-height:1}.k-footer .word b{color:var(--coral)}
.k-leafmark{transform:translateY(-2px)}
.k-footer p.desc{font-size:14px;margin:14px 0;max-width:280px}
.k-footer h2{color:#fff;font-size:14px;margin-bottom:14px;font-weight:700}
.k-footer ul{list-style:none;margin:0;padding:0}.k-footer ul li{margin-bottom:9px;font-size:14px}
.k-footer ul li a{color:#aab3ac;text-decoration:none}.k-footer ul li a:hover{color:var(--lime)}
.k-pay{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;align-items:center}
.k-pay .k-pay-logo{background:#fff;border-radius:6px;height:28px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:13px;line-height:1;letter-spacing:.01em}
.k-pay .visa{color:#1A1F71;font-style:italic;letter-spacing:.06em}
.k-pay .mc{padding:0 10px}
.k-pay .mc svg{height:22px;width:auto;display:block}
.k-pay .img{padding:0 8px}
.k-social{display:flex;gap:10px;margin-top:18px}
.k-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.16);color:#aab3ac;transition:.2s}
.k-social a:hover{background:var(--lime);border-color:var(--lime);color:var(--ink);transform:translateY(-2px)}
.k-social svg{width:18px;height:18px}
.k-pay .img img{display:block;height:21px;width:auto}
.k-pay .img img[alt="Chronopost"]{height:26px}
.k-fbar{border-top:1px solid #283a30;margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:12px;max-width:var(--maxw);margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
.k-age18{border:2px solid var(--coral);color:var(--coral);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--display)}
/* Tablette portrait : marque à gauche et newsletter à droite sur la même ligne (grille de 6,
   moitié-moitié), puis les 3 listes de liens sur la ligne suivante.
   (5 blocs dans 2 colonnes laissaient un trou et décalaient les colonnes.) */
@media(max-width:820px) and (min-width:561px){.k-fgrid{grid-template-columns:repeat(6,1fr);row-gap:36px;align-items:start}.k-fgrid>*{order:3;grid-column:span 2}.k-fgrid>:first-child{order:1;grid-column:span 3}.k-fgrid>.k-fnews{order:2;grid-column:span 3;width:max-content;max-width:100%}
  .k-fnews h2{font-size:16px}.k-fnews p{font-size:15px}.k-fnews-row input[type=email]{font-size:15px}.k-fnews-consent{font-size:12.5px}}
/* Mobile : une seule colonne, newsletter en tête de footer, moins d'air au-dessus. */
@media(max-width:560px){.k-fgrid{grid-template-columns:1fr;row-gap:32px;align-items:start}.k-fgrid>*{order:3}.k-fgrid>.k-fnews{order:1}.k-fgrid>:first-child{order:2}.k-footer{padding-top:34px}.k-footer p.desc{max-width:none}}
@media(max-width:1100px) and (min-width:821px){.k-fgrid{grid-template-columns:1.4fr 1fr 1fr;row-gap:34px}.k-fnews{grid-column:span 2}}

/* ============================================================
   WooCommerce — cartes produit vers le look Kanaa
   ============================================================ */
.woocommerce ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:22px;margin:0;padding:0;list-style:none;align-items:start}
.woocommerce ul.products li.product.k-pc-li{height:auto}
.woocommerce ul.products li.product{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);overflow:hidden;transition:.2s;margin:0;padding:0;width:auto !important;float:none !important}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(21,33,27,.10)}
.woocommerce ul.products li.product a img{margin:0;border-radius:0;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;background:linear-gradient(135deg,#D9F2E3,#BFE9D2)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--display);font-weight:800;font-size:20px;padding:14px 18px 4px;color:var(--ink)}
.woocommerce ul.products li.product .price{display:block;padding:0 18px;font-family:var(--display);font-weight:800;font-size:19px;color:var(--ink)}
.woocommerce ul.products li.product .price .woocommerce-Price-amount{color:var(--ink)}
.woocommerce ul.products li.product .button{margin:14px 18px 18px;background:var(--lime);color:var(--ink);border-radius:999px;font-weight:700;padding:10px 16px;border:none;display:inline-block}
.woocommerce ul.products li.product .button:hover{filter:brightness(.95)}
.woocommerce .star-rating{margin:4px 18px;color:#E8A33D}
@media(max-width:980px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.woocommerce ul.products{grid-template-columns:1fr}}

/* ---- Carte produit Kanaa (override content-product.php, molécule-first) ---- */
/* neutralise le clearfix ::before/::after de WooCommerce qui occupait une case de grille (le « trou ») */
.woocommerce ul.products::before,.woocommerce ul.products::after{content:none !important;display:none !important}
.woocommerce ul.products li.product.k-pc-li{display:flex;flex-direction:column;padding:0}
/* Photo CARRÉE (07/2026) : les 27 images produit sont en 1:1, donc à ce ratio `cover` ne rogne
   RIEN — le 5/4 précédent coupait le haut et le bas des packshots (zip et socle du doypack).
   L'« effet tige » qui avait motivé le 5/4 est compensé par le bloc texte resserré ci-dessous. */
.k-pc-ph{position:relative;aspect-ratio:1/1;overflow:hidden;background:radial-gradient(circle at 50% 38%,#F4FAF5 0%,#E6F3E9 58%,#D7EADB 100%)}
.k-pc-ph a{display:block;height:100%}
.k-pc-ph img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}
.k-pc-leaf{display:flex;align-items:center;justify-content:center;height:100%}
.k-pc-leaf svg{width:44%;opacity:.5;color:var(--green)}
.k-pc-ph .mol{position:absolute;top:12px;left:12px;font-family:var(--display);font-weight:800;font-size:21px;border-radius:10px;padding:6px 13px;line-height:1;z-index:2}
.k-pc-nouv{position:absolute;top:15px;right:12px;background:var(--ink);color:var(--lime);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:5px 10px;z-index:2}
.k-pc-oos{position:absolute;bottom:12px;left:12px;background:#C8442E;color:#fff;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:5px 11px;z-index:3}
/* (pré-lancement) photos en couleur même si stock 0 — voile grayscale/opacity retiré */
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .k-pc-oos-btn{background:var(--cream-2) !important;color:var(--muted) !important;border-color:var(--cream-2) !important;cursor:not-allowed;pointer-events:none}
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .k-pc-see-btn{background:var(--green) !important;color:#fff !important;border-color:var(--green) !important;text-decoration:none}
/* Trait de molécule : le filet court de la DA (celui du bandeau « LE MAG SUR KANAA.FR »), repris
   ici en tête du bloc texte et coloré par molécule. Court et épais — pas une ligne de séparation
   pleine largeur, qui coupait la carte en deux. */
.k-pc-body::before{content:"";display:block;width:33%;height:5px;background:#1C7A4E;margin:0 0 9px;flex-shrink:0}
.k-pc-li[data-mol="stv10"] .k-pc-body::before{background:#FF6F5E}
.k-pc-li[data-mol="thv2"]  .k-pc-body::before{background:#C2F25E}
.k-pc-li[data-mol="cbdx"]  .k-pc-body::before{background:#15613E}
.k-pc-li[data-mol="csa14"] .k-pc-body::before{background:#46D8E0}
.k-pc-li[data-mol="mcpn"]  .k-pc-body::before{background:#34B87A}
/* Badges factuels sous le titre — formats réellement en vente, présence du COA, seuil THC. */
.k-pc-badges{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 6px !important}
.k-pcb{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 8px;line-height:1.25;white-space:nowrap}
/* Le badge molécule reprend la couleur du trait : il en est la légende. */
.k-pcb-mol{color:#fff;background:#1C7A4E}
.k-pc-li[data-mol="stv10"] .k-pcb-mol{background:#FF6F5E}
.k-pc-li[data-mol="thv2"]  .k-pcb-mol{background:#C2F25E;color:#243309}
.k-pc-li[data-mol="cbdx"]  .k-pcb-mol{background:#15613E}
.k-pc-li[data-mol="csa14"] .k-pcb-mol{background:#46D8E0;color:#06343A}
.k-pc-li[data-mol="mcpn"]  .k-pcb-mol{background:#34B87A}
.k-pcb-fmt{background:var(--cream-2);color:var(--ink)}
.k-pcb-coa{background:#E4F3E9;color:var(--green-d)}
.k-pcb-coa::before{content:"●";font-size:8px;margin-right:4px;vertical-align:1px}
.k-pcb-thc{border:1px solid var(--cream-2);color:var(--muted)}
/* CTA plus affirmé : pilule pleine, comme sur la fiche produit. */
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .button{border-radius:999px !important;padding:11px 18px !important;font-weight:700 !important}
.k-pc-body{padding:13px 16px 14px;display:flex;flex-direction:column;flex:1;line-height:1.2}
.k-pc-body>*{margin:0}
.k-pc-cat{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 3px !important;line-height:1.2}
.k-pc-titlelink{display:block;text-decoration:none;line-height:1;margin:0 0 6px !important}
/* Pas de min-height ici : les pieds de carte s'alignent par `margin-top:auto` sur .k-pc-foot,
   ce qui évitait de réserver une 2ᵉ ligne de titre vide sur les noms courts (~21 px gagnés). */
.k-pc-title{font-family:var(--display);font-weight:800;font-size:20px;margin:0 !important;color:var(--ink);line-height:1.05}
.k-pc-molrate{font-family:var(--mono);font-size:12px;color:var(--muted);margin:0 0 4px !important;line-height:1.3}
.k-pc-molrate b{color:var(--green-d)}
.k-pc-effect{display:block;font-size:13px;color:var(--green-d);font-weight:600;margin:0 !important;line-height:1.3}
.k-pc-coa{font-family:var(--mono);font-size:11px;color:var(--muted);margin:6px 0 0 !important;display:flex;align-items:center;gap:5px;line-height:1.2}
.k-pc-foot{margin-top:auto;padding-top:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.k-pc-price{font-family:var(--display);font-weight:800;font-size:19px;color:var(--ink);line-height:1.05;min-width:0}
.k-pc-price .woocommerce-Price-amount{color:var(--ink)}
.k-pc-price .k-unit{font-family:var(--body);font-weight:400;font-size:12px;color:var(--muted)}
.k-pc-price .k-from{display:block;font-family:var(--body);font-weight:600;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);line-height:1;margin-bottom:3px}
.woocommerce ul.products li.product.k-pc-li .price{padding:0;margin:0;display:inline-block;font-size:inherit;color:var(--ink)}
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .button{margin:0 !important;padding:9px 15px !important;font-size:13px !important;line-height:1.1 !important;border-width:1px !important;white-space:nowrap;flex-shrink:0}
/* CTA d'ajout au panier : lime + icône. La règle générique des boutons WooCommerce (plus bas,
   en !important) repeignait tout en vert et écrasait le lime prévu à l'origine pour les cartes ;
   on le restaure ici, en cohérence avec le bouton d'achat de la fiche produit. */
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .button:not(.k-pc-see-btn):not(.k-pc-oos-btn){
	background:var(--lime) !important;color:var(--ink) !important;border-color:var(--lime) !important;
	padding:10px 16px !important;display:inline-flex !important;align-items:center;gap:7px;box-shadow:0 2px 10px rgba(194,242,94,.5)}
.woocommerce ul.products li.product.k-pc-li .k-pc-foot .button:not(.k-pc-see-btn):not(.k-pc-oos-btn):hover{filter:brightness(.96);box-shadow:0 3px 14px rgba(194,242,94,.65)}
.k-cart-ic{width:15px;height:15px;flex-shrink:0}

/* ---- Section catégories (« Trouve ton format ») ---- */
.k-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.k-cat-card{border-radius:var(--radius);padding:0 22px 20px;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;color:#fff;transition:.2s;text-decoration:none;background:#0E1210 center/cover no-repeat}
.k-cat-card:hover{transform:translateY(-3px)}
/* Visuel en <img> (et non en background-image) : voir CLAUDE.md — une image hors écran doit
   être lazy, sinon elle se télécharge au chargement initial et pénalise le LCP. */
.k-cat-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
/* Déclinaison compacte en tête de boutique : la grille produits doit rester visible. */
.k-cats-shop{margin:24px 0 28px}
.k-cats-shop .k-cat-card{min-height:172px;padding:0 17px 15px}
.k-cats-shop .k-cat-card h3{font-size:18px}
.k-cats-shop .k-cat-card .k-cat-sub{font-size:12px}
.k-cats-shop .k-cat-card .k-sticker{height:42px;top:11px;left:11px}
.k-cats-shop .k-cat-card .arr{width:30px;height:30px;bottom:15px;right:15px}
.k-cats-shop .k-cat-card .arr svg{width:15px;height:15px}
.k-cats-shop .k-cat-card.is-on{outline:3px solid var(--lime);outline-offset:-3px}
@media(max-width:820px){.k-cats-shop{grid-template-columns:repeat(2,1fr);gap:12px}}
.k-cat-card .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,9,.05) 45%,rgba(8,10,9,.74));pointer-events:none}
.k-cat-card .k-sticker{position:absolute;top:16px;left:16px;height:62px;width:auto;filter:drop-shadow(0 5px 12px rgba(0,0,0,.5))}
.k-cat-card h3{position:relative;font-size:23px;color:#fff;margin:0 0 2px}
.k-cat-card .k-cat-sub{position:relative;font-size:13px;font-weight:600;color:#e0e6e1}
.k-cat-card .arr{position:absolute;bottom:22px;right:22px;top:auto;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#fff;transition:.2s;backdrop-filter:blur(2px)}
.k-cat-card .arr svg{width:17px;height:17px}
.k-cat-card:hover .arr{background:rgba(255,255,255,.32);transform:translateX(3px)}
@media(max-width:820px){.k-cats{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   Boutique — archive produits (filtres, toolbar, pagination)
   ============================================================ */
.k-pagehead{padding:6px 0 4px}
.k-pagehead .crumb{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:12px}
.k-pagehead .crumb b{color:var(--ink)}
.k-pagehead h1{font-size:clamp(32px,5vw,50px);margin:0}
.k-pagehead p{color:var(--muted);max-width:560px;margin:10px 0 0}
.k-pagehead .k-molnav{margin:24px 0 0}
.k-molnav a.on,.woocommerce .k-pagehead .k-molnav a.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.k-molnav a.on small,.woocommerce .k-pagehead .k-molnav a.on small{color:rgba(255,255,255,.7)}

.k-shop{display:grid;grid-template-columns:238px 1fr;gap:26px;align-items:start;margin-top:26px}
.k-shop-main{min-width:0}
@media(max-width:900px){.k-shop{grid-template-columns:1fr}.k-filters{order:2}}

.k-filters{position:sticky;top:90px}
/* desktop : filtres appliqués à la sélection -> bouton « Filtrer » inutile (gardé sur mobile/drawer) */
@media(min-width:901px){.k-filters button[type="submit"]{display:none}}
.k-filters .fgroup{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}
.k-filters h4{font-family:var(--body);font-weight:700;font-size:14px;margin:0 0 12px;display:flex;justify-content:space-between;align-items:center}
.k-filters h4 span{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:400}
.k-filters .opt{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:14px;cursor:pointer}
.k-filters .opt input{display:none}
.k-filters .opt .box{width:18px;height:18px;border:2px solid var(--cream-2);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s}
.k-filters .opt input:checked + .box{background:var(--green);border-color:var(--green)}
.k-filters .opt input:checked + .box::after{content:"✓";color:#fff;font-size:12px;font-weight:700;line-height:1}
.k-filters .opt .d{width:11px;height:11px;border-radius:50%}
.k-filters .opt .cnt{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted)}
.krange{display:flex;align-items:center;gap:8px}
.krange input{width:100%;border:2px solid var(--cream-2);border-radius:10px;padding:8px 10px;font-family:var(--body);font-size:14px}
.krange span{color:var(--muted)}
.k-filters .k-btn{margin-top:2px}
.k-filters .clear{display:block;text-align:center;font-family:var(--mono);font-size:12px;color:var(--coral) !important;margin-top:12px;text-decoration:none}
.k-filters .clear:hover{color:var(--coral) !important;text-decoration:underline}

/* grille d'archive : 3 colonnes (place pour la sidebar) */
.k-shop .woocommerce ul.products,.k-shop ul.products{grid-template-columns:repeat(3,1fr)}
@media(max-width:1200px){.k-shop ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.k-shop ul.products{grid-template-columns:1fr}}

.k-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.k-toolbar .count,.k-toolbar .woocommerce-result-count{font-size:14px;color:var(--muted);margin:0}
.k-toolbar .right{display:flex;align-items:center;gap:10px}
.k-toolbar .woocommerce-ordering{margin:0}
.k-toolbar select{border:2px solid var(--cream-2);border-radius:999px;padding:9px 16px;font-family:var(--body);font-weight:600;font-size:14px;background:#fff;cursor:pointer}

/* ── Pagination ────────────────────────────────────────────────────────────────
   Tous les éléments portent le MÊME cercle : 40 px, filet de 1 px, fond blanc,
   chiffre à l'encre. Seule la page courante est pleine.

   ⚠️ TOUTES les déclarations sont préfixées par `.woocommerce`, et ce n'est pas
   du zèle : la feuille de WooCommerce est chargée APRÈS celle du thème, donc elle
   gagne à spécificité égale. Réparties entre deux règles de spécificités
   différentes, la moitié d'entre elles tombait en silence — `display:inline-flex`
   redevenait `block`, ce qui annulait le centrage vertical et posait le chiffre
   2,5 px trop haut ; `font-size` restait à 1em et `padding` à 0.5em. Ne pas
   scinder ce bloc. */
.k-pagi{margin-top:22px}
.woocommerce .k-pagi nav.woocommerce-pagination{border:0;text-align:center}
.woocommerce .k-pagi nav.woocommerce-pagination ul{display:inline-flex;justify-content:center;gap:5px;border:0;margin:0;padding:0}
.woocommerce .k-pagi nav.woocommerce-pagination ul li{border:0;margin:0;display:inline-flex}
.woocommerce .k-pagi nav.woocommerce-pagination ul li a,
.woocommerce .k-pagi nav.woocommerce-pagination ul li span{
	display:inline-flex;align-items:center;justify-content:center;
	width:40px;min-width:40px;height:40px;box-sizing:border-box;padding:0;
	border:1px solid var(--cream-2);border-radius:999px;background:#fff;
	color:var(--ink);font-family:var(--body);font-weight:700;font-size:14px;line-height:1;
	margin:0;text-decoration:none;transition:border-color .15s,background .15s,color .15s}
.woocommerce .k-pagi nav.woocommerce-pagination ul li a:hover{border-color:var(--ink);background:#fff}
.woocommerce .k-pagi nav.woocommerce-pagination ul li span.current{
	background:var(--green);border-color:var(--green);color:#fff}
/* WooCommerce pose 1em sous sa grille : doublon avec la marge de la pagination. */
.woocommerce .k-shop-main ul.products{margin-bottom:0}

.k-shop-main{transition:opacity .15s}
.k-shop-main.is-loading{opacity:.45;pointer-events:none}
.k-seo{border-top:1px solid var(--cream-2);padding:48px 0;margin-top:10px;display:grid;grid-template-columns:300px minmax(0,660px);gap:52px;align-items:start;justify-content:start}
/* En une seule colonne, un élément sticky reste collé pendant que le texte défile
   dessous : le bloc « Le guide » se superposait au corps de l'article. Le sticky
   n'a de sens que tant qu'il y a une colonne latérale à accompagner. */
@media(max-width:820px){.k-seo{grid-template-columns:1fr;gap:14px}}
.k-seo-head h2{font-size:26px;margin:8px 0 0;line-height:1.1}
.k-seo-body p{color:var(--muted);margin:0 0 14px;font-size:15px;max-width:680px}
.k-seo-body p:last-child{margin-bottom:0}
/* Colonne de gauche : filet court lime (motif de la DA, comme sur les cartes), titre, puis un
   encart de preuve — sinon la colonne restait vide sur toute la hauteur du texte. */
.k-seo-head{position:sticky;top:96px}
/* Doit rester APRÈS la règle ci-dessus : même spécificité, c'est l'ordre qui tranche.
   En une colonne le bloc n'accompagne plus rien et se superposait au texte. */
@media(max-width:820px){.k-seo-head{position:static}}
.k-seo-head::before{content:"";display:block;width:56px;height:5px;background:var(--green-d);margin:0 0 14px}
.k-seo-proof{margin-top:24px;background:#fff;border:1px solid var(--cream-2);border-radius:16px;padding:17px 18px}
.k-seo-proof b{display:block;font-family:var(--display);font-weight:800;font-size:15px;color:var(--ink);margin-bottom:5px}
.k-seo-proof p{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 11px}
.k-seo-proof a{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px;color:var(--green-d);text-decoration:none}
.k-seo-proof a:hover{gap:9px}
/* Corps : chapô plus grand, intertitres accrochés d'un tiret lime, surlignage éditorial. */
.k-seo-body>p:first-child{font-size:17px;line-height:1.6;color:var(--ink)}
.k-seo-body h3{font-family:var(--display);font-weight:800;font-size:19px;color:var(--ink);margin:30px 0 11px;line-height:1.25;display:flex;align-items:center;gap:10px}
.k-seo-body h3::before{content:"";width:22px;height:4px;background:var(--green-d);flex-shrink:0}
.k-seo-body h3:first-child{margin-top:0}
.k-seo-body strong{color:var(--ink)}
.k-hl{background:linear-gradient(transparent 60%,var(--lime) 60%);color:var(--ink);font-weight:600;padding:0 2px}
/* FAQ des archives boutique — même composant que .k-faq, mais DANS la grille .k-seo (2ᵉ colonne),
   sinon elle était centrée sur 820px et ne s'alignait sur aucune des deux colonnes. */
.k-seo-faq{grid-column:2;padding:38px 0 0}
@media(max-width:820px){.k-seo-faq{grid-column:1;padding-top:26px}}
.k-seo-faq>h2{font-family:var(--display);font-weight:800;font-size:26px;margin:0 0 18px}
.k-seo-faq .q{background:#fff;border:1px solid var(--cream-2);border-radius:14px;margin-bottom:12px;overflow:hidden}
.k-seo-faq .q summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.k-seo-faq .q summary::-webkit-details-marker{display:none}
.k-seo-faq .q summary .ic{width:26px;height:26px;border-radius:50%;border:2px solid var(--green);color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;line-height:1;padding-bottom:2px;flex-shrink:0;transition:.2s}
.k-seo-faq .q[open] summary .ic{background:var(--green);color:#fff;transform:rotate(45deg)}
.k-seo-faq .q .a{padding:0 20px 20px;color:var(--muted);font-size:15px;line-height:1.6}
@media(max-width:820px){.k-seo-head h2{position:static}}

/* ============================================================
   Fiche produit (single-product)
   ============================================================ */
.k-crumb{font-family:var(--mono);font-size:12px;color:var(--muted);padding:18px 0 6px}
.k-crumb a{color:var(--muted)}.k-crumb a:hover{color:var(--green)}.k-crumb b{color:var(--ink)}
.k-product{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:14px 0 50px;align-items:start}
@media(max-width:900px){.k-product{grid-template-columns:1fr;gap:28px}}
.k-gallery .main{aspect-ratio:1/1;border-radius:24px;background:radial-gradient(circle at 50% 38%,#F4FAF5 0%,#E6F3E9 58%,#D7EADB 100%);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.k-gallery .main .mol{position:absolute;top:18px;left:18px;font-family:var(--display);font-weight:800;font-size:24px;border-radius:12px;padding:8px 15px;line-height:1;z-index:2}
.k-gallery .main img{width:100%;height:100%;object-fit:cover}
.k-gallery .main .k-pc-leaf{height:100%}.k-gallery .main .k-pc-leaf svg{width:55%;opacity:.5;color:var(--green)}
.k-gallery-note{position:absolute;bottom:16px;left:16px;right:16px;font-family:var(--mono);font-size:11px;color:var(--green-d);background:rgba(255,255,255,.6);border-radius:10px;padding:7px 12px;text-align:center}
.k-pcat{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.k-ptitle{font-size:clamp(34px,5vw,52px);margin:4px 0 12px;font-family:var(--display);font-weight:800;line-height:1}
.k-molhero{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.k-molhero .mol{font-family:var(--display);font-weight:800;font-size:20px;border-radius:11px;padding:6px 13px;line-height:1}
.k-molhero .rate{font-family:var(--mono);font-size:14px}.k-molhero .rate b{color:var(--green-d);font-size:17px}
.k-molhero .thc{font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--cream-2);border-radius:999px;padding:5px 11px}
.k-stars{display:flex;align-items:center;gap:8px;font-size:14px;color:#E8A33D;margin-bottom:16px}.k-stars b{color:var(--ink)}
.k-pdesc{font-size:16px;color:#3a4a40;max-width:520px;margin-bottom:18px}.k-pdesc p{margin:0 0 10px}
.k-tags{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}
.k-tags span{background:#fff;border:1px solid var(--cream-2);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--green-d)}
.k-buybox{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:22px;box-shadow:0 14px 36px rgba(21,33,27,.06)}
.k-buybox table.variations{width:100%;margin:0 0 12px;border:0}
.k-buybox table.variations td,.k-buybox table.variations th{border:0;padding:0 0 8px;background:none;display:block;text-align:left}
.k-buybox table.variations th label{font-weight:700;font-size:14px;margin-bottom:6px;display:block}
.k-buybox .variations select,.k-buybox select{width:100%;border:2px solid var(--cream-2);border-radius:12px;padding:11px 14px;font-family:var(--body);font-size:15px;font-weight:600;background:#fff;cursor:pointer}
.k-buybox .reset_variations{font-family:var(--mono);font-size:12px;color:var(--coral);display:inline-block;margin-top:6px}
.k-buybox .woocommerce-variation-price{margin:6px 0 14px}
.k-buybox .woocommerce-variation-price .price,.k-buybox .price{font-family:var(--display);font-weight:800;font-size:24px;color:var(--ink)}
.k-buybox .quantity{display:inline-flex;align-items:center;border:2px solid var(--cream-2);border-radius:999px;overflow:hidden;margin-right:10px;vertical-align:middle}
.k-buybox .quantity input{width:54px;text-align:center;border:0;font-size:16px;font-weight:700;font-family:var(--body);padding:11px 4px;background:none}
.k-buybox .single_add_to_cart_button{background:var(--lime) !important;color:var(--ink) !important;border:0 !important;border-radius:999px !important;font-weight:700 !important;font-size:16px !important;padding:14px 30px !important;cursor:pointer;vertical-align:middle;float:none !important}
.k-buybox .single_add_to_cart_button:hover{filter:brightness(.95)}
.k-buybox form.cart{margin:0}
.k-microtrust{display:flex;gap:18px;margin-top:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.k-microtrust span{position:relative;padding-left:17px}
.k-microtrust span::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}

.k-section-sm{padding:34px 0;border-top:1px solid var(--cream-2);margin-top:6px}
.k-section-sm h2{font-size:clamp(24px,3.5vw,34px);margin:6px 0}
.k-sub{color:var(--muted);max-width:560px;margin:0 0 24px}
.k-two{display:grid;grid-template-columns:1fr 1fr;gap:44px}@media(max-width:900px){.k-two{grid-template-columns:1fr;gap:28px}}
.k-minihead{font-family:var(--mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.k-spec{margin-bottom:16px}
.k-spec .top{display:flex;justify-content:space-between;font-size:14px;margin-bottom:5px}.k-spec .top b{font-family:var(--mono)}.k-spec .mname{font-weight:700}
.k-terp{display:flex;flex-direction:column;gap:14px}
.k-terp .t{display:flex;align-items:center;gap:14px}
.k-terp .t .ic{width:42px;height:42px;border-radius:12px;background:#F1FAF4;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.k-terp .t b{font-size:15px}.k-terp .t span{font-size:13px;color:var(--muted)}.k-terp .t .pct{margin-left:auto;font-family:var(--mono);font-weight:700;color:var(--green-d)}
.k-prod-desc{color:#3a4a40;max-width:760px}.k-prod-desc p{margin:0 0 12px}

/* ---- Fiche produit : pavés de grammage + avis ---- */
.k-gram-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.k-gram-head span:first-child{font-weight:700;font-size:14px}
.k-gram-head .note{font-family:var(--mono);font-size:12px;color:var(--muted)}
.k-grams{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:10px}
@media(max-width:520px){.k-grams{grid-template-columns:repeat(3,1fr)}}
.k-gram{position:relative;border:2px solid var(--cream-2);border-radius:14px;padding:14px 6px;text-align:center;cursor:pointer;background:#fff;transition:.15s;font-family:var(--body)}
.k-gram:hover{border-color:var(--green)}
.k-gram.sel{border-color:var(--green);background:#F1FAF4}
.k-gram b{display:block;font-family:var(--display);font-size:18px;color:var(--ink);line-height:1.1}
.k-gram span{font-size:11px;color:var(--muted)}
.k-gram .save{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--coral);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap}
/* Stock au gramme : pavé épuisé + indicateur de dispo */
.k-gram--oos{opacity:.5;cursor:not-allowed;background:var(--cream-2);border-color:var(--cream-2)}
.k-gram--oos:hover{border-color:var(--cream-2)}
.k-gram--oos b{text-decoration:line-through;color:var(--muted)}
.k-gram .save--oos{background:var(--muted)}
.k-stockline{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13.5px;font-weight:600}
.k-stockline .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.k-stockline.is-in{color:var(--green)}.k-stockline.is-in .dot{background:var(--green);animation:k-dot-pulse-in 1.9s ease-out infinite}
.k-stockline.is-low{color:#C77A12}.k-stockline.is-low .dot{background:#E08A1E;animation:k-dot-pulse-low 1.5s ease-out infinite}
.k-stockline.is-out{color:#C8442E}.k-stockline.is-out .dot{background:#C8442E}
@keyframes k-dot-pulse-in{0%{box-shadow:0 0 0 0 rgba(28,122,78,.45)}70%{box-shadow:0 0 0 8px rgba(28,122,78,0)}100%{box-shadow:0 0 0 0 rgba(28,122,78,0)}}
@keyframes k-dot-pulse-low{0%{box-shadow:0 0 0 0 rgba(224,138,30,.55)}70%{box-shadow:0 0 0 8px rgba(224,138,30,0)}100%{box-shadow:0 0 0 0 rgba(224,138,30,0)}}
@media(prefers-reduced-motion:reduce){.k-stockline .dot{animation:none}}
.k-add-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}
.k-pay-btn--disabled,.k-proceed--disabled{opacity:.55 !important;cursor:not-allowed !important;pointer-events:none !important;filter:grayscale(.5);text-align:center}
.k-proceed--disabled{display:block;width:100%;box-sizing:border-box;background:var(--lime);color:var(--ink);border-radius:999px;font-weight:700;font-size:16px;padding:15px 30px;text-decoration:none}
/* Page « Commande reçue » : message festif + confettis */
#k-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9999}
.woocommerce-order .woocommerce-thankyou-order-received{border:0!important;background:none!important;padding:0!important}
.k-ty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin:8px auto 28px;max-width:560px}
.k-ty-emoji{font-size:54px;line-height:1;animation:k-ty-pop .5s cubic-bezier(.34,1.56,.64,1) both}
.k-ty-title{font-family:var(--display);font-weight:800;font-size:clamp(26px,4vw,38px);color:var(--green);letter-spacing:-.02em}
.k-ty-sub{font-size:16px;color:var(--muted)}
@keyframes k-ty-pop{0%{transform:scale(0) rotate(-20deg)}100%{transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.k-ty-emoji{animation:none}}
.k-buyrow{display:flex;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.k-bigprice{font-family:var(--display);font-weight:800;font-size:28px;color:var(--ink);line-height:1}
.k-bigprice .unit{font-family:var(--body);font-size:14px;color:var(--muted);font-weight:400}
.k-qty{display:inline-flex;align-items:center;border:2px solid var(--cream-2);border-radius:999px;overflow:hidden}
.k-qty button{border:0;background:none;width:38px;height:44px;font-size:20px;cursor:pointer;color:var(--ink)}
.k-qty input{width:36px;text-align:center;border:0;font-size:16px;font-weight:700;font-family:var(--body);background:none}
.k-add-btn{flex:1;min-width:150px;white-space:nowrap;background:var(--lime);border:0;border-radius:999px;font-weight:700;font-size:16px;padding:14px 24px;cursor:pointer;color:var(--ink);font-family:var(--body)}
.k-add-btn:hover{filter:brightness(.95)}

.k-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:820px){.k-reviews{grid-template-columns:1fr}}
.k-rev{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:22px}
.k-rev .who{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.k-rev .who .av{width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.k-rev .who b{font-size:14px}.k-rev .who span{font-size:12px;color:var(--muted)}
.k-rev .st{color:#E8A33D;font-size:13px;margin-bottom:6px}
.k-rev p{font-size:14px;color:#3a4a40;margin:0}
/* Avis : note résumé + formulaire (design Kanaa, étoiles CSS pures) */
.k-stars-txt{color:#E8A33D;letter-spacing:1px}
.k-noavis{font-style:italic}
.k-review-form{margin-top:30px;max-width:640px;border:2px solid var(--cream-2);border-radius:16px;padding:22px 24px;background:#fff}
.k-review-form h3{margin:0 0 12px}
.k-rating-input{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px;font-size:30px;line-height:1;margin-bottom:14px}
.k-rating-input input{position:absolute;width:1px;height:1px;opacity:0}
.k-rating-input label{color:#dcd6c8;cursor:pointer;transition:color .12s;-webkit-tap-highlight-color:transparent}
.k-rating-input label:hover,.k-rating-input label:hover ~ label,.k-rating-input input:checked ~ label{color:#E8A33D}
.k-rating-input input:focus-visible ~ label{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}
.k-review-form textarea{width:100%;box-sizing:border-box;border:2px solid var(--cream-2);border-radius:12px;padding:12px 14px;font:inherit;font-size:15px;resize:vertical;min-height:92px}
.k-review-form textarea:focus{outline:none;border-color:var(--green)}
.k-review-form .k-btn{margin-top:14px}
.k-rev.is-hidden{display:none}
.k-reviews-more-wrap{text-align:center;margin-top:22px}
.k-reviews-more{background:none;border:2px solid var(--cream-2);border-radius:999px;padding:11px 26px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.k-reviews-more:hover{border-color:var(--green);background:var(--cream-2)}
.k-rev-prod{display:inline-block;margin-top:12px;font-size:12px;font-weight:700;color:var(--green);text-decoration:none}
.k-rev-prod:hover{text-decoration:underline}

/* ============================================================
   Tunnel d'achat (compte, panier, checkout) — WooCommerce classique
   ============================================================ */
/* largeur : ces pages ont besoin de plus que le contentSize 760 */
body.woocommerce-page main.wp-block-group{max-width:1100px;margin:30px auto 60px;padding:0 24px}
body.woocommerce-page .wp-block-post-content.is-layout-constrained > *{max-width:none}
body.woocommerce-page .entry-title,body.woocommerce-page .wp-block-post-title{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,46px);margin-bottom:24px}

/* Champs de formulaire */
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,
.woocommerce input.input-text,.woocommerce select,.woocommerce textarea,.select2-container .select2-selection{
  border:2px solid var(--cream-2) !important;border-radius:12px !important;padding:12px 14px !important;font-family:var(--body) !important;font-size:15px;background:#fff;line-height:1.3;min-height:46px;box-sizing:border-box}
.woocommerce form .form-row label{font-weight:600;font-size:14px;margin-bottom:5px}

/* Boutons */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.woocommerce .button,.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,.woocommerce #place_order{
  background:var(--green) !important;color:#fff !important;border:2px solid var(--green) !important;border-radius:999px !important;
  font-family:var(--body) !important;font-weight:700 !important;font-size:15px !important;padding:13px 26px !important;cursor:pointer;transition:.18s;text-shadow:none;box-shadow:none}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{background:var(--green-d) !important;border-color:var(--green-d) !important}
.woocommerce .button.alt,.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,.woocommerce #place_order{background:var(--lime) !important;color:var(--ink) !important;border-color:var(--lime) !important;font-size:16px !important;padding:15px 30px !important}
.woocommerce .button.alt:hover,.woocommerce #place_order:hover{filter:brightness(.95)}

/* Messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,.woocommerce-NoticeGroup{
  border-radius:14px !important;border:1px solid var(--cream-2) !important;border-top:3px solid var(--green) !important;background:#fff !important;font-family:var(--body)}
.woocommerce-error{border-top-color:var(--coral) !important}

/* Connexion / inscription */
.woocommerce .col2-set,.woocommerce-page .u-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media(max-width:780px){.woocommerce .col2-set,.woocommerce-page .u-columns{grid-template-columns:1fr}}
.woocommerce .col-1,.woocommerce .col-2,.woocommerce-page #customer_login .u-column1,.woocommerce-page #customer_login .u-column2{
  background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:28px}

/* Onglet « Mes adresses » : markup maison (surcharge my-address.php), grille propre */
.k-addresses-intro{color:var(--muted);margin:0 0 18px}
.k-addresses{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:780px){.k-addresses{grid-template-columns:1fr}}
.k-address{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:24px}
.k-address-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.k-address-head h3{font-family:var(--display);font-weight:800;font-size:19px;margin:0}
.k-address-edit{font-family:var(--mono);font-size:12px;font-weight:700;white-space:nowrap}
.k-address address{font-style:normal;color:var(--ink);font-size:14px;line-height:1.7}
.k-address .k-address-empty{color:var(--muted);font-style:italic}
/* Page « voir la commande » : titre + adresse dans une seule box .k-address (plus de cadre <address> imbriqué qui décalait le texte) */
.woocommerce-customer-details .k-addresses--one{grid-template-columns:1fr}
.woocommerce-customer-details .k-address address{border:0;padding:0;margin:0;width:auto;font-size:14px}
.woocommerce-customer-details .k-address .woocommerce-customer-details--phone,.woocommerce-customer-details .k-address .woocommerce-customer-details--email{margin:8px 0 0}
.woocommerce h2{font-family:var(--display);font-weight:800;font-size:24px;margin-bottom:16px}
.woocommerce-form-login__rememberme,.woocommerce form .form-row{margin-bottom:14px}

/* Mon compte */
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:11px 16px;border-radius:12px;background:#fff;border:1px solid var(--cream-2);font-weight:600;text-decoration:none;color:var(--ink)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--green);color:#fff;border-color:var(--green)}
.woocommerce-account .woocommerce-MyAccount-content{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:28px}
.k-account{max-width:1140px;margin:30px auto 60px;padding:0 24px}
.k-acc-head{margin-bottom:26px}
.k-acc-head h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,5vw,48px);margin:2px 0 0;line-height:1.02}
.k-acc-head p{color:var(--muted);margin-top:8px;max-width:640px}
.k-acc-layout{display:flex;gap:28px;align-items:flex-start}
@media(max-width:780px){.k-acc-layout{display:block}}
.woocommerce-account .woocommerce-MyAccount-navigation{flex:0 0 230px;width:230px;float:none}
.woocommerce-account .woocommerce-MyAccount-content{flex:1;min-width:0;width:auto;float:none}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.woocommerce-account .woocommerce-MyAccount-navigation ul li{margin:0 !important;padding:0 !important;border:0 !important}
.woocommerce-account .woocommerce-MyAccount-navigation li a{font-size:15px !important;text-decoration:none !important;padding:11px 15px !important;line-height:1.2}
.woocommerce-account .woocommerce-MyAccount-navigation li a::before{display:inline-block;margin-right:10px;font-family:var(--mono);opacity:.85}
.woocommerce-account .woocommerce-MyAccount-navigation-link--dashboard a::before{content:"\25EB"}
.woocommerce-account .woocommerce-MyAccount-navigation-link--orders a::before{content:"\25A4"}
.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-address a::before{content:"\2316"}
.woocommerce-account .woocommerce-MyAccount-navigation-link--analyses a::before{content:"\2637"}
.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-account a::before{content:"\25F7"}
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a::before{content:"\23FB"}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{color:var(--coral) !important}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover{background:var(--coral) !important;border-color:var(--coral) !important;color:#fff !important}
.woocommerce-account .woocommerce-MyAccount-content .k-acc-orders td,.woocommerce-account .woocommerce-MyAccount-content .k-acc-orders th{white-space:nowrap}

/* Panier */
.woocommerce table.shop_table{border:1px solid var(--cream-2);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff}
.woocommerce table.shop_table th{font-family:var(--body);font-weight:700;background:var(--cream);padding:14px}
.woocommerce table.shop_table td{padding:14px;border-top:1px solid var(--cream-2)}
.woocommerce .cart_totals h2{font-size:20px}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-checkout #order_review{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:24px}
.woocommerce .quantity input.qty{border:2px solid var(--cream-2);border-radius:999px;padding:8px;width:60px;text-align:center}
.woocommerce a.remove{color:var(--coral) !important;border-color:var(--coral)}

/* Checkout */
.woocommerce-checkout #customer_details{margin-bottom:24px}
.woocommerce-checkout #payment{background:#fff !important;border:1px solid var(--cream-2);border-radius:var(--radius)}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--cream-2)}

/* ---- Mon compte : tableau de bord ---- */
.woocommerce-MyAccount-content .muted,.woocommerce-account .muted{color:var(--muted)}
.k-acc-hello{font-family:var(--display);font-weight:800;font-size:22px;margin-bottom:4px}.k-acc-hello b{color:var(--green)}
.k-acc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
@media(max-width:560px){.k-acc-stats{grid-template-columns:1fr}}
.k-acc-stats .stat{background:var(--cream);border-radius:14px;padding:16px}
.k-acc-stats .stat b{font-family:var(--display);font-size:24px;display:block;line-height:1.1;color:var(--ink)}
.k-acc-stats .stat b .woocommerce-Price-amount,.k-acc-stats .stat b .amount,.k-acc-stats .stat b bdi{font-family:inherit !important;font-size:inherit !important;font-weight:inherit !important;color:inherit !important}
.k-acc-stats .stat span{font-size:13px;color:var(--muted)}
.k-acc-h3{font-size:18px;margin:10px 0 8px;font-family:var(--display);font-weight:800}
.k-acc-orders{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.k-acc-orders th{background:var(--cream);text-align:left;padding:12px;font-weight:700}
.k-acc-orders td{padding:12px;border-bottom:1px solid var(--cream-2)}
.k-acc-orders .mono{font-family:var(--mono)}
.k-acc-orders .badge{font-family:var(--mono);font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;background:#E6F4EC;color:var(--green-d)}
.k-coa-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.k-coa-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--cream-2);border-radius:14px;padding:14px 16px}
.k-coa-row b{font-family:var(--display);font-size:16px}.k-coa-row span{font-family:var(--mono);font-size:12px;color:var(--muted);margin-left:8px}

/* ---- Compte déconnecté : 2 colonnes propres (override floats + double carte) ---- */
.woocommerce-account #customer_login{display:flex !important;gap:28px;align-items:flex-start;flex-wrap:nowrap}
.woocommerce-account #customer_login > div{min-width:0;display:flex;flex-direction:column;width:auto !important;float:none !important;margin:0 !important;padding:0 !important;background:none !important;border:0 !important}
.woocommerce-account #customer_login > div:first-child{flex:1}
.woocommerce-account #customer_login > div:last-child{flex:1.35}
.woocommerce-account #customer_login form.login,.woocommerce-account #customer_login form.register{
  background:#fff !important;border:1px solid var(--cream-2) !important;border-radius:var(--radius) !important;padding:28px !important;margin:0 !important}
.woocommerce-account #customer_login h2{font-family:var(--display);font-weight:800;font-size:22px;margin:0 0 4px}
.woocommerce-account .k-card-sub{color:var(--muted);font-size:14px;margin:0 0 20px}
.woocommerce-account #customer_login .form-row{margin:0 0 16px}
.woocommerce-account .k-login-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px !important}
.woocommerce-account .k-login-row label{margin:0;font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
.woocommerce-account .k-forgot{color:var(--green);font-weight:600;text-decoration:none;font-size:14px;white-space:nowrap}
.woocommerce-account .k-legal{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}
.woocommerce-account #customer_login .k-full{width:100% !important;display:block;text-align:center}
.woocommerce-account #customer_login .k-lime{background:var(--lime) !important;color:var(--ink) !important;border-color:var(--lime) !important}
.woocommerce-account #customer_login .k-lime:hover{filter:brightness(.95);background:var(--lime) !important}
@media(max-width:780px){.woocommerce-account #customer_login{flex-direction:column}}

/* ============================================================
   Panier + Checkout
   ============================================================ */
.k-shoppage{max-width:1140px;margin:30px auto 60px;padding:0 24px}
.k-tunnel-head{margin-bottom:18px}

/* ---- Panier ---- */
.k-cartgrid{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start;margin-top:6px}
@media(max-width:880px){.k-cartgrid{grid-template-columns:1fr}}
@media(max-width:560px){
  .k-cart-item{grid-template-columns:64px 1fr !important;gap:12px;padding:14px}
  .k-cart-item .ph{width:64px;height:64px}
  .k-cart-item h3{font-size:16px;flex-wrap:wrap}
  .k-cart-item .right{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;margin-top:2px}
}
.k-cart-items{min-width:0}
.k-cart-item{display:grid;grid-template-columns:96px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:16px;margin-bottom:14px}
.k-cart-item .ph{width:96px;height:96px;border-radius:12px;background:linear-gradient(135deg,#D9F2E3,#BFE9D2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.k-cart-item .ph img{width:100%;height:100%;object-fit:cover}
.k-cart-item .cat{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.k-cart-item h3{font-size:19px;margin:3px 0 4px;display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800}
.k-cart-item h3 a{text-decoration:none;color:var(--ink)}
.k-cart-item .mol{font-family:var(--display);font-weight:800;border-radius:8px;padding:3px 9px;font-size:13px;line-height:1}
.k-cart-item .meta{font-family:var(--mono);font-size:12px;color:var(--muted);display:block;margin-bottom:8px}
.k-cart-item .remove{font-family:var(--mono);font-size:12px;color:var(--coral);text-decoration:none}
.k-cart-item .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.k-cart-item .price{font-family:var(--display);font-weight:800;font-size:18px}
.k-cart-item .price .woocommerce-Price-amount{color:var(--ink)}
.k-cart-item .k-qty{display:inline-flex;align-items:center;border:2px solid var(--cream-2);border-radius:999px;overflow:hidden}
.k-cart-item .k-qty button{border:0;background:none;width:32px;height:38px;font-size:18px;cursor:pointer;color:var(--ink)}
.k-cart-item .k-qty input{width:38px;text-align:center;border:0;font-weight:700;font-family:var(--body);background:none;-moz-appearance:textfield}
.k-cart-item .k-qty input::-webkit-outer-spin-button,.k-cart-item .k-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.k-update-cart{position:absolute !important;left:-9999px}
.k-continue{display:inline-block;margin-top:8px;font-weight:600;color:var(--green);text-decoration:none}
.k-summary{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:26px;position:sticky;top:24px}
/* Après la déclaration sticky : à spécificité égale, c'est l'ordre qui tranche.
   En une colonne le bloc n'accompagne plus rien et se superposerait au contenu. */
@media(max-width:880px){.k-summary{position:static}}
.k-summary h2{font-size:20px;margin-bottom:18px;font-family:var(--display);font-weight:800}
.k-summary .srow{display:flex;justify-content:space-between;padding:9px 0;font-size:15px;color:var(--muted)}
.k-summary .srow b{color:var(--ink);font-weight:700}
.k-summary .srow.free{align-items:flex-start}
.k-summary .srow.free b{color:var(--green);text-align:right;line-height:1.45}
.k-summary .srow.free b a{display:block;font-size:12px;font-weight:400;margin-top:2px}
.k-summary .stotal{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--cream-2);margin-top:8px;padding-top:14px}
.k-summary .stotal .lbl{font-weight:700;font-size:16px}.k-summary .stotal .lbl small{font-weight:400;color:var(--muted);font-size:12px}
.k-summary .stotal .amt{font-family:var(--display);font-weight:800;font-size:26px}
.k-summary .stotal .amt .woocommerce-Price-amount{color:var(--ink)}
.k-summary .wc-proceed-to-checkout{margin-top:18px}
.k-summary .wc-proceed-to-checkout a.checkout-button{display:block !important;width:100%;text-align:center}
.k-summary .k-trust{display:flex;flex-direction:column;gap:8px;margin-top:16px;font-size:12.5px;color:var(--muted)}

/* ---- Checkout ---- */
@media(min-width:880px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start}
  .woocommerce-checkout #customer_details{grid-column:1;grid-row:1 / span 2}
  .woocommerce-checkout #order_review_heading{grid-column:2;grid-row:1;margin:0 0 12px}
  .woocommerce-checkout #order_review{grid-column:2;grid-row:2;position:sticky;top:24px}
}
.woocommerce-checkout #customer_details .col2-set{display:block}
.woocommerce-checkout #customer_details .col-1,.woocommerce-checkout #customer_details .col-2{width:auto;float:none;margin-bottom:20px}
.woocommerce-checkout #customer_details .col-1,.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout #order_review{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:26px}
.woocommerce-checkout #order_review_heading{font-family:var(--display);font-weight:800;font-size:20px}
.woocommerce-checkout h3{font-family:var(--display);font-weight:800;font-size:20px}
.woocommerce-checkout .woocommerce-checkout-review-order-table{border:0;background:none}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,.woocommerce-checkout .woocommerce-checkout-review-order-table td{padding:10px 0;border-top:1px solid var(--cream-2);background:none}
.woocommerce-checkout #payment{background:#F8FBF6 !important;border:1px solid var(--cream-2);border-radius:14px;margin-top:8px}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--cream-2);padding:14px}
.woocommerce-checkout #payment div.form-row{padding:14px}
.woocommerce-checkout #place_order{width:100%;font-size:16px !important}
.woocommerce-checkout .woocommerce-privacy-policy-text{font-size:12px;color:var(--muted)}

/* ---- Correctifs panier/checkout ---- */
/* bouton retirer : reset du style WooCommerce (cercle/gros) */
.k-cart-item .remove{display:inline-block !important;font-family:var(--mono) !important;font-size:12px !important;font-weight:400 !important;width:auto !important;height:auto !important;line-height:1.4 !important;border-radius:0 !important;background:none !important;color:var(--coral) !important;text-decoration:none}
.k-cart-item .remove:hover{background:none !important;color:var(--coral) !important}
/* total : note TVA en petit sous le montant, pas de débordement */
.k-summary .stotal{align-items:flex-start}
.k-summary .stotal .amt{text-align:right;line-height:1.1}
.k-summary .stotal .amt small,.k-summary .stotal .amt .includes_tax,.k-summary .stotal .amt .tax_label{display:block;font-family:var(--body);font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
/* expédition : ligne propre */
.k-summary .srow.k-shipping{align-items:flex-start}
.k-summary .srow.k-shipping b{text-align:right}
.k-summary .srow.k-shipping ul{list-style:none;margin:0;padding:0}
/* boutons pleine largeur sans débordement */
.woocommerce .button,.woocommerce a.button,.woocommerce button.button,.k-summary .checkout-button,.woocommerce #place_order{box-sizing:border-box !important}
.k-summary .wc-proceed-to-checkout a.checkout-button{padding-left:20px;padding-right:20px}
/* bloc info récap (renommé, plus de fond sombre) */
.k-summary .k-sum-trust{display:flex;flex-direction:column;gap:8px;margin-top:18px;padding:0;background:none;font-size:12.5px;color:var(--muted)}
.k-summary .k-sum-trust span{display:inline-flex;align-items:center;gap:8px}
/* badge compteur panier dans l'en-tête */
.k-cart-link{position:relative}
.k-cart-chip.k-cart-count{background:var(--green);color:#fff;border-radius:999px;font-size:11px;font-weight:700;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;position:absolute;top:-6px;right:-9px;margin:0}
.k-cart-count:not(.has){display:none}

/* ---- Toast d'ajout panier ---- */
.k-toast-wrap{position:fixed;bottom:24px;right:18px;z-index:9999;display:flex;flex-direction:column-reverse;gap:10px;max-width:calc(100vw - 36px)}
.k-toast{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--cream-2);border-left:4px solid var(--green);border-radius:14px;padding:14px 16px;box-shadow:0 16px 40px rgba(21,33,27,.16);min-width:300px;transform:translateX(120%);opacity:0;transition:transform .35s ease,opacity .35s ease;font-family:var(--body)}
.k-toast.show{transform:translateX(0);opacity:1}
.k-toast .ic{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.k-toast .tx b{display:block;font-family:var(--display);font-size:15px;line-height:1.1}
.k-toast .tx span{font-size:12px;color:var(--muted)}
.k-toast .go{margin-left:auto;font-weight:700;color:var(--green);text-decoration:none;font-size:13px;white-space:nowrap}
@media(max-width:520px){.k-toast{min-width:0;width:calc(100vw - 36px)}}

/* ---- Badge panier : badge de coin, ne masque plus l'icône ---- */
.k-actions .k-cart-link{position:relative;overflow:visible}
.k-cart-chip.k-cart-count{position:absolute;top:0;right:0;transform:translate(50%,-50%);min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:1;border:2px solid var(--cream);box-sizing:content-box;border-radius:999px;pointer-events:none}

/* Masque le titre de page par défaut sur panier/checkout (on garde l'en-tête custom) */
.woocommerce-cart .wp-block-post-title,.woocommerce-checkout .wp-block-post-title{display:none}

/* ============================================================
   Checkout : recoloration des éléments WooCommerce (anti-bleu)
   ============================================================ */
/* notices / coupon : couleurs Kanaa */
.woocommerce-info,.woocommerce-message,.woocommerce-noreviews,.woocommerce-form-coupon-toggle .woocommerce-info{
  background:#F1FAF4 !important;border:1px solid var(--cream-2) !important;border-left:4px solid var(--green) !important;color:var(--ink) !important;border-radius:12px}
.woocommerce-info::before,.woocommerce-message::before{color:var(--green) !important}
.woocommerce-info a,.woocommerce-message a{color:var(--green-d);font-weight:600}
.woocommerce-error{border-left-color:var(--coral) !important}.woocommerce-error::before{color:var(--coral) !important}
/* liens & accents WooCommerce */
.woocommerce main a:not(.button):not(.k-btn){color:var(--green)}
.woocommerce input[type=radio],.woocommerce input[type=checkbox]{accent-color:var(--green)}
/* paiement */
.woocommerce-checkout #payment ul.payment_methods li{list-style:none;padding:6px 0}
.woocommerce-checkout #payment ul.payment_methods li label{font-weight:600;color:var(--ink)}
.woocommerce-checkout #payment .payment_box{background:#F1FAF4 !important;border-radius:12px;color:var(--ink);font-size:13px;box-shadow:none}
.woocommerce-checkout #payment .payment_box::before{border-bottom-color:#F1FAF4 !important}
.woocommerce-checkout #payment .about_paypal,.woocommerce-checkout #payment img{vertical-align:middle}
/* tableau récap de commande */
.woocommerce-checkout-review-order-table{border:1px solid var(--cream-2) !important;border-radius:var(--radius);overflow:hidden;background:#fff}
.woocommerce-checkout-review-order-table thead th{background:var(--cream);font-family:var(--body);font-weight:700}
.woocommerce-checkout-review-order-table .order-total .amount,.woocommerce-checkout-review-order-table .order-total th{font-family:var(--display);font-weight:800;color:var(--ink);font-size:18px}
.woocommerce-checkout-review-order-table .includes_tax,.woocommerce-checkout-review-order-table small{font-size:11px;color:var(--muted);font-weight:400}

/* ============================================================
   Checkout : overrides forts (woocommerce-blocktheme.css charge après)
   ============================================================ */
/* block notice (code promo) bleu -> Kanaa */
.wc-block-components-notice-banner,.wc-block-components-notice-banner.is-info{
  background:#F1FAF4 !important;border:1px solid var(--cream-2) !important;border-left:4px solid var(--green) !important;color:var(--ink) !important;border-radius:12px !important}
.wc-block-components-notice-banner svg,.wc-block-components-notice-banner__icon{fill:var(--green) !important;color:var(--green) !important}
.wc-block-components-notice-banner a,.woocommerce-form-coupon-toggle a{color:var(--green-d) !important;font-weight:600}
/* notice d'erreur/alerte (ex. stock insuffisant au panier) : lila WC -> corail Kanaa */
.wc-block-components-notice-banner.is-error,.wc-block-components-notice-banner.is-warning{
  background:#FFF4F2 !important;border:1px solid #F6DAD4 !important;border-left:4px solid var(--coral) !important;box-shadow:none !important;color:var(--ink) !important;border-radius:12px !important}
.wc-block-components-notice-banner.is-error svg,.wc-block-components-notice-banner.is-warning svg{fill:var(--coral) !important;color:var(--coral) !important}
/* grille 2 colonnes forcée */
@media(min-width:880px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{display:grid !important;grid-template-columns:1fr 380px !important;gap:32px;align-items:start}
  .woocommerce-checkout #customer_details{grid-column:1 !important;grid-row:1 / span 2 !important}
  .woocommerce-checkout #order_review_heading{grid-column:2 !important;grid-row:1 !important;margin:0 0 12px !important}
  .woocommerce-checkout #order_review{grid-column:2 !important;grid-row:2 !important;position:sticky;top:24px}
}
/* box paiement (plus de lilas) */
.woocommerce-checkout #payment .payment_box,.woocommerce #payment div.payment_box{background:#F1FAF4 !important;color:var(--ink) !important;box-shadow:none !important}
.woocommerce-checkout #payment .payment_box::before,.woocommerce #payment div.payment_box::before{border-bottom-color:#F1FAF4 !important}
.woocommerce-checkout #payment{background:#fff !important;border:1px solid var(--cream-2) !important;border-radius:var(--radius) !important}
.woocommerce-checkout #payment ul.payment_methods{background:#fff !important}
/* tableau récap : reset des bordures/fonds blocktheme */
.woocommerce-checkout-review-order-table,.woocommerce-checkout-review-order-table tbody,.woocommerce-checkout-review-order-table tr,.woocommerce-checkout-review-order-table td,.woocommerce-checkout-review-order-table th{background:none !important}
.woocommerce-checkout-review-order-table{border:1px solid var(--cream-2) !important;border-radius:var(--radius);overflow:hidden}
.woocommerce-checkout-review-order-table thead th{background:var(--cream) !important}

/* ---- Checkout : icône notice masquée + layout float (remplace la grille) ---- */
.wc-block-components-notice-banner__icon,.wc-block-components-notice-banner > svg,.woocommerce-form-coupon-toggle svg{display:none !important}
.wc-block-components-notice-banner{padding-left:18px !important}
@media(min-width:880px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{display:block !important}
  .woocommerce-checkout #customer_details{float:left !important;width:calc(100% - 412px) !important;grid-column:auto !important;grid-row:auto !important}
  .woocommerce-checkout #order_review_heading{float:right !important;width:380px !important;clear:right;grid-row:auto !important;grid-column:auto !important;margin:0 0 12px !important}
  .woocommerce-checkout #order_review{float:right !important;width:380px !important;clear:right;grid-row:auto !important;grid-column:auto !important;position:static !important}
  .woocommerce-checkout form.checkout::after{content:"";display:block;clear:both}
}

/* ---- Checkout : layout via wrappers maison (déterministe) ---- */
.woocommerce-checkout form.checkout.woocommerce-checkout{display:block !important}
.k-checkout-grid{display:grid !important;grid-template-columns:1fr 380px;gap:32px;align-items:start;margin-top:6px}
@media(max-width:880px){.k-checkout-grid{grid-template-columns:1fr}}
.k-checkout-main{min-width:0}
.k-checkout-side{position:sticky;top:24px;min-width:0}
/* Après la déclaration sticky : à spécificité égale, c'est l'ordre qui tranche.
   En une colonne le bloc n'accompagne plus rien et se superposerait au contenu. */
@media(max-width:880px){.k-checkout-side{position:static}}
.k-checkout-grid #customer_details,.k-checkout-grid #order_review,.k-checkout-grid #order_review_heading{float:none !important;width:auto !important;grid-column:auto !important;grid-row:auto !important;position:static !important}
.k-checkout-main #customer_details.col2-set{display:block}
.k-checkout-main #customer_details .col-1,.k-checkout-main #customer_details .col-2{width:auto !important;float:none !important;margin:0 0 20px !important}
.k-checkout-side #order_review_heading{margin:0 0 12px}

/* ============================================================
   Checkout : récap avec vignettes + focus + coupon + resserrage
   ============================================================ */
/* focus champs : vert (plus de lila/bleu OS) */
.woocommerce form .form-row input.input-text:focus,.woocommerce input.input-text:focus,.woocommerce textarea:focus,
.woocommerce select:focus,.woocommerce .select2-container--focus .select2-selection,.k-buybox input:focus,.k-cart-item input:focus,
.krange input:focus,.k-news input[type=email]:focus{outline:none !important;border-color:var(--green) !important;box-shadow:0 0 0 3px rgba(28,122,78,.15) !important}
/* boîte coupon propre */
.checkout_coupon.woocommerce-form-coupon{border:1px solid var(--cream-2) !important;border-radius:14px !important;padding:18px !important;background:#fff;margin:0 0 22px}
.checkout_coupon .button{background:var(--green) !important;border-color:var(--green) !important;color:#fff !important}
/* récap : table sans cadre propre (le #order_review est déjà une carte) */
.woocommerce-checkout-review-order-table{border:0 !important;background:none !important}
.woocommerce-checkout-review-order-table thead{display:none}
.woocommerce-checkout-review-order-table .k-oi-row td{border:0 !important;padding:12px 0;vertical-align:middle;background:none !important}
.woocommerce-checkout-review-order-table .k-oi-row{border-bottom:1px solid var(--cream-2)}
.woocommerce-checkout-review-order-table .k-oi-row .product-name{display:flex;align-items:center;gap:12px}
.k-oi-thumb{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,#D9F2E3,#BFE9D2);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.k-oi-thumb img{width:100%;height:100%;object-fit:cover}
.k-oi-thumb svg{width:55%;color:var(--green);opacity:.5}
.k-oi-info .nm{font-weight:700;font-size:14px;display:block;line-height:1.2;font-family:var(--display)}
.k-oi-info .nm .mol{font-size:11px;padding:2px 7px;border-radius:6px;font-family:var(--display)}
.k-oi-info .mt{font-family:var(--mono);font-size:11px;color:var(--muted)}
.woocommerce-checkout-review-order-table .product-total{font-family:var(--display);font-weight:800;text-align:right;white-space:nowrap;color:var(--ink)}
.woocommerce-checkout-review-order-table tfoot th{font-weight:600;text-align:left;padding:8px 0;border-top:1px solid var(--cream-2);background:none !important;color:var(--muted)}
.woocommerce-checkout-review-order-table tfoot td{text-align:right;padding:8px 0;border-top:1px solid var(--cream-2);background:none !important;color:var(--ink);font-weight:700}
.woocommerce-checkout-review-order-table tfoot .order-total th,.woocommerce-checkout-review-order-table tfoot .order-total td{font-family:var(--display);font-weight:800;font-size:18px;border-top:2px solid var(--cream-2);color:var(--ink)}
.woocommerce-checkout-review-order-table tfoot .includes_tax,.woocommerce-checkout-review-order-table small{font-size:11px;color:var(--muted);font-weight:400}
/* formulaire resserré */
.woocommerce-checkout #customer_details .form-row{margin:0 0 14px}
.woocommerce-checkout #customer_details h3{font-family:var(--display);font-weight:800;font-size:20px;margin:0 0 16px}
#billing_company_field{display:none}

/* ============================================================
   Checkout 3 étapes
   ============================================================ */
.k-card{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:26px}
.k-checkout-main .k-step{margin-bottom:20px}
.k-step-h{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.k-step-n{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-family:var(--display);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.k-step-h h3{margin:0;font-family:var(--display);font-weight:800;font-size:20px}
.k-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.k-fields > .form-row{margin:0 0 14px;float:none !important;width:auto !important;display:flex;flex-direction:column}
.k-fields > .form-row-wide,.k-fields > #billing_email_field,.k-fields > #billing_address_1_field,.k-fields > #billing_address_2_field{grid-column:1 / -1}
.k-fields label{font-weight:600;font-size:13px;margin-bottom:5px}
.k-fields #billing_country_field{display:none}
/* méthodes de paiement (étape 3) */
#payment ul.payment_methods{list-style:none;margin:0;padding:0}
#payment ul.payment_methods li{border:2px solid var(--cream-2);border-radius:14px;padding:14px 16px;margin:0 0 10px}
#payment ul.payment_methods li label{font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:8px;margin:0}
#payment ul.payment_methods li img{margin-left:8px;vertical-align:middle}
.k-pay-note{font-size:12px;color:var(--muted);margin:12px 0 0}
.k-nopay{color:var(--muted);font-size:14px}
/* récap (droite) */
.k-side-title{font-family:var(--display);font-weight:800;font-size:20px;margin:0 0 16px}
.k-checkout-side #order_review{background:none !important;border:0 !important;padding:0 !important}
.k-checkout-side .place-order{margin-top:18px;padding:0}
.k-checkout-side .woocommerce-terms-and-conditions-wrapper{margin-bottom:14px;font-size:13px}
.k-pay-btn{width:100% !important;background:var(--lime) !important;color:var(--ink) !important;border:0 !important;border-radius:999px !important;font-weight:700 !important;font-size:16px !important;padding:16px !important;box-sizing:border-box !important;float:none !important}
.k-pay-btn:hover{filter:brightness(.95)}
.k-checkout-legal{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;margin-top:12px}

/* ============================================================
   Checkout : raffinements (champs 2-col, paiement maquette, récap)
   ============================================================ */
/* champs : 2 par ligne par défaut, adresse en pleine largeur */
.k-fields > #billing_address_1_field,.k-fields > #billing_address_2_field{grid-column:1 / -1}
.k-fields > #billing_state_field{display:none}
/* étape 3 : carte de paiement (style maquette) */
#payment ul.payment_methods li.wc_payment_method{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:2px solid var(--cream-2);border-radius:14px;padding:14px 16px;margin:0 0 10px;list-style:none}
#payment ul.payment_methods li.wc_payment_method:has(input:checked){border-color:var(--green);background:#F1FAF4}
#payment ul.payment_methods li.wc_payment_method > input[type=radio]{flex:0 0 auto;accent-color:var(--green);width:18px;height:18px;margin:0}
#payment ul.payment_methods li.wc_payment_method > label{flex:1;display:flex;align-items:center;gap:10px;margin:0;font-weight:700;font-size:16px;color:var(--ink);cursor:pointer}
#payment ul.payment_methods li.wc_payment_method > label img{margin:0;max-height:24px;width:auto}
#payment .k-cic-badge{margin-left:auto;font-family:var(--mono);font-weight:700;font-size:12px;background:#fff;border:1px solid var(--cream-2);border-radius:8px;padding:6px 10px;white-space:nowrap}
#payment .payment_box{flex:0 0 100%;background:none !important;padding:4px 0 0 32px !important;margin:0 !important;font-size:13px;color:var(--muted);box-shadow:none}
#payment .payment_box::before{display:none !important}
#payment .payment_box p{margin:0}
/* bloc transporteur (étape 2) */
.k-ship-frame{background:transparent;border:1px solid var(--cream-2);border-radius:14px;padding:14px;margin-top:8px;display:flex;flex-direction:column;gap:10px}
.k-ship-info{display:flex;align-items:center;gap:12px;border:2px solid var(--cream-2);border-radius:14px;padding:14px 16px;margin:0;cursor:pointer;transition:border-color .15s,background .15s}
.k-ship-info:hover{border-color:var(--green)}
.k-ship-info > .k-pm-body{flex:1;display:flex;align-items:center;gap:12px;margin:0;min-width:0}
.k-ship-info .k-pm-title{white-space:nowrap}
.k-ship-info.is-selected{border-color:var(--green);background:#F1FAF4}
.k-ship-info .k-ship-radio{flex:0 0 auto;accent-color:var(--green);width:18px;height:18px;margin:0;cursor:pointer}
.k-ship-cost{font-weight:700;font-size:14px;color:var(--green);white-space:nowrap}
.k-ship-empty{color:var(--muted);font-size:14px;margin:0;padding:6px 2px}
/* récap : alignement vignette/texte + total étroit */
.woocommerce-checkout-review-order-table .product-total{width:88px;text-align:right;vertical-align:middle}
.woocommerce-checkout-review-order-table .k-oi-row .product-name{display:flex;align-items:center;gap:12px;vertical-align:middle}
.k-oi-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.k-oi-info .nm{display:block;white-space:normal;line-height:1.15}
.k-oi-info .mt{display:block}
/* expédition : « Expédition » + transporteur en sous-titre à gauche, prix seul à droite */
.k-ship-name{display:block;font-size:11.5px;font-weight:400;color:var(--muted);line-height:1.35;margin-top:2px;white-space:normal}
.woocommerce-checkout-review-order-table .shipping th{vertical-align:top}
.woocommerce-checkout-review-order-table .shipping td{white-space:nowrap;vertical-align:top}
/* email/tél et CP/ville sur une ligne (override des règles full-width précédentes) */
.k-fields > #billing_email_field,.k-fields > #billing_phone_field,.k-fields > #billing_postcode_field,.k-fields > #billing_city_field{grid-column:auto !important}

/* ---- Checkout polish ---- */
/* numéros d'étape alignés au titre */
.k-step-h{align-items:center}
.k-step-h h3{line-height:1;margin:0;padding:0}
.k-step-n{line-height:1}
/* Total TTC : note TVA en petit, sous le montant, alignée à droite */
.woocommerce-checkout-review-order-table tfoot .order-total th,.woocommerce-checkout-review-order-table tfoot .order-total td{vertical-align:top}
.woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax{display:block;font-family:var(--body) !important;font-size:11px !important;font-weight:400 !important;color:var(--muted) !important;margin-top:3px}
.woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax .amount,.woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax .woocommerce-Price-amount{font-family:var(--body) !important;font-size:11px !important;font-weight:400 !important;color:var(--muted) !important}
/* sous-titre paiement : aligné au titre + plus petit */
#payment .payment_box,#payment .payment_box p{font-size:12px !important;color:var(--muted) !important}
#payment .payment_box{padding:4px 0 0 30px !important}

/* ---- Checkout polish v2 ---- */
/* numéro d'étape : même hauteur que le titre -> centré */
.k-step-h h3{line-height:28px !important}
/* radio de paiement forcé visible (masqué par WC quand 1 seule méthode) */
#payment .payment_methods li input[type=radio]{display:inline-block !important;opacity:1 !important;position:static !important;appearance:auto !important;-webkit-appearance:radio !important;width:18px !important;height:18px !important;accent-color:var(--green) !important;margin:0 !important}
/* grammage récap : pas d'espacement parasite */
.k-oi-info .mt{white-space:nowrap;letter-spacing:0}
/* prix récap auto-largeur + (dont TVA) sur une ligne */
.woocommerce-checkout-review-order-table .product-total{width:1% !important;white-space:nowrap;text-align:right;vertical-align:middle}
.woocommerce-checkout-review-order-table tfoot td{text-align:right;white-space:nowrap}
.woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax{white-space:nowrap}

/* ---- Checkout polish v3 ---- */
/* numéro d'étape : centrage propre (annule le line-height 28px) */
.k-step-h{display:flex !important;align-items:center !important;gap:12px}
.k-step-h h3{line-height:1 !important;margin:0 !important;padding:0}
.k-step-n{align-self:center;flex:0 0 28px}
/* bloc paiement : radio centré | infos colonne | logos+badge à droite */
#payment ul.payment_methods li.wc_payment_method{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#payment ul.payment_methods li.wc_payment_method::before,#payment ul.payment_methods li.wc_payment_method::after{content:none;display:none}
#payment ul.payment_methods li.wc_payment_method > input[type=radio]{flex:0 0 auto;align-self:center}
#payment ul.payment_methods li.wc_payment_method > .k-pm-body{flex:1;display:flex;align-items:center;gap:12px;margin:0;cursor:pointer;min-width:0}
.k-pm-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.k-pm-title{font-weight:700;font-size:16px;color:var(--ink);font-family:var(--body)}
.k-pm-sub{font-size:12px;color:var(--muted);font-weight:700}
.k-pm-icons{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}
.k-pm-icons img{max-height:22px;width:auto;margin:0}
.k-pm-icons .k-cic-badge{margin-left:0}
/* récap : aucun fond gris de ligne */
.woocommerce-checkout-review-order-table tr,.woocommerce-checkout-review-order-table td,.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table tbody,.woocommerce-checkout-review-order-table tfoot{background:none !important;background-color:transparent !important}

/* ---- Fix débordement récap : seuls les montants en nowrap, le reste wrap ---- */
.woocommerce-checkout-review-order-table{width:100%;max-width:100%;table-layout:auto}
.woocommerce-checkout-review-order-table tfoot td,.woocommerce-checkout-review-order-table tfoot th,.woocommerce-checkout-review-order-table .shipping td{white-space:normal}
.woocommerce-checkout-review-order-table .product-total,.woocommerce-checkout-review-order-table tfoot .order-total td .amount,.woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax{white-space:nowrap}

/* ============================================================
   Le Mag (blog index + article)
   ============================================================ */
.k-mag .k-mag-head{padding:40px 0 18px;text-align:center}
.k-mag-head h1{font-family:var(--display);font-weight:800;font-size:clamp(38px,5vw,56px);margin:5px 0 0}
.k-mag-head p{color:var(--muted);font-size:18px;margin-top:12px}
.k-mag-cats{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:24px 0}
.k-mag-cats a{border:2px solid var(--cream-2);background:#fff;border-radius:999px;padding:8px 16px;font-weight:700;font-size:14px;text-decoration:none;color:var(--ink)}
.k-mag-cats a.on,.k-mag-cats a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.k-mag-feat{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:#fff;border:1px solid var(--cream-2);border-radius:24px;overflow:hidden;margin:14px 0 40px;text-decoration:none;color:var(--ink)}
@media(max-width:820px){.k-mag-feat{grid-template-columns:1fr}}
.k-mag-feat .img,.k-mag-feat .k-mag-ph{display:block;width:100%;height:auto;align-self:center}
.k-mag-feat .body{padding:32px}
.k-mag-feat .tag{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green)}
.k-mag-feat h2{font-family:var(--display);font-weight:800;font-size:30px;margin:10px 0 12px;line-height:1.1}
.k-mag-feat p{color:var(--muted)}
.k-mag-feat .more{display:inline-block;margin-top:18px;font-weight:700;color:var(--green)}
.k-mag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:50px;align-items:start}
@media(max-width:820px){.k-mag-grid{grid-template-columns:1fr}}
.k-mag-card{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);transition:.2s;display:flex;flex-direction:column}
.k-mag-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(21,33,27,.08)}
.k-mag-card .img,.k-mag-card .k-mag-ph{aspect-ratio:16/9;display:block;width:100%;height:auto;object-fit:cover;flex-shrink:0}
.k-mag-card .bd{padding:16px 20px 18px;display:flex;flex-direction:column}
.k-mag-card .tag{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green)}
.k-mag-card h3{font-family:var(--display);font-weight:800;font-size:19px;margin:8px 0;line-height:1.15}
.k-mag-card p{font-size:14px;color:var(--muted);margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.k-mag-card .meta{font-family:var(--mono);font-size:11px;color:var(--muted)}
.k-mag-cardfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.k-mag-card .more{font-family:var(--body);font-weight:700;font-size:13px;color:var(--green);white-space:nowrap}
.k-mag-card:hover .more{text-decoration:underline}
.k-mag-feat[hidden]{display:none}
.k-mag-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:6px 0 56px}
.k-mag-pager[hidden]{display:none}
.k-mag-pager button{border:2px solid var(--cream-2);background:#fff;border-radius:999px;padding:9px 20px;font-family:var(--body);font-weight:700;font-size:14px;color:var(--ink);cursor:pointer;transition:.15s}
.k-mag-pager button:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.k-mag-pager button:disabled{opacity:.35;cursor:default}
.k-mag-pageinfo{font-family:var(--mono);font-size:13px;color:var(--muted);min-width:44px;text-align:center}

/* Article single */
.k-article{background:#fff;margin-top:0 !important}
.k-article .k-article-tag{display:inline-block;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--green);text-decoration:none}
.k-article-title{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.5vw,44px);margin:10px 0 14px;line-height:1.1}
.k-article-meta{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:14px;margin-bottom:24px}
.k-article-cover{display:block;width:100%;height:360px;object-fit:cover;border-radius:20px;background-size:cover;background-position:center;margin-bottom:28px}
/* Couverture titrée paysage (le titre est dans l'image) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.k-article-head.is-cover .k-article-cover{height:auto;aspect-ratio:16/9;margin-bottom:14px}
.k-article-head.is-cover .k-article-meta{margin-bottom:24px}
.k-article-body{font-size:17px;color:#2f3d34}
.k-article-body p{margin-bottom:16px;line-height:1.7}
.k-article-body h2{font-family:var(--display);font-weight:800;font-size:24px;margin:30px 0 10px;color:var(--ink)}
.k-article-body ul{margin:0 0 16px 1.2em}.k-article-body li{margin-bottom:6px}
.k-article-body table{width:100%;border-collapse:separate;border-spacing:0;margin:24px 0;font-size:15px;border:1px solid var(--cream-2);border-radius:12px;overflow:hidden}
.k-article-body th,.k-article-body td{padding:11px 14px;text-align:left;border-top:1px solid var(--cream-2);vertical-align:top;line-height:1.45}
.k-article-body thead th{background:var(--cream);font-weight:800;border-top:0;color:var(--ink)}
.k-article-body tbody tr:nth-child(even){background:#fcfaf4}
.k-article-body td:first-child,.k-article-body tbody th:first-child{font-weight:700;color:var(--ink)}
.k-article-body .k-btn-primary,.k-article-body .k-btn-primary:hover{color:#fff}
@media(max-width:600px){.k-article-body table{display:block;overflow-x:auto;white-space:nowrap}}
.k-article-body a{color:var(--green);font-weight:600}
.k-article-body strong{color:var(--ink)}
/* ---- Composants de mise en page des articles (surlignage, chiffres, encadrés) ---- */
.k-article-body .k-hl{background:linear-gradient(180deg,transparent 58%,var(--lime) 58%);color:inherit;padding:0 2px;font-weight:600}
.k-article-body .k-lead{font-size:18px;line-height:1.6;color:var(--ink)}
.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:26px 0}
.k-stat{background:var(--ink);color:var(--cream);border-radius:16px;padding:18px 16px;text-align:center}
.k-stat b{display:block;font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--lime)}
.k-stat span{display:block;margin-top:7px;font-size:12.5px;line-height:1.35;color:#AAB3AC}
.k-note{position:relative;margin:26px 0;padding:18px 20px 18px 22px;background:#F6FBF7;border:1px solid var(--cream-2);border-left:4px solid var(--green);border-radius:14px}
.k-note p{margin:0 0 8px}.k-note p:last-child{margin-bottom:0}
.k-note b{color:var(--green)}
.k-note.is-alert{background:#FFF7F5;border-left-color:var(--coral)}
.k-note.is-alert b{color:#D2452F}
.k-note .k-note-t{display:block;font-family:var(--display);font-weight:800;font-size:16px;margin-bottom:6px;color:var(--ink)}
.k-article-body .k-src{font-size:13px;color:var(--muted);line-height:1.55;border-top:1px solid var(--cream-2);padding-top:14px;margin-top:30px}
.k-article-body .k-src a{font-weight:500}
.k-article-body td .k-up{color:#D2452F;font-weight:700;white-space:nowrap}
.k-article-body caption{caption-side:bottom;padding-top:9px;font-size:12.5px;color:var(--muted);text-align:left}
.k-article-cta-in{display:flex;align-items:center;gap:18px;background:var(--cream-2);border-radius:var(--radius);padding:22px 24px;margin-top:34px;flex-wrap:wrap}
.k-article-cta-in b{font-family:var(--display);font-size:18px;display:block}
.k-article-cta-in span{font-size:14px;color:var(--muted)}
.k-article-cta-in .k-btn{margin-left:auto}

/* Bloc « produits liés » en fin d'article (maillage interne SEO) */
.k-article-prods{margin-top:44px;padding-top:30px;border-top:1px solid var(--cream-2)}
.k-article-prods h2{font-family:var(--display);font-weight:800;font-size:clamp(22px,3vw,28px);margin:0 0 4px}
.k-article-prods .k-sub{margin-bottom:18px}
.k-article-prods ul.products{grid-template-columns:repeat(3,1fr) !important;gap:16px !important}
.k-article-prods ul.products li.product .woocommerce-loop-product__title{font-size:17px;padding:12px 14px 4px}
.k-article-prods ul.products li.product .price{padding:0 14px;font-size:17px}
.k-article-prods ul.products li.product .button{margin:12px 14px 14px}
@media(max-width:600px){.k-article-prods ul.products{grid-template-columns:1fr 1fr !important}}

/* Lien « À lire » sur la fiche produit (maillage produit → contenu) */
.k-readlink{display:flex;align-items:center;gap:14px;background:var(--cream-2);border-radius:var(--radius);padding:16px 22px;text-decoration:none;color:var(--ink);flex-wrap:wrap;transition:.2s}
.k-readlink:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(21,33,27,.08)}
.k-readlink-tag{font-size:11px;letter-spacing:1px;color:var(--green);font-weight:800}
.k-readlink-title{font-family:var(--display);font-weight:800;font-size:18px;flex:1;min-width:180px}
.k-readlink-go{color:var(--green);font-weight:800;white-space:nowrap}
/* En dessous de 620 px, les trois éléments ne tiennent plus côte à côte : le
   `flex-wrap` les répartissait en escalier, l'étiquette d'un côté et le titre
   décalé de l'autre. On empile proprement. */
@media(max-width:620px){
	.k-readlink{flex-direction:column;align-items:flex-start;gap:9px;padding:18px 20px}
	.k-readlink-title{min-width:0;font-size:17px;line-height:1.25}
}

/* ============================================================
   Pages contenu : FAQ / Contact / CGV (scopées)
   ============================================================ */
/* FAQ */
.k-faq .wrap{max-width:820px;margin:0 auto;padding:0 24px}
.k-faq .hero{padding:50px 0 18px;text-align:center}
.k-faq .hero h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,50px);margin:6px 0 0}
.k-faq .hero p{color:var(--muted);font-size:18px;margin-top:12px}
.k-faq .cats{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:26px 0 8px}
.k-faq .cats a{border:2px solid var(--cream-2);background:#fff;border-radius:999px;padding:9px 18px;font-weight:700;font-size:14px;text-decoration:none;color:var(--ink)}
.k-faq .cats a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.k-faq .faqgroup{margin:34px 0}.k-faq .faqgroup h2{font-family:var(--display);font-weight:800;font-size:22px;margin-bottom:14px}
.k-faq .q{background:#fff;border:1px solid var(--cream-2);border-radius:14px;margin-bottom:12px;overflow:hidden}
.k-faq .q summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.k-faq .q summary::-webkit-details-marker{display:none}
.k-faq .q summary .ic{width:26px;height:26px;border-radius:50%;border:2px solid var(--green);color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;line-height:1;padding-bottom:2px;flex-shrink:0;transition:.2s}
.k-faq .q[open] summary .ic{background:var(--green);color:#fff;transform:rotate(45deg)}
.k-faq .q .a{padding:0 20px 20px;color:var(--muted);font-size:15px}
.k-faq .contactcta{background:var(--ink);color:var(--cream);border-radius:28px;text-align:center;padding:48px 24px;margin:50px 0 70px}
.k-faq .contactcta h2{font-family:var(--display);font-weight:800;color:#fff;font-size:30px}.k-faq .contactcta p{color:#b9c2bb;margin:10px auto 22px;max-width:420px}
.k-faq .btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;padding:14px 28px;border-radius:999px;background:var(--lime);color:var(--ink);text-decoration:none}

/* Contact */
.k-contact .wide{max-width:1100px;margin:0 auto}
.k-contact .head{padding:46px 0 8px}.k-contact .head h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,50px);margin:6px 0 0}.k-contact .head p{color:var(--muted);font-size:18px;margin-top:12px;max-width:560px}
.k-contact .grid{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:start;padding:26px 0 70px}
@media(max-width:820px){.k-contact .grid{grid-template-columns:1fr}}
.k-contact .card{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:30px}
.k-contact .card h2{font-family:var(--display);font-weight:800;font-size:22px;margin-bottom:18px}
.k-contact .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.k-contact .frow.full{grid-template-columns:1fr}
.k-contact .field label{display:block;font-weight:600;font-size:13px;margin-bottom:5px}
.k-contact .field input,.k-contact .field textarea,.k-contact .field select{width:100%;border:2px solid var(--cream-2);border-radius:12px;padding:12px 14px;font-family:var(--body);font-size:15px}
.k-contact .field textarea{min-height:130px;resize:vertical}
.k-contact .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:16px;padding:15px 28px;border-radius:999px;background:var(--green);color:#fff;border:0;cursor:pointer;width:100%}
.k-contact .info{display:flex;flex-direction:column;gap:18px}
.k-contact .info .row{display:flex;gap:14px;align-items:flex-start}
.k-contact .info .ic{width:44px;height:44px;border-radius:12px;background:#F1FAF4;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.k-contact .info b{display:block;font-size:15px}.k-contact .info span{font-size:14px;color:var(--muted)}
.k-contact .note{background:var(--ink);color:var(--cream);border-radius:var(--radius);padding:22px;margin-top:6px}
.k-contact .note b{color:var(--lime);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.k-contact .note p{font-size:14px;color:#b9c2bb;margin-top:6px}

/* CGV */
.k-cgv .wide{max-width:1100px;margin:0 auto}
.k-cgv .head{padding:46px 0 6px}.k-cgv .head h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,5vw,46px);margin:6px 0 0}.k-cgv .head .upd{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:6px}
.k-cgv .cgv-layout{display:flex;gap:40px;align-items:flex-start;padding:30px 0 70px}
@media(max-width:820px){.k-cgv .cgv-layout{flex-direction:column}.k-cgv .toc{position:static !important;flex:none !important;width:100%}}
.k-cgv .toc{display:block;flex:0 0 230px;position:sticky;top:90px;background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:20px}
.k-cgv .toc h4{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px}
.k-cgv .toc ul{display:block;list-style:none}.k-cgv .toc li{display:block}
.k-cgv .toc a{display:block;padding:7px 0 7px 12px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;border-left:2px solid var(--cream-2)}
.k-cgv .toc a.on,.k-cgv .toc a:hover{color:var(--green);border-left-color:var(--green)}
.k-cgv .content{flex:1;min-width:0}
.k-cgv .content h2{font-family:var(--display);font-weight:800;font-size:clamp(23px,2.4vw,28px);margin:34px 0 12px;line-height:1.1}.k-cgv .content h2:first-child{margin-top:0}
.k-cgv .content p{color:#3a4a40;margin-bottom:12px;font-size:15px;line-height:1.7}
.k-cgv .content p strong:first-child{color:var(--ink)}
.k-cgv .content .art{font-family:var(--mono);font-size:12px;color:var(--green);display:block;margin-bottom:2px}

/* ============================================================
   Pages légales (mentions, confidentialité, retours)
   ============================================================ */
.k-legal .wrap{max-width:760px;margin:0 auto;padding:0 24px}
.k-legal .head{padding:46px 0 4px}
.k-legal .head h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,5vw,46px);margin:6px 0 0;line-height:1.05}
.k-legal .head .upd{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:6px}
.k-legal .content{padding:14px 0 50px}
.k-legal .content h2{font-family:var(--display);font-weight:800;font-size:clamp(20px,2.2vw,24px);margin:32px 0 10px;line-height:1.15}
.k-legal .content h2:first-child{margin-top:8px}
.k-legal .content p{color:#3a4a40;font-size:15px;line-height:1.7;margin:0 0 12px}
.k-legal .content ul{margin:0 0 14px 1.2em;padding:0}
.k-legal .content li{color:#3a4a40;font-size:15px;line-height:1.7;margin-bottom:6px}
.k-legal .content strong{color:var(--ink)}
.k-legal .content a{color:var(--green);font-weight:600}
.k-legal .content .k-legal-card{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:22px 24px;margin:0 0 16px}
.k-legal .content .k-legal-card p{margin:0 0 6px}.k-legal .content .k-legal-card p:last-child{margin:0}

/* ============================================================
   Menu mobile (burger) — apparaît < 880px (où .k-nav se masque)
   ============================================================ */
.k-burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:6px 2px;width:32px;align-items:center;justify-content:center}
.k-burger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.k-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.k-burger.is-open span:nth-child(2){opacity:0}
.k-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.k-mobile-menu{display:flex;flex-direction:column;background:#fff;border-bottom:1px solid var(--cream-2);overflow:hidden;max-height:0;opacity:0;transition:max-height .28s ease,opacity .2s}
.k-mobile-menu[hidden]{display:none}
.k-mobile-menu.open{max-height:85vh;opacity:1}

/* ── Menu mobile en bottom sheet ───────────────────────────────────────────
   Il montait depuis le haut : sur un grand téléphone, les entrées se
   retrouvaient hors de portée du pouce, et ouvrir le menu au milieu d'une page
   ne montrait rien. Il arrive maintenant par le bas, comme les filtres de la
   boutique — même geste, même repère visuel (poignée + fond assombri). */
@media(max-width:880px){
	.k-mobile-menu{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:1001;
		max-height:min(76dvh,640px);border-radius:22px 22px 0 0;border-bottom:0;
		box-shadow:0 -12px 40px rgba(12,24,16,.28);
		transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);
		overflow-y:auto;overscroll-behavior:contain;
		padding-bottom:max(18px,env(safe-area-inset-bottom))}
	/* la poignée reste visible quand la liste défile */
	.k-mobile-menu::before{content:"";position:sticky;top:0;display:block;
		width:40px;height:4px;border-radius:3px;background:var(--cream-2);
		margin:12px auto 6px;flex:0 0 auto}
	.k-mobile-menu.open{transform:translateY(0);max-height:min(76dvh,640px);opacity:1}
	.k-mobile-menu a{padding:17px 24px;font-size:17.5px}
	.k-mobile-menu a:first-of-type{border-top:0}
}
@supports not (height:100dvh){
	@media(max-width:880px){.k-mobile-menu,.k-mobile-menu.open{max-height:min(76vh,640px)}}
}
.k-mobile-menu a{padding:15px 24px;font-weight:700;font-size:17px;color:var(--ink);text-decoration:none;border-top:1px solid var(--cream-2)}
.k-mobile-menu a:first-child{border-top:0}
.k-mobile-menu .k-mm-account{color:var(--green)}
@media(max-width:880px){
  .k-burger{display:flex}
  .k-actions{gap:12px}
}

/* ============================================================
   Boutique mobile — filtres en bottom sheet
   ============================================================ */
.k-filter-trigger{display:none}
.k-filters-head{display:none}
.k-sheet-backdrop{position:fixed;inset:0;background:rgba(21,33,27,.45);z-index:1000;opacity:0;transition:opacity .25s}
.k-sheet-backdrop.show{opacity:1}
.k-sheet-backdrop[hidden]{display:none}
@media(max-width:900px){
  .k-toolbar{flex-wrap:wrap;gap:10px}
  .k-filter-trigger{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 18px;font-family:var(--body);font-weight:700;font-size:14px;cursor:pointer}
  .k-filters{position:fixed !important;left:0;right:0;bottom:0;top:auto !important;z-index:1001;width:auto !important;max-height:86vh;overflow-y:auto;background:#fff;border:0 !important;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(12,24,16,.28);transform:translateY(100%);transition:transform .3s ease;padding:0 20px 24px !important;margin:0 !important}
  .k-filters.open{transform:translateY(0)}
  .k-filters-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;padding:18px 0 12px;margin-bottom:8px;border-bottom:1px solid var(--cream-2)}
  .k-filters-head::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:3px;background:var(--cream-2)}
  .k-filters-head span{font-family:var(--display);font-weight:800;font-size:18px}
  .k-filters-close{background:none;border:0;font-size:17px;line-height:1;cursor:pointer;color:var(--ink);padding:4px 4px 4px 12px}
}

/* Bloc paiement : titre non coupé + vrai logo CIC à droite (déclutté) */
#payment .k-pm-title{white-space:nowrap}
#payment .k-pm-sub{line-height:1.35}
#payment .k-pm-icons{margin-left:auto;flex-shrink:0}
#payment .k-pm-icons .k-cic-logo{max-height:30px;width:auto;display:block}

/* Onglet « Mes analyses » : ligne propre, bouton compact à icône SVG */
.k-coa-meta{min-width:0}
.k-coa-meta b{font-family:var(--display);font-size:16px;display:block;line-height:1.15}
.k-coa-meta span{font-family:var(--mono);font-size:12px;color:var(--muted);display:block;margin:3px 0 0}
.k-coa-dl{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex-shrink:0;padding:9px 16px !important;font-size:14px}
.k-coa-dl svg{width:15px;height:15px;flex-shrink:0}
@media(max-width:480px){
  .k-coa-row{flex-direction:column;align-items:stretch;gap:12px}
  .k-coa-dl{justify-content:center}
}

/* Toggle du menu compte : masqué en desktop */
.k-acc-nav-toggle{display:none}

/* Mon compte mobile : nav en bottom sheet + contenu pleine largeur */
@media(max-width:780px){
  /* nav : bouton déclencheur en flux + liste en bottom sheet (remonte du bas) */
  .woocommerce-account .woocommerce-MyAccount-navigation{width:100% !important;max-width:100% !important;flex:none !important;margin:0 0 18px !important;box-sizing:border-box;position:static}
  .k-acc-nav-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#fff;border:1px solid var(--cream-2);border-radius:12px;padding:13px 16px;font-family:var(--body);font-weight:700;font-size:15px;color:var(--ink);cursor:pointer}
  .k-acc-nav-toggle svg{width:18px;height:18px;flex-shrink:0}
  .woocommerce-account .woocommerce-MyAccount-navigation ul{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:1001;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(12,24,16,.28);transform:translateY(110%);transition:transform .3s ease;padding:24px 18px;margin:0;max-height:80vh;overflow-y:auto;display:flex !important;flex-direction:column !important;gap:8px}
  .woocommerce-account .woocommerce-MyAccount-navigation.open ul{transform:translateY(0)}
  .woocommerce-account .woocommerce-MyAccount-navigation ul::before{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:3px;background:var(--cream-2)}
  .woocommerce-account .woocommerce-MyAccount-navigation li a{white-space:nowrap}
  /* contenu pleine largeur */
  .woocommerce-account .woocommerce-MyAccount-content{width:100% !important;max-width:100% !important;box-sizing:border-box;padding:20px;overflow-x:hidden}
  /* formulaires : pleine largeur, pas de float + bouton « Enregistrer » centré */
  .woocommerce-account .woocommerce-MyAccount-content .form-row,
  .woocommerce-account .woocommerce-MyAccount-content p.form-row{width:100% !important;float:none !important;margin-right:0 !important}
  .woocommerce-account .woocommerce-MyAccount-content input,
  .woocommerce-account .woocommerce-MyAccount-content select,
  .woocommerce-account .woocommerce-MyAccount-content textarea{max-width:100% !important;box-sizing:border-box}
  /* tableau de bord « Dernières commandes » : empilé en cartes (plus de table large) */
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders,
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders tbody,
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders tr,
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders td{display:block !important;width:auto !important}
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders thead{display:none}
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders tr{border:1px solid var(--cream-2);border-radius:12px;padding:8px 14px;margin-bottom:10px;background:#fff}
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders td{border:0 !important;padding:5px 0 !important;white-space:normal !important;display:flex !important;justify-content:space-between;gap:14px;align-items:center}
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders td::before{content:attr(data-label);font-weight:700;color:var(--muted);font-family:var(--body)}
  .woocommerce-account .woocommerce-MyAccount-content .k-acc-orders td:last-child{justify-content:flex-end;margin-top:4px}
  /* autres tables (Mes commandes : WC les empile déjà) : sécurité scroll */
  .woocommerce-account .woocommerce-MyAccount-content .shop_table{max-width:100%}
}
/* Bouton « Enregistrer les modifications » centré (détails du compte) */
.woocommerce-EditAccountForm > p:last-child,.woocommerce-EditAccountForm .clear + p,.woocommerce-EditAccountForm button[type="submit"]{text-align:center}
.woocommerce-EditAccountForm button[type="submit"]{display:inline-block}

/* Offre cadeau « Kanaa Bud » */
.k-offert{font-family:var(--display);font-weight:800;color:var(--green)}
.k-gift-qty{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--green)}

/* Panier : état de mise à jour AJAX */
.k-cart-loading{opacity:.5;pointer-events:none;transition:opacity .15s}
/* Notice succès (block) -> vert Kanaa */
.wc-block-components-notice-banner.is-success{background:#F1FAF4 !important;border-left-color:var(--green) !important}
.woocommerce-message{border-left-color:var(--green) !important;border-top-color:var(--green) !important}

/* Méthodes de livraison dans le récap (sans puces, alignées à droite) */
.k-shipping-methods{list-style:none;margin:0;padding:0}
.k-shipping-methods li{margin:0}
.k-shipping-methods label{font-weight:inherit;cursor:default}

/* ---- BIBLIOTHÈQUE D'ANALYSES (COA) — page /nos-analyses/ ---- */
.k-coa-lib{max-width:1080px;margin:0 auto;padding:48px 20px 64px}
.k-coa-lib-head{text-align:center;max-width:680px;margin:0 auto 32px}
.k-coa-lib-head h1{font-size:clamp(28px,4vw,42px);margin:8px 0 14px}
.k-coa-lib-head .lead{color:var(--muted);font-size:16px;line-height:1.6}
.k-coa-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:28px}
.k-coa-filters button{font-family:var(--body);font-size:13px;font-weight:700;color:var(--ink);background:#fff;border:1.5px solid var(--cream-2);border-radius:999px;padding:8px 16px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.k-coa-filters button:hover{border-color:var(--green)}
.k-coa-filters button.is-active{background:var(--green);border-color:var(--green);color:#fff}
.k-coa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.k-coa-item{display:flex;flex-direction:column;background:#fff;border:1px solid var(--cream-2);border-radius:16px;padding:18px 18px 16px;box-shadow:0 6px 20px rgba(21,33,27,.05)}
.k-coa-item-top{display:flex;gap:6px;margin-bottom:10px}
.k-coa-tag{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#FAF7EF;border:1px solid var(--cream-2);border-radius:7px;padding:3px 8px}
.k-coa-tag-mol{color:#fff;background:var(--green);border-color:var(--green)}
.k-coa-item h3{font-size:17px;margin:0 0 2px;line-height:1.25}
.k-coa-saveur{font-size:13px;color:var(--muted)}
.k-coa-foot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:10px}
.k-coa-lab{font-family:var(--mono);font-size:11px;color:var(--muted)}
.k-coa-dl{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:var(--green);text-decoration:none}
.k-coa-dl svg{width:16px;height:16px}
.k-coa-dl:hover{text-decoration:underline}
@media(max-width:560px){.k-coa-grid{grid-template-columns:1fr 1fr;gap:10px}.k-coa-item{padding:14px}.k-coa-item h3{font-size:15px}}

/* Encart confiance COA sur la fiche produit */
.k-coa-trust{display:flex;align-items:center;gap:14px;background:#F1FAF4;border:1px solid var(--cream-2);border-radius:14px;padding:16px 18px;margin:18px 0}
.k-coa-trust-ic{flex:none;width:42px;height:42px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center}
.k-coa-trust-ic svg{width:22px;height:22px;color:#fff}
.k-coa-trust-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.k-coa-trust-txt b{font-size:14px;color:var(--ink)}
.k-coa-trust-txt span{font-size:12.5px;color:var(--muted);line-height:1.4}
.k-coa-trust .k-btn{flex:none;white-space:nowrap}
@media(max-width:560px){.k-coa-trust{flex-wrap:wrap}.k-coa-trust .k-btn{width:100%;text-align:center}}
/* COA par lot (fiche produit) : analyse du lot + QR scannable */
.k-coa-lot{display:flex;align-items:center;gap:28px;background:#F1FAF4;border:1px solid var(--cream-2);border-radius:18px;padding:26px 28px}
.k-coa-lot-main{flex:1;min-width:0}
.k-coa-lot-main h2{margin:6px 0 8px;font-size:24px}
.k-coa-cofrac{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:5px 12px;border-radius:999px;background:rgba(28,122,78,.1);color:var(--green);border:1px solid rgba(28,122,78,.28);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.k-coa-cofrac svg{flex:none;color:var(--green)}
.k-coa-lot-main p{font-size:14.5px;color:var(--muted);line-height:1.5;margin:0 0 16px;max-width:54ch}
.k-coa-lot-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.k-coa-lot-all{font-weight:700;font-size:14px;color:var(--green);text-decoration:none}
.k-coa-lot-all:hover{text-decoration:underline}
.k-coa-lot-qr{flex:none;margin:0;text-align:center}
.k-coa-lot-qr img{display:block;width:116px;height:116px;border:6px solid #fff;border-radius:12px;box-shadow:0 4px 16px rgba(21,33,27,.1)}
.k-coa-lot-qr figcaption{margin-top:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media(max-width:560px){.k-coa-lot{flex-direction:column-reverse;align-items:flex-start;gap:20px;padding:22px}.k-coa-lot-actions{width:100%}.k-coa-lot-actions .k-btn{flex:1;text-align:center}}

/* ---- Barre « livraison offerte » (panier) ---- */
/* Bloc « taux de CBD » : valeur du COA située sur l'échelle de lecture */
.k-rate{margin-top:16px;padding:16px 18px 14px;background:#fff;border:1px solid var(--cream-2);border-radius:16px}
.k-rate-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.k-rate-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.k-rate-val{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--green)}
.k-rate-val em{font-style:normal;font-size:17px;margin-left:2px}
.k-rate-bar{position:relative;height:8px;margin:14px 0 10px;border-radius:999px;background:linear-gradient(90deg,#E4F3E9 0%,var(--lime) 55%,var(--green) 100%)}
.k-rate-sep{position:absolute;top:-1px;bottom:-1px;width:2px;margin-left:-1px;background:#fff;border-radius:2px}
.k-rate-bar i{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;border:3px solid var(--green);box-shadow:0 1px 5px rgba(0,0,0,.16)}
.k-rate-scale{display:flex;font-size:11.5px;color:var(--muted);text-align:center}
.k-rate-scale span{min-width:0;padding:0 2px}
.k-rate-scale small{display:block;font-size:10.5px;opacity:.8}
.k-rate-scale .is-on{color:var(--green);font-weight:700}
.k-rate-coa{display:inline-block;margin-top:12px;font-size:12.5px;color:var(--green);text-decoration:none;border-bottom:1px solid currentColor}
.k-rate-coa:hover{color:var(--green-d)}
/* Réassurance fiche produit : suggestion de palier, expédition, port offert */
.k-upsell{display:flex;align-items:center;gap:14px;width:100%;margin-top:14px;padding:12px 14px;text-align:left;background:#FBFAF5;border:1.5px dashed var(--green);border-radius:14px;cursor:pointer;font:inherit;transition:.16s}
.k-upsell:hover{background:#F1FAF4;box-shadow:0 3px 14px rgba(28,122,78,.13)}
.k-upsell[hidden]{display:none}
.k-upsell-plus{flex:none;padding:6px 11px;text-align:center;background:var(--green);border-radius:9px;font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.01em;color:#fff}
.k-upsell-txt{flex:1;min-width:0}
.k-upsell-txt b{display:block;font-size:14px;color:var(--ink)}
.k-upsell-txt small{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.k-upsell-go{flex:none;font-size:19px;color:var(--green)}


.k-cutoff{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px 14px;background:#F1FAF4;border:1px solid var(--cream-2);border-radius:14px}
.k-cutoff>svg{width:22px;height:22px;color:var(--green);flex:none}
.k-cutoff-txt{flex:1;min-width:0;line-height:1.35}
.k-cutoff-line{display:block;font-size:13.5px;color:var(--ink)}
.k-cutoff-line b{color:var(--green)}
.k-cutoff-sub{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.k-cutoff-sub b{color:var(--ink);font-weight:600}
.k-cutoff-time{flex:none;padding:7px 11px;background:var(--ink);color:var(--lime);border-radius:9px;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}

.k-freeship{position:relative;overflow:hidden;margin-top:12px;background:#FBFAF5;border:1px solid var(--cream-2);border-radius:14px;padding:11px 14px}
/* Confettis du franco : canvas confiné à la barre, découpé par ses coins arrondis. */
.k-confetti-in{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.k-freeship-msg{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:13px;color:var(--muted)}
.k-freeship-left{color:var(--green);white-space:nowrap}
.k-freeship-bar{height:7px;background:#fff;border:1px solid var(--cream-2);border-radius:999px;overflow:hidden}
.k-freeship-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--lime),var(--green));border-radius:999px;transition:width .4s ease}
.k-freeship.is-done{background:#EAF7EF;border-color:var(--green)}
@media(max-width:480px){.k-cutoff{flex-wrap:wrap}.k-cutoff-time{margin-left:34px}}

/* --- Miniatures de galerie produit (fiche) ------------------------------- */
/* L'image à la une (produit sur fond blanc) reste la 1re ; l'étiquette du monde suit. */
.k-gthumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.k-gthumb{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;
	background:#fff;cursor:pointer;line-height:0;transition:border-color .15s ease,transform .15s ease}
.k-gthumb img{width:74px;height:74px;object-fit:cover;display:block}
.k-gthumb:hover{transform:translateY(-2px)}
.k-gthumb.is-active{border-color:var(--k-green,#1C7A4E)}
.k-gthumb:focus-visible{outline:2px solid var(--k-coral,#FF6F5E);outline-offset:2px}



















/* ============================================================
   Modale offre de bienvenue (ouverte depuis le bandeau)
   Fond sombre : reprend le bandeau d'où elle est ouverte, et le
   formulaire newsletter y est déjà stylé (même styles qu'au footer).
   ============================================================ */
.k-offre-modal{width:min(460px,calc(100vw - 32px));padding:0;border:0;border-radius:22px;background:var(--ink);color:var(--cream);box-shadow:0 24px 70px rgba(0,0,0,.4);overflow:visible}
.k-offre-modal::backdrop{background:rgba(21,33,27,.62);backdrop-filter:blur(2px)}
.k-offre-body{padding:34px 30px 28px}
.k-offre-modal .k-eyebrow{color:var(--lime)}
.k-offre-modal h2{font-family:var(--display);font-weight:800;font-size:clamp(28px,6vw,36px);line-height:1.05;margin:10px 0 0;color:#fff}
.k-offre-modal h2 em{font-style:normal;color:var(--lime)}
.k-offre-modal h2 .pt{color:var(--coral)}
.k-offre-modal>.k-offre-body>p{font-size:14px;line-height:1.55;color:#AAB3AC;margin:14px 0 20px}
.k-offre-close{position:absolute;top:12px;right:14px;background:none;border:0;font-size:26px;line-height:1;color:#8B968D;cursor:pointer;transition:.15s}
.k-offre-close:hover{color:#fff}
.k-offre-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;padding:13px 16px;background:#1B2A22;border:1px dashed #2F4438;border-radius:14px}
.k-offre-code>span{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7D8B82}
.k-offre-copy{display:flex;align-items:baseline;gap:10px;background:none;border:0;padding:0;font:inherit;color:var(--lime);cursor:pointer}
.k-offre-copy b{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:.02em}
.k-offre-copy small{font-size:11px;color:#7D8B82;text-decoration:underline;text-underline-offset:3px}
.k-offre-copy.is-copie small{color:var(--lime);text-decoration:none}
.k-offre-note{font-size:11.5px;color:#7D8B82;margin:10px 2px 0;line-height:1.45}
@media(max-width:480px){.k-offre-body{padding:30px 20px 24px}}

/* Fiche produit sur smartphone : la barre « livraison offerte » remonte juste au-dessus du
 * bloc d'achat. En pied de colonne elle passait sous la ligne de flottaison et n'était pas vue
 * au moment du choix du grammage — or c'est là qu'elle sert (et que partent les confettis).
 * Réordonnancement en flex uniquement : le DOM reste inchangé, donc aucun décalage de rendu. */
@media(max-width:900px){
	.k-pinfo{display:flex;flex-direction:column}
	.k-pinfo>*{order:4}
	.k-pinfo>.k-pcat,.k-pinfo>.k-ptitle,.k-pinfo>.k-molhero,.k-pinfo>.k-stars,
	.k-pinfo>.k-pdesc,.k-pinfo>.k-tags{order:1}
	.k-pinfo>.k-freeship{order:2;margin:0 0 12px}
	.k-pinfo>.k-buybox{order:3}
}

/* Reel de l'article (Le Mag) — « l'essentiel en vidéo », placé après le chapô.
   Vignette 16:9 cliquable (pas de <video> dans le flux : rien ne charge avant le clic,
   et pas de colonne verticale de 700 px qui troue la page). La lecture se fait en
   lightbox, au format du support. */
.k-mag-video{margin:34px 0;padding:16px;border:1px solid rgba(28,122,78,.16);border-radius:20px;
	background:linear-gradient(135deg,#FBF6EC 0%,#F6EFE1 100%)}
.k-mv-thumb{position:relative;display:block;width:100%;padding:0;border:0;border-radius:14px;
	overflow:hidden;cursor:pointer;background:#08100C;line-height:0}
.k-mv-thumb img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;
	transition:transform .35s ease}
.k-mv-thumb:hover img,.k-mv-thumb:focus-visible img{transform:scale(1.04)}
.k-mv-play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;
	background:#FF6F5E;box-shadow:0 6px 22px rgba(0,0,0,.34);transition:transform .25s ease}
.k-mv-play::after{content:"";position:absolute;inset:0;margin:auto;width:0;height:0;
	border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent #FBF6EC;
	transform:translateX(3px)}
.k-mv-thumb:hover .k-mv-play,.k-mv-thumb:focus-visible .k-mv-play{transform:scale(1.09)}
.k-mv-dur{position:absolute;right:12px;bottom:12px;padding:4px 10px;border-radius:999px;
	background:rgba(8,16,12,.74);color:#FBF6EC;font-size:.78rem;font-weight:700;line-height:1.4}
.k-mag-video figcaption{margin-top:14px;font-size:.9rem;line-height:1.5;color:#4a524d}
.k-mag-video figcaption b{display:block;font-family:var(--k-font-title,inherit);font-size:1.12rem;
	color:#12160F;margin-bottom:6px}
.k-mv-cta{display:block;margin-top:10px;font-weight:700;font-size:.9rem;color:#1C7A4E}
@media(min-width:820px){
	.k-mag-video{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:center;padding:18px}
	.k-mag-video figcaption{margin:0}
}

/* Lightbox de lecture : le reel garde son 9:16, borné par la hauteur de la fenêtre. */
.k-mv-box{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
	padding:20px;background:rgba(6,10,8,.92);opacity:0;transition:opacity .2s ease}
.k-mv-box.on{opacity:1}
.k-mv-box video{max-width:min(94vw,calc(88vh * 9 / 16));max-height:88vh;width:auto;height:auto;
	border-radius:14px;background:#000;display:block}
.k-mv-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border:0;border-radius:50%;
	background:rgba(251,246,236,.14);color:#FBF6EC;font-size:1.5rem;line-height:1;cursor:pointer}
.k-mv-close:hover{background:rgba(251,246,236,.26)}
@media(prefers-reduced-motion:reduce){.k-mv-box,.k-mv-thumb img,.k-mv-play{transition:none}}

/* ── Composants éditoriaux du Mag ──────────────────────────────────────────
   Rompent le mur de texte d'un article long : chiffres clés, encadrés, étapes,
   tableaux. Repris de la mise en page des rapports internes, qui donnait plus de
   rythme que la suite de paragraphes. Toutes les classes sont utilisables
   directement dans le contenu (bloc HTML personnalisé). */

/* Chiffres clés : une rangée en tête d'article ou de section */
.k-ed-kfs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;margin:36px 0 30px}
.k-ed-kf{padding:0 22px 2px 0;position:relative}
.k-ed-kf+.k-ed-kf{padding-left:22px;border-left:1px solid rgba(28,122,78,.16)}
.k-ed-kf::before{content:"";display:block;width:26px;height:3px;background:#FF6F5E;margin-bottom:12px}
.k-ed-kf .n{font-family:var(--k-font-title,inherit);font-weight:800;font-size:2.9rem;line-height:.95;
	color:#12160F;letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Un intervalle (« 0,05-0,3 ») ne tient pas sur une ligne à la taille normale et
   désaligne toute la rangée : on le réduit au lieu de le laisser se couper. */
.k-ed-kf .n.is-long{font-size:1.95rem;letter-spacing:-.025em}
.k-ed-kf .n small{font-size:1rem;font-weight:700;color:#1C7A4E;letter-spacing:0;margin-left:2px}
.k-ed-kf .l{margin-top:10px;font-size:.83rem;line-height:1.42;color:#5C6560;max-width:22ch}
@media(max-width:560px){
	.k-ed-kf+.k-ed-kf{padding-left:0;border-left:0}
	.k-ed-kf{padding-bottom:16px}
}

/* Encadré : trois tons selon l'intention */
.k-ed-note{border-left:4px solid #1C7A4E;background:rgba(28,122,78,.05);border-radius:0 14px 14px 0;
	padding:18px 22px;margin:30px 0}
.k-ed-note>strong:first-child{display:block;font-family:var(--k-font-title,inherit);font-size:1.05rem;
	margin-bottom:6px;color:#12160F}
.k-ed-note p{margin:0}
.k-ed-note p+p{margin-top:10px}
.k-ed-note.is-warn{border-left-color:#FF6F5E;background:rgba(255,111,94,.07)}
.k-ed-note.is-key{border-left-color:#C2F25E;background:rgba(194,242,94,.14)}

/* Étapes numérotées : une marche à suivre, pas une liste à puces */
.k-ed-steps{counter-reset:kst;margin:30px 0;padding:0;list-style:none}
.k-ed-steps li{counter-increment:kst;position:relative;padding:0 0 18px 52px;margin:0}
.k-ed-steps li::before{content:counter(kst,decimal-leading-zero);position:absolute;left:0;top:0;
	width:34px;height:34px;border-radius:50%;background:#1C7A4E;color:#FBF6EC;
	font-family:var(--k-font-mono,monospace);font-weight:700;font-size:.82rem;
	display:flex;align-items:center;justify-content:center}
.k-ed-steps li b{display:block;font-family:var(--k-font-title,inherit);font-size:1.02rem;margin-bottom:3px}
.k-ed-steps li:not(:last-child)::after{content:"";position:absolute;left:16px;top:38px;bottom:6px;
	width:2px;background:rgba(28,122,78,.18)}

/* Tableau : encadré, en-tête verte, scroll horizontal sur mobile */
.k-ed-table{margin:30px 0;overflow-x:auto;border:1px solid rgba(28,122,78,.16);border-radius:14px}
.k-ed-table table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:420px}
.k-ed-table th{background:rgba(28,122,78,.08);text-align:left;font-size:.76rem;letter-spacing:.08em;
	text-transform:uppercase;color:#2F5C45;padding:12px 16px;border-bottom:1px solid rgba(28,122,78,.16)}
.k-ed-table td{padding:12px 16px;border-bottom:1px solid rgba(28,122,78,.09)}
.k-ed-table tr:last-child td{border-bottom:0}
.k-ed-table td:not(:first-child){font-variant-numeric:tabular-nums}

/* Source sous un bloc chiffré */
/* La source appartient au bloc qu'elle documente : elle reste remontée contre lui,
   mais plus collée — et reprend le tiret corail qui coiffe les cartes de chiffres,
   pour qu'on la lise comme la fin du même objet et non comme un paragraphe perdu. */
.k-ed-src{display:flex;align-items:baseline;gap:9px;margin-top:-14px;margin-bottom:30px;
	font-size:.78rem;color:#5C6560;font-family:var(--k-font-mono,monospace)}
/* Vert et non corail : les séparateurs des cartes de chiffres sont déjà corail,
   juste au-dessus — répéter la couleur à deux lignes d'écart la banalise. */
.k-ed-src::before{content:"";flex:0 0 auto;width:14px;height:2px;background:#1C7A4E;
	border-radius:2px;transform:translateY(-3px)}

/* Variante bloc, pour le pavé de sources détaillé de fin d'article. Le flex ci-dessus
   est fait pour une ligne courte : sur un paragraphe, il rejette tout le texte à droite
   du trait, qui perd alors sa largeur sur CHAQUE ligne. Ici le trait et l'intitulé
   passent au-dessus et le texte reprend toute la mesure. */
.k-ed-src.is-bloc{display:block;margin-top:34px}
.k-ed-src.is-bloc::before{display:block;width:26px;margin-bottom:10px;transform:none}
.k-ed-src.is-bloc strong{display:block;margin-bottom:5px;color:#2F5C45;
	font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}

/* ── Ligne d'en-tête d'article : signature, lecture, dates, partage ───────── */
.k-article-meta{align-items:center;gap:10px}
.k-am-sep{opacity:.45}
.k-am-who{color:#1C7A4E;font-weight:700}
.k-am-read{background:rgba(28,122,78,.09);color:#2F5C45;border-radius:99px;padding:3px 9px;font-weight:700}
.k-am-maj{color:#FF6F5E;font-weight:700}

/* Partage : liens simples, aucun SDK (les widgets officiels plombent le LCP).
   Couleurs de la marque, pas celles des réseaux : la ligne reste à la DA kanaa. */
.k-share{display:inline-flex;align-items:center;gap:5px;margin-left:auto;flex:0 0 auto}
.k-share-l{font-size:10px;letter-spacing:.05em;text-transform:uppercase;opacity:.55;margin-right:2px}
.k-share-b{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;
	border-radius:50%;border:1px solid rgba(28,122,78,.22);background:#FBF6EC;color:#2F5C45;
	cursor:pointer;padding:0;transition:background .18s,color .18s,transform .18s,border-color .18s}
/* toute la palette de la marque, un ton par bouton */
.k-share-b:hover{transform:translateY(-2px);border-color:transparent}
.k-share-b.is-facebook:hover{background:#1C7A4E;color:#FBF6EC}
.k-share-b.is-x:hover{background:#124F33;color:#FBF6EC}
.k-share-b.is-whatsapp:hover{background:#C2F25E;color:#12160F}
.k-share-b.is-copy:hover{background:#FF6F5E;color:#FBF6EC}
.k-share-b.is-done{background:#C2F25E;border-color:transparent;color:#12160F;transform:none}
/* La ligne ne doit jamais se couper : nowrap dès 700px, et le libellé « Partager »
   ne s'affiche que quand il reste vraiment de la place. */
@media(min-width:700px){.k-article-meta{flex-wrap:nowrap;white-space:nowrap}}
@media(max-width:1040px){.k-share-l{display:none}}
@media(max-width:699px){.k-share{margin-left:0;width:100%;margin-top:2px}
	/* Les séparateurs sont des <span> autonomes : quand la ligne passe à la ligne
	   suivante, le point reste seul en bout de ligne et la date part isolée. On les
	   retire sous 700 px et on espace davantage — l'œil sépare les informations sans
	   ponctuation flottante. */
	.k-article-meta{gap:6px 16px}
	.k-article-meta .k-am-sep{display:none}}

/* ── Sommaire : les ancres permettent à Google d'afficher des liens de section ─ */
.k-toc{margin:30px 0;padding:18px 22px;border:1px solid rgba(28,122,78,.16);border-radius:16px;
	background:linear-gradient(140deg,#FBF6EC,#F5EEE0)}
.k-toc-t{display:block;font-family:var(--k-font-title,inherit);font-weight:800;font-size:1.02rem;
	margin-bottom:10px;color:#12160F}
.k-toc ol{margin:0;padding:0;list-style:none;counter-reset:ktoc}
.k-toc li{counter-increment:ktoc;margin:0;padding:5px 0 5px 30px;position:relative;line-height:1.4}
.k-toc li::before{content:counter(ktoc,decimal-leading-zero);position:absolute;left:0;top:6px;
	font-family:var(--k-font-mono,monospace);font-size:.72rem;font-weight:700;color:#FF6F5E}
.k-toc a{color:#2A322C;text-decoration:none;font-size:.94rem;border-bottom:1px solid transparent}
.k-toc a:hover{color:#1C7A4E;border-bottom-color:rgba(28,122,78,.4)}
/* décalage d'ancre : le header collant ne doit pas masquer le titre visé */
.k-article-body h2[id]{scroll-margin-top:96px}

/* ── Retour lecteur en fin d'article ────────────────────────────────────────
   Volontairement discret : c'est une question posée à la fin d'une lecture, pas
   un appel à l'action. Il ne doit jamais concurrencer le CTA boutique. */
.k-vote{margin:44px 0 8px;padding:20px 24px;border:1px solid rgba(28,122,78,.16);border-radius:18px;
	background:linear-gradient(140deg,#FBF6EC,#F5EEE0)}
.k-vote-ask{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.k-vote-q{margin:0;font-weight:600;font-size:15px;color:#12160F}
.k-vote-btns{display:flex;gap:8px;margin-left:auto}
.k-vote-b{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;
	border:1px solid rgba(28,122,78,.22);background:#FBF6EC;color:#2F5C45;font-size:13px;font-weight:600;
	cursor:pointer;transition:background .18s,color .18s,transform .18s,border-color .18s}
.k-vote-b.is-non svg{transform:rotate(180deg)}
.k-vote-b:hover{transform:translateY(-2px);border-color:transparent}
.k-vote-b.is-oui:hover{background:#1C7A4E;color:#FBF6EC}
.k-vote-b.is-non:hover{background:#FF6F5E;color:#FBF6EC}
.k-vote-b[disabled]{opacity:.4;cursor:default;transform:none}
.k-vote-b.is-picked{background:#C2F25E;border-color:transparent;color:#12160F;opacity:1}
.k-vote-more{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.k-vote-more label{font-size:13px;opacity:.7}
.k-vote-more textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(28,122,78,.22);
	background:#FFFDF8;font:inherit;font-size:14px;resize:vertical}
.k-vote-more textarea:focus{outline:2px solid rgba(28,122,78,.35);outline-offset:1px}
.k-vote-send{align-self:flex-start;padding:8px 18px;border-radius:999px;border:0;background:#1C7A4E;
	color:#FBF6EC;font-size:13px;font-weight:600;cursor:pointer}
.k-vote-send:hover{background:#124F33}
.k-vote-thanks{margin:0;font-size:14px;color:#2F5C45}
/* un `display` explicite bat l'attribut hidden : il faut le rétablir à la main,
   sinon le formulaire de relance s'affiche dès le chargement */
.k-vote-ask[hidden],.k-vote-more[hidden]{display:none}
@media(max-width:560px){.k-vote-btns{margin-left:0;width:100%}.k-vote-b{flex:1;justify-content:center}}

/* ── Chapô : le premier paragraphe porte le résumé, il se détache du corps ── */
/* `k-lead` est le chapô écrit à la main d'un article antérieur : même rôle, donc
   même apparence — sinon deux styles d'ouverture coexistent dans le Mag. */
.k-chapo,.k-article-body .k-lead{font-size:1.12em;line-height:1.62;color:#22301F;
	border-left:3px solid #C2F25E;padding-left:18px;margin-bottom:26px}

/* ── « À lire aussi » : maillage interne, en fin d'article ────────────────── */
.k-aussi{margin:34px 0 4px;padding:20px 24px;border-radius:18px;background:#F3EEE2}
.k-aussi-t{display:block;font-family:var(--k-font-title,inherit);font-weight:800;font-size:13px;
	letter-spacing:.06em;text-transform:uppercase;color:#1C7A4E;margin-bottom:12px}
.k-aussi ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.k-aussi li{margin:0}
.k-aussi a{display:inline-flex;align-items:baseline;gap:9px;color:#12160F;text-decoration:none;
	font-weight:600;font-size:15px;line-height:1.4}
.k-aussi a::before{content:"→";color:#FF6F5E;font-weight:700;flex:0 0 auto}
.k-aussi a:hover{color:#1C7A4E;text-decoration:underline;text-underline-offset:3px}

/* ── Mention de mise à jour, sous la ligne d'en-tête ───────────────────────
   Barre CORAIL, pas lime : elle précède immédiatement le chapô, et deux barres
   de la même couleur l'une sur l'autre se lisent comme un seul bloc. Le corail
   sépare l'information de service de l'ouverture de l'article. Plus petite et
   plus pâle, aussi : elle informe, elle n'accroche pas. */
.k-maj{margin:14px 0 0;padding-left:18px;border-left:3px solid #FF6F5E;
	font-size:.92em;font-style:italic;color:#5B6357}
.k-maj em{font-style:italic}

/* ── Icônes éditoriales ───────────────────────────────────────────────────
   Remplacent les emojis dans le corps des articles : ceux-ci sont rendus par
   la police système, donc différents (et parfois laids) d'un OS à l'autre —
   et on ne maîtrise ni leur couleur ni leur poids.

   Technique : le SVG est posé en `mask-image`, pas en `background-image`. La
   forme est donc peinte par `background-color: currentColor` et prend la
   couleur du texte ou celle qu'on lui donne — une seule icône, tous les tons
   de la marque. Aucun fichier externe, aucune police à charger. */
.k-ic{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.17em;margin-right:.32em;
	background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
	-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}

.k-ic.is-check{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 12.5l5.2 5.2L20 6.9" fill="none" stroke="%23000" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 12.5l5.2 5.2L20 6.9" fill="none" stroke="%23000" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>')}
.k-ic.is-cross{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 6l12 12M18 6L6 18" fill="none" stroke="%23000" stroke-width="2.4" stroke-linecap="round"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 6l12 12M18 6L6 18" fill="none" stroke="%23000" stroke-width="2.4" stroke-linecap="round"/></svg>')}
.k-ic.is-warn{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3.4 22 20H2L12 3.4Z" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/><path d="M12 10v4.4" stroke="%23000" stroke-width="2.2" stroke-linecap="round"/><circle cx="12" cy="17.4" r="1.2"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3.4 22 20H2L12 3.4Z" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/><path d="M12 10v4.4" stroke="%23000" stroke-width="2.2" stroke-linecap="round"/><circle cx="12" cy="17.4" r="1.2"/></svg>')}
.k-ic.is-labo{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3v6.2L4.2 18a2.6 2.6 0 0 0 2.2 4h11.2a2.6 2.6 0 0 0 2.2-4l-5.3-8.8V3" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/><path d="M8 3h8M7 14h10" stroke="%23000" stroke-width="2" stroke-linecap="round"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3v6.2L4.2 18a2.6 2.6 0 0 0 2.2 4h11.2a2.6 2.6 0 0 0 2.2-4l-5.3-8.8V3" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/><path d="M8 3h8M7 14h10" stroke="%23000" stroke-width="2" stroke-linecap="round"/></svg>')}
.k-ic.is-balance{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 4.2v16M7 20.2h10M12 6.6 4.5 9M12 6.6 19.5 9" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round"/><path d="M1.6 14.4 4.5 8.6l2.9 5.8a3.6 3.6 0 0 1-5.8 0ZM16.6 14.4l2.9-5.8 2.9 5.8a3.6 3.6 0 0 1-5.8 0Z" fill="none" stroke="%23000" stroke-width="1.9" stroke-linejoin="round"/><circle cx="12" cy="4.4" r="1.5"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 4.2v16M7 20.2h10M12 6.6 4.5 9M12 6.6 19.5 9" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round"/><path d="M1.6 14.4 4.5 8.6l2.9 5.8a3.6 3.6 0 0 1-5.8 0ZM16.6 14.4l2.9-5.8 2.9 5.8a3.6 3.6 0 0 1-5.8 0Z" fill="none" stroke="%23000" stroke-width="1.9" stroke-linejoin="round"/><circle cx="12" cy="4.4" r="1.5"/></svg>')}
.k-ic.is-graph{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 20V4" stroke="%23000" stroke-width="2" stroke-linecap="round"/><path d="M4 20h16" stroke="%23000" stroke-width="2" stroke-linecap="round"/><rect x="7.5" y="12" width="3" height="5" /><rect x="13" y="8" width="3" height="9"/><rect x="18.5" y="4.5" width="3" height="12.5"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 20V4" stroke="%23000" stroke-width="2" stroke-linecap="round"/><path d="M4 20h16" stroke="%23000" stroke-width="2" stroke-linecap="round"/><rect x="7.5" y="12" width="3" height="5" /><rect x="13" y="8" width="3" height="9"/><rect x="18.5" y="4.5" width="3" height="12.5"/></svg>')}
.k-ic.is-leaf{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 4C10 4 4 9 4 16c0 2 .6 3.4.6 3.4S9 12 18 8c0 0-6.6 3.6-9.6 11.6C13 21 20 18 20 4Z" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 4C10 4 4 9 4 16c0 2 .6 3.4.6 3.4S9 12 18 8c0 0-6.6 3.6-9.6 11.6C13 21 20 18 20 4Z" fill="none" stroke="%23000" stroke-width="2" stroke-linejoin="round"/></svg>')}
.k-ic.is-clock{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23000" stroke-width="2"/><path d="M12 7v5.4l3.6 2.2" fill="none" stroke="%23000" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23000" stroke-width="2"/><path d="M12 7v5.4l3.6 2.2" fill="none" stroke="%23000" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"/></svg>')}
.k-ic.is-dot{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="6"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="6"/></svg>')}
.k-ic.is-info{-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23000" stroke-width="2"/><path d="M12 11v6" stroke="%23000" stroke-width="2.2" stroke-linecap="round"/><circle cx="12" cy="7.6" r="1.2"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23000" stroke-width="2"/><path d="M12 11v6" stroke="%23000" stroke-width="2.2" stroke-linecap="round"/><circle cx="12" cy="7.6" r="1.2"/></svg>')}

/* Tons par défaut : le sens de l'icône porte sa couleur. */
.k-ic.is-check{color:#1C7A4E}
.k-ic.is-cross,.k-ic.is-warn{color:#FF6F5E}
.k-ic.is-labo,.k-ic.is-balance,.k-ic.is-clock,.k-ic.is-graph,.k-ic.is-info{color:#2F5C45}
.k-ic.is-leaf,.k-ic.is-dot{color:#1C7A4E}
/* Sur fond sombre ou coloré, l'icône suit le texte. */
.k-ed-note .k-ic,.k-ed-kf .k-ic{color:inherit}

/* ── Frise chronologique éditoriale ────────────────────────────────────────
   Remplace une image figée : le texte redevient sélectionnable et surtout
   indexable (Google ne lit rien d'un PNG de frise), la mise en page suit la
   largeur, et une date qui change se corrige sans repasser par un export. */
.k-frise{margin:30px 0;padding:26px 28px 22px;border-radius:20px;
	background:linear-gradient(150deg,#FBF6EC,#F3EEE2);border:1px solid rgba(28,122,78,.14)}
.k-frise-k{display:block;font-family:var(--k-font-mono,monospace);font-size:10px;letter-spacing:.14em;
	text-transform:uppercase;color:#1C7A4E;margin-bottom:4px}
.k-frise-t{display:block;font-family:var(--k-font-title,inherit);font-weight:800;font-size:21px;
	line-height:1.2;color:#12160F;margin-bottom:22px}
.k-frise ol{list-style:none;margin:0;padding:0 0 0 26px;border-left:2px solid rgba(255,111,94,.35)}
.k-frise li{position:relative;padding-bottom:20px}
.k-frise li:last-child{padding-bottom:6px}
.k-frise li::before{content:"";position:absolute;left:-33px;top:4px;width:12px;height:12px;
	border-radius:50%;background:#FF6F5E;border:3px solid #FBF6EC}
.k-frise .d{display:block;font-weight:800;font-size:14px;color:#12160F;letter-spacing:.01em}
.k-frise .q{display:block;font-size:13px;color:#5B6357;margin:1px 0 8px}
.k-frise .p{display:flex;flex-wrap:wrap;gap:6px}
.k-frise .p span{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;
	font-weight:600;background:#FFE6E1;color:#8C2F22}
.k-frise-ok{margin-top:20px;padding:16px 18px;border-radius:14px;background:rgba(194,242,94,.24);
	border:1px solid rgba(28,122,78,.18)}
.k-frise-ok b{display:block;font-size:13px;color:#1C7A4E;margin-bottom:8px;
	font-family:var(--k-font-mono,monospace);letter-spacing:.08em;text-transform:uppercase}
.k-frise-ok .p span{background:#FFFDF8;color:#1C5C3C;border:1px solid rgba(28,122,78,.2)}
.k-frise-ok em{display:block;margin-top:9px;font-size:12px;font-style:normal;color:#5B6357}
@media(max-width:560px){.k-frise{padding:22px 18px 18px}.k-frise-t{font-size:18px}}

/* ── Checklist éditoriale ──────────────────────────────────────────────────
   Reprend les icônes .k-ic : le vert dit « à exiger », le corail « à fuir »,
   sans qu'aucun mot n'ait à le préciser. */
.k-check{margin:30px 0;padding:24px 26px 20px;border-radius:20px;
	background:linear-gradient(150deg,#FBF6EC,#F3EEE2);border:1px solid rgba(28,122,78,.14)}
.k-check-k{display:block;font-family:var(--k-font-mono,monospace);font-size:10px;letter-spacing:.14em;
	text-transform:uppercase;color:#1C7A4E;margin-bottom:4px}
.k-check-t{display:block;font-family:var(--k-font-title,inherit);font-weight:800;font-size:21px;
	line-height:1.2;color:#12160F;margin-bottom:18px}
.k-check ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.k-check li{display:flex;align-items:flex-start;gap:11px;padding:11px 15px;border-radius:12px;
	background:#FFFDF8;border:1px solid rgba(28,122,78,.12);font-size:14.5px;line-height:1.45}
.k-check li .k-ic{flex:0 0 auto;margin:2px 0 0;font-size:16px}
.k-check li b{font-weight:700}
.k-check.is-fuir li{border-color:rgba(255,111,94,.22)}
@media(max-width:560px){.k-check{padding:20px 16px 16px}.k-check-t{font-size:18px}}

/* ── Note du produit sur la carte ──────────────────────────────────────────
   Même typographie que la ligne d'en-tête des articles : mono, vert kanaa pour
   l'accent, `--muted` pour le secondaire. Pas de jaune — ça ferait « widget
   d'avis » collé sur la page et casserait la palette. */
/* Même or que les étoiles de la fiche produit (#E8A33D) : c'est le seul endroit
   du site où la couleur sert, elle doit rester la même partout.
   La note partage la ligne de l'arôme et ne pousse donc pas le pied de carte. */
.k-pc-line{display:flex;align-items:center;justify-content:space-between;gap:10px}
.k-pc-line .k-pc-effect{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-pc-stars{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;
	font-family:var(--mono);font-size:11px;color:var(--muted)}
.k-pc-stars-i{color:#E8A33D;letter-spacing:1px;line-height:1;font-size:12px}

/* ── Barre de navigation mobile + WhatsApp ────────────────────────────────────
   Le menu principal est en haut, hors de portée du pouce : changer de rayon
   demandait d'ouvrir la feuille puis de viser un lien. Ces cinq raccourcis
   sont là où la main tient déjà le téléphone.
   z-index 900 : sous les feuilles du bas (menu et filtres, 1001) et sous le
   bandeau cookies, sinon elle passerait par-dessus et bloquerait leurs boutons. */
.k-barre,.k-wa{display:none}
@media(max-width:880px){
	.k-barre{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:900;
		background:rgba(251,246,236,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
		border-top:1px solid var(--cream-2);
		padding:6px 2px max(6px,env(safe-area-inset-bottom))}
	.k-barre a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;
		color:var(--muted);text-decoration:none;font-family:var(--sans);font-weight:700;font-size:10.5px;
		letter-spacing:.2px;line-height:1.1;text-align:center;transition:color .18s}
	.k-barre a svg{width:21px;height:21px;flex:0 0 auto}
	.k-barre a.on{color:var(--green)}
	.k-barre a:hover{color:var(--green)}
	/* Retour au doigt : le libellé ne bouge pas, seule la teinte répond, sinon la
	   barre « saute » à chaque appui. */
	.k-barre a:active{color:var(--green-d);transform:scale(.94);transition:transform .1s}
	/* Le contenu doit pouvoir défiler au-delà de la barre, sinon la fin de page
	   et le pied de page restent inaccessibles derrière elle. */
	body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
	/* Le bouton flottant se pose au-dessus de la barre, côté pouce droit. */
	.k-wa{display:inline-flex;align-items:center;gap:7px;position:fixed;right:14px;z-index:901;
		bottom:calc(74px + env(safe-area-inset-bottom));
		background:var(--lime);color:var(--ink);text-decoration:none;
		font-family:var(--sans);font-weight:800;font-size:13.5px;
		padding:10px 15px 10px 12px;border-radius:999px;
		box-shadow:0 8px 22px rgba(21,33,27,.26)}
	.k-wa:active{transform:scale(.96);transition:transform .1s}
	.k-wa svg{width:19px;height:19px}
	/* Quand une feuille du bas est ouverte, la barre et le bouton s'effacent :
	   deux couches d'interface superposées en bas d'écran sont illisibles. */
	body.k-sheet-open .k-barre,body.k-sheet-open .k-wa{opacity:0;pointer-events:none;transition:opacity .2s}
}

/* ── Repères de molécule sur la fiche produit (inc/molecule.php) ───────────────
   Première section sous le bloc d'achat : savoir si on prend le plus fort ou le
   plus doux du catalogue passe avant l'histoire de la variété. La note de source
   fait partie du bloc — la retirer rendrait l'échelle malhonnête.
   Pas de marge propre : le conteneur .k-section-sm gère l'espacement. */
.k-molbox{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);padding:26px;
	box-shadow:0 14px 36px rgba(21,33,27,.07)}
.k-molbox-head h2{margin:6px 0 0;font-family:var(--display);font-weight:800;font-size:1.6rem;line-height:1.1}
.k-molbox-head h2 small{display:block;margin-top:5px;font-family:var(--mono);font-weight:400;
	font-size:.74rem;letter-spacing:.04em;color:var(--muted);text-transform:none}
.k-molbox-grid{display:grid;grid-template-columns:250px 1fr;gap:28px;margin-top:20px;align-items:start}
.k-molscale-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
	padding:9px 0;border-bottom:1px solid var(--cream-2)}
.k-molscale-lbl{font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.11em;
	text-transform:uppercase;color:var(--ink)}
.k-molscale-bars{display:flex;gap:5px}
/* Crans pleins/vides : l'échelle doit rester lisible sans couleur (impression, daltonisme). */
.k-molscale-bars i{width:26px;height:9px;border-radius:5px;background:var(--cream-2);
	border:1px solid #E4DCC6}
.k-molscale-bars i.on{background:var(--green);border-color:var(--green)}
.k-molscale-note{margin:12px 0 0;font-size:.82rem;line-height:1.5;color:var(--muted)}
.k-molbox-txt p{margin:0 0 14px;font-size:.96rem;line-height:1.65}
.k-molbox-link{font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.05em;
	color:var(--green);text-decoration:none;border-bottom:2px solid var(--lime);padding-bottom:2px}
.k-molbox-link:hover{color:var(--green-d)}
.k-molbox-src{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--cream-2);
	font-size:.79rem;line-height:1.6;color:var(--muted)}
@media(max-width:820px){
	.k-molbox{padding:20px}
	.k-molbox-grid{grid-template-columns:1fr;gap:20px}
	.k-molbox-head h2{font-size:1.35rem}
}

/* ── Consentements à la caisse (woocommerce/checkout/form-checkout.php) ─────────
   Deux cases de même structure, pour qu'elles s'alignent au pixel : grille
   `auto 1fr`, donc la note se place TOUJOURS sous le texte et jamais sous la
   case. C'est ce décalage qui rendait le bloc illisible.
   Hiérarchie assumée : ouvrir un compte rend un service au client et porte une
   carte ; la newsletter sert d'abord la boutique et reste une ligne discrète.
   Case à 22 px : la case native fait 13 px, sous les 24 px recommandés pour une
   cible tactile — et c'est un mobile qui a passé notre première commande. */
.k-consent{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:0 13px;
	margin:16px 0 0;cursor:pointer;font-weight:400}
.k-consent input[type=checkbox]{width:22px;height:22px;margin:1px 0 0;flex:0 0 auto;
	accent-color:var(--green);cursor:pointer}
.k-consent-txt{font-size:.9rem;line-height:1.5;color:var(--muted)}
.k-consent-txt b{display:block;font-family:var(--display);font-weight:800;
	font-size:1.02rem;line-height:1.3;color:var(--ink);margin-bottom:3px}
/* La proposition utile : carte légèrement teintée, elle doit se remarquer. */
.k-consent--main{padding:15px 17px;background:var(--cream);
	border:1px solid var(--cream-2);border-radius:var(--radius-s)}
.k-consent--main:focus-within{border-color:var(--green)}
.k-consent--main:has(input:checked){border-color:var(--green);
	background:rgba(28,122,78,.055)}
/* La newsletter : pas de carte, texte plus petit — subordonnée, pas cachée. */
.k-consent--soft{margin-top:14px;padding:0 2px}
.k-consent--soft .k-consent-txt{font-size:.84rem}
.k-consent--soft input[type=checkbox]{width:19px;height:19px;margin-top:0}

/* ── Suivi de commande invité (woocommerce/order/form-tracking.php) ─────────────
   Le balisage natif flottait les libellés à côté des champs : champs étroits,
   lignes désalignées. Grille à deux colonnes, libellés au-dessus, et la carte
   détache le formulaire du texte d'aide qui l'entoure. */
.k-track{background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius);
	padding:26px;margin:26px 0 34px;box-shadow:0 14px 36px rgba(21,33,27,.07)}
/* Champs + bouton sur une seule ligne, bouton à droite : la cible tombe juste
   après le dernier champ rempli, pas en dessous à gauche. */
.k-track-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end}
.k-track-row{display:flex;flex-direction:column;gap:7px;margin:0;float:none;width:auto}
.k-track-row label{font-family:var(--mono);font-size:.72rem;font-weight:700;
	letter-spacing:.11em;text-transform:uppercase;color:var(--ink)}
.k-track-row .input-text{width:100%;box-sizing:border-box;padding:13px 15px;
	font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--cream);
	border:1px solid var(--cream-2);border-radius:var(--radius-s)}
.k-track-row .input-text:focus{outline:none;border-color:var(--green);background:#fff}
.k-track-row .input-text::placeholder{color:var(--muted);opacity:.8}
.k-track-btn{margin-top:20px}
/* Résultat renvoyé par WooCommerce sous le formulaire — mêmes classes que la page
   de confirmation de commande, donc stylées une fois pour les deux.
   Les <mark> natifs s'affichent en JAUNE FLUO par défaut du navigateur : on les
   repasse en vert de marque, sans fond criard. */
.woocommerce-order-details,.woocommerce-columns--addresses{margin-top:30px}
.woocommerce-thankyou-order-details,.track_order+p,.woocommerce-order-details+p{margin-top:18px}
.entry-content mark,.k-page mark,.woocommerce mark{background:none;color:var(--green);
	font-weight:700;padding:0}
.woocommerce-order-details h2,.woocommerce-column h2,.woocommerce-columns--addresses h2{
	font-family:var(--display);font-weight:800;font-size:1.22rem;margin:0 0 12px}
/* Tableau du récapitulatif. Sélecteurs volontairement portés sur
   `.woocommerce-table--order-details` et NON sur `.shop_table` en général : ce
   dernier habille aussi le panier et le compte (cf. règles ligne ~707), qu'on ne
   veut pas déplacer. Il faut deux classes pour battre `.woocommerce table.shop_table
   th`, qui posait un fond crème jusque sur les cellules de totaux. */
.woocommerce table.woocommerce-table--order-details{width:100%;border-collapse:separate;
	border-spacing:0;background:#fff;border:1px solid var(--cream-2);
	border-radius:var(--radius);overflow:hidden;font-size:.95rem}
.woocommerce table.woocommerce-table--order-details thead th{text-align:left;
	font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.11em;
	text-transform:uppercase;color:var(--muted);background:var(--cream);
	padding:12px 18px;border-bottom:1px solid var(--cream-2)}
.woocommerce table.woocommerce-table--order-details tbody td,
.woocommerce table.woocommerce-table--order-details tbody th{background:#fff;
	padding:15px 18px;text-align:left;vertical-align:middle;border:0}
/* Les totaux : fond blanc comme le reste, séparés par un filet, pas par une teinte. */
.woocommerce table.woocommerce-table--order-details tfoot th,
.woocommerce table.woocommerce-table--order-details tfoot td{background:#fff;
	font-family:var(--body);font-size:.95rem;text-transform:none;letter-spacing:0;
	color:var(--muted);font-weight:500;text-align:left;padding:11px 18px;
	border-top:1px solid var(--cream-2)}
.woocommerce table.woocommerce-table--order-details tfoot tr:first-child th,
.woocommerce table.woocommerce-table--order-details tfoot tr:first-child td{
	border-top:1px solid var(--cream-2)}
/* Dernière ligne = le total : c'est le chiffre qu'on vient lire, il doit ressortir. */
.woocommerce table.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce table.woocommerce-table--order-details tfoot tr:last-child td{
	color:var(--ink);font-weight:800;font-size:1.05rem;padding-top:13px;padding-bottom:15px}
/* Enfant DIRECT seulement : la mention « (dont X € TVA) » est imbriquée dans un
   <small> et ne doit pas prendre la couleur du total. */
.woocommerce table.woocommerce-table--order-details tfoot tr:last-child td>.amount{color:var(--green)}
.woocommerce table.woocommerce-table--order-details tfoot tr:last-child td small{
	font-weight:500;color:var(--muted);font-size:.82rem}
/* Montants alignés à droite : on compare des nombres, pas du texte. */
.woocommerce table.woocommerce-table--order-details thead th:last-child,
.woocommerce table.woocommerce-table--order-details tbody td:last-child,
.woocommerce table.woocommerce-table--order-details tfoot td{text-align:right;
	font-variant-numeric:tabular-nums}
.woocommerce table.woocommerce-table--order-details a{color:var(--green);
	text-decoration:none;font-weight:700}
.woocommerce table.woocommerce-table--order-details a:hover{text-decoration:underline}
.woocommerce table.woocommerce-table--order-details .product-quantity{color:var(--muted);
	font-weight:600}
.woocommerce-columns--addresses{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.woocommerce-columns--addresses .woocommerce-column{background:#fff;
	border:1px solid var(--cream-2);border-radius:var(--radius);padding:20px}
.woocommerce-columns--addresses address{font-style:normal;line-height:1.7;font-size:.94rem}

/* ── Icônes de section (data-URI, pas de police externe : la CSP bloque les
   requêtes tierces et une police d'icônes coûterait un fichier de plus). Tracé
   dans le même registre que les icônes du thème : 24×24, filet arrondi. ── */
.k-ico{display:flex;align-items:center;gap:14px}
/* Pastille blanche cerclée : sur un fond crème, un aplat crème ne se voit pas.
   36 px pour tenir l'équilibre avec un titre Bricolage de ~1,9 rem. */
.k-ico::before{content:'';flex:0 0 auto;width:36px;height:36px;background-repeat:no-repeat;
	background-position:center;background-size:21px 21px;border-radius:11px;
	background-color:#fff;border:1px solid var(--cream-2);
	box-shadow:0 2px 6px rgba(21,33,27,.05)}
.k-ico-mail::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C7A4E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.75' y='5.25' width='18.5' height='13.5' rx='2.5'/%3E%3Cpath d='m3.5 8 7.35 4.9a2 2 0 0 0 2.3 0L20.5 8'/%3E%3C/svg%3E")}
.k-ico-help::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C7A4E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.25'/%3E%3Cpath d='M9.35 9.1a2.7 2.7 0 1 1 3.75 2.5c-.72.32-1.1.95-1.1 1.74v.36'/%3E%3Cpath d='M12 17.15h.01'/%3E%3C/svg%3E")}
.k-ico-truck::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C7A4E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.75 6.5h9.75v9.25H2.75z'/%3E%3Cpath d='M12.5 9.75h3.6L19.5 13v2.75H12.5z'/%3E%3Ccircle cx='6.75' cy='17.75' r='1.9'/%3E%3Ccircle cx='16' cy='17.75' r='1.9'/%3E%3Cpath d='M8.65 17.75h5.45'/%3E%3C/svg%3E")}
.k-track-btn svg{width:18px;height:18px;flex:0 0 auto}
.k-track-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
	white-space:nowrap;padding-top:14px;padding-bottom:14px}

@media(max-width:820px){
	.k-track{padding:20px}
	.k-track-grid{grid-template-columns:1fr;gap:16px;align-items:stretch}
	.k-track-btn{width:100%;margin-top:2px}
	.k-ico{gap:11px}
	.k-ico::before{width:30px;height:30px;background-size:18px 18px;border-radius:9px}
}
@media(max-width:700px){
	.woocommerce table.woocommerce-table--order-details thead th,
	.woocommerce table.woocommerce-table--order-details tbody td,
	.woocommerce table.woocommerce-table--order-details tbody th,
	.woocommerce table.woocommerce-table--order-details tfoot th,
	.woocommerce table.woocommerce-table--order-details tfoot td{padding-left:13px;padding-right:13px}
}

/* ── Page de suivi de colis du plugin Colissimo (/lpc/tracking/<hash>) ──────────
   Page servie au client depuis l'e-mail d'expédition, et rendue par le plugin —
   pas par nos gabarits. Son partial n'est pas surchargeable depuis le thème
   (`LpcHelper::renderPartial` ne cherche que dans le dossier du plugin), donc on
   l'habille par le CSS : toucher aux fichiers du plugin serait écrasé à la
   prochaine mise à jour. L'en-tête et le pied, eux, sont réglés par les
   header.php / footer.php du thème.
   Les tableaux n'ont AUCUNE classe utilitaire : on cible par la structure. */
.k-classic-main{display:block;padding:44px 22px 64px}
.lpc_tracking{max-width:860px!important;margin:0 auto!important}
.lpc_tracking_logo{margin-bottom:26px}
.lpc_tracking_logo img{max-width:168px;height:auto;margin:0!important}
.lpc_tracking_title{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,4vw,2.4rem);
	line-height:1.08;margin:0 0 10px;color:var(--ink)}
.lpc_tracking_method{margin:0 0 22px;color:var(--muted);font-size:.96rem}
.lpc_tracking_method b{color:var(--ink)}
.lpc_tracking_separator{display:none} /* le filet natif doublonne avec les cartes */
.lpc_tracking_summary,.lpc_tracking_events,.lpc_tracking_steps{margin:0 0 26px}
.lpc_tracking_summary>h3,.lpc_tracking_events>h3,.lpc_tracking_steps>h3,
.lpc_tracking h3{font-family:var(--display);font-weight:800;font-size:1.2rem;margin:0 0 12px}
.lpc_tracking table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;
	border:1px solid var(--cream-2);border-radius:var(--radius);overflow:hidden;
	font-size:.94rem;box-shadow:0 14px 36px rgba(21,33,27,.06)}
.lpc_tracking table th{text-align:left;font-family:var(--mono);font-size:.68rem;font-weight:700;
	letter-spacing:.11em;text-transform:uppercase;color:var(--muted);background:var(--cream);
	padding:12px 18px!important;border-bottom:1px solid var(--cream-2);white-space:nowrap}
.lpc_tracking table td{padding:15px 18px!important;border-top:1px solid var(--cream-2);
	vertical-align:top;line-height:1.55}
.lpc_tracking table tbody tr:first-child td{border-top:0}
/* Le numéro de colis est l'information qu'on vient chercher : il doit sauter aux yeux. */
.lpc_tracking_tracknumber{font-family:var(--mono)!important;font-weight:700;font-size:1.02rem;
	color:var(--green);white-space:nowrap}
.lpc_tracking table a{color:var(--green);font-weight:700;text-decoration:none}
.lpc_tracking table a:hover{text-decoration:underline}
/* Étape atteinte dans la chronologie : le gris du plugin devient un vert discret. */
.lpc__timeline__active{background-color:rgba(28,122,78,.07)!important}
/* Ce bloc est souvent rendu vide par le plugin, mais avec une espace à l'intérieur :
   `:empty` ne peut donc pas l'atteindre. On lui retire tout habillage — invisible
   quand il ne contient rien, lisible quand il porte un message. */
.lpc_tracking_message{margin:0;padding:0;background:none;border:0;font-size:.92rem;
	color:var(--muted)}
.lpc_tracking_message:not(:empty){margin-bottom:6px}
@media(max-width:700px){
	.k-classic-main{padding:26px 16px 44px}
	.lpc_tracking table{font-size:.88rem}
	.lpc_tracking table th{padding:10px 12px!important}
	.lpc_tracking table td{padding:12px!important}
	.lpc_tracking table,.lpc_tracking table tbody,.lpc_tracking table tr{display:block}
	.lpc_tracking table thead{display:none} /* libellés inutiles quand tout s'empile */
	.lpc_tracking table td{display:block;border-top:0}
	.lpc_tracking table tr+tr{border-top:1px solid var(--cream-2)}
}

/* En-tête du formulaire de suivi : intitulé + logo transporteur. */
.k-track-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
	margin:0 0 20px;padding-bottom:15px;border-bottom:1px solid var(--cream-2)}
.k-track-head-t{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.13em;
	text-transform:uppercase;color:var(--muted)}
.k-track-head img{display:block;width:104px;height:24px;object-fit:contain;flex:0 0 auto}
@media(max-width:520px){
	.k-track-head img{width:88px;height:20px}
}

/* Séparateur entre le suivi sans compte (en tête) et les blocs de connexion. */
.k-acc-or{position:relative;text-align:center;margin:30px auto 22px;max-width:var(--maxw)}
.k-acc-or::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--cream-2)}
.k-acc-or span{position:relative;display:inline-block;padding:0 16px;background:var(--cream);
	font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.13em;
	text-transform:uppercase;color:var(--muted)}
/* Aides sous les champs de suivi : ce qu'on attend, et pourquoi les deux sont exigés. */
.k-track-row small{font-size:.76rem;line-height:1.45;color:var(--muted)}
.k-track-intro{margin:0 0 18px;font-size:.94rem;line-height:1.6;color:var(--muted)}

/* Sur la page compte, la carte de suivi s'aligne sur les cartes de connexion.
   Celles-ci sont en retrait de 28 px — la valeur du `gap` de #customer_login (l. 740) —
   parce que les colonnes flex ne remplissent pas tout le conteneur. Sans ce retrait,
   la carte de suivi dépassait des deux côtés et paraissait plus grosse. */
.k-track--acc{margin-inline:28px}
@media(max-width:780px){
	.k-track--acc{margin-inline:0} /* colonnes empilées : plus de retrait à reproduire */
}

/* Bandeau de rattachement des commandes invité (mu-plugins/kanaa-rattachement.php). */
.k-ratt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
	margin:0 0 24px;padding:20px 22px;background:#fff;border:1px solid var(--cream-2);
	border-radius:var(--radius);box-shadow:0 14px 36px rgba(21,33,27,.07)}
.k-ratt-ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px;
	border-radius:13px;background:var(--cream);color:var(--green);flex:0 0 auto}
.k-ratt-ic svg{width:23px;height:23px}
.k-ratt-tx b{display:block;font-family:var(--display);font-weight:800;font-size:1.06rem;
	line-height:1.25;margin-bottom:4px}
.k-ratt-tx span{font-size:.88rem;line-height:1.55;color:var(--muted)}
.k-ratt .k-btn{flex:0 0 auto;white-space:nowrap}
.k-ratt.is-ok{grid-template-columns:1fr;background:rgba(28,122,78,.06);border-color:var(--green)}
.k-ratt.is-ok b{margin-bottom:2px}
.k-ratt.is-ok span{font-size:.88rem;color:var(--muted)}
@media(max-width:760px){
	.k-ratt{grid-template-columns:auto 1fr;gap:14px 15px;padding:17px}
	.k-ratt .k-btn{grid-column:1/-1;width:100%;text-align:center;margin-top:4px}
}

/* Création de compte par lien d'activation (mu-plugins/kanaa-rattachement.php). */
.k-act-note{margin:14px 0 0;padding:12px 14px;background:var(--cream);
	border:1px solid var(--cream-2);border-radius:var(--radius-s);
	font-size:.85rem;line-height:1.5;color:var(--muted)}
.k-act-h1{font-family:var(--display);font-weight:800;line-height:1.08;
	font-size:clamp(1.9rem,4.5vw,2.7rem);margin:8px 0 14px}
.k-act-form{display:flex;flex-direction:column;gap:8px;margin-top:24px;max-width:400px}
.k-act-form label{font-family:var(--mono);font-size:.72rem;font-weight:700;
	letter-spacing:.11em;text-transform:uppercase;color:var(--ink)}
.k-act-form input{padding:14px 16px;font-family:var(--body);font-size:1rem;color:var(--ink);
	background:#fff;border:1px solid var(--cream-2);border-radius:var(--radius-s)}
.k-act-form input:focus{outline:none;border-color:var(--green)}
.k-act-form button{margin-top:10px;align-self:flex-start}
.k-act-err{margin:18px 0 0;padding:13px 15px;background:rgba(255,111,94,.1);
	border:1px solid var(--coral);border-radius:var(--radius-s);font-size:.9rem}

/* ── Pastilles des molécules ajoutées le 30/07/2026 ────────────────────────────
   Deux variantes à fournir pour chaque molécule, sinon la pastille sort sans style :
   la version teintée (en-tête de fiche, panier, commande) et la version posée sur
   l'image (carte boutique et galerie), en dégradé.
   CSA-14 = cyan glacier, MCP-N = vert émeraude — les couleurs de leurs halos. */
.mol-csa14{background:rgba(70,216,224,.18);color:#0E7A84;border:1px solid rgba(70,216,224,.45)}
.mol-mcpn{background:rgba(52,184,122,.16);color:#146B45;border:1px solid rgba(52,184,122,.38)}
/* Sur l'image : texte sombre sur le cyan, qui est trop clair pour du blanc. */
.k-pc-ph .mol-csa14,.k-gallery .main .mol-csa14{background:linear-gradient(135deg,#6BE7EE,#2BB8C4);
	color:#06343A;border:none;box-shadow:0 5px 16px rgba(70,216,224,.45)}
.k-pc-ph .mol-mcpn,.k-gallery .main .mol-mcpn{background:linear-gradient(135deg,#34B87A,#1C7A4E);
	color:#fff;border:none;box-shadow:0 5px 16px rgba(52,184,122,.4)}

/* ── Rail de molécules : masqué sous 700 px ────────────────────────────────────
   Il duplique le panneau Filtres, qui porte les mêmes molécules avec leurs
   compteurs et la sélection multiple. Sur mobile ce doublon volait 60 px de
   hauteur aux produits et imposait un défilement horizontal — avec, quelle que
   soit la solution tentée, un indicateur qui gênait la lecture : dégradé fixe
   qui mentait en butée, ombres CSS invisibles sous les puces opaques, chevrons
   qui recouvraient une puce. Le retirer règle le problème au lieu de l'habiller. */
/* 900 px et non 700 : c'est en dessous de 900 que le panneau Filtres apparaît,
   donc c'est là que le rail devient un doublon. Un seul point de rupture. */
@media(max-width:900px){
	.k-molnav{display:none}
}

/* ── Barre d'outils de la boutique en vue mobile ───────────────────────────────
   En flex `space-between`, le bouton Filtres et le compteur se collaient sur la
   première ligne et le menu de tri se retrouvait seul en dessous, à moitié large :
   trois éléments de tailles très inégales qu'aucun réglage de wrap n'aligne.
   En grille, les deux CONTRÔLES occupent la première ligne — Filtres à sa largeur,
   le tri prend le reste — et le compteur passe en légende sur toute la largeur,
   ce qui est sa nature : une information, pas une commande. */
@media(max-width:900px){
	.k-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;
		gap:10px;margin-bottom:18px}
	.k-filter-trigger{grid-area:1/1}
	.k-toolbar .right{grid-area:1/2;display:block;min-width:0}
	.k-toolbar .right .woocommerce-ordering,
	.k-toolbar .right select{width:100%}
	/*
	 * Alignement du bouton et du menu de tri. Deux causes au décalage, et la
	 * première n'était pas visible à l'œil : le formulaire `.woocommerce-ordering`
	 * porte une marge basse de 17 px venant de la feuille de WooCommerce, qui écrase
	 * la règle du thème à spécificité ÉGALE (Woo est chargé après). On monte donc la
	 * spécificité au lieu de mettre un !important.
	 * Seconde cause : le select mesurait 48 px contre 44 pour le bouton, ses
	 * paddings et sa bordure ne donnant pas la même boîte. Hauteur fixe sur les
	 * deux, paddings verticaux annulés — le texte se centre de lui-même.
	 */
	.woocommerce .k-toolbar .right .woocommerce-ordering{margin:0}
	.k-filter-trigger,.k-toolbar select{height:46px;min-height:0;
		padding-top:0;padding-bottom:0;box-sizing:border-box}
	.k-filter-trigger{border:2px solid var(--ink);justify-content:center}
	.k-toolbar select{padding-left:14px;padding-right:14px}
	.k-toolbar .count,.k-toolbar .woocommerce-result-count{grid-area:2/1/3/3;
		font-size:13px;line-height:1.4}
}

/* Marge sous l'archive boutique. Deux obstacles avant d'y arriver : elle valait
   50 px en style EN LIGNE dans le gabarit block (retiré), et surtout la règle
   `body.woocommerce-page main.wp-block-group` (l. 656) impose 60 px à DEUX classes
   — une règle à une seule classe ne pouvait pas gagner. On reprend donc la même
   spécificité, restreinte à l'archive pour ne pas déplacer panier, commande et
   compte, qui partagent ce sélecteur. */
body.woocommerce-page main.k-shop-archive{margin-bottom:34px}
@media(max-width:900px){
	.k-pagi{margin-top:14px}
	body.woocommerce-page main.k-shop-archive{margin-bottom:18px}
	/* Le vide sous la pagination venait surtout d'ici : 48 px de respiration en
	   tête du bloc SEO, légitimes sur grand écran, mais qui s'ajoutaient à la marge
	   de l'archive pour faire un tiers d'écran de fond crème sur un téléphone. */
	.k-seo{padding-top:26px}
}
