/* v12z9 — FQ-102 / Q104 : bloc « où et quand » + « Y aller », fiche annuaire, cadre d'entrée Restyo, réglage « Adresse et plan ».
   Cibles ≥ 48 px, propriétés logiques (RTL), texte jamais tronqué (adresse sur plusieurs lignes). */
.loc-where{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;min-width:0}
.loc-ic{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:color-mix(in srgb,var(--y,#FFD000) 20%,var(--surf,#fff));color:var(--ico,var(--k,#141414))}
.loc-t{flex:1 1 150px;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}
.loc-adr{font-weight:800}
.loc-rep{font-weight:600;opacity:.92}
.loc-h{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:13px}
.loc-h .lc{flex:0 0 auto}
.loc-go{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;min-width:48px;padding:0 16px;border-radius:14px;border:2px solid var(--k,#141414);background:transparent;color:var(--k,#141414);font:inherit;font-weight:800;font-size:14.5px;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}
.loc-go:active{transform:scale(.97)}
.loc-go:focus-visible{outline:3px solid var(--k,#141414);outline-offset:2px}
[dir=rtl] .loc-go svg{transform:scaleX(-1)}
/* accueil : bloc sombre .info */
.info .loc-l{flex-direction:column;align-items:stretch;gap:8px}
.info .loc-nom{font-size:14px}
.info .loc-home .loc-ic{display:none}
.info .loc-home .loc-go{background:var(--y);color:var(--on-y);border-color:var(--y)}
.info .loc-home .loc-go:focus-visible{outline-color:var(--y)}
.info .loc-home .loc-h.ok{color:inherit}
/* profil « Nous trouver » */
.loc-li{align-items:flex-start}
.loc-li-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.loc-li-b > small:empty{display:none}
.loc-prof{margin-top:8px}
.loc-prof .loc-ic{display:none}
.loc-prof .loc-t{font-weight:600}
/* panier Sur place / À emporter, confirmation, suivi */
.loc-pan,.loc-suivi{margin-top:10px;padding-top:12px;border-top:1px solid var(--line,#e4e4e7)}
.loc-box h3{margin-bottom:10px}
.loc-h.ok{color:var(--ok-ink,#15803d)}
.loc-h.ko{color:inherit}
/* ---------- annuaire : fiche = carte (CTA « Voir l'appli ») + bloc adresse ---------- */
.mkt-fiche{display:flex;flex-direction:column;min-width:0;height:100%;background:#fff;border:1px solid #e4e4e7;border-radius:20px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.07);transition:transform .15s,box-shadow .15s}
.mkt-fiche:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.mkt-fiche > .mkt-card{flex:1 1 auto;height:auto;border:0;border-radius:0;box-shadow:none}
.mkt-fiche > .mkt-card:hover{transform:none;box-shadow:none}
.mkt-fiche > .mkt-card:focus-visible{outline:3px solid #141414;outline-offset:-3px}
.mkt-where{padding:12px 16px 16px;border-top:1px solid #e4e4e7;color:#141414;background:#fff}
.mkt-where .loc-ic{background:#f4f4f5;color:#141414}
.mkt-where .loc-rep{color:#3f3f46;opacity:1}
.mkt-where .loc-h{color:#3f3f46}
.mkt-where .loc-h.ok{color:#15803d}
.mkt-where .loc-go{border-color:#141414;color:#141414;background:#fff}
.mkt-fiche.closed .mkt-where .loc-adr{color:#141414}
/* cadre explicatif sous les 4 photos de l'entrée */
.mkt-cadre{list-style:none;margin:0;padding:6px 14px;display:grid;gap:0;background:#fff;border:1px solid #e4e4e7;border-radius:16px;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.mkt-cadre li{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0;font-size:14.5px;line-height:1.35;font-weight:600;color:#141414}
.mkt-cadre li + li{border-top:1px solid #f0f0f2}
.mkt-cadre-ic{flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:#f4f4f5;color:#141414;display:flex;align-items:center;justify-content:center}
@media(min-width:900px){.mkt-welcome .mkt-cadre{grid-column:2}}
/* ---------- back-office « Adresse et plan » ---------- */
.loc-bo{display:flex;flex-direction:column;gap:12px}
.loc-f{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:14px}
.loc-f em{font-style:normal;font-weight:600;color:var(--mut);font-size:12.5px}
.loc-f input{min-height:48px;border:1.5px solid var(--line,#d4d4d8);border-radius:12px;padding:0 12px;font:inherit;font-size:16px;font-weight:600;background:var(--surf,#fff);color:var(--k,#141414);width:100%;box-sizing:border-box}
.loc-f input:focus-visible{outline:3px solid var(--k,#141414);outline-offset:1px}
.loc-f small{font-weight:500;color:var(--mut);font-size:12.5px}
.loc-mapbox{display:flex;flex-direction:column;gap:8px}
.loc-aide{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:13px;font-weight:600}
.loc-open,.loc-save{min-height:48px}
.loc-save{background:var(--k,#141414);color:var(--on-k,#fff);border-color:var(--k,#141414)}
.loc-map{width:100%;height:280px;border-radius:14px;overflow:hidden;border:1px solid var(--line,#e4e4e7);background:#e8e6df;z-index:0}
.loc-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;font-size:20px}
.loc-search{display:flex;gap:8px}
.loc-search input{flex:1;min-width:0;min-height:48px;border:1.5px solid var(--line,#d4d4d8);border-radius:12px;padding:0 12px;font:inherit;font-size:16px;background:var(--surf,#fff);color:var(--k,#141414)}
.loc-search button{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;margin:0}
.loc-coord{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700}
.loc-msg{margin:0;padding:10px 12px;border-radius:12px;background:#fef2f2;color:#991b1b;font-weight:700;font-size:13.5px}
.loc-warn{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:#fff7ed;color:#7c2d12;font-weight:700;font-size:13.5px}
.loc-warn .lc{flex:0 0 auto;margin-top:1px}
.loc-reset{align-self:flex-start;min-height:44px}
.loc-legal{display:block}
.loc-apercu{border-top:1px dashed var(--line,#d4d4d8);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.loc-apercu-h{font-weight:800;color:var(--mut);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
.loc-banner{align-items:center}
.loc-banner > div{flex:1;min-width:0}
.loc-banner-go{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:12px;font-weight:800;text-decoration:underline;color:inherit}
/* ---------- audit responsive v12z9 (320–430 px ; annuaire aussi 1280) ---------- */
/* Logo Restyo de l'annuaire : cible 36 px → 44 px (le header compact reste ≤ 70 px). */
.mkt-brand{min-height:44px;min-width:44px}
/* Nom du resto sur la fiche : « F-Quick Snack & Foods » était coupé en « F-Quick Snack & F… » à 320 px → 2 lignes max, jamais tronqué au milieu. */
.mkt-nm{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
/* Pastilles pourboire / tables (panier) : 29 px → 44 px. */
.v322-chips button{min-height:44px}
/* « Comment ça marche » (Fidélité) : 36 px → 44 px. */
.info-l{min-height:44px}
/* Interrupteurs du back-office (ex. « Proposer la livraison ») : zone de tap 28 px → ≥ 48 px de haut, sans changer le dessin. */
.op-sw::after{content:"";position:absolute;inset:-10px -4px}
/* Bouton « + » des cartes produit : ne se tasse plus à 32 px de large dans une carte étroite. */
.plus{flex:none}

/* ---------- t2026u : espace cartes accueil + relief/battement boutons d’install ---------- */
/* Entre « Commande en cours » et la carte « Salam… » : même 18 px que les cartes sous le hero (.edito). */
#s-accueil .lcur + .hero-top{
  margin-top:18px;
}

/* Relief sur tous les boutons d’install (applis resto et annuaire, grand bandeau et petit bouton). */
#r-install, button.r-install{
  background:linear-gradient(180deg,#2c2c2c 0%,#141414 48%,#0a0a0a 100%);
  color:#fff;
  border:1.5px solid #050505;
  border-bottom-color:#000;
  font-weight:800;
  /* Lèvre plus haute et ombre plus nette, pour que le relief se voie sur fond clair. */
  box-shadow:
    0 2px 0 rgba(255,255,255,.38) inset,
    0 3px 6px rgba(255,255,255,.08) inset,
    0 -1px 0 rgba(0,0,0,.45) inset,
    0 6px 0 #000,
    0 10px 18px rgba(0,0,0,.32);
  transform-origin:center center;
  margin-bottom:6px;
  animation:r-install-beat 2.4s ease-in-out infinite!important;
}
.r-install-bar{overflow:visible;padding-bottom:4px}
#r-install:active, button.r-install:active{
  animation:none!important;
  transform:translateY(5px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.12) inset,
    0 1px 0 #000,
    0 3px 8px rgba(0,0,0,.2);
  margin-bottom:1px;
}
/* Double battement, comme un cœur, puis une pause — assez discret pour ne pas gêner. */
@keyframes r-install-beat{
  0%, 16%, 32%, 100%{transform:scale(1)}
  8%{transform:scale(1.05)}
  24%{transform:scale(1.07)}
}
@media (prefers-reduced-motion:reduce){
  #r-install, button.r-install{animation:none!important}
}

/* t2062u : un peu plus de relief sur « ← Annuaire », comme les pastilles F-Quick et « 380 points ».
   Pas de battement : ce n’est pas un bouton d’install. */
.tbar .r-annuaire,
a.r-annuaire{
  background:var(--surf,#fff);
  color:var(--k,#141414);
  border:1.5px solid color-mix(in srgb,var(--k,#141414) 12%,transparent);
  border-radius:999px;
  font-weight:800;
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 3px 0 color-mix(in srgb,var(--k,#141414) 12%,#d4d4d4),
    0 6px 14px color-mix(in srgb,var(--k,#141414) 16%,transparent);
}
.tbar .r-annuaire:active,
a.r-annuaire:active{
  transform:translateY(2px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.7) inset,
    0 1px 0 color-mix(in srgb,var(--k,#141414) 12%,#d4d4d4),
    0 2px 6px color-mix(in srgb,var(--k,#141414) 16%,transparent);
}
.tbar:has(.r-annuaire){overflow:visible}


/* ---------- t2050u (12/11) : champ ville, resto fermé maintenant, délai de confirmation, message « c'est prêt » ---------- */
/* Champ ville : le placeholder court se lit en entier jusqu'à 320 px (la saisie reste en 16 px : pas de zoom iOS). */
@media (max-width:359px){#mkt-cityq::placeholder{font-size:14px;letter-spacing:-.1px}}
.mkt-st.opens{background:#18181b;color:#fff}
/* Bandeau « Fermé · ouvre à … » (entrée de l'appli, menu, panier) : texte foncé sur fond clair (contraste ≥ 4,5:1). */
.fm-banner{flex-wrap:wrap;align-items:flex-start}
.fm-banner .fm-t{flex:1 1 0;min-width:0}
.fm-banner .fm-t b{color:#18181b;font-size:16px}
.fm-banner .fm-t small{color:#3f3f46;font-size:13.5px;line-height:1.35;display:block;margin-top:2px}
.fm-banner .fm-cta{flex:1 1 100%;min-height:48px;margin:6px 0 0;display:flex;align-items:center;justify-content:center;gap:8px}
/* Délai de confirmation */
.dl-box{display:grid;gap:10px}
.dl-box .dl-h{display:flex;gap:10px;align-items:flex-start}
.dl-box .dl-h>svg{flex:none;color:var(--k,#18181b)}
.dl-box .dl-h b{display:block}
.dl-box .dl-h small{display:block;color:#3f3f46;line-height:1.4;margin-top:2px}
.dl-box .dl-c{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--y,#facc15) 22%,#fff)}
.dl-box .dl-c span{font-weight:700;color:#27272a;display:inline-flex;align-items:center;gap:6px}
.dl-box .dl-t{font-size:28px;font-weight:900;font-variant-numeric:tabular-nums;color:#18181b;letter-spacing:.5px}
.dl-bo{display:flex;gap:6px;align-items:flex-start;margin:6px 0 2px;font-size:13px;font-weight:700;color:#92400e}
.dl-bo.ko{color:#b91c1c}
.dl-bo.ok{color:#166534}
.dl-bo small{display:block;font-weight:500;color:#52525b}
.dl-bo>svg,.dl-bo .wa-i svg{flex:none;width:16px;height:16px}
.dl-mini{display:flex;gap:5px;align-items:flex-start;margin:4px 0;font-size:13px;font-weight:600;color:#92400e}
.dl-mini.ko{color:#b91c1c}.dl-mini.ok{color:#166534}
.dl-mini .wa-i svg{width:14px;height:14px}
.dl-menu{display:flex;align-items:center;justify-content:center;min-height:48px;margin:0 16px 12px;text-decoration:none}
/* Message WhatsApp de démo */
.wa-demo h3{display:flex;align-items:center;gap:8px}
.wa-demo .wa-i{display:inline-flex;color:#128c7e}
.wa-demo .wa-i svg{width:18px;height:18px}
.wa-demo .wa-bulle{background:#dcf8c6;color:#111b21;border-radius:12px 12px 12px 4px;padding:10px 12px;line-height:1.45;white-space:normal}
[dir=rtl] .wa-demo .wa-bulle{border-radius:12px 12px 4px 12px}
.wa-demo .pay{color:#3f3f46}
.ost.prete>span{color:#15803d}
.ost.annulee{background:color-mix(in srgb,var(--err,#dc2626) 12%,var(--surf,#fff))}
.ost.prete{background:color-mix(in srgb,var(--ok,#15803d) 14%,var(--surf,#fff))}
.dl-bo.pret-bo,.ku-card .dl-bo{font-weight:500;color:#14532d}
.dl-bo.pret-bo b,.ku-card .dl-bo b{font-weight:800;color:#166534}


/* t2070u : écarts homogènes entre les pastilles, et même taille d’écriture
   pour « ← Annuaire » et « 380 points ». Hauteur alignée (logo, QR compris).
   Le logo F-Quick reste un mot-symbole, pas la même taille de lettre. */
.tbar:has(.r-annuaire){
  justify-content:flex-start;
  align-items:center;
  gap:8px;
  padding-inline:10px;
  overflow:visible;
}
.tbar:has(.r-annuaire) .tb-r{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
  margin:0;
  justify-content:flex-start;
}
.tbar:has(.r-annuaire) .r-annuaire,
.tbar:has(.r-annuaire) .tb-logo,
.tbar:has(.r-annuaire) .tb-pts,
.tbar:has(.r-annuaire) .tb-qr{
  height:46px;
  min-height:46px;
  box-sizing:border-box;
  flex:0 0 auto;
}
.tbar:has(.r-annuaire) .tb-qr{width:46px}
.tbar:has(.r-annuaire) .r-annuaire,
.tbar:has(.r-annuaire) .tb-pts{
  font-size:13px;
  font-weight:800;
  line-height:1;
  padding:0 12px;
  white-space:nowrap;
}
.tbar:has(.r-annuaire) .tb-logo{font-size:22px;padding:3px 12px 0}

@media (max-width:360px){
  /* 320–360 : tout tient (Annuaire + logo + QR + 380 points), écarts égaux, même écriture. */
  .tbar:has(.r-annuaire){gap:4px;padding-inline:6px}
  .tbar:has(.r-annuaire) .tb-r{gap:4px}
  .tbar:has(.r-annuaire) .r-annuaire,
  .tbar:has(.r-annuaire) .tb-logo,
  .tbar:has(.r-annuaire) .tb-pts,
  .tbar:has(.r-annuaire) .tb-qr{
    height:40px;
    min-height:40px;
  }
  .tbar:has(.r-annuaire) .tb-qr{width:40px}
  .tbar:has(.r-annuaire) .tb-qr svg{width:22px;height:22px}
  .tbar:has(.r-annuaire) .r-annuaire,
  .tbar:has(.r-annuaire) .tb-pts{
    font-size:12px;
    padding:0 6px;
  }
  .tbar:has(.r-annuaire) .tb-logo{font-size:18px;padding:3px 6px 0}
}

/* t2076 (12/11/2026) · Q104 : à 361–400 px, un logo large (Pizza Atlas) poussait « 380 points » de 1,6 px hors du cadre.
   Les marges du bandeau passent à 6 px (comme à 320–360) et le rembourrage du logo à 8 px ;
   écarts entre pastilles (8 px), hauteurs et écriture t2070 inchangés. */
@media (min-width:361px) and (max-width:400px){
  .tbar:has(.r-annuaire){padding-inline:6px}
  .tbar:has(.r-annuaire) .tb-logo{padding:3px 8px 0}
}
/* 361–380 px (iPhone 12 mini, SE…) : les pastilles « ← Annuaire » et « points » passent de 12 à 8 px de rembourrage. */
@media (min-width:361px) and (max-width:380px){
  .tbar:has(.r-annuaire) .r-annuaire,
  .tbar:has(.r-annuaire) .tb-pts{padding:0 8px}
}
