/* ==========================================================================
   Imperial Dog & Cat — Product Helper floating panel
   Affiché uniquement sur les fiches produit WC et la page boutique.
   ========================================================================== */

.idc-product-helper {
	position: fixed;
	top: 140px;
	left: 20px;
	z-index: 120;
	width: 300px;
	max-width: calc(100vw - 40px);
	background: #FFFFFF;
	border: 1px solid var(--sand, #CBE5F4);
	border-radius: 18px;
	box-shadow:
		0 4px 14px rgba(75, 174, 224, 0.08),
		0 20px 50px rgba(75, 174, 224, 0.14);
	padding: 20px 20px 22px;
	font-family: "Nunito Sans", -apple-system, BlinkMacSystemFont, sans-serif;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-30px);
	transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
	pointer-events: none;
}

.idc-product-helper.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	pointer-events: auto;
}

.idc-product-helper.is-dismissed {
	display: none !important;
}

/* Header : icône + titre + close */
.idc-product-helper__head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 10px;
}

.idc-product-helper__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--terra-xlt, #EAF5FC);
	color: var(--terra, #4BAEE0);
	border-radius: 12px;
}
.idc-product-helper__icon svg {
	width: 22px;
	height: 22px;
}

.idc-product-helper__title {
	flex: 1;
	font-family: "Nunito", sans-serif;
	font-size: 16px;
	font-weight: 900;
	color: var(--brown, #1A1A1A);
	margin: 6px 0 0;
	line-height: 1.2;
}

.idc-product-helper__close {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	border-radius: 50%;
	color: var(--stone, #707070);
	cursor: pointer;
	padding: 0;
	margin: -4px -4px 0 0;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.idc-product-helper__close:hover {
	background: var(--cream, #F4F8FB);
	color: var(--brown, #1A1A1A);
	transform: rotate(90deg);
}
.idc-product-helper__close svg {
	width: 16px;
	height: 16px;
	pointer-events: none;
}

/* Body text */
.idc-product-helper__text {
	font-size: 14px;
	line-height: 1.55;
	color: var(--stone, #707070);
	margin: 0 0 16px;
}

/* CTA button */
.idc-product-helper__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	justify-content: center;
	padding: 12px 18px;
	background: var(--terra, #4BAEE0);
	color: #FFFFFF !important;
	font-family: "Nunito", sans-serif;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	border-radius: 999px;
	border: none;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 6px 18px rgba(75, 174, 224, 0.25);
}
.idc-product-helper__cta:hover {
	background: var(--terra-dk, #2E96CC);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(75, 174, 224, 0.35);
	color: #FFFFFF !important;
}
.idc-product-helper__cta svg {
	width: 16px;
	height: 16px;
	transition: transform 0.2s ease;
}
.idc-product-helper__cta:hover svg {
	transform: translateX(3px);
}

/* ============================================================
   Responsive
   ============================================================ */

/* Tablette : un peu plus compact */
@media (max-width: 1024px) {
	.idc-product-helper {
		width: 270px;
		top: 120px;
		left: 16px;
	}
}

/* Mobile : bottom sheet plein-largeur, slide depuis le bas */
@media (max-width: 600px) {
	.idc-product-helper {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		max-width: 100%;
		padding: 18px 18px 22px;
		border-radius: 22px 22px 0 0;
		border: none;
		border-top: 1px solid var(--sand, #CBE5F4);
		box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
		transform: translateY(100%);
	}
	.idc-product-helper.is-visible {
		transform: translateY(0);
	}
	/* Petite poignée visuelle */
	.idc-product-helper::before {
		content: "";
		display: block;
		width: 44px;
		height: 4px;
		background: var(--sand, #CBE5F4);
		border-radius: 2px;
		margin: 0 auto 12px;
	}
	.idc-product-helper__title { font-size: 15px; }
	.idc-product-helper__text { font-size: 13px; margin-bottom: 12px; }
	.idc-product-helper__cta { padding: 13px 16px; font-size: 14px; }
}

/* Réduit les animations si l'utilisateur a désactivé les motions */
@media (prefers-reduced-motion: reduce) {
	.idc-product-helper,
	.idc-product-helper__close,
	.idc-product-helper__cta,
	.idc-product-helper__cta svg {
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}
}
