/* INSTAFOOD V11.49.400 : Foody, assistant support scripte. Palette fixe, AA verifie. */
:root{
--iff-ink:#171310;
--iff-cream:#fbf8f2;
--iff-white:#ffffff;
--iff-gold:#ffb100;
--iff-gold-grad:linear-gradient(160deg,#ffd34d 0%,#ffb100 52%,#e69500 100%);
--iff-line:#e4dccc;
--iff-muted:#5c534b;
--iff-ok:#1d7a3d;
--iff-off:#b3261e;
--iff-r:16px;
--iff-pill:999px;
--iff-sh:0 10px 30px rgba(23,19,16,.18);
--iff-sh-soft:0 4px 14px rgba(23,19,16,.10)
}
.iff-launcher,.iff-launcher *,.iff-panel,.iff-panel *{box-sizing:border-box}
/* Lanceur empile au dessus de la pastille WhatsApp, jamais a sa place. */
.iff-launcher{
position:fixed;
inset-inline-end:18px;
bottom:calc(18px + 64px + 12px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px));
z-index:2147483200;
width:56px;
height:56px;
display:grid;
place-items:center;
padding:0;
border:0;
border-radius:var(--iff-pill);
background:var(--iff-gold-grad);
color:var(--iff-ink);
box-shadow:var(--iff-sh);
cursor:pointer;
transition:transform .2s ease,box-shadow .2s ease
}
.iff-launcher:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(23,19,16,.26)}
.iff-launcher:focus-visible{outline:3px solid var(--iff-ink);outline-offset:3px}
.iff-launcher .iff-ico{width:30px;height:30px}
.iff-ico{display:block;fill:currentColor}
.iff-launcher .iff-ico path:nth-child(2){fill:var(--iff-gold)}
.iff-badge{
position:absolute;
top:-2px;
inset-inline-end:-2px;
min-width:20px;
height:20px;
padding:0 5px;
display:grid;
place-items:center;
border-radius:var(--iff-pill);
background:var(--iff-ink);
color:var(--iff-cream);
font-size:12px;
font-weight:700;
line-height:1
}
/* Coin deja occupe par une autre action flottante : Foody monte d'un cran. */
html:has(.wa-float) .iff-launcher{bottom:calc(18px + 64px + 12px + 48px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px))}
@media (min-width:901px){
html:has(.wa-float) .iff-launcher{bottom:calc(18px + 64px + 12px + 76px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px))}
}
/* Variante solo : Foody prend la place de la pastille, qui est masquee.
La seconde regle passe devant celle du gabarit v3 (meme poids, portee plus longue). */
html.if-foody-solo .if-home-whatsapp-float,html.if-foody-solo .wa-float{display:none!important}
html.if-foody-solo body .if-home-whatsapp-float,html.if-foody-solo body .wa-float{display:none!important}
html.if-foody-solo .iff-launcher{bottom:calc(18px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px))}
html.if-foody-solo .iff-panel{bottom:calc(18px + 56px + 12px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px))}
/* En solo, Foody prend le coin : le bouton de preferences de consentement passe du cote
oppose, comme le fait deja la feuille d actions globales sur le reste du site. */
html.if-foody-solo #if-consent-pref{left:auto!important;right:auto!important;inset-inline-start:14px!important;inset-inline-end:auto!important}
html[dir=rtl] .iff-launcher{inset-inline-end:14px}

