/* ==========================================================================
   JDVC Toolbox — Widgetbox Elementor (widgets.css)
   Styles de base des widgets des packs Conversion / Design / Contenu.

   - Chargé par le module widgetbox-elementor.php (handle « jdvc-widgets »).
   - Uniquement le CSS STATIQUE : tout ce qui dépend des réglages d'un widget
     passe par les « selectors » Elementor ({{WRAPPER}}) ou par une variable CSS
     posée sur l'instance.
   - Toutes les classes et toutes les animations (@keyframes) sont préfixées
     « jdvc- » pour éviter les collisions avec le thème et entre widgets.
   - Les éléments <button> sont ciblés avec 2 classes minimum pour passer devant
     les styles de boutons du Kit Elementor (.elementor-kit-X button).
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. UTILITAIRES PARTAGÉS
   -------------------------------------------------------------------------- */

.jdvc-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Message visible uniquement dans l'éditeur Elementor */
.jdvc-editor-notice {
	padding: 12px 16px;
	background: #fffbeb;
	color: #92400e;
	border: 1px dashed #f59e0b;
	border-radius: 6px;
	font-size: 13px;
	line-height: 1.5;
}


/* ==========================================================================
   1. PACK CONVERSION
   ========================================================================== */

/* --- Avant / Après -------------------------------------------------------- */
.jdvc-ba-wrapper {
	position: relative;
	width: 100%;
	overflow: hidden;
	line-height: 0;
	cursor: ew-resize;
	touch-action: pan-y; /* le scroll vertical de la page reste possible sur mobile */
	user-select: none;
	-webkit-user-select: none;
}
.jdvc-ba-orient-vertical .jdvc-ba-wrapper {
	cursor: ns-resize;
	touch-action: pan-x;
}
.jdvc-ba-wrapper img {
	display: block;
	pointer-events: none;
	-webkit-user-drag: none;
}
.jdvc-ba-wrapper .jdvc-ba-after {
	width: 100%;
	height: auto;
}
.jdvc-ba-overlay {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	z-index: 2;
}
.jdvc-ba-overlay img {
	position: absolute;
	top: 0;
	left: 0;
	max-width: none;
}
.jdvc-ba-wrapper:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* --- Bandeau Alerte ------------------------------------------------------- */
.jdvc-sticky-container {
	position: fixed;
	left: 0;
	width: 100%;
	z-index: 9999;
	overflow: hidden;
	line-height: 1;
	box-sizing: border-box;
}
.jdvc-sticky-container.jdvc-banner-top { top: 0; }
.jdvc-sticky-container.jdvc-banner-bottom { bottom: 0; }
body.admin-bar .jdvc-sticky-container.jdvc-banner-top { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .jdvc-sticky-container.jdvc-banner-top { top: 46px; }
}
@media (max-width: 600px) {
	/* sous 600px, la barre d'admin WordPress défile avec la page */
	body.admin-bar .jdvc-sticky-container.jdvc-banner-top { top: 0; }
}
.jdvc-banner-slider {
	display: flex;
	transition: transform .5s ease-in-out;
}
.jdvc-sticky-container .jdvc-msg {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 44px;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	transition: opacity .3s;
}
.jdvc-sticky-container a.jdvc-msg:hover,
.jdvc-sticky-container a.jdvc-msg:focus { opacity: .8; }
.jdvc-sticky-container .jdvc-banner-close {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	opacity: .85;
	z-index: 10;
}
.jdvc-sticky-container .jdvc-banner-close:hover,
.jdvc-sticky-container .jdvc-banner-close:focus {
	background: none;
	opacity: 1;
}

/* --- Click to Copy -------------------------------------------------------- */
.jdvc-copy-container {
	position: relative;
	overflow: hidden;
	cursor: pointer;
	border: 1px solid #ddd;
	transition: all .3s ease;
	justify-content: center;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}
.jdvc-copy-content-box {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: opacity .2s ease, transform .2s ease;
}
.jdvc-copy-icon {
	display: flex;
	align-items: center;
}
.jdvc-copy-icon-svg { transition: fill .3s ease; }
.jdvc-copy-success {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateY(10px);
	transition: all .25s cubic-bezier(.175, .885, .32, 1.275);
	font-weight: bold;
	pointer-events: none;
}
.jdvc-copy-container.jdvc-copied .jdvc-copy-content-box {
	opacity: 0;
	transform: translateY(-10px);
}
.jdvc-copy-container.jdvc-copied .jdvc-copy-success {
	opacity: 1;
	transform: translateY(0);
}
.jdvc-copy-container:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* --- Comparateur Technique ------------------------------------------------ */
.jdvc-comp-wrapper {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
}
.jdvc-comp-table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	text-align: center;
}
.jdvc-comp-table th,
.jdvc-comp-table td {
	vertical-align: middle;
	box-sizing: border-box;
}
.jdvc-comp-table tbody th.jdvc-criteria-head {
	text-align: left;
	font-weight: 600;
}
.jdvc-product-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
}
.jdvc-product-image {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
.jdvc-product-image img {
	height: auto;
	object-fit: contain;
	display: block;
	transition: transform .2s ease;
}
.jdvc-product-image a { display: block; }
.jdvc-product-image a:hover img { transform: scale(1.03); }
.jdvc-product-title {
	font-weight: 700;
	line-height: 1.3;
}
.jdvc-product-title a {
	text-decoration: none;
	transition: opacity .2s ease;
}
.jdvc-product-title a:hover { opacity: .75; }
.jdvc-comp-table thead th {
	position: sticky;
	top: 0;
	z-index: 10;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .05);
}
.jdvc-comp-table tbody th.jdvc-criteria-head {
	position: sticky;
	left: 0;
	z-index: 5;
}
.jdvc-comp-table thead th.jdvc-corner-cell {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 15;
}

/* --- Content Marquee ------------------------------------------------------ */
.jdvc-marquee-wrapper {
	display: flex;
	overflow: hidden;
	width: 100%;
	user-select: none;
	padding: 15px 0;
	position: relative;
}
.jdvc-marquee-track {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	min-width: 100%;
	animation: jdvc-marquee-scroll linear infinite;
}
.jdvc-marquee-item {
	display: flex;
	align-items: center;
	white-space: nowrap;
	font-weight: bold;
}
.jdvc-marquee-item a {
	text-decoration: none;
	display: flex;
	align-items: center;
	transition: opacity .3s ease;
}
.jdvc-marquee-item a:hover { opacity: .8; }
.jdvc-marquee-img {
	width: auto;
	object-fit: contain;
}
.jdvc-pause-on-hover:hover .jdvc-marquee-track,
.jdvc-pause-on-hover:focus-within .jdvc-marquee-track {
	animation-play-state: paused;
}
@keyframes jdvc-marquee-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-100%); }
}

/* --- Image Hotspots ------------------------------------------------------- */
.jdvc-hotspots-container {
	position: relative;
	display: inline-block;
	width: 100%;
}
.jdvc-hotspots-bg {
	display: block;
	width: 100%;
	height: auto;
}
.jdvc-hotspot-wrapper {
	position: absolute;
	transform: translate(-50%, -50%);
	z-index: 10;
}
.jdvc-hotspot-wrapper:hover,
.jdvc-hotspot-wrapper:focus-within { z-index: 30; }
.jdvc-hotspot-dot {
	position: relative;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .3s ease;
	outline: none;
}
.jdvc-hotspot-wrapper:hover .jdvc-hotspot-dot,
.jdvc-hotspot-dot:focus-visible { transform: scale(1.2); }
.jdvc-hotspot-dot:focus-visible { box-shadow: 0 0 0 3px rgba(255, 255, 255, .9); }
.jdvc-hotspot-dot-inner {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	position: relative;
	z-index: 1;
}
/* Pulsation : reprend la couleur du point */
.jdvc-hotspot-dot::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	top: 0;
	left: 0;
	background-color: inherit;
	animation: jdvc-hotspot-pulse 2s infinite ease-in-out;
}
@keyframes jdvc-hotspot-pulse {
	0% { transform: scale(1); opacity: .7; }
	100% { transform: scale(2.5); opacity: 0; }
}
.jdvc-hotspot-tooltip {
	position: absolute;
	width: 220px;
	padding: 12px;
	border-radius: 6px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .15);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
	z-index: 20;
	pointer-events: none;
}
.jdvc-hotspot-wrapper:hover .jdvc-hotspot-tooltip,
.jdvc-hotspot-wrapper:focus-within .jdvc-hotspot-tooltip {
	opacity: 1;
	visibility: visible;
}
.jdvc-tooltip-title {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
}
.jdvc-tooltip-desc {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
}
.jdvc-tooltip-top    { bottom: 100%; left: 50%; margin-bottom: 12px; transform: translate(-50%, 10px); }
.jdvc-tooltip-bottom { top: 100%;    left: 50%; margin-top: 12px;    transform: translate(-50%, -10px); }
.jdvc-tooltip-left   { right: 100%;  top: 50%;  margin-right: 12px;  transform: translate(10px, -50%); }
.jdvc-tooltip-right  { left: 100%;   top: 50%;  margin-left: 12px;   transform: translate(-10px, -50%); }
.jdvc-hotspot-wrapper:hover .jdvc-tooltip-top,
.jdvc-hotspot-wrapper:hover .jdvc-tooltip-bottom,
.jdvc-hotspot-wrapper:focus-within .jdvc-tooltip-top,
.jdvc-hotspot-wrapper:focus-within .jdvc-tooltip-bottom { transform: translate(-50%, 0); }
.jdvc-hotspot-wrapper:hover .jdvc-tooltip-left,
.jdvc-hotspot-wrapper:hover .jdvc-tooltip-right,
.jdvc-hotspot-wrapper:focus-within .jdvc-tooltip-left,
.jdvc-hotspot-wrapper:focus-within .jdvc-tooltip-right { transform: translate(0, -50%); }

