/* Le Marché des Seniors — feuille de style (refonte 2026)
   Sommaire : 1. Polices  2. Jetons  3. Base  4. Utilitaires  5. Boutons  6. Barre d'outils & en-tête
   7. Menu mobile  8. Accueil  9. Cartes  10. Rubriques  11. Guides  12. Prose & composants
   13. Pages  14. Pied de page  15. Animations  16. Contraste élevé  17. Impression
   18. Briques pratiques (bons plans, services, agenda, entraide, outils, lettre, recherche)  19. Contraste élevé et impression des briques */

/* 1. Polices (SIL OFL 1.1, voir /assets/fonts/OFL-*.txt) */
@font-face{font-family:"Bricolage Grotesque";src:url(/assets/fonts/bricolage-grotesque-latin-wght.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-next-latin-wght.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-next-latin-wght-italic.woff2) format("woff2");font-weight:200 800;font-style:italic;font-display:swap}

/* 2. Jetons */
:root{
  --bg:#FFFDF8; --surface:#FFFFFF; --sand:#FBF4E9; --sand-2:#F4E9D8;
  --ink:#1E1A2E; --ink-2:#3B3650; --line:#EDE4D5; --line-2:#DCD0BD;
  --brand:#2B3BD6; --brand-hover:#1F2CA8; --brand-soft:#E8EBFF; --on-brand:#FFFFFF;
  --coral:#FF7A59; --coral-deep:#E2522F; --sun:#FFD84D;
  --focus:#1E1A2E; --focus-halo:#FFFFFF;
  --font-head:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"Atkinson Hyperlegible Next",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --step--1:clamp(1.0625rem,1.03rem + .15vw,1.125rem);
  --step-0:clamp(1.1875rem,1.14rem + .25vw,1.3125rem);
  --step-1:clamp(1.3125rem,1.22rem + .45vw,1.5625rem);
  --step-2:clamp(1.5625rem,1.38rem + .9vw,2.125rem);
  --step-3:clamp(1.875rem,1.5rem + 1.9vw,3rem);
  --step-4:clamp(2.25rem,1.6rem + 3.2vw,4.25rem);
  --step-5:clamp(2.5rem,1.55rem + 4.6vw,5.375rem);
  --sp-1:.5rem; --sp-2:.75rem; --sp-3:1rem; --sp-4:1.5rem; --sp-5:2rem; --sp-6:3rem; --sp-7:4.5rem; --sp-8:6rem;
  --section:clamp(3.5rem,2.5rem + 4vw,6.5rem);
  --gutter:clamp(1.125rem,.6rem + 2.4vw,2.5rem);
  --r-s:.875rem; --r-m:1.25rem; --r-l:1.75rem; --r-xl:2rem; --r-pill:999px;
  --sh-1:0 1px 2px rgba(30,26,46,.05),0 6px 18px -6px rgba(30,26,46,.10);
  --sh-2:0 2px 6px rgba(30,26,46,.06),0 22px 44px -16px rgba(30,26,46,.24);
  --sh-btn:0 1px 0 rgba(255,255,255,.25) inset,0 8px 18px -8px rgba(43,59,214,.65);
  --ease:cubic-bezier(.2,.7,.2,1);
  --measure:65ch;
  --rub:#F6EBDD; --rub-soft:#FBF5EC; --rub-2:#EBD9C2; --rub-deep:#8A4B1E;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-rub=logement]{--rub:#FFD9C7;--rub-soft:#FFF0E8;--rub-2:#FFB59A;--rub-deep:#C2410C}
[data-rub=argent]{--rub:#CDE6FF;--rub-soft:#EBF5FF;--rub-2:#9FD0FF;--rub-deep:#1D5FAF}
[data-rub=sante]{--rub:#C6F0DC;--rub-soft:#E7F8EF;--rub-2:#8FE3BA;--rub-deep:#157347}
[data-rub=loisirs]{--rub:#FFE58A;--rub-soft:#FFF6CC;--rub-2:#FFD84D;--rub-deep:#8A5A00}
[data-rub=numerique]{--rub:#DCD3FF;--rub-soft:#F0ECFF;--rub-2:#B9A8FF;--rub-deep:#5B3FC4}
[data-rub=neutre]{--rub:#F6EBDD;--rub-soft:#FBF5EC;--rub-2:#EBD9C2;--rub-deep:#8A4B1E}
[data-rub=bonsplans]{--rub:#FFD6E2;--rub-soft:#FFEFF4;--rub-2:#FFA9C0;--rub-deep:#A61E51}
[data-rub=services]{--rub:#C4EEF0;--rub-soft:#E6F8F9;--rub-2:#8EDDE2;--rub-deep:#0B5F66}
[data-rub=agenda]{--rub:#E2F2B8;--rub-soft:#F3FADF;--rub-2:#C8E67A;--rub-deep:#45600A}
[data-rub=entraide]{--rub:#F6D9F2;--rub-soft:#FCEFFA;--rub-2:#E9B3E3;--rub-deep:#862A7E}
[data-rub=outils]{--rub:#D9E3FF;--rub-soft:#EEF3FF;--rub-2:#AFC6FF;--rub-deep:#2B3BD6}
html[data-size="1"]{font-size:112.5%}
html[data-size="2"]{font-size:125%}

/* 3. Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1.5rem}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;overflow-wrap:break-word}
img,svg{max-width:100%}
h1,h2,h3,h4{overflow-wrap:break-word;font-family:var(--font-head);font-weight:800;line-height:1.08;letter-spacing:-.025em;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:var(--step-4)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1);letter-spacing:-.015em;line-height:1.2}
p{margin:0 0 1em}
a{color:var(--brand);text-decoration-thickness:2px;text-underline-offset:.2em}
a:hover{color:var(--brand-hover);text-decoration-thickness:3px}
strong{font-weight:700}
ul,ol{padding-left:1.25em}
.ic{width:1.25em;height:1.25em;flex:none;vertical-align:-.22em}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 3px var(--focus-halo)}
main:focus{outline:none}
::selection{background:#FFD84D;color:#1E1A2E}
.sprite{position:absolute}

/* 4. Utilitaires */
.hero-grid,.feature,.banner-card,.ghead-card,.glayout,.hub-top,.phead-404,.ftr-grid{grid-template-columns:minmax(0,1fr)}
.tile,.gcard,.faq-item summary>*{min-width:0}
.wrap{width:100%;max-width:81rem;margin-inline:auto;padding-inline:var(--gutter)}
.narrow{max-width:52rem;margin-inline:auto}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-10rem;z-index:100;background:var(--ink);color:#fff;padding:1rem 1.5rem;border-radius:var(--r-pill);font-weight:700;text-decoration:none}
.skip:focus{top:1rem;color:#fff}
.grain{position:relative;isolation:isolate}
.grain::after{content:"";position:absolute;inset:0;border-radius:inherit;background-image:var(--grain);opacity:.10;mix-blend-mode:multiply;pointer-events:none;z-index:-1}
.kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:var(--step--1);font-weight:700;letter-spacing:.02em;color:var(--ink-2);margin:0 0 .75rem}
.kicker .ic{color:var(--rub-deep)}
.chip{display:inline-flex;align-items:center;gap:.5rem;min-height:2.5rem;padding:.3rem 1rem .3rem .75rem;border-radius:var(--r-pill);background:rgba(255,255,255,.75);color:var(--ink);font-size:var(--step--1);font-weight:700;text-decoration:none;margin:0 0 1.25rem;box-shadow:0 0 0 1px rgba(30,26,46,.06)}
.chip .ic{color:var(--rub-deep)}
a.chip:hover{background:#fff;color:var(--ink);text-decoration:underline}
.section{padding-block:var(--section) 0}
.section-head{margin-bottom:var(--sp-5);max-width:48rem}
.section-head h2{margin:0}

/* 5. Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.5rem;padding:.75rem 1.75rem;border-radius:var(--r-pill);border:2px solid var(--brand);background:var(--brand);color:var(--on-brand);font:700 var(--step-0)/1.2 var(--font-body);text-decoration:none;cursor:pointer;box-shadow:var(--sh-btn);transition:transform .2s var(--ease),background-color .2s,box-shadow .2s}
.btn:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--on-brand);transform:translateY(-2px);text-decoration:none}
.btn:active{transform:translateY(0)}
.btn .ic{transition:transform .2s var(--ease)}
.btn:hover .ic[aria-hidden]:last-child{transform:translateX(3px)}
.btn--ghost{background:var(--surface);color:var(--ink);border-color:var(--line-2);box-shadow:var(--sh-1)}
.btn--ghost:hover{background:var(--surface);color:var(--ink);border-color:var(--ink)}
.btn--sm{min-height:3rem;padding:.5rem 1.25rem;font-size:var(--step--1)}

/* 6. Barre d'outils & en-tête */
.toolbar{background:var(--ink);color:#fff;font-size:var(--step--1)}
.toolbar-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.75rem;padding-block:.375rem}
.toolbar-tag{margin:0;display:flex;align-items:center;gap:.5rem;font-weight:700;color:#F3EEFF}
.toolbar-tag .ic{color:var(--sun)}
.tools{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.sizer{display:flex;align-items:center;gap:.625rem}
.tool-label{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:#F3EEFF}
.sizer-btns{display:inline-flex;background:rgba(255,255,255,.12);border-radius:var(--r-pill);padding:.25rem;gap:.25rem}
.sz,.contrast-btn{font:700 1rem/1 var(--font-body);color:#fff;background:transparent;border:0;border-radius:var(--r-pill);min-width:3rem;min-height:3rem;padding:0 .75rem;cursor:pointer;transition:background-color .2s,color .2s}
.sz1{font-size:1.15rem}.sz2{font-size:1.3rem}
.sz:hover,.contrast-btn:hover{background:rgba(255,255,255,.18)}
.sz[aria-pressed=true]{background:#fff;color:var(--ink)}
.contrast-btn{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);padding:0 1.1rem}
.contrast-btn[aria-pressed=true]{background:var(--sun);color:#1E1A2E}
.toolbar :focus-visible{outline-color:#fff;box-shadow:0 0 0 3px var(--ink)}
.hdr{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);position:sticky;top:0;z-index:40;border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.hdr.is-stuck{border-color:var(--line);box-shadow:0 10px 30px -22px rgba(30,26,46,.45)}
.hdr-in{display:flex;align-items:center;gap:1.5rem;min-height:5.5rem}
.logo{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink);flex:none;border-radius:var(--r-m)}
.logo:hover{color:var(--ink)}
.logo-mark{width:3.25rem;height:3.25rem;flex:none;transition:transform .35s var(--ease)}
.logo:hover .logo-mark{transform:rotate(-6deg) scale(1.05)}
.logo-words{font-family:var(--font-head);font-weight:800;font-size:1.375rem;line-height:1;letter-spacing:-.03em;display:flex;flex-direction:column;gap:.15rem}
.logo-a{font-size:.8em;font-weight:700;color:var(--ink-2);letter-spacing:-.01em}
.rubnav{margin-left:auto;display:none}
.rubnav ul{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.rubnav a{display:inline-flex;align-items:center;gap:.5rem;min-height:3.25rem;padding:.35rem 1.15rem .35rem .4rem;border-radius:var(--r-pill);background:var(--rub-soft);color:var(--ink);font-weight:700;font-size:var(--step--1);text-decoration:none;border:2px solid transparent;transition:background-color .2s,transform .2s var(--ease),border-color .2s}
.pill-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--rub);color:var(--rub-deep)}
.pill-icon .ic{width:1.3rem;height:1.3rem}
.rubnav a:hover{background:var(--rub);transform:translateY(-2px)}
.rubnav a:hover .pill-icon{background:#fff}
.rubnav a[aria-current=page]{background:var(--rub);border-color:var(--ink)}
.rubnav a[aria-current=page] .pill-icon{background:#fff}
.menu-btn{margin-left:auto;display:inline-flex;align-items:center;gap:.6rem;min-height:3.5rem;padding:0 1.4rem;border-radius:var(--r-pill);border:0;background:var(--ink);color:#fff;font:700 var(--step-0)/1 var(--font-body);cursor:pointer}
.menu-btn:hover{background:var(--brand)}
@media (min-width:75em){.rubnav{display:block}.menu-btn{display:none}}
@media (max-width:47.99em){
  .toolbar-tag,.tool-label-txt,.hide-s{display:none}
  .tools{width:100%;justify-content:space-between;margin:0}
  .toolbar-in{min-height:3.5rem}
  .hdr-in{min-height:4.75rem;gap:1rem}
  .logo-mark{width:2.75rem;height:2.75rem}
  .logo-words{font-size:1.2rem}
  .menu-btn{padding:0 1.1rem}
}

@media (max-width:22em){.sz{min-width:2.75rem;padding:0 .45rem}.contrast-btn{padding:0;min-width:3rem;justify-content:center}.contrast-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.tools{gap:.5rem}}

@media (max-width:30em){.tool-label{display:none}}
@media (max-width:47.99em){.tools{flex-wrap:wrap;row-gap:.375rem}.menu-btn{flex:none}.logo{min-width:0}}
@media (max-width:26em){html:not([data-size="0"]) .menu-btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html:not([data-size="0"]) .menu-btn{padding:0;width:3.5rem;justify-content:center}}
@media (max-width:30em){html[data-size="2"] .menu-btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html[data-size="2"] .menu-btn{padding:0;width:3.5rem;justify-content:center}html[data-size="2"] .logo-mark{width:2.5rem;height:2.5rem}}

/* 7. Menu mobile plein écran */
.menu{position:fixed;inset:0;z-index:80;background:var(--bg);overflow-y:auto;overscroll-behavior:contain}
.menu[hidden]{display:none}
.menu-in{max-width:40rem;margin:0 auto;padding:1rem var(--gutter) 3rem}
.menu-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.75rem;margin-bottom:1rem}
.menu-close{display:inline-flex;align-items:center;gap:.5rem;min-height:3.5rem;padding:0 1.25rem;border-radius:var(--r-pill);border:2px solid var(--ink);background:var(--surface);color:var(--ink);font:700 var(--step-0)/1 var(--font-body);cursor:pointer}
.menu-label{font-weight:700;color:var(--ink-2);margin:0 0 .75rem}
.menu-tiles{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.75rem}
.menu-tile{display:flex;align-items:center;gap:1rem;min-height:4.75rem;padding:.75rem 1.25rem .75rem .75rem;border-radius:var(--r-l);background:var(--rub);color:var(--ink);text-decoration:none;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);letter-spacing:-.02em;line-height:1.15}
.menu-tile:hover{color:var(--ink);background:var(--rub-2)}
.menu-tile[aria-current=page]{box-shadow:inset 0 0 0 3px var(--ink)}
.menu-tile-label{flex:1}
.menu-tile-go{width:1.6rem;height:1.6rem}
.menu-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.menu-links a{display:flex;align-items:center;min-height:3.5rem;padding:0 1.25rem;border-radius:var(--r-m);background:var(--sand);color:var(--ink);font-weight:700;text-decoration:none}
.menu-open{overflow:hidden}
.menu-open .menu .menu-tiles li{animation:rise .45s var(--ease) both}
.menu-open .menu .menu-tiles li:nth-child(2){animation-delay:.04s}.menu-open .menu .menu-tiles li:nth-child(3){animation-delay:.08s}.menu-open .menu .menu-tiles li:nth-child(4){animation-delay:.12s}.menu-open .menu .menu-tiles li:nth-child(5){animation-delay:.16s}

/* 8. Accueil */
.hero{padding-top:clamp(1rem,.5rem + 2vw,2rem)}
.hero-grid{display:grid;gap:1rem}
.hero-main{background:#FFF1E6;border-radius:var(--r-xl);padding:clamp(1.75rem,1rem + 3vw,4rem);position:relative;overflow:hidden}
.hero-main::before{content:"";position:absolute;width:26rem;height:26rem;right:-9rem;top:-11rem;border-radius:50%;background:radial-gradient(circle at 40% 40%,#FFD9C7,transparent 68%);z-index:-1}
.hero h1{font-size:clamp(2.5rem,1.6rem + 3.3vw,4.375rem);letter-spacing:-.04em;line-height:1;margin-bottom:.4em;max-width:16ch}
.mark{position:relative;white-space:nowrap;display:inline-block}
.scribble{position:absolute;left:-2%;bottom:-.14em;width:104%;height:.32em;overflow:visible;z-index:-1}
.scribble path{fill:none;stroke:var(--coral);stroke-width:7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.js .scribble path{animation:draw 1.1s .35s var(--ease) both}
.hero-lede{font-size:var(--step-1);line-height:1.5;color:var(--ink-2);max-width:40ch;margin-bottom:1.5rem}
.quick-label{font-weight:700;margin:0 0 .75rem;color:var(--ink-2);font-size:var(--step--1)}
.quick-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem}
.deco-star{position:absolute;right:clamp(1.25rem,4vw,3rem);top:clamp(1.25rem,4vw,3rem);color:var(--brand);width:2.5rem;height:2.5rem;animation:spin 14s linear infinite}
.deco-star .ic{width:100%;height:100%}
.hero-art{background:#EEEAFF;border-radius:var(--r-xl);display:grid;place-items:center;padding:clamp(1rem,2vw,2rem);overflow:hidden}
.hero-art .art{width:112%;max-width:40rem;height:auto;margin:-4% -6% -6%}
@media (min-width:62em){.hero-grid{grid-template-columns:1.5fr 1fr}.hero-main{display:flex;flex-direction:column;justify-content:center}}
.finder{margin-top:1rem;background:var(--surface);border-radius:var(--r-xl);padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);box-shadow:var(--sh-1);border:1px solid var(--line)}
.finder-title{font-size:var(--step-2);display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin-bottom:1.25rem}
.finder-sub{font-family:var(--font-body);font-size:var(--step--1);font-weight:700;color:var(--ink-2);letter-spacing:0}
.finder-list li{display:flex}.finder-list .tile{flex:1}
.finder-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,13.5rem),1fr))}
.tile{position:relative;display:flex;flex-direction:column;gap:.35rem;min-height:9.5rem;padding:1.25rem;border-radius:var(--r-l);background:var(--rub);color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s,background-color .25s;overflow:hidden}
.tile::before{content:"";position:absolute;width:9rem;height:9rem;border-radius:50%;right:-3rem;bottom:-4rem;background:var(--rub-2);opacity:.7;transition:transform .4s var(--ease)}
.tile>*{position:relative}
.tile-icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:1rem;background:#fff;color:var(--rub-deep);margin-bottom:auto;box-shadow:0 6px 14px -8px rgba(30,26,46,.35)}
.tile-icon .ic{width:1.6rem;height:1.6rem}
.tile-label{font-family:var(--font-head);font-weight:800;font-size:var(--step-1);letter-spacing:-.02em;line-height:1.1;margin-top:1rem}
@media (min-width:35em){.tile-label{overflow-wrap:normal}}
.tile-meta{font-size:var(--step--1);font-weight:700;color:var(--ink-2)}
.tile-go{position:absolute;right:1rem;bottom:1rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--ink);color:#fff;transition:transform .25s var(--ease)}
.tile:hover{transform:translateY(-4px);box-shadow:var(--sh-2);color:var(--ink)}
.tile:hover::before{transform:scale(1.25)}
.tile:hover .tile-go{transform:rotate(-45deg)}
@media (max-width:35em){.finder-list{grid-template-columns:minmax(0,1fr)}.tile{min-height:0;flex-direction:row;align-items:center;gap:1rem;padding:1rem}.tile-icon{margin:0}.tile-label{margin:0;flex:1;padding:0}.tile-meta{display:none}.tile-go{position:relative;right:auto;bottom:auto}.finder{background:none;border:0;box-shadow:none;padding:1.25rem 0 0}.hero-art .art{width:100%;max-width:21rem;margin:0}}

/* Bento des guides */
.bento{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:1fr}
.bento .gcard-li{display:flex}
.bento .gcard{width:100%}
@media (min-width:48em){.bento{grid-template-columns:repeat(2,1fr)}.bento-1{grid-column:1/-1}}
@media (min-width:68em){
  .bento{grid-template-columns:repeat(4,1fr);grid-template-areas:"a a b c" "a a d e" "f f f f"}
  .bento-1{grid-area:a}.bento-2{grid-area:b}.bento-3{grid-area:c}.bento-4{grid-area:d}.bento-5{grid-area:e}.bento-6{grid-area:f}
  .bento-6 .gcard{flex-direction:row;align-items:center;gap:1.5rem}
  .bento-6 .gcard-top{margin:0}.bento-6 .gcard-title{margin:0;flex:0 0 auto;max-width:18ch}.bento-6 .gcard-desc{flex:1}.bento-6 .gcard-foot{margin:0;padding:0;border:0;gap:1.25rem}
}

/* Blocs mis en avant */
.feature{display:grid;gap:1.5rem;align-items:center;background:var(--rub);border-radius:var(--r-xl);padding:clamp(1.5rem,1rem + 3vw,4rem);overflow:hidden}
.feature h2{font-size:var(--step-3);max-width:20ch}
.feature-text>p:not(.kicker):not(.feature-cta){font-size:var(--step-0);max-width:46ch}
.feature .kicker{background:rgba(255,255,255,.7);padding:.45rem 1rem .45rem .75rem;border-radius:1rem;line-height:1.3;color:var(--ink)}
.feature-art .art{width:100%;max-width:30rem;height:auto;display:block;margin-inline:auto}
.feature a.ext{font-weight:700;color:var(--ink);text-decoration-color:var(--coral-deep);text-decoration-thickness:3px}
.feature-cta{margin:1.75rem 0 0}
@media (min-width:56em){.feature--mr{grid-template-columns:1.15fr 1fr}.feature--proches{grid-template-columns:1fr 1.15fr}}
@media (max-width:55.99em){.feature--proches .feature-art{order:2}}
.link-pills{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.625rem}
.link-pills a{display:inline-flex;align-items:center;gap:.5rem;min-height:3.25rem;padding:.5rem 1.25rem;border-radius:var(--r-pill);background:#fff;color:var(--ink);font-weight:700;text-decoration:none;box-shadow:var(--sh-1);transition:transform .2s var(--ease)}
.link-pills a .ic{color:var(--rub-deep)}
.link-pills a:hover{transform:translateY(-2px);color:var(--ink);text-decoration:underline}
.promises{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.promises li{display:flex;flex-direction:column;gap:1rem;background:var(--rub-soft);border-radius:var(--r-l);padding:1.5rem;border:1px solid color-mix(in srgb,var(--rub-2) 45%,transparent)}
.promise-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:1.1rem;background:var(--rub);color:var(--rub-deep)}
.promise-icon .ic{width:1.75rem;height:1.75rem}
.promises li>span:last-child{font-size:var(--step--1);line-height:1.55}
.promises strong{font-family:var(--font-head);font-size:1.3em;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.promises-foot{margin-top:1.5rem;color:var(--ink-2)}
.viager{display:grid;gap:1rem 1.5rem;align-items:center;border:2px dashed var(--line-2);border-radius:var(--r-xl);padding:clamp(1.25rem,1rem + 1.5vw,2rem)}
.viager-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:1.1rem;background:var(--sand-2);color:var(--ink)}
.viager-icon .ic{width:1.7rem;height:1.7rem}
.viager-title{font-size:var(--step-1);margin:0 0 .25rem}
.viager-text p{margin:0}
.viager-link{margin:0;display:flex;flex-direction:column;gap:.1rem}
.viager-link a{font-weight:700;display:inline-flex;align-items:center;gap:.35rem}
.viager-link span{font-size:var(--step--1);color:var(--ink-2)}
@media (min-width:56em){.viager{grid-template-columns:auto 1fr auto}.viager-link{text-align:right;align-items:flex-end}}

/* 9. Cartes de guides */
.cards{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}
.gcard-li{display:flex}
.gcard{position:relative;display:flex;flex-direction:column;width:100%;padding:1.5rem;border-radius:var(--r-l);background:var(--surface);color:var(--ink);text-decoration:none;border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;overflow:hidden}
.gcard:hover{transform:translateY(-5px);box-shadow:var(--sh-2);color:var(--ink);border-color:var(--rub-2)}
.gcard-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}
.gcard-icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:1rem;background:var(--rub);color:var(--rub-deep);transition:transform .3s var(--ease)}
.gcard-icon .ic{width:1.6rem;height:1.6rem}
.gcard:hover .gcard-icon{transform:rotate(-8deg) scale(1.06)}
.gcard-rub{font-size:1rem;font-weight:700;padding:.25rem .8rem;border-radius:var(--r-pill);background:var(--rub-soft);color:var(--ink)}
.gcard-title{font-size:var(--step-1);margin:0 0 .5rem;line-height:1.15}
.gcard-desc{color:var(--ink-2);font-size:var(--step--1);line-height:1.55}
.gcard-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.25rem}
.gcard-meta{display:inline-flex;align-items:center;gap:.4rem;font-size:1rem;font-weight:700;color:var(--ink-2)}
.gcard-go{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--rub);color:var(--ink);flex:none;transition:transform .25s var(--ease),background-color .25s}
.gcard:hover .gcard-go{background:var(--ink);color:#fff;transform:translateX(3px)}
.gcard:hover .gcard-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}
.gcard--tint{background:var(--rub);border-color:transparent}
.gcard--tint .gcard-icon,.gcard--tint .gcard-go,.gcard--tint .gcard-rub{background:#fff}
.gcard--tint .gcard-desc,.gcard--tint .gcard-meta{color:var(--ink)}
.gcard--xl{padding:clamp(1.5rem,1rem + 2vw,2.5rem);min-height:100%}
.gcard--xl .gcard-title{font-size:var(--step-3);max-width:14ch;letter-spacing:-.03em;line-height:1.02}
.gcard--xl .gcard-desc{font-size:var(--step-0);max-width:30ch}
.gcard-art{display:block;margin:1rem -1rem 0 auto;width:min(100%,22rem)}
.gcard-art .art{width:100%;height:auto;display:block}
.gcard--xl .gcard-foot{padding-top:.5rem}

/* 10. Rubriques */
.banner,.ghead,.phead{padding-top:clamp(1rem,.5rem + 2vw,2rem)}
.banner-card,.ghead-card{position:relative;display:grid;gap:1rem;align-items:center;background:var(--rub);border-radius:var(--r-xl);padding:clamp(1.5rem,1rem + 3vw,4rem);overflow:hidden}
.banner-card::before,.ghead-card::before{content:"";position:absolute;width:30rem;height:30rem;border-radius:50%;background:var(--rub-2);opacity:.45;right:-10rem;bottom:-16rem;z-index:-1}
.banner h1{font-size:var(--step-4);letter-spacing:-.035em;line-height:1.02;max-width:18ch}
.lede{font-size:var(--step-1);line-height:1.55;color:var(--ink);max-width:40ch;margin:0}
.banner-art .art,.ghead-art .art{width:100%;max-width:26rem;height:auto;display:block;margin-inline:auto}
@media (min-width:56em){.banner-card{grid-template-columns:1.35fr 1fr}.ghead-card{grid-template-columns:1.6fr 1fr}}
@media (max-width:55.99em){.banner-art .art{max-width:18rem}.ghead-art{display:none}}
.crumbs{margin-bottom:1.25rem;font-size:var(--step--1)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}
.crumbs li{display:inline-flex;align-items:center;min-width:0;overflow-wrap:anywhere}
.crumbs li+li::before{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin:0 .7rem 0 .35rem;opacity:.55}
.crumbs a{color:var(--ink);font-weight:700;display:inline-flex;align-items:center;min-height:2.75rem;text-decoration-thickness:1.5px}
.crumbs [aria-current]{color:var(--ink-2)}
.hub-top{display:grid;gap:2rem;padding-top:var(--section);align-items:start}
@media (min-width:68em){.hub-top{grid-template-columns:minmax(0,1fr) 22rem;gap:clamp(2.5rem,5vw,6rem)}.hub-aside{position:sticky;top:7.5rem}}
.hub-intro{max-width:var(--measure)}
.hub-aside{background:var(--rub-soft);border:1px solid color-mix(in srgb,var(--rub-2) 55%,transparent);border-radius:var(--r-l);padding:1.25rem}
.hub-aside-title{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-0);margin:0 0 .75rem;padding:0 .25rem}
.hub-aside-title .ic{color:var(--rub-deep)}
.hub-aside ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.hub-aside a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.25rem;padding:.6rem .9rem;border-radius:var(--r-s);background:#fff;color:var(--ink);font-weight:700;font-size:var(--step--1);line-height:1.3;text-decoration:none;transition:transform .2s var(--ease)}
.hub-aside a:hover{transform:translateX(3px);text-decoration:underline}
.hub-aside-time{flex:none;font-size:.95rem;font-weight:700;color:var(--ink-2)}
.hub-intro>p:first-child{font-size:var(--step-1);line-height:1.55}

/* 11. Guides */
.ghead h1{font-size:var(--step-4);letter-spacing:-.035em;max-width:20ch}
.ghead .lede{max-width:46ch}
.ghead-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.75rem}
.meta-pill{display:inline-flex;align-items:center;gap:.5rem;min-height:3rem;padding:.25rem 1.1rem;border-radius:var(--r-pill);background:rgba(255,255,255,.75);font-weight:700;font-size:var(--step--1)}
.meta-pill .ic{color:var(--rub-deep)}
.ghead-art .art{max-width:22rem}
.glayout{display:grid;gap:2rem;padding-top:clamp(2rem,1rem + 3vw,4rem)}
.gbody{min-width:0;max-width:var(--measure)}
@media (min-width:68em){.glayout.has-toc{grid-template-columns:20rem minmax(0,1fr);gap:clamp(2.5rem,4vw,5rem)}.gside{position:relative}.toc{position:sticky;top:7.5rem}}
.toc{background:var(--rub-soft);border-radius:var(--r-l);border:1px solid color-mix(in srgb,var(--rub-2) 55%,transparent);padding:.5rem}
.toc-sum{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.5rem;padding:.25rem .75rem .25rem 1rem;cursor:pointer;list-style:none;border-radius:var(--r-m);font-family:var(--font-head);font-weight:800;font-size:var(--step-0);letter-spacing:-.01em}
.toc-sum::-webkit-details-marker{display:none}
.toc-title{display:inline-flex;align-items:center;gap:.6rem}
.toc-title .ic{color:var(--rub-deep)}
.toc-chev{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:#fff;transition:transform .25s var(--ease)}
.toc[open] .toc-chev{transform:rotate(180deg)}
.toc ol{list-style:none;counter-reset:t;margin:0;padding:.25rem .5rem .75rem}
.toc li{counter-increment:t}
.toc a{display:flex;gap:.75rem;align-items:flex-start;padding:.6rem .75rem;border-radius:var(--r-s);color:var(--ink);text-decoration:none;font-size:var(--step--1);line-height:1.4;font-weight:600;transition:background-color .2s}
.toc a::before{content:counter(t);flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#fff;font-size:.95rem;font-weight:800;color:var(--rub-deep);margin-top:-.1rem}
.toc a:hover{background:#fff;text-decoration:underline}
.toc a.is-current{background:#fff;box-shadow:inset 3px 0 0 var(--rub-deep)}
.toc a.is-current::before{background:var(--rub-deep);color:#fff}
.updated{margin-top:3rem;padding:1rem 1.25rem;border-radius:var(--r-m);background:var(--sand);font-size:var(--step--1);color:var(--ink-2)}

/* 12. Prose & composants */
.prose{font-size:var(--step-0)}
.prose>*+*{margin-top:0}
.prose h2{overflow-wrap:anywhere;font-size:var(--step-2);margin:2.25em 0 .6em;display:flex;align-items:flex-start;gap:.75rem;scroll-margin-top:7rem}
.prose>h2:first-child{margin-top:0}
.h2-num{flex:none;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.9rem;background:var(--rub);color:var(--ink);font-size:1.35rem;letter-spacing:0;margin-top:-.1rem}
.prose h3{margin:1.75em 0 .5em}
.prose p,.prose li{max-width:var(--measure)}
.prose ul{list-style:none;padding:0;margin:0 0 1.25em}
.prose ul:not(.ck-list)>li{position:relative;padding-left:1.75rem;margin-bottom:.6em}
.prose ul:not(.ck-list)>li::before{content:"";position:absolute;left:.2rem;top:.6em;width:.7rem;height:.7rem;border-radius:50%;background:var(--rub-2);box-shadow:0 0 0 3px var(--rub-soft)}
.prose ol{padding-left:1.5rem;margin:0 0 1.25em}
.prose ol>li{margin-bottom:.6em;padding-left:.35rem}
.prose ol>li::marker{font-family:var(--font-head);font-weight:800;color:var(--rub-deep)}
.prose a.ext{white-space:normal}
.ic-ext{width:.85em;height:.85em;vertical-align:-.05em;margin-left:.15em}
.small,.prose .small{font-size:var(--step--1);color:var(--ink-2)}
.callout{display:flex;gap:1rem;align-items:flex-start;margin:2rem 0;padding:1.5rem;border-radius:var(--r-l);background:#E9F7EF;border:1px solid #BFE8D2}
.callout-badge{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:1rem;background:#fff;color:#157347;box-shadow:0 6px 14px -8px rgba(30,26,46,.3)}
.callout-badge .ic{width:1.5rem;height:1.5rem}
.callout-kicker{font-size:1rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#105C38;margin:0 0 .25rem}
.callout-title{font-family:var(--font-head);font-size:var(--step-1);font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0 0 .4rem}
.callout-body>p:last-child{margin-bottom:0}
.callout--warn{background:#FFF1E4;border-color:#FFD0AE}
.callout--warn .callout-badge{color:#C2410C}
.callout--warn .callout-kicker{color:#9A3412}
.checklist{margin:2rem 0;background:var(--surface);border-radius:var(--r-l);border:2px solid var(--rub);box-shadow:var(--sh-1);overflow:hidden}
.checklist-head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem 1rem 1rem 1.5rem;background:var(--rub-soft);border-bottom:2px solid var(--rub)}
.checklist-kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);letter-spacing:-.02em;margin-right:auto}
.checklist-kicker .ic{color:var(--rub-deep);width:1.5rem;height:1.5rem}
.checklist-count{font-weight:700;font-size:1rem;padding:.35rem .9rem;border-radius:var(--r-pill);background:#fff}
.checklist-count:empty{display:none}
.ck-list{list-style:none;margin:0;padding:.5rem}
.ck-list li{position:relative;max-width:none}
.ck-box{position:absolute;opacity:0;width:2rem;height:2rem;left:1rem;top:.85rem;margin:0}
.ck-label{display:block;position:relative;padding:.8rem 1rem .8rem 4rem;border-radius:var(--r-m);cursor:pointer;transition:background-color .2s}
.ck-label::before{content:"";position:absolute;left:1rem;top:.85rem;width:2rem;height:2rem;border-radius:.65rem;border:2px solid var(--line-2);background:#fff;transition:background-color .2s,border-color .2s,transform .2s var(--ease)}
.ck-label::after{content:"";position:absolute;left:1.72rem;top:1.18rem;width:.6rem;height:1.05rem;border:solid #fff;border-width:0 .22rem .22rem 0;transform:rotate(45deg) scale(0);transition:transform .2s var(--ease)}
.ck-label:hover{background:var(--rub-soft)}
.ck-label:hover::before{border-color:var(--ink)}
.ck-box:checked+.ck-label::before{background:var(--brand);border-color:var(--brand)}
.ck-box:checked+.ck-label::after{transform:rotate(45deg) scale(1)}
.ck-box:checked+.ck-label{background:var(--brand-soft)}
.ck-box:focus-visible+.ck-label{outline:3px solid var(--focus);outline-offset:2px}
.table-wrap{margin:2rem 0;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-1);overflow-x:auto}
.table-wrap table{width:100%;border-collapse:collapse;font-size:var(--step--1);line-height:1.5}
.table-wrap caption{text-align:left;padding:1.25rem 1.5rem .5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1)}
.table-wrap th,.table-wrap td{padding:1rem 1.25rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.table-wrap thead th{background:var(--rub);font-family:var(--font-head);font-weight:800;font-size:var(--step-0);letter-spacing:-.01em}
.table-wrap tbody th{font-weight:700;background:var(--rub-soft);white-space:nowrap}
.table-wrap tbody tr:last-child>*{border-bottom:0}
.table-wrap tbody tr:hover td{background:#FFFCF4}
@media (max-width:47.99em){
  .table-wrap{border:0;background:none;box-shadow:none;overflow:visible}
  .table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap th,.table-wrap td{display:block;width:100%}
  .table-wrap tr{margin-bottom:1rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);overflow:hidden}
  .table-wrap tbody th{background:var(--rub);font-family:var(--font-head);font-size:var(--step-1);white-space:normal;padding:1rem 1.25rem}
  .table-wrap td{display:grid;gap:.15rem;border-bottom:1px solid var(--line)}
  .table-wrap td::before{content:attr(data-label);font-weight:800;font-size:1rem;color:var(--ink-2)}
  .table-wrap caption{display:block;width:100%;padding:0 0 .75rem}
}
.faq{margin-top:var(--section)}
.faq-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}
.faq-head h2{margin:0;font-size:var(--step-3);min-width:0;overflow-wrap:anywhere}
.faq-badge{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:1rem;background:var(--rub);color:var(--rub-deep);flex:none}
.faq-badge .ic{width:1.6rem;height:1.6rem}
.faq-list{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr)}
.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh-1);transition:box-shadow .25s,border-color .25s}
.faq-item[open]{border-color:var(--rub-2);box-shadow:var(--sh-2)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem;padding:1rem 1rem 1rem 1.5rem;cursor:pointer;list-style:none;border-radius:var(--r-l)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-q{font-family:var(--font-head);font-weight:700;font-size:var(--step-1);letter-spacing:-.015em;line-height:1.25}
.faq-icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:50%;background:var(--rub);transition:transform .3s var(--ease),background-color .25s}
.faq-item summary:hover .faq-icon{background:var(--rub-2)}
.faq-item[open] .faq-icon{transform:rotate(45deg);background:var(--ink);color:#fff}
.faq-a{padding:0 1.5rem 1.5rem}
.faq-a p{margin:0;max-width:var(--measure)}
.faq-a .faq-more{margin-top:1rem}
.faq-more a{display:inline-flex;align-items:center;gap:.4rem;font-weight:700}
.related{margin-top:var(--section);padding-block:var(--section);background:var(--sand);border-radius:var(--r-xl) var(--r-xl) 0 0}
.related+.ftr{border-top-left-radius:0;border-top-right-radius:0}

/* 13. Pages simples */
.phead-card{position:relative;background:var(--rub);border-radius:var(--r-xl);padding:clamp(1.5rem,1rem + 3vw,4rem);overflow:hidden}
.phead-card::before{content:"";position:absolute;width:22rem;height:22rem;border-radius:50%;background:#FFD9C7;opacity:.55;right:-6rem;top:-10rem;z-index:-1}
.phead-card::after{opacity:.08}
.phead h1{max-width:20ch}
.phead-deco{position:absolute;right:clamp(1.5rem,5vw,4rem);bottom:clamp(1.5rem,4vw,3rem);width:3rem;height:3rem;color:var(--coral)}
.phead-deco .ic{width:100%;height:100%}
.page-body{padding-top:clamp(2rem,1rem + 3vw,4rem)}
.phead-404{display:grid;gap:1.5rem;align-items:center}
.phead-404 .nf-art .art{width:100%;max-width:22rem;height:auto;display:block;margin-inline:auto}
@media (min-width:56em){.phead-404{grid-template-columns:1fr 1.3fr}}
.kind-404 .finder{margin-top:1rem}
form.contact{margin-top:2rem;display:grid;gap:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.25rem,1rem + 2vw,2.5rem);box-shadow:var(--sh-1)}
.field{display:grid;gap:.5rem}
.field label{font-weight:700}
.field input,.field select,.field textarea{width:100%;min-height:3.5rem;padding:.75rem 1.1rem;font:inherit;color:var(--ink);background:var(--bg);border:2px solid var(--line-2);border-radius:var(--r-m);transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:11rem;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5' fill='none' stroke='%231E1A2E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.4rem;padding-right:3rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-2)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form.contact .btn{justify-self:start}
.form-msg{padding:1rem 1.25rem;border-radius:var(--r-m);background:#FFF1E4;border:1px solid #FFD0AE;font-weight:700}

/* 14. Pied de page */
.ftr{margin-top:var(--section);background:#231B35;color:#F3EEFF;border-radius:var(--r-xl) var(--r-xl) 0 0;padding-block:clamp(3rem,2rem + 4vw,5.5rem) 2rem;position:relative;overflow:hidden}
.related+.ftr,main:has(> .related:last-child)+.ftr{margin-top:0}
.ftr::before{content:"";position:absolute;width:30rem;height:30rem;border-radius:50%;background:radial-gradient(circle,rgba(185,168,255,.22),transparent 70%);right:-8rem;top:-12rem}
.ftr a{color:#fff}
.ftr-grid{position:relative;display:grid;gap:2.5rem}
@media (min-width:48em){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (min-width:68em){.ftr-grid{grid-template-columns:1.3fr 1fr 1fr 1.2fr}}
.ftr .ftr-friends a{flex-direction:column;align-items:flex-start;gap:.1rem;padding:.45rem 0;line-height:1.3}
.ftr-friend{font-weight:700}
.ftr-friend-d{font-size:1rem;font-weight:400;color:#D9D2F0}
.partners{display:grid;gap:.75rem}
.prose ul.partners>li{padding:1.1rem 1.25rem 1.1rem 1.25rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1)}
.prose ul.partners>li::before{display:none}
.prose ul.partners a{font-weight:700}
.logo--light,.logo--light:hover{color:#fff}
.logo--light .logo-a{color:#D9D2F0}
.ftr-brand p{margin:1.25rem 0 0;max-width:30ch;font-size:var(--step-1);line-height:1.5;color:#E7E1F7}
.ftr-title{font-family:var(--font-head);font-weight:800;font-size:var(--step-1);margin:0 0 .75rem;color:#fff}
.ftr-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.ftr-col a{display:inline-flex;align-items:center;gap:.65rem;min-height:3rem;text-decoration:none;font-weight:600}
.ftr-col a:hover{text-decoration:underline;color:#fff}
.dot{width:.85rem;height:.85rem;border-radius:50%;background:var(--rub-2);flex:none}
.ftr-note{position:relative;display:flex;gap:.85rem;align-items:flex-start;margin:3rem 0 0;padding:1.25rem 1.5rem;border-radius:var(--r-l);background:rgba(255,255,255,.07);font-size:var(--step--1);color:#E7E1F7;max-width:none}
.ftr-note .ic{color:var(--sun);margin-top:.2rem}
.ftr-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:2rem 0 0;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);font-size:var(--step--1);color:#D9D2F0}
.ftr-top{display:inline-flex;align-items:center;gap:.5rem;min-height:3rem;font-weight:700}
.ftr-top .ic{transform:rotate(-90deg)}
.ftr :focus-visible{outline-color:#FFD84D;box-shadow:none}

/* 15. Animations */
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
.bento .reveal:nth-child(2){transition-delay:.06s}.bento .reveal:nth-child(3){transition-delay:.12s}.bento .reveal:nth-child(4){transition-delay:.18s}.bento .reveal:nth-child(5){transition-delay:.24s}.bento .reveal:nth-child(6){transition-delay:.3s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
  .deco-star{animation:none}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* 16. Contraste élevé : noir, blanc, jaune */
html[data-contrast=high]{
  --bg:#000; --surface:#000; --sand:#000; --sand-2:#000; --ink:#FFF; --ink-2:#FFF; --line:#FFF; --line-2:#FFF;
  --brand:#FFE600; --brand-hover:#FFF; --brand-soft:#000; --on-brand:#000; --coral:#FFE600; --coral-deep:#FFE600; --sun:#FFE600;
  --focus:#FFE600; --focus-halo:#000; --sh-1:none; --sh-2:none; --sh-btn:none;
  --rub:#000; --rub-soft:#000; --rub-2:#000; --rub-deep:#FFE600;
}
html[data-contrast=high] [data-rub]{--rub:#000;--rub-soft:#000;--rub-2:#000;--rub-deep:#FFE600}
html[data-contrast=high] body{background:#000;color:#fff}
html[data-contrast=high] a{color:#FFE600}
html[data-contrast=high] a:hover{color:#fff}
html[data-contrast=high] .grain::after,html[data-contrast=high] .art-bg,html[data-contrast=high] .deco,html[data-contrast=high] .phead-deco,html[data-contrast=high] .tile::before,html[data-contrast=high] .hero-main::before,html[data-contrast=high] .banner-card::before,html[data-contrast=high] .ghead-card::before,html[data-contrast=high] .phead-card::before,html[data-contrast=high] .ftr::before{display:none}
html[data-contrast=high] :is(.hub-aside,.hub-aside a,.hero-main,.hero-art,.finder,.tile,.gcard,.feature,.promises li,.viager,.banner-card,.ghead-card,.phead-card,.toc,.callout,.checklist,.table-wrap,.faq-item,.menu-tile,.menu-links a,.related,.updated,form.contact,.ftr,.ftr-note,.link-pills a,.chip,.meta-pill,.feature .kicker,.rubnav a){background:#000!important;color:#fff;border:2px solid #fff;box-shadow:none}
html[data-contrast=high] :is(.tile,.gcard,.menu-tile,.rubnav a,.link-pills a,a.chip):hover{border-color:#FFE600;outline:2px solid #FFE600}
html[data-contrast=high] :is(.tile-icon,.gcard-icon,.pill-icon,.promise-icon,.faq-badge,.callout-badge,.viager-icon,.h2-num,.gcard-go,.tile-go,.faq-icon,.toc-chev,.checklist-count,.gcard-rub){background:#000!important;color:#FFE600;border:2px solid #FFE600;box-shadow:none}
html[data-contrast=high] :is(.tile-label,.tile-meta,.gcard-title,.gcard-desc,.gcard-meta,.menu-tile,.callout-kicker,.callout-title,.lede,.hero-lede,.quick-label,.finder-sub,.logo,.logo-a,.crumbs a,.crumbs [aria-current],.toc a,.faq-q){color:#fff}
html[data-contrast=high] .rubnav a[aria-current=page],html[data-contrast=high] .menu-tile[aria-current=page]{background:#FFE600!important;color:#000;border-color:#FFE600}
html[data-contrast=high] .rubnav a[aria-current=page] .pill-icon{color:#FFE600;border-color:#000}
html[data-contrast=high] .btn{background:#FFE600;color:#000;border-color:#FFE600}
html[data-contrast=high] .btn:hover{background:#fff;border-color:#fff;color:#000}
html[data-contrast=high] .btn--ghost{background:#000;color:#FFE600;border-color:#FFE600}
html[data-contrast=high] .toolbar{background:#000;border-bottom:2px solid #fff}
html[data-contrast=high] .hdr{background:#000;border-bottom:2px solid #fff;backdrop-filter:none}
html[data-contrast=high] .menu-btn,html[data-contrast=high] .menu-close{background:#FFE600;color:#000;border:2px solid #FFE600}
html[data-contrast=high] .sizer-btns{background:#000;outline:2px solid #fff}
html[data-contrast=high] .sz[aria-pressed=true],html[data-contrast=high] .contrast-btn[aria-pressed=true]{background:#FFE600;color:#000}
html[data-contrast=high] .contrast-btn{border:2px solid #fff}
html[data-contrast=high] .scribble path{stroke:#FFE600}
html[data-contrast=high] .scribble{z-index:0}
html[data-contrast=high] .toc a.is-current{background:#FFE600!important;color:#000;box-shadow:none}
html[data-contrast=high] .toc a.is-current::before{background:#000;color:#FFE600}
html[data-contrast=high] .ck-label::before{background:#000;border-color:#fff}
html[data-contrast=high] .ck-box:checked+.ck-label{background:#000;outline:2px solid #FFE600}
html[data-contrast=high] .ck-box:checked+.ck-label::before{background:#FFE600;border-color:#FFE600}
html[data-contrast=high] .ck-label::after{border-color:#000}
html[data-contrast=high] .table-wrap :is(th,td){border-color:#fff;background:#000!important;color:#fff}
html[data-contrast=high] .table-wrap td::before{color:#FFE600}
html[data-contrast=high] .field :is(input,select,textarea){background:#000;color:#fff;border-color:#fff}
html[data-contrast=high] .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5' fill='none' stroke='%23FFE600' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
html[data-contrast=high] .prose ul:not(.ck-list)>li::before{background:#FFE600;box-shadow:none}
html[data-contrast=high] .dot{background:#FFE600}
html[data-contrast=high] .faq-item[open] .faq-icon{color:#FFE600}
html[data-contrast=high] .art{filter:none}
html[data-contrast=high] .form-msg{background:#000;color:#FFE600;border:2px solid #FFE600}
html[data-contrast=high] ::selection{background:#FFE600;color:#000}
html[data-contrast=high] .logo-mark rect{stroke:#fff;stroke-width:2}

/* 17. Impression */
@media print{
  @page{size:A4;margin:16mm 15mm}
  html{font-size:11pt!important}
  body{background:#fff!important;color:#000!important;font-size:11pt;line-height:1.45}
  .toolbar,.hdr,.menu,.ftr,.gside,.related,.no-print,.skip,.ghead-art,.banner-art,.feature-art,.hero-art,.deco,.phead-deco,.finder,.btn,.gcard-go,.scribble{display:none!important}
  .grain::after,.banner-card::before,.ghead-card::before,.phead-card::before,.hero-main::before{display:none!important}
  .wrap{max-width:none;padding:0}
  .ghead-card,.banner-card,.phead-card{background:none!important;padding:0 0 8pt;border-bottom:2pt solid #000;border-radius:0;display:block}
  h1{font-size:22pt}h2,.prose h2{font-size:15pt;margin:14pt 0 5pt;break-after:avoid}
  .lede{font-size:12pt}
  .glayout{display:block;padding-top:10pt}
  .gbody,.prose p,.prose li{max-width:none}
  a{color:#000;text-decoration:underline}
  a.ext::after{content:" (" attr(href) ")";font-size:9pt}
  .ic-ext{display:none}
  .h2-num{background:none!important;border:1.5pt solid #000;width:1.6em;height:1.6em;font-size:11pt}
  .checklist{box-shadow:none!important;border:1pt solid #000!important;background:#fff!important}
  .callout,.table-wrap,.faq-item{box-shadow:none!important;break-inside:avoid;border:1pt solid #000!important;background:#fff!important}
  .checklist-head{background:#fff!important;border-bottom:1pt solid #000;padding:6pt 8pt}
  .ck-list{padding:2pt 4pt}
  .ck-list li{break-inside:avoid}
  .ck-label{padding:5pt 6pt 5pt 26pt;background:none!important}
  .chip,.meta-pill{border:0;padding:0;background:none!important}
  .ck-label::before{left:6pt;top:6pt;width:12pt;height:12pt;border:1.2pt solid #000;border-radius:3pt;background:#fff!important}
  .ck-label::after{left:10pt;top:7.5pt;width:4pt;height:7pt;border-color:#000;border-width:0 1.6pt 1.6pt 0}
  .faq-item:not([open]) .faq-a{display:block}
  details>*:not(summary){display:block!important}
  .faq-icon{display:none}
  .updated{background:none;border:1pt solid #000}
  .table-wrap thead th,.table-wrap tbody th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-one body>*:not(#print-area){display:none!important}
  #print-area{display:block!important}
  #print-area .pa-site{font-size:10pt;margin:0 0 4pt}
  #print-area h1{font-size:18pt;margin:0 0 4pt}
  #print-area .pa-sub{font-size:11pt;margin:0 0 10pt}
  #print-area .checklist{border:1.2pt solid #000!important;margin:0}
  #print-area .ck-label{font-size:11pt;line-height:1.4}
}
#print-area{display:none}

/* 18. Briques pratiques ------------------------------------------------------------------ */
/* En-tête : sections, recherche */
.rubnav a[aria-current=true]{background:var(--rub);border-color:var(--ink)}
.rubnav a[aria-current=true] .pill-icon{background:#fff}
.rubnav ul{gap:.4rem}
.rubnav a{padding-right:1rem}
.search-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.25rem;min-width:3.25rem;padding:0 1rem;border-radius:var(--r-pill);border:2px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:700;font-size:var(--step--1);text-decoration:none;flex:none;transition:border-color .2s,transform .2s var(--ease)}
.search-btn:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}
.search-btn .ic{width:1.35rem;height:1.35rem}
@media (min-width:75em){.search-btn{margin-left:.25rem}.search-btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.search-btn{padding:0;width:3.25rem}}
@media (max-width:74.99em){.search-btn{margin-left:auto}.menu-btn{margin-left:0}}
@media (max-width:47.99em){.search-btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.search-btn{padding:0;width:3.5rem;min-height:3.5rem}.hdr-in{gap:.6rem}}
@media (min-width:75em) and (max-width:86em){.rubnav a{padding:.3rem .8rem .3rem .3rem;gap:.35rem}.rubnav .pill-icon{width:2.25rem;height:2.25rem}.hdr-in{gap:1rem}.logo-words{font-size:1.25rem}}
.menu-tile[aria-current=true]{box-shadow:inset 0 0 0 3px var(--ink)}
.menu-rubs{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.5rem}
.menu-rubs a{display:flex;align-items:center;gap:.75rem;min-height:3.5rem;padding:.4rem 1rem .4rem .4rem;border-radius:var(--r-m);background:var(--rub-soft);color:var(--ink);font-weight:700;text-decoration:none;border:2px solid transparent}
.menu-rubs a:hover{background:var(--rub);color:var(--ink)}
.menu-rubs a[aria-current]{border-color:var(--ink)}
.menu-rubs .pill-icon{width:2.6rem;height:2.6rem;flex:none}

/* Gabarit des pages de briques */
.banner--app .banner-card.no-art{grid-template-columns:minmax(0,1fr)}
.banner--app h1{font-size:clamp(2.125rem,1.5rem + 2.8vw,3.75rem);max-width:22ch}
.banner--app .lede{max-width:52ch}
.app-body{padding-top:clamp(2rem,1rem + 3vw,3.5rem)}
.app-body--narrow{max-width:58rem}
.app-body>*+*{margin-top:clamp(2.5rem,1.5rem + 3vw,4.5rem)}
.app-body .prose+form,.app-body .soon+form,.app-body .soon+.depose{margin-top:1.5rem}
.section-lite{margin-top:clamp(2.5rem,1.5rem + 3vw,4rem)}
.section-lite>h2,.howto>h2,.srcfoot>h2,.guides-group-head h2{font-size:var(--step-2)}
.more-link{display:inline-flex;align-items:center;gap:.4rem;min-height:3rem;font-weight:700}
.small a{font-weight:700}

/* Lettre du jeudi */
.news-in{position:relative;display:grid;gap:1.5rem 2.5rem;align-items:center;background:#FFF1E6;border-radius:var(--r-xl);padding:clamp(1.5rem,1rem + 3vw,3.5rem);overflow:hidden}
.news-in::before{content:"";position:absolute;width:24rem;height:24rem;border-radius:50%;background:#FFD9C7;opacity:.6;left:-8rem;bottom:-14rem;z-index:-1}
.news-kicker{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;margin:0 0 .75rem;padding:.35rem .9rem .35rem .7rem;border-radius:var(--r-pill);background:rgba(255,255,255,.75)}
.news-kicker .ic{color:var(--coral-deep)}
.news-title{font-size:var(--step-3);margin:0 0 .5rem;max-width:18ch}
p.news-title{font-family:var(--font-head);font-weight:800;line-height:1.1;letter-spacing:-.02em}
.news-lead{margin:0;max-width:44ch;color:var(--ink-2)}
.news-form{display:grid;gap:1rem;min-width:0}
.news-art .art{width:100%;max-width:15rem;height:auto;display:block}
@media (min-width:56em){.news--home .news-in,.news--page .news-in{grid-template-columns:auto minmax(0,1fr) minmax(0,1.05fr)}.news--guide .news-in{grid-template-columns:minmax(0,1fr)}}
@media (max-width:55.99em){.news-art{display:none}}
.news--guide{margin-top:var(--section)}
.news--guide .news-title{font-size:var(--step-2)}
.news--page .news-title{font-size:var(--step-2)}
.news-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}
.news-privacy{font-weight:700;display:inline-flex;align-items:center;min-height:3rem}
.news--footer{margin-bottom:clamp(2.5rem,2rem + 2vw,4rem)}
.news--footer .news-in{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);padding:clamp(1.25rem,1rem + 2vw,2.25rem)}
.news--footer .news-in::before{display:none}
@media (min-width:62em){.news--footer .news-in{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
.news--footer .news-kicker{background:rgba(255,255,255,.1);color:#fff}
.news--footer .news-kicker .ic{color:var(--sun)}
.news--footer .news-title{font-size:var(--step-2);color:#fff}
.news--footer .news-lead{color:#E7E1F7}
.news--footer .field label,.news--footer .consent-label{color:#fff}
.news--footer .field input{background:#fff;border-color:#fff}
.news--footer .news-privacy{color:#fff}
.news--footer .form-msg{color:var(--ink)}
.news--footer .field-err{background:#fff}
/* Champs, consentement, erreurs */
.consent{position:relative}
.consent-box{position:absolute;opacity:0;width:2rem;height:2rem;left:0;top:.15rem;margin:0}
.consent-label{display:block;position:relative;padding:.1rem 0 .1rem 2.9rem;font-size:var(--step--1);line-height:1.5;cursor:pointer;min-height:2.25rem}
.consent-label::before{content:"";position:absolute;left:0;top:.15rem;width:2rem;height:2rem;border-radius:.6rem;border:2px solid var(--ink-2);background:#fff}
.consent-label::after{content:"";position:absolute;left:.7rem;top:.45rem;width:.55rem;height:1rem;border:solid #fff;border-width:0 .22rem .22rem 0;transform:rotate(45deg) scale(0);transition:transform .2s var(--ease)}
.consent-box:checked+.consent-label::before{background:var(--brand);border-color:var(--brand)}
.consent-box:checked+.consent-label::after{transform:rotate(45deg) scale(1)}
.consent-box:focus-visible+.consent-label::before{outline:3px solid var(--focus);outline-offset:3px}
.consent-box[aria-invalid=true]+.consent-label::before,.field [aria-invalid=true]{border-color:#B3261E;box-shadow:0 0 0 3px #FBE3E1}
.field-err{margin:0;padding:.75rem 1rem;border-radius:var(--r-m);background:#FBE3E1;color:#7A1712;font-weight:700;border-left:5px solid #B3261E}
.form-msg--soon{background:#E9F7EF;border-color:#BFE8D2}
.fset{border:0;margin:0;padding:0;display:grid;gap:1.25rem;min-width:0}
.fset legend{font-family:var(--font-head);font-weight:800;font-size:var(--step-1);letter-spacing:-.015em;margin-bottom:.75rem;padding:0;display:flex;align-items:center;gap:.75rem}
.fset-num{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.85rem;background:var(--rub);color:var(--ink);font-size:1.2rem;flex:none}
.fset-sub{margin:0;font-weight:700;color:var(--ink-2);font-size:var(--step--1)}
.field-row,.field-grid{display:grid;gap:1rem 1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.field .small{margin:0}
.money{position:relative;display:flex;align-items:center}
.money input{padding-right:5.5rem;font-variant-numeric:tabular-nums;font-weight:700}
.money-u{position:absolute;right:1rem;font-weight:700;color:var(--ink-2);pointer-events:none;font-size:var(--step--1)}
.linkbtn{background:none;border:0;padding:0 .25rem;min-height:3rem;font:700 var(--step--1)/1.2 var(--font-body);color:var(--brand);text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.linkbtn:hover{color:var(--brand-hover);text-decoration-thickness:3px}
.soon{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem 1.5rem;border-radius:var(--r-l);background:#FFF6CC;border:1px solid #F5DD7A}
.soon p{margin:0}
.soon-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.9rem;background:#fff;color:#8A5A00}
.soon--info{background:var(--rub-soft);border-color:var(--rub-2)}
.soon--info .soon-icon{color:var(--rub-deep)}

/* Accueil : bento des briques */
.bento--apps .gcard-desc{font-size:var(--step--1)}
@media (min-width:68em){.bento--apps{grid-template-areas:"a a b c" "a a d e"}.bento--apps .bento-1{grid-area:a}}
.bento--apps .gcard--xl .gcard-title{max-width:12ch}
.bento--apps .gcard-meta{font-weight:800;color:var(--ink)}

/* Bandeau « passer à l'action » (fin de guide) */
.actband{margin-top:var(--section)}
.actband-in{background:var(--surface);border:2px dashed var(--line-2);border-radius:var(--r-xl);padding:clamp(1.25rem,1rem + 2vw,2.5rem)}
.actband-title{display:flex;align-items:center;gap:.6rem;font-size:var(--step-2);margin:0 0 1.25rem}
.actband-title .ic{color:var(--coral)}
.acts{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.acts li{display:flex}
.act{flex:1;display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem 1rem 1rem;border-radius:var(--r-l);background:var(--rub-soft);color:var(--ink);text-decoration:none;border:2px solid transparent;transition:transform .2s var(--ease),border-color .2s}
.act:hover{transform:translateY(-3px);border-color:var(--rub-2);color:var(--ink)}
.act-icon{display:grid;place-items:center;flex:none;width:3.25rem;height:3.25rem;border-radius:1rem;background:var(--rub);color:var(--rub-deep)}
.act-icon .ic{width:1.6rem;height:1.6rem}
.act-text{flex:1;min-width:0;display:grid;gap:.15rem}
.act-title{font-family:var(--font-head);font-weight:800;font-size:var(--step-0);line-height:1.2}
.act:hover .act-title{text-decoration:underline}
.act-desc{font-size:var(--step--1);color:var(--ink-2);line-height:1.45}
.act-go{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:50%;background:#fff}
.related .actband,.related+.actband{margin-top:0}
.guide+.actband{margin-top:clamp(2.5rem,2rem + 2vw,4rem)}

/* Page « Tous nos guides » */
.guides-group+.guides-group{margin-top:clamp(2.5rem,2rem + 2vw,4rem)}
.guides-group-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;margin-bottom:1.25rem}
.guides-group-head h2{margin:0}

/* Listes filtrables */
.listing{display:grid;gap:1.5rem;align-items:start}
@media (min-width:68em){.listing{grid-template-columns:19rem minmax(0,1fr);gap:2.5rem}.filters{position:sticky;top:7.5rem}}
.listing-main{min-width:0}
.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:1.25rem;box-shadow:var(--sh-1);display:grid;gap:1.25rem}
.filters-title{display:flex;align-items:center;gap:.5rem;margin:0;font-family:var(--font-head);font-weight:800;font-size:var(--step-1)}
.filters-title .ic{color:var(--rub-deep)}
.fgroup{border:0;margin:0;padding:0;min-width:0}
.fgroup legend{font-weight:700;margin-bottom:.6rem;padding:0;font-size:var(--step--1)}
.fchips{display:flex;flex-wrap:wrap;gap:.5rem}
.fchip{position:relative;display:inline-flex}
.fchip input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%;cursor:pointer}
.fchip label{display:inline-flex;align-items:center;min-height:3rem;padding:.4rem 1.1rem;border-radius:var(--r-pill);background:var(--sand);border:2px solid var(--line-2);font-weight:700;font-size:var(--step--1);cursor:pointer;line-height:1.2;transition:background-color .2s,border-color .2s}
.fchip input:hover+label{border-color:var(--ink)}
.fchip input:checked+label{background:var(--ink);border-color:var(--ink);color:#fff}
.fchip input:checked+label::before{content:"";width:.5rem;height:.85rem;border:solid currentColor;border-width:0 .18rem .18rem 0;transform:rotate(45deg);margin:-.2rem .6rem 0 -.1rem}
.fchip input:focus-visible+label{outline:3px solid var(--focus);outline-offset:3px}
.filters-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--line);padding-top:1rem}
.filters-count{margin:0;font-weight:800}
.empty--inline{margin-top:1rem;padding:1.25rem 1.5rem;border-radius:var(--r-l);background:var(--rub-soft);border:2px dashed var(--rub-2)}
.empty--inline p{margin:0}

/* Bons plans : cartes */
.bp-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,18.5rem),1fr))}
.bp-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,18.5rem),1fr))}
.bp-li{display:flex}
.bp-li[hidden]{display:none}
.bp{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:1.35rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
.bp:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--rub-2);color:var(--ink)}
.bp-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}
.bp-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.95rem;background:var(--rub);color:var(--rub-deep);flex:none}
.bp-icon .ic{width:1.5rem;height:1.5rem}
.bp-cat{font-size:1rem;font-weight:700;color:var(--ink-2)}
.bp-title{font-size:var(--step-1);margin:0;line-height:1.15}
.bp:hover .bp-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}
.bp-deal{align-self:flex-start;font-family:var(--font-head);font-weight:800;font-size:var(--step-0);line-height:1.25;padding:.45rem .9rem;border-radius:var(--r-m);background:var(--rub-soft);box-shadow:inset 0 0 0 2px var(--rub-2)}
.bp-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:1rem;font-weight:700;color:var(--ink-2);margin-top:.25rem}
.bp-meta>span{display:inline-flex;align-items:center;gap:.35rem}
.bp-meta .ic{color:var(--rub-deep)}
.bp-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:.75rem}
.bp-check{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:700;color:#105C38}
.bp .gcard-go{background:var(--rub)}
.bp:hover .gcard-go{background:var(--ink);color:#fff}

/* Fiches (bon plan, événement, annonce) */
.fiche{display:grid;gap:2rem;align-items:start}
@media (min-width:62em){.fiche{grid-template-columns:minmax(0,1fr) 21rem;gap:clamp(2rem,4vw,4rem)}.fiche-aside{position:sticky;top:7.5rem}}
.fiche-main{min-width:0;max-width:var(--measure)}
.deal{padding:1.5rem;border-radius:var(--r-l);background:var(--rub);margin-bottom:1.5rem}
.deal-kicker{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 .4rem;font-weight:800;font-size:1rem;letter-spacing:.06em;text-transform:uppercase}
.deal-kicker .ic{color:var(--rub-deep)}
.deal-text{margin:0;font-family:var(--font-head);font-weight:800;font-size:var(--step-2);line-height:1.15;letter-spacing:-.02em}
.facts{display:grid;gap:.75rem;margin:0 0 1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.facts>div{padding:1rem 1.1rem;border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}
.facts dt{display:flex;align-items:center;gap:.45rem;font-weight:800;font-size:1rem;color:var(--ink-2);margin-bottom:.2rem}
.facts dt .ic{color:var(--rub-deep)}
.facts dd{margin:0;font-weight:700;line-height:1.4}
.srcbox{padding:1.5rem;border-radius:var(--r-l);background:var(--rub-soft);border:2px solid var(--rub-2)}
.srcbox p:last-child{margin-bottom:0}
.srcbox-title{display:flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);margin:0 0 .75rem}
.srcbox-title .ic{color:var(--rub-deep)}
.srcbox-link{font-weight:700;font-size:var(--step-0)}
.srcbox-date{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;border-radius:var(--r-m);background:#fff;font-size:var(--step--1)}
.srcbox-date .ic{color:#157347;margin-top:.15rem}
.srcbox--warn{background:#FFF1E4;border-color:#FFD0AE}
.srcbox--warn .srcbox-title .ic{color:#C2410C}
.howto{max-width:52rem}
.steps{list-style:none;counter-reset:st;margin:0 0 1.25rem;padding:0;display:grid;gap:.75rem}
.steps li{counter-increment:st;position:relative;padding:1rem 1.25rem 1rem 4.25rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.steps li::before{content:counter(st);position:absolute;left:1rem;top:1rem;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:.8rem;background:var(--rub);font-family:var(--font-head);font-weight:800}
.srcfoot{padding:clamp(1.25rem,1rem + 2vw,2rem);border-radius:var(--r-xl);background:var(--sand)}
.srcfoot h2{display:flex;align-items:center;gap:.6rem}
.srcfoot h2 .ic{color:var(--rub-deep)}
.srclist{margin:0;padding-left:1.25rem;display:grid;gap:.35rem;font-size:var(--step--1)}
.srclist a{font-weight:700;overflow-wrap:anywhere}

/* Annuaire des services */
.cfinder{display:grid;gap:.75rem;padding:clamp(1.25rem,1rem + 2vw,2.25rem);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-2)}
.cfinder-label{display:flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1)}
.cfinder-label .ic{color:var(--rub-deep)}
.cfinder-row{display:flex;flex-wrap:wrap;gap:.75rem}
.cfinder-row input{flex:1 1 16rem;min-width:0;min-height:3.75rem;padding:.75rem 1.25rem;font:700 var(--step-1)/1.2 var(--font-body);color:var(--ink);background:var(--bg);border:2px solid var(--ink-2);border-radius:var(--r-pill)}
.cfinder-row input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.cfinder-row .btn{flex:none}
.cfinder p{margin:0}
.cfinder-msg:empty{display:none}
.cfinder-msg{font-weight:700}
.cfinder-sugg{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cfinder-sugg:empty{display:none}
.cfinder-sugg a{display:inline-flex;align-items:center;min-height:3rem;padding:.4rem 1.1rem;border-radius:var(--r-pill);background:var(--rub);color:var(--ink);font-weight:700;text-decoration:none}
.cfinder-sugg a:hover{text-decoration:underline;color:var(--ink)}
.reg-tiles,.prov-tiles{margin-top:1.5rem}
@media (min-width:35em){.prov-tiles .tile,.reg-tiles .tile{min-height:8rem}}
.catpills{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
.catpills li{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.25rem;border-radius:var(--r-l);background:var(--rub-soft);border:1px solid color-mix(in srgb,var(--rub-2) 55%,transparent)}
.catpill-icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:.95rem;background:#fff;color:var(--rub-deep)}
.catpills strong{display:block;font-family:var(--font-head);font-size:var(--step-0)}
.catpill-desc{display:block;font-size:var(--step--1);color:var(--ink-2);line-height:1.45;margin-top:.15rem}
.catpill-n{display:inline-block;margin-top:.5rem;font-size:1rem;font-weight:800;padding:.15rem .7rem;border-radius:var(--r-pill);background:#fff}
.annu-intro>p{max-width:var(--measure)}
.azlist ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.azlist a{display:inline-flex;align-items:center;min-height:2.85rem;padding:.3rem .95rem;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-2);color:var(--ink);font-weight:700;font-size:var(--step--1);text-decoration:none}
.azlist a:hover{border-color:var(--ink);text-decoration:underline;color:var(--ink)}
.cblock{scroll-margin-top:7rem;padding-top:clamp(1.5rem,1rem + 1.5vw,2.25rem);border-top:2px solid var(--line)}
.cblock-title{font-size:var(--step-2);margin-bottom:1rem}
.cblock-alt{font-weight:600;color:var(--ink-2);font-size:.75em}
.cblock--link{display:grid;gap:.25rem}
.cblock--link p{margin:0 0 .5rem}
.svc-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr))}
.svc{display:flex;flex-direction:column;gap:.5rem;padding:1.35rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);scroll-margin-top:7rem}
.svc:target{outline:3px solid var(--brand);outline-offset:3px}
.svc-top{display:flex;align-items:center;gap:.65rem;margin:0}
.svc-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.9rem;background:var(--rub);color:var(--rub-deep);flex:none}
.svc-cat{font-size:1rem;font-weight:800;color:var(--ink-2)}
.svc-name{font-size:var(--step-1);margin:.25rem 0 .25rem;line-height:1.15}
.svc-lines{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.svc-lines li{display:flex;gap:.6rem;align-items:flex-start;line-height:1.45;min-width:0}
.svc-lines li>span,.svc-lines li>a{min-width:0;overflow-wrap:anywhere}
.svc-lines .ic{color:var(--rub-deep);margin-top:.15rem}
.svc-lines a{font-weight:700;display:inline-flex;align-items:center;min-height:2.75rem;margin-block:-.6rem}
.svc-zone{display:flex;gap:.5rem;align-items:flex-start;margin:0;font-size:var(--step--1);font-weight:700;color:var(--ink-2)}
.svc-zone .ic{color:var(--rub-deep);margin-top:.15rem}
.svc-note{margin:0;font-size:var(--step--1);color:var(--ink-2)}
.svc-src{margin:auto 0 0;padding-top:.75rem;border-top:1px solid var(--line);font-size:1rem;color:var(--ink-2)}
.svc-src a{color:var(--ink-2);overflow-wrap:anywhere}
.catblock{scroll-margin-top:7rem}
.catblock h2{display:flex;align-items:center;gap:.6rem;font-size:var(--step-2)}
.catblock h2 .ic{color:var(--rub-deep)}
.catblock-desc{max-width:var(--measure);color:var(--ink-2)}
.mr-note{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem 1.5rem;border-radius:var(--r-l);background:#FFF0E8;border:1px solid #FFD0AE;max-width:56rem}
.mr-note p{margin:0}
.mr-note-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.9rem;background:#fff;color:#C2410C}
.mr-note a.ext{font-weight:700}

/* Agenda */
.ev-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.ev-li[hidden]{display:none}
.ev{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem 1rem 1rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink);text-decoration:none;transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}
.ev:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--rub-2);color:var(--ink)}
.ev-date{display:grid;place-items:center;align-content:center;flex:none;width:5rem;height:5.25rem;border-radius:1.1rem;background:var(--rub);line-height:1}
.ev-day{font-family:var(--font-head);font-weight:800;font-size:2rem;letter-spacing:-.03em}
.ev-mon{font-weight:800;font-size:1rem;margin-top:.2rem}
.ev-body{flex:1;min-width:0;display:grid;gap:.25rem}
.ev-type{justify-self:start;font-size:1rem;font-weight:800;padding:.1rem .65rem;border-radius:var(--r-pill);background:var(--rub-soft);box-shadow:inset 0 0 0 1.5px var(--rub-2)}
.ev-title{font-size:var(--step-1);margin:.1rem 0;line-height:1.2}
.ev:hover .ev-title{text-decoration:underline}
.ev-meta{display:flex;gap:.45rem;align-items:flex-start;font-size:var(--step--1);color:var(--ink-2);font-weight:600;line-height:1.4}
.ev-meta .ic{color:var(--rub-deep);margin-top:.12rem}
.ev .gcard-go{background:var(--rub)}
@media (max-width:35em){.ev{align-items:flex-start;gap:.9rem;padding:1rem}.ev-date{width:4rem;height:4.25rem}.ev-day{font-size:1.6rem}.ev .gcard-go{display:none}}
.facts--ev{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.ev-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* État vide */
.empty{position:relative;text-align:center;max-width:46rem;margin-inline:auto;padding:clamp(2rem,1.5rem + 3vw,3.5rem) clamp(1.25rem,1rem + 3vw,3rem);border-radius:var(--r-xl);background:var(--rub-soft);border:2px dashed var(--rub-2)}
.empty-icon{display:inline-grid;place-items:center;width:5rem;height:5rem;border-radius:1.6rem;background:var(--rub);color:var(--rub-deep);margin-bottom:1rem;transform:rotate(-6deg)}
.empty-icon .ic{width:2.4rem;height:2.4rem}
.empty-title{font-size:var(--step-3);margin-bottom:.5rem}
.empty p{max-width:52ch;margin-inline:auto}
.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1.5rem 0 0}

/* Entraide */
.ecats{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.ecats li{display:flex}
.ecat{flex:1;display:flex;flex-direction:column;gap:.35rem;padding:1.35rem;border-radius:var(--r-l);background:var(--rub)}
.ecat-icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:1rem;background:#fff;color:var(--rub-deep);margin-bottom:.5rem}
.ecat-icon .ic{width:1.6rem;height:1.6rem}
.ecat-title{font-size:var(--step-1);margin:0}
.ecat-desc{margin:0;font-size:var(--step--1);line-height:1.5}
.ecat-n{margin:auto 0 0;padding-top:.75rem;font-weight:800;font-size:1rem}
.ad-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}
.ad{display:flex;flex-direction:column;gap:.5rem;padding:1.35rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink);text-decoration:none}
.ad-top{display:flex;align-items:center;gap:.65rem}
.ad-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.9rem;background:var(--rub);color:var(--rub-deep)}
.ad-cat{font-size:1rem;font-weight:800;color:var(--ink-2)}
.ad-title{font-family:var(--font-head);font-weight:800;font-size:var(--step-1);line-height:1.15;letter-spacing:-.015em;margin:0;overflow-wrap:anywhere}
.ad-text{font-size:var(--step--1);line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.ad-meta{display:flex;align-items:center;gap:.45rem;font-size:1rem;font-weight:700;color:var(--ink-2)}
.ad-meta .ic{color:var(--rub-deep)}
.ad--preview{box-shadow:var(--sh-2);border:2px solid var(--rub-2)}
.ad--preview .is-empty{color:var(--ink-2);font-style:italic;font-weight:400}
.depose{display:grid;gap:2rem;align-items:start}
@media (min-width:68em){.depose{grid-template-columns:minmax(0,1fr) 22rem;gap:3rem}.depose-aside{position:sticky;top:7.5rem}}
.preview-title{display:flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);margin:0 0 .75rem}
.preview-title .ic{color:var(--coral)}
.depose-form{margin-top:0}
.contact .fset+.fset{padding-top:1.5rem;border-top:1px solid var(--line)}

/* Outils */
.tool{display:grid;gap:1.25rem}
.tool-intro{max-width:var(--measure);margin:0}
.tool-bar{display:flex;flex-wrap:wrap;gap:.6rem}
.example-flag{display:flex;gap:.75rem;align-items:flex-start;margin:0;padding:1rem 1.25rem;border-radius:var(--r-m);background:#FFF6CC;border:2px solid #E0B400;font-size:var(--step--1)}
.example-flag[hidden]{display:none}
.example-flag .ic{color:#8A5A00;margin-top:.15rem}
.tool-grid{display:grid;gap:1.5rem;align-items:start}
@media (min-width:68em){.tool-grid{grid-template-columns:minmax(0,1fr) 24rem;gap:2.5rem}.tool-result{position:sticky;top:7.5rem}}
.tool-form{display:grid;gap:2rem;padding:clamp(1.25rem,1rem + 2vw,2.25rem);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);min-width:0}
.tool-form .fset+.fset{padding-top:2rem;border-top:1px solid var(--line)}
.tool-form>.small{margin:0}
.tool-result{display:grid;gap:1rem;min-width:0}
.result-card{padding:1.5rem;border-radius:var(--r-xl);background:var(--rub);display:grid;gap:1rem}
.result-title{display:flex;align-items:center;gap:.5rem;font-size:var(--step-2);margin:0}
.result-title .ic{color:var(--rub-deep)}
.result-empty{margin:0;font-weight:700}
.result-lines{margin:0;display:grid;gap:.15rem}
.result-lines>div{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.6rem 0;border-bottom:1px solid rgba(30,26,46,.12)}
.result-lines dt{font-weight:700}
.result-lines dd{margin:0;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);font-variant-numeric:tabular-nums;white-space:nowrap}
.result-lines .result-sub{padding:.15rem 0 .15rem 1rem;border-bottom:0}
.result-lines .result-sub dt,.result-lines .result-sub dd{font-size:1rem;font-weight:700;color:var(--ink-2);font-family:var(--font-body)}
.result-bars{display:grid;gap:.5rem}
.rbar{display:grid;grid-template-columns:5.5rem minmax(0,1fr);align-items:center;gap:.75rem;font-weight:700;font-size:1rem}
.rbar-t{height:1rem;border-radius:var(--r-pill);background:rgba(255,255,255,.7);overflow:hidden}
.rbar-f{display:block;height:100%;width:0;border-radius:inherit;transition:width .4s var(--ease)}
.rbar-f--cout{background:var(--coral-deep)}
.rbar-f--rev{background:var(--brand)}
.result-big{display:grid;gap:.15rem;padding:1.1rem 1.25rem;border-radius:var(--r-l);background:#fff}
.result-big-l{font-weight:700}
.result-big-n{font-family:var(--font-head);font-weight:800;font-size:var(--step-4);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.result-big.is-neg{box-shadow:inset 6px 0 0 #B3261E}
.result-big.is-neg .result-big-n{color:#9B1C15}
.result-big.is-pos{box-shadow:inset 6px 0 0 #157347}
.result-big.is-pos .result-big-n{color:#105C38}
.result-year,.result-savings{margin:0;font-weight:700}
.result-year:empty,.result-savings:empty{display:none}
.aides{padding:1.5rem;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line)}
.aides[hidden]{display:none}
.aides-title{display:flex;align-items:center;gap:.5rem;font-size:var(--step-1);margin:0 0 1rem}
.aides-title .ic{color:var(--rub-deep)}
.aides-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.6rem}
.aides-list li{display:grid;gap:.1rem;padding:.75rem 1rem;border-radius:var(--r-m);background:var(--rub-soft)}
.aides-list a{font-weight:700;line-height:1.35}
.aides-ou{font-size:1rem;color:var(--ink-2)}
.aides .small{margin:0}
/* Comparateur */
.orient-progress{margin:0;font-weight:800;padding:.5rem 1rem;border-radius:var(--r-pill);background:var(--rub-soft);justify-self:start}
.orient-form{gap:1.5rem}
.oq{border:0;margin:0;padding:0 0 1.5rem;min-width:0;border-bottom:1px solid var(--line)}
.oq-q{display:flex;gap:.75rem;align-items:flex-start;padding:0;margin-bottom:.85rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);letter-spacing:-.015em;line-height:1.25}
.oq-n{display:grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;border-radius:.8rem;background:var(--rub);font-size:1.1rem;margin-top:-.1rem}
.oq-a{display:grid;gap:.5rem}
.oq-opt{position:relative;display:flex}
.oq-opt input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%;cursor:pointer}
.oq-opt label{flex:1;display:flex;align-items:center;gap:.85rem;min-height:3.25rem;padding:.6rem 1rem;border-radius:var(--r-m);border:2px solid var(--line-2);background:var(--bg);font-weight:600;cursor:pointer;line-height:1.35}
.oq-opt label::before{content:"";flex:none;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--ink-2);background:#fff;box-shadow:inset 0 0 0 4px #fff}
.oq-opt input:hover+label{border-color:var(--ink)}
.oq-opt input:checked+label{border-color:var(--brand);background:var(--brand-soft);font-weight:700}
.oq-opt input:checked+label::before{background:var(--brand);border-color:var(--brand)}
.oq-opt input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.orient-results{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.orient-results:empty{display:none}
.or-item{padding:1.1rem 1.25rem;border-radius:var(--r-l);background:rgba(255,255,255,.75)}
.or-item.is-top{background:#fff;box-shadow:inset 0 0 0 3px var(--ink)}
.or-rank{margin:0 0 .2rem;font-size:1rem;font-weight:800;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}
.or-title{margin:0 0 .5rem;font-family:var(--font-head);font-weight:800;font-size:var(--step-1);line-height:1.15}
.or-why{margin:0 0 .5rem;padding-left:1.1rem;font-size:var(--step--1);line-height:1.45}
.or-note{margin:0 0 .5rem;font-size:var(--step--1);font-weight:700;color:#7A3410}
.or-link{margin:0}
.or-link a{font-weight:700;display:inline-flex;min-height:2.75rem;align-items:center}
.orient-extra{padding-top:.5rem}
.orient-extra[hidden]{display:none}
.orient-extra-t{margin:0 0 .4rem;font-weight:800}
.orient-extra ul{margin:0;padding-left:1.1rem;display:grid;gap:.25rem}
.orient-extra a{font-weight:700}
/* Checklists */
.cl-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.cl-nav a{display:flex;align-items:center;gap:.65rem;min-height:3.5rem;padding:.6rem 1.1rem;border-radius:var(--r-m);background:var(--rub-soft);border:2px solid transparent;color:var(--ink);font-weight:700;text-decoration:none}
.cl-nav a:hover{border-color:var(--rub-2);color:var(--ink);text-decoration:underline}
.cl-nav .ic{color:var(--rub-deep)}
.cl-page{max-width:52rem}
.cl-page h2{scroll-margin-top:7rem}

/* Recherche */
.searchbox{display:grid;gap:.75rem}
.searchbox-label{font-family:var(--font-head);font-weight:800;font-size:var(--step-1)}
.searchbox-row{position:relative;display:flex;flex-wrap:wrap;gap:.75rem}
.searchbox-ic{position:absolute;left:1.1rem;top:1.15rem;color:var(--ink-2);pointer-events:none}
.searchbox-ic .ic{width:1.5rem;height:1.5rem}
.searchbox input{flex:1 1 16rem;min-width:0;min-height:3.75rem;padding:.75rem 1.25rem .75rem 3.25rem;font:700 var(--step-1)/1.2 var(--font-body);color:var(--ink);background:var(--surface);border:2px solid var(--ink-2);border-radius:var(--r-pill)}
.searchbox input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.searchbox .small{margin:0}
.search-status{font-weight:800;margin:1.5rem 0 1rem}
.search-status:empty{display:none}
.results{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.result{display:grid;gap:.2rem;padding:1rem 1.25rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:inset 5px 0 0 var(--rub-2)}
.result:hover{border-color:var(--rub-2);color:var(--ink)}
.result-k{justify-self:start;font-size:1rem;font-weight:800;padding:.05rem .65rem;border-radius:var(--r-pill);background:var(--rub)}
.result-t{font-family:var(--font-head);font-weight:800;font-size:var(--step-1);line-height:1.2}
.result:hover .result-t{text-decoration:underline}
.result-d{font-size:var(--step--1);color:var(--ink-2);line-height:1.45}
.callout-lite{padding:1rem 1.25rem;border-radius:var(--r-m);background:var(--sand)}
/* Lettre : page */
.nl-points{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.nl-points li{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.25rem;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.nl-ic{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.9rem;background:var(--sand-2)}
.nf-actions{display:flex;flex-wrap:wrap;gap:.75rem}
/* pied de page : 5 colonnes */
@media (min-width:68em){.ftr-grid{grid-template-columns:1.2fr 1fr 1fr 1fr 1.15fr;gap:2rem}}
.ftr-col a{line-height:1.3}

/* 19. Contraste élevé et impression des briques ------------------------------------------ */
html[data-contrast=high] :is(.search-btn,.menu-rubs a,.news-in,.news-kicker,.soon,.actband-in,.act,.act-go,.filters,.fchip label,.bp,.bp-deal,.deal,.facts>div,.srcbox,.srcbox-date,.steps li,.srcfoot,.cfinder,.cfinder-row input,.cfinder-sugg a,.catpills li,.catpill-n,.azlist a,.svc,.mr-note,.ev,.ev-date,.ev-type,.empty,.empty--inline,.ecat,.ad,.example-flag,.tool-form,.result-card,.result-big,.aides,.aides-list li,.orient-progress,.oq-opt label,.or-item,.cl-nav a,.searchbox input,.result,.result-k,.nl-points li,.callout-lite){background:#000!important;color:#fff;border:2px solid #fff;box-shadow:none}
html[data-contrast=high] :is(.bp-icon,.svc-icon,.act-icon,.catpill-icon,.ecat-icon,.ad-icon,.empty-icon,.soon-icon,.mr-note-icon,.fset-num,.oq-n,.nl-ic){background:#000!important;color:#FFE600;border:2px solid #FFE600}
html[data-contrast=high] .steps li::before{background:#000;color:#FFE600;border:2px solid #FFE600}
html[data-contrast=high] :is(.bp-cat,.bp-meta,.bp-check,.svc-cat,.svc-src,.svc-src a,.svc-zone,.ev-meta,.ad-cat,.ad-meta,.act-desc,.catpill-desc,.cblock-alt,.result-d,.aides-ou,.fset-sub,.or-rank,.news-lead,.money-u,.result-lines .result-sub dt,.result-lines .result-sub dd){color:#fff}
html[data-contrast=high] :is(.bp,.act,.ev,.result,.azlist a,.cl-nav a,.cfinder-sugg a):hover{border-color:#FFE600;outline:2px solid #FFE600}
html[data-contrast=high] .fchip input:checked+label,html[data-contrast=high] .oq-opt input:checked+label{background:#FFE600!important;color:#000;border-color:#FFE600}
html[data-contrast=high] .oq-opt label::before,html[data-contrast=high] .consent-label::before{background:#000;border-color:#fff;box-shadow:none}
html[data-contrast=high] .oq-opt input:checked+label::before{background:#000;border-color:#000}
html[data-contrast=high] .consent-box:checked+.consent-label::before{background:#FFE600;border-color:#FFE600}
html[data-contrast=high] .consent-label::after{border-color:#000}
html[data-contrast=high] .rubnav a[aria-current=true],html[data-contrast=high] .menu-tile[aria-current=true],html[data-contrast=high] .menu-rubs a[aria-current]{background:#000!important;color:#fff;border-color:#FFE600;outline:2px solid #FFE600}
html[data-contrast=high] .result-big.is-neg .result-big-n,html[data-contrast=high] .result-big.is-pos .result-big-n,html[data-contrast=high] .or-note{color:#FFE600}
html[data-contrast=high] .rbar-t{background:#000;outline:2px solid #fff}
html[data-contrast=high] .rbar-f--cout{background:#FFE600}
html[data-contrast=high] .rbar-f--rev{background:#fff}
html[data-contrast=high] .or-item.is-top{outline:3px solid #FFE600}
html[data-contrast=high] .field-err{background:#000;color:#FFE600;border:2px solid #FFE600}
html[data-contrast=high] .news-in::before{display:none}
html[data-contrast=high] .news--footer .field input{background:#000}
html[data-contrast=high] .result-lines>div{border-color:#fff}
@media print{
  .news,.actband,.tool-bar,.filters,.cfinder,.search-btn,.soon,.depose-aside,.example-flag:not([hidden]){display:none!important}
  .example-flag:not([hidden]){display:flex!important;border:1pt solid #000}
  .listing,.fiche,.tool-grid,.depose{display:block}
  .tool-form,.result-card,.aides,.bp,.svc,.ev,.srcbox,.facts>div,.deal{box-shadow:none!important;border:1pt solid #000!important;background:#fff!important;break-inside:avoid}
  .tool-result{margin-top:10pt}
  .oq-opt label{border:1pt solid #000;background:#fff!important}
  .oq-opt input:checked+label{font-weight:800;border-width:2pt}
  .money input{border:1pt solid #000}
  .banner--app .banner-card{background:none!important;padding:0 0 8pt;border-bottom:2pt solid #000;border-radius:0;display:block}
}
.cblock-cov{display:flex;gap:.5rem;align-items:flex-start;margin:1rem 0 0;font-size:var(--step--1);color:var(--ink-2)}
.cblock-cov .ic{color:var(--rub-deep);margin-top:.15rem}
.cblock-cov a{font-weight:700}
/* recherche : dans la barre d'outils sur mobile, dans l'en-tête ailleurs */
.search-btn--bar{display:none}
@media (max-width:47.99em){
  .hdr .search-btn{display:none}
  .menu-btn{margin-left:auto}
}
html[data-contrast=high] .search-btn--bar{background:#000;border:2px solid #fff;color:#FFE600}
.acts li,.act,.act-text,.ev,.ev-body,.bp,.svc,.ad,.result,.or-item,.oq,.fgroup,.fchips,.fchip{min-width:0}
.act-title,.ev-title,.bp-title,.svc-name,.result-t,.cblock-title{overflow-wrap:break-word}
.fchip{max-width:100%}
.fchip label{max-width:100%;overflow-wrap:anywhere}
.cfinder,.searchbox,.news-form,.tool,.tool-form,.fset,.result-card{grid-template-columns:minmax(0,1fr)}
.cfinder-row input,.searchbox input{flex-basis:12rem}
/* en-tête : avec un texte agrandi, le menu compact prend le relais plus tôt */
.rubnav a{white-space:nowrap}
@media (min-width:75em) and (max-width:89.99em){html[data-size="1"] .rubnav{display:none}html[data-size="1"] .menu-btn{display:inline-flex}html[data-size="1"] .hdr .search-btn{margin-left:auto}}
@media (min-width:75em) and (max-width:104.99em){html[data-size="2"] .rubnav{display:none}html[data-size="2"] .menu-btn{display:inline-flex}html[data-size="2"] .hdr .search-btn{margin-left:auto}}
@media (min-width:75em){html[data-size="1"] .search-btn-txt,html[data-size="2"] .search-btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
.ev-list,.results,.orient-results,.aides-list,.steps,.nl-points,.empty{grid-template-columns:minmax(0,1fr)}
@media (max-width:61.99em){.fiche{grid-template-columns:minmax(0,1fr)}}
@media (max-width:67.99em){.depose,.tool-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:67.99em){.listing{grid-template-columns:minmax(0,1fr)}}
@media (max-width:47.99em){.bento--apps .gcard-art{display:none}.bento--apps .gcard{padding:1.25rem}.bento--apps .gcard--xl .gcard-title{font-size:var(--step-2)}}
.menu-search{margin:0 0 1.5rem}
.menu-search-row{display:flex;gap:.5rem}
.menu-search input{flex:1;min-width:0;min-height:3.5rem;padding:.6rem 1.1rem;font:700 var(--step-0)/1.2 var(--font-body);color:var(--ink);background:var(--surface);border:2px solid var(--ink-2);border-radius:var(--r-pill)}
.menu-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.menu-search .btn{padding:0;width:3.5rem;flex:none}
html[data-contrast=high] .menu-search input{background:#000;color:#fff;border-color:#fff}
@media (max-width:35em){.act-go{display:none}.act{padding:1rem}}
.jump{margin:0}
.jump .ic{transform:rotate(90deg)}
@media (min-width:68em){.jump{display:none!important}}
.result-title{scroll-margin-top:7rem}
.deal-detail{margin:.6rem 0 0;font-size:var(--step--1);line-height:1.5;color:var(--ink)}
.ecat-n{color:var(--ink-2)}
.ecat-link{margin:.5rem 0 0}
.ecat-link a{display:inline-flex;align-items:center;gap:.4rem;min-height:3rem;font-weight:700;color:var(--ink)}
.ecat-link a:hover{color:var(--ink);text-decoration-thickness:3px}
html[data-contrast=high] .ecat-link a{color:#FFE600}
.field-grid{align-items:end}
.news--page .news-art{display:none}
@media (min-width:56em){.news--page .news-in{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}}
html[data-contrast=high] .field select{background-repeat:no-repeat;background-position:right 1rem center;background-size:1.4rem}
.ev-title,.bp-title,.svc-name,.act-title,.ad-title{hyphens:auto;-webkit-hyphens:auto}.ev-title{overflow-wrap:anywhere}
.ev-body,.act-text,.facts>div,.result-big,.aides-list li,.result,.cblock--link{grid-template-columns:minmax(0,1fr)}
.ev-meta>span,.bp-meta>span,.ad-meta>span,.svc-zone>span{min-width:0;overflow-wrap:anywhere}
.svc-lines a,.azlist a,.or-link a,.cfinder-sugg a,.more-link{min-height:3rem}
