/* Le bandeau accueille Lolo sans réduire la zone de contrôle du chat. */
.pup-voice-widget__call-fallback{display:block;margin-top:11px;border-radius:5px;background:#b72b3b;color:#fff!important;padding:11px 13px;text-align:center;font-size:14px;font-weight:600;text-decoration:none}.pup-voice-widget__call-fallback[hidden]{display:none}
.pup-voice-widget{position:fixed;right:20px;bottom:20px;z-index:99999;font-family:inherit;color:#222}
.pup-voice-widget__fab{display:flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#7b3e2d;color:#fff;padding:13px 18px;box-shadow:0 8px 24px rgba(0,0,0,.22);font:600 14px/1 inherit;cursor:pointer}
.pup-voice-widget__fab:hover,.pup-voice-widget__fab:focus{background:#603124;color:#fff}
.pup-voice-widget__panel{position:absolute;right:0;bottom:68px;width:min(380px,calc(100vw - 28px));box-sizing:border-box;overflow:visible;isolation:isolate;background:#fff;border:1px solid #eadfd9;border-radius:18px;box-shadow:0 14px 40px rgba(0,0,0,.2)}
.pup-voice-widget__mascot{position:relative;height:94px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(135deg,#f9eee8 0%,#fff9f5 100%);border-bottom:1px solid #f0e4de;border-radius:17px 17px 0 0}
/* Le fichier de Lolo contient une marge transparente basse importante.
   L’ancrage compense cette marge afin que le personnage semble assis sur le trait. */
.pup-voice-widget__mascot img{position:absolute;z-index:2;bottom:-130px;width:320px;height:276px;object-fit:contain;object-position:center bottom}
.pup-voice-widget__content{position:relative;z-index:auto;box-sizing:border-box;max-height:calc(100vh - 196px);overflow-y:auto;background:#fff;border-radius:0 0 17px 17px;padding:29px 18px 20px}.pup-voice-widget__panel:not(.has-mascot) .pup-voice-widget__content{padding-top:62px}
.pup-voice-widget__head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}.pup-voice-widget__head>div{min-width:0}.pup-voice-widget__title{display:block;font-size:18px}.pup-voice-widget__intro{margin:6px 0 0;font-size:14px;line-height:1.45}
/* La fermeture est enfant direct du panneau : elle ne peut plus être rognée
   par la zone de contenu qui défile sous le bandeau de Lolo. */
.pup-voice-widget__close{position:absolute;top:12px;right:12px;z-index:10;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:70px;height:34px;padding:0 11px;border:1px solid #1d1d1d;border-radius:6px;background:#1d1d1d;color:#fff;font:700 13px/1 inherit;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}.pup-voice-widget__close:hover{background:#000}.pup-voice-widget__close:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #1d1d1d}
.pup-voice-widget__status{min-height:22px;margin:15px 0 10px;font-size:14px;font-weight:600;color:#5b4238}.pup-voice-widget__status.is-error{color:#a32618}.pup-voice-widget__orb-stage{display:none}.pup-voice-widget__status.has-orb{position:relative;display:flex;align-items:center;justify-content:center;min-height:66px;margin:7px 0 4px}.pup-voice-widget__status.has-orb .pup-voice-widget__status-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pup-voice-widget__status.has-orb .pup-voice-widget__orb-stage{position:relative;display:grid;place-items:center;isolation:isolate;width:86px;height:62px}.pup-voice-widget__orb-ring{position:absolute;left:50%;top:50%;z-index:-1;width:58px;height:58px;margin:-29px;border:1px solid rgba(121,105,95,.27);border-radius:50%;opacity:0}.pup-voice-widget__orb{position:relative;width:54px;height:49px;border-radius:48% 52% 46% 54%/54% 46% 54% 46%;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.42),transparent 29%),linear-gradient(145deg,#a89384,#79695f);box-shadow:inset -9px -11px 17px rgba(70,54,46,.18),inset 7px 6px 14px rgba(255,255,255,.16),0 10px 21px rgba(69,57,49,.18);transform-origin:center}.pup-voice-widget__orb:after{content:"";position:absolute;inset:18% 20% auto;height:18%;border-radius:50%;background:rgba(255,255,255,.12);filter:blur(3px);transform:rotate(-10deg)}@keyframes pup-voice-breathe{0%,100%{transform:scale(.96) rotate(-1deg)}50%{transform:scale(1.045) rotate(1.3deg)}}@keyframes pup-voice-listen{0%,100%{transform:scale(1) rotate(-1deg)}25%{transform:scale(1.07,.96) rotate(1deg)}50%{transform:scale(.97,1.08) rotate(-1.2deg)}75%{transform:scale(1.05,1.01) rotate(1.5deg)}}@keyframes pup-voice-think{0%{transform:rotate(0) scale(.98)}50%{transform:rotate(180deg) scale(1.04)}100%{transform:rotate(360deg) scale(.98)}}@keyframes pup-voice-speak{0%,100%{transform:scale(1,.98)}20%{transform:scale(1.08,.93)}40%{transform:scale(.96,1.08)}60%{transform:scale(1.05,.96)}80%{transform:scale(.98,1.04)}}@keyframes pup-voice-orb-ripple{0%{transform:scale(.74);opacity:.52}100%{transform:scale(1.9);opacity:0}}.pup-voice-widget__status.is-idle .pup-voice-widget__orb{animation:pup-voice-breathe 3.8s ease-in-out infinite}.pup-voice-widget__status.is-listening .pup-voice-widget__orb{animation:pup-voice-listen 1.15s ease-in-out infinite}.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(1){animation:pup-voice-orb-ripple 1.7s ease-out infinite}.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(2){animation:pup-voice-orb-ripple 1.7s .55s ease-out infinite}.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(3){animation:pup-voice-orb-ripple 1.7s 1.1s ease-out infinite}.pup-voice-widget__status.is-thinking .pup-voice-widget__orb{animation:pup-voice-think 2.4s linear infinite}.pup-voice-widget__status.is-thinking .pup-voice-widget__orb-ring:nth-child(1){animation:pup-voice-orb-ripple 2.4s ease-out infinite}.pup-voice-widget__status.is-thinking .pup-voice-widget__orb-ring:nth-child(2){animation:pup-voice-orb-ripple 2.4s 1.2s ease-out infinite}.pup-voice-widget__status.is-speaking .pup-voice-widget__orb{animation:pup-voice-speak .72s ease-in-out infinite}.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(1),.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(2){animation:pup-voice-orb-ripple 1.15s ease-out infinite}.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(2){animation-delay:.55s}.pup-voice-widget__consent{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.4}.pup-voice-widget__checkbox{flex:0 0 auto;margin-top:3px}.pup-voice-widget__actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:16px}.pup-voice-widget__start,.pup-voice-widget__end{min-width:0;border:0;border-radius:5px;padding:11px 13px;font:600 14px/1.2 inherit;cursor:pointer;overflow-wrap:anywhere}.pup-voice-widget__start{background:#d9949a;color:#fff}.pup-voice-widget__start:disabled{opacity:.5;cursor:not-allowed}.pup-voice-widget__end{background:#b72b3b;color:#fff}.pup-voice-widget__privacy{margin:13px 0 0;font-size:12px;line-height:1.4;color:#655952}.pup-voice-widget__privacy a{color:#9f2434;text-decoration:underline}
@media (prefers-reduced-motion:reduce){.pup-voice-widget__orb,.pup-voice-widget__orb-ring{animation:none!important}.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring,.pup-voice-widget__status.is-thinking .pup-voice-widget__orb-ring,.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring{opacity:.32;transform:scale(1.35)}}
.pup-voice-widget__status.has-orb.is-thinking{flex-direction:column;gap:3px;min-height:83px}.pup-voice-widget__status.has-orb.is-thinking .pup-voice-widget__status-text{position:static;width:auto;height:auto;margin:0;padding:0;overflow:visible;clip:auto;white-space:normal;border:0;font-size:12px;font-weight:500;color:#655952;text-align:center}.pup-voice-widget__context{margin:2px 0 13px;padding:12px;border:1px solid #eadfd9;border-radius:10px;background:#fffaf7}.pup-voice-widget__context-title{display:block;margin-bottom:7px;font-size:14px;color:#51382e}.pup-voice-widget__context-list{display:grid;gap:6px;max-height:190px;margin:0;padding:0;overflow:auto;list-style:none}.pup-voice-widget__context-list li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:6px;background:#fff;color:#3d302b;font-size:13px;line-height:1.25}.pup-voice-widget__context-list small{flex:0 0 auto;color:#9f2434;font-size:12px;font-weight:600;white-space:nowrap}.pup-voice-widget__context-choice{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.pup-voice-widget__context-choice:hover,.pup-voice-widget__context-choice:focus-visible{color:#9f2434}.pup-voice-widget__context-choice:focus-visible{outline:2px solid #9f2434;outline-offset:3px}.pup-voice-widget__slots .pup-voice-widget__context-list li{display:block;padding:0;background:transparent}.pup-voice-widget__slots .pup-voice-widget__context-choice{align-items:center;min-height:54px;padding:11px 14px;border:1px solid #b72b3b;border-radius:5px;background:#b72b3b!important;color:#fff!important;font-weight:700}.pup-voice-widget__slots .pup-voice-widget__context-choice span,.pup-voice-widget__slots .pup-voice-widget__context-choice small{color:#fff!important}.pup-voice-widget__slots .pup-voice-widget__context-choice small{font-size:13px;font-weight:700;white-space:nowrap}.pup-voice-widget__slots .pup-voice-widget__context-choice:hover{background:#972131!important;color:#fff!important}.pup-voice-widget__slots .pup-voice-widget__context-choice:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #972131}.pup-voice-widget__discount-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:7px}.pup-voice-widget__discount-type,.pup-voice-widget__discount-input{box-sizing:border-box;min-width:0;border:1px solid #ddcfc8;border-radius:5px;padding:8px;font:inherit;font-size:13px}.pup-voice-widget__discount-submit{grid-column:1/-1;border:0;border-radius:5px;background:#b72b3b;color:#fff;padding:9px 11px;font:600 13px/1.2 inherit;cursor:pointer}.pup-voice-widget__discount-submit:hover,.pup-voice-widget__discount-submit:focus-visible{background:#972131}.pup-voice-widget__discount-submit:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #b72b3b}.pup-voice-widget__context-hint{margin:9px 0 0;font-size:12px;line-height:1.35;color:#655952}
@media (max-width:480px){.pup-voice-widget{right:12px;bottom:12px}.pup-voice-widget__fab-text{display:none}.pup-voice-widget__fab{width:50px;height:50px;justify-content:center;padding:0;font-size:20px}.pup-voice-widget__panel{bottom:58px}.pup-voice-widget__mascot{height:90px}.pup-voice-widget__mascot img{bottom:-120px;width:294px;height:254px}.pup-voice-widget__content{max-height:calc(100vh - 154px);padding:29px 16px 16px}.pup-voice-widget__panel:not(.has-mascot) .pup-voice-widget__content{padding-top:60px}.pup-voice-widget__close{top:10px;right:10px;min-width:66px;height:32px;padding:0 9px;font-size:12px}.pup-voice-widget__actions{gap:6px}.pup-voice-widget__start,.pup-voice-widget__end{padding:10px;font-size:13px}.pup-voice-widget__slots .pup-voice-widget__context-choice{align-items:flex-start;flex-direction:column;gap:4px}.pup-voice-widget__slots .pup-voice-widget__context-choice small{align-self:flex-start}}

/* Les créneaux utilisent les mêmes cartes sobres que les soins et options.
   Ils restent des boutons, mais sans changer de couleur ni de structure. */
.pup-voice-widget__slots .pup-voice-widget__context-list li{display:flex;padding:7px 8px;background:#fff}
.pup-voice-widget__slots .pup-voice-widget__context-choice{align-items:baseline;min-height:0;padding:0;border:0;border-radius:0;background:transparent!important;color:inherit!important;font-weight:inherit}
.pup-voice-widget__slots .pup-voice-widget__context-choice span{color:inherit!important}
.pup-voice-widget__slots .pup-voice-widget__context-choice small{color:#9f2434!important;font-size:12px;font-weight:600;white-space:nowrap}
.pup-voice-widget__slots .pup-voice-widget__context-choice:hover{background:transparent!important;color:#9f2434!important}
.pup-voice-widget__slots .pup-voice-widget__context-choice:hover small{color:#9f2434!important}
.pup-voice-widget__slots .pup-voice-widget__context-choice:focus-visible{outline:2px solid #9f2434;outline-offset:3px;box-shadow:none}
@media (max-width:480px){.pup-voice-widget__slots .pup-voice-widget__context-choice{align-items:baseline;flex-direction:row;gap:12px}.pup-voice-widget__slots .pup-voice-widget__context-choice small{align-self:auto}}

/* Le CTA Laurent vit volontairement dans un panneau de contexte : il garde
   la même position et la même largeur que les cartes de soins et créneaux. */
.pup-voice-widget__call .pup-voice-widget__call-fallback{display:block;margin:0;border-radius:6px;background:#1d1d1d;color:#fff!important;padding:12px 14px;text-align:center;font-size:14px;font-weight:700;text-decoration:none}.pup-voice-widget__call .pup-voice-widget__call-fallback:hover{background:#000}.pup-voice-widget__call .pup-voice-widget__call-fallback:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #1d1d1d}.pup-voice-widget__call .pup-voice-widget__call-fallback.is-disabled{background:#9a938e;color:#f7f4f1!important;cursor:not-allowed;pointer-events:none}.pup-voice-widget__call .pup-voice-widget__call-fallback[hidden]{display:none}

/* Le point d’accès vocal reste un bouton rond : la bulle d’aide est séparée
   afin de ne jamais faire croire que le microphone est déjà en écoute. */
.pup-voice-widget{
  right:18px;
  bottom:calc(var(--pup-voice-safe-bottom,24px) + env(safe-area-inset-bottom));
  z-index:9999;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:calc(100vw - 36px);
}
.pup-voice-widget__fab{
  display:grid;
  flex:0 0 58px;
  place-items:center;
  width:58px;
  height:58px;
  min-width:58px;
  min-height:58px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#b72b3b;
  color:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  cursor:pointer;
  touch-action:manipulation;
  transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.pup-voice-widget__fab:hover{background:#972131;color:#fff;transform:translateY(-1px)}
.pup-voice-widget__fab:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #1d1d1d,0 4px 14px rgba(0,0,0,.25)}
.pup-voice-widget__fab-icon,.pup-voice-widget__fab-icon svg{display:block;width:28px;height:28px}
.pup-voice-widget__fab-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}
.pup-voice-widget__fab-label{
  display:flex;
  align-items:center;
  min-height:40px;
  max-width:min(260px,calc(100vw - 112px));
  box-sizing:border-box;
  padding:9px 13px;
  border-radius:999px;
  background:#1d1d1d;
  color:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pup-voice-widget__panel{bottom:74px}

/* Les libellés restent visibles pendant tous les états actifs de l’assistant. */
.pup-voice-widget__status.has-orb{
  display:grid;
  justify-items:center;
  gap:7px;
  min-height:104px;
  margin:12px 0 10px;
  text-align:center;
}
.pup-voice-widget__status.has-orb .pup-voice-widget__status-text{
  position:static;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  overflow:visible;
  clip:auto;
  white-space:normal;
  color:#5b4238;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
}
.pup-voice-widget__status.has-orb .pup-voice-widget__orb-stage{
  display:grid;
  place-items:center;
  width:78px;
  height:64px;
}
.pup-voice-widget__orb-ring{
  z-index:0;
  width:52px;
  height:52px;
  margin:-26px;
  border:2px solid rgba(183,43,59,.35);
}
.pup-voice-widget__orb{
  z-index:1;
  width:48px;
  height:48px;
  border-radius:50%;
  background:#b72b3b;
  box-shadow:0 5px 13px rgba(118,30,42,.25);
}
.pup-voice-widget__orb:after{display:none}
.pup-voice-widget__status.is-idle .pup-voice-widget__orb{animation:none}
.pup-voice-widget__status.is-listening .pup-voice-widget__orb{animation:pup-voice-listening-pulse 1.45s ease-in-out infinite}
.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(1){animation:pup-voice-listening-wave 1.7s ease-out infinite}
.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(2){animation:pup-voice-listening-wave 1.7s .56s ease-out infinite}
.pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring:nth-child(3){animation:pup-voice-listening-wave 1.7s 1.12s ease-out infinite}
.pup-voice-widget__status.is-thinking .pup-voice-widget__orb{
  border-radius:50%;
  background:conic-gradient(#b72b3b 0 24%,#f1d8dc 24% 74%,#b72b3b 74% 100%);
  box-shadow:none;
  animation:pup-voice-thinking-spin 1.1s linear infinite;
}
.pup-voice-widget__status.is-thinking .pup-voice-widget__orb:after{
  display:block;
  inset:10px;
  height:auto;
  border-radius:50%;
  background:#fff;
  filter:none;
  transform:none;
}
.pup-voice-widget__status.is-thinking .pup-voice-widget__orb-ring{display:none}
.pup-voice-widget__status.is-speaking .pup-voice-widget__orb{background:#1d1d1d;animation:pup-voice-speaking-pulse .82s ease-in-out infinite}
.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring{border-color:rgba(29,29,29,.34)}
.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(1){animation:pup-voice-speaking-wave 1.15s ease-out infinite}
.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(2){animation:pup-voice-speaking-wave 1.15s .57s ease-out infinite}
.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring:nth-child(3){display:none}

/* La pulsation n’est jouée qu’au premier affichage de l’aide. */
.pup-voice-widget.is-fab-hint-visible .pup-voice-widget__fab{animation:pup-voice-fab-attention 2.2s ease-in-out 2}
@keyframes pup-voice-fab-attention{0%,100%{box-shadow:0 4px 14px rgba(0,0,0,.25)}50%{box-shadow:0 4px 14px rgba(0,0,0,.25),0 0 0 7px rgba(183,43,59,.14)}}
@keyframes pup-voice-listening-pulse{0%,100%{transform:scale(.94)}50%{transform:scale(1.05)}}
@keyframes pup-voice-listening-wave{0%{transform:scale(.78);opacity:.58}100%{transform:scale(1.85);opacity:0}}
@keyframes pup-voice-thinking-spin{to{transform:rotate(360deg)}}
@keyframes pup-voice-speaking-pulse{0%,100%{transform:scale(1,.94)}50%{transform:scale(1.08,1.03)}}
@keyframes pup-voice-speaking-wave{0%{transform:scale(.82);opacity:.5}100%{transform:scale(1.62);opacity:0}}

@media (max-width:480px){
  .pup-voice-widget{right:18px;bottom:calc(var(--pup-voice-safe-bottom,24px) + env(safe-area-inset-bottom));gap:9px}
  .pup-voice-widget__fab-label{display:none}
  .pup-voice-widget.is-fab-hint-visible .pup-voice-widget__fab-label{display:flex}
  .pup-voice-widget__panel{right:0;bottom:74px;width:min(380px,calc(100vw - 24px))}
}
@media (prefers-reduced-motion:reduce){
  .pup-voice-widget__fab,.pup-voice-widget__orb,.pup-voice-widget__orb-ring{animation:none!important;transition:none!important}
  .pup-voice-widget__status.is-listening .pup-voice-widget__orb-ring,.pup-voice-widget__status.is-speaking .pup-voice-widget__orb-ring{opacity:.3;transform:scale(1.32)}
}

/* Le même rouge relie l’ouverture et l’arrêt volontaire de l’assistant. */
.pup-voice-widget{--pup-voice-primary:#b72b3b}
.pup-voice-widget__fab{background:var(--pup-voice-primary)}
.pup-voice-widget__end{background:var(--pup-voice-primary)}
.pup-voice-widget__fab-icon,.pup-voice-widget__fab-icon svg{width:32px;height:32px}

/* La capsule est un repère d’accueil temporaire sur mobile comme sur ordinateur. */
.pup-voice-widget__fab-label{display:none}
.pup-voice-widget.is-fab-hint-visible .pup-voice-widget__fab-label{display:flex}

/* La croix noire conserve un libellé accessible sans prendre la place du contenu. */
.pup-voice-widget__close{
  display:grid;
  place-items:center;
  width:38px;
  min-width:38px;
  height:38px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#1d1d1d;
  color:#fff;
}
.pup-voice-widget__close:hover{background:#000}
.pup-voice-widget__close svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2.4}

/* Les styles génériques du thème ne doivent pas recolorer la fermeture. */
.pup-voice-widget .pup-voice-widget__panel .pup-voice-widget__close{background:#000!important;color:#fff!important}
.pup-voice-widget .pup-voice-widget__panel .pup-voice-widget__close:hover{background:#1d1d1d!important}

/* Le micro plein et ses ondes restent reconnaissables sur un bouton de 58 px. */
.pup-voice-widget__fab-icon,.pup-voice-widget__fab-icon svg{width:36px;height:36px}
.pup-voice-widget__fab-icon svg{stroke-width:1.9}
.pup-voice-widget__fab-icon .pup-voice-widget__mic-body{fill:currentColor;stroke:none}