/* --- Open Modale ---------------------------------------------------------- */
.jdvc-modal-overlay {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .3s ease, visibility .3s ease;
	padding: 20px;
	box-sizing: border-box;
	background-color: rgba(0, 0, 0, .6);
}
/* masquée tant que le JS ne l'a pas ouverte (évite tout flash au chargement) */
.jdvc-modal-overlay[hidden] { display: none !important; }
.jdvc-modal-overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.jdvc-modal-content {
	width: 100%;
	background: #fff;
	border-radius: 8px;
	position: relative;
	padding: 30px;
	box-shadow: 0 15px 50px rgba(0, 0, 0, .3);
	transform: scale(.85);
	transition: transform .3s ease;
	box-sizing: border-box;
	max-height: 90vh;
	overflow-y: auto;
	outline: none;
}
.jdvc-modal-overlay.is-open .jdvc-modal-content { transform: scale(1); }
.jdvc-modal-overlay .jdvc-modal-close {
	position: absolute;
	top: 10px;
	right: 15px;
	padding: 0 6px;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	color: #333;
	opacity: .6;
}
.jdvc-modal-overlay .jdvc-modal-close:hover,
.jdvc-modal-overlay .jdvc-modal-close:focus {
	background: none;
	color: #333;
	opacity: 1;
}
.jdvc-modal-trigger-wrap .jdvc-modal-trigger-btn {
	border-radius: 4px;
	padding: 12px 24px;
	cursor: pointer;
	transition: all .3s;
	font-weight: 600;
	display: inline-block;
	border: 1px solid transparent;
}
.jdvc-modal-trigger-wrap .jdvc-modal-trigger-img { cursor: pointer; transition: all .3s; }
.jdvc-modal-trigger-wrap .jdvc-modal-trigger-btn:hover,
.jdvc-modal-trigger-wrap .jdvc-modal-trigger-img:hover { transform: translateY(-3px); }
html.jdvc-modal-lock,
html.jdvc-modal-lock body { overflow: hidden; }

/* --- Sticky Content Split ------------------------------------------------- */
.jdvc-sticky-split-container {
	display: grid;
	width: 100%;
	align-items: start;
}
/* minmax(0, …) : un contenu large (image, tableau) ne casse plus la répartition */
.jdvc-grid-50-50 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.jdvc-grid-33-66 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.jdvc-grid-66-33 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.jdvc-grid-25-75 { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
.jdvc-grid-75-25 { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.jdvc-split-side {
	width: 100%;
	box-sizing: border-box;
}
.jdvc-split-side.is-sticky {
	position: -webkit-sticky;
	position: sticky;
	height: auto;
}
.jdvc-split-side.is-scrollable { position: relative; }
.jdvc-split-inner { width: 100%; }
@media (max-width: 768px) {
	.jdvc-stack-mobile.jdvc-sticky-split-container {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 30px !important;
	}
	.jdvc-stack-mobile .jdvc-split-side.is-sticky {
		position: relative !important;
		top: 0 !important;
		order: 1;
	}
	.jdvc-stack-mobile .jdvc-split-side.is-scrollable { order: 2; }
}

/* --- Unfold / Read More --------------------------------------------------- */
.jdvc-unfold-wrapper {
	width: 100%;
	position: relative;
}
.jdvc-unfold-content {
	position: relative;
	overflow: hidden;
	transition: max-height .4s cubic-bezier(.25, 1, .5, 1);
}
.jdvc-unfold-content::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 60px;
	background: linear-gradient(to bottom, transparent, var(--fade-color, #fff));
	pointer-events: none;
	transition: opacity .3s ease;
}
.jdvc-unfold-wrapper.is-expanded .jdvc-unfold-content::after,
.jdvc-unfold-wrapper.is-short .jdvc-unfold-content::after { opacity: 0; }
.jdvc-unfold-wrapper.is-short .jdvc-unfold-actions { display: none; }
.jdvc-unfold-actions {
	margin-top: 15px;
	transition: opacity .3s ease, visibility .3s ease;
}
.jdvc-unfold-wrapper.hide-actions .jdvc-unfold-actions {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.jdvc-unfold-btn-left .jdvc-unfold-actions { text-align: left; }
.jdvc-unfold-btn-center .jdvc-unfold-actions { text-align: center; }
.jdvc-unfold-btn-right .jdvc-unfold-actions { text-align: right; }
.jdvc-unfold-actions .jdvc-unfold-trigger {
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 5px 10px;
	cursor: pointer;
	font-weight: 600;
	font-size: 15px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.jdvc-unfold-actions .jdvc-unfold-trigger:hover,
.jdvc-unfold-actions .jdvc-unfold-trigger:focus { background: none; }
.jdvc-unfold-trigger::after {
	content: '↓';
	display: inline-block;
	transition: transform .3s ease;
}
.jdvc-unfold-wrapper.is-expanded:not(.hide-actions) .jdvc-unfold-trigger::after { transform: rotate(180deg); }


/* ==========================================================================
   2. PACK DESIGN
   ========================================================================== */

/* --- Bullet Slider -------------------------------------------------------- */
.jdvc-slider-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	gap: 20px;
	box-sizing: border-box;
}
.jdvc-slider-container .jdvc-swiper {
	width: 100%;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
.jdvc-slider-nav-top-row .jdvc-slider-container    { flex-direction: column-reverse; }
.jdvc-slider-nav-bottom-row .jdvc-slider-container { flex-direction: column; }
.jdvc-slider-nav-left-col .jdvc-slider-container   { flex-direction: row-reverse; }
.jdvc-slider-nav-right-col .jdvc-slider-container  { flex-direction: row; }
.jdvc-slider-container .jdvc-custom-bullets {
	display: flex;
	z-index: 10;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: auto;
}
.jdvc-slider-nav-top-row .jdvc-custom-bullets,
.jdvc-slider-nav-bottom-row .jdvc-custom-bullets {
	flex-direction: row;
	flex-wrap: wrap;
	width: 100%;
}
.jdvc-slider-nav-left-col .jdvc-custom-bullets,
.jdvc-slider-nav-right-col .jdvc-custom-bullets {
	flex-direction: column;
	height: auto;
	justify-content: center;
	align-self: center;
	flex-shrink: 0;
}
.jdvc-nav-style-button-style .jdvc-custom-bullets .jdvc-bullet-item { flex: 0 1 auto; }
.jdvc-nav-style-tab-style.jdvc-slider-nav-top-row .jdvc-custom-bullets .jdvc-bullet-item,
.jdvc-nav-style-tab-style.jdvc-slider-nav-bottom-row .jdvc-custom-bullets .jdvc-bullet-item { flex: 1 1 0%; }
.jdvc-nav-style-tab-style.jdvc-slider-nav-left-col .jdvc-custom-bullets,
.jdvc-nav-style-tab-style.jdvc-slider-nav-right-col .jdvc-custom-bullets {
	align-items: stretch;
	min-width: 200px;
}
.jdvc-nav-style-tab-style.jdvc-slider-nav-left-col .jdvc-custom-bullets .jdvc-bullet-item,
.jdvc-nav-style-tab-style.jdvc-slider-nav-right-col .jdvc-custom-bullets .jdvc-bullet-item {
	width: 100%;
	justify-content: flex-start;
}
.jdvc-slider-container .jdvc-custom-bullets .jdvc-bullet-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	transition: all .25s ease-in-out !important;
	box-sizing: border-box;
	text-shadow: none;
	border-style: solid;
}
.jdvc-slider-container .jdvc-custom-bullets .jdvc-bullet-item:focus { outline: none; }
.jdvc-slider-container .jdvc-custom-bullets .jdvc-bullet-item:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
.jdvc-slider-container .jdvc-custom-bullets .jdvc-bullet-item:hover,
.jdvc-slider-container .jdvc-custom-bullets .jdvc-bullet-item.swiper-pagination-bullet-active {
	opacity: 1 !important;
	background-image: none !important;
}
.jdvc-slider-container .jdvc-bullet-icon svg,
.jdvc-slider-container .jdvc-bullet-icon i {
	width: 14px;
	height: 14px;
	font-size: 14px;
	vertical-align: middle;
	fill: currentColor;
}
.jdvc-slider-container .jdvc-slide-item {
	background-size: cover;
	background-position: center;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px;
	box-sizing: border-box;
	height: 100%;
}
.jdvc-slider-container .jdvc-slide-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .4);
	z-index: 1;
}
.jdvc-slider-container .jdvc-slide-content {
	position: relative;
	z-index: 2;
	color: #fff;
	text-align: center;
	max-width: 700px;
}
.jdvc-slider-container .jdvc-slide-title {
	font-size: 2.5em;
	margin-bottom: 15px;
	color: #fff;
}
.jdvc-slider-container .jdvc-slide-text {
	font-size: 1.1em;
	line-height: 1.6;
	margin-bottom: 20px;
}
.jdvc-slider-container .jdvc-slide-full-link {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 5;
	cursor: pointer;
}
.jdvc-slider-container .jdvc-slide-btn {
	display: inline-block;
	padding: 12px 30px;
	background-color: #fff;
	color: #1e1e1e;
	text-decoration: none;
	font-weight: bold;
	border-radius: 4px;
	transition: background-color .3s;
	z-index: 6;
	position: relative;
}
.jdvc-slider-container .jdvc-slide-btn:hover {
	background-color: #f4f4f4;
	color: #1e1e1e;
}
@media (max-width: 767px) {
	.jdvc-slider-nav-left-col .jdvc-slider-container,
	.jdvc-slider-nav-right-col .jdvc-slider-container { flex-direction: column; }
	.jdvc-slider-nav-left-col .jdvc-custom-bullets,
	.jdvc-slider-nav-right-col .jdvc-custom-bullets {
		flex-direction: row;
		flex-wrap: wrap;
		width: 100%;
		min-width: 0 !important;
	}
	.jdvc-slider-container .jdvc-slide-item { padding: 30px 20px; }
}

/* --- Category Carousel ---------------------------------------------------- */
.jdvc-category-carousel-wrapper {
	width: 100%;
	position: relative;
	padding: 10px 0;
}
.jdvc-category-carousel-wrapper .jdvc-cat-swiper {
	width: 100%;
	overflow: hidden;
	padding-bottom: 45px;
}
.jdvc-category-carousel-wrapper .swiper-slide {
	height: auto !important;
	display: flex;
	align-items: stretch;
}
@media (min-width: 1025px) {
	.jdvc-category-carousel-wrapper.jdvc-force-grid-desktop .jdvc-cat-swiper { padding-bottom: 0; }
	.jdvc-category-carousel-wrapper.jdvc-force-grid-desktop .swiper-wrapper {
		display: grid !important;
		transform: none !important;
		grid-template-columns: repeat(var(--spv-desktop), minmax(0, 1fr)) !important;
		gap: var(--space-desktop) !important;
	}
	.jdvc-category-carousel-wrapper.jdvc-force-grid-desktop .swiper-slide {
		width: 100% !important;
		margin-right: 0 !important;
	}
}
@media (min-width: 768px) and (max-width: 1024px) {
	.jdvc-category-carousel-wrapper.jdvc-force-grid-tablet .jdvc-cat-swiper { padding-bottom: 0; }
	.jdvc-category-carousel-wrapper.jdvc-force-grid-tablet .swiper-wrapper {
		display: grid !important;
		transform: none !important;
		grid-template-columns: repeat(var(--spv-tablet), minmax(0, 1fr)) !important;
		gap: var(--space-tablet) !important;
	}
	.jdvc-category-carousel-wrapper.jdvc-force-grid-tablet .swiper-slide {
		width: 100% !important;
		margin-right: 0 !important;
	}
}
.jdvc-category-carousel-wrapper .jdvc-cat-card {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
	box-sizing: border-box;
	overflow: hidden;
	background-color: #f9f9f9;
	transition: transform .4s cubic-bezier(.25, 1, .5, 1), box-shadow .4s ease, border-color .3s ease;
	border-style: solid;
	border-width: 1px;
	border-color: #e5e5e5;
}
.jdvc-category-carousel-wrapper .jdvc-cat-img-wrapper {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	position: relative;
	background-color: #eaeaea;
	flex-shrink: 0;
}
.jdvc-category-carousel-wrapper .jdvc-cat-img-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.25, 1, .5, 1);
}
.jdvc-category-carousel-wrapper .jdvc-cat-img-wrapper::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, .05) 100%);
}
.jdvc-category-carousel-wrapper .jdvc-cat-info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	flex-grow: 1;
	padding: 0 15px;
	box-sizing: border-box;
	overflow: hidden;
}
.jdvc-category-carousel-wrapper .jdvc-cat-title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -.01em;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	transition: color .3s ease;
}
.jdvc-category-carousel-wrapper .jdvc-cat-count {
	font-size: .75rem;
	font-weight: 500;
	padding: 2px 8px;
	background-color: rgba(0, 0, 0, .06);
	border-radius: 100px;
	transition: background-color .3s ease, color .3s ease;
	margin-left: 10px;
	flex-shrink: 0;
}
.jdvc-category-carousel-wrapper .jdvc-cat-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 20px rgba(0, 0, 0, .06);
}
.jdvc-category-carousel-wrapper .jdvc-cat-card:hover .jdvc-cat-img-wrapper img { transform: scale(1.06); }
.jdvc-category-carousel-wrapper .jdvc-cat-card:hover .jdvc-cat-count { background-color: rgba(255, 255, 255, .2); }
.jdvc-category-carousel-wrapper .jdvc-cat-card.jdvc-cat-active { border-color: currentColor; }
/* Position « image au-dessus du texte » (corrigée : classe posée par le réglage) */
.jdvc-cat-imgpos-column .jdvc-category-carousel-wrapper .jdvc-cat-card { align-items: stretch; }
.jdvc-cat-imgpos-column .jdvc-category-carousel-wrapper .jdvc-cat-img-wrapper {
	width: 100% !important;
	max-width: 100%;
	aspect-ratio: 16 / 10;
}
.jdvc-cat-imgpos-column .jdvc-category-carousel-wrapper .jdvc-cat-info { padding: 15px; }
.jdvc-category-carousel-wrapper .jdvc-cat-pagination.swiper-pagination-bullets { bottom: 5px; }
.jdvc-category-carousel-wrapper .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	background-color: #000;
	opacity: .2;
	transition: all .3s cubic-bezier(.25, 1, .5, 1);
}
.jdvc-category-carousel-wrapper .swiper-pagination-bullet-active {
	opacity: 1;
	width: 20px;
	border-radius: 4px;
}
@media (max-width: 767px) {
	.jdvc-category-carousel-wrapper .swiper-slide { height: auto !important; }
	.jdvc-category-carousel-wrapper .jdvc-cat-card {
		flex-direction: column !important;
		align-items: flex-start;
	}
	.jdvc-category-carousel-wrapper .jdvc-cat-img-wrapper {
		width: 100% !important;
		max-width: 100%;
		aspect-ratio: 16 / 10;
	}
	.jdvc-category-carousel-wrapper .jdvc-cat-info { padding: 15px; }
}

