/* Inès — bulle de chat aux couleurs Bosquet. Autonome (n'hérite pas du thème). */
.ines{
	--ines-navy:#1D1D3D; --ines-navy-2:#12122A; --ines-gold:#b8995f; --ines-gold-lt:#e6cfa3;
	--ines-ink:#232637; --ines-line:#e7e4dd; --ines-bot:#f4f1ea;
	position:fixed; right:22px; bottom:22px; z-index:9999;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:var(--ines-ink);
	display:none;   /* masquée tant que le consentement n'est pas donné */
}
.ines.ines--ready{ display:block; }   /* révélée après « Accepter » (ou consentement déjà stocké) */
.ines *{ box-sizing:border-box; }

/* Bannière de consentement (aux couleurs Bosquet) */
.ines-consent{
	position:fixed; left:22px; bottom:22px; z-index:9998; max-width:360px;
	background:#fff; border-radius:14px; box-shadow:0 14px 44px rgba(18,18,42,.28);
	padding:18px 20px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:#232637;
	animation:ines-in .22s cubic-bezier(.19,1,.22,1);
}
.ines-consent[hidden]{ display:none; }
.ines-consent__txt{ margin:0 0 14px; font-size:13px; line-height:1.5; }
.ines-consent__txt a{ color:#b8995f; }
.ines-consent__btns{ display:flex; gap:8px; justify-content:flex-end; }
.ines-consent button{ cursor:pointer; border-radius:999px; padding:8px 20px; font-size:13px; font-family:inherit; border:1px solid #d9d4ca; transition:background .18s ease,border-color .18s ease; }
.ines-consent__refuse{ background:#fff; color:#50575e; }
.ines-consent__refuse:hover{ background:#f4f1ea; }
.ines-consent__accept{ background:#1D1D3D; color:#fff; border-color:#1D1D3D; }
.ines-consent__accept:hover{ background:#b8995f; border-color:#b8995f; }
@media (max-width:480px){ .ines-consent{ left:14px; right:14px; bottom:14px; max-width:none; } }

/* Bouton flottant */
.ines__toggle{
	display:inline-flex; align-items:center; gap:.5rem; cursor:pointer;
	background:var(--ines-navy); color:#fff; border:0; border-radius:999px;
	/* Retrait gauche resserré (10px) : le portrait rond est plus large que l'ancien
	   pictogramme, et le vertical passe à 10px pour garder la pastille à ~48px de haut. */
	padding:10px 20px 10px 10px; font-size:15px; font-weight:500; letter-spacing:.01em;
	box-shadow:0 8px 24px rgba(18,18,42,.28); transition:transform .18s ease, box-shadow .18s ease;
}
.ines__toggle:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(18,18,42,.34); }
/* Portrait du bouton d'ouverture : même image que le bandeau du panneau (master 228px). */
.ines__toggle-ava{ width:28px; height:28px; border-radius:50%; display:block; flex:0 0 auto; }
.ines.is-open .ines__toggle{ display:none; }

/* Panneau */
.ines__panel[hidden]{ display:none; }   /* l'attribut hidden doit l'emporter sur display:flex */
.ines__panel{
	width:380px; max-width:calc(100vw - 32px); height:560px; max-height:calc(100vh - 40px);
	display:flex; flex-direction:column; overflow:hidden;
	background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(18,18,42,.30);
	animation:ines-in .22s cubic-bezier(.19,1,.22,1);
}
@keyframes ines-in{ from{ opacity:0; transform:translateY(14px) scale(.98);} to{ opacity:1; transform:none;} }

.ines__head{
	display:flex; align-items:center; gap:12px; padding:14px 16px;
	background:var(--ines-navy); color:#fff;
}
.ines__avatar{
	flex:0 0 auto; width:38px; height:38px; border-radius:50%; overflow:hidden; background:#efe7db;
}
.ines__avatar img{ width:100%; height:100%; display:block; }
.ines__head-txt{ display:flex; flex-direction:column; line-height:1.25; }
.ines__head-txt strong{ font-size:15px; }
.ines__head-txt small{ font-size:11.5px; color:var(--ines-gold-lt); letter-spacing:.02em; }
.ines__close{ margin-left:auto; background:none; border:0; color:#fff; font-size:26px; line-height:1; cursor:pointer; opacity:.8; padding:0 4px; }
.ines__close:hover{ opacity:1; }

/* Fil de messages */
.ines__log{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:#fff; }
.ines__msg{ max-width:82%; padding:10px 13px; border-radius:14px; font-size:14px; line-height:1.5; white-space:pre-wrap; word-wrap:break-word; }
.ines__msg--bot{ align-self:flex-start; background:var(--ines-bot); color:var(--ines-ink); border-bottom-left-radius:4px; }
.ines__msg--user{ align-self:flex-end; background:var(--ines-navy); color:#fff; border-bottom-right-radius:4px; }
.ines__typing{ align-self:flex-start; display:inline-flex; gap:4px; padding:12px 14px; background:var(--ines-bot); border-radius:14px; border-bottom-left-radius:4px; }
.ines__typing span{ width:7px; height:7px; border-radius:50%; background:#b3aea1; animation:ines-blink 1.2s infinite ease-in-out; }
.ines__typing span:nth-child(2){ animation-delay:.2s; }
.ines__typing span:nth-child(3){ animation-delay:.4s; }
@keyframes ines-blink{ 0%,80%,100%{ opacity:.3; transform:translateY(0);} 40%{ opacity:1; transform:translateY(-3px);} }

/* Saisie */
.ines__form{ display:flex; gap:8px; padding:12px; border-top:1px solid var(--ines-line); background:#fff; }
.ines__input{
	flex:1; border:1px solid var(--ines-line); border-radius:999px; padding:11px 15px;
	font-size:14px; color:var(--ines-ink); outline:none; background:#fff; font-family:inherit;
}
.ines__input:focus{ border-color:var(--ines-gold); box-shadow:0 0 0 3px rgba(184,153,95,.15); }
.ines__send{
	flex:0 0 auto; width:42px; height:42px; border:0; border-radius:50%; cursor:pointer;
	background:var(--ines-navy); display:grid; place-items:center; transition:background .18s ease;
}
.ines__send:hover{ background:var(--ines-gold); }
.ines__send svg{ width:20px; height:20px; fill:#fff; }
.ines__send:disabled{ opacity:.5; cursor:default; }

.ines__legal{ margin:0; padding:0 14px 12px; font-size:11px; color:#8a8794; text-align:center; }
.ines__legal a{ color:#8a8794; text-decoration:underline; }

@media (max-width:480px){
	.ines{ right:14px; bottom:14px; }
	.ines__panel{ width:calc(100vw - 24px); height:min(72vh,560px); }
}
@media (prefers-reduced-motion:reduce){
	.ines__toggle,.ines__send{ transition:none; }
	.ines__panel{ animation:none; }
	.ines__typing span{ animation:none; }
}

/* Le menu plein écran et le bandeau de consentement se disputaient le bas de l'écran :
   le bandeau recouvrait la dernière entrée du menu (mesuré : 59px de chevauchement).
   Deux calques modaux superposés n'ont de toute façon pas de sens — on masque le
   bandeau tant que le menu est ouvert, il revient à la fermeture. */
body.menu-open .ines-consent { display: none; }
