/* Orbi, le compagnon numérique d'Orbitoile (version 8, 3 novembre 2026).
   Pastille ronde en bas à droite, bulle au-dessus, panneau de 360 px ; volet par le bas sur téléphone.
   Animations : seulement transform et opacity, coupées si le visiteur demande moins d'animations. */
#orbi-widget{position:fixed;right:24px;bottom:24px;z-index:99990;font-family:inherit;color:#17345e;font-size:14px;line-height:1.5;-webkit-tap-highlight-color:transparent}
#orbi-widget [hidden]{display:none!important}
#orbi-widget button,#orbi-widget a{font-family:inherit}
#orbi-widget button:focus-visible,#orbi-widget a:focus-visible,#orbi-hello button:focus-visible{outline:3px solid #65a8ff;outline-offset:3px}

/* Pastille : la tête d'Orbi sur fond clair, fin cercle bleu */
#orbi-launch{display:block;width:64px;height:64px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}
#orbi-launch .orbi-float{position:relative;display:block;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#fff;border:1.5px solid #4d8dff;box-shadow:0 8px 22px #0b2d5b2e;animation:orbi-float 4s ease-in-out infinite}
#orbi-head{display:block;width:100%;height:100%;object-fit:cover}
.orbi-blink{position:absolute;inset:0;opacity:0;pointer-events:none;animation:orbi-blink 5.2s linear infinite}
.orbi-blink:before,.orbi-blink:after{content:"";position:absolute;top:35%;width:23%;height:16%;border-radius:40%;background:linear-gradient(#060a1a 0 44%,#5fb6ff 44% 58%,#060a1a 58%)}
.orbi-blink:before{left:21%}
.orbi-blink:after{left:52.5%;top:36.5%}
#orbi-widget:not(.orbi-repos) .orbi-blink{display:none}
#orbi-widget.orbi-sous-form:not(.orbi-ouvert),#orbi-widget.orbi-clavier:not(.orbi-ouvert){opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s}
/* Orbi remonte au-dessus d'un bouton du site au lieu de le cacher */
#orbi-launch,#orbi-bubble{transform:translateY(calc(var(--orbi-up,0px) * -1));transition:transform .3s ease}
/* Bouton « Remplir avec Orbi » dans le formulaire de devis */
.orbi-say{flex-wrap:wrap}.orbi-say p{flex:1 1 120px}
.orbi-say-go{flex:none;margin-left:auto;min-height:36px;padding:7px 15px;border:0;border-radius:18px;background:#2563eb;color:#fff;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.orbi-say-go:hover{background:#1d4fd0}.orbi-say-go:focus-visible{outline:3px solid #65a8ff;outline-offset:3px}

/* Bulle au-dessus de la pastille */
#orbi-bubble{position:absolute;right:0;bottom:76px;width:max-content;max-width:min(280px,calc(100vw - 40px));box-sizing:border-box;padding:12px 38px 12px 14px;background:#fff;border:1px solid #d9e7fb;border-radius:16px 16px 4px 16px;box-shadow:0 14px 36px #102d5530;animation:orbi-in .3s ease-out}
.orbi-b-go,.orbi-b-t{display:block;margin:0;padding:0;border:0;background:none;text-align:left;font-size:14px;line-height:1.45;color:#17345e}
.orbi-b-go{cursor:pointer}
.orbi-b-go:hover{color:#1259c3}
.orbi-b-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.orbi-b-acts a{display:inline-flex;align-items:center;min-height:32px;padding:4px 11px;border:1px solid #b9d4f8;border-radius:16px;background:#fff;color:#1259c3;font-size:13px;font-weight:650;text-decoration:none}
.orbi-b-acts a:first-child{background:#2563eb;border-color:#2563eb;color:#fff}
.orbi-x{position:absolute;top:6px;right:6px;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:#566e90;font-size:19px;line-height:1;cursor:pointer}
.orbi-x:hover{background:#edf4ff;color:#17345e}

/* Bulle d'accueil, à côté du grand robot (accueil uniquement) */
#orbi-hello{position:absolute;z-index:45;box-sizing:border-box;padding:12px 38px 12px 14px;background:#fff;border:1px solid #d9e7fb;border-radius:16px 16px 16px 4px;box-shadow:0 14px 36px #102d5530;color:#17345e;font-size:14px;line-height:1.45;animation:orbi-in .35s ease-out;transition:opacity .3s}
#orbi-hello.orbi-part{opacity:0}

/* Panneau */
#orbi-panel{position:absolute;right:0;bottom:76px;display:none;flex-direction:column;width:min(360px,calc(100vw - 32px));height:min(560px,calc(100vh - 120px));height:min(560px,calc(100dvh - 120px));background:#fff;border:1px solid #d9e7fb;border-radius:20px;box-shadow:0 18px 60px #102d5540;overflow:hidden}
#orbi-panel.orbi-open{display:flex;animation:orbi-in .22s ease-out}
#orbi-panel:focus{outline:none}
#orbi-top{display:flex;align-items:center;gap:10px;padding:10px 12px 8px 6px;border-bottom:1px solid #edf1f7;background:#fff}
#orbi-pose{flex:none;display:block;width:112px;height:84px;object-fit:cover}
#orbi-top div{flex:1;min-width:0}
#orbi-top strong{display:block;font-size:17px;line-height:1.2;color:#012360}
#orbi-top small{display:block;margin-top:2px;font-size:12px;line-height:1.35;color:#566e90}
#orbi-close{flex:none;align-self:flex-start;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#f1f6fe;color:#17345e;font-size:22px;line-height:1;cursor:pointer}
#orbi-close:hover{background:#e3eefd}
#orbi-messages{flex:1;min-height:0;overflow:auto;padding:14px;background:#fff;overscroll-behavior:contain}
#orbi-widget.orbi-ouvert{transition:none!important;transform:none!important}
.orbi-message{max-width:90%;margin:0 0 10px;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;white-space:pre-line}
.orbi-message.bot{background:#edf4ff;border:1px solid #dceaff;border-bottom-left-radius:4px;color:#17345e}
.orbi-message.user{margin-left:auto;background:#2563eb;border-bottom-right-radius:4px;color:#fff}
.orbi-message a{display:inline-block;margin-top:6px;color:#1259c3;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.orbi-typing{display:flex;gap:4px;width:max-content;margin:0 0 10px;padding:12px 14px;border-radius:14px;border-bottom-left-radius:4px;background:#edf4ff;border:1px solid #dceaff}
.orbi-typing i{width:6px;height:6px;border-radius:50%;background:#5f9ee9;animation:orbi-dot 1s ease-in-out infinite}
.orbi-typing i:nth-child(2){animation-delay:.15s}.orbi-typing i:nth-child(3){animation-delay:.3s}
#orbi-options{display:flex;flex-wrap:wrap;gap:7px;padding:10px 12px 12px;border-top:1px solid #edf1f7;background:#fff}
#orbi-options:empty{display:none}
#orbi-options button,#orbi-options a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid #b9d4f8;border-radius:18px;background:#fff;color:#1259c3;font-size:13px;font-weight:650;line-height:1.3;text-align:left;text-decoration:none;cursor:pointer}
#orbi-options button:hover,#orbi-options a:hover{background:#edf5ff;border-color:#6ba8f3}
#orbi-options .primary{background:#2563eb;border-color:#2563eb;color:#fff}
#orbi-options .primary:hover{background:#1d4fd0;border-color:#1d4fd0}
#orbi-note{margin:0;padding:0 14px 10px;background:#fff;font-size:11px;color:#566e90}

@keyframes orbi-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes orbi-blink{0%,94%,98.5%,100%{opacity:0}95%,98%{opacity:1}}
@keyframes orbi-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes orbi-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}

/* Téléphone : pastille de 56 px à 16 px des bords, panneau en volet par le bas */
@media (max-width:640px){
  #orbi-widget{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  #orbi-launch{width:56px;height:56px}
  #orbi-bubble{bottom:68px;max-width:min(280px,calc(100vw - 32px))}
  #orbi-panel{position:fixed;left:0;right:0;bottom:0;width:auto;height:auto;max-height:75vh;max-height:75dvh;border-radius:20px 20px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom,0px)}
  #orbi-pose{width:96px;height:72px}
}
@media (prefers-reduced-motion:reduce){
  #orbi-launch .orbi-float,.orbi-blink,.orbi-typing i,#orbi-bubble,#orbi-hello,#orbi-panel.orbi-open{animation:none}
  #orbi-launch,#orbi-bubble{transition:none}
}
@media print{#orbi-widget,#orbi-hello{display:none}}