/* --- Cursor Parallax ------------------------------------------------------ */
.jdvc-parallax-wrapper {
	position: relative;
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	--mouse-x: 0;
	--mouse-y: 0;
}
.jdvc-parallax-bg-layer {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}
.jdvc-parallax-item {
	position: absolute;
	will-change: transform;
	transition: transform .3s cubic-bezier(.25, 1, .5, 1);
	transform: translate3d(calc(var(--mouse-x) * var(--factor) * 1px), calc(var(--mouse-y) * var(--factor) * 1px), 0);
}
.jdvc-parallax-item a {
	display: block;
	cursor: pointer;
}
.jdvc-parallax-item img {
	width: 100%;
	height: auto;
	display: block;
}
.jdvc-parallax-content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	padding: 20px;
	box-sizing: border-box;
	text-align: center;
}
.jdvc-parallax-title { margin: 0 0 15px 0; }
.jdvc-parallax-text { margin: 0; }
/* Écrans tactiles, mobiles et visiteurs qui demandent moins d'animations : pas d'effet */
@media (max-width: 768px), (hover: none), (prefers-reduced-motion: reduce) {
	.jdvc-parallax-item {
		transform: none !important;
		transition: none !important;
	}
}

/* --- Dual Button ---------------------------------------------------------- */
.jdvc-dual-btn-wrap {
	display: flex;
	flex-wrap: wrap;
}
.jdvc-dual-btn-wrap .jdvc-dual-btn {
	flex: 1;
	text-align: center;
	padding: 12px 24px;
	text-decoration: none;
	border-radius: 5px;
	transition: all .3s ease-in-out;
}
.jdvc-dual-btn-wrap .jdvc-dual-btn:hover { transform: translateY(-3px); }

/* --- Floating Action Menu ------------------------------------------------- */
.jdvc-fab-container {
	position: fixed;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.jdvc-fab-container .jdvc-fab-item {
	width: 55px;
	height: 55px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
	transition: all .3s ease;
	text-decoration: none;
}
.jdvc-fab-container .jdvc-fab-item svg { height: auto; }
.jdvc-fab-anim-float:hover { transform: translateY(-5px); }
.jdvc-fab-anim-grow:hover { transform: scale(1.15); }
.jdvc-fab-anim-pulse:hover { animation: jdvc-fab-pulse 1s infinite; }
@keyframes jdvc-fab-pulse {
	0% { box-shadow: 0 0 0 0 rgba(0, 0, 0, .4); }
	70% { box-shadow: 0 0 0 15px rgba(0, 0, 0, 0); }
	100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
}

/* --- Horizontal Scroll ---------------------------------------------------- */
.jdvc-hz-scroll-track {
	position: relative;
	width: 100%;
}
.jdvc-hz-scroll-sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.jdvc-hz-scroll-timeline {
	display: flex;
	height: 100%;
	width: max-content;
	will-change: transform;
	transition: transform .1s cubic-bezier(.1, 1, .1, 1);
}
/* largeur réelle de la zone visible (posée par le JS), plus de débordement avec un conteneur boxed */
.jdvc-hz-slide {
	width: var(--jdvc-hz-w, 100vw);
	flex-shrink: 0;
	display: flex;
	box-sizing: border-box;
}
.jdvc-hz-slide-inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}
@media (max-width: 768px) {
	.jdvc-hz-disable-mobile { height: auto !important; }
	.jdvc-hz-disable-mobile .jdvc-hz-scroll-sticky {
		position: relative !important;
		height: auto !important;
		overflow: visible !important;
	}
	.jdvc-hz-disable-mobile .jdvc-hz-scroll-timeline {
		flex-direction: column !important;
		width: 100% !important;
		transform: none !important;
	}
	.jdvc-hz-disable-mobile .jdvc-hz-slide {
		width: 100% !important;
		height: auto !important;
		padding: 60px 20px !important;
		align-items: center !important;
		text-align: center !important;
	}
}

/* --- Scroll Indicator ----------------------------------------------------- */
.jdvc-scroll-wrapper {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	width: 100%;
	pointer-events: none;
}
.jdvc-scroll-hint {
	opacity: 0;
	transition: opacity .6s ease;
	text-align: center;
}
.jdvc-scroll-mouse {
	width: 22px;
	height: 36px;
	border: 2px solid;
	border-radius: 12px;
	margin: 0 auto;
	position: relative;
	box-sizing: border-box;
}
.jdvc-scroll-wheel {
	width: 3px;
	height: 6px;
	border-radius: 2px;
	margin: 6px auto;
	animation: jdvc-scroll-wheel 1.8s infinite;
}
.jdvc-scroll-arrows {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.jdvc-scroll-arrow {
	font-size: 16px;
	line-height: 1;
	animation: jdvc-scroll-arrow 1.5s infinite;
}
.jdvc-scroll-arrow + .jdvc-scroll-arrow {
	margin-top: -4px;
	opacity: .5;
}
.jdvc-scroll-text {
	font-size: 12px;
	text-transform: uppercase;
	margin-top: 8px;
}
@keyframes jdvc-scroll-wheel {
	0% { transform: translateY(0); opacity: 1; }
	100% { transform: translateY(10px); opacity: 0; }
}
@keyframes jdvc-scroll-arrow {
	0% { transform: translateY(0); opacity: .2; }
	50% { opacity: 1; }
	100% { transform: translateY(8px); opacity: 0; }
}

/* --- Super Titre ---------------------------------------------------------- */
.jdvc-heading-wrap { line-height: 1.4; }
.jdvc-heading-wrap .jdvc-label {
	display: block;
	margin-bottom: 5px;
	font-weight: bold;
	text-transform: uppercase;
}
.jdvc-heading-wrap .jdvc-main-title { margin: 0; }
/* inline-block : la ligne suit l'alignement du texte (gauche / centre / droite) */
.jdvc-heading-wrap .jdvc-title-sep {
	height: 3px;
	width: 60px;
	margin: 15px 0;
	display: inline-block;
	vertical-align: middle;
}
.jdvc-heading-wrap .jdvc-sub-title { margin: 10px 0 0; }

/* --- Table des matières Lite ---------------------------------------------- */
.jdvc-toc-box {
	border-left: 4px solid #e67e22;
	padding: 25px;
	border-radius: 0 8px 8px 0;
	transition: all .3s ease;
}
.jdvc-toc-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 15px;
}
.jdvc-toc-icon {
	font-size: 14px;
	opacity: .6;
}
.jdvc-toc-box .jdvc-toc-title {
	font-weight: 800;
	margin: 0;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 14px;
}
.jdvc-toc-list {
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: jdvc-toc-counter;
}
.jdvc-toc-list li {
	position: relative;
	padding: 6px 0;
	margin: 0;
}
.jdvc-toc-list a {
	text-decoration: none;
	display: inline-block;
	transition: transform .2s ease, color .2s ease;
}
.jdvc-toc-list a:hover { transform: translateX(5px); }
/* numérotation : seuls les H2 incrémentent le compteur (plus de trous 01, 03…) */
.jdvc-toc-list .jdvc-toc-item-h2 { counter-increment: jdvc-toc-counter; }
.jdvc-toc-list .jdvc-toc-item-h2::before {
	content: counter(jdvc-toc-counter, decimal-leading-zero);
	font-size: 10px;
	font-weight: bold;
	margin-right: 10px;
	opacity: .4;
}
.jdvc-toc-list .jdvc-toc-item-h3 { margin-left: 20px; font-size: .95em; opacity: .8; }
.jdvc-toc-list .jdvc-toc-item-h4 { margin-left: 40px; font-size: .9em; opacity: .7; }

