/* ============================================================
   CONTACT / LOCALISATION
   ============================================================ */
.contact-section { background:var(--c-bleu-nuit); color:#fff; position:relative; overflow:hidden; }
.contact-section::before {
    content:''; position:absolute; top:-18%; right:-10%; width:45%; height:70%;
    background:radial-gradient(ellipse, rgba(41,171,226,.16) 0%, transparent 70%);
    pointer-events:none; animation:deriveFond1 20s ease-in-out infinite; z-index:0;
}
.contact-section .dent-flottante {
    position:absolute; bottom:6%; right:6%; width:70px; height:70px;
    background:var(--g-logo);
    clip-path:path('M50 4C25 4 8 22 9 46C10 62 18 74 24 88C28 97 38 96 39 85C40 76 43 72 50 72C57 72 60 76 61 85C62 96 72 97 76 88C82 74 90 62 91 46C92 22 75 4 50 4Z');
    opacity:.08; pointer-events:none; animation:flotteDent 13s ease-in-out infinite; z-index:0;
}
.contact-grid { position:relative; z-index:1; }
.contact-section .eyebrow { color:var(--c-vert); }
.contact-section .eyebrow::before { background:var(--g-logo); }
.contact-section .eyebrow::after  { background:var(--g-logo); }
.contact-section h2 { color:#fff; }
.contact-section p  { color:rgba(255,255,255,.72); }

.contact-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:48px; }

.statut-ouverture {
    display:inline-flex; align-items:center; gap:9px;
    padding:9px 18px; border-radius:var(--radius-btn);
    background:rgba(255,255,255,.08);
    font-size:.84rem; font-weight:700; margin-bottom:28px;
}
.statut-point { width:9px; height:9px; border-radius:50%; background:var(--c-erreur); }
.statut-ouverture.ouvert .statut-point {
    background:#5BCA8B;
    box-shadow:0 0 0 4px rgba(91,202,139,.25);
    animation:pulse 2s infinite;
}
@keyframes pulse {
    0%,100% { box-shadow:0 0 0 4px rgba(91,202,139,.25); }
    50%      { box-shadow:0 0 0 8px rgba(91,202,139,.10); }
}
.statut-ouverture.ouvert { color:#5BCA8B; }
.statut-ouverture.ferme  { color:rgba(255,255,255,.6); }

.contact-infos-liste { display:flex; flex-direction:column; gap:24px; margin-bottom:28px; }
.contact-info-item { display:flex; gap:16px; align-items:flex-start; }
.contact-info-item .icone-cercle {
    width:46px; height:46px; border-radius:12px;
    background:rgba(41,171,226,.15);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0; color:var(--c-bleu);
}
.contact-info-item h4 { color:#fff; font-size:.95rem; margin-bottom:3px; font-family:var(--f-corps); font-weight:700; }
.contact-info-item p,
.contact-info-item a { color:rgba(255,255,255,.72); font-size:.88rem; }
.contact-info-item a:hover { color:var(--c-vert); }

.itineraire-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; }
.itineraire-btn {
    display:inline-flex; align-items:center; gap:7px;
    padding:8px 15px; border-radius:var(--radius-btn);
    background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.14);
    color:#fff; font-size:.78rem; font-weight:700;
    font-family:inherit; cursor:pointer; transition:var(--transition);
}
.itineraire-btn:hover {
    background:var(--c-vert); border-color:var(--c-vert); color:#fff;
    transform:translateY(-2px); box-shadow:0 6px 16px rgba(125,194,66,.3);
}
.itineraire-btn svg { flex-shrink:0; }

.horaires-table { width:100%; border-collapse:collapse; }
.horaires-table tr { border-bottom:1px solid rgba(255,255,255,.08); }
.horaires-table td { padding:9px 0; font-size:.87rem; color:rgba(255,255,255,.72); }
.horaires-table td:last-child { text-align:right; font-weight:700; color:#fff; }
.horaires-table tr.jour-actuel td { color:var(--c-vert); }

.contact-reseaux { display:flex; gap:10px; margin-top:22px; }
.contact-reseaux a {
    width:40px; height:40px; border-radius:10px;
    background:rgba(255,255,255,.08);
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,.7); transition:var(--transition);
}
.contact-reseaux a:hover { background:var(--c-vert); color:#fff; transform:translateY(-2px); }

.contact-carte-wrapper {
    border-radius:var(--radius-lg); overflow:hidden;
    min-height:400px; box-shadow:var(--ombre-lg);
    border:3px solid rgba(255,255,255,.1);
}
.contact-carte-wrapper iframe { width:100%; height:100%; min-height:400px; border:0; }

@media(max-width:980px){ .contact-grid{ grid-template-columns:1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
    background:#071E31;
    color:rgba(255,255,255,.65);
    padding:56px 0 28px;
}
.footer-grid {
    display:grid; grid-template-columns:1.4fr 1fr 1fr;
    gap:40px; margin-bottom:40px;
}
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-logo img { height:40px; }
.footer-logo span { font-family:var(--f-corps); font-weight:800; color:#fff; font-size:1.05rem; }
.footer p { font-size:.86rem; max-width:300px; }
.footer h4 {
    color:#fff; font-size:.8rem; font-family:var(--f-corps); font-weight:800;
    margin-bottom:16px; text-transform:uppercase; letter-spacing:.08em;
}
.footer ul { display:flex; flex-direction:column; gap:9px; }
.footer a { font-size:.86rem; transition:color .2s ease; }
.footer a:hover { color:var(--c-vert); }
.footer-bottom {
    border-top:1px solid rgba(255,255,255,.08);
    padding-top:22px; display:flex;
    justify-content:space-between; flex-wrap:wrap;
    gap:10px; font-size:.78rem;
}
.footer-bottom a { color:rgba(255,255,255,.5); }
.footer-bottom a:hover { color:var(--c-vert); }

@media(max-width:760px){ .footer-grid{ grid-template-columns:1fr; } }

/* ============================================================
   MODAL RDV
   ============================================================ */
.modal-overlay {
    position:fixed; inset:0;
    background:rgba(12,45,74,.6);
    backdrop-filter:blur(5px);
    z-index:2000; display:none;
    align-items:center; justify-content:center; padding:20px;
}
.modal-overlay.actif { display:flex; }
.modal-box {
    background:var(--c-blanc); width:min(560px,100%);
    max-height:90vh; overflow-y:auto; overflow-x:hidden;
    border-radius:var(--radius-xl); padding:40px;
    position:relative; box-shadow:var(--ombre-lg);
    /* Scrollbar fine et discrète, assortie à la charte (au lieu de la barre grise par défaut) */
    scrollbar-width:thin; scrollbar-color:var(--c-bleu) transparent;
}
.modal-box::-webkit-scrollbar { width:7px; }
.modal-box::-webkit-scrollbar-track { background:transparent; }
.modal-box::-webkit-scrollbar-thumb { background:var(--c-bleu); border-radius:4px; }
.modal-box::-webkit-scrollbar-thumb:hover { background:var(--c-bleu-fonce); }

/* ── En-tête façon "feuille de soins" dentaire ── */
.rdv-entete-fiche {
    display:flex; align-items:center; gap:14px;
    margin:-40px -40px 24px; padding:22px 40px 18px;
    background:linear-gradient(135deg, var(--c-bleu-nuit) 0%, var(--c-bleu-fonce) 100%);
    border-radius:var(--radius-xl) var(--radius-xl) 0 0;
    position:sticky; top:-40px; z-index:5;
}
.rdv-entete-fiche::after {
    content:''; position:absolute; left:24px; right:24px; bottom:0;
    border-bottom:2px dashed rgba(255,255,255,.3);
}
.rdv-entete-icone {
    width:44px; height:44px; border-radius:50%; flex-shrink:0;
    background:#fff; font-size:1.4rem; padding:7px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 10px rgba(0,0,0,.12);
}
.rdv-entete-icone img { width:100%; height:100%; object-fit:contain; }
.rdv-entete-titre { display:block; font-family:var(--f-display); font-weight:700; font-size:1.05rem; color:#fff; }
.rdv-entete-sous-titre { display:block; font-size:.74rem; color:rgba(255,255,255,.7); margin-top:2px; }
.modal-box .modal-fermer {
    position:absolute; top:18px; right:18px; z-index:6;
    width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.18); color:#fff;
    transition:var(--transition);
}
.modal-box .modal-fermer:hover { background:rgba(255,255,255,.32); transform:rotate(90deg); }

.rdv-etapes { display:flex; gap:6px; margin-bottom:8px; }
.rdv-etapes span { flex:1; height:4px; background:var(--c-bordure); border-radius:4px; }
.rdv-etapes span.active { background:var(--g-logo); }
.rdv-etape-label {
    font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
    color:var(--c-bleu); margin-bottom:22px;
}
.rdv-etape-badge {
    display:inline-flex; align-items:center; justify-content:center;
    width:30px; height:30px; border-radius:50%; margin-bottom:10px;
    background:var(--g-vert); color:#fff;
    font-family:var(--f-display); font-weight:700; font-size:.85rem;
}
.fieldset-qcm { border:none; margin-bottom:8px; }
.fieldset-qcm legend { font-size:.83rem; font-weight:700; color:var(--c-bleu-nuit); margin-bottom:12px; }
.qcm-item {
    display:flex; align-items:center; justify-content:space-between;
    padding:13px 0; border-bottom:1px solid var(--c-bordure); font-size:.92rem;
}
.qcm-toggle { display:flex; gap:8px; }
.qcm-toggle button {
    padding:6px 16px; border:2px solid var(--c-bordure);
    border-radius:var(--radius-btn); font-size:.82rem; font-weight:700;
    color:var(--c-texte-doux); transition:var(--transition);
}
.qcm-toggle button.actif-oui { background:var(--c-erreur); border-color:var(--c-erreur); color:#fff; }
.qcm-toggle button.actif-non { background:var(--c-vert); border-color:var(--c-vert); color:#fff; }
.qcm-toggle.qcm-neutre button.actif-oui { background:var(--c-bleu); border-color:var(--c-bleu); color:#fff; }
.qcm-toggle.qcm-neutre button.actif-non { background:var(--c-texte-doux); border-color:var(--c-texte-doux); color:#fff; }

/* ── Sélection du motif de consultation (catégorie puis motif précis) ── */
.rdv-service-souslabel {
    font-size:.72rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
    color:var(--c-texte-doux); margin-bottom:10px;
}
.rdv-categorie-grille {
    display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
}
.rdv-categorie-btn {
    display:flex; align-items:center; gap:10px;
    padding:13px 14px; border:2px solid var(--c-bordure); border-radius:var(--radius-md);
    font-family:inherit; font-size:.85rem; font-weight:700; text-align:start;
    color:var(--c-texte); transition:var(--transition);
}
.rdv-categorie-btn .rdv-categorie-icone { font-size:1.15rem; flex-shrink:0; }
.rdv-categorie-btn:hover { border-color:var(--c-bleu); background:var(--c-bleu-pale); }
.rdv-categorie-btn.selectionne { background:var(--g-logo); border-color:transparent; color:#fff; }
.rdv-service-entete { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:2px; }
.rdv-service-retour {
    font-family:inherit; font-size:.76rem; font-weight:700; color:var(--c-bleu);
    text-decoration:underline; text-underline-offset:2px; flex-shrink:0;
}
.rdv-service-retour:hover { color:var(--c-bleu-fonce); }
.rdv-categorie-choisie { font-size:.88rem; font-weight:700; color:var(--c-bleu-nuit); margin-bottom:12px; }
.rdv-motif-grille { display:flex; flex-direction:column; gap:8px; }
.rdv-motif-btn {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:12px 16px; border:2px solid var(--c-bordure); border-radius:var(--radius-md);
    font-family:inherit; font-size:.87rem; font-weight:600; text-align:start;
    color:var(--c-texte); transition:var(--transition);
}
.rdv-motif-btn:hover { border-color:var(--c-bleu); background:var(--c-bleu-pale); }
.rdv-motif-btn.selectionne { background:var(--c-vert-clair); border-color:var(--c-vert); color:var(--c-vert-fonce); }
.rdv-motif-btn .rdv-motif-check { opacity:0; color:var(--c-vert); transition:var(--transition); }
.rdv-motif-btn.selectionne .rdv-motif-check { opacity:1; }
#rdvServiceErreur { margin-top:10px; }
@media(max-width:480px){ .rdv-categorie-grille{ grid-template-columns:1fr; } }

.rdv-assurance-liste { display:flex; flex-direction:column; gap:2px; margin-top:8px; }
.rdv-assurance-item {
    display:flex; align-items:center; gap:10px;
    padding:9px 4px; font-size:.88rem; cursor:pointer;
}
.rdv-assurance-item input { width:16px; height:16px; accent-color:var(--c-vert); flex-shrink:0; }
.creneaux-grille {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(78px,1fr));
    gap:9px; margin-top:10px; max-height:200px; overflow-y:auto;
}
.creneau-btn {
    padding:10px 0; border:2px solid var(--c-bordure);
    border-radius:var(--radius-md); font-size:.85rem; font-weight:700;
    text-align:center; color:var(--c-bleu-nuit); transition:var(--transition);
}
.creneau-btn:hover { border-color:var(--c-bleu); color:var(--c-bleu); }
.creneau-btn.selectionne { background:var(--g-bleu); color:#fff; border-color:transparent; }
.message-confirmation { text-align:center; padding:16px 0; }
.message-confirmation .icone-check {
    width:68px; height:68px; border-radius:50%;
    background:var(--g-vert); color:#fff;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 20px; box-shadow:var(--ombre-vert);
}

/* ============================================================
   CHATBOT
   ============================================================ */
.chatbot-toggle {
    position:fixed; bottom:26px; right:26px;
    width:62px; height:62px; border-radius:50%;
    background:var(--g-vert); color:#fff;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 24px rgba(125,194,66,.45); z-index:1500;
    transition:var(--transition);
    animation:chatbotPulseDoux 3.2s ease-in-out infinite;
}
.chatbot-toggle:hover { transform:scale(1.08); box-shadow:0 10px 32px rgba(125,194,66,.55); animation-play-state:paused; }
@keyframes chatbotPulseDoux {
    0%, 100% { box-shadow:0 6px 24px rgba(125,194,66,.45), 0 0 0 0 rgba(125,194,66,.35); }
    50%      { box-shadow:0 6px 24px rgba(125,194,66,.45), 0 0 0 9px rgba(125,194,66,0); }
}
.chatbot-toggle-avatar {
    width:46px; height:46px; border-radius:50%;
    background:#fff; object-fit:cover;
}

/* Main qui salue — anime le badge pour inviter au clic */
.chatbot-toggle-salut {
    position:absolute; bottom:-3px; right:-3px;
    width:24px; height:24px; border-radius:50%;
    background:#fff; box-shadow:0 2px 8px rgba(12,45,74,.28);
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem; line-height:1; transform-origin:70% 70%;
    animation:chatbotSaluer 2.6s ease-in-out infinite;
}
@keyframes chatbotSaluer {
    0%, 55%, 100% { transform:rotate(0deg); }
    62% { transform:rotate(-16deg); }
    69% { transform:rotate(14deg); }
    76% { transform:rotate(-10deg); }
    83% { transform:rotate(6deg); }
    90% { transform:rotate(0deg); }
}

/* Pastille "nouveau message" — attire l'oeil vers le chatbot */
.chatbot-badge-nouveau {
    position:absolute; top:-2px; right:-2px;
    width:15px; height:15px; border-radius:50%;
    background:var(--c-erreur); border:2px solid #fff;
    animation:chatbotPulseNouveau 1.8s ease-out infinite;
}
@keyframes chatbotPulseNouveau {
    0%   { box-shadow:0 0 0 0 rgba(231,76,60,.55); }
    70%  { box-shadow:0 0 0 11px rgba(231,76,60,0); }
    100% { box-shadow:0 0 0 0 rgba(231,76,60,0); }
}
/* Une fois le chatbot ouvert au moins une fois, la pastille "nouveau" n'a plus lieu d'être */
.chatbot-toggle-vu .chatbot-badge-nouveau { display:none; }

/* --- Bulle-astuce flottante à côté de l'icône (fermée) --- */
.chatbot-hint {
    position:fixed; bottom:44px; right:98px; z-index:1499;
    max-width:220px; padding:10px 16px;
    background:rgba(255,255,255,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,.6);
    border-radius:var(--radius-lg); border-bottom-right-radius:6px;
    box-shadow:var(--ombre-md);
    font-size:.82rem; font-weight:700; color:var(--c-bleu-nuit);
    opacity:0; transform:translateY(8px) scale(.92); pointer-events:none;
    transition:opacity .32s ease, transform .32s ease;
}
.chatbot-hint.visible { opacity:1; transform:translateY(0) scale(1); }

/* --- Notification proactive : l'assistant engage la conversation --- */
.chatbot-proactive {
    position:fixed; bottom:100px; right:20px; z-index:1499;
    width:min(272px,80vw); padding:16px 18px;
    background:rgba(255,255,255,.82); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(255,255,255,.7);
    border-radius:var(--radius-lg); border-bottom-right-radius:6px;
    box-shadow:var(--ombre-lg); cursor:pointer;
    opacity:0; transform:translateY(14px) scale(.92); pointer-events:none;
    transition:opacity .34s cubic-bezier(.25,.1,.25,1), transform .34s cubic-bezier(.25,.1,.25,1);
}
.chatbot-proactive.visible { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.chatbot-proactive strong { display:block; font-size:.9rem; color:var(--c-bleu-nuit); margin-bottom:4px; }
.chatbot-proactive p { font-size:.8rem; color:var(--c-texte-doux); line-height:1.4; }
.chatbot-proactive-fermer {
    position:absolute; top:6px; right:8px; width:22px; height:22px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; color:var(--c-texte-doux); font-size:1rem; line-height:1;
    transition:var(--transition);
}
.chatbot-proactive-fermer:hover { background:var(--c-bordure); color:var(--c-bleu-nuit); }

.chatbot-fenetre {
    position:fixed; bottom:100px; right:26px;
    width:min(392px,92vw); height:min(624px,78vh);
    background:rgba(255,255,255,.86); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border-radius:var(--radius-xl);
    box-shadow:var(--ombre-lg); z-index:1500;
    display:flex; flex-direction:column; overflow:hidden;
    border:1.5px solid rgba(255,255,255,.7);
    transform-origin:bottom right;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(18px) scale(.94); filter:blur(6px);
    transition:opacity .32s cubic-bezier(.25,.1,.25,1), transform .32s cubic-bezier(.25,.1,.25,1),
               filter .32s ease, visibility 0s linear .32s;
}
.chatbot-fenetre.actif {
    opacity:1; visibility:visible; pointer-events:auto;
    transform:translateY(0) scale(1); filter:blur(0);
    transition:opacity .32s cubic-bezier(.25,.1,.25,1), transform .32s cubic-bezier(.25,.1,.25,1),
               filter .32s ease, visibility 0s linear 0s;
}
.chatbot-header {
    position:relative;
    background:linear-gradient(135deg, var(--c-bleu-nuit) 0%, var(--c-bleu-fonce) 100%);
    color:#fff; padding:18px 20px;
    display:flex; align-items:center; gap:12px;
}
/* Trait pointillé façon "feuille détachable" entre l'en-tête et la conversation */
.chatbot-header::after {
    content:''; position:absolute; left:0; right:0; bottom:0;
    border-bottom:2px dashed rgba(255,255,255,.3);
}
.chatbot-header .avatar {
    width:38px; height:38px; border-radius:50%;
    background:#fff; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0; box-shadow:0 0 0 2px rgba(255,255,255,.4);
}
.chatbot-header .avatar img { width:100%; height:100%; object-fit:cover; }
.chatbot-header strong { display:block; font-size:.92rem; font-weight:800; }
.chatbot-header small { font-size:.72rem; color:rgba(255,255,255,.7); }
.chatbot-header-actions { display:flex; align-items:center; gap:2px; }
.chatbot-speaker {
    width:30px; height:30px; border-radius:50%; color:#fff;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.chatbot-speaker:hover { background:rgba(255,255,255,.15); }
.chatbot-speaker.muet svg { opacity:.45; }
.chatbot-speaker[hidden], .chatbot-mic[hidden] { display:none; }
.statut-en-ligne {
    width:7px; height:7px; border-radius:50%;
    background:#5BCA8B; display:inline-block; margin-right:5px;
    box-shadow:0 0 0 3px rgba(91,202,139,.3);
}
.chatbot-corps {
    flex:1; overflow-y:auto; padding:18px;
    display:flex; flex-direction:column; gap:12px;
    background:transparent;
    scroll-behavior:smooth;
}
.ligne-bot { display:flex; align-items:flex-end; gap:8px; align-self:flex-start; max-width:92%; scroll-margin-top:14px; }
.bulle-avatar { width:26px; height:26px; border-radius:50%; background:var(--c-vert-pale); flex-shrink:0; }
.bulle {
    max-width:85%; padding:12px 16px;
    border-radius:18px; font-size:.86rem; line-height:1.5;
    white-space:pre-line; scroll-margin-top:14px;
}
.bulle-bot {
    background:var(--c-blanc); color:var(--c-texte);
    border-bottom-left-radius:4px;
    box-shadow:var(--ombre-sm);
    animation:chatbotApparition .28s cubic-bezier(.25,.1,.25,1);
}
.bulle-user {
    background:var(--g-bleu); color:#fff;
    align-self:flex-end; border-bottom-right-radius:4px;
    animation:chatbotApparition .28s cubic-bezier(.25,.1,.25,1);
}
@keyframes chatbotApparition {
    from { opacity:0; transform:translateY(6px); }
    to   { opacity:1; transform:translateY(0); }
}

/* --- Indicateur de frappe (trois points animés) --- */
.chatbot-dots { display:inline-flex; align-items:center; gap:4px; padding:2px 0; }
.chatbot-dots i {
    width:6px; height:6px; border-radius:50%; background:var(--c-texte-doux);
    animation:chatbotDotBounce 1.1s ease-in-out infinite;
}
.chatbot-dots i:nth-child(2) { animation-delay:.15s; }
.chatbot-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes chatbotDotBounce {
    0%, 60%, 100% { transform:translateY(0); opacity:.5; }
    30%           { transform:translateY(-4px); opacity:1; }
}

.chatbot-options {
    display:flex; flex-direction:column; gap:8px;
    align-self:flex-start; max-width:92%; width:100%;
    scroll-margin-top:14px;
    counter-reset:chatbot-opt;
    animation:chatbotApparition .28s cubic-bezier(.25,.1,.25,1);
}
.chatbot-options button {
    display:flex; align-items:center; gap:8px;
    text-align:left; padding:11px 14px;
    background:var(--c-blanc); border:1.5px solid var(--c-bordure);
    border-left:4px solid var(--c-vert);
    border-radius:var(--radius-md); font-size:.83rem;
    color:var(--c-bleu-nuit); font-weight:600; transition:var(--transition);
    counter-increment:chatbot-opt;
}
/* Numéro visible sur chaque choix : sert de repère pour la saisie clavier/vocale */
.chatbot-options button::before {
    content:counter(chatbot-opt);
    flex-shrink:0; width:21px; height:21px; border-radius:50%;
    background:var(--c-vert-pale); color:var(--c-vert-fonce);
    font-size:.72rem; font-weight:800; line-height:1;
    display:flex; align-items:center; justify-content:center;
}
.chatbot-options button::after {
    content:'›'; margin-left:auto; font-size:1.15rem; font-weight:800;
    color:var(--c-texte-doux);
}
.chatbot-options button:hover {
    border-color:var(--c-vert); background:var(--c-vert-pale); color:var(--c-vert-fonce);
    transform:translateX(3px);
}

/* --- Barre de suggestions rapides (toujours accessible, hors du fil de discussion) --- */
.chatbot-suggestions {
    display:flex; gap:8px; padding:10px 14px;
    overflow-x:auto; scrollbar-width:none;
    border-top:1px solid var(--c-bordure); background:rgba(255,255,255,.5);
    flex-shrink:0;
}
.chatbot-suggestions::-webkit-scrollbar { display:none; }
.chatbot-suggestions:empty { display:none; }
.chatbot-chip {
    flex:0 0 auto; white-space:nowrap;
    padding:8px 14px; font-size:.78rem; font-weight:700;
    background:var(--c-vert-pale); color:var(--c-vert-fonce);
    border:1.5px solid transparent; border-radius:var(--radius-btn);
    transition:var(--transition);
}
.chatbot-chip:hover { background:var(--c-vert); color:#fff; transform:translateY(-2px); }

/* --- Zone de saisie : micro + numéro + envoyer --- */
.chatbot-saisie {
    display:flex; align-items:center; gap:8px;
    padding:10px 14px; border-top:1px solid var(--c-bordure);
    background:rgba(255,255,255,.6); flex-shrink:0;
}
.chatbot-mic, .chatbot-envoyer {
    flex-shrink:0; width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--c-bleu-clair); color:var(--c-bleu-fonce);
    transition:var(--transition);
}
.chatbot-mic:hover, .chatbot-envoyer:hover { background:var(--c-bleu); color:#fff; }
.chatbot-mic.ecoute {
    background:var(--c-erreur); color:#fff;
    animation:chatbotMicEcoute 1.3s ease-in-out infinite;
}
@keyframes chatbotMicEcoute {
    0%, 100% { box-shadow:0 0 0 0 rgba(231,76,60,.45); }
    50%      { box-shadow:0 0 0 8px rgba(231,76,60,0); }
}
.chatbot-input {
    flex:1; min-width:0; padding:9px 14px;
    border:1.5px solid var(--c-bordure); border-radius:var(--radius-btn);
    font-family:inherit; font-size:.85rem; background:var(--c-blanc); color:var(--c-texte);
    transition:border-color .22s ease, box-shadow .22s ease;
}
.chatbot-input:focus { border-color:var(--c-bleu); box-shadow:0 0 0 3px rgba(41,171,226,.16); outline:none; }
.chatbot-voix-etat {
    padding:0 16px 8px; font-size:.76rem; font-weight:600; color:var(--c-bleu-fonce); text-align:center;
}
.chatbot-voix-etat.erreur { color:var(--c-erreur); }

.chatbot-footer {
    padding:9px 16px; border-top:1px solid var(--c-bordure);
    font-size:.71rem; color:var(--c-texte-doux); text-align:center;
    background:var(--c-blanc);
}
.chatbot-footer span { display:block; }
.chatbot-confidentialite { margin-top:3px; font-size:.66rem; opacity:.85; }

@media(max-width:480px){
    .chatbot-fenetre { right:12px; bottom:86px; width:calc(100vw - 24px); }
    .chatbot-toggle { right:16px; bottom:16px; }
    .chatbot-hint { right:auto; left:12px; bottom:90px; }
    .chatbot-proactive { right:12px; width:calc(100vw - 24px); }
}

/* ============================================================
   REVEAL AU SCROLL
   ============================================================ */
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s ease; }
[data-reveal].visible { opacity:1; transform:translateY(0); }

/* ============================================================
   TOAST NOTIFICATION
   ============================================================ */
.notification-toast {
    position:fixed; bottom:22px; left:22px;
    background:var(--c-bleu-nuit); color:#fff;
    padding:14px 22px; border-radius:var(--radius-md);
    box-shadow:var(--ombre-lg); z-index:3000;
    font-size:.87rem; font-weight:600;
    transform:translateY(130%); transition:transform .35s ease;
}
.notification-toast.visible { transform:translateY(0); }
.notification-toast.erreur { background:var(--c-erreur); }
