/* ============================================================
   Chatbot du site façon widget gleap.ai, refait le 13/10/2026 (demande Axel) : la tête de Bobby en pâte à modeler pour lanceur,
   des onglets (Accueil, Messages, Le Labo, Aide) et des pop-ups à côté de la tête. Code : script.js, bloc « Parlez à Bobby ».
   Règle d'Axel : aucun dégradé, aucun fondu, aucun flou, aucune ombre. Des aplats francs, des bords nets, un filet de 1 px pour séparer.
   Chargée en dernier : elle ne dépend pas des anciennes règles .bobby-plein / .bobby-flottant__btn (plus utilisées par le chat).
   ============================================================ */
.bw, .bw-pop, .bw-lanceur {
  --bw-fond: #fff; --bw-texte: #191919; --bw-gris: #6f6f6c; --bw-filet: rgba(0,0,0,.1); --bw-filet-2: rgba(0,0,0,.2);
  --bw-tuile: #f3f3f0; --bw-tuile-2: #e9e9e4; --bw-sombre: #191919; --bw-sur-sombre: #fff; --bw-sur-sombre-2: rgba(255,255,255,.66);
  --bw-orange: #FB4D17; --bw-orange-2: #e2410f; --bw-moi: #191919; --bw-moi-t: #fff; --bw-r: 20px;
  font-family: var(--font, "Switzer", Arial, sans-serif);
}
html[data-theme="nuit"] .bw, html[data-theme="nuit"] .bw-pop, html[data-theme="nuit"] .bw-lanceur {
  --bw-fond: #1f1f1f; --bw-texte: #fff; --bw-gris: rgba(255,255,255,.62); --bw-filet: rgba(255,255,255,.1); --bw-filet-2: rgba(255,255,255,.22);
  --bw-tuile: #2a2a2a; --bw-tuile-2: #333; --bw-sombre: #111112; --bw-moi: #fff; --bw-moi-t: #141414;
}

