/* Assistant tarif Moustache — couleurs et polices du thème Pawsitive */
.mt-assist-cta, .mt-assist, .mt-bubble {
	--mt-ink: #191919;
	--mt-peach: #ffbaa0;
	--mt-peach-l: #fff1ea;
	--mt-blue: #afe2e5;
	--mt-blue-l: #ecf8f9;
	--mt-green: #c8eabb;
	--mt-green-l: #f0f9ec;
	--mt-yellow: #faf4b6;
	--mt-accent: var(--mt-peach);
	--mt-accent-l: var(--mt-peach-l);
	font-family: "Nunito Sans", Arial, Helvetica, sans-serif;
	color: var(--mt-ink);
	text-align: left;
}
.mt-assist[data-animal="chat"] { --mt-accent: var(--mt-blue); --mt-accent-l: var(--mt-blue-l); }
.mt-assist[data-animal="nac"] { --mt-accent: var(--mt-green); --mt-accent-l: var(--mt-green-l); }

.mt-caret {
	display: inline-block;
	width: 2px;
	height: 1em;
	margin-left: 1px;
	vertical-align: -0.12em;
	background: currentColor;
	animation: mt-caret 0.8s steps(1) infinite;
}
@keyframes mt-caret { 50% { opacity: 0; } }

.mt-hidden { visibility: hidden; }

/* Boutons dans le style « PRENDRE RENDEZ-VOUS » du thème */
.mt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 28px;
	border: 2px solid var(--mt-peach);
	border-radius: 999px;
	background: #fff;
	color: var(--mt-ink) !important;
	font: 800 13px/1 "Nunito Sans", Arial, sans-serif;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}
.mt-btn:hover, .mt-btn:focus-visible { background: var(--mt-peach); transform: translateY(-2px); }
.mt-btn:disabled { cursor: default; transform: none; background: var(--mt-peach); }

/* ---------- Bulle d'appel (dans la pastille d'aide) ---------- */
.mt-assist-cta {
	display: flex;
	align-items: center;
	gap: 28px;
	max-width: 900px;
	margin: 0 auto;
	padding: 26px 36px 26px 26px;
	background: var(--mt-peach-l);
	border-radius: 36px;
}
.mt-assist-cta .mt-cta-dog {
	flex: 0 0 150px;
	width: 150px;
	height: auto;
	animation: mt-bob 3.2s ease-in-out infinite;
}
@keyframes mt-bob { 50% { transform: translateY(-6px) rotate(-2deg); } }
.mt-assist-cta .mt-cta-bubble {
	position: relative;
	flex: 1;
	padding: 22px 26px;
	background: #fff;
	border-radius: 26px;
	box-shadow: 0 6px 22px rgba(25, 25, 25, 0.06);
}
.mt-assist-cta .mt-cta-bubble::before {
	content: "";
	position: absolute;
	left: -12px;
	top: 50%;
	margin-top: -12px;
	border: 12px solid transparent;
	border-left: 0;
	border-right-color: #fff;
}
.mt-assist-cta .mt-cta-text {
	margin: 0 0 16px;
	font-size: 17px;
	line-height: 1.6;
}
.mt-assist-cta .mt-cta-text strong { font-family: "Pacifico", cursive; font-weight: 400; font-size: 22px; }