/* --- Timeline Verticale --------------------------------------------------- */
.jdvc-timeline-container {
	position: relative;
	padding: 40px 0;
	max-width: 800px;
	margin: 0 auto;
}
.jdvc-timeline-line {
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 2px;
	transform: translateX(-50%);
	z-index: 1;
}
.jdvc-step {
	position: relative;
	width: 50%;
	margin-bottom: 40px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}
.jdvc-step.jdvc-side-left { padding-right: 40px; text-align: right; }
.jdvc-step.jdvc-side-right { padding-left: 40px; text-align: left; margin-left: 50%; }
.jdvc-step-dot {
	position: absolute;
	top: 5px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 4px solid #fff;
	box-shadow: 0 0 0 2px #eee;
	z-index: 3;
	box-sizing: border-box;
	background: #e67e22;
}
.jdvc-side-left .jdvc-step-dot { right: -8px; }
.jdvc-side-right .jdvc-step-dot { left: -8px; }
.jdvc-step .jdvc-step-title { margin: 0 0 8px 0; }
.jdvc-step-desc {
	font-size: 14px;
	line-height: 1.5;
}
.jdvc-step-desc p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.jdvc-timeline-line { left: 20px; transform: none; }
	.jdvc-step {
		width: 100% !important;
		margin-left: 0 !important;
		padding-left: 50px !important;
		padding-right: 0 !important;
		text-align: left !important;
	}
	.jdvc-step-dot { left: 12px !important; right: auto !important; }
}


/* ==========================================================================
   3. PACK CONTENU
   ========================================================================== */

/* --- Carrousel Liens Custom ----------------------------------------------- */
.jdvc-carousel-main {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.jdvc-carousel-main .jdvc-swiper-target { overflow: hidden; }
.jdvc-img-container {
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jdvc-img-container img {
	height: 100%;
	object-fit: cover;
	display: block;
}
.jdvc-carousel-link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.is-editor .jdvc-img-container,
.is-editor .jdvc-cap-text { pointer-events: none; }
.jdvc-cap-text {
	text-align: center;
	padding: 10px 0;
}

/* --- Document Libre ------------------------------------------------------- */
.jdvc-std-wrapper { width: 100%; }
.jdvc-std-table-wrapper {
	width: 100%;
	overflow-x: auto;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05);
	border-radius: 8px;
	border: 1px solid #e2e8f0;
}
.jdvc-std-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 600px;
}
.jdvc-std-table th {
	color: #fff;
	text-align: left;
	padding: 14px 16px;
	font-weight: 600;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .5px;
	border: 1px solid #e2e8f0;
}
.jdvc-std-table td {
	padding: 16px;
	vertical-align: middle;
	color: #334155;
	border: 1px solid #e2e8f0;
}
.jdvc-std-table tr:hover { background: rgba(148, 163, 184, .05); }
.jdvc-std-table .jdvc-std-col-type { width: 50px; text-align: center; }
.jdvc-std-table .jdvc-std-col-details { width: 120px; }
.jdvc-std-table .jdvc-std-col-action { width: 140px; text-align: center; }
.jdvc-std-details {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.jdvc-std-grid {
	display: grid;
	grid-template-columns: repeat(var(--jdvc-std-cols, 3), minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 1024px) {
	.jdvc-std-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.jdvc-std-grid { grid-template-columns: minmax(0, 1fr); }
}
.jdvc-std-card {
	border-radius: 12px;
	padding: 20px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, .04);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border: 1px solid #e2e8f0;
}
.jdvc-std-card-top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 15px;
}
.jdvc-std-card-icon { font-size: 32px; }
.jdvc-std-card .jdvc-std-card-title {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #0f172a;
}
.jdvc-std-card-desc {
	color: #64748b;
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 15px;
}
.jdvc-std-infos {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.jdvc-std-wrapper .jdvc-std-download {
	display: block;
	text-align: center;
	padding: 10px 16px;
	text-decoration: none;
	font-weight: 600;
	box-sizing: border-box;
}
.jdvc-std-wrapper .jdvc-std-title {
	font-weight: 700;
	color: #0f172a;
	font-size: 16px;
	margin: 0 0 4px 0;
}
.jdvc-std-desc {
	font-size: 13px;
	color: #64748b;
	margin: 0;
	line-height: 1.4;
}
.jdvc-std-meta-badge {
	display: inline-block;
	background: #f1f5f9;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	color: #475569;
	border: 1px solid #cbd5e1;
}
.jdvc-std-wrapper .jdvc-std-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	box-sizing: border-box;
}
.jdvc-std-wrapper .jdvc-std-disabled {
	background: #cbd5e1 !important;
	border-color: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: not-allowed;
	pointer-events: none;
}
.jdvc-std-icon {
	font-size: 24px;
	line-height: 1;
}
.jdvc-std-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}
.jdvc-std-tag {
	font-size: 11px;
	color: #94a3b8;
	text-transform: uppercase;
	font-weight: 700;
}
.jdvc-std-card-tags { margin-bottom: 15px; }
.jdvc-std-card-tag {
	background: #f1f5f9;
	border: 1px solid #cbd5e1;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	color: #475569;
}

/* --- FAQ Accordéon SEO ---------------------------------------------------- */
.jdvc-faq-wrapper .jdvc-faq-item {
	margin-bottom: 10px;
	padding: 10px;
	border-radius: 5px;
}
.jdvc-faq-wrapper .jdvc-faq-item > summary {
	cursor: pointer;
	font-weight: bold;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.jdvc-faq-wrapper .jdvc-faq-item > summary::-webkit-details-marker { display: none; }
.jdvc-faq-wrapper .jdvc-faq-item > summary::after {
	content: '+';
	flex-shrink: 0;
	font-weight: 400;
	font-size: 1.3em;
	line-height: 1;
	transition: transform .25s ease;
}
.jdvc-faq-wrapper .jdvc-faq-item[open] > summary::after { transform: rotate(45deg); }
.jdvc-faq-wrapper.jdvc-faq-no-icon .jdvc-faq-item > summary::after { display: none; }
.jdvc-faq-answer { margin-top: 10px; }
.jdvc-faq-answer > :last-child { margin-bottom: 0; }

/* --- Info Box ------------------------------------------------------------- */
.jdvc-info-box {
	padding: 30px;
	background: #fff;
	color: #333;
	border-radius: 10px;
	box-shadow: 0 5px 15px rgba(0, 0, 0, .05);
	transition: transform .3s ease;
	text-align: center;
}
.jdvc-info-box:hover,
.jdvc-info-box:focus-within { transform: translateY(-10px); }
.jdvc-info-box .jdvc-icon-wrap {
	font-size: 40px;
	margin-bottom: 15px;
	line-height: 1;
}
.jdvc-info-box .jdvc-icon-wrap svg { width: 1em; height: 1em; }
.jdvc-info-box .jdvc-info-title { color: inherit; }
.jdvc-info-box .jdvc-info-desc { margin: 0; }
.jdvc-flip-box {
	perspective: 1000px;
	height: 200px;
}
.jdvc-flip-inner {
	position: relative;
	width: 100%;
	height: 100%;
	transition: transform .6s;
	transform-style: preserve-3d;
	cursor: pointer;
	outline: none;
}
.jdvc-flip-box:hover .jdvc-flip-inner,
.jdvc-flip-inner:focus,
.jdvc-flip-inner:focus-within { transform: rotateY(180deg); }
.jdvc-flip-front,
.jdvc-flip-back {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	box-sizing: border-box;
	text-align: center;
}
.jdvc-flip-front {
	flex-direction: column;
	background: #fff;
	color: #333;
	box-shadow: 0 5px 15px rgba(0, 0, 0, .05);
}
.jdvc-flip-back {
	background: #e67e22;
	color: #fff;
	transform: rotateY(180deg);
	padding: 20px;
}
.jdvc-flip-front .jdvc-icon-wrap {
	font-size: 30px;
	line-height: 1;
}
.jdvc-flip-front .jdvc-icon-wrap svg { width: 1em; height: 1em; }
.jdvc-flip-front .jdvc-info-title {
	margin: 10px 0 0;
	color: inherit;
}
.jdvc-flip-back .jdvc-info-desc {
	margin: 0;
	color: inherit;
}
@media (prefers-reduced-motion: reduce) {
	.jdvc-info-box,
	.jdvc-flip-inner { transition: none; }
}

/* --- Live Search Filter --------------------------------------------------- */
.jdvc-search-wrapper {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
}
.jdvc-search-wrapper .jdvc-search-input {
	width: 100%;
	padding: 12px 45px 12px 20px;
	border: 1px solid #ddd;
	border-radius: 5px;
	font-size: 15px;
	outline: none;
	transition: all .3s ease;
	-webkit-appearance: none;
	appearance: none;
}
.jdvc-search-wrapper .jdvc-search-input::-webkit-search-cancel-button { cursor: pointer; }
.jdvc-search-wrapper .jdvc-search-input:focus {
	border-color: #e67e22;
	box-shadow: 0 0 8px rgba(230, 126, 34, .15);
}
.jdvc-search-icon {
	position: absolute;
	right: 15px;
	color: #888;
	display: flex;
	align-items: center;
	pointer-events: none;
}
.jdvc-search-empty {
	margin-top: 12px;
	font-size: 14px;
	opacity: .75;
}
.jdvc-search-empty[hidden] { display: none; }

/* --- PDF Viewer ----------------------------------------------------------- */
.jdvc-pdf-viewer-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 15px;
}
.jdvc-pdf-iframe {
	width: 100%;
	border: 0;
	display: block;
	box-sizing: border-box;
	background-color: #525659;
}
.jdvc-pdf-mobile-fallback {
	width: 100%;
	display: flex;
	justify-content: center;
}
.jdvc-pdf-viewer-wrapper .jdvc-pdf-download-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	padding: 12px 24px;
	font-weight: bold;
	font-size: .95em;
	border-radius: 6px;
	transition: transform .2s ease, opacity .2s ease;
	box-shadow: 0 4px 6px rgba(0, 0, 0, .1);
}
.jdvc-pdf-viewer-wrapper .jdvc-pdf-download-btn:hover {
	transform: translateY(-1px);
	opacity: .9;
}
.jdvc-pdf-icon { font-size: 1.1em; }
@media (max-width: 767px) {
	.jdvc-pdf-hide-mobile .jdvc-pdf-iframe { display: none; }
}
@media (min-width: 768px) {
	.jdvc-pdf-btn-mobile-only .jdvc-pdf-mobile-fallback { display: none; }
}
.jdvc-pdf-error,
.jdvc-rss-error {
	padding: 15px;
	background: rgba(239, 68, 68, .1);
	color: #ef4444;
	border-left: 4px solid #ef4444;
	border-radius: 4px;
	font-size: .95em;
}

