/* Ganacsato, version « unslop ».
   Méthode unslop de Damir Sokolovsky (@heydamir), CC BY 4.0 : https://github.com/heydamir/unslop

   Direction
   Produit : l'annuaire mondial des commerces tenus par des Somaliens.
   Caractère (charte) : chaleureux, fiable, fier.
   Univers : la rue commerçante du quartier, ses enseignes et son carnet d'adresses.
   Moments : la commerçante dans son épicerie, la carte de la ville avec ses adresses.
   Signature : l'état d'ouverture, un point à côté de chaque adresse. Noir, jamais vert. */

:root{
  --ink:#0b0b0b;--ink-2:#6b635a;--line:#e4dacb;--sand:#f2ece3;--sand-2:#faf7f2;--brick:#9e2b25;--brick-d:#86231e;
  --d-t:#f2ece3;--d-t2:#bdb5aa;--d-line:rgba(242,236,227,.14);
  --title:Montserrat,system-ui,sans-serif;--ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font:400 16px/24px Roboto,system-ui,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brick);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--title);font-weight:600;text-wrap:balance}
h1{font-size:clamp(40px,4.6vw,64px);line-height:1.04;letter-spacing:-.03em}
h2{font-size:clamp(26px,2.4vw,32px);line-height:1.15;letter-spacing:-.02em}
h3{font-size:18px;line-height:24px;letter-spacing:-.005em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ic{flex:none}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.wrap-w{max-width:1600px;margin:0 auto;padding:0 32px}
.meta{font-size:14px;line-height:20px;color:var(--ink-2)}
.lead{font-size:18px;line-height:28px;color:var(--ink-2);max-width:480px}
.kick{font-size:14px;line-height:20px;font-weight:500;color:var(--brick)}
.kick-q{font-size:14px;line-height:20px;color:var(--ink-2)}
.demo{margin:0;padding:16px 0 24px;font-size:13px;line-height:20px;color:var(--ink-2)}

/* Boutons et liens */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-size:15px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .15s var(--ease),transform .15s var(--ease)}
.btn:hover{background:#2c2925}
.btn:active{transform:scale(.98)}
.btn-sm{min-height:36px;padding:0 16px;font-size:14px;border-radius:8px}
.btn-brick{background:var(--brick)}
.btn-brick:hover{background:var(--brick-d)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--sand)}
.btn-sec{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn-sec:hover{background:var(--sand-2)}
.btn-w{width:100%}
.link{font-size:15px;font-weight:500;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;transition:text-decoration-color .15s var(--ease)}
.link:hover{text-decoration-color:currentColor}
.link-w{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}

/* Note et état d'ouverture */
.rate{font-family:var(--title);font-weight:600;font-size:15px;line-height:24px}
.rate-l{font-size:24px;letter-spacing:-.02em}
.st{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px;color:var(--ink)}
.st i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.st-off{color:var(--brick)}
.st-off i{background:none;box-shadow:inset 0 0 0 1.5px var(--brick)}

/* Navigation */
.nav{position:relative;z-index:5;background:#fff}
.nav-in{display:flex;align-items:center;gap:32px;height:64px}
.brand img{height:20px;width:auto}
.nav-links{display:flex;gap:24px;font-size:14px}
.nav-links a:hover{color:var(--ink-2)}
.nav-end{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:14px}
.nav-end .link{font-size:14px;font-weight:400;text-decoration:none}
.nav-me{display:flex;align-items:center;gap:8px;font-size:14px;color:inherit;text-decoration:none}
.nav-me b{font-weight:500}
.nav-me img,.nav-me span{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none}
.nav-me span{display:grid;place-items:center;background:var(--ink,#111);color:#fff;font-size:13px;font-weight:500}
.nav-me:hover b{text-decoration:underline}
.lang{background:none;border:0;padding:0;font-size:13px;color:var(--ink-2);cursor:pointer}
.nav-step{margin-left:auto}

/* Héros : le texte à gauche, la commerçante à droite jusqu'au bord */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:640px;border-bottom:1px solid var(--line)}
.hero-txt{display:flex;align-items:center;padding:48px 48px 64px max(32px,calc((100vw - 1280px)/2 + 32px))}
.hero-in{width:100%;max-width:576px}
.hero .lead{margin-top:24px}
.hero-img{position:relative;min-height:100%;background:var(--sand)}
.hero-img>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:46% 50%}

/* Recherche */
.search{display:flex;align-items:stretch;margin-top:32px;background:#fff;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line),0 8px 24px rgba(0,0,0,.06);padding:4px}
.search label{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--ink-2)}
.search label:first-of-type{flex:1.7}
.search label+label{box-shadow:inset 1px 0 0 var(--line)}
.search input{flex:1;min-width:0;height:48px;border:0;outline:0;background:none;color:var(--ink);font-size:15px}
.search input::placeholder{color:var(--ink-2)}
.search-s{margin:0;min-width:0;flex:0 1 640px;box-shadow:inset 0 0 0 1px var(--line);padding:2px}
.search-s input{height:40px;font-weight:500}
.search-s .btn{min-height:40px;border-radius:8px;font-size:14px}

/* Vignette posée sur une photo */
.near{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:8px 16px 8px 8px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.near>img{width:64px;height:64px;border-radius:8px;object-fit:cover}
.near>span:first-of-type{flex:1;min-width:0;display:flex;flex-direction:column}
.near small{font-size:13px;line-height:20px;color:var(--ink-2)}
.near b{font-family:var(--title);font-weight:600;font-size:16px;line-height:24px}
.hero-img .near{position:absolute;left:24px;bottom:24px;width:360px;max-width:calc(100% - 48px)}

/* Repères */
.facts{padding:48px 0}
.facts-in{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;align-items:end}
.facts-t{font-family:var(--title);font-weight:500;font-size:20px;line-height:28px;letter-spacing:-.01em;max-width:440px}
.facts p:not(.facts-t){font-size:14px;line-height:20px;color:var(--ink-2)}
.facts b{display:block;font-family:var(--title);font-weight:600;font-size:32px;line-height:40px;letter-spacing:-.02em;color:var(--ink)}

/* Sections */
.sec{padding:96px 0}
.sec-t0{padding-top:0}
.sec:has(+.sec-t0){padding-bottom:64px}
.sec-t0:has(+.sec-t0){padding-bottom:64px}
.head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px}

/* Index des catégories */
.index{display:grid;grid-template-columns:repeat(4,1fr);column-gap:32px;border-top:1px solid var(--line)}
.index a{display:flex;align-items:center;gap:12px;height:64px;border-bottom:1px solid var(--line);font-size:15px;font-weight:500;transition:color .15s var(--ease)}
.index a:hover{color:var(--ink-2)}
.index img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.index-all{color:var(--brick)}

/* Cartes de commerce */
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
.card{display:flex;flex-direction:column;gap:4px;min-width:0}
.card-img{position:relative;aspect-ratio:4/3;margin-bottom:8px;border-radius:12px;overflow:hidden;background:var(--sand)}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.card-t b{font-family:var(--title);font-weight:600;font-size:16px;line-height:24px}
.card-noimg{display:grid;place-items:center;background:var(--sand)}
.noimg{font-family:var(--title);font-weight:600;font-size:28px;letter-spacing:-.02em;color:var(--ink)}
.near-i{flex:none;width:64px;height:64px;border-radius:8px;display:grid;place-items:center;background:var(--sand);font-family:var(--title);font-weight:600;font-size:24px}
.near-il{width:80px;height:80px}
.strip{display:flex;gap:8px;margin-top:24px;overflow-x:auto;scrollbar-width:thin;padding-bottom:8px}
.strip img{flex:none;height:176px;width:auto;border-radius:8px;object-fit:cover}
a.tel{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;white-space:nowrap}
a.tel:hover{text-decoration-color:currentColor}
.card-logo{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.card-logo img{object-fit:contain;padding:12%}
.row-i{flex:none;width:72px;height:72px;border-radius:8px;background:var(--sand)}
.ph-list .row-i{width:56px;height:56px}
.map-off{position:absolute;inset:0;display:grid;place-items:center;padding:24px;background:var(--sand-2);color:var(--ink-2);font-size:14px;text-align:center}
.map.is-live>.map-off,.mini-map.is-live>.map-off{display:none}
.f-head-l{display:flex;align-items:center;gap:24px}
.f-logo{flex:none;width:96px;height:96px;border-radius:16px;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px var(--line);display:grid;place-items:center}
.f-logo img{width:100%;height:100%;object-fit:contain;padding:10%}
.res-sub{grid-column:1 / -1;margin:8px 0 -8px;font-family:var(--title);font-weight:600;font-size:18px;line-height:24px}
.card .dist{font-size:13px;line-height:20px;font-weight:500;color:var(--brick)}
#res-empty{margin:0 0 24px}
.links{margin:0;padding:16px 0 0;border:0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;min-width:0}
.links legend{padding:0;font-family:var(--title);font-weight:600;font-size:16px;line-height:24px}
.offers .offer{padding:12px 0;border-top:1px solid var(--line)}
.offers .offer b{font-family:var(--title);font-weight:600}
.offers ul{margin-top:4px;font-size:14px;line-height:22px;color:var(--ink-2)}
.offer-pro b{color:var(--brick)}
.greviews{margin-top:24px}
.gr-h{display:flex;align-items:baseline;gap:12px;padding-bottom:8px}
.gr-h b{font-family:var(--title);font-weight:600;font-size:32px}
.gr-h span{color:var(--ink-2);font-size:14px}
.gr-o{margin-top:6px;padding:0;border:0;background:none;font-size:13px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.gr-f{margin-top:12px}
.logo-up{display:flex;align-items:center;gap:16px}
.logo-up button{flex:none;width:96px;height:96px;border:0;border-radius:12px;background:var(--sand);font-size:13px;font-weight:500;cursor:pointer;padding:8px}
.logo-up small{font-size:13px;line-height:20px;color:var(--ink-2)}
.dishes{border-top:1px solid var(--line)}
.dishes li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
#carte .meta{margin-top:12px}
.tag{position:absolute;left:8px;top:8px;height:24px;padding:0 8px;display:inline-flex;align-items:center;border-radius:6px;background:#fff;font-size:12px;font-weight:500}
.tag-n{width:24px;padding:0;justify-content:center;background:var(--ink);color:#fff}
.tag-n+.tag{left:36px}
.tag-line{position:static;background:var(--sand)}
.fav{position:absolute;right:8px;top:8px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}

/* Liste des nouveaux */
.rows2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;border-top:1px solid var(--line)}
.row{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.row img{width:72px;height:72px;border-radius:8px;object-fit:cover}
.row-m{flex:1;min-width:0;display:flex;flex-direction:column}
.row-m b{font-family:var(--title);font-weight:600;font-size:16px;line-height:24px}
.row-e{display:flex;flex-direction:column;align-items:flex-end;text-align:right}

/* Photo pleine largeur */
.scene{position:relative;min-height:560px;display:flex;align-items:flex-end;color:#fff;background:var(--ink)}
.scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene::after{content:"";position:absolute;inset:0;background:rgba(8,8,8,.46)}
.scene-in{position:relative;z-index:1;width:100%;padding-top:64px;padding-bottom:64px}
.scene h2{font-size:clamp(32px,3.4vw,48px);line-height:1.08;letter-spacing:-.03em;max-width:640px}
.scene p{margin-top:16px;font-size:18px;line-height:28px;max-width:520px;color:var(--d-t)}
.scene .actions{margin-top:32px}

/* Comment ça marche */
.dark{background:var(--ink);color:var(--d-t)}
.how{display:grid;grid-template-columns:1fr 2fr;gap:32px}
.how ol{border-top:1px solid var(--d-line)}
.how li{display:grid;grid-template-columns:32px 160px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--d-line);align-items:baseline}
.how span{font-family:var(--title);font-weight:500;font-size:14px;color:var(--d-t2)}
.how b{font-family:var(--title);font-weight:600;font-size:18px;line-height:24px;color:#fff}
.how p{color:var(--d-t2)}

/* Pour les commerçants */
.pro{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}
.pro h2{margin-top:8px;font-size:clamp(32px,3.4vw,48px);line-height:1.08;letter-spacing:-.03em}
.pro .lead{margin-top:16px}
.pro .actions{margin-top:32px}
.pro-img{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:var(--sand)}
.pro-img>img{width:100%;height:100%;object-fit:cover}
.near-s{position:absolute;left:16px;bottom:16px;width:280px;padding:12px 16px}
.near-s .meta{display:block}

/* App */
.app{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.app p{margin-top:8px;color:var(--ink-2)}
.app .actions{gap:8px}

/* Pied de page */
.foot{border-top:1px solid var(--line)}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-top:40px;padding-bottom:16px;font-size:14px;color:var(--ink-2)}
.foot-in p{margin-top:8px}
.foot-in img{height:20px;width:auto}
.foot nav{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.foot nav a:hover{color:var(--ink)}

/* Résultats */
.nav-res{position:sticky;top:0;box-shadow:0 1px 0 var(--line)}
.res-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:12px;padding-bottom:12px}
.chips{display:flex;gap:8px;padding-bottom:12px;overflow-x:auto;scrollbar-width:none}
.chip{flex:none;height:36px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-size:14px;cursor:pointer;transition:background-color .15s var(--ease)}
.chip:hover{background:var(--sand-2)}
.chip.on{background:var(--sand);box-shadow:inset 0 0 0 1px var(--ink);font-weight:500}
.chip-f{font-weight:500}
.res{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;padding-top:32px;padding-bottom:64px}
.res-h{margin-bottom:24px}
.res-h h1{font-size:32px;line-height:40px;letter-spacing:-.02em}
.res-h .meta{margin-top:4px}
.missing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:40px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.missing b{font-weight:500}

/* Carte */
.map{position:sticky;top:136px;height:calc(100vh - 168px);min-height:560px;border-radius:16px;overflow:hidden;background:#efe9df}
.map-bg{position:absolute;inset:0;width:100%;height:100%}
.map-q{position:absolute;left:50%;top:16px;transform:translateX(-50%);height:36px;padding:0 12px;border:0;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08),inset 0 0 0 1px var(--line);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}
.mpin{position:absolute;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 4px;border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.14);font-family:var(--title);font-weight:600;font-size:13px;transform:translate(-50%,-50%)}
.mpin i{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--sand);font-style:normal;font-size:12px}
.mpin.on{background:var(--brick);color:#fff;z-index:1}
.mpin.on i{background:rgba(255,255,255,.18)}
.mini-map .mpin{padding:0 10px}
.map-card{position:absolute;left:16px;right:16px;bottom:16px}
.map-card>img{width:80px;height:80px}
.map-card .meta{display:block}

/* Catégories */
.cats{padding-top:40px;padding-bottom:64px}
.cats-h{max-width:640px}
.cats-h .lead{margin-top:12px;max-width:none}
.cats-s{display:flex;align-items:center;gap:8px;height:52px;margin-top:24px;padding:0 16px;border-radius:12px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line),0 8px 24px rgba(0,0,0,.06)}
.cats-s input{flex:1;min-width:0;height:100%;border:0;outline:0;background:none;color:var(--ink);font-size:16px}
.cats-s input::placeholder{color:var(--ink-2)}
.cats-s:focus-within{box-shadow:inset 0 0 0 1.5px var(--ink)}
#cat-n{min-height:20px;margin-top:8px}
.cats-b{display:grid;grid-template-columns:256px minmax(0,1fr);gap:48px;align-items:start;margin-top:24px}
.cats-nav{position:sticky;top:24px;display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow-y:auto;font-size:14px}
.cats-nav a{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;color:var(--ink-2);transition:background-color .15s var(--ease),color .15s var(--ease)}
.cats-nav a:hover{background:var(--sand-2);color:var(--ink)}
.cats-nav em{font-style:normal;color:var(--ink-2)}
.cat-sec{padding:24px 0;border-top:1px solid var(--line);scroll-margin-top:16px}
.cat-sec:first-child{padding-top:0;border-top:0}
.cat-sec h2{font-size:20px;line-height:28px;letter-spacing:-.01em;margin-bottom:12px}
.cat-sec ul{columns:3;column-gap:32px}
.cat-sec li{break-inside:avoid}
.cat-sec li[hidden],.cat-sec[hidden],.cats-nav a[hidden],[hidden]{display:none!important}
.cat-sec li a{display:block;padding:4px 0;font-size:15px;line-height:22px;transition:color .15s var(--ease)}
.cat-sec li a:hover{color:var(--brick)}
a.chip{color:var(--ink)}
.chip-c{font-weight:500}

/* Suggestions de recherche */
.search label{position:relative}
.sg{position:absolute;left:-4px;right:-4px;top:calc(100% + 8px);z-index:30;min-width:300px;max-height:384px;overflow-y:auto;padding:6px;background:#fff;border-radius:12px;box-shadow:0 0 0 1px var(--line),0 12px 32px rgba(0,0,0,.14);color:var(--ink)}
.sg li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;cursor:pointer}
.sg li svg{flex:none;color:var(--ink-2)}
.sg li span{display:flex;flex-direction:column;min-width:0}
.sg li b{font-weight:500;font-size:15px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg li small{font-size:13px;line-height:18px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg li.on,.sg li:hover{background:var(--sand-2)}

/* Vraie carte */
.map-live{position:absolute;inset:0;z-index:0;background:#efe9df}
.map,.mini-map{isolation:isolate}
.map-bg,.map>.mpin,.mini-map>.mpin{position:absolute}
.map.is-live>.map-bg,.map.is-live>a.mpin,.mini-map.is-live>.map-bg,.mini-map.is-live>.mpin{display:none}
.map-q,.map-me,.map-card,.mini-cta{z-index:500}
.map-q[hidden]{display:none}
.map-me{position:absolute;right:16px;top:16px;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:0;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08),inset 0 0 0 1px var(--line);font-size:14px;font-weight:500;cursor:pointer}
.map-me:hover,.map-q:hover{background:var(--sand-2)}
.leaflet-tile-pane{filter:grayscale(1) sepia(.15) contrast(1.08)}
.map:not(.is-live)>.map-live,.mini-map:not(.is-live)>.map-live{visibility:hidden}
.leaflet-container img{max-width:none!important;max-height:none!important}
.leaflet-container{font:inherit;background:#efe9df}
.leaflet-control-attribution{font-size:10px;background:rgba(255,255,255,.8)!important}
.leaflet-bar a{color:var(--ink)!important}
.lpin{background:none;border:0}
.lpin .mpin{position:static;transform:translate(-50%,-50%);display:inline-flex;white-space:nowrap;cursor:pointer}
.lme span{display:block;width:18px;height:18px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px rgba(11,11,11,.18),0 0 0 2px #fff inset}
.map-card{cursor:pointer}
.mini-map{cursor:pointer}
.mini-cta{position:absolute;left:12px;bottom:12px;height:32px;padding:0 10px;display:inline-flex;align-items:center;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.1);font-size:13px;font-weight:500}

/* Choix de l'application de cartes */
.msheet{position:fixed;inset:0;z-index:1000;display:grid;place-items:end center}
.msheet[hidden]{display:none}
.msheet-bg{position:absolute;inset:0;background:rgba(11,11,11,.45)}
.msheet-box{position:relative;width:min(420px,100%);margin:16px;padding:20px;border-radius:16px;background:#fff;display:flex;flex-direction:column;gap:8px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.msheet-t{font-family:var(--title);font-weight:600;font-size:18px;line-height:24px}
.msheet-a{margin-bottom:8px}
.msheet-l{display:flex;flex-direction:column;gap:8px}
.msheet-x{align-self:center;margin-top:4px;background:none;border:0;cursor:pointer}
@media (min-width:861px){.msheet{place-items:center}}
.toast{position:fixed;left:50%;bottom:24px;z-index:1100;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 16px;border-radius:10px;background:var(--ink);color:#fff;font-size:14px;line-height:20px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.toast[hidden]{display:none}

/* Fiche */
.fiche{padding-top:16px;padding-bottom:64px}
.crumb{display:flex;gap:8px;font-size:14px;color:var(--ink-2)}
.crumb a:hover{color:var(--ink)}
.f-head{margin-top:16px}
.f-head h1{font-size:clamp(40px,4vw,56px)}
.f-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-top:12px;font-size:15px;color:var(--ink-2)}
.f-meta .rate{color:var(--ink)}
.f-tags{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;font-size:14px;font-weight:500}
.f-tags .v{display:inline-flex;align-items:center;gap:4px}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:8px;margin-top:24px;border-radius:16px;overflow:hidden}
.gal>img{width:100%;height:100%;object-fit:cover}
.gal>img:first-child{grid-row:span 2}
.gal-more{position:relative;padding:0;border:0;background:var(--ink);color:#fff;font-size:15px;font-weight:500;cursor:pointer;overflow:hidden}
.gal-more img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.gal-more span{position:relative}
.f-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start;margin-top:32px}
.f-main{display:flex;flex-direction:column;gap:48px;min-width:0}
.f-main section{scroll-margin-top:24px}
.f-main h2{margin-bottom:16px}
.f-main .head h2{margin:0}
.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);font-size:15px;overflow-x:auto;scrollbar-width:none}
.tabs a{flex:none;padding:12px 0;color:var(--ink-2);margin-bottom:-1px;border-bottom:2px solid transparent;transition:color .15s var(--ease)}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--ink);font-weight:500;border-bottom-color:var(--ink)}
.prose{font-size:17px;line-height:28px;max-width:640px}
.plain{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px;font-size:15px;color:var(--ink-2)}
.scores{display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.score-main b{display:block;font-family:var(--title);font-weight:600;font-size:64px;line-height:64px;letter-spacing:-.03em}
.score-main p{margin-top:8px;font-size:14px;line-height:20px;color:var(--ink-2)}
.scores dl>div{display:flex;justify-content:space-between;padding:8px 0;font-size:15px}
.scores dl>div+div{border-top:1px solid var(--line)}
.scores dt{color:var(--ink-2)}
.scores dd{font-family:var(--title);font-weight:600}
.rec{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;font-size:15px}
.rec span{font-weight:500;margin-right:8px}
.btn-q{height:40px;padding:0 16px;border:0;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-size:14px;cursor:pointer;transition:background-color .15s var(--ease)}
.btn-q:hover{background:var(--sand-2)}
.rev{padding:16px 0;border-top:1px solid var(--line)}
.rev>div{display:flex;align-items:baseline;gap:8px}
.rev b{font-weight:500}
.rev .rate{margin-left:auto}
.rev p{margin-top:4px}
.rev small{display:block;margin-top:4px;font-size:13px;line-height:20px;color:var(--ink-2)}
.hours{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mini-map{position:relative;height:220px;border-radius:12px;overflow:hidden}
.hours table{width:100%;border-collapse:collapse;font-size:15px;align-self:start}
.hours td{padding:12px 0;border-bottom:1px solid var(--line)}
.hours td:first-child{color:var(--ink-2)}
.hours td:last-child{text-align:right}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{padding:16px 0;font-weight:500;cursor:pointer}
.f-side{position:sticky;top:24px;display:flex;flex-direction:column;gap:16px}
.contact{padding:24px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line),0 8px 24px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:8px}
.contact h2{font-size:20px;line-height:28px;margin-bottom:8px;letter-spacing:-.01em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.contact .meta{margin-top:8px}
.claim{padding:24px;border-radius:16px;background:var(--sand-2)}
.claim p{margin:8px 0 12px;font-size:15px;line-height:22px;color:var(--ink-2)}
.link-q{font-size:14px;font-weight:400;color:var(--ink-2);align-self:flex-start}
.f-near{margin-top:64px}
.f-near h2{margin-bottom:24px}

/* Ajouter un commerce */
.prop{padding-top:40px;padding-bottom:64px}
.prop h1{font-size:40px;line-height:48px}
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.opt{display:flex;gap:12px;padding:16px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}
.opt.on{box-shadow:inset 0 0 0 1.5px var(--ink)}
input[type=radio],input[type=checkbox]{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:var(--ink)}
.opt span,.proof span{display:flex;flex-direction:column}
.opt b,.proof b{font-weight:500}
.opt small,.proof small{font-size:14px;line-height:20px;color:var(--ink-2)}
.prop-b{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start;margin-top:32px}
.form{display:flex;flex-direction:column;gap:24px}
.form-g{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{display:flex;flex-direction:column;gap:8px}
.fld>span{font-size:14px;line-height:20px;font-weight:500}
.fld input,.fld select,.fld textarea{width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);outline-offset:0;font-size:15px}
.fld textarea{padding:12px;resize:vertical}
.fld ::placeholder{color:var(--ink-2)}
.fld small{font-size:13px;line-height:20px;color:var(--ink-2)}
.ph{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ph>*{height:96px;border-radius:8px}
.ph i{background:var(--sand-2)}
.ph button{border:0;background:var(--sand);font-size:14px;font-weight:500;cursor:pointer}
.checks{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;line-height:20px}
.checks label{display:flex;gap:8px}
.checks label+label{color:var(--ink-2)}
.checks input{margin-top:1px}
.form-a{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.prop-s{display:flex;flex-direction:column;gap:12px}
.panel{padding:20px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:12px}
.panel h2{font-size:16px;line-height:24px;letter-spacing:-.005em}
.panel-s{background:var(--sand-2);box-shadow:none}
.pv{display:flex;align-items:center;gap:12px}
.pv-i{width:48px;height:48px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--title);font-weight:600}
.pv span:last-child{display:flex;flex-direction:column}
.pv b{font-family:var(--title);font-weight:600}
.pv small{font-size:14px;line-height:20px;color:var(--ink-2)}
.proof{display:flex;gap:8px;font-size:15px;line-height:22px}
.path{display:flex;flex-direction:column;font-size:14px;line-height:20px;color:var(--ink-2)}
.path li{display:flex;align-items:center;gap:8px;padding:4px 0}
.path li::before{content:"";width:6px;height:6px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink-2)}
.path .on{color:var(--ink);font-weight:500}
.path .on::before{background:var(--ink);box-shadow:none}

/* Espace pro */
.shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}
.side{background:var(--ink);color:var(--d-t2);padding:20px 12px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.side .brand{padding:0 8px 24px}
.side a:not(.brand){height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;border-radius:8px;transition:background-color .15s var(--ease),color .15s var(--ease)}
.side a:not(.brand):hover{color:#fff}
.side a.on{background:#262421;color:#fff;font-weight:500}
.side p{margin:24px 8px 8px;font-size:13px;line-height:20px;color:var(--d-t2)}
.side em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--d-t2)}
.dash{padding:32px;display:flex;flex-direction:column;gap:24px;max-width:1440px;width:100%;min-width:0}
.dash .head{margin:0;align-items:center}
.dash h1{font-size:32px;line-height:40px;letter-spacing:-.02em}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stats>div{padding:20px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:8px;min-width:0}
.stats span{font-size:14px;line-height:20px;color:var(--ink-2)}
.stats b{font-family:var(--title);font-weight:600;font-size:28px;line-height:32px;letter-spacing:-.02em}
.stats small{font-size:14px;line-height:20px;color:var(--ink-2)}
.stats .st-v{display:flex;align-items:center;gap:8px;font-size:18px}
.dash-2{display:grid;grid-template-columns:3fr 2fr;gap:16px}
.bar{height:6px;border-radius:3px;background:var(--sand);overflow:hidden}
.bar i{display:block;width:66%;height:100%;background:var(--ink)}
.dash-2 ul{display:flex;flex-direction:column;gap:8px;font-size:14px}
.dash-2 .link{font-size:14px}
.dash-2 .panel-s h2{font-size:18px}
.head-t{flex-wrap:wrap}
.head-t h2{font-size:18px}
.head-t small{font-family:Roboto,sans-serif;font-weight:400;font-size:14px;color:var(--ink-2);letter-spacing:0;margin-left:8px}
.seg{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.seg button{flex:none;height:32px;padding:0 12px;border:0;border-radius:8px;background:none;font-size:14px;color:var(--ink-2);cursor:pointer}
.seg .on{background:var(--sand);color:var(--ink);font-weight:500}
.tbl{overflow-x:auto}
.tbl table{width:100%;min-width:720px;border-collapse:collapse;font-size:14px}
.tbl th{padding:8px;text-align:left;font-weight:400;color:var(--ink-2);border-bottom:1px solid var(--line)}
.tbl td{padding:8px;border-bottom:1px solid var(--line)}
.tbl tr:last-child td{border-bottom:0}
.tbl b{font-weight:500}
.acts{display:flex;gap:4px}
.acts button{height:32px;padding:0 12px;border:0;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-size:13px;cursor:pointer}
.acts .b-ok{background:var(--ink);color:#fff;box-shadow:none}
.acts .b-no{color:var(--brick)}

/* App */
.p-app{background:var(--sand)}
.stage{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:32px 16px}
.phone{position:relative;width:390px;max-width:100%;background:#fff;border-radius:24px;overflow:hidden;padding-bottom:80px}
.ph-top{padding:32px 20px 16px}
.ph-city{display:flex;align-items:center;gap:4px;font-size:14px;line-height:20px;font-weight:500}
.phone h1{margin-top:12px;font-size:32px;line-height:36px;letter-spacing:-.03em}
.ph-search{display:flex;align-items:center;gap:8px;height:48px;margin-top:16px;padding:0 12px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line);font-size:15px;color:var(--ink-2)}
.ph-img{width:100%;height:200px;object-fit:cover;object-position:46% 40%}
.ph-cats{display:flex;gap:12px;padding:16px 20px;overflow-x:auto;scrollbar-width:none}
.ph-cats a{flex:none;width:64px;display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:16px}
.ph-cats img{width:64px;height:64px;border-radius:12px;object-fit:cover}
.ph-h{padding:0 20px;margin:8px 0 4px}
.ph-h h2{font-size:20px;line-height:28px}
.ph-h .link{font-size:14px}
.ph-list{padding:0 20px}
.ph-list a{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.ph-list a:last-child{border-bottom:0}
.ph-list img{width:56px;height:56px;border-radius:8px;object-fit:cover}
.ph-list span:nth-child(2){flex:1;display:flex;flex-direction:column}
.ph-list b{font-family:var(--title);font-weight:600;font-size:15px;line-height:20px}
.ph-list small{font-size:13px;line-height:20px;color:var(--ink-2)}
.ph-tabs{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);padding:8px;background:#fff;box-shadow:0 -1px 0 var(--line)}
.ph-tabs a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;line-height:16px;padding:4px 0;color:var(--ink-2)}
.ph-tabs .on{color:var(--ink);font-weight:500}

@media (max-width:1180px){
  .res{grid-template-columns:minmax(0,1fr)}
  .map{position:relative;top:0;height:520px;grid-row:1}
  .nav-links{display:none}
  .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f-body,.prop-b{grid-template-columns:1fr;gap:32px}
  .f-side{position:static}
}
@media (max-width:860px){
  .wrap,.wrap-w{padding:0 16px}
  .sec{padding:64px 0}
  .sec-t0{padding-top:0}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-txt{padding:32px 16px 40px;justify-content:flex-start}
  .hero-in{max-width:none}
  .hero-img{height:320px}
  .search{flex-direction:column;padding:8px;gap:0}
  .search label{padding:0 8px}
  .search label+label{box-shadow:inset 0 1px 0 var(--line)}
  .search .btn{margin-top:8px}
  .lang,.nav-end .link,.nav-me b{display:none}
  .facts-in{grid-template-columns:1fr 1fr}
  .facts-t{grid-column:1 / -1}
  .index{grid-template-columns:1fr 1fr;column-gap:16px}
  .index a{font-size:14px}
  .rows2,.how,.pro,.who,.form-g,.hours{grid-template-columns:1fr}
  .how li{grid-template-columns:32px 1fr;gap:4px 8px}
  .how li p{grid-column:2}
  .pro{gap:32px}
  .scene{min-height:480px}
  .res-top{flex-wrap:wrap;gap:12px}
  .res-top .btn-sm{display:none}
  .search-s{flex:1 1 100%;flex-direction:row;padding:2px}
  .search-s .btn{margin:0;padding:0 12px}
  .search-s label{padding:0 8px}
  .search-s label+label{box-shadow:inset 1px 0 0 var(--line)}
  .search-s input{font-size:14px}
  .search-s .ic{display:none}
  .nav-res{position:relative}
  .cats-b{grid-template-columns:minmax(0,1fr);gap:16px}
  .cats-nav{position:static;flex-direction:row;max-height:none;overflow-x:auto;scrollbar-width:none;gap:4px;margin:0 -16px;padding:0 16px 8px}
  .cats-nav a{flex:none;box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;gap:4px}
  .cat-sec ul{columns:2;column-gap:16px}
  .cat-sec:first-child{padding-top:8px}
  .gal{grid-template-columns:1fr 1fr;grid-template-rows:200px 112px 112px}
  .gal>img:first-child{grid-column:span 2;grid-row:auto}
  .scores{grid-template-columns:1fr;gap:16px}
  .shell{grid-template-columns:1fr}
  .side{flex-direction:row;flex-wrap:nowrap;align-items:center;overflow-x:auto;scrollbar-width:none;padding:8px 16px}
  .side .brand{padding:0 12px 0 0;flex:none}
  .side a:not(.brand){flex:none}
  .side p{display:none}
  .dash{padding:24px 16px}
  .stats{grid-template-columns:1fr 1fr}
  .dash-2{grid-template-columns:1fr}
  .dash .head{flex-wrap:wrap}
}
@media (max-width:520px){
  .map-q{left:16px;transform:none}
  .map-me{width:36px;padding:0;justify-content:center;font-size:0;gap:0}
  .stage{padding:0}
  .phone{border-radius:0}
  .grid2,.grid4{grid-template-columns:1fr}
  .map{height:440px;min-height:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Site Next.js : note Google vide tant qu'elle n'est pas chargée, choix de langue */
.score-main:empty{display:none}
.lang a{color:inherit;text-decoration:none}.lang a:hover{text-decoration:underline}.lang b{font-weight:600}
.langm{position:relative}
.langm summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 8px;border-radius:8px;font:500 14px/20px Roboto,system-ui,sans-serif}
.langm summary::-webkit-details-marker{display:none}
.langm summary:hover,.langm[open] summary{background:#f3f1ee}
.langm img{border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12);object-fit:cover}
.langm ul{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:60;margin:0;padding:6px;list-style:none;background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.14);min-width:190px;max-height:70vh;overflow:auto}
.langm li a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:inherit;text-decoration:none;font-size:15px}
.langm li a:hover{background:#f3f1ee}.langm li a[aria-current]{font-weight:600}
[dir=rtl] body{font-family:Roboto,"Noto Sans Arabic",Tahoma,system-ui,sans-serif}
/* Connexion (style des grands sites d'avis) */
.login-page{max-width:420px;margin:56px auto 80px;text-align:center}
.login-page h1{margin-bottom:8px;font-size:34px;line-height:42px}.login-page .lead{margin:0 auto 28px}
.login{display:flex;flex-direction:column;gap:12px;text-align:start}
.lbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:48px;border-radius:999px;font:500 16px/1 Roboto,system-ui,sans-serif;cursor:pointer}
.lbtn-g{background:#fff;color:#1f1f1f;border:1px solid #c9c6c1}.lbtn-g:hover{background:#f6f5f3}
.lbtn-a{background:#000;color:#fff;border:1px solid #000}.lbtn-a:hover{background:#222}
.login-more{align-self:center;margin-top:4px;background:none;border:0;cursor:pointer;font:inherit;text-decoration:underline}
.login-mail{margin-top:8px}
/* Menu replié sous 1180 px, recherche de l'accueil sur deux lignes quand la colonne est étroite */
.navm{display:none;position:relative}
.navm summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;border-radius:8px;cursor:pointer;color:var(--ink)}
.navm summary::-webkit-details-marker{display:none}
.navm summary:hover,.navm[open] summary{background:#f3f1ee}
.navm nav{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:60;display:flex;flex-direction:column;min-width:220px;padding:8px;background:#fff;border-radius:12px;box-shadow:0 0 0 1px var(--line),0 12px 32px rgba(0,0,0,.14)}
.navm nav a{padding:8px 12px;border-radius:8px;font-size:15px;line-height:20px}
.navm nav a:hover{background:#f3f1ee}
.near .st{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.near>span{min-width:0}
.panel h2{letter-spacing:0}
@media (max-width:1180px){
  .navm{display:block}
  .hero .search{flex-direction:column;padding:8px;gap:0}
  .hero .search label{padding:0 8px}
  .hero .search label+label{box-shadow:inset 0 1px 0 var(--line)}
  .hero .search .btn{margin-top:8px}
}
.score-main:empty+.prose{grid-column:1 / -1;max-width:560px}
.brand{flex:none}
.navm-add{display:none}
@media (max-width:520px){
  .nav-end>.link,.nav-end>.btn-sm{display:none}
  .navm-add{display:block;margin-top:4px;background:var(--ink);color:#fff!important;text-align:center}
  .navm-add:hover{background:var(--ink)!important}
}
/* Boutons des stores */
.stores{display:flex;flex-wrap:wrap;gap:8px}
.store{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 16px 0 12px;border-radius:10px;background:var(--ink);color:#fff;transition:background-color .15s var(--ease)}
.store:hover{background:#2a2a2a}
.store span{display:flex;flex-direction:column;line-height:1.1}
.store small{font-size:11px;letter-spacing:.01em;opacity:.8}
.store b{font-family:var(--title);font-weight:600;font-size:17px}
/* Fenêtre « dans ta poche » */
.promo{width:min(880px,calc(100% - 48px));max-width:none;padding:0;border:0;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 24px 64px rgba(0,0,0,.24)}
.promo::backdrop{background:rgba(11,11,11,.48)}
.promo[open]{animation:promo-in .24s var(--ease)}
@keyframes promo-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.promo-in{position:relative;display:grid;grid-template-columns:1fr 300px;min-height:440px}
.promo-t{padding:40px;display:flex;flex-direction:column;gap:20px}
.promo-ic{border-radius:12px}
.promo h2{font-size:28px;line-height:36px;letter-spacing:-.01em}
.promo ul{display:flex;flex-direction:column;gap:12px;font-size:16px;line-height:24px}
.promo li{display:flex;gap:12px;align-items:flex-start}
.promo li svg{flex:none;margin-top:3px;color:var(--brick)}
.promo-qr{display:flex;align-items:center;gap:16px;padding:12px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line)}
.promo-qr span{flex:none;display:block;width:88px;height:88px}
.promo-qr svg{display:block;width:100%;height:100%}
.promo-qr p{display:flex;flex-direction:column;gap:4px}
.promo-qr b{font-weight:500}.promo-qr small{font-size:14px;line-height:20px;color:var(--ink-2)}
.promo-v{position:relative;overflow:hidden;border-radius:0 20px 20px 0;background:var(--sand-2);display:flex;align-items:flex-end;justify-content:center;padding-top:40px}
[dir=rtl] .promo-v{border-radius:20px 0 0 20px}
.promo-x{position:absolute;top:16px;inset-inline-end:16px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line)}
.promo-x:hover{background:#f3f1ee}
/* Aperçu du téléphone dans la fenêtre */
.pphone{width:220px;height:392px;margin-bottom:-24px;padding:16px 12px;border-radius:32px 32px 0 0;background:#fff;box-shadow:0 0 0 8px #0b0b0b,0 20px 40px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:8px}
.pp-top{display:flex;flex-direction:column;gap:2px;padding:4px 4px 0}.pp-city{font-size:10px;color:var(--ink-2)}.pp-top b{font-family:var(--title);font-weight:600;font-size:15px}
.pp-search{height:28px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line)}
.pp-card{display:flex;align-items:center;gap:8px;padding:6px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line)}
.pp-card img{width:40px;height:40px;border-radius:6px;object-fit:cover}
.pp-card span{flex:1;display:flex;flex-direction:column;min-width:0}.pp-card b{font-size:12px}.pp-card small{font-size:10px;color:var(--ink-2)}
.pp-card em{font-style:normal;font-size:11px;font-weight:600}
.pp-map{position:relative;flex:1;border-radius:10px;background:#ece8e1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M0 30h60M30 0v60M0 10l60 40' stroke='%23fff' stroke-width='3' fill='none'/%3E%3C/svg%3E")}
.pp-map i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px #fff}
.pp-map i.on{background:var(--brick)}
/* Bande mobile */
.pbar{position:fixed;left:8px;right:8px;bottom:8px;z-index:1000;display:flex;align-items:center;gap:12px;padding:10px 8px 10px 12px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--line),0 12px 32px rgba(0,0,0,.16)}
.pbar img{flex:none;border-radius:10px}
.pbar p{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:18px}
.pbar small{font-size:12px;line-height:16px;color:var(--ink-2)}
.pbar-x{flex:none;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--ink-2);cursor:pointer}
@media (max-width:760px){.promo-in{grid-template-columns:1fr}.promo-v{display:none}}
/* Fiche : note sous le titre, mosaïque de photos, galerie, bloc confiance */
.f-rate{display:flex;align-items:baseline;gap:8px;margin-top:8px;font-size:15px;color:var(--ink-2)}
.f-rate .rate{color:var(--ink)}
.mosaic{display:grid;gap:8px;margin-top:24px;height:400px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
.mosaic a{position:relative;display:block;overflow:hidden;border-radius:12px;background:var(--sand-2)}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:opacity .15s var(--ease)}
.mosaic a:hover img{opacity:.92}
.mosaic .m-big{grid-row:1 / 3}
.mosaic.m3{grid-template-columns:2fr 1fr}
.mosaic.m4 a:nth-child(4){grid-column:2 / 4}
.m-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(11,11,11,.48);color:#fff;font-family:var(--title);font-weight:600;font-size:22px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:16px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.trust{padding:24px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:12px}
.trust h3{font-size:16px;line-height:24px}
.trust ul{display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:22px}
.trust li{display:flex;align-items:baseline;gap:10px}
.trust li i{flex:none;width:8px;height:8px;border-radius:50%;background:#c9c6c1;transform:translateY(-1px)}
.trust li i.ok{background:var(--ink)}
.trust p{font-size:14px;line-height:20px;color:var(--ink-2)}
@media (max-width:860px){.mosaic{height:260px;grid-template-columns:2fr 1fr}.mosaic a:nth-child(n+4){display:none}.mosaic .m-big{grid-row:1 / 3}}
/* Comment fonctionne Ganacsato */
.howto{max-width:760px;padding-top:56px;padding-bottom:80px}
.howto h1{font-size:clamp(36px,4vw,48px);line-height:1.15}
.howto .lead{margin-top:16px;max-width:620px}
.howto ol{margin-top:48px;display:flex;flex-direction:column;gap:32px}
.howto li{display:grid;grid-template-columns:40px 1fr;gap:16px;padding-top:32px;border-top:1px solid var(--line)}
.howto li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--sand-2);font-family:var(--title);font-weight:600}
.howto h2{font-size:20px;line-height:28px}
.howto .prose{margin-top:8px}
.legal{max-width:760px;padding-top:56px;padding-bottom:80px}
.legal h1{font-size:clamp(36px,4vw,48px);line-height:1.15}
.legal .lead{margin-top:16px;max-width:620px}
.legal>.meta{margin-top:12px}
.legal-toc{margin-top:32px;padding:20px 24px;border:1px solid var(--line);border-radius:12px}
.legal-toc ol{list-style:decimal;padding-inline-start:20px;display:grid;gap:4px;font-size:14px}
.legal-toc a{color:inherit;text-decoration:none}
.legal-toc a:hover{text-decoration:underline}
.legal section{margin-top:40px;scroll-margin-top:88px}
.legal h2{font-size:20px;line-height:28px}
.legal section .prose{margin-top:8px}
/* Résultats façon TheFork : une ligne par commerce, photo à gauche, infos à droite */
.res .grid2{grid-template-columns:1fr;gap:12px}
.res .card{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:20px;row-gap:4px;padding:12px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .15s var(--ease)}
.res .card:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.res .card-img{grid-row:1 / 4;margin:0;aspect-ratio:4/3;border-radius:10px}
.res .card-t{padding-top:4px}
.res .card-t b{font-size:18px;line-height:24px}
.res .res-sub{margin:16px 0 0}
@media (max-width:560px){.res .card{grid-template-columns:112px minmax(0,1fr);column-gap:12px;padding:8px}.res .card-t b{font-size:16px}}

/* Avis Ganacsato */
.rv{margin-top:16px;display:flex;flex-direction:column;gap:16px}
.rv-head{display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rv-head:has(.rv-sum:only-child){grid-template-columns:1fr;padding:16px 0 0;border-bottom:0}
.rv-sum h3{font-size:15px;line-height:20px;font-weight:500}
.rv-avg{margin-top:8px;display:flex;align-items:baseline;gap:8px}
.rv-avg b{font-family:var(--title);font-weight:600;font-size:48px;line-height:48px;letter-spacing:-.03em}
.rv-avg span{color:var(--ink-2);font-size:14px}
.rv-stars{display:inline-flex;gap:2px;color:var(--brick)}
.rv-dist{display:flex;flex-direction:column;gap:6px}
.rv-dist>div{display:grid;grid-template-columns:16px 1fr 28px;gap:12px;align-items:center;font-size:14px}
.rv-dist dt{color:var(--ink-2);font-variant-numeric:tabular-nums}
.rv-dist dd{height:8px;border-radius:4px;background:var(--sand);overflow:hidden}
.rv-dist dd i{display:block;height:100%;border-radius:4px;background:var(--brick)}
.rv-dist span{color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
.rv-form{padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--sand-2)}
.rv-pick{display:flex;align-items:center;gap:4px;border:0;padding:0;margin:0}
.rv-pick legend{font-size:14px;line-height:20px;font-weight:500;margin-bottom:8px;float:left;width:100%}
.rv-pick label{cursor:pointer;color:var(--ink-2);padding:2px}
.rv-pick label.on{color:var(--brick)}
.rv-pick label svg{width:28px;height:28px}
.rv-pick input{position:absolute;opacity:0;width:1px;height:1px}
.rv-pick label:has(input:focus-visible){outline:2px solid var(--brick);border-radius:4px}
.rv-pick .meta{margin-left:8px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:20px}
.chk input{margin-top:2px;width:16px;height:16px;accent-color:var(--brick);flex:none}
.rv-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.rv-ok{padding:12px 16px;border-radius:8px;background:var(--sand);font-size:15px}
.rv-err{color:var(--brick)}
.rv-list .rev{display:flex;flex-direction:column;gap:6px}
.rv-by{display:flex;align-items:center;gap:10px}
.rv-by img,.rv-by>span{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none}
.rv-by>span{display:grid;place-items:center;background:var(--ink);color:#fff;font-size:13px;font-weight:500}
.rv-by .meta{margin-left:auto}
.rev h4{font-size:16px;line-height:24px;font-weight:500}
.rv-reply{margin-top:4px;padding:12px 16px;border-left:2px solid var(--line);background:var(--sand-2);border-radius:0 8px 8px 0}
.rv-reply b{font-size:14px}
.rv-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}
.rv-flag{color:var(--ink-2)}
.rv-rep{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.rv-rep select{min-height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;padding:0 8px}
@media (max-width:760px){.rv-head{grid-template-columns:1fr;gap:16px}}

/* Pages formulaire : inscrire un commerce, revendiquer */
.formpage{max-width:680px;padding-top:56px;padding-bottom:80px}
.formpage h1{margin-top:8px;font-size:clamp(32px,4vw,44px);line-height:1.15}
.formpage .lead{margin-top:12px;max-width:560px}
.formcard{margin-top:32px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.formcard.form{align-items:stretch}
.formcard fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.formcard legend{font-size:14px;line-height:20px;font-weight:500;margin-bottom:8px}
.two-f{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:520px){.two-f{grid-template-columns:1fr}}
.seg{flex-direction:row!important;flex-wrap:wrap;gap:8px!important}
.seg legend{width:100%}
.seg label{padding:8px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);font-size:14px;cursor:pointer}
.seg label.on{box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:500}
.seg input,.proofs input{position:absolute;opacity:0;width:1px;height:1px}
.seg label:has(input:focus-visible),.proofs label:has(input:focus-visible){outline:2px solid var(--brick);outline-offset:2px}
.proofs{gap:8px!important}
.proofs label{display:flex;gap:12px;padding:14px 16px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}
.proofs label.on{box-shadow:inset 0 0 0 1.5px var(--ink)}
.proofs label span{display:flex;flex-direction:column;gap:2px}
.proofs b{font-weight:500;font-size:15px}
.proofs small{font-size:13px;line-height:18px;color:var(--ink-2)}
.founders{margin-top:20px;padding:12px 16px;border-radius:8px;background:var(--sand);font-size:14px;line-height:20px}
.fld input[type=file]{padding:10px 12px}

/* Page Équipe */
.team{max-width:880px;padding-top:56px;padding-bottom:80px}
.team section{margin-top:40px}
.team h2{font-size:22px;line-height:28px}
.team-card{margin-top:16px;padding:20px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px}
.team-card h3{font-size:17px;line-height:24px;font-weight:500}
/* Espace Pro */
.pro .formcard h3{font-size:18px;line-height:24px;font-weight:500;margin:0}
.pro-pick{margin-top:32px;max-width:360px}
.pro-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:32px}
.pro-head h2{margin:0}
.pro-price{margin-top:12px}
.pro-nums{margin:16px 0 12px}
.pro-nums b{font-size:24px;line-height:32px;font-variant-numeric:tabular-nums}
.pro-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:20px}
.pro-stats>div{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:4px}
.pro-stats span,.pro-stats small{font-size:13px;line-height:20px;color:var(--ink-2)}
.pro-stats b{font-size:18px;line-height:24px;font-weight:500}
.pro-bar{width:100%;height:8px;border-radius:4px;background:var(--sand);overflow:hidden}
.pro-bar i{display:block;height:100%;background:var(--brick);border-radius:4px}
.pro-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:24px}
.pro-steps li{display:flex;gap:10px;align-items:center;color:var(--ink-2)}
.pro-steps li span{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.pro-steps li.ok{color:inherit}
.pro-steps li.ok span{background:var(--brick);color:#fff;box-shadow:none}
.pro-hours{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
@media (max-width:520px){.pro-hours{grid-template-columns:1fr}}
.pro-file{position:relative;cursor:pointer}
.pro-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pro-file:focus-within{outline:2px solid var(--brick);outline-offset:2px}
.pro-logo{width:96px;height:96px;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#fff}
.pro-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;width:100%}
.pro-photos figure{margin:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pro-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
/* Pour les commerçants, Application */
.merch{max-width:880px;padding-top:56px;padding-bottom:80px}
.merch h1{font-size:clamp(36px,4vw,48px);line-height:1.15}
.merch .lead{margin-top:16px;max-width:660px}
.merch>.actions{margin-top:28px}
.merch>section{margin-top:64px}
.merch>section>h2{font-size:28px;line-height:36px}
.merch .howto{max-width:none;padding:0}
.merch .howto ol{margin-top:24px}
.merch .howto h3{font-size:20px;line-height:28px}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:24px}
.plan{padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;flex-direction:column;gap:12px}
.plan h2,.plan h3{font-size:22px;line-height:28px}
.plan ul,.plan ol{margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:24px}
.plan ul{list-style:none}
.plan ol{padding-inline-start:20px}
.plan li svg{color:var(--brick);vertical-align:-3px;margin-inline-end:8px}
.plan-pro{box-shadow:inset 0 0 0 1px var(--brick);border-color:var(--brick)}
.merch-band{padding:28px;border-radius:16px;background:var(--sand)}
.merch-band .prose{margin-top:8px}
.merch-end{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--line)}
.app-points{margin:24px 0;padding-inline-start:20px;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:24px}
.app-qr svg{width:140px;height:140px}
.merch .stores{margin-top:40px}
.merch>section>.prose,.merch>section>p{margin-top:12px}

.res-pro{margin-top:4px}