/* ---------- Pastille d'aide flottante (pages Prestations et tarifs) ---------- */
.mt-bubble {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 99990;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 14px;
	pointer-events: none;
}
.mt-bubble > * { pointer-events: auto; }
.mt-bubble-fab {
	position: relative;
	width: 78px;
	height: 78px;
	padding: 0;
	border: 3px solid var(--mt-ink);
	border-radius: 50%;
	background: var(--mt-peach-l);
	box-shadow: 0 5px 0 var(--mt-ink), 0 12px 26px rgba(25, 25, 25, 0.18);
	cursor: pointer;
	animation: mt-fab-in 0.6s cubic-bezier(.34, 1.56, .64, 1) 0.8s both;
	transition: transform 0.2s, box-shadow 0.2s;
}
.mt-bubble-fab:hover, .mt-bubble-fab:focus-visible { transform: translateY(-3px); box-shadow: 0 8px 0 var(--mt-ink), 0 16px 30px rgba(25, 25, 25, 0.2); }
.mt-bubble-fab img {
	display: block;
	width: 64px;
	height: auto;
	margin: 2px auto 0;
	transform-origin: 50% 80%;
	animation: mt-sniff 6s ease-in-out 2s infinite;
}
@keyframes mt-fab-in { from { opacity: 0; transform: scale(0.3) translateY(40px); } }
/* le chien « renifle » : petit hochement de tête toutes les 6 s */
@keyframes mt-sniff {
	0%, 82%, 100% { transform: rotate(0); }
	85% { transform: rotate(-12deg) translateY(-2px); }
	88% { transform: rotate(10deg); }
	91% { transform: rotate(-7deg) translateY(-1px); }
	94% { transform: rotate(4deg); }
}
/* onde pêche qui s'échappe de la pastille */
.mt-bubble-fab::before, .mt-bubble-fab::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	border: 3px solid var(--mt-peach);
	animation: mt-ring 3s ease-out 1.5s infinite;
	pointer-events: none;
}
.mt-bubble-fab::after { animation-delay: 2.4s; border-color: var(--mt-blue); }
@keyframes mt-ring { 0% { transform: scale(1); opacity: 0.9; } 70%, 100% { transform: scale(1.55); opacity: 0; } }
.mt-bubble.is-seen .mt-bubble-fab::before, .mt-bubble.is-seen .mt-bubble-fab::after,
.mt-bubble[data-state="open"] .mt-bubble-fab::before, .mt-bubble[data-state="open"] .mt-bubble-fab::after { animation: none; opacity: 0; }
.mt-bubble-dot {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 26px;
	height: 26px;
	border: 2px solid var(--mt-ink);
	border-radius: 50%;
	background: var(--mt-yellow);
	font: 400 15px/22px "Pacifico", cursive;
	animation: mt-dot 1.6s ease-in-out infinite;
}
@keyframes mt-dot { 50% { transform: scale(1.15); } }
.mt-bubble.is-seen .mt-bubble-dot { display: none; }
.mt-bubble-hint {
	position: absolute;
	right: calc(100% + 14px);
	top: 50%;
	padding: 9px 16px;
	border: 2px solid var(--mt-ink);
	border-radius: 999px;
	background: #fff;
	color: var(--mt-ink);
	font: 800 14px/1 "Nunito Sans", Arial, sans-serif;
	white-space: nowrap;
	opacity: 0;
	transform: translate(10px, -50%);
	transition: opacity 0.35s, transform 0.35s;
	pointer-events: none;
}
.mt-bubble.show-hint .mt-bubble-hint { opacity: 1; transform: translate(0, -50%); }

