:root{--bg:#ffffff;--ink:#141414;--ink2:#4a4a4a;--step:#f3f4f1;--step2:#e8ebe4;--green:#0a7d3e;--green-ink:#ffffff;--green-soft:#e6f2ea;
--fs:1.125rem;--fs-s:1rem;--fs-l:1.375rem;--fs-h2:clamp(1.9rem,1.4rem + 1.6vw,2.75rem);--fs-h1:clamp(1.5rem,1rem + 3.2vw,4.25rem);--fs-big:clamp(3.5rem,2.6rem + 3vw,5.5rem);
--m:clamp(20px,4vw,56px);--max:1240px;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 var(--fs)/1.6 "Public Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:600;letter-spacing:-.015em;line-height:1.05}
.w{max-width:var(--max);margin:0 auto;padding-left:var(--m);padding-right:var(--m)}
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px}
.brand{font-family:"Newsreader",serif;font-weight:600;font-size:1.25rem;text-decoration:none}
.top nav{display:flex;gap:28px;font-size:var(--fs-s)}.top nav a{text-decoration:none;color:var(--ink2)}.top nav a:hover{color:var(--ink)}
.montage{display:grid;grid-template-columns:1.4fr 1fr;height:min(68vh,720px)}
.montage img{width:100%;height:100%;object-fit:cover}
.head{padding-top:48px}
.head h1{font-size:var(--fs-h1);max-width:22ch}
.head p{font-size:var(--fs-l);line-height:1.45;max-width:46ch;margin-top:20px;color:var(--ink)}
.btn{display:inline-block;background:var(--green);color:var(--green-ink);font:600 var(--fs-s)/1 "Public Sans",sans-serif;padding:16px 24px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s var(--ease),background-color .2s}
.btn:active{transform:scale(.97)}
@media(hover:hover){.btn:hover{background:#08692f}}
.btn-2{background:var(--ink);}
@media(hover:hover){.btn-2:hover{background:#333}}
section{padding-top:clamp(88px,10vw,140px)}
h2{font-size:var(--fs-h2);margin-bottom:20px;max-width:24ch}
.lead{font-size:var(--fs-l);line-height:1.45;max-width:52ch}
p{max-width:60ch}
.muted{color:var(--ink2)}
/* podium */
.podium{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px;margin-top:8px;align-items:stretch}
.pod{background:var(--step);padding:32px;display:flex;flex-direction:column;gap:14px}
.pod.win{background:var(--green-soft)}
.pod h3{font-size:1.6rem}
.pod.win h3 span{color:var(--green)}
.pod .note{font-family:"Newsreader",serif;font-weight:600;font-size:var(--fs-big);line-height:.9;letter-spacing:-.03em}
.pod .note small{font-size:.35em;letter-spacing:0;color:var(--ink2)}
.cost{font-size:var(--fs-l)}.cost b{font-weight:600}
.cs{font-size:var(--fs-s);color:var(--ink2)}
.pod ul{list-style:none;display:grid;gap:6px}
.pod li{padding-left:22px;position:relative}
.pod li::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:10px;border-radius:50%;background:var(--green)}
.pod li.lim::before{background:var(--ink2);border-radius:0;height:3px;top:.75em}
.pod .btn{margin-top:auto;align-self:flex-start}
/* intro */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.intro .txt p+p{margin-top:16px}
.intro img{width:100%;aspect-ratio:4/5;object-fit:cover}
.refs{font-size:var(--fs-s);color:var(--ink2);margin-top:20px}
/* calculateur + classement */
.ctl{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;margin-top:28px;background:var(--step);padding:24px}
.ctl label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-s);color:var(--ink2)}
.ctl label[hidden]{display:none}
.ctl select{font:400 var(--fs)/1.2 "Public Sans",sans-serif;background:#fff;color:var(--ink);border:0;padding:12px 14px;min-width:200px}
.seg{display:flex;gap:6px}
.chip{font:500 var(--fs-s)/1 "Public Sans",sans-serif;padding:13px 18px;border:0;background:#fff;color:var(--ink);cursor:pointer;border-radius:999px;transition:background-color .2s var(--ease),transform .15s var(--ease)}
.chip[aria-pressed=true]{background:var(--ink);color:#fff}
.chip:active{transform:scale(.97)}
.best{font-size:var(--fs-l);line-height:1.4;margin-top:28px;max-width:52ch}
.best strong{color:var(--green)}
.rank{list-style:none;margin-top:24px}
.r{display:grid;grid-template-columns:minmax(0,1fr) 140px 170px;column-gap:28px;align-items:center;padding:24px;margin:0 -24px;cursor:pointer;transition:background-color .2s var(--ease)}
.r+.r{margin-top:4px}
@media(hover:hover){.r:hover{background:var(--step)}}
.r.top{background:var(--green-soft)}
.r .nm{font-family:"Newsreader",serif;font-weight:600;font-size:1.6rem;line-height:1.1}
.r .nm a{text-decoration:none}.r .nm a:hover{text-decoration:underline}
.r .fm{color:var(--ink2);font-size:var(--fs-s);margin-top:4px}
.r .vd{margin-top:8px;max-width:60ch}
.r .sc{font-family:"Newsreader",serif;font-weight:600;font-size:var(--fs-h2);line-height:1;text-align:right}
.r .sc small{font-size:1rem;color:var(--ink2)}
.r .ct{text-align:right;font-size:var(--fs-l);font-weight:600}
.r .ct span{display:block;font-size:var(--fs-s);font-weight:400;color:var(--ink2)}
.r .dt{grid-column:1/-1;margin-top:12px;font-size:var(--fs-s);color:var(--ink2)}
.r .dt[hidden]{display:none}
.r.out{opacity:.4}
.rh{display:grid;grid-template-columns:minmax(0,1fr) 140px 170px;column-gap:28px;padding:0 24px;margin:32px -24px 0;font-size:var(--fs-s);color:var(--ink2)}
.rh span:nth-child(n+2){text-align:right}
details.more{margin-top:32px;background:var(--step);padding:20px 24px}
details.more summary{cursor:pointer;font-weight:600}
details.more ul{list-style:none;margin-top:16px;display:grid;gap:14px}
details.more li b{font-weight:600}
/* profils */
.prof{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;margin-top:40px}
.pf img{width:100%;aspect-ratio:3/2;object-fit:cover}
.pf h3{font-size:1.6rem;margin-top:18px}
.pf p{margin-top:8px}
/* familles */
.tbl{width:100%;border-collapse:collapse;margin-top:28px;font-size:var(--fs-s)}
.tbl th,.tbl td{padding:14px 16px;text-align:left;vertical-align:top}
.tbl thead th{background:var(--ink);color:#fff;font-weight:600}
.tbl tbody tr:nth-child(odd){background:var(--step)}
.tbl td.num,.tbl th.num{text-align:right;white-space:nowrap}
.scroll{overflow-x:auto}
.yes{color:var(--green);font-weight:600}
/* chiffres */
.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}
.fig b{display:block;font-family:"Newsreader",serif;font-weight:600;font-size:var(--fs-h2);line-height:1}
.fig span{display:block;margin-top:8px;color:var(--ink2)}
.faq{columns:2;column-gap:56px;margin-top:28px}
.faq p{break-inside:avoid;margin-bottom:20px}.faq strong{font-weight:600}
.src{font-size:var(--fs-s);color:var(--ink2);margin-top:24px;max-width:78ch}
.foot{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:baseline;padding-top:120px;padding-bottom:32px;font-size:var(--fs-s);color:var(--ink2)}
.foot nav{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.foot nav a{color:var(--ink)}
.foot .rr{justify-self:end}
.credits{font-size:var(--fs-s);color:var(--ink2);padding-bottom:40px;max-width:78ch}.credits a{color:var(--ink)}
/* pages intérieures */
.page{max-width:1000px}
.crumb{font-size:var(--fs-s);color:var(--ink2);margin-top:24px}
.verdict{display:grid;grid-template-columns:auto auto 1fr;gap:28px 40px;align-items:end;margin-top:32px;background:var(--step);padding:28px}
.verdict.win{background:var(--green-soft)}
.verdict .note{font-family:"Newsreader",serif;font-weight:600;font-size:var(--fs-big);line-height:.9}
.verdict .note small{font-size:.35em;color:var(--ink2)}

.verdict p{font-size:var(--fs-l);line-height:1.4}
.prose h2{margin-top:72px}.prose p{margin-top:16px}.prose ul{margin:16px 0 0 1.2em}.prose li{margin-top:8px;max-width:64ch}
.fact{width:100%;border-collapse:collapse;margin-top:24px}
.fact th{text-align:left;font-weight:600;padding:14px 16px;width:40%;vertical-align:top}
.fact td{padding:14px 16px;vertical-align:top}
.fact tr:nth-child(odd){background:var(--step)}
.strip{display:grid;grid-template-columns:1fr 1fr;margin-top:96px}
.strip img{width:100%;aspect-ratio:16/9;object-fit:cover}
[data-in]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-in].on{opacity:1;transform:none}
.reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease)}.reveal.on{clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){[data-in],.reveal{opacity:1;transform:none;clip-path:none;transition:none}}
@media(max-width:900px){
 .top nav{display:none}
 .montage{grid-template-columns:1fr;height:auto}.montage img{aspect-ratio:16/10;height:auto}.montage img+img{display:none}
 .podium,.intro,.prof,.figs{grid-template-columns:1fr}
 .r,.rh{grid-template-columns:1fr auto;column-gap:16px;padding:18px 16px;margin-left:-16px;margin-right:-16px}
 .rh{display:none}
 .r .sc{grid-row:1;grid-column:2}
 .r+.r{margin-top:20px}
 .r .ct{grid-column:1/-1;text-align:left;margin-top:8px}
 .faq{columns:1}
 .verdict{grid-template-columns:1fr 1fr}.verdict p{grid-column:1/-1}
 .foot{grid-template-columns:1fr}.foot nav{justify-content:flex-start}.foot .rr{justify-self:start}
 .strip{grid-template-columns:1fr}.strip img+img{display:none}
}
.bd{background:#fff;padding:14px 16px;font-size:var(--fs-s)}
.pod .bd,.verdict .bd,.pf .bd{margin-top:4px}
.pf .bd{background:var(--step);margin-top:14px;max-width:460px}
.ln{display:flex;align-items:baseline;gap:8px;padding:3px 0}
.ln i{flex:1;border-bottom:3px dotted #b9bdb4;transform:translateY(-5px)}
.ln.tot{font-weight:600;margin-top:6px;padding-top:8px;box-shadow:inset 0 3px 0 var(--ink)}
.why{font-size:.875rem;color:var(--ink2);margin:-2px 0 4px;max-width:none}
.r .ct .dl{display:block;font-size:var(--fs-s);font-weight:400;color:var(--ink2);white-space:normal}
.r{grid-template-columns:minmax(0,1fr) 140px 260px}.rh{grid-template-columns:minmax(0,1fr) 140px 260px}
.prose ul,.prose ol{margin-bottom:0}.prose h2{margin-top:96px}
@media(max-width:900px){.head p{font-size:var(--fs)}.r{grid-template-columns:1fr auto}}
.prose ol{columns:2;column-gap:48px;background:var(--step);padding:28px 28px 28px 52px;margin-top:20px}
.prose ol li{break-inside:avoid}
.next{font-family:"Newsreader",serif;font-weight:600;font-size:var(--fs-l);margin-top:40px;max-width:40ch}
.traps{list-style:none;display:grid;gap:18px;margin-top:20px}
.traps li{padding-left:22px;position:relative;max-width:60ch}
.traps li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;background:#b4232c}
.traps a{color:var(--green);font-weight:600;margin-left:4px;white-space:nowrap}
.crits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 56px;margin-top:40px}
.crit h3{font-size:1.6rem;margin-bottom:8px}
.ct3{font-size:1.6rem;margin-top:56px}
.seclist{margin:16px 0 0 1.2em;display:grid;gap:8px}
.howto{background:var(--step);padding:28px 32px;margin-top:24px;max-width:860px}.howto p+p{margin-top:12px}
.grid{border-collapse:collapse;font-size:.875rem;width:100%;table-layout:fixed;margin-top:24px}
.grid th,.grid td{padding:10px 6px;text-align:center;vertical-align:middle;overflow-wrap:anywhere;hyphens:auto}
.grid thead th{font-size:.8125rem;line-height:1.25}
.grid col.c0{width:190px}
.grid thead th{background:var(--ink);color:#fff;font-weight:600;position:sticky;top:0}
.grid thead th:first-child,.grid tbody th{text-align:left}
.grid tbody th{font-weight:600;line-height:1.3}
.grid tbody tr:nth-child(odd){background:var(--step)}
.grid .wt{display:block;font-weight:400;color:var(--ink2);font-size:.875rem}
.grid td.ok{color:var(--green);font-weight:600}.grid td.part{color:#7a5a00;font-weight:600}.grid td.no{color:#b4232c;font-weight:600}.grid td.nc{color:var(--ink2)}
.grid tr.sec th{font-weight:500}
.grid tr.tot{background:var(--green-soft)!important}.grid tr.tot td{font-family:"Newsreader",serif;font-size:1.5rem}
.verd{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;margin-top:32px;align-items:start}
.vmain{background:var(--green-soft);padding:32px}.vmain h3{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.25rem);color:var(--green)}.vmain p{margin-top:14px}
.vside img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-top:24px}.vside h3{font-size:1.6rem}.vside ul{list-style:none;display:grid;gap:12px;margin-top:12px}
.cta{background:var(--ink);color:#fff;padding:40px;margin-top:56px}.cta h3{font-size:2rem}.cta p{margin-top:12px}.cta .btn-2{background:#fff;color:var(--ink);margin-left:8px}
@media(max-width:900px){.crits,.verd{grid-template-columns:1fr}.cta .btn-2{margin:12px 0 0}}
@media(max-width:600px){.head h1{font-size:1.5rem;letter-spacing:-.01em}}
@media(max-width:900px){.grid{table-layout:auto;min-width:980px;font-size:.875rem}.grid thead th:first-child,.grid tbody th{position:sticky;left:0;z-index:1;background:var(--step);min-width:150px}.grid thead th:first-child{background:var(--ink)}.grid tbody tr:nth-child(even) th{background:#fff}}
/* Typo éditoriale (12/11) : texte justifié avec césure, chapô, sources discrètes */
.head p,.lead,.intro .txt p,.crits p,.howto p,.vmain p,.prose p,.r p{text-align:justify;-webkit-hyphens:auto;hyphens:auto;text-wrap:pretty}
.head .chapo{font-family:"Newsreader",serif;font-size:clamp(1.25rem,1.6vw,1.45rem);line-height:1.45;font-weight:500;margin-bottom:16px}
.head p+p{margin-top:14px}
.head .refs,.refs{font-size:.8rem!important;line-height:1.5;color:var(--ink2);text-align:left;margin-top:22px;max-width:60ch}
ol.crits{list-style:none;padding:0;margin-left:0}
.crit h3{display:flex;align-items:baseline;gap:12px}
.crit .cn{font-family:"Newsreader",serif;font-weight:600;font-size:1.6em;line-height:1;color:var(--green);min-width:1.3em;font-variant-numeric:tabular-nums}
.paysage .prose p{max-width:68ch}
/* Uniformisation (13/11) : une seule taille de texte courant, un seul rythme de sections */
.head p,.prose p,.intro .txt p,.traps li,.crits p,.howto p,.vmain p,.vside li,.r p,.rank li,.faq p{font-size:1.125rem;line-height:1.62}
.head .chapo{font-size:1.375rem;line-height:1.45}
.lead{font-size:1.25rem;line-height:1.5;max-width:60ch}
.head p,.prose p,.intro .txt p,.lead{max-width:68ch}
.head h1{max-width:24ch}
section.w h2{margin-bottom:18px}
.intro{align-items:start}
.intro img{aspect-ratio:4/5;max-height:640px}
.crit h3{font-size:1.4rem}
.vside h3,.ct3{font-size:1.4rem}
.head .chapo{max-width:68ch}