/* --- RSS Feed Showcase ---------------------------------------------------- */
.jdvc-rss-grid {
	display: grid;
	gap: 20px;
	width: 100%;
}
.jdvc-rss-list {
	display: flex;
	flex-direction: column;
	gap: 15px;
	width: 100%;
}
.jdvc-rss-list-item {
	padding: 20px;
	border-radius: 6px;
	box-sizing: border-box;
}
.jdvc-rss-slider-outer {
	position: relative;
	width: 100%;
}
.jdvc-rss-slider-container {
	width: 100%;
	overflow: hidden;
	position: relative;
}
.jdvc-rss-slider {
	display: flex;
	flex-wrap: nowrap;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	width: 100%;
	height: 100%;
}
.jdvc-rss-slider::-webkit-scrollbar { display: none; }
.jdvc-rss-card-wrapper {
	position: relative;
	scroll-snap-align: start;
	height: 100%;
	display: flex;
	flex: 0 0 100%;
}
.jdvc-rss-card.style-slider {
	width: 100%;
	text-decoration: none;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
.jdvc-rss-card.style-slider .jdvc-rss-card-content {
	width: 100%;
	height: 100%;
	padding: 30px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.jdvc-rss-card.style-slider .jdvc-rss-excerpt {
	margin: 10px 0 0 0;
	max-width: 80%;
}
.jdvc-rss-card.style-slider .jdvc-rss-meta {
	margin-top: auto;
	margin-bottom: 0;
	padding-top: 15px;
}
.jdvc-rss-slider .jdvc-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	background: rgba(0, 0, 0, .5);
	color: #fff;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	line-height: 1;
	border-radius: 50%;
	z-index: 10;
	transition: background .3s, opacity .3s;
	opacity: 0;
}
.jdvc-rss-slider .jdvc-rss-card-wrapper:hover .jdvc-slider-arrow,
.jdvc-rss-slider .jdvc-slider-arrow:focus-visible { opacity: 1; }
.jdvc-rss-slider .jdvc-slider-arrow:hover {
	background: rgba(0, 0, 0, .8);
	color: #fff;
}
.jdvc-rss-slider .jdvc-slider-arrow.prev { left: 15px; }
.jdvc-rss-slider .jdvc-slider-arrow.next { right: 15px; }
@media (hover: none) {
	.jdvc-rss-slider .jdvc-slider-arrow { opacity: 1; }
}
.jdvc-rss-card {
	box-sizing: border-box;
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.jdvc-rss-img-wrapper {
	width: 100%;
	overflow: hidden;
	position: relative;
}
.jdvc-rss-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.jdvc-rss-grid .jdvc-rss-card:hover .jdvc-rss-img { transform: scale(1.05); }
.jdvc-rss-grid .jdvc-rss-card-content {
	padding: 20px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.jdvc-rss-title {
	margin: 0;
	line-height: 1.3;
}
.jdvc-rss-title a {
	text-decoration: none;
	color: inherit;
}
.jdvc-rss-meta {
	font-size: .8em;
	opacity: .7;
	margin-bottom: 15px;
}
.jdvc-rss-grid .jdvc-rss-meta { margin-top: 5px; }
.jdvc-rss-excerpt {
	margin: 0 0 20px 0;
	line-height: 1.5;
	font-size: .95em;
}
.jdvc-rss-grid .jdvc-rss-excerpt { flex-grow: 1; }
.jdvc-rss-readmore {
	font-size: .9em;
	text-decoration: none;
	font-weight: bold;
	color: inherit;
	opacity: .9;
	transition: opacity .2s;
	align-self: flex-start;
}
.jdvc-rss-readmore:hover { opacity: .7; }
.jdvc-rss-ticker-wrapper {
	display: flex;
	overflow: hidden;
	width: 100%;
	padding: 10px 0;
}
.jdvc-rss-ticker-track {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	min-width: 100%;
	animation: jdvc-rss-scroll linear infinite;
}
.jdvc-rss-ticker-wrapper:hover .jdvc-rss-ticker-track,
.jdvc-rss-ticker-wrapper:focus-within .jdvc-rss-ticker-track { animation-play-state: paused; }
.jdvc-rss-ticker-item {
	display: flex;
	align-items: center;
	white-space: nowrap;
	padding: 0 25px;
}
.jdvc-rss-ticker-item a {
	text-decoration: none;
	font-weight: bold;
	color: inherit;
}
.jdvc-rss-ticker-bullet {
	margin-right: 15px;
	opacity: .5;
}
@keyframes jdvc-rss-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-100%); }
}

/* --- Tableau Flexible ----------------------------------------------------- */
.jdvc-table-wrapper {
	overflow-x: auto;
	border-radius: 8px;
}
.jdvc-table-wrapper .jdvc-flex-table {
	width: 100%;
	border-collapse: collapse;
	text-align: center;
}
.jdvc-flex-table th,
.jdvc-flex-table td {
	padding: 10px;
	border: 1px solid #ddd;
}
.jdvc-flex-table th {
	padding: 12px;
	font-weight: 600;
}
.jdvc-flex-table th.jdvc-table-corner { background: #eee; }
.jdvc-flex-table td.jdvc-row-label { font-weight: 600; }
.jdvc-table-wrapper tr:hover td:not(.jdvc-row-label) { background-color: rgba(0, 0, 0, .02); }

/* --- Temps de Lecture ----------------------------------------------------- */
.jdvc-read-time {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.jdvc-read-icon {
	display: inline-flex;
	align-items: center;
	line-height: 1;
}
.jdvc-read-icon svg {
	width: 1em;
	height: 1em;
}

/* --- Woo Live Search ------------------------------------------------------ */
.jdvc-woo-search-container {
	position: relative;
	width: 100%;
}
.jdvc-woo-search-field {
	position: relative;
	display: flex;
	align-items: center;
}
.jdvc-woo-search-field .jdvc-woo-search-input {
	width: 100%;
	padding: 12px 40px 12px 15px;
	border: 1px solid #ddd;
	border-radius: 4px;
	outline: none;
	transition: border-color .3s;
	-webkit-appearance: none;
	appearance: none;
}
.jdvc-woo-search-field .jdvc-woo-search-input:focus { border-color: #e67e22; }
.jdvc-woo-search-spinner {
	position: absolute;
	right: 15px;
	width: 16px;
	height: 16px;
	border: 2px solid #ccc;
	border-top-color: #e67e22;
	border-radius: 50%;
	animation: jdvc-woo-spin .6s linear infinite;
	box-sizing: border-box;
}
.jdvc-woo-search-spinner[hidden],
.jdvc-woo-results-dropdown[hidden] { display: none; }
@keyframes jdvc-woo-spin { to { transform: rotate(360deg); } }
.jdvc-woo-results-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	margin-top: 5px;
	max-height: 420px;
	overflow-y: auto;
	z-index: 9999;
}
.jdvc-woo-results-dropdown .jdvc-woo-search-item {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	text-decoration: none;
	color: #333;
	border-bottom: 1px solid #f5f5f5;
	transition: background .2s;
}
.jdvc-woo-results-dropdown .jdvc-woo-search-item:hover,
.jdvc-woo-results-dropdown .jdvc-woo-search-item:focus { background: #f9f9f9; outline: none; }
.jdvc-woo-item-thumb {
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: 4px;
	margin-right: 15px;
	flex-shrink: 0;
}
.jdvc-woo-item-info {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.jdvc-woo-item-title {
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 3px;
	line-height: 1.3;
}
.jdvc-woo-item-sku {
	font-size: 11px;
	color: #999;
}
.jdvc-woo-item-price {
	font-size: 13px;
	font-weight: 700;
	color: #e67e22;
	margin-left: 15px;
	text-align: right;
}
.jdvc-woo-item-price del {
	color: #aaa;
	font-weight: normal;
	font-size: 11px;
	margin-right: 5px;
}
.jdvc-woo-no-result {
	padding: 15px;
	text-align: center;
	color: #666;
	font-size: 14px;
}


/* ==========================================================================
   4. ACCESSIBILITÉ : MOINS D'ANIMATIONS SI LE VISITEUR LE DEMANDE
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.jdvc-banner-slider,
	.jdvc-marquee-track,
	.jdvc-rss-ticker-track,
	.jdvc-hotspot-dot::after,
	.jdvc-scroll-wheel,
	.jdvc-scroll-arrow,
	.jdvc-fab-anim-pulse:hover {
		animation: none !important;
		transition: none !important;
	}
	/* les bandeaux défilants restent lisibles : on autorise le défilement manuel */
	.jdvc-marquee-wrapper,
	.jdvc-rss-ticker-wrapper { overflow-x: auto; }
}


/* ==========================================================================
   5. NOUVEAUX WIDGETS — PACK CONVERSION
   ========================================================================== */

/* --- Horaires d'ouverture ------------------------------------------------- */
.jdvc-hours { box-sizing: border-box; }
.jdvc-hours-title {
	font-weight: 700;
	font-size: 1.1em;
	margin-bottom: 10px;
}
.jdvc-hours-status {
	--jdvc-hours-color: #15803d;
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 12px;
	font-weight: 600;
	line-height: 1.3;
}
.jdvc-hours-status[hidden] { display: none; }
.jdvc-hours-status.is-soon { --jdvc-hours-color: #c2410c; }
.jdvc-hours-status.is-closed { --jdvc-hours-color: #b91c1c; }
.jdvc-hours-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--jdvc-hours-color);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--jdvc-hours-color) 20%, transparent);
	flex-shrink: 0;
}
.jdvc-hours-label { color: var(--jdvc-hours-color); }
.jdvc-hours-next {
	font-weight: 400;
	opacity: .85;
}
.jdvc-hours-display-badge .jdvc-hours-status { margin: 0; }
.jdvc-hours .jdvc-hours-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	border: 0;
}
.jdvc-hours .jdvc-hours-table tr {
	border: 0;
	border-bottom: 1px solid #e5e7eb;
}
.jdvc-hours .jdvc-hours-table tr:last-child { border-bottom: 0; }
.jdvc-hours .jdvc-hours-table th,
.jdvc-hours .jdvc-hours-table td {
	padding: 8px 10px;
	border: 0;
	background: none;
	text-align: left;
	vertical-align: top;
	font-weight: 400;
}
.jdvc-hours .jdvc-hours-table td { text-align: right; }
.jdvc-hours .jdvc-hours-table tr.is-today th,
.jdvc-hours .jdvc-hours-table tr.is-today td { font-weight: 700; }
.jdvc-hours .jdvc-hours-table tr.is-today { background: #f3f4f6; }
.jdvc-hours .is-closed-day { opacity: .7; }
.jdvc-hours-exceptions {
	list-style: none;
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: 6px;
	background: #fff7ed;
	color: #9a3412;
	font-size: .9em;
}
.jdvc-hours-exceptions li { margin: 2px 0; }
.jdvc-hours-exceptions li[hidden] { display: none; }

/* --- Compte à rebours ----------------------------------------------------- */
.jdvc-cd { width: 100%; }
.jdvc-cd-units {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}
.jdvc-cd-units[hidden] { display: none; }
.jdvc-cd-unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 76px;
	padding: 14px 10px;
	border-radius: 10px;
	background: #111827;
	box-sizing: border-box;
}
.jdvc-cd-value {
	font-size: 2.2em;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	font-variant-numeric: tabular-nums;
}
.jdvc-cd-label {
	margin-top: 6px;
	font-size: .75em;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #d1d5db;
}
.jdvc-cd-layout-inline .jdvc-cd-units { gap: 4px 10px; }
.jdvc-cd-layout-inline .jdvc-cd-unit {
	flex-direction: row;
	align-items: baseline;
	gap: 4px;
	min-width: 0;
	padding: 0;
	background: none;
}
.jdvc-cd-layout-inline .jdvc-cd-value {
	font-size: 1.4em;
	color: inherit;
}
.jdvc-cd-layout-inline .jdvc-cd-label {
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
	font-size: .9em;
	color: inherit;
	opacity: .8;
}
.jdvc-cd-message {
	text-align: center;
	font-weight: 600;
}
.jdvc-cd-message[hidden] { display: none; }

