/* ============================================================
   dv-checklist — Ce que contient un bon devis (8 postes animés) L99
   ============================================================ */
.dv-check {
	--dv-navy: #0f2a43;
	--dv-orange: #F5A624;
	--dv-orange-dk: #d98e10;
	--dv-orange-soft: #fef3e0;
	--dv-ink: #16242f;
	--dv-muted: #5d6b76;
	--dv-line: #e7ddc9;
	--dv-cream: #f6f0e3;
	--dv-white: #ffffff;
	background: var(--dv-white);
	padding: clamp(2.75rem, 5vw, 4.75rem) 1.25rem;
}
.dv-check__inner { max-width: 1180px; margin: 0 auto; }

.dv-check__title {
	margin: 0 0 0.7rem;
	text-align: center;
	font-family: "IBM Plex Sans", system-ui, sans-serif;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--dv-navy);
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
}
.dv-check__sub {
	margin: 0 auto 2.75rem;
	max-width: 660px;
	text-align: center;
	font-size: clamp(1rem, 1.3vw, 1.14rem);
	line-height: 1.55;
	color: var(--dv-muted);
}

/* ---------- Grille ---------- */
.dv-check__grid {
	list-style: none;
	margin: 0 0 2.25rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.1rem;
}
@media (max-width: 1024px) { .dv-check__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .dv-check__grid { grid-template-columns: 1fr; } }

/* ---------- Carte poste ---------- */
.dv-item {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.5rem 1.3rem 1.4rem;
	background: var(--dv-white);
	border: 1px solid var(--dv-line);
	border-radius: 15px;
	box-shadow: 0 8px 26px -22px rgba(15, 42, 67, 0.3);
	/* état repos de l'animation */
	opacity: 0;
	transform: translateY(18px) scale(0.97);
	transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--d, 0) * 80ms);
}
.dv-item:hover {
	border-color: #d8cba6;
	box-shadow: 0 14px 32px -20px rgba(15, 42, 67, 0.35);
}

/* Badge coche (en haut à droite) */
.dv-item__badge {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.7rem;
	height: 1.7rem;
	color: var(--dv-orange);
	background: var(--dv-orange-soft);
	border-radius: 50%;
}
.dv-item__badge svg { width: 1rem; height: 1rem; display: block; }
.dv-item__tick {
	stroke-dasharray: 30;
	stroke-dashoffset: 30;
	transition: stroke-dashoffset 0.5s ease;
	transition-delay: calc(var(--d, 0) * 80ms + 350ms);
}

/* Icône poste */
.dv-item__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	color: var(--dv-navy);
	background: var(--dv-cream);
	border-radius: 12px;
	transition: background 0.3s ease, color 0.3s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	transition-delay: calc(var(--d, 0) * 80ms + 200ms);
}
.dv-item__ico svg { width: 1.55rem; height: 1.55rem; display: block; }
.dv-item__ico:empty { display: none; }

/* ---------- État révélé (déclenché par JS via .is-in) ---------- */
.dv-item.is-in {
	opacity: 1;
	transform: translateY(0) scale(1);
}
.dv-item.is-in .dv-item__tick { stroke-dashoffset: 0; }
.dv-item.is-in .dv-item__ico {
	background: var(--dv-orange-soft);
	color: var(--dv-orange-dk);
	transform: scale(1.08);
}
/* l'icône revient à sa taille après le pop */
.dv-item.is-in:hover .dv-item__ico { transform: scale(1.12); }

/* ---------- Corps ---------- */
.dv-item__body { display: flex; flex-direction: column; gap: 0.3rem; }
.dv-item__h {
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.25;
	color: var(--dv-navy);
}
.dv-item__t {
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--dv-muted);
}

/* ---------- Encart vigilance ---------- */
.dv-check__warn {
	max-width: 880px;
	margin: 0 auto 2.25rem;
	padding: 1.3rem 1.5rem;
	background: var(--dv-cream);
	border: 1px solid var(--dv-line);
	border-left: 4px solid var(--dv-orange);
	border-radius: 12px;
}
.dv-check__warn-h {
	margin: 0 0 0.4rem;
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--dv-navy);
}
.dv-check__warn-t {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.55;
	color: var(--dv-muted);
}

/* ---------- CTA ---------- */
.dv-check__cta { text-align: center; }
.dv-check__btn {
	display: inline-block;
	padding: 0.95rem 1.7rem;
	font-size: 1.05rem;
	font-weight: 700;
	font-family: inherit;
	color: #ffffff;
	background-color: var(--dv-orange);
	border-radius: 11px;
	text-decoration: none;
	transition: background-color 0.15s ease, transform 0.05s ease;
}
.dv-check__btn:hover { background-color: var(--dv-orange-dk); color: #ffffff; }
.dv-check__btn:active { transform: translateY(1px); }
.dv-check__btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(245, 166, 36, 0.4);
}

/* ---------- Accessibilité : pas d'animation si l'utilisateur la refuse ---------- */
@media (prefers-reduced-motion: reduce) {
	.dv-item {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.dv-item__tick { stroke-dashoffset: 0; transition: none; }
	.dv-item__ico { transition: none; }
}

/* ---------- Lien contextuel dans un poste (neutralise le lien rose Hello Elementor) ---------- */
.dv-item__t a {
	color: var(--dv-navy) !important;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: var(--dv-orange);
	transition: color 0.15s ease;
}
.dv-item__t a:hover,
.dv-item__t a:focus {
	color: var(--dv-orange-dk) !important;
	text-decoration-color: var(--dv-orange-dk);
}
