/* PIXAN CUSTOM - Yann / Claude Code : widget flottant Chat / Contact (maquette _mockups/widget-contact-v2.html)
   Couleurs : variables posées par includes/pixan-chat.php (Pixan Console › Chat / Contact). Icônes en currentColor.
   Position mobile : --pxw-bar = hauteur réelle de la barre de réservation des fiches (#pxf-mbar, zone de sécurité comprise),
   posée par js/pixan-chat.js ; 0 sans barre. Sélecteurs préfixés `body` : passent devant les styles de boutons / liens du thème. */
.pxw{
	--pxw-main:#071555; --pxw-icon:#ffffff; --pxw-accent:#dc834e; --pxw-dot:#5cc48d;
	--pxw-size:48px; --pxw-gap:14px; --pxw-side:16px;
	position:fixed; right:var(--pxw-side); z-index:9989;
	bottom:calc(var(--pxw-bar, 0px) + var(--pxw-gap));
	display:flex; flex-direction:column; align-items:flex-end; gap:10px;
	font-family:"Quicksand", sans-serif; line-height:1.2;
	transition:bottom .25s ease;
}
.pxw[hidden], .pxw [hidden]{ display:none !important; }
.pxw:not(.has-bar){ bottom:calc(var(--pxw-side) + env(safe-area-inset-bottom, 0px)); }
.pxw__row{ display:flex; align-items:center; gap:10px; }

body .pxw .pxw__btn{
	position:relative; flex:none; width:var(--pxw-size); height:var(--pxw-size); min-width:0; min-height:0; margin:0; padding:0;
	border:0; border-radius:50%; display:grid; place-items:center; cursor:pointer;
	background:var(--pxw-main); color:var(--pxw-icon); line-height:1; text-transform:none; letter-spacing:0;
	box-shadow:0 10px 24px -10px rgba(7,21,85,.55), 0 2px 6px rgba(7,21,85,.18);
	transition:transform .2s ease, box-shadow .2s ease;
}
body .pxw .pxw__btn:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -12px rgba(7,21,85,.6), 0 2px 6px rgba(7,21,85,.2); }
body .pxw .pxw__btn:focus-visible{ outline:3px solid var(--pxw-accent); outline-offset:3px; }
/* Point vert en haut à gauche de la bulle : signal permanent « contact actif » (pas la présence d'un agent), dans et hors
   horaires, indépendant de l'étiquette ; masqué seulement quand le bouton devient une croix (menu ouvert). */