/* --- Grille tarifaire ----------------------------------------------------- */
.jdvc-pricing-toggle {
	--jdvc-pricing-accent: #111827;
	display: flex;
	width: fit-content;
	margin: 0 auto 28px;
	padding: 4px;
	border-radius: 999px;
	background: #f3f4f6;
	gap: 4px;
}
.jdvc-pricing-toggle button,
.jdvc-pricing-toggle button:hover,
.jdvc-pricing-toggle button:focus {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #374151;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
	transition: background-color .2s, color .2s;
}
.jdvc-pricing-toggle button[aria-pressed="true"] {
	background: var(--jdvc-pricing-accent);
	color: #fff;
}
.jdvc-pricing-toggle button:focus-visible {
	outline: 2px solid var(--jdvc-pricing-accent);
	outline-offset: 2px;
}
.jdvc-pricing-note {
	padding: 2px 7px;
	border-radius: 999px;
	background: #dcfce7;
	color: #166534;
	font-size: .75em;
}
.jdvc-pricing-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}
@media (max-width: 1024px) { .jdvc-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .jdvc-pricing-grid { grid-template-columns: minmax(0, 1fr); } }
.jdvc-pricing-card {
	--jdvc-pricing-featured: #e67e22;
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 28px 24px;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	background: #fff;
	box-sizing: border-box;
}
.jdvc-pricing-card.is-featured {
	border: 2px solid var(--jdvc-pricing-featured);
	box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
}
.jdvc-pricing-badge {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--jdvc-pricing-featured);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
.jdvc-pricing-card .jdvc-pricing-title {
	margin: 0 0 4px;
	font-size: 1.25em;
}
.jdvc-pricing-subtitle {
	margin: 0 0 12px;
	opacity: .75;
	font-size: .95em;
}
.jdvc-pricing-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
	margin: 12px 0 18px;
}
.jdvc-pricing-amount {
	font-size: 2.2em;
	font-weight: 800;
	line-height: 1;
}
.jdvc-pricing-period { opacity: .7; }
.jdvc-pricing .jdvc-pricing-b,
.jdvc-pricing.show-b .jdvc-pricing-a { display: none; }
.jdvc-pricing.show-b .jdvc-pricing-b { display: flex; }
.jdvc-pricing-features {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	flex-grow: 1;
}
.jdvc-pricing-features li {
	position: relative;
	padding: 6px 0 6px 26px;
	line-height: 1.4;
}
.jdvc-pricing-features li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 6px;
	color: #16a34a;
	font-weight: 700;
}
.jdvc-pricing-features li.is-excluded {
	opacity: .5;
	text-decoration: line-through;
}
.jdvc-pricing-features li.is-excluded::before {
	content: '✕';
	color: inherit;
}
.jdvc-pricing-card .jdvc-pricing-btn {
	display: block;
	padding: 12px 18px;
	border-radius: 8px;
	background: #111827;
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-weight: 600;
	transition: opacity .2s, transform .2s;
}
.jdvc-pricing-card.is-featured .jdvc-pricing-btn { background: var(--jdvc-pricing-featured); }
.jdvc-pricing-card .jdvc-pricing-btn:hover {
	opacity: .9;
	transform: translateY(-1px);
}