/* ---------- la mascotte (calques : antenne, tête, yeux SVG, étincelles) ---------- */
.bw-mascotte { position: relative; display: block; width: 64px; height: 64px; flex: none; --rx: 0px; --ry: 0px; --penche: 0deg; }
.bw-m-corps { position: absolute; inset: 0; transform-origin: 50% 90%; transform: rotate(var(--penche)); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.bw-m-corps img, .bw-m-yeux { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.bw-m-antenne { transform-origin: 50.2% 22%; }
.bw-m-yeux { overflow: visible; }
.bw-m-regard { transform: translate(var(--rx), var(--ry)); transition: transform .18s ease-out; }
.bw-m-oeil { fill: #1a1a1a; transform-box: fill-box; transform-origin: center; transition: transform .07s ease-in; }
.bw-m--cligne .bw-m-oeil { transform: scaleY(.12); }
.bw-m-eclats { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke: #1a1a1a; stroke-width: 9; stroke-linecap: round; transform-origin: 80% 15%; transform: scale(.4); visibility: hidden; transition: transform .2s ease, visibility 0s linear .2s; }
html[data-theme="nuit"] .bw-m-eclats { stroke: #fff; }
/* survol du lanceur, arrivée d'une pop-up, clic : il salue de l'antenne, saute un peu, les étincelles sortent */
.bw-lanceur:hover .bw-m-antenne, .bw-lanceur:focus-visible .bw-m-antenne, .bw-m--salue .bw-m-antenne, .bw-m--saute .bw-m-antenne { animation: bw-antenne .9s ease-in-out; }
.bw-lanceur:hover .bw-m-eclats, .bw-lanceur:focus-visible .bw-m-eclats, .bw-m--salue .bw-m-eclats { transform: none; visibility: visible; transition: transform .2s ease, visibility 0s; }
.bw-lanceur:hover .bw-mascotte, .bw-m--salue { animation: bw-hop .6s cubic-bezier(.3,1.6,.5,1); }
.bw-m--saute { animation: bw-saute .35s ease-out; }
@keyframes bw-antenne { 0% { transform: rotate(0); } 20% { transform: rotate(16deg); } 45% { transform: rotate(-12deg); } 70% { transform: rotate(6deg); } 100% { transform: rotate(0); } }
@keyframes bw-hop { 0% { transform: translateY(0); } 35% { transform: translateY(-6px) rotate(-4deg); } 70% { transform: translateY(0) rotate(2deg); } 100% { transform: none; } }
@keyframes bw-saute { 0% { transform: scale(1); } 40% { transform: scale(1.12, .9); } 100% { transform: scale(1); } }

/* ---------- le lanceur : la tête seule en bas à droite ; fenêtre ouverte, un rond sombre avec un chevron ---------- */
.bw-lanceur { position: fixed; right: 18px; bottom: 16px; z-index: 310; width: 68px; height: 68px; padding: 0; margin: 0; border: 0; border-radius: 22px; background: transparent; color: var(--bw-texte); cursor: pointer; display: block; box-shadow: none; transition: transform .25s cubic-bezier(.2,.8,.2,1); -webkit-tap-highlight-color: transparent; }
.bw-lanceur .bw-mascotte { position: absolute; left: 2px; top: 2px; transition: transform .3s cubic-bezier(.2,.8,.2,1), visibility 0s; }
.bw-lanceur:focus-visible { outline: 2px solid var(--bw-orange); outline-offset: 2px; }
.bw-chevron { position: absolute; left: 8px; top: 8px; width: 52px; height: 52px; border-radius: 50%; background: var(--bw-sombre); color: #fff; display: flex; align-items: center; justify-content: center; transform: scale(0) rotate(-90deg); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
html[data-theme="nuit"] .bw-chevron { background: #fff; color: #141414; }
.bw-chevron svg { width: 24px; height: 24px; }
.bw-lanceur.is-ouvert .bw-mascotte { transform: scale(0); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
.bw-lanceur.is-ouvert .bw-chevron { transform: none; }
.bw-bulle { position: absolute; right: calc(100% + 6px); top: 50%; transform: translate(6px, -50%) scale(.9); transform-origin: right center; white-space: nowrap; padding: 7px 12px; border-radius: 999px; background: var(--bw-sombre); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.2; visibility: hidden; pointer-events: none; transition: transform .18s ease, visibility 0s linear .18s; }
html[data-theme="nuit"] .bw-bulle { background: #fff; color: #141414; }
.bw-lanceur:hover .bw-bulle, .bw-lanceur:focus-visible .bw-bulle { visibility: visible; transform: translate(0, -50%); transition: transform .18s ease, visibility 0s; }
.bw-lanceur.is-ouvert .bw-bulle { display: none; }
.bw-lanceur.is-cache { transform: translateY(110px); pointer-events: none; }
.bw-lanceur.is-ouvert.is-cache { transform: none; pointer-events: auto; }
@media (hover: none) { .bw-bulle { display: none; } }
html.bobby-plein-ouvert .bw-lanceur { visibility: hidden; }

/* ---------- la fenêtre ---------- */
.bw { position: fixed; z-index: 300; right: 20px; bottom: 96px; width: 400px; max-width: calc(100vw - 40px); height: min(680px, calc(100vh - 116px)); height: min(680px, calc(100dvh - 116px));
  display: flex; flex-direction: column; overflow: hidden; margin: 0; padding: 0; background: var(--bw-fond); color: var(--bw-texte); border: 1px solid var(--bw-filet); border-radius: 26px; box-shadow: none;
  font-size: 15px; line-height: 1.45; text-align: left;
  transform-origin: right bottom; transform: scale(0); visibility: hidden; pointer-events: none; transition: transform .3s cubic-bezier(0, 1.2, 1, 1), visibility 0s linear .3s; }
.bw.is-open { transform: none; visibility: visible; pointer-events: auto; transition: transform .3s cubic-bezier(0, 1.2, 1, 1), visibility 0s; }
.bw *, .bw *::before, .bw *::after { box-sizing: border-box; }
.bw button { font: inherit; color: inherit; }
.bw a { color: inherit; text-decoration: none; }
.bw [hidden] { display: none !important; }
.bw :focus-visible { outline: 2px solid var(--bw-orange); outline-offset: 2px; }
.bw .bw-volet:focus-visible, .bw-demande__champ:focus-visible, .bw .assistant__champ:focus-visible, .bw-recherche input:focus-visible { outline: none; }

/* en-tête : sur l'accueil, un aplat sombre ; dans les autres onglets, blanc avec le titre au centre et un filet dessous */
.bw-haut { flex: none; position: relative; display: flex; align-items: center; gap: 4px; min-height: 64px; padding: 12px 12px 12px 18px; background: var(--bw-fond); border-bottom: 1px solid var(--bw-filet); }
.bw-qui { display: flex; align-items: center; gap: 10px; margin-right: auto; min-width: 0; }
.bw-mascotte--mini { width: 38px; height: 38px; }
.bw-qui__nom { display: flex; flex-direction: column; font-size: 15px; font-weight: 600; line-height: 1.15; }
.bw-qui__nom small { display: inline-flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--bw-gris); }
.bw-qui__nom small i { width: 7px; height: 7px; border-radius: 50%; background: #2fb86a; }
.bw-titre { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -.01em; line-height: 1; color: var(--bw-texte); white-space: nowrap; }
.bw[data-onglet="accueil"] .bw-titre { display: none; }
.bw:not([data-onglet="accueil"]) .bw-qui { visibility: hidden; }
.bw[data-onglet="accueil"] .bw-haut { background: var(--bw-sombre); color: var(--bw-sur-sombre); border-bottom-color: var(--bw-sombre); }
.bw[data-onglet="accueil"] .bw-qui__nom small { color: var(--bw-sur-sombre-2); }
.bw-actions { display: flex; gap: 2px; }
.bw .bp-bouton { width: 38px; height: 38px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: currentColor; display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 0; cursor: pointer; transition: background .15s; }
.bw .bp-bouton:hover { background: var(--bw-tuile); }
.bw[data-onglet="accueil"] .bp-bouton:hover { background: rgba(255,255,255,.12); }
.bw .bp-bouton svg { width: 18px; height: 18px; }
.bw .bp-agrandir svg { width: 16px; height: 16px; }
.bw .bp-ico-reduire, .bw.is-agrandi .bp-ico-agrandir { display: none; }
.bw.is-agrandi .bp-ico-reduire { display: block; }

.bw-volets { position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.bw-volet { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--bw-filet-2) transparent; }

/* --- Accueil : la salutation sur l'aplat sombre, le champ à cheval sur le bord net (pas de fondu) --- */
.bw-hero { background: var(--bw-sombre); color: var(--bw-sur-sombre); padding: 22px 22px 58px; }
.bw-salut { margin: 0; font-size: 25px; font-weight: 600; line-height: 1.2; letter-spacing: -.015em; }
.bw-salut span { display: block; margin-bottom: 2px; font-weight: 300; }
.bw-pile { display: flex; flex-direction: column; gap: 14px; padding: 0 16px 18px; margin-top: -40px; }
.bw-demande { position: relative; display: flex; flex-direction: column; margin: 0; padding: 14px 12px 12px 16px; background: var(--bw-fond); border: 1px solid var(--bw-filet); border-radius: 22px; }
.bw-demande:focus-within { border-color: var(--bw-filet-2); }
.bw-demande__champ { display: block; width: 100%; min-height: 46px; margin: 0; padding: 0 0 6px; border: 0; outline: none; resize: none; background: transparent; color: var(--bw-texte); font: inherit; font-size: 15px; line-height: 1.45; }
.bw-demande__champ::placeholder { color: var(--bw-gris); }
.bw-envoi, .bw .assistant__envoi { width: 38px; height: 38px; margin: 0 0 0 auto; padding: 0; border: 0; border-radius: 50%; background: var(--bw-orange); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; cursor: pointer; transition: background .15s, transform .15s; }
.bw-envoi:hover, .bw .assistant__envoi:hover { background: var(--bw-orange-2); transform: scale(1.05); }
.bw-envoi svg, .bw .assistant__envoi svg { width: 18px; height: 18px; }
/* puces d'actions : blanches, filet fin, petit emoji posé en CSS (il ne part pas dans le message) */
.bw .assistant__puces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.bw .assistant__puces button { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 7px 13px 7px 10px; border-radius: 999px; border: 1px solid var(--bw-filet-2); background: var(--bw-fond); color: var(--bw-texte); font-size: 13px; font-weight: 400; line-height: 1.3; cursor: pointer; transition: background .15s, border-color .15s; }
.bw .assistant__puces button:hover { background: var(--bw-tuile); border-color: var(--bw-texte); }
.bw .assistant__puces button span { display: none; }
.bw .assistant__puces button::before { font-size: 14px; line-height: 1; }
.bw .assistant__puces button:nth-child(1)::before { content: "🔗"; }
.bw .assistant__puces button:nth-child(2)::before { content: "📨"; }
.bw .assistant__puces button:nth-child(3)::before { content: "📣"; }
.bw .assistant__puces button:nth-child(4)::before { content: "🧾"; }
.bw-reprendre, .bw-ligne { display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 12px 14px; border: 1px solid var(--bw-filet); border-radius: 20px; background: var(--bw-fond); color: var(--bw-texte); text-align: left; cursor: pointer; transition: background .15s, border-color .15s; }
.bw-reprendre:hover, .bw-ligne:hover { background: var(--bw-tuile); }
.bw-reprendre > svg, .bw-ligne > svg { width: 16px; height: 16px; flex: none; margin-left: auto; color: var(--bw-gris); }
.bw-reprendre__av { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--bw-tuile); display: flex; align-items: center; justify-content: center; }
.bw-mascotte--puce { width: 34px; height: 34px; }
.bw-reprendre__txt, .bw-ligne > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.bw-reprendre__txt b, .bw-ligne b { font-size: 14px; font-weight: 600; }
.bw-reprendre__txt span, .bw-ligne > span:nth-child(2) span { font-size: 13px; color: var(--bw-gris); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bw-intertitre { margin: 4px 2px 8px; font-size: 13px; font-weight: 500; color: var(--bw-gris); letter-spacing: 0; }
.bw-tuile { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--bw-tuile); color: var(--bw-texte); display: inline-flex; align-items: center; justify-content: center; }
.bw-tuile svg { width: 19px; height: 19px; }

/* --- cartes du Labo (accueil et onglet Le Labo) : grande image, type, titre gras, résumé sur 2 lignes, chevron --- */
.bw-carte { position: relative; display: block; overflow: hidden; border: 1px solid var(--bw-filet); border-radius: 22px; background: var(--bw-fond); color: var(--bw-texte); transition: border-color .15s; }
.bw-carte:hover { border-color: var(--bw-filet-2); }
.bw-carte__img { display: block; aspect-ratio: 1600 / 675; background: var(--bw-tuile); border-bottom: 0; overflow: hidden; }
.bw-carte__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.bw-carte:hover .bw-carte__img img { transform: scale(1.03); }
.bw-carte__txt { display: flex; flex-direction: column; gap: 3px; padding: 12px 44px 14px 16px; }
.bw-carte__txt small { font-size: 12px; font-weight: 500; color: var(--bw-orange); }
.bw-carte__txt b { font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: -.005em; }
.bw-carte__txt span { font-size: 13.5px; line-height: 1.45; color: var(--bw-gris); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bw-carte > svg { position: absolute; right: 16px; bottom: 30px; width: 16px; height: 16px; color: var(--bw-texte); }

/* --- Messages : la conversation, la saisie en bas --- */
.bw-volet--messages:not([hidden]) { display: flex; flex-direction: column; overflow: hidden; }
.bw .bp-corps { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; margin: 0; padding: 0 14px 14px; }
.bw .assistant__fil { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 10px; margin: 0 -14px 12px; padding: 16px 14px 4px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--bw-filet-2) transparent; }
.bw .assistant__fil:empty { display: flex; }
.bw .assistant__fil:empty::before { content: none; }
.bw .assistant__fil .msg { margin: 0; font-size: 15px; line-height: 1.45; padding: 10px 14px; border-radius: 18px; max-width: 84%; border: 0; box-shadow: none; white-space: normal; animation: none; }
.bw .assistant__fil .msg--me { align-self: flex-end; background: var(--bw-moi); color: var(--bw-moi-t); border-bottom-right-radius: 6px; overflow-wrap: anywhere; }
.bw .assistant__fil .msg--ai { position: relative; align-self: flex-start; margin-left: 38px; background: var(--bw-tuile); color: var(--bw-texte); border: 0; border-bottom-left-radius: 6px; }
.bw .assistant__fil .msg--ai .who { position: absolute; left: -38px; bottom: 0; width: 30px; height: 30px; margin: 0; border-radius: 50%; background: var(--bw-tuile) url("/assets/chatbot/bobby-avatar.webp?v=202610130000") center 1px / 26px no-repeat; font-size: 0; }
.bw .assistant__fil .msg--ai .who .tete-bobby { display: none; }
.bw .assistant__fil .msg--ai a { color: var(--bw-texte); font-weight: 500; text-decoration: underline; text-decoration-color: var(--bw-orange); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.bw .assistant__fil .typing { display: inline-flex; gap: 5px; align-self: flex-start; margin-left: 38px; padding: 13px 15px; background: var(--bw-tuile); border: 0; border-radius: 18px; border-bottom-left-radius: 6px; animation: none; }
.bw .assistant__fil .typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--bw-gris); }
.bw .assistant__fil .msg--erreur { background: #fdf0ef; color: #191919; }
html[data-theme="nuit"] .bw .assistant__fil .msg--erreur { background: #3a2220; color: #fff; }
.bw .assistant__fil .msg--etape .assistant__note { display: block; margin-top: 8px; font-size: 11.5px; line-height: 1.35; color: var(--bw-gris); }
.bw .assistant__fil .msg--etape .ok { color: #1f8a46; font-weight: 600; }
html[data-theme="nuit"] .bw .assistant__fil .msg--etape .ok { color: #6fd58e; }
html .bw .assistant__fil .msg--requis { background: var(--bw-fond); border: 1px solid var(--bw-texte); }
.bw .assistant__fil .msg--requis strong { color: var(--bw-texte); font-weight: 600; }
.bw .assistant__fil .msg--requis .requis { display: flex; width: fit-content; align-items: center; gap: 6px; margin-bottom: 8px; padding: 3px 10px; border-radius: 999px; background: var(--bw-texte); color: var(--bw-fond); font-size: 12px; font-weight: 500; }
.bw .assistant__fil .msg--requis .requis::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--bw-orange); }
.bw .assistant__fil .is-new { animation: bw-monte .3s cubic-bezier(.2,.8,.2,1) both; }
@keyframes bw-monte { from { transform: translateY(10px); } to { transform: none; } }
.bw .assistant__suite { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; margin: 2px 0 0 38px; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--bw-texte); background: var(--bw-texte); color: var(--bw-fond); font-size: 14px; font-weight: 500; animation: none; transition: background .15s; }
.bw .assistant__suite:hover { background: var(--bw-orange); border-color: var(--bw-orange); color: #fff; }
.bw .assistant__rdv { align-self: flex-start; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-left: 38px; font-size: 13px; color: var(--bw-gris); }
.bw .assistant__rdv .assistant__suite { margin: 0; padding: 7px 14px; background: var(--bw-fond); color: var(--bw-texte); border-color: var(--bw-filet-2); font-size: 13px; }
.bw .assistant__rdv .assistant__suite:hover { background: var(--bw-tuile); color: var(--bw-texte); border-color: var(--bw-texte); }
html .bw .assistant__form { flex: none; display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; padding: 7px 7px 7px 16px; background: var(--bw-fond); border: 1px solid var(--bw-filet-2); border-radius: 999px; box-shadow: none; }
html .bw .assistant__form:focus-within { border-color: var(--bw-texte); }
html .bw .assistant__form.is-requis { border-color: var(--bw-texte); box-shadow: inset 0 0 0 1px var(--bw-texte); }
.bw .assistant__form.is-off { opacity: .55; }
.bw .assistant__form.is-off .assistant__envoi { pointer-events: none; }
.bw .assistant__champ { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; border: 0; outline: none; background: transparent; color: var(--bw-texte); font: inherit; font-size: 15px; text-overflow: ellipsis; }
.bw .assistant__champ::placeholder { color: var(--bw-gris); }
.bw .assistant__form .assistant__envoi { width: 36px; height: 36px; }

/* --- Le Labo : filtre en pilules, cartes --- */
.bw-volet--labo { padding: 14px 16px 18px; }
.bw-filtres { display: flex; gap: 6px; margin: 0 0 14px; padding: 4px; width: fit-content; border-radius: 999px; background: var(--bw-tuile); }
.bw-filtres button { margin: 0; padding: 7px 14px; border: 0; border-radius: 999px; background: transparent; color: var(--bw-gris); font-size: 13.5px; font-weight: 500; cursor: pointer; transition: background .15s, color .15s; }
.bw-filtres button:hover { color: var(--bw-texte); }
.bw-filtres button[aria-pressed="true"] { background: var(--bw-texte); color: var(--bw-fond); }
.bw-cartes { display: flex; flex-direction: column; gap: 14px; }
.bw-vide { margin: 8px 2px; font-size: 14px; color: var(--bw-gris); }
.bw-vide a { color: var(--bw-texte); text-decoration: underline; text-decoration-color: var(--bw-orange); text-underline-offset: 3px; }
.bw-tout { display: inline-flex; align-items: center; gap: 6px; margin: 16px 2px 0; font-size: 14px; font-weight: 500; color: var(--bw-texte); border-bottom: 1px solid var(--bw-orange); padding-bottom: 1px; }
.bw-tout svg { width: 14px; height: 14px; }

/* --- Aide : recherche, rubriques (icône dans une tuile grise, titre, résumé, chevron), questions fréquentes --- */
.bw-volet--aide { padding: 14px 0 18px; }
.bw-recherche { display: flex; align-items: center; gap: 10px; margin: 0 16px 10px; padding: 0 14px; height: 46px; border-radius: 14px; background: var(--bw-tuile); border: 1px solid transparent; color: var(--bw-gris); cursor: text; }
.bw-recherche:focus-within { border-color: var(--bw-texte); }
.bw-recherche svg { width: 18px; height: 18px; flex: none; }
.bw-recherche input { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; outline: none; background: transparent; color: var(--bw-texte); font: inherit; font-size: 15px; -webkit-appearance: none; appearance: none; }
.bw-recherche input::placeholder { color: var(--bw-gris); }
.bw-rubriques { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--bw-filet); }
.bw-rubriques li { border-bottom: 1px solid var(--bw-filet); }
.bw-rubriques a { display: flex; align-items: center; gap: 14px; padding: 13px 16px; color: var(--bw-texte); transition: background .15s; }
.bw-rubriques a:hover { background: var(--bw-tuile); }
.bw-rubriques a > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bw-rubriques b { font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.bw-rubriques a > span:nth-child(2) span { font-size: 13px; line-height: 1.4; color: var(--bw-gris); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bw-rubriques a > svg { width: 15px; height: 15px; flex: none; margin-left: auto; color: var(--bw-gris); }
.bw-volet--aide .bw-intertitre { margin: 20px 16px 6px; }
.bw-faq { margin: 0 16px; }
.bw-faq details { border-bottom: 1px solid var(--bw-filet); }
.bw-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 2px; font-size: 14.5px; font-weight: 500; line-height: 1.35; cursor: pointer; list-style: none; }
.bw-faq summary::-webkit-details-marker { display: none; }
.bw-faq summary svg { width: 16px; height: 16px; flex: none; color: var(--bw-gris); transition: transform .2s ease; }
.bw-faq details[open] summary svg { transform: rotate(180deg); }
.bw-faq p { margin: -4px 2px 14px; font-size: 14px; line-height: 1.5; color: var(--bw-gris); }
.bw-faq p a { color: var(--bw-texte); font-weight: 500; text-decoration: underline; text-decoration-color: var(--bw-orange); text-underline-offset: 3px; white-space: nowrap; }
.bw-vide--aide { margin: 18px 16px; padding: 18px; border: 1px solid var(--bw-filet); border-radius: 22px; text-align: center; }
.bw-vide--aide p { margin: 0 0 12px; font-size: 14px; color: var(--bw-gris); }
.bw-bouton { margin: 0; padding: 9px 16px; border: 0; border-radius: 999px; background: var(--bw-texte); color: var(--bw-fond) !important; font-size: 14px; font-weight: 500; cursor: pointer; }
.bw-bouton:hover { background: var(--bw-orange); color: #fff !important; }

/* --- la barre d'onglets en pilule, posée sur un bandeau plein (rien ne passe dessous : ni flou, ni fondu) --- */
.bw-onglets { flex: none; display: flex; gap: 2px; margin: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: var(--bw-fond); border-top: 1px solid var(--bw-filet); }
.bw-onglets button { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 54px; margin: 0; padding: 0 4px; border: 0; border-radius: 16px; background: transparent; color: var(--bw-gris); font-size: 12px; font-weight: 500; line-height: 1.1; cursor: pointer; transition: background .15s, color .15s; }
.bw-onglets button:hover { color: var(--bw-texte); }
.bw-onglets button svg { width: 22px; height: 22px; }
.bw-onglets button span { white-space: nowrap; }
.bw-onglets button[aria-selected="true"] { background: var(--bw-tuile); color: var(--bw-texte); font-weight: 600; }
.bw-onglets button[aria-selected="true"] svg { stroke-width: 2.3; color: var(--bw-orange); }

/* --- agrandi (ordinateur) : toute la fenêtre, contenu centré --- */
.bw.is-agrandi { inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh; border: 0; border-radius: 0; }
.bw.is-agrandi .bw-haut { padding-left: max(18px, calc((100% - 760px) / 2)); padding-right: max(12px, calc((100% - 760px) / 2 - 10px)); }
.bw.is-agrandi .bw-hero { padding: 12vh max(22px, calc((100% - 760px) / 2)) 64px; }
.bw.is-agrandi .bw-salut { font-size: 40px; }
.bw.is-agrandi .bw-pile, .bw.is-agrandi .bp-corps, .bw.is-agrandi .bw-volet--labo, .bw.is-agrandi .bw-volet--aide { width: 100%; max-width: 760px; margin-left: auto; margin-right: auto; }
.bw.is-agrandi .bw-pile { margin-top: -40px; }
.bw.is-agrandi .assistant__fil .msg { max-width: 72%; }
.bw.is-agrandi .bw-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bw.is-agrandi .bw-onglets { justify-content: center; }
.bw.is-agrandi .bw-onglets button { flex: 0 1 140px; }

/* ---------- les pop-ups : une carte à côté de la tête de Bobby (image, titre, texte, 1 / 3, Suivant) ---------- */
.bw-pop { position: fixed; z-index: 305; right: 20px; bottom: 96px; width: 340px; max-width: calc(100vw - 32px); overflow: hidden; background: var(--bw-fond); color: var(--bw-texte); border: 1px solid var(--bw-filet); border-radius: 22px; box-shadow: none; font-size: 14px; line-height: 1.45; transform-origin: right bottom; }
.bw-pop[hidden] { display: none; }
.bw-pop.is-in { animation: bw-pop-sort .42s cubic-bezier(.2,1.4,.4,1) both; }
@keyframes bw-pop-sort { from { transform: translateY(14px) scale(.92); } to { transform: none; } }
.bw-pop *, .bw-pop *::before, .bw-pop *::after { box-sizing: border-box; }
.bw-pop a { color: inherit; text-decoration: none; }
.bw-pop :focus-visible { outline: 2px solid var(--bw-orange); outline-offset: 2px; }
.bw-pop__fermer { position: absolute; right: 10px; top: 10px; z-index: 1; width: 30px; height: 30px; margin: 0; padding: 0; border: 1px solid var(--bw-filet-2); border-radius: 50%; background: var(--bw-fond); color: var(--bw-texte); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.bw-pop__fermer:hover { background: var(--bw-tuile); }
.bw-pop__fermer svg { width: 14px; height: 14px; }
.bw-pop__img { display: block; aspect-ratio: 680 / 320; background: var(--bw-tuile); border-bottom: 0; overflow: hidden; }
.bw-pop__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bw-pop__corps { padding: 14px 16px 14px; }
.bw-pop__corps small { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 500; color: var(--bw-orange); }
.bw-pop__corps b { display: block; padding-right: 26px; font-size: 16px; font-weight: 600; line-height: 1.3; letter-spacing: -.005em; }
.bw-pop__img + .bw-pop__corps b { padding-right: 0; }
.bw-pop__corps p { margin: 6px 0 0; color: var(--bw-gris); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bw-pop__pied { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; }
.bw-pop__page { font-size: 13px; color: var(--bw-gris); font-variant-numeric: tabular-nums; }
.bw-pop__btns { display: flex; gap: 8px; }
.bw-pop__suivant, .bw-pop__action { display: inline-flex; align-items: center; height: 34px; margin: 0; padding: 0 14px; border-radius: 10px; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.bw-pop__suivant { border: 1px solid var(--bw-filet-2); background: var(--bw-fond); color: var(--bw-texte); }
.bw-pop__suivant:hover { border-color: var(--bw-texte); }
.bw-pop .bw-pop__action { border: 1px solid var(--bw-texte); background: var(--bw-texte); color: var(--bw-fond); }
.bw-pop .bw-pop__action:hover { background: var(--bw-orange); border-color: var(--bw-orange); color: #fff; }

/* ---------- téléphone : plein écran, barre d'onglets au pouce ; pendant la saisie, la barre se range ---------- */
@media (max-width: 640px) {
  .bw, .bw.is-agrandi { left: 0; top: 0; right: 0; bottom: auto; width: 100%; max-width: none; height: 100vh; height: 100dvh; border: 0; border-radius: 0; transform: translateY(24px); transition: transform .25s cubic-bezier(.2,.8,.2,1), visibility 0s linear .25s; }
  .bw.is-open { transform: none; transition: transform .25s cubic-bezier(.2,.8,.2,1), visibility 0s; }
  .bw .bp-agrandir { display: none; }
  .bw-haut { min-height: 60px; padding: 10px 8px 10px 14px; }
  .bw-hero { padding: 18px 18px 56px; }
  .bw-salut { font-size: 24px; }
  .bw-pile { padding: 0 14px 18px; }
  .bw .assistant__champ, .bw-demande__champ, .bw-recherche input { font-size: 16px; }   /* 16 px : l'iPhone ne zoome pas sur le champ */
  .bw .assistant__champ::placeholder { font-size: 14.5px; }
  .bw .assistant__fil .msg { max-width: 88%; }
  .bw .bp-corps { padding: 0 12px 12px; }
  .bw.bw--saisie .bw-onglets { display: none; }
  .bw.bw--saisie .bp-corps { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
  .bw-onglets { padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .bw-onglets button { height: 56px; font-size: 11.5px; }
  .bw-lanceur { right: 12px; bottom: 12px; }
  /* téléphone : la tête de Bobby plus petite, pas de pop-ups (demande Axel 13/10) */
  .bw-lanceur { width: 50px; height: 50px; border-radius: 16px; }
  .bw-lanceur .bw-mascotte { left: 2px; top: 2px; width: 46px; height: 46px; }
  .bw-chevron { left: 3px; top: 3px; width: 44px; height: 44px; }
  .bw-chevron svg { width: 20px; height: 20px; }
  .bw-pop { display: none !important; }
  .bw-pop { right: 16px; left: 16px; bottom: 90px; width: auto; max-width: none; }
  .bw-pop__img { aspect-ratio: 680 / 260; }
}
@media (prefers-reduced-motion: reduce) {
  .bw, .bw.is-open, .bw.is-agrandi { transform: none; transition: visibility 0s; }
  .bw-lanceur, .bw-lanceur .bw-mascotte, .bw-chevron, .bw-m-corps, .bw-m-regard, .bw-m-eclats { transition: none; }
  .bw-lanceur:hover .bw-mascotte, .bw-lanceur:hover .bw-m-antenne, .bw-m--salue, .bw-m--salue .bw-m-antenne, .bw-m--saute, .bw-pop.is-in, .bw .assistant__fil .is-new { animation: none; }
  .bw-carte:hover .bw-carte__img img { transform: none; }
}
/* fenêtre ouverte : la tête et ses étincelles disparaissent vraiment (sur écran tactile, le survol reste collé après le toucher) */
.bw-lanceur.is-ouvert .bw-m-eclats, html.bobby-plein-ouvert .bw-lanceur .bw-m-eclats, html.bobby-plein-ouvert .bw-lanceur .bw-mascotte { visibility: hidden !important; }
@media (hover: none) { .bw-lanceur:hover .bw-m-eclats { visibility: hidden; } .bw-lanceur:hover .bw-mascotte { animation: none; } }
