/* Couleurs de lecture, thème sombre et ajustements de largeur. */
:root{--sand:#F3E9D8;--logo-green:#344b2d}
:root{--cat-agences:#24406B;--cat-medias:#A23B2A;--cat-services:#2F6B4A;--cat-annonces:#7A4A26;--cat-boutiques:#7A3B5E;--cat-solaire:#9A5B12;--cat-investir:#1E5F66;--cat-agences-label:var(--cat-agences);--cat-medias-label:var(--cat-medias);--cat-services-label:var(--cat-services);--cat-annonces-label:var(--cat-annonces);--cat-boutiques-label:var(--cat-boutiques);--cat-solaire-label:var(--cat-solaire);--cat-investir-label:var(--cat-investir)}
:root{--body:Arimo,Arial,Helvetica,sans-serif;--serif:var(--body);--paper:#fffefb;--ink:#292e24;--muted:#596052;--blue:#344b2d;--terracotta:#934532;--yellow:#ddb647;--sun:#ddb647;--panel:#f2f4ef;--panel-strong:#edf0e8;--field:#fffefb;--soft-white:#fffefb;--control-border:#747c69;--hover:#f4f0e8;--line:#d5d9ce;--cta:#ddb647;--cta-ink:#302816;--feature:#344b2d;--feature-ink:#fffefb;--feature-muted:#e1e8da;--feature-accent:#f4dc97;--button:#934532;--button-ink:#fffefb;--button-hover:#783725;--ochre:#ddb647;--ochre-ink:#302816;--brick:#934532;--brick-ink:#fffefb;--green:#40562f;--green-ink:#fffefb;color-scheme:light}
body{overflow-wrap:break-word}.header{background:var(--paper)}.header.is-scrolled{border-color:var(--control-border)}
.hero-description p,.directory-row>p,.ranking-body>p,.profile-intro,.profile-points,.prose p,.prose .crit,.guide-txt,.key-points,.domain,.rank-number,.related-section li span,.original-meta,.hero-photo figcaption{color:var(--muted)}
.original-meta{font-size:13px;margin-top:6px}.original-meta:empty{display:none}
.review,.qa[open]{background:var(--panel)}.review p,.qa summary,.qa p{color:var(--ink)}
.footer,.snip pre{background:var(--panel-strong)}.footer-bottom{border-color:var(--control-border)}
.search-form{background:var(--panel)}.search-form>label{color:var(--ink)}.search-form>div{background:var(--field);border-color:var(--control-border)}.search-form input::placeholder,input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.search-form button{background:var(--yellow);color:#302816}.search-form button:hover{background:#e8c86e;color:#302816}
.contribution{background:var(--cta)}.contribution h2,.contribution p,.contribution .text-link{color:var(--cta-ink)}
.category-line:hover,.category-line:focus-visible{background:var(--hover);color:var(--blue)}.category-heading h1 em{color:var(--blue)}
.featured-section{background:var(--feature);border-color:var(--feature);color:var(--feature-ink)}
.editorial-heading h2,.editorial-heading>a,.editorial-list .read-link,.editorial-list .directory-name h3 a:hover{color:var(--feature-accent)}
.editorial-heading p,.editorial-list .directory-row>p,.editorial-list .category-text{color:var(--feature-muted)}.editorial-list .directory-name h3{color:var(--feature-ink)}
.button,.btn,.profile-main>.button{background:var(--button);border-color:var(--button);color:var(--button-ink)}.button:hover,.btn:hover{background:var(--button-hover);border-color:var(--button-hover);color:var(--button-ink)}
.directory-controls select,.proposal-panel input,.proposal-panel select,.proposal-panel textarea,.badge-search input,.compact-search input{border-color:var(--control-border);color:var(--ink)}option{background:var(--paper);color:var(--ink)}.toast{background:var(--ink);color:var(--paper)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,.search-form input:focus-visible{outline:3px solid var(--paper);outline-offset:2px;box-shadow:0 0 0 6px var(--ink);position:relative;z-index:1}
.skip:focus-visible{position:fixed;z-index:200}.search-form input:focus-visible{outline-offset:-4px;box-shadow:inset 0 0 0 2px var(--ink)}
.profile-layout>*,.profile-main,.facts,.facts dl>div>*,.ranking-body,.directory-row>*,.directory-controls>*,.category-line>*,.proposal-layout>*,.section-heading>*,.related-section>*,.related-section li>*{min-width:0}
img,svg{max-width:100%}img{object-fit:contain}a,button,summary{overflow-wrap:anywhere}.wordmark{overflow-wrap:normal}
input,select,textarea{max-width:100%}.ranking-actions{flex-wrap:wrap}.source-list,.facts,.prose,.guide-txt{overflow-wrap:anywhere}.related-section ul{grid-template-columns:minmax(0,1fr)}.footer-bottom{flex-wrap:wrap}.directory-controls{flex-wrap:wrap}.directory-controls label{flex:1;min-width:0}.compact-search{min-width:0;max-width:100%}
@keyframes warm-entry{from{transform:translateY(12px)}to{transform:translateY(0)}}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper:#191e17;--ink:#f6f7ef;--muted:#c5cbbd;--blue:#b9d6a5;--terracotta:#efac94;--panel:#242e20;--panel-strong:#283324;--field:#141a12;--soft-white:#141a12;--control-border:#a2af94;--hover:#333b29;--line:#536047;--cta:#ddb647;--cta-ink:#302816;--feature:#273b21;--button:#efac94;--button-ink:#302116;--button-hover:#f4c3ac;color-scheme:dark}:root:not([data-theme]) .category-heading,:root:not([data-theme]) .profile-header{border-bottom-color:var(--control-border)}:root:not([data-theme]) .key-points li::marker,:root:not([data-theme]) .profile-points li::marker,:root:not([data-theme]) .crumbs li+li:before{color:var(--muted)}:root:not([data-theme]) .search-form:focus-within>div{border-color:var(--blue)}:root:not([data-theme]) .hero-photo img{box-shadow:9px 9px 0 #6b5621}}
@media screen{:root[data-theme="dark"]{--paper:#191e17;--ink:#f6f7ef;--muted:#c5cbbd;--blue:#b9d6a5;--terracotta:#efac94;--panel:#242e20;--panel-strong:#283324;--field:#141a12;--soft-white:#141a12;--control-border:#a2af94;--hover:#333b29;--line:#536047;--cta:#ddb647;--cta-ink:#302816;--feature:#273b21;--button:#efac94;--button-ink:#302116;--button-hover:#f4c3ac;color-scheme:dark}:root[data-theme="dark"] .category-heading,:root[data-theme="dark"] .profile-header{border-bottom-color:var(--control-border)}:root[data-theme="dark"] .key-points li::marker,:root[data-theme="dark"] .profile-points li::marker,:root[data-theme="dark"] .crumbs li+li:before{color:var(--muted)}:root[data-theme="dark"] .search-form:focus-within>div{border-color:var(--blue)}:root[data-theme="dark"] .hero-photo img{box-shadow:9px 9px 0 #6b5621}}
@media(max-width:800px){.category-sidebar nav{display:flex;flex-wrap:wrap;overflow:visible;white-space:normal;margin-right:0;padding-right:0;gap:12px 20px}.category-sidebar a{white-space:normal;padding-block:6px}.directory-controls{display:grid;grid-template-columns:minmax(0,1fr)}.directory-controls label{min-width:0}.directory-controls>p{margin-left:0}.hero-photo figcaption{font-size:12px}.related-section{grid-template-columns:minmax(0,1fr)}.related-section>.text-link{grid-column:auto}}
@media(max-width:600px){.category-line{grid-template-columns:minmax(0,1fr) 66px}.category-line h3{font-size:23px}.category-line p,.category-line>span,.category-text,.read-link,.domain,.category-meta,.crumbs,.verification,.footer-top p,.footer-top nav,.footer-bottom,.editorial-heading>a,.method-section .editorial-note,.form-note,.snip summary span,.directory-section .section-heading .text-button{font-size:12px}.category-line p{line-height:1.8}.hero-photo figcaption{font-size:12px}.search-form>div{flex-wrap:wrap}.search-form input{width:100%;font-size:16px;min-height:48px}.search-form input::placeholder{font-size:14px}.search-form button{width:100%;font-size:14px;min-height:44px;padding:10px 14px}.key-points{font-size:14px}.ranking-actions .text-link,.visit-link{font-size:13px}.facts dl>div{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:14px}.related-section ul{grid-template-columns:minmax(0,1fr)}.directory-section .section-heading{display:block}.directory-section .section-heading .text-button{margin-top:14px}.footer-bottom>a{white-space:normal}.snip pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.ranking-item{grid-template-columns:29px minmax(0,1fr)}.button,.btn{white-space:normal;text-align:center}.menu-toggle{min-width:44px;min-height:44px}}
@media print{:root{--paper:#fff;--ink:#221a14;--muted:#44362a;--blue:#743021;--terracotta:#743021;--panel:#fff;--panel-strong:#fff;--feature:#fff;--feature-ink:#221a14;--feature-muted:#44362a;--feature-accent:#743021;color-scheme:light}.featured-section{background:#fff}}
.needs{margin:0 0 32px;border-block:1px solid var(--line);padding:18px 0}.needs summary{font-family:var(--serif);font-size:24px;cursor:pointer;line-height:1.4}.needs dl{margin:20px 0 0}.needs dl>div{padding:12px 0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;border-top:1px solid var(--line);font-size:14px}.needs dt{color:var(--muted)}.needs dd{margin:0;min-width:0}.needs a{text-decoration:underline;text-underline-offset:4px;color:var(--blue)}@media(max-width:600px){.needs summary{font-size:23px}.needs dl>div{grid-template-columns:minmax(0,1fr);gap:4px}}
.skip{color:#302816}.hero-photo figcaption{font-size:12px}.crumbs li+li:before,.key-points li::marker,.profile-points li::marker{color:var(--muted)}
/* Gorée : blanc chaud, ocre des murs, rouge brique et vert du feuillage. */
h1,h2,h3{font-family:var(--body);font-style:normal;font-weight:700;letter-spacing:-.035em;line-height:1.16}
h1 em,h2 em{font-style:normal;color:inherit;text-decoration:none}.hero h1 em{font-style:normal;color:inherit;text-decoration:none}
.hero .hero-title{font-size:clamp(46px,5.3vw,72px);font-weight:700;line-height:1.04;letter-spacing:-.045em;color:var(--ink);margin:0}
.hero-tagline{font-size:21px;line-height:1.5;color:var(--muted);margin-top:24px;font-weight:400}
.category-line h3,.directory-name h3,.ranking-body h3,.empty-state h3{font-family:var(--body);font-weight:700;letter-spacing:-.025em}
.search-form>label,.needs summary{font-family:var(--body);font-weight:600;letter-spacing:-.02em}
.category-heading h1,.profile-header h1,.method-section h2,.review h2{color:var(--ink)}
.wordmark,.footer-top .wordmark{font-family:var(--body);font-style:normal;font-weight:700;letter-spacing:-2px;color:var(--blue)}.wordmark span,.footer-top .wordmark span{color:var(--terracotta)}.wordmark:hover{color:var(--blue)}.wordmark span:after{display:none}
.hero-photo img{box-shadow:12px 12px 0 var(--ochre)}.search-form{border-left:4px solid var(--ochre)}.search-form>div{border-color:var(--control-border)}.search-form:focus-within>div{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}
.category-heading,.profile-header{border-bottom-color:var(--line)}.category-heading:after,.profile-header:after{background:var(--ochre)}.ranking-review[open]{border-left-color:var(--green)}
.button:hover,.btn:hover{box-shadow:0 4px 0 var(--ochre)}.contribution{border-radius:0}.footer{border-top-color:var(--line)}
.tone-ochre{--rank-bg:var(--ochre);--rank-ink:var(--ochre-ink)}.tone-brick{--rank-bg:var(--brick);--rank-ink:var(--brick-ink)}.tone-green{--rank-bg:var(--green);--rank-ink:var(--green-ink)}
.rank-block,.category-line>.rank-block,.ranking-item .rank-number,.ranking-item:first-child .rank-number{display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;width:72px;height:76px;padding:0;gap:2px;background:var(--rank-bg);color:var(--rank-ink);font-family:var(--body);font-style:normal;font-size:32px;font-weight:700;line-height:1;letter-spacing:-1px;border-radius:3px}
.rank-block small{font-size:12px;font-weight:700;line-height:1.2;letter-spacing:.08em}.rank-block strong{font-size:32px;font-weight:700;line-height:1.1;letter-spacing:-1px}
.category-line{grid-template-columns:72px minmax(0,1.1fr) minmax(0,1.5fr) 28px;gap:24px}.category-line .category-count{grid-column:1;grid-row:1}.category-line h3{grid-column:2}.category-line p{grid-column:3}.category-line .category-next{grid-column:4;display:block;color:var(--blue);font-size:26px;text-align:right}
.ranking-item{grid-template-columns:72px minmax(0,1fr);gap:24px}.rank-on-home{border:1px solid rgba(255,255,255,.24)}
.editorial-list .has-rank,.directory-list .has-rank{grid-template-columns:72px minmax(0,1fr) minmax(0,1.25fr);gap:16px 24px}.has-rank>.rank-block{grid-column:1;grid-row:1/3}.has-rank>.directory-name{grid-column:2}.has-rank>p,.has-rank>.read-link{grid-column:3}.has-rank>.read-link{align-self:start;justify-self:start}
.editorial-heading p{max-width:230px}.editorial-list .has-rank:hover{padding-left:0}.editorial-list .category-text{font-size:12px;line-height:1.6}.directory-row .directory-name h3{font-size:25px;line-height:1.2}
@media(max-width:1050px){.hero .hero-title{font-size:56px}.hero-tagline{font-size:19px}.category-line{gap:20px}.editorial-list .has-rank,.directory-list .has-rank{grid-template-columns:64px minmax(0,1fr);gap:16px 20px}.has-rank>.rank-block{width:64px;height:70px;grid-row:1/4}.has-rank>.directory-name,.has-rank>p,.has-rank>.read-link{grid-column:2}.has-rank>p{grid-row:2}.has-rank>.read-link{grid-row:3}.rank-block strong{font-size:30px}}
@media(max-width:800px){.hero .hero-title{font-size:46px}.hero-tagline{font-size:18px;margin-top:20px}.category-line{grid-template-columns:64px minmax(0,1fr) minmax(0,1fr) 24px;gap:16px}.category-line>.rank-block{width:64px;height:70px}.ranking-item{grid-template-columns:64px minmax(0,1fr);gap:20px}.ranking-item .rank-number{width:64px;height:70px;font-size:30px}}
@media(max-width:600px){.hero .hero-title{font-size:clamp(39px,10vw,56px);line-height:1.06}.hero-tagline{font-size:18px;margin-top:20px}.category-line{grid-template-columns:56px minmax(0,1fr) 22px;gap:8px 16px;align-items:center}.category-line .category-count{grid-column:1;grid-row:1/3;width:56px;height:66px}.category-line h3{grid-column:2;grid-row:1;font-size:21px;line-height:1.25}.category-line p{grid-column:2;grid-row:2;font-size:12px}.category-line .category-next{grid-column:3;grid-row:1/3;font-size:24px}.rank-block strong{font-size:28px}.rank-block small{font-size:11px}.ranking-item{grid-template-columns:56px minmax(0,1fr);gap:16px}.ranking-item .rank-number,.ranking-item:first-child .rank-number{width:56px;height:62px;font-size:28px}.ranking-body h3{font-size:25px}.editorial-list .has-rank,.directory-list .has-rank{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px 18px}.has-rank>.rank-block{width:56px;height:66px}.directory-row .directory-name h3{font-size:24px}.directory-list .has-rank>p,.directory-list .has-rank>.read-link{margin-top:0}.directory-list .has-rank>.read-link{display:block}.editorial-heading p{max-width:none}.hero-photo img{box-shadow:7px 7px 0 var(--ochre)}}
@media(max-width:360px){.hero .hero-title{font-size:39px}.category-line{gap:8px 12px}.category-line h3{font-size:20px}.ranking-item{gap:12px}.ranking-body h3{font-size:24px}.wordmark{font-size:33px}}
.related-section li span{font-family:var(--body);font-style:normal;font-weight:700}
/* Accueil compact : introduction verticale et accès direct aux catégories. */
.header-inner{height:72px}.section{padding-block:42px}.section-heading{display:block;margin-bottom:24px}.section-heading>p{margin-top:12px;max-width:900px;font-size:15px;line-height:1.7}
.hero.compact-hero{display:block;padding-top:32px;padding-bottom:24px}.compact-hero .hero-title{font-size:clamp(36px,4.3vw,56px);line-height:1.12}.compact-hero .hero-heading{max-width:1100px}.home-updated{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.5}.home-intro{font-size:17px;line-height:1.7;color:var(--muted);margin-top:10px;max-width:1000px}
.compact-hero .search-form{display:grid;grid-template-columns:165px minmax(0,1fr);max-width:1000px;padding:0;gap:16px;margin-top:20px;background:transparent;border:0}.compact-hero .search-form>label{font-size:15px;line-height:1.5}.compact-hero .search-form input{padding:12px 16px;font-size:16px}.compact-hero .search-form button{padding:12px 18px;font-size:14px}
.leaders-section{margin-top:28px}.leaders-section h2{font-size:26px;line-height:1.25;margin-bottom:14px}.leaders-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.leader-card{min-width:0;padding:13px 14px;border:1px solid var(--line);background:var(--field)}.leader-category{font-size:12px;line-height:1.4;color:var(--muted);margin-bottom:7px}.leader-card h3{font-size:18px;line-height:1.3;letter-spacing:-.02em}.leader-card h3 a{display:flex;align-items:baseline;gap:8px;justify-content:space-between;color:var(--ink)}.leader-card h3 a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.leader-card h3 span{flex:none;color:var(--blue)}.leader-description{font-size:13px;line-height:1.6;color:var(--muted);white-space:normal;overflow:visible;margin-top:7px}
.categories-section{padding-top:20px;padding-bottom:30px}.categories-section .section-heading h2{font-size:34px}.category-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 22px;border-top:0}.category-list li{min-width:0}.category-line{display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:6px 10px;padding:16px 0;min-height:96px;border-top:1px solid var(--line);border-bottom:0;align-content:center}.category-line h3{grid-column:1;grid-row:1;font-size:18px;line-height:1.3}.category-line p.category-total{grid-column:1;grid-row:2;font-size:13px;line-height:1.5}.category-line .category-next{grid-column:2;grid-row:1/3;font-size:23px;align-self:center}.category-line:hover,.category-line:focus-visible{padding-left:8px}.category-line:before{display:none}
.editorial-section{display:block;padding-block:40px}.editorial-heading{position:static;max-width:none;margin-bottom:24px}.editorial-heading h2{font-size:36px;margin-bottom:0}.editorial-heading p{display:block;font-size:15px;line-height:1.7;margin-top:12px;max-width:900px}.editorial-heading>a{font-size:13px;margin-top:10px}.editorial-list{padding-top:0}.directory-row,.directory-list .directory-row{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);padding-block:20px;gap:12px 24px}.directory-row>.directory-name{grid-column:1}.directory-row>p{grid-column:2}.directory-row>.read-link,.directory-list .read-link{grid-column:2}.directory-name h3{font-size:24px}.directory-row .category-text{font-size:12px}.editorial-list .directory-row:hover{padding-left:0}
.method-section,.contribution{display:block;padding-block:40px}.method-section h2,.contribution h2{max-width:1000px;font-size:34px;margin-bottom:14px}.method-section>div>p,.contribution p{max-width:1000px;font-size:16px;margin-bottom:16px}.method-section .editorial-note{margin-top:18px}.contribution{padding:28px;margin-bottom:36px}.contribution h2 br{display:none}.footer-top{padding-block:28px}.footer-bottom{padding-block:14px}
.profile{padding-bottom:34px}.profile-header{padding-bottom:22px}.profile-layout{padding-top:28px;gap:56px}.profile-section{margin-top:28px}.review{margin-top:26px}.category-heading{padding-block:18px 28px}.category-heading h1{margin-bottom:16px}.category-layout{padding-top:30px;padding-bottom:34px}.ranking-item{padding-block:24px}.related-section{display:block;padding-block:26px 46px}.related-section h2{max-width:1000px;margin-bottom:18px}.related-section ul{margin-bottom:18px}.category-advice .block{padding-top:24px}.prose{padding-bottom:50px}.proposal-layout{padding-block:26px 56px}
@media(max-width:1050px){.leaders-grid,.category-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero.compact-hero{padding-top:28px}}
@media(max-width:800px){.header-inner{height:66px}.leaders-grid,.category-list{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-hero .search-form{grid-template-columns:1fr;gap:8px}.profile-layout{gap:34px}.editorial-section{padding-block:30px}.directory-row,.directory-list .directory-row{grid-template-columns:minmax(0,1fr)}.directory-row>.directory-name,.directory-row>p,.directory-row>.read-link,.directory-list .read-link{grid-column:1}.method-section,.contribution{padding-block:28px}}
@media(max-width:600px){.hero.compact-hero{padding-top:22px;padding-bottom:16px}.compact-hero .hero-title{font-size:36px;line-height:1.12}.home-updated{font-size:13px;margin-top:10px}.home-intro{font-size:15px;margin-top:8px;line-height:1.6}.compact-hero .search-form{margin-top:16px}.compact-hero .search-form>div{flex-wrap:nowrap}.compact-hero .search-form input{width:0;flex:1;min-width:0;min-height:44px;padding:11px;font-size:16px}.compact-hero .search-form input::placeholder{font-size:13px}.compact-hero .search-form button{width:auto;flex:none;min-height:44px;padding:11px;font-size:13px}.compact-hero .search-form button span{display:none}.leaders-section{margin-top:22px}.leaders-section h2{font-size:24px;margin-bottom:12px}.leaders-grid{gap:10px}.leader-card{padding:11px 10px}.leader-category{font-size:12px;margin-bottom:6px;line-height:1.4}.leader-card h3{font-size:16px;line-height:1.3}.leader-card h3 a{gap:4px}.leader-description{font-size:12px;line-height:1.6;margin-top:6px}.section-heading{margin-bottom:18px}.section-heading>p{font-size:14px;margin-top:10px}.categories-section{padding-top:18px;padding-bottom:24px}.categories-section .section-heading h2{font-size:30px}.category-list{gap:0 18px}.category-line{padding-block:13px;min-height:94px;grid-template-columns:minmax(0,1fr) 18px;gap:6px}.category-line h3{font-size:16px;line-height:1.35}.category-line p.category-total{font-size:12px}.category-line .category-next{font-size:20px}.editorial-heading h2{font-size:32px}.editorial-heading p{font-size:14px}.editorial-heading>a{font-size:12px}.editorial-heading{margin-bottom:20px}.editorial-list{padding-top:18px}.directory-list .directory-row{display:grid}.directory-list .directory-row>p,.directory-list .read-link{margin-top:0}.directory-name h3{font-size:24px}.directory-row{padding-block:18px}.method-section h2,.contribution h2{font-size:29px}.method-section>div>p,.contribution p{font-size:15px}.contribution{padding:24px 20px;margin-bottom:26px}.profile-layout{gap:28px}.ranking-item{padding-block:22px}.category-layout{padding-top:20px}.footer-top{padding-block:24px}.footer-top nav{margin-top:20px}.related-section{padding-block:24px 32px}.prose{padding-bottom:34px}}
@media(max-width:360px){.compact-hero .hero-title{font-size:34px}}
.directory-row,.directory-list .directory-row{grid-template-columns:minmax(0,1fr);gap:9px}.directory-row>.directory-name,.directory-row>p,.directory-row>.read-link,.directory-list .read-link{grid-column:1}.directory-row>p{max-width:1000px}.editorial-list .directory-row .directory-name h3{margin-top:5px}

/* Pages par ville : mêmes couleurs et typographie, contenu fourni conservé. */
.desktop-nav a[aria-current=page],.mobile-nav a[aria-current=page]{color:var(--blue);text-decoration:underline;text-underline-offset:6px;font-weight:700}
.cities-section{padding-block:12px 32px}.cities-section .section-heading{margin-bottom:14px}.cities-section h2{font-size:32px}.city-link{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:420px;padding:16px 20px;background:var(--ochre);color:var(--ochre-ink);font-size:22px;font-weight:700;border-left:4px solid var(--brick)}.city-link:hover{color:var(--ochre-ink);text-decoration:underline;text-underline-offset:5px}
.city-page .category-heading h1{max-width:1050px;font-size:clamp(34px,4.7vw,60px);line-height:1.12}.city-page .category-heading .lead{max-width:1020px;font-size:17px;line-height:1.8}.city-page .category-heading .stamp{font-size:13px;margin-top:18px;color:var(--muted)}.city-page .stamp a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.city-page .ville-sec{padding-block:28px 8px;border-bottom:1px solid var(--line)}.ville-sec-head{display:block;margin-bottom:20px}.ville-sec-head h2{font-size:clamp(26px,3vw,36px);line-height:1.18;margin-bottom:10px}.ville-sec-head>a{display:inline-block;color:var(--blue);font-size:14px;line-height:1.6;text-decoration:underline;text-underline-offset:4px}
.city-page .adrs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}.city-page .adr{display:flex;flex-direction:column;min-width:0;padding:20px 0;border-top:1px solid var(--line)}.city-page .adr h3{font-size:23px;line-height:1.35;font-weight:700;letter-spacing:-.025em;color:var(--ink)}.city-page .adr h3 a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.city-page .adr>p{font-size:15px;line-height:1.75;color:var(--muted);margin-top:10px}.city-page .adr .row-act{margin-top:auto;padding-top:12px}.city-page .go{font-size:13px;color:var(--blue);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.city-page .pill{display:inline-block;vertical-align:middle;margin:3px 0;padding:3px 8px;background:var(--ochre);color:var(--ochre-ink);font-size:11px;line-height:1.5;font-weight:700;letter-spacing:0}
.city-page .pratique{margin-block:32px;padding:24px;background:var(--panel);border-left:4px solid var(--green);color:var(--ink)}.city-page .pratique h2,.city-page #h-faq{font-size:clamp(26px,3vw,34px);line-height:1.2;margin-bottom:18px}.city-page .pratique ul{list-style:disc;padding-left:20px;display:grid;gap:12px;font-size:15px;line-height:1.8}.city-page .block[aria-labelledby=h-faq]{max-width:920px;padding-bottom:40px}.city-page .qa summary{font-weight:600}
.city-footer-inner{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding-block:30px}.city-footer p{font-size:13px;line-height:1.8;color:var(--muted)}.city-footer .wordmark+p{margin-top:20px;max-width:330px}.city-footer .foot-h{font-weight:700;color:var(--ink);font-size:15px;margin-bottom:10px}.city-footer ul{display:grid;gap:8px;font-size:13px}.city-footer a:not(.wordmark):hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
@media(max-width:1050px){.header-inner{gap:24px}.desktop-nav{gap:18px}.city-page .adrs{grid-template-columns:repeat(2,minmax(0,1fr))}.city-footer-inner{gap:26px}}
@media(max-width:800px){.city-footer-inner{grid-template-columns:1fr 1fr}.city-footer-inner>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.cities-section{padding-block:4px 24px}.cities-section h2{font-size:28px}.city-link{max-width:none;font-size:20px;padding:14px 16px}.city-page .category-heading h1{font-size:34px}.city-page .category-heading .lead{font-size:15px;line-height:1.75}.city-page .category-heading .stamp{font-size:13px}.city-page .ville-sec{padding-top:24px}.ville-sec-head{margin-bottom:14px}.ville-sec-head>a{font-size:13px}.city-page .adrs{grid-template-columns:minmax(0,1fr);gap:0}.city-page .adr{padding-block:18px}.city-page .adr h3{font-size:22px}.city-page .adr .row-act{padding-top:10px}.city-page .pratique{margin-block:24px;padding:20px 16px}.city-page .pratique ul{padding-left:18px}.city-footer-inner{grid-template-columns:minmax(0,1fr);gap:26px;padding-block:24px}.city-footer-inner>div:first-child{grid-column:auto}}

/* Huit cartes par grille, descriptions complètes et repères des premiers sites. */
.leader-card h3 a{display:grid;grid-template-columns:32px minmax(0,1fr) 14px;gap:8px;align-items:center;justify-content:normal}.leader-card h3 .leader-rank{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--ochre);color:var(--ochre-ink);font-size:18px;font-weight:700;line-height:1;letter-spacing:0}.leader-card h3 .leader-name{min-width:0;color:inherit;overflow-wrap:normal}.leader-card h3 .leader-arrow{font-size:16px}.leaders-all{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--panel);color:var(--blue);font-size:18px;line-height:1.4;font-weight:700}.leaders-all:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.leaders-all>span:last-child{flex:none}.category-dakar h3{grid-row:1/3}
@media(max-width:600px){.leader-card h3 a{grid-template-columns:26px minmax(0,1fr);gap:7px}.leader-card h3 .leader-rank{width:26px;height:26px;font-size:16px}.leader-card h3 .leader-arrow{display:none}.leaders-all{font-size:16px;gap:8px}}

/* Une identité de couleur stable pour chaque catégorie. */
[data-category="agences-web"]{--category-color:var(--cat-agences);--category-label:var(--cat-agences-label)}
[data-category="medias"]{--category-color:var(--cat-medias);--category-label:var(--cat-medias-label)}
[data-category="services-a-domicile"]{--category-color:var(--cat-services);--category-label:var(--cat-services-label)}
[data-category="annonces-et-bons-plans"]{--category-color:var(--cat-annonces);--category-label:var(--cat-annonces-label)}
[data-category="boutiques-en-ligne"]{--category-color:var(--cat-boutiques);--category-label:var(--cat-boutiques-label)}
[data-category="energie-solaire"]{--category-color:var(--cat-solaire);--category-label:var(--cat-solaire-label)}
[data-category="investir-et-entreprendre"]{--category-color:var(--cat-investir);--category-label:var(--cat-investir-label)}
.leader-card[data-category]{position:relative;background:var(--paper);background:color-mix(in srgb,var(--category-color) 7%,var(--paper))}
.leader-card[data-category]::before{content:"";position:absolute;inset:-1px auto -1px -1px;width:4px;background:var(--category-color);transition:width .16s ease;pointer-events:none}
.leader-card[data-category]:hover::before{width:6px}
.leader-card[data-category] h3 .leader-rank{background:var(--category-color);color:#fff}
.leader-card[data-category] h3 a:hover{color:var(--ink);text-decoration:none}
.category-page .ranking-item .rank-number,.category-page .ranking-item:first-child .rank-number{background:var(--category-color);color:#fff}
.category-page .category-heading>.ranking-category-label{font-size:12px;line-height:1.5;font-weight:700;letter-spacing:.025em;color:var(--category-label);margin-bottom:12px}
.category-page .crumbs li[aria-current="page"]::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:10px;vertical-align:1px;background:var(--category-label)}
.leaders-city{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:18px;line-height:1.4;font-weight:700;color:var(--ink);background:var(--field)}
.leaders-city>span:last-child{flex:none}.leaders-city:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.cities-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.leaders-grid,.cities-grid{grid-auto-rows:minmax(164px,auto)}
.cities-grid .city-link{width:100%;max-width:none;min-width:0;margin:0;padding:13px 14px;border:1px solid var(--line);background:var(--field);color:var(--ink);font-size:18px;line-height:1.4;font-weight:700}
.cities-grid .city-link:hover{color:var(--ink);background:var(--field)}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--cat-agences:#314B74;--cat-medias:#A84737;--cat-services:#3B7455;--cat-annonces:#825533;--cat-boutiques:#824768;--cat-solaire:#A06520;--cat-investir:#2C696F;--cat-agences-label:#8D9CB2;--cat-medias-label:#CF9990;--cat-services-label:#93B2A1;--cat-annonces-label:#BAA18E;--cat-boutiques-label:#BA99AB;--cat-solaire-label:#CAAA84;--cat-investir-label:#8AACAF;color-scheme:dark}}
@media screen{:root[data-theme="dark"]{--cat-agences:#314B74;--cat-medias:#A84737;--cat-services:#3B7455;--cat-annonces:#825533;--cat-boutiques:#824768;--cat-solaire:#A06520;--cat-investir:#2C696F;--cat-agences-label:#8D9CB2;--cat-medias-label:#CF9990;--cat-services-label:#93B2A1;--cat-annonces-label:#BAA18E;--cat-boutiques-label:#BA99AB;--cat-solaire-label:#CAAA84;--cat-investir-label:#8AACAF;color-scheme:dark}}
@media(max-width:1050px){.cities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.leaders-city{font-size:16px;gap:8px}.cities-grid{gap:10px}.cities-grid .city-link{padding:11px 10px;font-size:16px}}

/* Repères discrets des classements et bouton de recherche vert foncé. */
.category-list .category-line h3{display:flex;align-items:baseline;gap:9px}
.category-list .category-line h3::before{content:"";display:block;flex:0 0 10px;width:10px;height:10px;background:var(--category-color);transform:translateY(-1px)}
.category-list .category-dakar{--category-color:var(--blue)}
.search-form button,.search-form button:hover{background:var(--feature);color:#fff}

/* À la une : cartes vertes, repères de catégorie et liens officiels. */
.editorial-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;border:0}
.featured-card,.featured-about{min-width:0;padding:22px;border:0;border-radius:6px;background:var(--feature);background:color-mix(in srgb,var(--feature) 92%,#ffffff);overflow-wrap:anywhere}
.featured-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.featured-card .category-text{display:flex;align-items:baseline;gap:8px;font-size:12px;line-height:1.6;color:var(--feature-muted)}
.featured-card .category-text::before{content:"";display:block;flex:0 0 8px;width:8px;height:8px;background:var(--category-color);background:color-mix(in srgb,var(--category-color) 40%,#ffffff);transform:translateY(-1px)}
.featured-card h3{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.025em;color:var(--feature-ink)}
.featured-card h3 a{color:var(--feature-ink)}
.featured-card .featured-description{margin:0;font-size:15px;line-height:1.65;color:var(--feature-muted);display:block;max-height:none;overflow:visible}
.featured-card .featured-visit{margin-top:auto;padding-top:6px;font-size:13px;line-height:1.7;color:var(--feature-accent);text-decoration:underline;text-underline-offset:4px}
.featured-card .category-text:hover,.featured-card h3 a:hover,.featured-card .featured-visit:hover{color:var(--feature-ink);text-decoration:underline;text-underline-offset:4px}
.featured-about{grid-column:auto;text-align:left}
@media(max-width:1050px){.editorial-list{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-about{grid-column:auto}}
@media(max-width:600px){.editorial-list{grid-template-columns:minmax(0,1fr);gap:12px}.featured-card,.featured-about{padding:20px}.featured-about{min-height:96px}}

/* Proposition sur l’accueil et accès aux classements dans chaque pied de page. */
.home-contribution{background:var(--sand)}
.home-contribution h2,.home-contribution p{color:var(--logo-green)}
.contribution-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 18px;border:0;border-radius:0;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none}
.home-contribution .contribution-button,.home-contribution .contribution-button:hover{background:var(--feature);color:#fff}
.footer-top,.city-footer-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1fr);gap:32px;align-items:start}
.footer-top>*,.city-footer-inner>*{min-width:0;overflow-wrap:anywhere}
.footer-top .footer-rankings,.footer-top .footer-about{margin:0;grid-template-columns:minmax(0,1fr);font-size:14px;line-height:1.65}
.footer-top .footer-rankings{display:block}
.footer-top .footer-about{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-rankings h2{font-size:16px;line-height:1.4;letter-spacing:0;font-weight:700;margin:0 0 12px;color:var(--ink)}
.footer .footer-rankings ul{display:grid;gap:10px;list-style:none;margin:0;padding:0;font-size:14px;line-height:1.65}
.footer-rankings a{color:var(--muted)}
.footer-rankings a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){.footer-top,.city-footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.footer-top>div:first-child,.city-footer-inner>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.footer-top,.city-footer-inner{grid-template-columns:minmax(0,1fr)}.footer-top>div:first-child,.city-footer-inner>div:first-child{grid-column:auto}}

/* Choix du thème, accessible sans ouvrir le menu. */
.header-inner{gap:24px}
.header-actions{display:flex;align-items:center;gap:14px;flex:none;margin-left:auto}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 11px;border:1px solid var(--control-border);border-radius:4px;background:var(--panel);color:var(--ink);font-size:13px;line-height:1.5;font-weight:600;white-space:nowrap}
.theme-toggle::before{content:"";width:14px;height:14px;flex:none;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.theme-toggle:hover{background:var(--panel);color:var(--ink)}
@media(max-width:1050px){.desktop-nav{display:none}.menu-toggle{display:block;min-height:44px;min-width:44px}}
@media(max-width:600px){.header-inner{gap:8px}.header-actions{gap:10px}.theme-toggle{padding:9px 8px;font-size:12px}.header .wordmark{font-size:30px;letter-spacing:-1.5px}.menu-toggle{font-size:14px}}

/* Captures et logos officiels de la sélection éditoriale. */
.featured-preview{align-self:stretch;aspect-ratio:8/5;overflow:hidden;background:#fff;border-radius:4px;margin-bottom:6px}
.featured-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.featured-preview--logo{display:flex;align-items:center;justify-content:center}
.featured-preview--logo img{width:72%;height:72%;object-fit:contain}

/* Identités visuelles des premiers de chaque classement. */
.leader-visual{height:64px;margin:0 0 12px;padding:8px 12px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:4px;overflow:hidden}
.leader-visual img{display:block;width:auto;height:auto;max-width:100%;max-height:48px;object-fit:contain}
@media(max-width:600px){.leader-visual{height:56px;padding:6px 8px;margin-bottom:10px}.leader-visual img{max-height:44px}}