/* --- Simulateur de devis -------------------------------------------------- */
.jdvc-quote {
	--jdvc-quote-accent: #e67e22;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 24px;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	background: #fff;
	margin: 0;
}
.jdvc-quote-fields {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.jdvc-quote-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.jdvc-quote .jdvc-quote-label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-weight: 600;
	margin: 0;
}
.jdvc-quote-value {
	font-weight: 700;
	color: var(--jdvc-quote-accent);
	white-space: nowrap;
}
.jdvc-quote input[type="range"] {
	width: 100%;
	accent-color: var(--jdvc-quote-accent);
	padding: 0;
	border: 0;
	background: none;
}
.jdvc-quote select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background-color: #fff;
}
.jdvc-quote .jdvc-quote-check {
	justify-content: flex-start;
	align-items: center;
	font-weight: 500;
	cursor: pointer;
}
.jdvc-quote .jdvc-quote-check input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--jdvc-quote-accent);
}
.jdvc-quote-help {
	opacity: .7;
	font-size: .85em;
}
.jdvc-quote-result {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 18px;
	border-radius: 10px;
	background: color-mix(in srgb, var(--jdvc-quote-accent) 8%, transparent);
	text-align: center;
}
.jdvc-quote-result-label {
	font-size: .85em;
	text-transform: uppercase;
	letter-spacing: .06em;
	opacity: .75;
}
.jdvc-quote-total {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.jdvc-quote-prefix { opacity: .8; }
.jdvc-quote-amount {
	font-size: 2.2em;
	font-weight: 800;
	line-height: 1.1;
	color: var(--jdvc-quote-accent);
	font-variant-numeric: tabular-nums;
}
.jdvc-quote-tax {
	font-size: .85em;
	opacity: .7;
}
.jdvc-quote .jdvc-quote-btn {
	display: block;
	padding: 13px 20px;
	border-radius: 8px;
	background: var(--jdvc-quote-accent);
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-weight: 700;
	transition: opacity .2s;
}
.jdvc-quote .jdvc-quote-btn:hover { opacity: .9; }
.jdvc-quote-disclaimer {
	margin: 0;
	font-size: .8em;
	opacity: .65;
	text-align: center;
}


/* ==========================================================================
   6. NOUVEAUX WIDGETS — PACK DESIGN
   ========================================================================== */

/* --- Titre animé ---------------------------------------------------------- */
.jdvc-ah { margin: 0; }
.jdvc-ah-wrap {
	position: relative;
	display: inline-block;
	white-space: nowrap;
}
.jdvc-ah-dynamic {
	display: inline-block;
	color: #e67e22;
}
.jdvc-ah-fade .jdvc-ah-dynamic,
.jdvc-ah-slide .jdvc-ah-dynamic { transition: opacity .35s ease, transform .35s ease; }
.jdvc-ah-fade .jdvc-ah-dynamic.is-out { opacity: 0; transform: translateY(-.35em); }
.jdvc-ah-fade .jdvc-ah-dynamic.is-in { opacity: 0; transform: translateY(.35em); transition: none; }
.jdvc-ah-slide .jdvc-ah-wrap { perspective: 300px; }
.jdvc-ah-slide .jdvc-ah-dynamic { transform-origin: 50% 100%; }
.jdvc-ah-slide .jdvc-ah-dynamic.is-out { opacity: 0; transform: rotateX(90deg); }
.jdvc-ah-slide .jdvc-ah-dynamic.is-in { opacity: 0; transform: rotateX(-90deg); transition: none; }
.jdvc-ah-typing .jdvc-ah-dynamic::after {
	content: '';
	display: inline-block;
	width: 2px;
	height: .9em;
	margin-left: 3px;
	vertical-align: -.08em;
	background-color: currentColor;
	animation: jdvc-ah-caret 1s steps(1) infinite;
}
@keyframes jdvc-ah-caret { 50% { opacity: 0; } }
.jdvc-ah-shape {
	position: absolute;
	left: -4%;
	width: 108%;
	height: 100%;
	top: 0;
	overflow: visible;
	pointer-events: none;
	color: #e67e22;
	z-index: -1;
}
.jdvc-ah-highlight .jdvc-ah-wrap { z-index: 0; }
.jdvc-ah-shape path {
	fill: none;
	stroke: currentColor;
	stroke-width: 8;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 1.1s cubic-bezier(.65, 0, .35, 1);
}
.jdvc-ah-shape-marker .jdvc-ah-shape path { stroke-width: 22; opacity: .35; }
.jdvc-ah-shape-underline .jdvc-ah-shape,
.jdvc-ah-shape-wave .jdvc-ah-shape { top: 12%; }
.jdvc-ah-shape-circle .jdvc-ah-shape {
	left: -10%;
	width: 120%;
	top: -15%;
	height: 130%;
}
.jdvc-ah.is-drawn .jdvc-ah-shape path { stroke-dashoffset: 0; }

/* --- Cartes empilées ------------------------------------------------------ */
.jdvc-stack {
	--jdvc-stack-top: 100px;
	--jdvc-stack-step: 20px;
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-bottom: 20px;
}
.jdvc-stack-card {
	position: sticky;
	top: calc(var(--jdvc-stack-top) + var(--i, 0) * var(--jdvc-stack-step));
	display: flex;
	align-items: center;
	gap: 32px;
	min-height: 320px;
	padding: 40px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 -6px 30px rgba(0, 0, 0, .06);
	box-sizing: border-box;
	transform-origin: 50% 0;
	will-change: transform;
	overflow: hidden;
}
.jdvc-stack-body {
	flex: 1 1 0;
	min-width: 0;
}
.jdvc-stack-kicker {
	display: inline-block;
	margin-bottom: 8px;
	font-size: .8em;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .7;
}
.jdvc-stack-card .jdvc-stack-title {
	margin: 0 0 12px;
	color: inherit;
}
.jdvc-stack-text > :last-child { margin-bottom: 0; }
.jdvc-stack-card .jdvc-stack-link {
	display: inline-block;
	margin-top: 16px;
	font-weight: 600;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.jdvc-stack-media {
	flex: 0 0 42%;
	align-self: stretch;
	min-height: 200px;
	border-radius: 16px;
	overflow: hidden;
}
.jdvc-stack-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.jdvc-stack-img-left .jdvc-stack-card { flex-direction: row-reverse; }
.jdvc-stack-img-top .jdvc-stack-card {
	flex-direction: column-reverse;
	align-items: stretch;
}
@media (max-width: 767px) {
	.jdvc-stack-card {
		flex-direction: column-reverse !important;
		align-items: stretch;
		padding: 24px;
		gap: 20px;
	}
	.jdvc-stack-media { flex-basis: auto; height: 200px; }
	.jdvc-stack-mobile-flat-yes .jdvc-stack-card {
		position: relative;
		top: auto;
		transform: none !important;
		filter: none !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	.jdvc-stack-card { transform: none !important; filter: none !important; }
}

/* --- Texte révélé au scroll ----------------------------------------------- */
.jdvc-reveal {
	--jdvc-reveal-on: #111827;
	--jdvc-reveal-off: #d1d5db;
	--jdvc-reveal-accent: #e67e22;
	margin: 0;
	font-size: 2em;
	font-weight: 700;
	line-height: 1.3;
}
.jdvc-reveal-word {
	color: var(--jdvc-reveal-on);
	transition: color .25s ease;
}
.jdvc-reveal-word.is-accent { color: var(--jdvc-reveal-accent); }
.jdvc-reveal.is-armed .jdvc-reveal-word { color: var(--jdvc-reveal-off); }
.jdvc-reveal.is-armed .jdvc-reveal-word.is-on { color: var(--jdvc-reveal-on); }
.jdvc-reveal.is-armed .jdvc-reveal-word.is-accent.is-on { color: var(--jdvc-reveal-accent); }

/* --- Grille bento --------------------------------------------------------- */
.jdvc-bgrid {
	--jdvc-bgrid-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--jdvc-bgrid-cols), minmax(0, 1fr));
	grid-auto-rows: minmax(200px, auto);
	grid-auto-flow: dense;
	gap: 16px;
}
.jdvc-bgrid-tile {
	--jdvc-bgrid-overlay: .45;
	position: relative;
	display: flex;
	padding: 24px;
	border-radius: 20px;
	background-color: #f3f4f6;
	background-size: cover;
	background-position: center;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	box-sizing: border-box;
	isolation: isolate;
}
.jdvc-bgrid-2x1 { grid-column: span 2; }
.jdvc-bgrid-1x2 { grid-row: span 2; }
.jdvc-bgrid-2x2 { grid-column: span 2; grid-row: span 2; }
.jdvc-bgrid-tile.has-image { color: #fff; }
.jdvc-bgrid-tile.has-image::before {
	content: '';
	position: absolute;
	inset: 0;
	background: #000;
	opacity: var(--jdvc-bgrid-overlay);
	z-index: -1;
}
.jdvc-bgrid-v-start { align-items: flex-start; }
.jdvc-bgrid-v-center { align-items: center; }
.jdvc-bgrid-v-end { align-items: flex-end; }
.jdvc-bgrid-inner {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
}
.jdvc-bgrid-icon {
	font-size: 28px;
	line-height: 1;
	margin-bottom: 6px;
}
.jdvc-bgrid-icon svg { width: 1em; height: 1em; fill: currentColor; }
.jdvc-bgrid-kicker {
	font-size: 2em;
	font-weight: 800;
	line-height: 1;
}
.jdvc-bgrid-tile .jdvc-bgrid-title {
	margin: 0;
	font-size: 1.15em;
	line-height: 1.25;
	color: inherit;
}
.jdvc-bgrid-tile .jdvc-bgrid-text {
	margin: 0;
	opacity: .85;
	font-size: .95em;
}
a.jdvc-bgrid-tile { transition: transform .25s ease, box-shadow .25s ease; }
a.jdvc-bgrid-tile:hover,
a.jdvc-bgrid-tile:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, .1);
	color: inherit;
}
a.jdvc-bgrid-tile.has-image:hover { color: #fff; }
@media (max-width: 1024px) {
	.jdvc-bgrid-2x2 { grid-row: span 1; }
}
@media (max-width: 767px) {
	.jdvc-bgrid-tile { grid-column: auto / span 1 !important; grid-row: auto / span 1 !important; }
}


/* ==========================================================================
   7. NOUVEAUX WIDGETS — PACK CONTENU
   ========================================================================== */

/* --- Vidéo allégée -------------------------------------------------------- */
.jdvc-lv {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 12px;
	background: #000;
}
.jdvc-lv-cover,
.jdvc-lv .jdvc-lv-frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.jdvc-lv-cover {
	object-fit: cover;
	transition: transform .4s ease, opacity .3s ease;
}
.jdvc-lv:hover .jdvc-lv-cover { transform: scale(1.03); }
.jdvc-lv-title {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	padding: 16px 20px 40px;
	background: linear-gradient(rgba(0, 0, 0, .65), transparent);
	color: #fff;
	font-weight: 600;
	z-index: 1;
}
.jdvc-lv .jdvc-lv-play,
.jdvc-lv .jdvc-lv-play:hover,
.jdvc-lv .jdvc-lv-play:focus {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px;
	height: 50px;
	padding: 0;
	border: 0;
	border-radius: 14px;
	background-color: #ff0033;
	color: #fff;
	cursor: pointer;
	z-index: 2;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .3);
	transition: filter .2s ease, transform .2s ease;
}
.jdvc-lv .jdvc-lv-play:hover { filter: brightness(1.1); transform: translate(-50%, -50%) scale(1.06); }
.jdvc-lv .jdvc-lv-play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.jdvc-lv-play svg {
	width: 60%;
	height: 60%;
	display: block;
	margin: auto;
}
.jdvc-lv.is-playing .jdvc-lv-cover,
.jdvc-lv.is-playing .jdvc-lv-play,
.jdvc-lv.is-playing .jdvc-lv-title { display: none; }
.jdvc-lv-noscript {
	position: absolute;
	bottom: 10px;
	left: 10px;
	color: #fff;
	z-index: 3;
}

/* --- Plan d'accès OpenStreetMap ------------------------------------------- */
.jdvc-map {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.jdvc-map-layout-side .jdvc-map { flex-direction: row; align-items: stretch; }
.jdvc-map-layout-side .jdvc-map-frame { flex: 1 1 62%; }
.jdvc-map-layout-side .jdvc-map-info { flex: 1 1 38%; }
@media (max-width: 767px) {
	.jdvc-map-layout-side .jdvc-map { flex-direction: column; }
}
.jdvc-map-frame {
	position: relative;
	width: 100%;
	height: 380px;
	overflow: hidden;
	border-radius: 12px;
	background: #e5e7eb;
}
.jdvc-map-frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.jdvc-map-gray-yes .jdvc-map-frame iframe { filter: grayscale(1) contrast(1.05); }
.jdvc-map-frame .jdvc-map-load,
.jdvc-map-frame .jdvc-map-load:hover,
.jdvc-map-frame .jdvc-map-load:focus {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: repeating-linear-gradient(45deg, #e5e7eb 0 12px, #eef0f3 12px 24px);
	color: #111827;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: none;
}
.jdvc-map-load-icon { font-size: 32px; }
.jdvc-map-load small {
	font-weight: 400;
	font-size: 12px;
	opacity: .7;
}
.jdvc-map-info > * { margin: 0 0 10px; }
.jdvc-map-name {
	font-weight: 700;
	font-size: 1.15em;
}
.jdvc-map-address { font-style: normal; }
.jdvc-map-access {
	font-size: .92em;
	opacity: .85;
}
.jdvc-map-routes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}
.jdvc-map-routes .jdvc-map-route {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: opacity .2s;
}
.jdvc-map-routes .jdvc-map-route:hover { opacity: .75; }

/* --- Carte / Menu --------------------------------------------------------- */
.jdvc-menu {
	--jdvc-menu-accent: #b45309;
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.jdvc-menu-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	position: sticky;
	top: 0;
	z-index: 5;
	padding: 8px 0;
	background: inherit;
}
.jdvc-menu-nav a {
	padding: 6px 14px;
	border: 1px solid var(--jdvc-menu-accent);
	border-radius: 999px;
	color: var(--jdvc-menu-accent);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.jdvc-menu-nav a:hover { background: var(--jdvc-menu-accent); color: #fff; }
.jdvc-menu-cat { scroll-margin-top: 70px; }
.jdvc-menu .jdvc-menu-cat-title {
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--jdvc-menu-accent);
	color: var(--jdvc-menu-accent);
}
.jdvc-menu .jdvc-menu-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 40px;
	row-gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.jdvc-menu-item {
	display: flex;
	gap: 14px;
	margin: 0;
}
.jdvc-menu-item.is-featured {
	padding: 12px;
	border-radius: 10px;
	background: color-mix(in srgb, var(--jdvc-menu-accent) 8%, transparent);
}
.jdvc-menu-img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 8px;
	flex-shrink: 0;
}
.jdvc-menu-body {
	flex: 1 1 auto;
	min-width: 0;
}
.jdvc-menu-line {
	display: flex;
	align-items: baseline;
	gap: 8px;
}
.jdvc-menu-name { font-weight: 700; }
.jdvc-menu-leader {
	flex: 1 1 auto;
	min-width: 20px;
	border-bottom: 2px dotted currentColor;
	opacity: .35;
	transform: translateY(-4px);
}
.jdvc-menu:not(.has-leader) .jdvc-menu-price { margin-left: auto; }
.jdvc-menu-price {
	font-weight: 700;
	white-space: nowrap;
	color: var(--jdvc-menu-accent);
}
.jdvc-menu-price small {
	font-weight: 400;
	opacity: .75;
}
.jdvc-menu-desc {
	margin: 4px 0 0;
	font-size: .92em;
	opacity: .8;
}
.jdvc-menu-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
}
.jdvc-menu-badge {
	padding: 2px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--jdvc-menu-accent) 14%, transparent);
	color: var(--jdvc-menu-accent);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.jdvc-menu-allergens {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
}
.jdvc-menu-allergen {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 4px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	opacity: .7;
	cursor: help;
	box-sizing: border-box;
}
.jdvc-menu-legend {
	padding-top: 16px;
	border-top: 1px solid rgba(0, 0, 0, .1);
	font-size: .85em;
}
.jdvc-menu-legend ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
}
.jdvc-menu-legend li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jdvc-menu-legend p {
	margin: 0;
	opacity: .75;
}

