/* Resto Lyon — carte complète */
.rl-carte{--rl-r:#c8102e;--rl-encre:#211b18;--rl-doux:#8f877f;--rl-sable:#f7f3ee;--rl-trait:#ebe5de;display:grid;grid-template-columns:minmax(340px,410px) minmax(0,1fr);height:var(--rl-c-h,calc(100vh - 110px));min-height:480px;background:#fff;color:var(--rl-encre);font-size:14px;line-height:1.45;text-align:left}
.rl-carte *{box-sizing:border-box}
.rl-c-panneau{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--rl-trait);background:#fff}
.rl-c-tete{padding:22px 20px 14px}
.rl-carte .rl-c-titre{margin:0 0 4px;font-size:23px;line-height:1.2;font-weight:700;color:var(--rl-encre)}
.rl-c-sous{margin:0 0 14px;color:var(--rl-doux);font-size:13.5px}
.rl-c-recherche{position:relative;display:block;margin:0 0 12px}
.rl-c-recherche svg{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--rl-doux);pointer-events:none}
.rl-carte .rl-c-texte{width:100%;height:46px;margin:0;padding:0 14px 0 42px;border:1px solid var(--rl-trait);border-radius:12px;background:var(--rl-sable);font:inherit;font-size:15px;color:var(--rl-encre);box-shadow:none;transition:border-color .15s,background .15s,box-shadow .15s}
.rl-carte .rl-c-texte:focus{outline:none;background:#fff;border-color:var(--rl-r);box-shadow:0 0 0 3px rgba(200,16,46,.12)}
.rl-c-filtres{display:flex;flex-wrap:wrap;gap:7px}
.rl-carte .rl-c-cuisine{height:34px;max-width:100%;margin:0;padding:0 30px 0 13px;border:1px solid var(--rl-trait);border-radius:999px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f877f' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center/13px;font:inherit;font-size:13.5px;font-weight:500;color:var(--rl-encre);-webkit-appearance:none;appearance:none;cursor:pointer}
.rl-carte .rl-c-f{height:34px;margin:0;padding:0 13px;border:1px solid var(--rl-trait);border-radius:999px;background:#fff;font:inherit;font-size:13.5px;font-weight:500;color:var(--rl-encre);cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s,color .15s}
.rl-carte .rl-c-f:hover,.rl-carte .rl-c-cuisine:hover{border-color:var(--rl-r);color:var(--rl-r)}
.rl-carte .rl-c-f[aria-pressed="true"]{background:var(--rl-r);border-color:var(--rl-r);color:#fff}
.rl-c-etat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 20px;border-top:1px solid var(--rl-trait);border-bottom:1px solid var(--rl-trait);font-size:13px;font-weight:600;color:var(--rl-encre)}
.rl-carte .rl-c-raz{margin:0;padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--rl-r);cursor:pointer}
.rl-carte .rl-c-raz:hover{text-decoration:underline}
.rl-c-liste{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;padding:14px 14px 90px;background:#faf8f5}
.rl-c-fiche{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border:1px solid var(--rl-trait);border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.rl-c-fiche:hover,.rl-c-fiche:focus-visible{outline:none;border-color:#dcd3c9;box-shadow:0 10px 24px -14px rgba(33,20,12,.45)}
.rl-c-fiche.rl-c-fiche-actif{border-color:var(--rl-r);box-shadow:0 0 0 2px rgba(200,16,46,.15)}
.rl-c-fiche-img{display:block;width:86px;height:86px;border-radius:10px;overflow:hidden;background:var(--rl-sable)}
.rl-c-fiche-img img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.rl-c-fiche-corps{display:flex;flex-direction:column;gap:2px;min-width:0}
.rl-carte a.rl-c-fiche-nom{font-size:15px;font-weight:600;line-height:1.3;color:var(--rl-encre);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rl-carte a.rl-c-fiche-nom:hover{color:var(--rl-r)}
.rl-c-fiche-meta{font-size:13px;color:var(--rl-doux);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rl-c-fiche-info{font-size:12.5px;color:var(--rl-encre)}
.rl-c-ouvert{color:#1f7a3a;font-weight:600}
.rl-c-ferme{color:#8f877f;font-weight:500}
.rl-carte .rl-c-plus{align-self:center;margin:4px 0 0;padding:9px 16px;border:1px solid var(--rl-trait);border-radius:999px;background:#fff;font:inherit;font-size:13.5px;font-weight:600;color:var(--rl-r);cursor:pointer}
.rl-carte .rl-c-plus:hover{border-color:var(--rl-r)}
.rl-c-vide{padding:30px 10px;text-align:center;color:var(--rl-doux)}
.rl-c-vide p{margin:0 0 12px}
.rl-c-zone{position:relative;min-height:0}
.rl-c-carte{position:absolute;inset:0;background:#e9e4dc;z-index:0}
.rl-carte .rl-c-moi{position:absolute;top:14px;left:14px;z-index:500;display:inline-flex;align-items:center;gap:8px;height:40px;margin:0;padding:0 15px;border:0;border-radius:999px;background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--rl-encre);box-shadow:0 6px 18px rgba(33,20,12,.18);cursor:pointer}
.rl-carte .rl-c-moi:hover{color:var(--rl-r)}
.rl-c-moi svg{width:18px;height:18px;color:var(--rl-r)}
.rl-c-moi-attente svg{animation:rl-c-tourne 1s linear infinite}
@keyframes rl-c-tourne{to{transform:rotate(360deg)}}
/* Marqueurs */
.rl-c-pin{background:none;border:0}
.rl-c-pin span{position:absolute;left:3px;top:2px;width:24px;height:24px;border-radius:50% 50% 50% 0;background:var(--rl-r,#c8102e);border:3px solid #fff;transform:rotate(-45deg);box-shadow:-2px 3px 8px rgba(0,0,0,.3);transition:transform .15s,background .15s}
.rl-c-pin span::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#fff}
.rl-c-pin-actif span{background:#211b18;transform:rotate(-45deg) scale(1.25)}
.rl-c-grappe{background:none;border:0}
.rl-c-grappe span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:#c8102e;color:#fff;font-weight:700;font-size:14px;border:3px solid #fff;box-shadow:0 0 0 6px rgba(200,16,46,.2),0 4px 12px rgba(0,0,0,.25);transition:transform .15s}
.rl-c-grappe-l span{font-size:15px}
.rl-c-grappe:hover span{transform:scale(1.08)}
.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .3s ease-out,opacity .3s ease-in}
.leaflet-cluster-spider-leg{transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}
/* Fenêtre d'une adresse */
.rl-c-popup .leaflet-popup-content-wrapper{padding:0;border-radius:16px;overflow:hidden;box-shadow:0 18px 40px -12px rgba(33,20,12,.45)}
.rl-c-popup .leaflet-popup-content{margin:0;width:260px!important;font-family:inherit;font-size:13.5px;line-height:1.4}
.rl-c-popup a.leaflet-popup-close-button{top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.92);color:#211b18;font:600 18px/26px sans-serif;text-align:center}
.rl-c-pop-img{display:block;height:132px;overflow:hidden;background:#f7f3ee}
.rl-c-pop-img img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.rl-c-pop-corps{padding:11px 14px 13px}
.rl-c-popup a.rl-c-pop-nom{display:block;font-size:16px;font-weight:700;line-height:1.25;color:#211b18;text-decoration:none}
.rl-c-popup a.rl-c-pop-nom:hover{color:#c8102e}
.rl-c-popup .rl-c-pop-meta{margin:3px 0 0;color:#8f877f;font-size:13px}
.rl-c-popup .rl-c-pop-info{margin:4px 0 0;font-size:12.5px}
.rl-c-popup a.rl-c-pop-lien{display:inline-block;margin-top:9px;font-weight:700;color:#c8102e;text-decoration:none}
.rl-c-popup a.rl-c-pop-lien:hover{text-decoration:underline}
.rl-carte .leaflet-control-zoom{border:0;box-shadow:0 6px 18px rgba(33,20,12,.18);border-radius:12px;overflow:hidden;margin:14px 14px 0 0}
.rl-carte .leaflet-control-zoom a{width:38px;height:38px;line-height:38px;color:#211b18}
.rl-carte .leaflet-control-zoom a:hover{color:#c8102e}
/* Mobile : en-tête, carte puis liste, dans le défilement de la page */
@media (max-width:899px){
	.rl-carte{display:flex;flex-direction:column;height:auto;min-height:0}
	.rl-c-panneau{display:contents}
	.rl-c-tete{order:1;padding:16px 16px 12px}
	.rl-carte .rl-c-titre{font-size:20px}
	.rl-c-sous{margin-bottom:12px}
	.rl-c-filtres{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 2px;scrollbar-width:none}
	.rl-c-filtres::-webkit-scrollbar{display:none}
	.rl-carte .rl-c-cuisine{flex:0 0 auto;max-width:200px}
	.rl-carte .rl-c-f{flex:0 0 auto}
	.rl-c-zone{order:2;height:62vh;min-height:340px;scroll-margin-top:90px}
	.rl-c-etat{order:3;padding:10px 16px}
	.rl-c-liste{order:4;overflow:visible;padding:12px 12px 90px}
	.rl-carte .rl-c-moi{top:10px;left:10px;height:38px;font-size:13.5px}
}