body .pxw .pxw__btn::before{ content:""; position:absolute; top:2px; left:2px; width:11px; height:11px; border-radius:50%; background:var(--pxw-dot);
	box-shadow:0 0 0 2px #fff; opacity:0; transform:scale(.4); transition:opacity .3s ease, transform .3s ease; pointer-events:none; }
.pxw:not(.is-open) .pxw__btn::before{ opacity:1; transform:none; }
.pxw__i{ grid-area:1 / 1; display:grid; place-items:center; transition:opacity .18s ease, transform .18s ease; }
.pxw__i--close{ opacity:0; transform:rotate(-45deg) scale(.8); }
.pxw.is-open .pxw__i--chat{ opacity:0; transform:scale(.8); }
.pxw.is-open .pxw__i--close{ opacity:1; transform:none; }
body .pxw .pxw__btn svg.pixan-svg-icon{ width:25px; height:25px; font-size:25px; }
body .pxw .pxw__btn .pxw__i--close svg.pixan-svg-icon{ width:21px; height:21px; font-size:21px; }

/* Étiquette « Une question ? » */
.pxw__label{
	display:flex; align-items:center; height:36px; padding:0 4px 0 12px; white-space:nowrap;
	background:#fff; color:var(--pxw-main); border:1px solid #ece4db; border-radius:999px; font-weight:700; font-size:14px;
	box-shadow:0 12px 26px -14px rgba(7,21,85,.5), 0 2px 6px rgba(7,21,85,.08);
	opacity:0; transform:translateX(8px); transition:opacity .35s ease, transform .35s ease;
}
.pxw__label.is-in{ opacity:1; transform:none; }
.pxw.is-label-blocked .pxw__label{ opacity:0; visibility:hidden; transition:none; } /* chevaucherait la carte de réservation (desktop) */
.pxw__label::before{ content:""; flex:none; width:8px; height:8px; margin-right:8px; border-radius:50%; background:var(--pxw-dot); box-shadow:0 0 0 3px color-mix(in srgb, var(--pxw-dot) 22%, transparent); }
body .pxw button.pxw__label-x{
	flex:none; width:28px; height:28px; min-width:0; min-height:0; margin:0 0 0 6px; padding:0; border:0; border-radius:50%;
	display:grid; place-items:center; background:#fff7eb; color:#5f6684; box-shadow:none; cursor:pointer; line-height:1;
}
body .pxw button.pxw__label-x:hover{ color:var(--pxw-main); }
body .pxw button.pxw__label-x:focus-visible{ outline:2px solid var(--pxw-accent); outline-offset:1px; }
body .pxw .pxw__label-x svg.pixan-svg-icon{ width:13px; height:13px; font-size:13px; }
.pxw.is-open .pxw__label{ display:none; }

/* Menu hors horaires : WhatsApp + E-mail */
.pxw__menu{ display:flex; flex-direction:column; gap:8px; width:min(232px, calc(100vw - 2 * var(--pxw-side))); }
body .pxw a.pxw__act{
	display:flex; align-items:center; gap:10px; padding:6px 16px 6px 6px; text-decoration:none;
	background:#fff; color:var(--pxw-main); border:1px solid #ece4db; border-radius:999px;
	box-shadow:0 12px 28px -14px rgba(7,21,85,.45), 0 2px 6px rgba(7,21,85,.08);
	animation:pxw-in .2s ease both;
}
body .pxw a.pxw__act + a.pxw__act{ animation-delay:.04s; }
body .pxw a.pxw__act:hover, body .pxw a.pxw__act:focus-visible{ border-color:var(--pxw-accent); outline:none; color:var(--pxw-main); }
.pxw__ic{ flex:none; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:#fff7eb; color:var(--pxw-accent); }
body .pxw .pxw__ic svg.pixan-svg-icon{ width:19px; height:19px; font-size:19px; }
.pxw__txt{ display:flex; flex-direction:column; min-width:0; }
body .pxw .pxw__txt b{ font-size:15px; font-weight:700; color:var(--pxw-main); }
.pxw__txt small{ font-size:12.5px; font-weight:500; color:#5f6684; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@keyframes pxw-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

/* Voile léger derrière le menu ouvert (mobile), arrêté au-dessus de la barre de réservation */
.pxw-scrim{ position:fixed; left:0; right:0; top:0; bottom:var(--pxw-bar, 0px); z-index:9988; pointer-events:none;
	background:linear-gradient(to top, rgba(7,21,85,.14), rgba(7,21,85,.03) 55%, transparent); }

/* Desktop : plus grand, plus loin des bords ; calé sous la carte de réservation sticky quand elle occupe le coin */
@media (min-width:1000px){
	.pxw{ --pxw-size:54px; --pxw-side:28px; }
	.pxw:not(.has-bar){ bottom:var(--pxw-side); }
	body .pxw .pxw__btn svg.pixan-svg-icon{ width:27px; height:27px; font-size:27px; }
	.pxw.is-docked{ --pxw-size:44px; right:var(--pxw-dock-right) !important; bottom:var(--pxw-dock-bottom) !important; transition:none; }
	body .pxw.is-docked .pxw__btn svg.pixan-svg-icon{ width:22px; height:22px; font-size:22px; }
	.pxw-scrim{ display:none; }
}
@media (prefers-reduced-motion:reduce){
	.pxw, .pxw__label, .pxw__i, body .pxw .pxw__btn{ transition:none; }
	body .pxw a.pxw__act{ animation:none; }
}
@media print{ .pxw, .pxw-scrim{ display:none !important; } }
