/* Aegis-Chatbot — assistant chatbot (front). Palette accent + Poppins/Open Sans. */

.acb-fab{
	position:fixed;z-index:9998;display:flex;align-items:center;justify-content:center;
	border:none;cursor:pointer;color:#fff;background:var(--acb-accent,#51B148);
	box-shadow:0 10px 26px rgba(0,0,0,.24);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
	padding:0;
}
.acb-fab svg{width:54%;height:54%;display:block}
.acb-fab:hover,.acb-fab:focus-visible{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 32px rgba(0,0,0,.28);outline:none;filter:brightness(.95)}
.acb-fab:active{transform:scale(.96)}
.acb-fab--open{display:none}

.acb-panel{
	position:fixed;z-index:9999;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 120px);
	display:flex;flex-direction:column;overflow:hidden;
	background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.30);
	font-family:'Open Sans',system-ui,-apple-system,sans-serif;color:#2b3440;
	animation:acb-pop .18s ease;
}
@keyframes acb-pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}

.acb-panel__head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--acb-accent,#51B148);color:#fff}
.acb-panel__ico{width:34px;height:34px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);border-radius:50%}
.acb-panel__ico svg{width:20px;height:20px}
.acb-panel__titles{display:flex;flex-direction:column;line-height:1.15;flex:1 1 auto;min-width:0}
.acb-panel__titles strong{font-family:'Poppins',system-ui,sans-serif;font-weight:700;font-size:.98rem}
.acb-panel__titles span{font-size:.76rem;opacity:.9}
.acb-panel__close{background:none;border:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;opacity:.9}
.acb-panel__close:hover{opacity:1}