/* Panneau */
.iff-panel{
position:fixed;
inset-inline-end:18px;
bottom:calc(18px + 64px + 12px + 56px + 12px + var(--if-global-bottom,0px) + var(--iff-stack,0px) + env(safe-area-inset-bottom,0px));
z-index:2147483210;
display:flex;
flex-direction:column;
width:380px;
max-width:calc(100vw - 24px);
height:min(70vh,640px);
overflow:hidden;
border:1px solid var(--iff-line);
border-radius:var(--iff-r);
background:var(--iff-cream);
color:var(--iff-ink);
box-shadow:var(--iff-sh);
font-family:inherit;
font-size:15px;
line-height:1.45
}
html[dir=rtl] .iff-panel{inset-inline-end:14px}
.iff-panel[hidden],.iff-badge[hidden]{display:none!important}
.iff-head{
display:grid;
grid-template-columns:1fr auto;
gap:6px 10px;
padding:12px 14px;
background:var(--iff-ink);
color:var(--iff-cream)
}
.iff-id{min-width:0}
.iff-name{margin:0;font-size:16px;font-weight:800;letter-spacing:.01em}
.iff-sub{margin:2px 0 0;font-size:13px;color:#e8e0d2}
.iff-head__actions{display:flex;align-items:flex-start;gap:6px}
.iff-wa,.iff-close{
width:48px;
height:48px;
display:grid;
place-items:center;
padding:0;
border:1px solid rgba(251,248,242,.28);
border-radius:var(--iff-pill);
background:transparent;
color:var(--iff-cream);
font-size:18px;
line-height:1;
cursor:pointer;
text-decoration:none
}
.iff-wa .iff-ico{width:22px;height:22px}
.iff-wa:hover,.iff-close:hover{background:rgba(251,248,242,.12)}
.iff-wa:focus-visible,.iff-close:focus-visible{outline:3px solid var(--iff-gold);outline-offset:2px}
.iff-state{
grid-column:1/-1;
display:flex;
align-items:center;
gap:8px;
margin:0;
font-size:13px;
color:#f2ead9
}
.iff-dot{width:10px;height:10px;border-radius:var(--iff-pill);background:#8d8579;flex:none}
.iff-dot[data-state=open]{background:#4ade80}
.iff-dot[data-state=closed]{background:#ff8a7a}
.iff-state__txt{min-width:0}

/* Fil de conversation */
.iff-log{
flex:1 1 auto;
overflow-y:auto;
overflow-x:hidden;
padding:14px;
display:flex;
flex-direction:column;
gap:10px;
overscroll-behavior:contain
}
.iff-msg{display:flex}
.iff-msg--bot{justify-content:flex-start}
.iff-msg--user{justify-content:flex-end}
.iff-bubble{
max-width:86%;
padding:10px 13px;
border-radius:var(--iff-r);
background:var(--iff-white);
border:1px solid var(--iff-line);
box-shadow:var(--iff-sh-soft);
overflow-wrap:break-word;
word-break:break-word
}
.iff-msg--user .iff-bubble{background:var(--iff-ink);color:var(--iff-cream);border-color:var(--iff-ink)}
.iff-a{color:#8a5a00;text-decoration:underline;text-underline-offset:2px}
.iff-a:hover{color:#6d4700}
.iff-actions{display:flex}
.iff-btn{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:48px;
padding:0 18px;
border:1px solid var(--iff-ink);
border-radius:var(--iff-pill);
background:var(--iff-white);
color:var(--iff-ink);
font-size:15px;
font-weight:700;
text-decoration:none;
cursor:pointer
}
.iff-btn:hover{background:#f1e9da}
.iff-btn--main{background:var(--iff-gold-grad);border-color:#c98200;width:100%}
.iff-btn:focus-visible,.iff-chip:focus-visible{outline:3px solid var(--iff-ink);outline-offset:2px}

/* Suivi de commande */
.iff-track{
display:flex;
flex-direction:column;
gap:8px;
padding:12px;
border:1px solid var(--iff-line);
border-radius:var(--iff-r);
background:var(--iff-white)
}
.iff-track__intro{margin:0;font-size:14px;color:var(--iff-muted)}
.iff-field{display:flex;flex-direction:column;gap:4px;margin:0}
.iff-field__lab{font-size:13px;font-weight:700}
.iff-field__in,.iff-input{
min-height:48px;
padding:0 12px;
border:1px solid var(--iff-line);
border-radius:12px;
background:var(--iff-white);
color:var(--iff-ink);
font-family:inherit;
font-size:16px;
color-scheme:light
}
.iff-field__in:focus-visible,.iff-input:focus-visible{outline:3px solid var(--iff-gold);outline-offset:1px}
.iff-track__out{margin:0;font-size:14px}
.iff-track__out--err{color:#8f1d16;font-weight:700}
.iff-timeline{
padding:12px;
border:1px solid var(--iff-line);
border-radius:var(--iff-r);
background:var(--iff-white)
}
.iff-timeline__head{margin:0 0 8px;font-weight:800}
.iff-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.iff-step{display:flex;align-items:center;gap:8px;font-size:14px}
.iff-step::before{content:"";width:10px;height:10px;border-radius:var(--iff-pill);background:var(--iff-gold);flex:none}
.iff-step__time{color:var(--iff-muted)}
.iff-step--driver::before{background:var(--iff-ink)}

/* Puces de reponses rapides */
.iff-chips{
display:flex;
flex-wrap:wrap;
gap:8px;
padding:0 14px 10px;
max-height:170px;
overflow-y:auto
}
.iff-chip{
min-height:48px;
padding:0 14px;
border:1px solid var(--iff-line);
border-radius:var(--iff-pill);
background:var(--iff-white);
color:var(--iff-ink);
font-family:inherit;
font-size:15px;
font-weight:600;
cursor:pointer
}
.iff-chip:hover{background:#f1e9da;border-color:#c9bfa8}
.iff-chip--cart{border-color:#c98200;background:#fff6e0}

/* Saisie, consentement, pied */
.iff-form{display:flex;gap:8px;padding:0 14px}
.iff-input{flex:1 1 auto;min-width:0}
.iff-send{
width:48px;
height:48px;
flex:none;
display:grid;
place-items:center;
padding:0;
border:1px solid #c98200;
border-radius:12px;
background:var(--iff-gold-grad);
color:var(--iff-ink);
cursor:pointer
}
.iff-send .iff-ico{width:20px;height:20px}
.iff-send:focus-visible{outline:3px solid var(--iff-ink);outline-offset:2px}
.iff-consent,.iff-foot{margin:0;padding:8px 14px 0;font-size:12px;color:var(--iff-muted)}
.iff-foot{padding:2px 14px 12px;font-weight:700}

/* Plein ecran sur mobile */
@media (max-width:640px){
.iff-panel{
inset:0;
width:100%;
max-width:none;
height:100%;
border:0;
border-radius:0
}
html[dir=rtl] .iff-panel{inset:0}
html.iff-open,html.iff-open body{overflow:hidden}
.iff-bubble{max-width:92%}
/* Place laissee au bouton de preferences de consentement, toujours au dessus.
En solo il passe du cote depart, la reserve suit. */
.iff-consent,.iff-foot{padding-inline-end:64px}
html.if-foody-solo .iff-consent,html.if-foody-solo .iff-foot{padding-inline:64px 14px}
}
@media (prefers-reduced-motion:reduce){
.iff-launcher,.iff-launcher:hover{transition:none;transform:none}
.iff-panel{animation:none}
}

/* Bandeau operation FIRST 100 (#if100-bar) present : le bouton cookies et le lanceur montent au-dessus (hauteur mesuree 134px mobile, 72px bureau, plus marge). */
html:has(#if100-bar) #if-consent-pref{bottom:calc(14px + 152px + var(--if-store-banner-height,0px))!important}
@media (min-width:901px){
html:has(#if100-bar) #if-consent-pref{bottom:calc(14px + 96px + var(--if-store-banner-height,0px))!important}
}

/* ============ V11.49.410 : cartes produit et upsell du mode vendeur ============
Meme charte que le panneau : encre sur creme, or reserve aux actions principales.
Cibles tactiles 48 px, direction heritee du panneau (RTL sur /ar/). */
.iff-cards{display:flex;flex-direction:column;gap:10px}
.iff-card{
display:flex;
gap:10px;
padding:10px;
border:1px solid var(--iff-line);
border-radius:var(--iff-r);
background:var(--iff-white);
box-shadow:var(--iff-sh-soft)
}
.iff-card__img{
width:64px;
height:64px;
flex:none;
border-radius:12px;
object-fit:cover;
background:#f1e9da
}
.iff-card__body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.iff-card__name{margin:0;font-size:15px;font-weight:800;line-height:1.25}
.iff-card__price{margin:0;font-size:15px;font-weight:800;color:#8a5a00}
.iff-card__desc{margin:0;font-size:13px;color:var(--iff-muted);overflow-wrap:break-word}
.iff-card__acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.iff-cbtn{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:48px;
padding:0 16px;
border:1px solid var(--iff-ink);
border-radius:var(--iff-pill);
background:var(--iff-white);
color:var(--iff-ink);
font-family:inherit;
font-size:14px;
font-weight:700;
line-height:1.2;
text-align:center;
text-decoration:none;
cursor:pointer
}
.iff-cbtn:hover{background:#f1e9da}
.iff-cbtn--main{background:var(--iff-gold-grad);border-color:#c98200}
.iff-cbtn--main:hover{background:var(--iff-gold-grad);border-color:#a86d00}
.iff-cbtn:focus-visible{outline:3px solid var(--iff-ink);outline-offset:2px}
/* Puce d'entree du vendeur et puce d'acceptation d'upsell. */
.iff-chip--sell{border-color:#c98200;background:#fff6e0;font-weight:700}
.iff-chip--yes{border-color:#c98200;background:var(--iff-gold-grad);font-weight:800}
/* Les cartes rendent le fil plus haut : sans cette regle la rangee de puces, simple
element flexible, se fait ecraser par le fil et les puces sont coupees en deux.
Le fil garde la compression, il defile deja. Verifie en capture 1280 et 390. */
.iff-chips{flex:0 0 auto}
.iff-log{min-height:0}
/* Frappe simulee (mecanique 1) : bulle courte a l'ellipse, retiree des que la reponse arrive.
Decorative, aria-hidden : le lecteur d'ecran n'entend que la reponse. */
.iff-typing{min-width:54px;text-align:center;letter-spacing:3px;font-weight:800;color:var(--iff-ink);animation:iff-tp 1.1s ease-in-out infinite}
@keyframes iff-tp{0%,100%{opacity:.7}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.iff-typing{animation:none;opacity:.85}}
/* FC-2 : pouces de retour, note de carte, comparateur en deux colonnes.
Contraste verifie sur le fond creme du fil, RTL par proprietes logiques. */
.iff-fb{display:flex;gap:6px;align-items:center;margin:2px 0 0;padding-inline-start:2px}
.iff-fb__b{
min-width:32px;
height:28px;
padding:0 6px;
border:1px solid var(--iff-line);
border-radius:var(--iff-pill);
background:var(--iff-white);
color:var(--iff-ink);
font-size:14px;
line-height:1;
cursor:pointer;
opacity:.7;
transition:opacity .15s ease,background .15s ease
}
.iff-fb__b:hover{opacity:1;background:#f1e9da}
.iff-fb__b:focus-visible{outline:3px solid var(--iff-ink);outline-offset:2px;opacity:1}
.iff-fb__ok{font-size:12px;font-weight:700;color:var(--iff-muted)}
.iff-card__note{margin:2px 0 0;font-size:13px;font-weight:700;color:#8a5a00}
.iff-off{margin:0;padding:6px 10px;font-size:13px;color:var(--iff-muted);background:var(--iff-white);border:1px dashed var(--iff-line);border-radius:12px}
.iff-cards--two{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}
.iff-cards--two .iff-card{flex-direction:column}
.iff-cards--two .iff-card__img{width:100%;height:78px;object-fit:cover}
.iff-cards--two .iff-card__desc{font-size:12px}
@media (max-width:359px){.iff-cards--two{grid-template-columns:1fr}}
/* Le bouton de preferences de confidentialite pose par le script de consentement porte
z-index 2147483645, au dessus du panneau (2147483210) : il recouvrait le coin de la rangee
de puces. En arabe la premiere puce tombe juste dessous et n'etait pas cliquable du tout.
Le panneau est une boite de dialogue modale : il passe au dessus tant qu'il est ouvert,
et redescend des sa fermeture. Verifie par elementFromPoint dans les quatre langues. */
html.iff-open .iff-panel{z-index:2147483646}
