/* =====================================================================
   Bio & Bien-etre — design system public (V4, septembre 2026)
   ---------------------------------------------------------------------
   Source : .claude/design/mockups/v4/design.css (maquettes validees).
   Socle : Bootstrap 5.3 (public/lib/bootstrap, charge avant ce fichier),
   theme par ses variables --bs-* en fin de fichier. Les composants qui
   partagent un nom avec Bootstrap (.btn, .card, .badge, .alert, .form-*)
   sont declares via l'API de variables de Bootstrap, pour que ses etats
   (hover, focus, disabled) restent coherents.
   Polices : Cantata One (titres, chiffres, prix) et Inter (texte), servies
   par /css/fonts.css. L'espace pro garde Tabler (cf. account/_layout).
   ===================================================================== */


:root{
  --coral:#E8604C; --coral-dark:#CB4A39; --coral-tint:#FCEDE9; --coral-line:#F3D6CE;
  --sage:#7C9A72; --sage-deep:#4C6644; --sage-tint:#EEF2E7; --sage-line:#D6E0CC;
  --cream:#FAF6EC; --cream-2:#F2EADA; --paper:#FFFFFF;
  --ink:#2C2822; --ink-2:#5F584D; --muted:#897F72; --line:#E7DECC;
  --gold:#D6A24E; --brown:#5B4640; --brown-deep:#46352F;
  --radius:18px; --radius-sm:12px; --radius-xs:8px;
  --shadow:0 10px 30px -12px rgba(60,48,30,.22);
  --shadow-lg:0 24px 60px -20px rgba(60,48,30,.28);
  --shadow-card:0 4px 16px -8px rgba(60,48,30,.14);
  --maxw:1180px;
  --font-serif:'Cantata One',Georgia,'Times New Roman',serif;
  --font-sans:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
  --header-h:76px;
}
*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--ink);background:var(--cream);line-height:1.6;font-size:15.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- typographie ---------- */
h1,h2,h3,h4,.serif{font-family:var(--font-serif);font-weight:400;line-height:1.15;margin:0;letter-spacing:-.005em}
h1{font-size:48px;line-height:1.08}
h2{font-size:30px}
h3{font-size:20px}
h4{font-size:16px}
p{margin:0 0 1em}
.lead{font-size:18px;color:var(--ink-2);max-width:60ch}
.num{font-family:var(--font-serif);font-variant-numeric:lining-nums tabular-nums}
.eyebrow{display:inline-block;font-family:var(--font-sans);font-weight:600;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral);line-height:1;margin-bottom:12px}
.eyebrow.sage{color:var(--sage-deep)}
.eyebrow.light{color:#FFD9A8}
.muted{color:var(--muted)}
.small{font-size:13.5px}

/* ---------- boutons (API de variables Bootstrap) ---------- */
.btn{--bs-btn-padding-x:22px;--bs-btn-padding-y:12px;--bs-btn-font-family:var(--font-sans);--bs-btn-font-size:15px;--bs-btn-font-weight:600;--bs-btn-line-height:1;--bs-btn-border-width:1px;--bs-btn-border-radius:999px;--bs-btn-color:var(--ink);--bs-btn-bg:var(--paper);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--paper);--bs-btn-hover-border-color:var(--ink-2);--bs-btn-active-color:var(--ink);--bs-btn-active-bg:var(--cream-2);--bs-btn-active-border-color:var(--ink-2);--bs-btn-focus-box-shadow:0 0 0 3px var(--sage-tint);--bs-btn-disabled-color:var(--muted);--bs-btn-disabled-bg:var(--cream-2);--bs-btn-disabled-border-color:var(--line);display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background-color .15s,color .15s,transform .15s,box-shadow .15s,border-color .15s}
.btn:hover{transform:translateY(-1px)}
.btn-coral,.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:var(--coral);--bs-btn-border-color:var(--coral);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--coral-dark);--bs-btn-hover-border-color:var(--coral-dark);--bs-btn-active-color:#fff;--bs-btn-active-bg:var(--coral-dark);--bs-btn-active-border-color:var(--coral-dark);--bs-btn-focus-box-shadow:0 0 0 3px var(--coral-tint);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#EFA79B;--bs-btn-disabled-border-color:#EFA79B}
.btn-sage,.btn-success{--bs-btn-color:#fff;--bs-btn-bg:var(--sage-deep);--bs-btn-border-color:var(--sage-deep);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3E5537;--bs-btn-hover-border-color:#3E5537;--bs-btn-active-color:#fff;--bs-btn-active-bg:#3E5537;--bs-btn-active-border-color:#3E5537}
.btn-ghost,.btn-secondary,.btn-outline-secondary,.btn-light{--bs-btn-color:var(--ink);--bs-btn-bg:var(--paper);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--paper);--bs-btn-hover-border-color:var(--ink-2);--bs-btn-active-color:var(--ink);--bs-btn-active-bg:var(--cream-2);--bs-btn-active-border-color:var(--ink-2)}
.btn-outline,.btn-outline-primary{--bs-btn-color:var(--coral);--bs-btn-bg:transparent;--bs-btn-border-color:var(--coral);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--coral);--bs-btn-hover-border-color:var(--coral);--bs-btn-active-color:#fff;--bs-btn-active-bg:var(--coral-dark);--bs-btn-active-border-color:var(--coral-dark)}
.btn-white{--bs-btn-color:var(--coral-dark);--bs-btn-bg:#fff;--bs-btn-border-color:#fff;--bs-btn-hover-color:var(--coral-dark);--bs-btn-hover-bg:#fff;--bs-btn-hover-border-color:#fff;--bs-btn-active-color:var(--coral-dark);--bs-btn-active-bg:var(--cream);--bs-btn-active-border-color:var(--cream)}
.btn-link{--bs-btn-color:var(--coral);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--coral-dark);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:transparent;text-decoration:none}
.btn-lg{--bs-btn-padding-x:28px;--bs-btn-padding-y:15px;--bs-btn-font-size:16px;--bs-btn-border-radius:.5rem}
.btn-sm{--bs-btn-padding-x:15px;--bs-btn-padding-y:9px;--bs-btn-font-size:13.5px;--bs-btn-border-radius:.5rem}
.btn-block{width:100%}
.icon-btn{width:42px;height:42px;border-radius:.5rem;display:inline-grid;place-items:center;background:var(--paper);border:1px solid var(--line);color:#5a5348;cursor:pointer;padding:0}
.icon-btn:hover{border-color:var(--ink-2)}

/* ---------- barre utilitaire + header ---------- */
.util{background:var(--sage-deep);color:#EAF0E4;font-size:13.5px}
.util .wrap{display:flex;align-items:center;justify-content:space-between;height:38px}
.util a{opacity:.9}.util a:hover{opacity:1;text-decoration:underline}
.util .sep{opacity:.4;margin:0 10px}
header.site{position:sticky;top:0;z-index:20;background:rgba(250,246,236,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:28px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-serif);font-size:26px;white-space:nowrap}
.brand .brand-leaf{width:40px;height:40px;flex-shrink:0;color:var(--sage-deep)}
nav.pillars{display:flex;gap:6px;margin-left:8px}
nav.pillars a{font-family:var(--font-serif);font-size:18px;padding:9px 15px;border-radius:999px;color:#3c362e}
nav.pillars a:hover{background:var(--sage-tint);color:var(--sage-deep)}
nav.pillars a.active{color:var(--coral)}
@media(min-width:901px) and (max-width:1100px){header.site .brand{font-size:22px}nav.pillars{gap:0;margin-left:0}nav.pillars a{font-size:17px;padding:9px 11px}}
.head-actions{margin-left:auto;display:flex;align-items:center;gap:14px}

/* ---------- fil d'ariane ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px;color:var(--muted);padding:18px 0 0}
.crumbs a:hover{color:var(--coral)}
.crumbs .sep{opacity:.5}
.crumbs [aria-current]{color:var(--ink-2)}

/* ---------- sections ---------- */
.section{padding:56px 0}
.section-tight{padding:36px 0}
.section-white{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-sage{background:var(--sage-tint);border-top:1px solid var(--sage-line);border-bottom:1px solid var(--sage-line)}
.section-cream2{background:var(--cream-2)}
.section-brown{background:var(--brown);color:#F4EBE4}
.sec-head{display:flex;align-items:flex-end;gap:16px;margin:0 0 26px}
.sec-head .t h2{margin:0}
.sec-head .t .eyebrow{margin-bottom:8px}
.sec-head .count{color:var(--muted);font-size:15px;padding-bottom:4px}
.sec-head .more{margin-left:auto;color:var(--coral);font-weight:600;font-size:15px;white-space:nowrap;padding-bottom:4px}
.sec-head .more:hover{text-decoration:underline}
.sec-head.center{flex-direction:column;align-items:center;text-align:center}
.sec-head.center .more{margin:0}

/* ---------- recherche + chips ---------- */
.searchbar{display:flex;gap:10px;max-width:620px;flex-wrap:wrap}
.searchbar input{flex:1;min-width:220px;padding:14px 18px;border-radius:.5rem;border:1px solid var(--line);background:var(--paper);font-size:15px;font-family:inherit}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{padding:8px 16px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:14px;font-weight:500;color:#5a5348;cursor:pointer}
.chip.active,.chip:hover{background:var(--coral);border-color:var(--coral);color:#fff}

/* ---------- cartes ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid.g2{grid-template-columns:repeat(2,1fr)}
.grid.g4{grid-template-columns:repeat(4,1fr);gap:22px}
.card{--bs-card-bg:var(--paper);--bs-card-border-color:var(--line);--bs-card-border-width:1px;--bs-card-border-radius:var(--radius);--bs-card-inner-border-radius:calc(var(--radius) - 1px);--bs-card-spacer-x:24px;--bs-card-spacer-y:22px;--bs-card-cap-bg:transparent;--bs-card-cap-padding-y:14px;--bs-card-cap-padding-x:24px;--bs-card-title-color:var(--ink);--bs-card-color:var(--ink);overflow:hidden;transition:transform .2s,box-shadow .2s;position:relative;color:var(--ink)}
.card-title{font-family:var(--font-serif);font-size:20px}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card .ph{position:relative;aspect-ratio:16/10;background-size:cover;background-position:center;background-color:var(--cream-2)}
.card .body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;gap:8px}
.card h3{font-size:20px;letter-spacing:-.2px}
.card p{color:var(--ink-2);font-size:14.5px;margin:0;flex:1}
.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px}
.badge{--bs-badge-padding-x:12px;--bs-badge-padding-y:6px;--bs-badge-font-size:11.5px;--bs-badge-font-weight:600;--bs-badge-color:#fff;--bs-badge-border-radius:999px;position:static;background:var(--coral);letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.ph > .badge,.product-gallery .main > .badge{position:absolute;top:14px;left:14px;z-index:1}
.badge.sage{background:var(--sage-deep)}
.badge.gold{background:var(--gold);color:#2C2822}
.badge.ink{background:var(--ink)}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--sage-tint);color:var(--sage-deep);font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px;white-space:nowrap}
.pill.coral{background:var(--coral-tint);color:var(--coral-dark)}
.pill.gold{background:#FBF1DC;color:#8A6220}
.pill.neutral{background:var(--cream-2);color:var(--ink-2)}
.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;color:var(--muted);font-size:13.5px}
.dot{width:4px;height:4px;border-radius:50%;background:var(--muted);flex-shrink:0}
.stars{color:var(--gold);font-size:14px;letter-spacing:1px;white-space:nowrap}
.verified{display:inline-flex;align-items:center;gap:5px;background:var(--sage-tint);color:var(--sage-deep);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.readmore{color:var(--coral);font-weight:600;display:inline-flex;align-items:center;gap:7px;font-size:14.5px}
.readmore .arw{transition:transform .18s}
a:hover .readmore .arw,.readmore:hover .arw{transform:translateX(4px)}

/* variante « à la une » : image à gauche, texte à droite */
.card.wide{flex-direction:row;min-height:320px}
.card.wide .ph{aspect-ratio:auto;flex:0 0 52%}
.card.wide .body{padding:32px 34px;justify-content:center}
.card.wide h3{font-size:28px}
.card.wide p{flex:0;font-size:15.5px}

/* variante horizontale compacte (colonne latérale) */
.card.horizontal{flex-direction:row;align-items:stretch}
.card.horizontal .ph{aspect-ratio:auto;flex:0 0 140px}
.card.horizontal .body{padding:16px 18px;gap:6px}
.card.horizontal h3{font-size:17.5px}
.card.horizontal p{font-size:13.5px}

/* variante produit */
.card.prod .ph{aspect-ratio:1/1}
.card.prod .body{padding:16px 18px 18px}
.card.prod .brand-name{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.card.prod h3{font-size:16.5px;line-height:1.3}
.card.prod .price{font-family:var(--font-serif);font-size:20px;color:var(--ink)}
.card.prod .price .old{font-family:var(--font-sans);font-size:13px;color:var(--muted);text-decoration:line-through;margin-left:6px}
.card.prod .buy{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px}

/* grille éditoriale : 1 large + colonne de 2 */
.feature-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:stretch}
.feature-grid .stack{display:flex;flex-direction:column;gap:26px}
.feature-grid .stack .card{flex:1}

/* grille « mosaïque » : 2 colonnes + 1 large en dessous en alternance */
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:26px}
.mosaic > *{grid-column:span 2}
.mosaic > .span3{grid-column:span 3}
.mosaic > .span4{grid-column:span 4}

/* ---------- agenda : ligne d'événement + date ---------- */
.event{display:grid;grid-template-columns:84px 1fr auto;gap:20px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;transition:transform .2s,box-shadow .2s}
.event:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.event h3{font-size:19px;margin-bottom:4px}
.event .where{color:var(--muted);font-size:13.5px}
.event-list{display:flex;flex-direction:column;gap:14px}
.datebox{width:84px;text-align:center;background:var(--coral-tint);color:var(--coral-dark);border:1px solid var(--coral-line);border-radius:var(--radius-sm);padding:10px 0;flex-shrink:0}
.datebox .d{font-family:var(--font-serif);font-size:28px;line-height:1}
.datebox .m{font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-weight:700}
.datebox.lg{width:110px;padding:16px 0}
.datebox.lg .d{font-size:40px}
.datebox.lg .m{font-size:12.5px}

/* ---------- recettes mises en avant ---------- */
.recipes{display:grid;grid-template-columns:1.25fr 1fr;gap:30px;align-items:stretch}
.recipe-hero{position:relative;border-radius:var(--radius);overflow:hidden;min-height:420px;display:flex;align-items:flex-end;color:#fff;background-size:cover;background-position:center;background-color:var(--sage-deep)}
.recipe-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,30,20,0) 35%,rgba(30,30,20,.82))}
.recipe-hero .c{position:relative;padding:30px 32px}
.recipe-hero h3{font-size:30px;color:#fff;margin:6px 0 8px}
.recipe-hero p{color:rgba(255,255,255,.9);margin:0 0 10px;max-width:46ch}
.recipe-hero .meta{color:rgba(255,255,255,.8)}
.recipe-list{display:flex;flex-direction:column;gap:14px}
.recipe-mini{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;transition:transform .2s,box-shadow .2s}
.recipe-mini:hover{transform:translateX(4px);box-shadow:var(--shadow-card)}
.recipe-mini .ph{width:92px;height:92px;border-radius:var(--radius-xs);background-size:cover;background-position:center}
.recipe-mini h3{font-size:16.5px;line-height:1.3;margin-bottom:4px}
.recipe-facts{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.recipe-facts b{color:var(--ink);font-weight:600}

/* ---------- accueil : hero, stats, univers, bandeau CTA ---------- */
.home-hero{position:relative;color:#fff;min-height:580px;display:flex;align-items:center;overflow:hidden}
.home-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.home-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(38,52,34,.86) 30%,rgba(38,52,34,.35) 75%)}
.home-hero .c{position:relative;padding:64px 0}
.home-hero h1{font-size:56px;max-width:15ch;color:#fff;margin:0 0 16px}
.home-hero .lead{font-size:19px;max-width:48ch;color:rgba(255,255,255,.94);margin:0 0 28px}
.searchcard{background:var(--paper);border-radius:.75rem;padding:12px;display:flex;gap:10px;max-width:720px;box-shadow:var(--shadow-lg);flex-wrap:wrap}
.searchcard input{flex:1;min-width:180px;border:0;padding:14px 18px;border-radius:.5rem;background:var(--cream);font-family:inherit;font-size:15px;color:var(--ink)}
.searchcard input.where{flex:0 1 230px}
.searchcard .btn{padding:14px 26px}
.trust{margin-top:18px;font-size:14px;opacity:.92;display:flex;gap:18px;flex-wrap:wrap}
.stats{background:var(--paper);border-bottom:1px solid var(--line)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:30px 24px}
.stat{text-align:center}
a.stat{display:block;color:inherit;border-radius:12px;padding:4px 0;transition:background .15s}
a.stat:hover{background:var(--cream)}
.stat .n{font-family:var(--font-serif);font-size:36px;color:var(--coral);line-height:1;font-variant-numeric:tabular-nums}
.stat .l{color:var(--muted);font-size:14px;margin-top:6px}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.pillar{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.pillar:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.pillar .ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:var(--sage-tint);margin-bottom:16px}
.pillar .ic.coral{background:var(--coral-tint)}
.pillar h3{font-size:22px;margin:0 0 8px}
.pillar p{color:var(--ink-2);font-size:14.5px;margin:0 0 14px;flex:1}
.cta-band{background:var(--coral);color:#fff;border-radius:var(--radius);padding:44px;display:flex;align-items:center;gap:30px;flex-wrap:wrap;box-shadow:var(--shadow)}
.cta-band h2{color:#fff;font-size:30px;flex:1;min-width:280px}
.cta-band p{color:rgba(255,255,255,.9);margin:6px 0 0;font-size:15px}
.cta-band .btn{background:#fff;color:var(--coral-dark);border-color:#fff}

/* ---------- livres (affiliation) ---------- */
.books-band{display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:center}
.books-band .label h2{color:#fff;font-size:26px;line-height:1.2}
.books-band .label p{color:rgba(255,255,255,.75);font-size:13.5px;margin:10px 0 0}
.books{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.book{display:flex;gap:16px;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-sm);padding:14px 16px}
.book .cover{width:64px;height:92px;border-radius:3px;box-shadow:0 6px 14px rgba(0,0,0,.35);background-size:cover;background-position:center;background-color:#7d6a62;flex-shrink:0}
.book .t{font-family:var(--font-serif);font-size:14.5px;line-height:1.3;color:#fff}
.book .a{font-size:12.5px;color:rgba(255,255,255,.7);margin-top:2px}
.book .price{font-family:var(--font-serif);font-size:18px;color:#FFD9A8;margin:6px 0 8px}
.book .btn{padding:8px 14px;font-size:13px}
.affil{font-size:12px;color:rgba(255,255,255,.55);margin-top:18px}

/* ---------- partenaires ---------- */
.partners{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.partner{height:84px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;place-items:center;font-family:var(--font-serif);font-size:14px;color:#8a8270;text-align:center;padding:8px;transition:transform .2s,box-shadow .2s;filter:grayscale(1);opacity:.85}
.partner:hover{filter:none;opacity:1;transform:translateY(-3px);box-shadow:var(--shadow-card)}

/* ---------- pré-footer : membre + newsletter ---------- */
.prefooter{background:var(--sage-tint);border-top:1px solid var(--sage-line)}
.prefooter .wrap{padding:48px 24px;display:grid;grid-template-columns:1fr 1fr;gap:26px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px;display:flex;flex-direction:column;gap:12px}
.panel.coral{background:var(--coral);border-color:var(--coral);color:#fff}
.panel.coral .eyebrow{color:#FFD9A8}
.panel.coral h2,.panel.coral h3{color:#fff}
.panel h3{font-size:24px}
.panel p{margin:0;color:var(--ink-2);font-size:14.5px}
.panel.coral p{color:rgba(255,255,255,.9)}
.panel ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14.5px}
.panel ul li::before{content:"✓";color:var(--sage-deep);font-weight:700;margin-right:8px}
.panel .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.nl-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.nl-form input{border:0;border-radius:.5rem;padding:13px 16px;font-family:inherit;font-size:14px;background:#fff;color:var(--ink);width:100%}
.nl-form input.full,.nl-form .btn{grid-column:1/-1}
.nl-form .btn{background:#fff;color:var(--coral-dark);border-color:#fff;justify-content:center}
.consent{font-size:12px;color:rgba(255,255,255,.75);margin-top:6px}
.consent a{text-decoration:underline}

/* ---------- footer ---------- */
footer.site{background:var(--sage-deep);color:#DCE6D4}
footer.site .wrap{padding:52px 24px 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
footer.site h4{font-family:var(--font-serif);color:#fff;font-size:16px;margin:0 0 14px}
footer.site a{display:block;color:#C7D5BE;padding:5px 0;font-size:14.5px}footer.site a:hover{color:#fff}
footer.site p{color:#C7D5BE;font-size:14.5px;margin:0 0 14px}
.foot-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-serif);font-size:20px;color:#fff;margin-bottom:14px}
.foot-brand .brand-leaf{width:40px;height:40px;flex-shrink:0;color:#F4F1E6}
.social{display:flex;gap:8px}
.social{gap:10px}
/* spécificité > footer.site a (display:block;padding:5px 0) */
footer.site .social a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;padding:0;margin:0;color:#fff}
footer.site .social a svg.ic{display:block;fill:currentColor}
.foot-bottom{border-top:1px solid rgba(255,255,255,.15)}
.foot-bottom .wrap{padding:18px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:#AFC0A5}
.foot-bottom a{display:inline;padding:0}

/* ---------- pages détail : en-tête, galerie, colonnes ---------- */
.page-head{padding:14px 0 26px}
.page-head .kicker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.page-head h1{max-width:22ch}
.page-head .sub{font-size:17px;color:var(--ink-2);margin:10px 0 0;max-width:60ch}
.page-head .meta{margin-top:14px;font-size:14.5px}
.page-head .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:260px 260px;gap:12px;border-radius:var(--radius);overflow:hidden}
.gallery .g{background-size:cover;background-position:center;background-color:var(--cream-2)}
.gallery .g:first-child{grid-row:span 2}
.gallery.tall{grid-template-rows:230px 230px 230px}
.gallery.tall .g:first-child{grid-row:span 3}
.layout{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start;padding:36px 0 56px}
.layout.narrow{grid-template-columns:1fr 320px}
.layout > .main{min-width:0}
.aside{position:sticky;top:calc(var(--top-h) + 20px);display:flex;flex-direction:column;gap:18px}
.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.box h3{font-size:18px;margin-bottom:12px}
.box.coral-soft{background:var(--coral-tint);border-color:var(--coral-line)}
.box.sage-soft{background:var(--sage-tint);border-color:var(--sage-line)}
.box .btn{width:100%}
.infolist{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.infolist li{display:grid;grid-template-columns:26px 1fr;gap:10px;font-size:14.5px;align-items:start}
.infolist .ic{font-size:16px;line-height:1.4;text-align:center}
.infolist b{display:block;font-weight:600;color:var(--ink)}
.infolist span{color:var(--ink-2)}
.hours{display:grid;gap:6px;font-size:14px;margin:0;padding:0;list-style:none}
.hours li{display:flex;justify-content:space-between;border-bottom:1px dotted var(--line);padding:5px 0}
.hours li.today{font-weight:600;color:var(--sage-deep)}
.hours li.closed span{color:var(--muted)}
.map-mini{height:200px;border-radius:var(--radius-sm);border:1px solid var(--line);overflow:hidden;position:relative;background:
  radial-gradient(circle at 30% 40%,rgba(124,154,114,.25),transparent 40%),
  repeating-linear-gradient(0deg,#EDEFE6,#EDEFE6 39px,#E4E7DA 40px),
  repeating-linear-gradient(90deg,#EDEFE6,#EDEFE6 39px,#E4E7DA 40px),#EDEFE6}
.map-mini .pin{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-30px 0 0 -15px;background:var(--coral);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.2)}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags .pill{font-weight:500}
.share{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted)}
.share a{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;font-size:13px}
.share a:hover{border-color:var(--coral);color:var(--coral)}

/* ---------- contenu éditorial ---------- */
.prose{font-size:16.5px;line-height:1.75;color:#3a342c;max-width:70ch}
.prose h2{font-size:26px;margin:38px 0 14px}
.prose h3{font-size:20px;margin:28px 0 10px}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 18px}
.prose li{margin-bottom:6px}
.prose img{border-radius:var(--radius);margin:24px 0}
.prose figure{margin:24px 0}
.prose figcaption{font-size:13px;color:var(--muted);margin-top:8px;text-align:center}
.prose blockquote{margin:28px 0;padding:22px 26px;border-left:4px solid var(--coral);background:var(--paper);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-family:var(--font-serif);font-size:20px;line-height:1.45;color:var(--ink)}
.prose blockquote cite{display:block;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);font-style:normal;margin-top:10px}
.prose a{color:var(--coral);text-decoration:underline;text-underline-offset:3px}
.prose .callout{background:var(--sage-tint);border:1px solid var(--sage-line);border-radius:var(--radius-sm);padding:18px 22px;margin:24px 0;font-size:15px}
.prose .callout b{color:var(--sage-deep)}
.toc{font-size:14px}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:toc}
.toc li{counter-increment:toc;padding:6px 0;border-bottom:1px dotted var(--line)}
.toc li a{display:flex;gap:10px;color:var(--ink-2)}
.toc li a::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-serif);color:var(--coral);min-width:22px}
.toc li a:hover{color:var(--coral)}
.author{display:flex;gap:18px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin:40px 0 0}
.author .av{width:72px;height:72px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;border:3px solid var(--cream-2)}
.author h3{font-size:18px;margin-bottom:4px}
.author p{margin:0;font-size:14px;color:var(--ink-2)}
.author .role{font-size:12.5px;color:var(--coral);font-weight:600;text-transform:uppercase;letter-spacing:.08em}

/* article : hero pleine largeur */
.article-hero{position:relative;color:#fff;min-height:460px;display:flex;align-items:flex-end;background-size:cover;background-position:center;background-color:var(--sage-deep)}
.article-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,30,20,.05) 20%,rgba(30,30,20,.85))}
.article-hero .wrap{position:relative;padding:60px 24px 44px;max-width:900px}
.article-hero h1{color:#fff;font-size:44px;max-width:20ch}
.article-hero .meta{color:rgba(255,255,255,.85);margin-top:16px}
.article-hero .meta .dot{background:rgba(255,255,255,.6)}
.inline-nl{background:var(--coral);color:#fff;border-radius:var(--radius);padding:26px 28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:36px 0}
.inline-nl h3{color:#fff;font-size:20px;flex:1;min-width:220px}
.inline-nl form{display:flex;gap:8px;flex:1;min-width:280px}
.inline-nl input{flex:1;border:0;border-radius:.5rem;padding:12px 16px;font-family:inherit;font-size:14px}
.inline-nl .btn{background:#fff;color:var(--coral-dark);border-color:#fff}

/* ---------- recette : faits, ingrédients, étapes ---------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 0}
.fact{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;text-align:center}
.fact .v{font-family:var(--font-serif);font-size:22px;color:var(--ink);line-height:1.1}
.fact .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}
.ingredients{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.ingredients li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;padding:8px 0;border-bottom:1px dotted var(--line)}
.ingredients li:last-child{border:0}
.ingredients input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--sage-deep);flex-shrink:0}
.ingredients .q{font-family:var(--font-serif);color:var(--coral-dark);min-width:64px}
.ingredients .group{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 0 4px;border:0}
.servings{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.servings .stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:.5rem;overflow:hidden}
.servings .stepper button{width:34px;height:34px;border:0;background:var(--paper);cursor:pointer;font-size:16px}
.servings .stepper b{font-family:var(--font-serif);min-width:34px;text-align:center}
.steps{margin:0;padding:0;list-style:none;counter-reset:step;display:grid;gap:22px}
.steps li{counter-increment:step;display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start}
.steps li::before{content:counter(step);font-family:var(--font-serif);font-size:22px;color:#fff;background:var(--coral);width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.steps h3{font-size:18px;margin-bottom:6px}
.steps p{margin:0;color:#3a342c;font-size:15.5px;line-height:1.7}
.steps img{border-radius:var(--radius-sm);margin-top:12px;max-width:520px}
.tip{display:grid;grid-template-columns:40px 1fr;gap:14px;background:#FBF1DC;border:1px solid #F0DDB4;border-radius:var(--radius-sm);padding:18px 20px;font-size:15px;margin:28px 0 0}
.tip .ic{font-size:24px;line-height:1.2}
.tip b{color:#8A6220}

/* ---------- salon / événement ---------- */
.event-hero{position:relative;background-size:cover;background-position:center;background-color:var(--sage-deep);min-height:340px;border-radius:var(--radius);overflow:hidden}
.event-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,30,20,.1),rgba(30,30,20,.55))}
.event-head{display:grid;grid-template-columns:110px 1fr;gap:26px;align-items:start;padding:28px 0 8px}
.programme{margin:0;padding:0;list-style:none;position:relative}
.programme::before{content:"";position:absolute;left:78px;top:6px;bottom:6px;width:2px;background:var(--line)}
.programme li{display:grid;grid-template-columns:62px 32px 1fr;gap:0 10px;align-items:start;padding:12px 0}
.programme .h{font-family:var(--font-serif);font-size:16px;color:var(--coral-dark);padding-top:2px}
.programme .n{width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--coral);margin:6px 0 0 8px;position:relative;z-index:1}
.programme b{display:block;font-weight:600}
.programme span{color:var(--ink-2);font-size:14px}
.day-tabs{display:flex;gap:8px;margin-bottom:16px}
.exhibitors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.exhibitor{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}
.exhibitor .lg{width:48px;height:48px;border-radius:10px;background-size:cover;background-position:center;background-color:var(--cream-2);flex-shrink:0}
.exhibitor b{display:block;font-size:14px;font-weight:600;line-height:1.25}
.exhibitor span{font-size:12.5px;color:var(--muted)}
.organizer{display:flex;gap:16px;align-items:center}
.organizer .lg{width:64px;height:64px;border-radius:14px;background-size:cover;background-position:center;background-color:var(--cream-2);flex-shrink:0}

/* ---------- produit ---------- */
.product-top{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:start;padding:24px 0 40px}
.product-gallery .main{aspect-ratio:1/1;border-radius:var(--radius);background-size:cover;background-position:center;background-color:var(--paper);border:1px solid var(--line);position:relative}
.product-gallery .thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
.product-gallery .thumbs div{aspect-ratio:1/1;border-radius:var(--radius-xs);background-size:cover;background-position:center;border:2px solid transparent;background-color:var(--cream-2);cursor:pointer}
.product-gallery .thumbs div.active{border-color:var(--coral)}
.product-info h1{font-size:34px}
.product-info .brand-name{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.price-block{display:flex;align-items:baseline;gap:12px;margin:20px 0 6px}
.price-block .price{font-family:var(--font-serif);font-size:38px;color:var(--ink);line-height:1}
.price-block .old{font-size:16px;color:var(--muted);text-decoration:line-through}
.price-block .unit{font-size:13.5px;color:var(--muted)}
.labels{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.label-ic{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500}
.variants{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 18px}
.variants .chip.active{background:var(--ink);border-color:var(--ink)}
.buy-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-top:18px}
.buy-box .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.buy-box .qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:.5rem;overflow:hidden}
.buy-box .qty button{width:40px;height:44px;border:0;background:var(--paper);cursor:pointer;font-size:18px}
.buy-box .qty b{font-family:var(--font-serif);min-width:36px;text-align:center}
.buy-box .btn{flex:1}
.reassure{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--ink-2)}
.reassure li{display:flex;gap:8px;align-items:center}
.seller{display:flex;gap:14px;align-items:center;background:var(--sage-tint);border:1px solid var(--sage-line);border-radius:var(--radius-sm);padding:14px 16px;margin-top:16px}
.seller .lg{width:52px;height:52px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0}
.seller b{display:block;font-weight:600}
.seller span{font-size:13px;color:var(--ink-2)}
.seller a.readmore{margin-left:auto;font-size:13.5px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px}
.tabs a{padding:12px 18px;font-weight:600;font-size:14.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.active{color:var(--coral);border-color:var(--coral)}
.spec{width:100%;border-collapse:collapse;font-size:14.5px}
.spec th,.spec td{text-align:left;padding:10px 0;border-bottom:1px dotted var(--line);vertical-align:top}
.spec th{font-weight:600;color:var(--ink);width:38%}
.spec td{color:var(--ink-2)}
.review{border-top:1px dotted var(--line);padding:16px 0}
.review .who{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:14px}
.review .who b{font-weight:600}
.review p{margin:0;font-size:14.5px;color:var(--ink-2)}

/* ---------- fiche annuaire ---------- */
.listing-head{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:start;padding:22px 0 10px}
.listing-head .logo{width:120px;height:120px;border-radius:24px;background:var(--paper);border:1px solid var(--line);background-size:cover;background-position:center;box-shadow:var(--shadow-card)}
.offer-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(120deg,#F5E2B8,#E7C57E);color:#5B4415;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;margin:0;padding:0;list-style:none;font-size:14.5px}
.services li{display:flex;gap:10px;align-items:flex-start}
.services li::before{content:"✓";color:var(--sage-deep);font-weight:700}
.contact-actions{display:grid;gap:10px}
.contact-actions .btn{justify-content:center}
.phone-reveal{font-family:var(--font-serif);font-size:22px;color:var(--ink);text-align:center;padding:10px;border:1px dashed var(--line);border-radius:var(--radius-sm)}
.report{font-size:12.5px;color:var(--muted);text-align:center}
.report a{text-decoration:underline}

/* ---------- pagination ---------- */
.pager{display:flex;justify-content:center;gap:8px;padding:44px 0}
.pager a{width:40px;height:40px;border-radius:.5rem;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);font-weight:600;color:#5a5348}
.pager a.active{background:var(--coral);border-color:var(--coral);color:#fff}

/* ---------- responsive ---------- */
@media(max-width:1024px){
  .layout,.layout.narrow{grid-template-columns:1fr}
  .aside{position:static}
  .product-top{grid-template-columns:1fr}
  .books{grid-template-columns:1fr 1fr}
  .partners{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  nav.pillars,.util{display:none}
  h1{font-size:38px}
  .home-hero h1{font-size:40px}
  .home-hero{min-height:auto}
  .stats .wrap,.pillars-grid,.grid,.grid.g4{grid-template-columns:repeat(2,1fr)}
  .feature-grid{grid-template-columns:1fr}
  .mosaic > *,.mosaic > .span3,.mosaic > .span4{grid-column:span 3}
  .recipes{grid-template-columns:1fr}
  .recipe-hero{min-height:320px}
  .card.wide{flex-direction:column}
  .card.wide .ph{aspect-ratio:16/10;flex:none}
  .books-band{grid-template-columns:1fr}
  .prefooter .wrap{grid-template-columns:1fr}
  footer.site .wrap{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr;grid-template-rows:240px 160px 160px}
  .gallery .g:first-child{grid-row:span 1}
  .gallery.tall{grid-template-rows:240px 140px 140px 140px}
  .gallery.tall .g:first-child{grid-row:span 1}
  .facts{grid-template-columns:repeat(2,1fr)}
  .exhibitors{grid-template-columns:1fr 1fr}
  .services{grid-template-columns:1fr}
  .listing-head{grid-template-columns:1fr}
  .article-hero h1{font-size:32px}
  .event-head{grid-template-columns:1fr}
  .event{grid-template-columns:70px 1fr}
  .event .act{grid-column:2}
}
@media(max-width:600px){
  .grid,.grid.g4,.stats .wrap,.pillars-grid,.books,.exhibitors{grid-template-columns:1fr}
  .partners{grid-template-columns:1fr 1fr}
  footer.site .wrap{grid-template-columns:1fr}
  .searchcard input.where{flex:1 1 100%}
  .cta-band{padding:30px}
  .nl-form{grid-template-columns:1fr}
  .product-gallery .thumbs{grid-template-columns:repeat(4,1fr)}
  .programme::before{display:none}
  .programme li{grid-template-columns:62px 1fr}
  .programme .n{display:none}
}
@media print{
  .util,header.site,footer.site,.prefooter,.share,.inline-nl,.aside .box.coral-soft{display:none}
  body{background:#fff}
}

/* nav : état actif piloté par data-active sur <nav> */
nav.pillars[data-active="annuaire"] a[data-key="annuaire"],
nav.pillars[data-active="boutique"] a[data-key="boutique"],
nav.pillars[data-active="agenda"] a[data-key="agenda"],
nav.pillars[data-active="blog"] a[data-key="blog"]{color:var(--coral)}

/* correctifs après revue accueil */
footer.site .foot-bottom .wrap{display:flex;padding:18px 24px;grid-template-columns:none}
footer.site .foot-bottom a{display:inline;padding:0}
.recipe-hero::after{background:linear-gradient(180deg,rgba(30,30,20,.05) 20%,rgba(30,30,20,.88))}
.card.horizontal .ph{flex:0 0 120px}
.grid .card.horizontal{min-height:120px}
.ingredients label{display:flex;gap:10px;flex:1;cursor:pointer}
.ingredients input:checked + label{color:var(--muted);text-decoration:line-through}
.page-head .facts{margin-top:22px}

/* ---------- icônes SVG inline (sprite en tête de <body>) ---------- */
svg.ic{display:inline-block;vertical-align:-.15em;flex-shrink:0}
.btn svg.ic{margin-right:2px}
.social a svg.ic,.share a svg.ic{vertical-align:0}
.icon-btn.burger{display:none}

/* ---------- pages listing ---------- */
.hero-a{background:linear-gradient(180deg,var(--cream),var(--cream-2));border-bottom:1px solid var(--line)}
.hero-a .wrap{padding:44px 24px 34px}
.hero-a h1{font-size:44px;margin:0 0 10px;max-width:20ch}
.hero-a .lead{margin:0 0 24px}
.hero-a .searchbar{margin-bottom:18px}
.searchbar.multi{max-width:800px}
.searchbar .btn{padding:14px 24px}
.results-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:26px 0 18px}
.results-bar .count{font-family:var(--font-serif);font-size:20px}
.results-bar .count b{color:var(--coral);font-weight:400}
.results-bar .sort{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.results-bar select,.filters select,.filters input{border:1px solid var(--line);border-radius:.5rem;padding:10px 16px;font-family:inherit;font-size:14px;background:var(--paper);color:var(--ink)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer;padding:8px 14px;border:1px solid var(--line);border-radius:.5rem;background:var(--paper)}
.toggle input{accent-color:var(--sage-deep)}
.split{display:grid;grid-template-columns:1.55fr 1fr;gap:30px;align-items:start}
.map{position:sticky;top:calc(var(--top-h) + 20px);height:640px;border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:
  radial-gradient(circle at 30% 40%,rgba(124,154,114,.25),transparent 40%),
  radial-gradient(circle at 70% 60%,rgba(232,96,76,.10),transparent 45%),
  repeating-linear-gradient(0deg,#EDEFE6,#EDEFE6 39px,#E4E7DA 40px),
  repeating-linear-gradient(90deg,#EDEFE6,#EDEFE6 39px,#E4E7DA 40px),#EDEFE6}
.map .pin{position:absolute;width:30px;height:30px;background:var(--coral);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.2)}
.map .pin.b{background:var(--sage-deep)}
.map .tag{position:absolute;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow-card);white-space:nowrap}
.map .zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:4px}
.map .zoom span{width:32px;height:32px;background:var(--paper);border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;font-weight:600}
.pro-list{display:flex;flex-direction:column;gap:16px}
.pro{display:grid;grid-template-columns:130px 1fr;gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px;transition:box-shadow .2s,transform .2s;position:relative}
.pro:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.pro .ph{width:130px;height:130px;border-radius:12px;background-size:cover;background-position:center;background-color:var(--cream-2)}
.pro .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.pro h3{font-size:21px;margin:0 6px 0 0}
.pro .city{color:var(--muted);font-size:14px;margin:0 0 8px}
.pro p{color:var(--ink-2);font-size:14.5px;margin:0 0 12px}
.pro .foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pro .foot .readmore{margin-left:auto}
.pro.featured{border-color:#E7C57E;box-shadow:0 0 0 3px #FBF1DC}
.month-nav{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.month-nav h2{font-size:24px;min-width:200px;text-align:center}
.month-nav .icon-btn{width:36px;height:36px}
.day-sep{font-family:var(--font-serif);font-size:16px;color:var(--muted);padding:14px 0 6px;border-bottom:1px solid var(--line);margin-bottom:12px}
.minical{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:12.5px;text-align:center}
.minical .h{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase}
.minical span{padding:6px 0;border-radius:8px}
.minical span.has{background:var(--sage-tint);color:var(--sage-deep);font-weight:600}
.minical span.today{background:var(--coral);color:#fff;font-weight:600}
.cat-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.cat-list a{display:flex;justify-content:space-between;padding:8px 10px;border-radius:8px;font-size:14.5px}
.cat-list a:hover,.cat-list a.active{background:var(--sage-tint);color:var(--sage-deep)}
.cat-list a span{color:var(--muted);font-size:13px}
@media(max-width:900px){
  .hero-a h1{font-size:34px}
  .split{grid-template-columns:1fr}
  .map{position:static;height:320px}
  .pro{grid-template-columns:90px 1fr}.pro .ph{width:90px;height:90px}
  .icon-btn.burger{display:inline-grid}
}

/* ---------- page cartographie ---------- */
.map-page{display:grid;grid-template-columns:420px 1fr;height:calc(100vh - var(--header-h));min-height:640px}
.map-panel{padding:18px 20px;overflow:auto;border-right:1px solid var(--line);background:var(--cream)}
.map-search{display:flex;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:5px}
.map-search input{flex:1;min-width:0;border:0;background:transparent;padding:9px 12px;font-family:inherit;font-size:14px;border-radius:.5rem}
.map-search input + input{flex:0 0 120px;border-left:1px solid var(--line)}
.map-search .btn{padding:9px 16px}
.map-results{display:flex;flex-direction:column;gap:10px}
.map-results .card.horizontal .ph{flex:0 0 96px}
.map-results .card.horizontal .body{padding:12px 14px;gap:3px}
.map-results .card.horizontal h3{font-size:16px}
.map-results .card.horizontal p{font-size:13px}
.map-results .card.sel{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-tint)}
.map.full{position:relative;height:100%;border:0;border-radius:0;top:0}
.map .pin.ev{background:var(--gold)}
.map .cluster{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:var(--sage-deep);color:#fff;font-family:var(--font-serif);display:grid;place-items:center;box-shadow:0 0 0 6px rgba(76,102,68,.25)}
.map .popup{position:absolute;width:300px;background:var(--paper);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:10px;display:grid;grid-template-columns:84px 1fr;gap:12px;z-index:2}
.map .popup::after{content:"";position:absolute;left:50%;bottom:-8px;width:16px;height:16px;background:var(--paper);transform:translateX(-50%) rotate(45deg)}
.map .popup .ph{width:84px;height:84px;border-radius:8px;background-size:cover;background-position:center}
.map .popup b{display:block;font-family:var(--font-serif);font-weight:400;font-size:16px}
.map .popup span{display:block;font-size:12.5px;color:var(--muted)}
.map .popup .readmore{font-size:13px;margin-top:4px}
.map .legend{position:absolute;left:12px;bottom:12px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 14px;display:flex;gap:14px;font-size:12.5px;font-weight:500}
.map .legend .c{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.map .legend .coral{background:var(--coral)}.map .legend .sage{background:var(--sage-deep)}.map .legend .gold{background:var(--gold)}.map .legend .cluster{background:var(--sage-deep);box-shadow:0 0 0 3px rgba(76,102,68,.25)}
.map .attrib{position:absolute;right:8px;bottom:6px;font-size:11px;color:var(--muted);background:rgba(255,255,255,.7);padding:2px 6px;border-radius:4px}
.hero-a .tabs a{display:inline-flex;align-items:center;gap:6px}
@media(max-width:900px){
  .map-page{grid-template-columns:1fr;height:auto}
  .map.full{height:60vh;min-height:360px}
  .map-panel{max-height:none;border-right:0;border-top:1px solid var(--line);order:2}
}
.map-page ~ .prefooter{display:none}
.article-hero .wrap,.recipe-hero .c{z-index:1}
.map-search input:first-of-type{min-width:0}
.map-search input + input{flex:0 0 108px}
@media(max-width:600px){.head-actions{gap:8px}}

/* =====================================================================
   Composants propres a l'application
   ===================================================================== */

/* header : menu deroulant « L'Annuaire » (categories racines = liens SEO) */
nav.pillars{position:relative}
nav.pillars .has-menu{position:relative;display:flex;align-items:center}
nav.pillars .has-menu > .menu-toggle{border:0;background:none;padding:6px 4px;margin-left:-8px;cursor:pointer;color:#3c362e;display:inline-grid;place-items:center;border-radius:999px}
nav.pillars .has-menu > .menu-toggle:hover{background:var(--sage-tint)}
nav.pillars .menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:280px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:10px;z-index:30}
nav.pillars .menu a{display:block;padding:9px 12px;border-radius:8px;font-family:var(--font-sans);font-size:14.5px;font-weight:500}
nav.pillars .menu a span{color:var(--muted);font-size:12.5px;font-weight:400;margin-left:6px}
nav.pillars .menu a.all{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;color:var(--coral);font-weight:600}
nav.pillars .has-menu:hover .menu,nav.pillars .has-menu:focus-within .menu,nav.pillars .has-menu.open .menu{display:block}
.mobile-links{display:none}

/* flashs */
.flashes{max-width:var(--maxw);margin:16px auto 0;padding:0 24px;display:grid;gap:10px}
.flash{padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);font-size:14.5px}
.flash-success{background:var(--sage-tint);border-color:var(--sage-line);color:var(--sage-deep)}
.flash-error,.flash-danger{background:var(--coral-tint);border-color:var(--coral-line);color:var(--coral-dark)}
.flash-warning{background:#FBF1DC;border-color:#F0DDB4;color:#8A6220}

/* contenu HTML legacy (descriptions, articles) */
.prose img{height:auto}
.prose table{width:100%;border-collapse:collapse;font-size:14.5px;margin:0 0 18px}
.prose td,.prose th{border:1px solid var(--line);padding:8px 10px;vertical-align:top}
.prose iframe{max-width:100%}
.prose h1{font-size:28px;margin:30px 0 12px}
.prose p:empty{display:none}

/* carte Leaflet : marqueurs maison (pin corail / sauge) et popups */
.map-leaflet{height:100%;width:100%}
.map.is-live{background:#EDEFE6}
.map .leaflet-container{font-family:var(--font-sans)}
.bbe-pin{width:30px;height:30px;background:var(--sage-deep);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.25);margin:-30px 0 0 -15px}
.bbe-pin.coral{background:var(--coral)}
.bbe-pin.gold{background:var(--gold)}
.leaflet-popup-content-wrapper{border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}
.leaflet-popup-content{margin:12px 14px;font-size:13.5px;line-height:1.45}
.leaflet-popup-content b{font-family:var(--font-serif);font-weight:400;font-size:16px;display:block;margin-bottom:2px}
.leaflet-popup-content .readmore{font-size:13px;margin-top:6px}
.marker-cluster{background:rgba(76,102,68,.25)}
.marker-cluster div{background:var(--sage-deep);color:#fff;font-family:var(--font-serif);font-size:14px}
.map-empty{display:grid;place-items:center;height:100%;color:var(--muted);font-size:14px;text-align:center;padding:20px}

/* liste de categories (annuaire home) */
.cat-root{display:flex;flex-direction:column}
.cat-root .ph{aspect-ratio:16/9}
.cat-root .sub{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.cat-root .sub a{font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--sage-tint);color:var(--sage-deep)}
.cat-root .sub a:hover{background:var(--sage-deep);color:#fff}
.subcats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 20px}
.subcats a{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:8px;background:var(--paper);border:1px solid var(--line);font-size:14.5px}
.subcats a:hover{border-color:var(--sage-deep);color:var(--sage-deep)}
.subcats a span{color:var(--muted);font-size:13px;flex-shrink:0}

/* fiche : logo + galerie */
.listing-head .logo{background-size:contain;background-repeat:no-repeat;background-color:var(--paper)}
.gallery.two{grid-template-columns:1fr 1fr;grid-template-rows:300px}
.gallery.two .g:first-child{grid-row:auto}
.gallery.one{grid-template-columns:1fr;grid-template-rows:340px}
.gallery.one .g:first-child{grid-row:auto}
.gallery .g a{display:block;width:100%;height:100%}
.closed-banner{background:var(--cream-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 18px;font-size:14.5px;margin-top:18px}
.pro .ph.contain{background-size:contain;background-repeat:no-repeat;background-color:var(--paper);border:1px solid var(--line)}
.card .ph.contain{background-size:contain;background-repeat:no-repeat;background-color:var(--paper)}

/* pagination generique */
.pager a.disabled{opacity:.4;pointer-events:none}
.pager .btn{width:auto}

/* =====================================================================
   Theme Bootstrap 5.3 : les tokens V4 injectes dans les variables --bs-*
   ===================================================================== */
:root,[data-bs-theme=light]{
  --bs-body-font-family:var(--font-sans);--bs-body-font-size:15.5px;--bs-body-line-height:1.6;
  --bs-body-color:var(--ink);--bs-body-color-rgb:44,40,34;--bs-body-bg:var(--cream);--bs-body-bg-rgb:250,246,236;
  --bs-heading-color:var(--ink);--bs-secondary-color:var(--muted);--bs-secondary-rgb:137,127,114;--bs-tertiary-color:var(--muted);
  --bs-primary:var(--coral);--bs-primary-rgb:232,96,76;--bs-success:var(--sage-deep);--bs-success-rgb:76,102,68;
  --bs-link-color:var(--coral);--bs-link-color-rgb:232,96,76;--bs-link-hover-color:var(--coral-dark);--bs-link-hover-color-rgb:203,74,57;--bs-link-decoration:none;
  --bs-border-color:var(--line);--bs-border-radius:12px;--bs-border-radius-sm:8px;--bs-border-radius-lg:18px;--bs-border-radius-xl:20px;--bs-border-radius-pill:999px;
  --bs-focus-ring-color:var(--sage-tint);--bs-highlight-bg:#FBF1DC;
  --bs-tertiary-bg:var(--cream-2);--bs-secondary-bg:var(--cream-2);
}
.form-control,.form-select{--bs-border-color:var(--line);padding:12px 16px;border-radius:.5rem;font-size:15px;color:var(--ink);background-color:var(--paper)}
.form-control:focus,.form-select:focus{border-color:var(--sage-deep);box-shadow:0 0 0 3px var(--sage-tint)}
.form-control-lg{padding:14px 18px;font-size:16px}
.form-label{font-weight:600;font-size:14px}
.form-check-input{accent-color:var(--sage-deep);border-color:var(--line)}
.form-check-input:checked{background-color:var(--sage-deep);border-color:var(--sage-deep)}
.form-hint,.form-text{font-size:13px;color:var(--muted)}
.invalid-feedback{color:var(--coral-dark)}
.input-group .form-control{border-radius:.5rem 0 0 .5rem}
.input-group .btn{border-radius:0 .5rem .5rem 0}
.alert{--bs-alert-border-radius:var(--radius-sm)}
.alert-info,.alert-success{--bs-alert-bg:var(--sage-tint);--bs-alert-border-color:var(--sage-line);--bs-alert-color:var(--sage-deep);--bs-alert-link-color:var(--sage-deep)}
.alert-danger,.alert-warning{--bs-alert-bg:var(--coral-tint);--bs-alert-border-color:var(--coral-line);--bs-alert-color:var(--coral-dark);--bs-alert-link-color:var(--coral-dark)}
.alert-secondary{--bs-alert-bg:var(--cream-2);--bs-alert-border-color:var(--line);--bs-alert-color:var(--ink-2)}
.breadcrumb{--bs-breadcrumb-divider:"›";--bs-breadcrumb-font-size:13.5px;--bs-breadcrumb-item-active-color:var(--ink-2);--bs-breadcrumb-divider-color:var(--muted);color:var(--muted);padding:18px 0 0}
.breadcrumb a:hover{color:var(--coral)}
.pagination{--bs-pagination-color:var(--ink-2);--bs-pagination-bg:var(--paper);--bs-pagination-border-color:var(--line);--bs-pagination-hover-color:var(--coral);--bs-pagination-hover-bg:var(--paper);--bs-pagination-active-bg:var(--coral);--bs-pagination-active-border-color:var(--coral);--bs-pagination-focus-box-shadow:0 0 0 3px var(--sage-tint);--bs-pagination-disabled-color:var(--muted);--bs-pagination-disabled-bg:var(--paper)}
.card-body{padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x)}
.card.card-link:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.text-secondary{color:var(--muted)!important}
.display-5,.display-6{font-family:var(--font-serif);font-weight:400;letter-spacing:-.005em}
.display-5{font-size:40px}.display-6{font-size:34px}
.h1,.h2,.h3,.h4,.h5{font-family:var(--font-serif);font-weight:400}
.h2{font-size:30px}.h3{font-size:24px}.h4{font-size:20px}.h5{font-size:17px}
.lead{font-weight:400}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- restes Tabler utilises par les pages annexes ---------- */
.page-header{padding:14px 0 10px}
.page-title{font-family:var(--font-serif);font-weight:400;font-size:34px}
.badge.bg-secondary,.badge.bg-secondary-lt{background:var(--cream-2)!important;color:var(--ink-2);text-transform:none;letter-spacing:0}
.badge.bg-green-lt,.badge.bg-primary-lt,.badge.bg-azure-lt,.badge.bg-orange-lt,.badge.bg-blue-lt{background:var(--sage-tint)!important;color:var(--sage-deep);text-transform:none;letter-spacing:0}
.badge.bg-red{background:var(--coral)!important}
.empty{text-align:center;padding:40px 20px}
.empty-icon{font-size:40px;margin-bottom:12px}
.empty-title{font-family:var(--font-serif);font-size:22px;margin-bottom:8px}
.empty-subtitle{color:var(--muted);margin-bottom:16px}
.honeypot{position:absolute;left:-9999px;visibility:hidden}
.ti{font-size:1em;line-height:1}
.container-tight{max-width:640px}
.card-status-top{position:absolute;top:0;left:0;right:0;height:3px;background:var(--coral)}

/* placeholders visuels (fiches sans logo, produits sans image) */
.ph-initial{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-serif);font-size:42px;color:var(--sage-deep);background:var(--sage-tint)}
.pro .ph{position:relative;overflow:hidden}
.pro .ph .ph-initial{font-size:34px}
.card.prod .ph.contain{background-size:contain;background-color:var(--paper)}
.event .datebox .m{text-transform:uppercase}
.site-main{min-height:50vh}

/* ---------- Bootstrap JS : dropdown des catégories, offcanvas mobile ---------- */
nav.pillars .dropdown-menu{--bs-dropdown-min-width:280px;--bs-dropdown-padding-y:10px;--bs-dropdown-padding-x:10px;--bs-dropdown-border-color:var(--line);--bs-dropdown-border-radius:var(--radius-sm);--bs-dropdown-bg:var(--paper);--bs-dropdown-box-shadow:var(--shadow-lg);--bs-dropdown-link-color:var(--ink);--bs-dropdown-link-hover-color:var(--sage-deep);--bs-dropdown-link-hover-bg:var(--sage-tint);--bs-dropdown-link-active-color:var(--sage-deep);--bs-dropdown-link-active-bg:var(--sage-tint);--bs-dropdown-item-padding-y:9px;--bs-dropdown-item-padding-x:12px;--bs-dropdown-item-border-radius:8px;box-shadow:var(--shadow-lg)}
nav.pillars .dropdown-menu .dropdown-item{font-family:var(--font-sans);font-size:14.5px;font-weight:500;border-radius:8px}
nav.pillars .dropdown-menu .dropdown-item.all{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;color:var(--coral);font-weight:600}
nav.pillars .menu{display:none}
.mobile-nav{--bs-offcanvas-width:320px;--bs-offcanvas-bg:var(--cream);--bs-offcanvas-color:var(--ink);--bs-offcanvas-border-color:var(--line)}
.mobile-nav .offcanvas-header{border-bottom:1px solid var(--line);padding:14px 16px 14px 20px;gap:16px}
.mobile-nav .offcanvas-header .icon-btn{margin-left:auto;flex-shrink:0}
.mobile-nav .brand{font-size:19px;gap:8px;min-width:0}
.mobile-nav .brand .brand-leaf{width:28px;height:28px}
.mobile-nav .brand span{display:inline}
.mobile-nav nav{display:flex;flex-direction:column}
.mnav-main{font-family:var(--font-serif);font-size:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.mnav-main.active{color:var(--coral)}
.mnav-sub{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0 14px;border-bottom:1px solid var(--line)}
.mnav-sub a{font-size:13px;padding:6px 11px;border-radius:999px;background:var(--sage-tint);color:var(--sage-deep);display:inline-flex;align-items:center;gap:4px}
.mnav-actions{display:grid;gap:10px;margin-top:20px}
.mnav-actions .btn{justify-content:center}

/* ---------- carrousels mobiles en scroll-snap (aucune bibliothèque) ---------- */
@media(max-width:600px){
  .grid.scroll-x{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 -24px;padding:4px 24px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .grid.scroll-x::-webkit-scrollbar{display:none}
  .grid.scroll-x > *{flex:0 0 78%;scroll-snap-align:start}
  .grid.scroll-x > .card.wide{flex-basis:88%}
}

/* accueil : couverture typographique des livres sans visuel, logos partenaires */
.book .cover{display:grid;place-items:center;text-align:center;padding:6px;font-family:var(--font-serif);font-size:10px;line-height:1.2;color:#fff;background:linear-gradient(160deg,#7d6a62,#4e3d37)}
.book .cover-img{width:64px;height:auto;max-height:96px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
.book .cover span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.partner img{max-height:48px;width:auto;object-fit:contain}
.page-home .stat .n{font-variant-numeric:tabular-nums}
.map .map-enlarge{position:absolute;left:12px;bottom:12px;z-index:500}
.hero-a .searchbar.multi{max-width:860px}
.hero-a .crumbs a:hover{color:var(--coral)}
.map-mini.is-live{height:220px}
.listing-head .kicker .pill{font-weight:500}
.listing-head .kicker a.pill:hover{background:var(--sage-deep);color:#fff}
.gallery .g{position:relative}
.product-gallery .main{display:block;background-size:cover;background-position:center;position:relative}
.product-gallery .main.contain{background-size:contain;background-repeat:no-repeat}
.product-gallery .main .visually-hidden-img{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.product-gallery .thumbs div{background-size:contain;background-repeat:no-repeat;background-color:var(--paper);border:2px solid var(--line)}
.product-gallery .thumbs div.active{border-color:var(--coral)}
.buy-box .row{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.buy-box .row > *{width:auto;padding:0;margin:0;flex:1 1 auto}
.seller .lg.ph-initial{position:static;width:52px;height:52px;border-radius:12px;font-size:22px}
html{scroll-behavior:auto}
.infolist div > span{display:block}
.infolist b + span{margin-top:2px}

/* images des cartes : <img loading="lazy"> (perf, alt) plutôt que background-image */
.card .ph img,.pro .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.card .ph.contain img,.pro .ph.contain img{object-fit:contain;padding:6px}
.pro .ph{position:relative}
.card .ph.contain:not(:has(img)),.card .ph:not(.contain):not(:has(img)){background-color:var(--sage-tint)}
.card .ph:not(.contain):not(:has(img)){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 24 24' fill='none' stroke='%237C9A72' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21c.5 -4.5 2.5 -8 7 -10M9 18c6.218 0 10.5 -3.288 11 -12v-2h-4.014c-9 0 -11.986 4 -12 9c0 1 0 3 2 5h3z'/%3E%3C/svg%3E");background-size:56px;background-position:center;background-repeat:no-repeat}
.card.prod .ph:not(:has(img))::after{content:"";position:absolute;inset:0;background:var(--cream-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23C9BFA8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 8h.01M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3zM3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3'/%3E%3C/svg%3E") center/48px no-repeat}
.map-results .card.horizontal .ph{position:relative}
@media(max-width:600px){
  /* Le nom reste lisible : le bouton de compte passe dans le menu (offcanvas). */
  header.site .brand{font-size:19px;gap:8px}
  header.site .brand .brand-leaf{width:30px;height:30px}
  header.site .head-actions > .btn{display:none}
  .listing-head{display:flex;flex-direction:column-reverse}
  .listing-head .logo{width:84px;height:84px;border-radius:16px;margin-bottom:12px}
}

/* pages annexes (formulaires, offres, pages info) : contenu centré, marges */
.page-narrow{padding:8px 24px 56px}
.page-narrow .page-header{padding:14px 0 18px}
.page-narrow .page-title{max-width:22ch}
.page-narrow .card{overflow:visible}
.page-narrow .card:hover{transform:none;box-shadow:none}
.page-narrow article.content > .prose,.page-narrow article.content > figure{max-width:820px}
.page-narrow .prose{max-width:none}
.subcats.geo{grid-template-columns:repeat(4,1fr);gap:6px 14px}
.subcats.geo a{padding:7px 10px;font-size:14px}
.subcats a.active{background:var(--sage-deep);color:#fff;border-color:var(--sage-deep)}
.subcats a.active span{color:#fff}
@media(max-width:900px){.subcats,.subcats.geo{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.subcats,.subcats.geo{grid-template-columns:1fr}}

/* en-tête entièrement collant : la barre utilitaire (offres, inscription, compte) reste visible */
.site-top{position:sticky;top:0;z-index:1030}
.site-top header.site{position:static}
:root{--header-h:114px;--top-h:calc(var(--header-h) + 38px)}
@media(max-width:900px){:root{--header-h:76px;--top-h:var(--header-h)}}

/* fiche succincte : les encarts latéraux passent en grille pleine largeur */
.layout.compact{grid-template-columns:1fr;padding-top:24px}
.layout.compact .aside{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.layout.compact .aside .thin-note{grid-column:1/-1}
.layout.compact .aside .box{margin:0;height:100%}
.layout.compact .aside .map-mini.is-live{height:100%;min-height:240px}
.layout.compact .aside .share{align-self:center}
.layout.compact .aside .report{grid-column:1/-1;text-align:left;margin:0}
@media(max-width:900px){.layout.compact .aside{grid-template-columns:1fr}}
.layout.compact .aside{grid-template-columns:1fr 1fr}
.layout.compact .aside .share{grid-column:1/-1;align-self:auto}

/* boutons et champs : angles à .5rem (pastilles, filtres et badges restent ronds) */
.btn,.icon-btn,.form-control,.form-select,.searchbar input,.searchcard input,.nl-form input,.inline-nl input,.map-search,.toggle,.pager a{border-radius:.5rem}
.btn-lg{--bs-btn-border-radius:.5rem}.btn-sm{--bs-btn-border-radius:.5rem}
.nl-form .btn,.inline-nl .btn,.panel .btn{border-radius:.5rem}
.inline-nl form{flex-wrap:wrap}
.inline-nl input{min-width:200px}
.inline-nl .btn{white-space:nowrap}

/* offres : Essentiel en sauge, Privilège en or (comme le label), Découverte inchangée */
.offer-card{border-width:1px}
.offer-card .card-status-top{display:none}
.offer-card.offer-essentiel{border:2px solid var(--sage-deep)}
.offer-card.offer-essentiel .offer-price{color:var(--sage-deep)!important}
.offer-card.offer-essentiel .btn-primary{--bs-btn-bg:var(--sage-deep);--bs-btn-border-color:var(--sage-deep);--bs-btn-hover-bg:#3E5537;--bs-btn-hover-border-color:#3E5537;--bs-btn-active-bg:#3E5537;--bs-btn-active-border-color:#3E5537}
.offer-card.offer-privilege{border:2px solid #E0BC72;background:linear-gradient(180deg,#FFFBF2,#fff 40%)}
.offer-card.offer-privilege .offer-price{color:#8A6220!important}
.offer-card.offer-privilege .btn-primary{--bs-btn-color:#4a3510;--bs-btn-bg:linear-gradient(120deg,#F5E2B8,#E7C57E);--bs-btn-border-color:#E0BC72;--bs-btn-hover-color:#4a3510;--bs-btn-hover-bg:linear-gradient(120deg,#F1D9A6,#DDB86C);--bs-btn-hover-border-color:#D9B266;--bs-btn-active-color:#4a3510;--bs-btn-active-bg:#DDB86C;--bs-btn-active-border-color:#D9B266}
.offer-card.offer-privilege .btn-primary{background-image:var(--bs-btn-bg)}
.offer-card.offer-privilege .btn-primary:hover{background-image:var(--bs-btn-hover-bg)}
.offer-card .offer-tag{position:absolute;top:14px;right:14px}

/* fiches : label de formule sur les photos des cartes, comme sur la fiche */
.ph > .offer-badge{position:absolute;top:14px;left:14px;z-index:1}
.ph > .pill.essentiel{position:absolute;top:14px;left:14px;z-index:1;background:var(--sage-deep);color:#fff}
.pill.essentiel{background:var(--sage-deep);color:#fff}

/* partenaires : logos */
.partner{filter:none;opacity:1}
.partner img{max-height:44px;max-width:80%;object-fit:contain}
.meta .offer-badge{font-size:10.5px;padding:4px 9px}
.meta .pill.essentiel{font-size:11px;padding:3px 9px}
.partners{display:flex;flex-wrap:wrap;justify-content:center}
.partners .partner{flex:1 1 140px;max-width:180px}

/* clusters et marqueurs : couleurs des formules (or Privilège, sauge Essentiel, neutre Découverte, corail mise en avant) */
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:rgba(124,154,114,.28)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background-color:var(--sage-deep);color:#fff;font-family:var(--font-serif);font-size:13px}
.marker-cluster-medium{background-color:rgba(124,154,114,.34)}
.marker-cluster-large{background-color:rgba(76,102,68,.4)}
.bbe-pin{background:#8C8371}
.bbe-pin.essentiel{background:var(--sage-deep)}
.bbe-pin.privilege{background:#D6A24E}
.bbe-pin.coral{background:var(--coral)}
.map .legend .privilege{background:#D6A24E}.map .legend .essentiel{background:var(--sage-deep)}.map .legend .decouverte{background:#8C8371}.map .legend .coral{background:var(--coral)}
/* recherche : bouton d'effacement dans la barre */
.searchbar .clear{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;padding:0 6px}
.searchbar .clear:hover{color:var(--coral)}
/* les feuilles MarkerCluster sont injectées après site.css : on gagne en spécificité */
.leaflet-container .marker-cluster-small,.leaflet-container .marker-cluster-medium,.leaflet-container .marker-cluster-large{background-color:rgba(124,154,114,.3)}
.leaflet-container .marker-cluster-small div,.leaflet-container .marker-cluster-medium div,.leaflet-container .marker-cluster-large div{background-color:var(--sage-deep);color:#fff;font-family:var(--font-serif);font-size:13px}
.leaflet-container .marker-cluster-large{background-color:rgba(76,102,68,.42)}
.leaflet-container .marker-cluster-large div{background-color:#3E5537}
.map .legend{z-index:1001}

nav.pillars .dropdown-menu{--bs-dropdown-spacer:0;margin:0}
nav.pillars .menu-toggle:focus:not(:focus-visible){outline:none}
/* pont invisible entre le bouton et le menu : le pointeur qui traverse l'écart reste « dans » le menu */
nav.pillars .dropdown-menu{overflow:visible}
nav.pillars .dropdown-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}

/* ===== Page catégorie (colonne de gauche) et sélecteur provisoire des accueils ===== */
.proto-switch{position:fixed;left:14px;bottom:14px;z-index:1040;display:flex;align-items:center;gap:2px;background:rgba(44,40,34,.92);color:#fff;border-radius:999px;padding:6px 8px 6px 14px;font-size:12.5px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.proto-switch span{opacity:.7;margin-right:6px}
.proto-switch a{color:#fff;padding:6px 10px;border-radius:999px;white-space:nowrap}
.proto-switch a:hover{background:rgba(255,255,255,.14)}
.proto-switch a.active{background:var(--coral)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:.5rem;background:var(--paper);padding:3px;gap:2px}
.seg button{border:0;background:transparent;padding:7px 14px;border-radius:6px;font:inherit;font-size:14px;font-weight:500;color:var(--ink-2);display:inline-flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap}
.seg button:hover{background:var(--cream-2)}
.seg button.active{background:var(--sage-deep);color:#fff}
.seg.full{display:flex;width:100%}.seg.full button{flex:1;justify-content:center;padding:8px 6px}
.results-bar .sort .seg{margin-left:6px}
.view-panel{display:none}.view-panel.is-on{display:block}
.map-tall .map{position:relative;top:auto;height:560px}
.ccp{padding-bottom:40px}
.ccp h1{font-size:40px;margin:8px 0 12px}.ccp h1 .muted{font-size:.62em}
.ccp .editorial{max-width:none;font-size:15.5px;color:var(--ink-2);margin:0 0 22px;line-height:1.55}
.ccp-layout{display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:start}
.ccp-side{position:sticky;top:calc(var(--top-h) + 16px);display:flex;flex-direction:column;gap:22px;max-height:calc(100vh - var(--top-h) - 32px);overflow:auto;padding-right:6px;scrollbar-width:thin}
.side-block h4{font-size:15px;margin:0 0 10px;font-family:var(--font-sans);font-weight:600}
.side-block select{width:100%;border:1px solid var(--sage);border-radius:.5rem;padding:9px 12px;color:var(--sage-deep);font:inherit;font-size:14px;font-weight:600;background:var(--paper)}
.side-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.side-links a{display:flex;justify-content:space-between;gap:8px;padding:7px 0;font-size:14px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.side-links li:last-child a{border-bottom:0}
.side-links a:hover,.side-links a.active{color:var(--sage-deep)}
.side-links a span{color:var(--muted);font-size:12.5px}
.side-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2);padding:4px 0;margin:0}
.side-check input{accent-color:var(--sage-deep);width:16px;height:16px}
.side-block details summary{cursor:pointer;list-style:none}.side-block details summary h4{display:inline}.side-block details summary::after{content:"▾";float:right;color:var(--muted)}
.ccp-main .searchbar{max-width:none}
.ccp-main .chips{margin:12px 0 2px}
.ccp-head{margin:0 0 22px}
.h1-place{display:block;font-size:.55em;color:var(--ink-2);margin-top:6px}.ccp-head h1{margin:6px 0 6px}.ccp-head .editorial{margin:0}
.ccp .pager{padding:34px 0 10px}
.fab-wrap{position:sticky;bottom:22px;display:flex;justify-content:center;pointer-events:none;z-index:5;padding:6px 0}
.fab-wrap .fab-map{pointer-events:auto}
.near-block{background:var(--sage-tint);border-radius:12px;padding:14px}
.near-block h4{display:flex;align-items:center;gap:6px;color:var(--sage-deep)}
.near-form{display:flex;flex-direction:column;gap:8px}
.near-form input[name=ou],.near-form select{width:100%;border:1px solid var(--line);border-radius:.5rem;padding:9px 12px;font:inherit;font-size:14px;background:var(--paper);color:var(--ink);font-weight:400}
.near-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.near-geoloc{border:0;background:none;padding:2px 0;color:var(--sage-deep);font:inherit;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-align:left}
.near-geoloc:hover{color:var(--coral)}.near-geoloc:disabled{opacity:.6;cursor:wait}
.near-msg{margin:0;color:var(--coral-dark)}
.pro .city .dist{color:var(--sage-deep);font-weight:600}
.ccp .map-tall .map{height:440px;margin-bottom:18px}
.bbe-origin{width:18px;height:18px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 0 0 6px rgba(232,96,76,.25),0 2px 6px rgba(0,0,0,.3)}
.side-check{text-decoration:none}
.side-check i{width:16px;height:16px;border:1.5px solid var(--sage);border-radius:50%;flex-shrink:0;display:inline-grid;place-items:center;background:var(--paper)}
.side-check.box i{border-radius:4px}
.side-check.on i::after{content:"";width:8px;height:8px;border-radius:inherit;background:var(--sage-deep)}
.side-check.on{color:var(--sage-deep);font-weight:600}
.side-check:hover{color:var(--sage-deep)}
.active-filters{margin-left:auto}.active-filters .chip{padding:6px 12px;font-size:13px}
.fab-map{z-index:1030;background:var(--sage-deep);color:#fff;border:0;border-radius:999px;padding:12px 24px;font:inherit;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(0,0,0,.22);cursor:pointer}
.fab-map:hover{background:var(--coral)}
@media(max-width:900px){
  /* mobile : « Autour de chez moi » avant la liste, le reste de la colonne après */
  .ccp-layout{grid-template-columns:1fr;gap:20px}.ccp-side{display:contents}.ccp-side .side-block{order:2}.ccp-side .near-block{order:-1}
  .ccp h1{font-size:30px}
  .proto-switch{left:8px;right:8px;bottom:8px;flex-wrap:wrap;border-radius:14px;justify-content:center}
}
@media(max-width:600px){.results-bar .sort{width:100%}}

/* ===== Accueils : barre Quoi / Où, carte à bulles, bloc des univers (propositions) ===== */
.dir-hero{background:linear-gradient(180deg,var(--cream),var(--cream-2));border-bottom:1px solid var(--line)}
.dir-hero .wrap{padding:34px 24px 26px}
.dir-hero h1{font-size:38px;margin:0 0 8px;max-width:26ch}
.dir-hero .lead{margin:0 0 20px;font-size:16.5px}
.find-bar .fields{display:flex;align-items:stretch;gap:0;background:var(--paper);border:1px solid var(--line);border-radius:.75rem;padding:6px;box-shadow:var(--shadow-card)}
.find-bar .f{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:6px 16px;margin:0;border-right:1px solid var(--line);min-width:0}
.find-bar .f span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-deep)}
.find-bar .f input,.find-bar .f select{border:0;background:transparent;padding:2px 0;font:inherit;font-size:15px;color:var(--ink);width:100%;outline:0;min-width:0}
.find-bar .f.what{flex:1.3}.find-bar .f.where{flex:1.2}.find-bar .f.radius{flex:0 0 96px}.find-bar .f.cat{flex:0 0 170px}
.find-bar .f:focus-within{background:var(--sage-tint);border-radius:.5rem}
.find-bar .fields .btn{margin-left:6px;padding:0 24px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.find-bar .under{display:flex;align-items:center;gap:14px;margin-top:10px;min-height:22px}
.find-bar.light .near-geoloc{color:#fff}
.find-bar.light .near-geoloc:hover{color:#FFD9D1}
.find-bar.light .near-msg{color:#FFD9D1}
/* carte à bulles */
.region-map{position:relative;top:auto;height:520px}
.region-map.tall{height:600px}.region-map.band{height:460px}
.bbe-bubble{display:grid;place-items:center;border-radius:50%;background:rgba(76,102,68,.92);color:#fff;font-weight:700;font-size:13px;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .15s,background .15s;cursor:pointer;line-height:1;text-align:center}
.bbe-bubble:hover{background:var(--coral);transform:scale(1.08)}
.h-side{font-size:22px;margin:0 0 14px}
.region-pills-title{margin-top:26px}
.region-pills{display:flex;flex-wrap:wrap;gap:8px}
.region-pills a{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13.5px;color:var(--ink-2)}
.region-pills a span{color:var(--muted);font-size:12px}
.region-pills a:hover{border-color:var(--sage-deep);color:var(--sage-deep)}
.map-first{display:grid;grid-template-columns:1.45fr 1fr;gap:28px;align-items:start}
.region-split{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start}
.subcats.geo.two{grid-template-columns:repeat(2,1fr)}
/* univers : commun */
.uni-count{color:var(--muted);font-size:13px;font-weight:400;font-family:var(--font-sans)}
.uni-subs{list-style:none;margin:0;padding:0}
.uni-subs a{display:flex;justify-content:space-between;gap:10px;padding:7px 0;font-size:14.5px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.uni-subs a:hover{color:var(--sage-deep)}
.uni-subs a span{color:var(--muted);font-size:12.5px;flex-shrink:0}
/* univers : accordéon (à côté de la carte) */
.uni-accordion{display:flex;flex-direction:column;gap:8px}
.uni-accordion details{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.uni-accordion summary{display:flex;align-items:center;gap:12px;padding:8px 14px 8px 8px;cursor:pointer;list-style:none}
.uni-accordion summary::-webkit-details-marker{display:none}
.uni-accordion summary img{width:44px;height:44px;border-radius:9px;object-fit:cover;flex-shrink:0}
.uni-accordion summary .n{font-family:var(--font-serif);font-size:18px;flex:1}
.uni-accordion summary::after{content:"+";color:var(--muted);font-size:20px;width:18px;text-align:center}
.uni-accordion details[open] summary::after{content:"–"}
.uni-accordion details[open] summary{border-bottom:1px solid var(--line)}
.uni-accordion .uni-subs{padding:4px 16px 8px}
.uni-accordion .uni-subs li:last-child a{border-bottom:0}
.uni-accordion .uni-subs a.all{color:var(--coral);font-weight:600;justify-content:flex-start}
/* univers : onglets */
.uni-tablist{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:18px}
.uni-tablist button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid var(--line);border-radius:14px;background:var(--paper);font:inherit;cursor:pointer;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.uni-tablist button img{width:56px;height:56px;border-radius:50%;object-fit:cover}
.uni-tablist button .n{font-family:var(--font-serif);font-size:16px;text-align:center;line-height:1.15}
.uni-tablist button:hover{border-color:var(--sage)}
.uni-tablist button.active{border-color:var(--sage-deep);box-shadow:0 0 0 3px var(--sage-tint)}
.uni-panel{display:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px}
.uni-panel.is-on{display:block}
.uni-panel-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.uni-panel-head h3{font-size:26px;margin:0}.uni-panel-head p{flex:1;min-width:240px;margin:0;font-size:14px;color:var(--ink-2)}
.uni-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px 28px;align-items:start}
.uni-group{min-width:0}
.uni-group h4{font-family:var(--font-sans);font-size:15px;font-weight:700;margin:0 0 6px;display:flex;justify-content:space-between;gap:8px;color:var(--sage-deep)}
.uni-group h4 span{font-weight:400;color:var(--muted);font-size:12.5px}
.uni-group ul{list-style:none;margin:0;padding:0}
.uni-group li a{display:block;padding:3px 0;font-size:13.5px;color:var(--ink-2)}
.uni-group a:hover{color:var(--coral)}
.home-hero.compact{min-height:0}.home-hero.compact .c{padding:44px 0 36px;max-width:1000px;width:100%}
.home-hero.compact h1{font-size:44px;max-width:22ch;margin-bottom:22px}
/* page carte : formulaire de proximité en ligne */
.near-form.inline{flex-direction:row;flex-wrap:wrap;align-items:center;margin-top:10px}
.near-form.inline input[name=ou]{flex:1 1 180px;width:auto}.near-form.inline select{width:auto;flex:0 0 86px}
.near-form.inline .near-msg{flex:1 1 100%}
.map-results .dist{color:var(--sage-deep)}
@media(max-width:900px){
  .find-bar .fields{flex-wrap:wrap}.find-bar .f{flex:1 1 100% !important;border-right:0;border-bottom:1px solid var(--line);padding:9px 12px}
  .find-bar .f.radius,.find-bar .f.cat{flex:1 1 40% !important}
  .find-bar .fields .btn{flex:1 1 100%;justify-content:center;margin:6px 0 0;padding:13px}
  .dir-hero h1{font-size:30px}
  .map-first,.region-split{grid-template-columns:1fr}
  .region-map,.region-map.tall,.region-map.band{height:380px}
  .uni-tablist{grid-template-columns:repeat(3,1fr)}
  .home-hero.compact h1{font-size:32px}
}
@media(max-width:600px){.uni-tablist button img{width:40px;height:40px}.uni-tablist button .n{font-size:13.5px}}

/* ===== Contact et plan du site ===== */
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-page h1{font-size:38px;margin:10px 0 8px}
.contact-form{margin-top:18px;display:flex;flex-direction:column;gap:14px}
.contact-form .form-label{font-weight:600;font-size:14px}
.plain-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.plain-links a{color:var(--sage-deep);font-weight:500}
.sitemap-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px 36px;align-items:start}
.sitemap-cols h2{font-size:21px;margin:0 0 10px}
.sitemap-cols ul{list-style:none;margin:0 0 6px;padding:0}
.sitemap-cols li a{display:block;padding:3px 0;font-size:14.5px;color:var(--ink-2)}
.sitemap-cols li a:hover{color:var(--coral)}
.sitemap-cols ul ul{padding-left:14px;border-left:1px solid var(--line);margin:2px 0 8px}
.sitemap-cols ul ul a{font-size:13.5px}

/* ===== FAQ : deux cartes, questions en accordéons ===== */
.faq-hero .wrap{padding-bottom:28px}
.faq-intro{max-width:62ch}.faq-intro p{margin:0}
.faq-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.faq-jump .chip{display:inline-flex;align-items:center;gap:7px}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;padding:34px 0 10px}
.faq-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;scroll-margin-top:calc(var(--top-h) + 16px)}
.faq-card > header{display:flex;align-items:center;gap:14px;padding:20px 22px;background:var(--sage-tint);border-bottom:1px solid var(--line)}
.faq-card.faq-pros > header{background:var(--coral-tint)}
.faq-card > header h2{font-size:22px;margin:0}
.faq-card > header p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.faq-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--paper);color:var(--sage-deep);flex-shrink:0}
.faq-card.faq-pros .faq-icon{color:var(--coral-dark)}
.faq-section-intro{padding:14px 22px 0;color:var(--ink-2);font-size:14.5px}
.faq-list{padding:6px 10px}
.faq-item{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--top-h) + 16px)}
.faq-item:last-child{border-bottom:0}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 12px;cursor:pointer;list-style:none;font-family:var(--font-serif);font-size:17px;line-height:1.3;color:var(--ink);border-radius:10px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{background:var(--cream)}
.faq-item summary:focus-visible{outline:2px solid var(--sage-deep);outline-offset:2px}
.faq-item summary i{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);flex-shrink:0;position:relative;transition:transform .2s,background .2s}
.faq-item summary i::before,.faq-item summary i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;background:var(--sage-deep);transform:translate(-50%,-50%);border-radius:2px}
.faq-item summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}
.faq-item[open] summary i{background:var(--sage-deep);border-color:var(--sage-deep)}
.faq-item[open] summary i::before,.faq-item[open] summary i::after{background:#fff}
.faq-item[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq-card.faq-pros .faq-item[open] summary i{background:var(--coral);border-color:var(--coral)}
.faq-answer{padding:0 12px 16px;color:var(--ink-2);font-size:15px;line-height:1.6}
.faq-answer p{margin:0 0 10px}.faq-answer ul{margin:0 0 10px;padding-left:20px}.faq-answer li{margin-bottom:6px}
.faq-answer a{color:var(--coral-dark);text-decoration:underline;text-underline-offset:2px}
.faq-card > footer{display:flex;flex-wrap:wrap;gap:10px;padding:16px 22px 20px;border-top:1px solid var(--line)}
.faq-more{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:26px 0 56px;padding:26px 30px;border-radius:var(--radius);background:var(--sage-deep);color:#fff}
.faq-more h2{color:#fff;font-size:24px;margin:0 0 4px}.faq-more p{margin:0;color:#DDE6D6}
@media(max-width:900px){.faq-grid{grid-template-columns:1fr;gap:18px;padding-top:22px}.faq-item summary{font-size:16px}}
@media(prefers-reduced-motion:reduce){.faq-item summary i,.faq-item summary i::after{transition:none}}

/* ===== Newsletter : panneau sobre du pied de page et page d'inscription ===== */
.panel.nl-panel{background:var(--paper)}
.panel.nl-panel .nl-form{grid-template-columns:1fr auto}
.panel.nl-panel .nl-form input{border:1px solid var(--line);background:var(--cream)}
.panel.nl-panel .nl-form .btn{grid-column:auto;background:var(--sage-deep);color:#fff;border-color:var(--sage-deep)}
.inline-nl{background:var(--sage-tint);color:var(--ink);border:1px solid var(--line)}
.inline-nl h3{color:var(--ink)}
.inline-nl input{border:1px solid var(--line)}
.inline-nl .btn{background:var(--sage-deep);color:#fff;border-color:var(--sage-deep)}
.nl-page h1{font-size:36px;margin:8px 0 10px}
.nl-page-form{margin-top:22px;display:flex;flex-direction:column;gap:10px;max-width:560px}
.nl-page-form label{font-weight:600;font-size:14px}
.nl-page-form .row-inline{display:flex;gap:10px;flex-wrap:wrap}
.nl-page-form input[type=email]{flex:1 1 240px;border:1px solid var(--line);border-radius:.5rem;padding:13px 16px;font:inherit;background:var(--paper)}
.nl-list li{display:flex;gap:8px;align-items:center;color:var(--ink-2);font-size:14.5px}
@media(max-width:600px){.panel.nl-panel .nl-form{grid-template-columns:1fr}}
.page-newsletter .prefooter .nl-panel{display:none}
.page-newsletter .prefooter .wrap{grid-template-columns:1fr}
