/* Bulle : assistant à choix multiples, en bas de page. Couleur de la maison : --bulle (définie sur #bulle). */
#bulle{--bulle:#f0532a;--bulle-txt:#fff;--fond:#fffdf8;--encre:#1c1a17;--doux:#f1ede4;--trait:#e4ded2;position:fixed;right:18px;bottom:calc(18px + var(--bulle-decal,0px) + env(safe-area-inset-bottom,0px));z-index:900;font:400 15px/1.45 system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--encre)}
#bulle *{box-sizing:border-box}
.bulle-btn{display:flex;align-items:center;gap:10px;padding:7px 16px 7px 7px;border:0;border-radius:999px;background:#141311;color:#f6f1e7;cursor:pointer;box-shadow:0 12px 34px -12px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08) inset;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;font:600 14.5px/1 system-ui,-apple-system,'Segoe UI',sans-serif}
.bulle-btn:hover{transform:translateY(-2px);box-shadow:0 16px 40px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.12) inset}
.bulle-btn:focus-visible,.bulle-option:focus-visible,.bulle-fermer:focus-visible{outline:3px solid var(--bulle);outline-offset:3px}
.bulle-lettre{width:40px;height:40px;border-radius:50%;overflow:hidden;flex:none;display:block}
.bulle-lettre svg{display:block;width:100%;height:100%}
.bulle-point{width:8px;height:8px;border-radius:50%;background:var(--bulle);box-shadow:0 0 0 0 var(--bulle);animation:bulle-pouls 2.4s ease-out infinite}
@keyframes bulle-pouls{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--bulle) 60%,transparent)}70%,100%{box-shadow:0 0 0 9px transparent}}
.bulle-ouverte .bulle-btn{opacity:0;pointer-events:none;transform:scale(.9)}
.bulle-panneau{position:absolute;right:0;bottom:0;width:min(372px,calc(100vw - 24px));max-height:min(560px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--fond);border-radius:22px;box-shadow:0 30px 70px -20px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06);overflow:hidden;transform-origin:100% 100%;animation:bulle-ouvre .32s cubic-bezier(.2,.8,.2,1)}
.bulle-panneau[hidden]{display:none}
@keyframes bulle-ouvre{from{opacity:0;transform:translateY(12px) scale(.96)}}
.bulle-tete{display:flex;align-items:center;gap:11px;padding:14px 14px 12px 16px;background:#141311;color:#f6f1e7}
.bulle-tete .bulle-lettre{width:36px;height:36px}
.bulle-tete b{display:block;font-size:15px;line-height:1.2}
.bulle-tete small{display:block;font-size:12.5px;opacity:.72}
.bulle-fermer{margin-left:auto;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:inherit;font-size:20px;line-height:1;cursor:pointer}
.bulle-fermer:hover{background:rgba(255,255,255,.18)}
.bulle-fil{flex:1;overflow-y:auto;padding:16px 14px 6px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
.bulle-msg{max-width:86%;padding:10px 13px;border-radius:18px;animation:bulle-pop .26s cubic-bezier(.2,.8,.2,1);white-space:pre-line}
.bulle-bot{align-self:flex-start;background:var(--doux);border-bottom-left-radius:6px}
.bulle-moi{align-self:flex-end;background:var(--bulle);color:var(--bulle-txt);border-bottom-right-radius:6px;font-weight:600}
@keyframes bulle-pop{from{opacity:0;transform:translateY(6px) scale(.97)}}
.bulle-frappe{display:flex;gap:4px;padding:13px 14px}
.bulle-frappe i{width:7px;height:7px;border-radius:50%;background:#9a938a;animation:bulle-saute 1s infinite ease-in-out}
.bulle-frappe i:nth-child(2){animation-delay:.15s}.bulle-frappe i:nth-child(3){animation-delay:.3s}
@keyframes bulle-saute{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.bulle-choix{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;padding:8px 14px 14px;border-top:1px solid var(--trait);background:var(--fond)}
.bulle-choix:empty{display:none}
.bulle-option{border:1.5px solid color-mix(in srgb,var(--bulle) 55%,var(--trait));background:#fff;color:var(--encre);padding:8px 13px;border-radius:999px;font:600 14px/1.25 system-ui,-apple-system,'Segoe UI',sans-serif;cursor:pointer;text-align:left;transition:background-color .18s,border-color .18s,transform .18s;animation:bulle-pop .3s cubic-bezier(.2,.8,.2,1) both}
.bulle-option:hover{background:color-mix(in srgb,var(--bulle) 12%,#fff);border-color:var(--bulle);transform:translateY(-1px)}
.bulle-appel{background:var(--bulle);color:var(--bulle-txt);border-color:var(--bulle)}
.bulle-appel:hover{background:color-mix(in srgb,var(--bulle) 85%,#000)}
.bulle-retour{border-style:dashed;font-weight:500;opacity:.85}
.bulle-pied{padding:0 14px 10px;font-size:11.5px;color:#7a746a;text-align:center;background:var(--fond)}
@media(max-width:560px){#bulle{right:12px;left:auto}.bulle-btn .bulle-mot{display:none}.bulle-btn{padding:6px}.bulle-panneau{position:fixed;right:8px;left:8px;bottom:8px;width:auto;max-height:78vh}}
@media(prefers-reduced-motion:reduce){#bulle *{animation:none!important;transition:none!important}}
/* Annonce : petite bulle discrète au-dessus du bouton, une fois par visite */
.bulle-annonce{position:absolute;right:0;bottom:calc(100% + 12px);display:flex;align-items:center;gap:4px;width:max-content;max-width:min(290px,calc(100vw - 32px));padding:4px 4px 4px 14px;background:#fffdf8;color:var(--encre);border-radius:16px 16px 4px 16px;box-shadow:0 14px 34px -14px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06);opacity:0;transform:translateY(8px) scale(.96);transform-origin:100% 100%;transition:opacity .3s,transform .35s cubic-bezier(.2,.8,.2,1)}
.bulle-annonce[hidden]{display:none}
.bulle-annonce-la{opacity:1;transform:none}
.bulle-annonce-txt{border:0;background:none;color:inherit;font:500 13.5px/1.35 system-ui,-apple-system,'Segoe UI',sans-serif;text-align:left;cursor:pointer;padding:6px 0}
.bulle-annonce-x{flex:none;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#7a746a;font-size:17px;line-height:1;cursor:pointer}
.bulle-annonce-x:hover{background:var(--doux)}
.bulle-annonce-txt:focus-visible,.bulle-annonce-x:focus-visible{outline:2px solid var(--bulle);outline-offset:2px}
.bulle-ouverte .bulle-annonce{display:none}
/* Disponibilité en direct, dans l'en-tête du panneau */
.bulle-etat{display:inline-flex;align-items:center;gap:6px;font-size:12px;opacity:.8}
.bulle-etat::before{content:"";width:7px;height:7px;border-radius:50%;background:#9a938a}
.bulle-dispo::before{background:#3ccf6e;box-shadow:0 0 0 3px rgba(60,207,110,.2)}
