/* ============================================================
   dv-faq — Accordéon FAQ page Devis — L99
   ============================================================ */
.dv-faq {
	--dv-navy: #0f2a43;
	--dv-orange: #F5A624;
	--dv-orange-dk: #d98e10;
	--dv-ink: #16242f;
	--dv-muted: #5d6b76;
	--dv-line: #e7ddc9;
	--dv-cream: #f6f0e3;
	--dv-white: #ffffff;
	background: var(--dv-cream);
	padding: clamp(2.75rem, 5vw, 4.75rem) 1.25rem;
}
.dv-faq__inner { max-width: 820px; margin: 0 auto; }

.dv-faq__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.4rem);
}
.dv-faq__sub {
	margin: 0 auto 2.5rem;
	text-align: center;
	font-size: clamp(1rem, 1.3vw, 1.12rem);
	line-height: 1.55;
	color: var(--dv-muted);
}

/* ---------- Liste ---------- */
.dv-faq__list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.dv-faq__item {
	background: var(--dv-white);
	border: 1px solid var(--dv-line);
	border-radius: 13px;
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.2s ease;
}
.dv-faq__item.is-open {
	border-color: #d8cba6;
	box-shadow: 0 10px 28px -22px rgba(15, 42, 67, 0.3);
}

/* ---------- Question ---------- */
.dv-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 1.3rem;
	cursor: pointer;
	user-select: none;
}
.dv-faq__q:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 3px rgba(15, 42, 67, 0.15);
}
.dv-faq__q-txt {
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--dv-navy);
}
.dv-faq__chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	color: var(--dv-orange);
	background: var(--dv-cream);
	border-radius: 50%;
	transition: transform 0.3s ease, background 0.2s ease;
}
.dv-faq__chevron svg { width: 1.05rem; height: 1.05rem; display: block; }
.dv-faq__item.is-open .dv-faq__chevron {
	transform: rotate(180deg);
	background: #fef3e0;
}

/* ---------- Réponse (ouverture fluide via grid-rows) ---------- */
.dv-faq__a {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.32s ease;
}
.dv-faq__item.is-open .dv-faq__a {
	grid-template-rows: 1fr;
}
.dv-faq__a > p {
	overflow: hidden;
	margin: 0;
	padding: 0 1.3rem;
	font-size: 0.98rem;
	line-height: 1.6;
	color: var(--dv-muted);
	transition: padding 0.32s ease;
}
.dv-faq__item.is-open .dv-faq__a > p {
	padding: 0 1.3rem 1.25rem;
}

/* ---------- CTA ---------- */
.dv-faq__cta {
	margin-top: 2.5rem;
	text-align: center;
}
.dv-faq__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-faq__btn:hover { background-color: var(--dv-orange-dk); color: #ffffff; }
.dv-faq__btn:active { transform: translateY(1px); }
.dv-faq__btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(245, 166, 36, 0.4);
}

/* ---------- Accessibilité ---------- */
@media (prefers-reduced-motion: reduce) {
	.dv-faq__a,
	.dv-faq__a > p,
	.dv-faq__chevron,
	.dv-faq__item { transition: none; }
}

/* ---------- Liens contextuels dans les réponses (neutralise le lien rose Hello Elementor) ---------- */
.dv-faq__a 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-faq__a a:hover,
.dv-faq__a a:focus {
	color: var(--dv-orange-dk) !important;
	text-decoration-color: var(--dv-orange-dk);
}