.acb-panel__body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:16px 14px;background:#f7f9fa;display:flex;flex-direction:column;gap:10px}
.acb-msg{max-width:82%;padding:10px 13px;border-radius:14px;font-size:.9rem;line-height:1.42;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.acb-cta{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.acb-msg--bot{align-self:flex-start;background:#fff;border:1px solid #e9edf0;border-bottom-left-radius:4px}
.acb-msg--user{align-self:flex-end;background:var(--acb-accent,#51B148);color:#fff;border-bottom-right-radius:4px}
.acb-msg a{color:inherit;font-weight:700;text-decoration:underline}

.acb-actions{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start;max-width:92%}
.acb-chip{
	background:#fff;border:1px solid var(--acb-accent,#51B148);color:var(--acb-accent,#51B148);
	border-radius:999px;padding:7px 13px;font-size:.82rem;font-weight:600;cursor:pointer;
	font-family:'Open Sans',sans-serif;transition:background .12s ease,color .12s ease;
}
.acb-chip:hover{background:var(--acb-accent,#51B148);color:#fff}
.acb-cta{
	display:inline-flex;align-items:center;gap:6px;background:var(--acb-accent,#51B148);color:#fff;
	border-radius:10px;padding:9px 14px;font-size:.85rem;font-weight:700;text-decoration:none;
	font-family:'Poppins',sans-serif;box-shadow:0 4px 12px rgba(81,177,72,.28)
}
.acb-cta:hover{filter:brightness(.95);color:#fff}

.acb-hours{align-self:flex-start;background:#fff;border:1px solid #e9edf0;border-radius:12px;padding:8px 12px;font-size:.84rem;max-width:92%}
.acb-hours table{border-collapse:collapse;width:100%;table-layout:fixed}
.acb-hours td{padding:2px 0;overflow-wrap:anywhere;word-break:break-word}
.acb-hours td:first-child{font-weight:600;padding-right:14px;white-space:nowrap;color:#51606e}
.acb-hours td:last-child{text-align:right}
.acb-hours .acb-closed{color:#b3261e}

.acb-panel__foot{display:flex;gap:8px;padding:10px;border-top:1px solid #eef1f3;background:#fff}
.acb-panel__foot input{flex:1 1 auto;min-width:0;border:1px solid #dfe4e8;border-radius:10px;padding:10px 12px;font-size:.9rem;font-family:'Open Sans',sans-serif;outline:none}
.acb-panel__foot input:focus{border-color:var(--acb-accent,#51B148);box-shadow:0 0 0 3px rgba(81,177,72,.14)}
.acb-panel__foot button{flex:0 0 auto;width:42px;border:none;border-radius:10px;background:var(--acb-accent,#51B148);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.acb-panel__foot button svg{width:20px;height:20px}
.acb-panel__foot button:hover{filter:brightness(.95)}

.acb-typing{display:inline-flex;gap:4px;padding:12px 14px}
.acb-typing span{width:7px;height:7px;border-radius:50%;background:#c4ccd2;animation:acb-blink 1s infinite}
.acb-typing span:nth-child(2){animation-delay:.2s}
.acb-typing span:nth-child(3){animation-delay:.4s}
@keyframes acb-blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

@media (max-width:600px){
	.acb-fab--hide-mobile{display:none !important}
	/* Empilement propre des boutons flottants sur mobile : le chatbot occupe le
	   coin bas-droite, le bouton « contact express » (aegis-contact) se place
	   juste au-dessus (voir aegis-contact) → plus de superposition. */
	.acb-fab{ bottom:18px !important; right:16px !important; }
	/* Le panneau tient dans l'écran : bords gauche+droite fixés, largeur auto,
	   hauteur souple bornée (ne dépasse jamais le viewport). */
	.acb-panel{
		left:12px !important; right:12px !important; bottom:12px !important;
		width:auto !important; max-width:calc(100vw - 24px) !important; min-width:0 !important;
		box-sizing:border-box !important; overflow-x:hidden !important;
		height:auto !important;
		max-height:76vh !important;   /* repli navigateurs anciens */
		max-height:82dvh !important;  /* iOS/Android : tient compte des barres du navigateur → ne dépasse plus en bas */
	}
	/* Rangée saisie + bouton d'envoi : ne déborde JAMAIS à droite sur mobile.
	   Le champ rétrécit (flex:1;min-width:0), le bouton garde sa largeur fixe et
	   reste entièrement visible/cliquable, même si le thème force une largeur d'input. */
	.acb-panel__foot{
		box-sizing:border-box !important; width:100% !important; max-width:100% !important;
		flex-wrap:nowrap !important; align-items:center !important;
	}
	.acb-panel__foot input{
		flex:1 1 auto !important; min-width:0 !important; width:auto !important;
		box-sizing:border-box !important; max-width:100% !important;
	}
	.acb-panel__foot button{
		flex:0 0 42px !important; width:42px !important; min-width:42px !important;
		box-sizing:border-box !important;
	}
}
@media (prefers-reduced-motion:reduce){
	.acb-panel,.acb-fab{animation:none;transition:none}
}

/* Neutralise le style de bouton du thème (rouge #cc3366) : l'assistant reste
   sur l'accent vert de la marque, comme le bouton « contact express ». */
.acb-fab {
	background: radial-gradient(circle at 32% 26%, rgba(255,255,255,.30), rgba(255,255,255,0) 58%), var(--acb-accent,#51B148) !important;
	color: #fff !important; border: 0 !important; overflow: visible;
	box-shadow: 0 12px 26px rgba(31,110,20,.42), 0 3px 8px rgba(0,0,0,.16) !important;
}
.acb-fab svg { width: var(--acb-fab-ic, 32px) !important; height: var(--acb-fab-ic, 32px) !important; max-width: none !important; flex: 0 0 auto !important; }
/* Halo pulsé discret pour attirer l'œil. */
.acb-fab::after {
	content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	box-shadow: 0 0 0 0 rgba(81,177,72,.5); animation: acb-pulse 2.6s ease-out infinite;
}
@keyframes acb-pulse {
	0% { box-shadow: 0 0 0 0 rgba(81,177,72,.45); }
	70% { box-shadow: 0 0 0 16px rgba(81,177,72,0); }
	100% { box-shadow: 0 0 0 0 rgba(81,177,72,0); }
}
@media (prefers-reduced-motion: reduce) { .acb-fab::after { animation: none; } }
.acb-panel__foot button { background: var(--acb-accent,#51B148) !important; color: #fff !important; border: 0 !important; }
.acb-panel__foot button:hover { background: var(--acb-accent,#51B148) !important; filter: brightness(.95) !important; }
.acb-panel__close { background: transparent !important; color: #fff !important; border: 0 !important; }
.acb-panel__close:hover { background: transparent !important; color: #fff !important; opacity: 1; }
.acb-cta { background: var(--acb-accent,#51B148) !important; color: #fff !important; border: 0 !important; }
.acb-cta:hover { color: #fff !important; filter: brightness(.95); }
.acb-panel__foot input { border: 1px solid #dfe4e8 !important; color: #2b3440 !important; }
.acb-panel__foot input:focus { border-color: var(--acb-accent,#51B148) !important; }

/* Mode « image » du bouton flottant (logo perso, comme le contact express). */
.acb-fab--logo { padding: 0; overflow: hidden; }
.acb-fab__logo { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }

/* Mobile : le contact express étant masqué, on descend le bouton en bas à droite. */
@media (max-width: 600px) {
	.acb-fab { right: 16px !important; bottom: 20px !important; }
}