/* Panneau déplié */
.mt-bubble-panel {
	width: 360px;
	max-width: calc(100vw - 32px);
	overflow: hidden;
	background: var(--mt-peach-l);
	border-radius: 30px;
	box-shadow: 0 18px 50px rgba(25, 25, 25, 0.22);
	transform-origin: 100% 100%;
	opacity: 0;
	transform: scale(0.6) translateY(30px);
	transition: opacity 0.25s, transform 0.3s cubic-bezier(.34, 1.4, .64, 1);
}
.mt-bubble[data-state="open"] .mt-bubble-panel { opacity: 1; transform: none; }
.mt-bubble-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px 14px 22px;
	background: var(--mt-peach);
}
.mt-bubble-name { font: 400 19px/1.25 "Pacifico", cursive; }
.mt-bubble-name span { display: block; font: 700 12px/1.3 "Nunito Sans", sans-serif; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.75; }
.mt-bubble-min {
	position: relative;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 2px solid var(--mt-ink);
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: transform 0.2s;
}
.mt-bubble-min:hover, .mt-bubble-min:focus-visible { transform: scale(1.08); }
.mt-bubble-min span { position: absolute; left: 9px; right: 9px; top: 50%; height: 2.5px; margin-top: -1px; border-radius: 2px; background: var(--mt-ink); }
.mt-bubble .mt-assist-cta {
	flex-direction: column;
	gap: 6px;
	max-width: none;
	padding: 18px 20px 22px;
	border-radius: 0;
	text-align: center;
}
.mt-bubble .mt-assist-cta .mt-cta-dog { flex: none; width: 110px; }
.mt-bubble .mt-assist-cta .mt-cta-bubble { padding: 18px 20px; }
.mt-bubble .mt-assist-cta .mt-cta-bubble::before { left: 50%; top: -12px; margin: 0 0 0 -12px; border: 12px solid transparent; border-top: 0; border-bottom-color: #fff; }
.mt-bubble .mt-assist-cta .mt-cta-text { font-size: 16px; }

@media (max-width: 640px) {
	.mt-bubble { right: 14px; bottom: 14px; }
	.mt-bubble-fab { width: 64px; height: 64px; }
	.mt-bubble-fab img { width: 52px; }
	.mt-bubble-hint { font-size: 13px; }
	.mt-bubble .mt-assist-cta .mt-cta-dog { width: 84px; }
}

/* ---------- Assistant (page assistance-tarif) ---------- */
.mt-assist {
	max-width: 900px;
	margin: 0 auto;
	padding: 34px 40px 40px;
	background: var(--mt-accent-l);
	border-radius: 40px;
	transition: background 0.5s;
}
.mt-assist-head {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 18px;
}
.mt-assist-head img {
	flex: 0 0 110px;
	width: 110px;
	height: auto;
	animation: mt-bob 3.2s ease-in-out infinite;
}
.mt-assist-head .mt-assist-title {
	margin: 0;
	font: 400 30px/1.3 "Pacifico", cursive;
}
.mt-assist-head .mt-assist-sub { margin: 4px 0 0; font-size: 15px; opacity: 0.75; }

.mt-step { margin-top: 24px; }
.mt-q {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
}
.mt-opts { display: flex; flex-wrap: wrap; gap: 10px; }
.mt-opt {
	min-height: 46px;
	padding: 10px 22px;
	border: 2px solid var(--mt-ink);
	border-radius: 999px;
	background: #fff;
	color: var(--mt-ink);
	font: 700 15px/1.2 "Nunito Sans", Arial, sans-serif;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.mt-opt:hover, .mt-opt:focus-visible { transform: translateY(-2px); box-shadow: 0 4px 0 var(--mt-ink); }
.mt-opt.is-on { background: var(--mt-accent); box-shadow: 0 4px 0 var(--mt-ink); }
.mt-opt .mt-ico { margin-right: 8px; }
.mt-opt .mt-ico-img { width: 30px; height: 30px; margin: -6px 8px -6px -6px; vertical-align: middle; }
.mt-opt:has(.mt-ico-img) { display: inline-flex; align-items: center; }

/* Description de la prestation : bloc arrondi */
.mt-desc {
	margin-top: 22px;
	padding: 24px 28px;
	background: #fff;
	border: 2px solid var(--mt-accent);
	border-radius: 28px;
	box-shadow: 0 10px 30px rgba(25, 25, 25, 0.06);
	font-size: 15px;
	line-height: 1.65;
	animation: mt-pop 0.35s ease-out;
}
@keyframes mt-pop { from { opacity: 0; transform: translateY(8px) scale(0.98); } }
.mt-desc-title { margin: 0 0 8px; font: 400 26px/1.3 "Pacifico", cursive; }
.mt-desc p { margin: 0 0 8px; }
.mt-desc ul { margin: 0 0 12px; padding-left: 22px; }
.mt-desc li { margin: 2px 0; }
.mt-desc h4 { margin: 18px 0 6px; font: 400 21px/1.3 "Pacifico", cursive; }
.mt-desc h4 small { font: 600 12px "Nunito Sans", sans-serif; letter-spacing: 0.05em; text-transform: uppercase; opacity: 0.7; }
.mt-desc .mt-pro, .mt-desc .mt-con, .mt-desc .mt-warn { margin-top: 10px; font-weight: 800; }
.mt-desc .mt-pro::before { content: "👍 "; }
.mt-desc .mt-con::before { content: "👎 "; }
.mt-desc .mt-warn::before { content: "⚠️ "; }

.mt-btn-tarif { margin-top: 22px; }

/* Résultat */
.mt-price {
	margin-top: 26px;
	padding: 26px 28px;
	background: #fff;
	border-radius: 28px;
	text-align: center;
	animation: mt-pop 0.35s ease-out;
}
.mt-price-lead { margin: 0; font-size: 18px; font-weight: 700; }
.mt-price-val { margin: 6px 0 14px; font: 400 40px/1.35 "Pacifico", cursive; }
.mt-price-val small { font: 600 15px "Nunito Sans", sans-serif; }
.mt-price-note { margin: 0 auto 10px; max-width: 560px; font-size: 13px; opacity: 0.75; }
.mt-price-note:empty { display: none; }
.mt-sup {
	margin: 16px 0 0;
	padding: 16px 0 0;
	border-top: 2px dashed var(--mt-accent);
	list-style: none;
	text-align: left;
	font-size: 14px;
	line-height: 1.55;
}
.mt-sup li { display: flex; gap: 10px; margin: 8px 0; }
.mt-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 20px; }
.mt-btn-again { border-color: var(--mt-ink); }

@media (max-width: 640px) {
	.mt-assist-cta { flex-direction: column; gap: 12px; padding: 20px 16px; border-radius: 28px; text-align: center; }
	.mt-assist-cta .mt-cta-dog { flex-basis: auto; width: 110px; }
	.mt-assist-cta .mt-cta-bubble { padding: 18px; }
	.mt-assist-cta .mt-cta-bubble::before { left: 50%; top: -12px; margin: 0 0 0 -12px; border: 12px solid transparent; border-top: 0; border-bottom-color: #fff; }
	.mt-assist-cta .mt-cta-text { font-size: 16px; }
	.mt-assist { padding: 22px 16px 26px; border-radius: 28px; }
	.mt-assist-head img { flex-basis: 80px; width: 80px; }
	.mt-assist-head .mt-assist-title { font-size: 23px; }
	.mt-q { font-size: 18px; }
	.mt-opt { flex: 1 1 auto; }
	.mt-desc, .mt-price { padding: 20px 18px; }
	.mt-price-val { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
	.mt-bubble *, .mt-bubble *::before, .mt-bubble *::after, .mt-assist * { animation: none !important; transition: none !important; }
}