/* --- Équipe / Praticiens -------------------------------------------------- */
.jdvc-team {
	--jdvc-team-accent: #0f766e;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 1024px) { .jdvc-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .jdvc-team { grid-template-columns: minmax(0, 1fr); } }
.jdvc-team-card {
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #fff;
	box-sizing: border-box;
	overflow: hidden;
}
.jdvc-team-align-center .jdvc-team-card { text-align: center; align-items: center; }
.jdvc-team-photo {
	width: 120px;
	height: 120px;
	margin-bottom: 16px;
	overflow: hidden;
	border-radius: 16px;
	flex-shrink: 0;
}
.jdvc-team-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.jdvc-team-photo-circle .jdvc-team-photo { border-radius: 50%; }
.jdvc-team-photo-square .jdvc-team-photo { border-radius: 0; }
.jdvc-team-photo-cover .jdvc-team-photo {
	width: calc(100% + 48px);
	height: auto;
	aspect-ratio: 4 / 3;
	margin: -24px -24px 16px;
	border-radius: 0;
}
.jdvc-team-body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	width: 100%;
}
.jdvc-team-align-center .jdvc-team-body { align-items: center; }
.jdvc-team-card .jdvc-team-name {
	margin: 0;
	font-size: 1.2em;
}
.jdvc-team-role {
	margin: 4px 0 0;
	color: var(--jdvc-team-accent);
	font-weight: 600;
}
.jdvc-team .jdvc-team-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}
.jdvc-team-align-center .jdvc-team-tags { justify-content: center; }
.jdvc-team-tags li {
	margin: 0;
	padding: 3px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--jdvc-team-accent) 12%, transparent);
	color: var(--jdvc-team-accent);
	font-size: 12px;
	font-weight: 600;
}
.jdvc-team-more {
	margin-top: 14px;
	width: 100%;
	text-align: left;
}
.jdvc-team-more > summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--jdvc-team-accent);
	list-style: none;
	text-align: inherit;
}
.jdvc-team-align-center .jdvc-team-more > summary { text-align: center; }
.jdvc-team-more > summary::-webkit-details-marker { display: none; }
.jdvc-team-more > summary::after { content: ' +'; }
.jdvc-team-more[open] > summary::after { content: ' −'; }
.jdvc-team-bio {
	margin-top: 10px;
	font-size: .95em;
	text-align: left;
}
.jdvc-team-bio p:last-child { margin-bottom: 0; }
.jdvc-team-contacts {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 14px;
	font-size: .92em;
}
.jdvc-team-contacts a {
	color: inherit;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.jdvc-team-contacts a:hover { text-decoration: underline; }
.jdvc-team-card .jdvc-team-btn {
	display: inline-block;
	margin-top: auto;
	padding: 10px 18px;
	border-radius: 8px;
	background: var(--jdvc-team-accent);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transition: opacity .2s;
}
.jdvc-team-body > .jdvc-team-btn { margin-top: 18px; }
.jdvc-team-card .jdvc-team-btn:hover { opacity: .9; color: #fff; }

/* --- Barre de progression de lecture -------------------------------------- */
.jdvc-progress {
	--jdvc-progress-offset: 0px;
	position: fixed;
	left: 0;
	width: 100%;
	height: 4px;
	z-index: 99999;
	background: rgba(0, 0, 0, .06);
	transition: opacity .3s ease;
	pointer-events: none;
}
.jdvc-progress-top { top: var(--jdvc-progress-offset); }
body.admin-bar .jdvc-progress-top { top: calc(var(--jdvc-progress-offset) + 32px); }
@media (max-width: 782px) { body.admin-bar .jdvc-progress-top { top: calc(var(--jdvc-progress-offset) + 46px); } }
.jdvc-progress-bottom { bottom: 0; }
.jdvc-progress.is-hidden { opacity: 0; }
.jdvc-progress-bar {
	width: 100%;
	height: 100%;
	background: #e67e22;
	transform: scaleX(0);
	transform-origin: 0 50%;
	will-change: transform;
}
.jdvc-progress.is-preview {
	position: relative;
	top: auto;
	bottom: auto;
	margin-top: 8px;
}
.jdvc-progress.is-preview .jdvc-progress-bar { transform: scaleX(.4); }


/* ==========================================================================
   8. NATIFS ENRICHIS
   ========================================================================== */

/* --- Conteneur cliquable -------------------------------------------------- */
.jdvc-block-link { cursor: pointer; }
.jdvc-block-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}
.jdvc-link-hover-lift.jdvc-block-link { transition: transform .25s ease, box-shadow .25s ease; }
.jdvc-link-hover-lift.jdvc-block-link:hover { transform: translateY(-4px); }
.jdvc-link-hover-shadow.jdvc-block-link { transition: box-shadow .25s ease; }
.jdvc-link-hover-shadow.jdvc-block-link:hover { box-shadow: 0 14px 34px rgba(0, 0, 0, .12); }
.jdvc-link-hover-dim.jdvc-block-link { transition: opacity .25s ease; }
.jdvc-link-hover-dim.jdvc-block-link:hover { opacity: .85; }

/* --- Visibilité programmée ------------------------------------------------ */
/* mode « Navigateur » : masqué jusqu'à la vérification, puis affiché seulement dans la période */
[data-jdvc-sched]:not(.jdvc-sched-on) { display: none !important; }
.elementor-editor-active .jdvc-sched-yes {
	outline: 1px dashed #f59e0b;
	outline-offset: -1px;
}

/* --- Titre natif : effets de texte ---------------------------------------- */
.jdvc-hfx-gradient .elementor-heading-title {
	--jdvc-hfx-a: #e67e22;
	--jdvc-hfx-b: #8e44ad;
	--jdvc-hfx-angle: 90deg;
	background-image: linear-gradient(var(--jdvc-hfx-angle), var(--jdvc-hfx-a), var(--jdvc-hfx-b));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.jdvc-hfx-gradient .elementor-heading-title a { -webkit-text-fill-color: transparent; color: transparent; }
.jdvc-hfx-anim-yes.jdvc-hfx-gradient .elementor-heading-title {
	background-image: linear-gradient(var(--jdvc-hfx-angle), var(--jdvc-hfx-a), var(--jdvc-hfx-b), var(--jdvc-hfx-a));
	background-size: 300% 100%;
	animation: jdvc-hfx-shift 8s ease-in-out infinite alternate;
}
@keyframes jdvc-hfx-shift {
	from { background-position: 0% 50%; }
	to { background-position: 100% 50%; }
}
.jdvc-hfx-highlight .elementor-heading-title {
	--jdvc-hfx-mark: rgba(230, 126, 34, .35);
	--jdvc-hfx-mark-h: 40%;
	display: inline;
	background-image: linear-gradient(var(--jdvc-hfx-mark), var(--jdvc-hfx-mark));
	background-repeat: no-repeat;
	background-position: 0 88%;
	background-size: 100% var(--jdvc-hfx-mark-h);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: 0 .08em;
	transition: background-size .9s cubic-bezier(.65, 0, .35, 1);
}
.jdvc-hfx-draw-yes.jdvc-hfx-highlight .elementor-heading-title { background-size: 0% var(--jdvc-hfx-mark-h); }
.jdvc-hfx-draw-yes.jdvc-hfx-highlight.jdvc-hfx-in .elementor-heading-title,
.elementor-editor-active .jdvc-hfx-draw-yes.jdvc-hfx-highlight .elementor-heading-title { background-size: 100% var(--jdvc-hfx-mark-h); }
.jdvc-hfx-outline .elementor-heading-title {
	--jdvc-hfx-stroke: #111827;
	--jdvc-hfx-stroke-w: 1.5px;
}
.jdvc-hfx-outline .elementor-heading-title,
.jdvc-hfx-outline .elementor-heading-title a {
	-webkit-text-stroke: var(--jdvc-hfx-stroke-w) var(--jdvc-hfx-stroke);
	-webkit-text-fill-color: transparent;
	color: transparent;
}
@media (prefers-reduced-motion: reduce) {
	.jdvc-hfx-anim-yes.jdvc-hfx-gradient .elementor-heading-title { animation: none; }
	.jdvc-hfx-highlight .elementor-heading-title { transition: none; background-size: 100% var(--jdvc-hfx-mark-h) !important; }
	.jdvc-link-hover-lift.jdvc-block-link:hover { transform: none; }
}
