/*! vandeto-seek 1.2.1 — peau « Apple »
 * Minimaliste, épuré, luxueux. Un accent unique : #ff1700 (point live,
 * anneau d'expiration, bouton « Je l'ai »). Tout le reste est monochrome.
 * Blindage : tout est préfixé .vsk-scope, !important sur les propriétés
 * critiques pour résister au CSS du thème. Container queries (pas de
 * media queries) : le composant s'adapte à SON conteneur.
 */

.vsk-scope {
	--vsk-bg: #f5f5f7;
	--vsk-card: #ffffff;
	--vsk-ink: #1d1d1f;
	--vsk-ink-2: #48484c;
	--vsk-mute: #86868b;
	--vsk-mute-2: #aeaeb2;
	--vsk-hair: rgba(0, 0, 0, .065);
	--vsk-hair-2: rgba(0, 0, 0, .11);
	--vsk-fill-g: #e9e9eb;
	--vsk-accent: #ff1700;
	--vsk-ff: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", system-ui, sans-serif;
	--vsk-r: 20px;
	--vsk-ease: cubic-bezier(.22, 1, .36, 1);
	--vsk-sh: 0 1px 2px rgba(0, 0, 0, .04), 0 10px 30px rgba(0, 0, 0, .055);
	--vsk-sh-f: 0 2px 6px rgba(0, 0, 0, .05), 0 18px 44px rgba(0, 0, 0, .09);

	font-family: var(--vsk-ff);
	color: var(--vsk-ink);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	line-height: 1.47;
	box-sizing: border-box !important;
}
.vsk-scope *, .vsk-scope *::before, .vsk-scope *::after {
	box-sizing: border-box !important;
	font-family: inherit;
}
.vsk-scope p, .vsk-scope h2, .vsk-scope h3 { margin: 0 !important; padding: 0 !important; }
.vsk-scope button, .vsk-scope a {
	font: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	text-decoration: none !important;
	transition: transform .18s var(--vsk-ease), background-color .2s var(--vsk-ease),
		opacity .2s var(--vsk-ease), border-color .2s var(--vsk-ease), color .2s var(--vsk-ease);
}
.vsk-scope button { background: none; border: 0; color: inherit; padding: 0; margin: 0; }

/* ── Focus propre : un seul état, jamais de double cadre ── */
.vsk-scope :focus { outline: none !important; box-shadow: none; }
.vsk-scope :focus-visible {
	outline: 2px solid var(--vsk-ink) !important;
	outline-offset: 2px !important;
}
.vsk-scope input.vsk-field:focus,
.vsk-scope input.vsk-field:focus-visible {
	outline: none !important;
	box-shadow: none !important;
	border-color: var(--vsk-ink) !important;
}

/* ═══ Conteneur ═══ */
.vsk-app {
	container-type: inline-size;
	background: var(--vsk-bg) !important;
	border-radius: 28px !important;
	padding: 24px 20px 24px !important;
	max-width: 1120px;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ═══ En-tête ═══ */
.vsk-head { margin: 0 0 20px !important; }
.vsk-head-row {
	display: flex !important;
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 16px !important;
}
.vsk-live {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	color: var(--vsk-mute) !important;
	margin: 0 0 8px !important;
}
.vsk-live i {
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--vsk-accent) !important;
	flex: none;
	font-style: normal;
}
.vsk-title {
	font-size: 27px !important;
	line-height: 1.12 !important;
	font-weight: 700 !important;
	letter-spacing: -.022em !important;
	color: var(--vsk-ink) !important;
	text-transform: none !important;
}
.vsk-title b { color: var(--vsk-accent) !important; font-weight: 700 !important; }
.vsk-count { flex: none !important; text-align: right !important; padding-top: 21px !important; }
.vsk-count b {
	display: block !important;
	font-size: 21px !important;
	font-weight: 600 !important;
	letter-spacing: -.02em !important;
	line-height: 1 !important;
	color: var(--vsk-ink) !important;
	font-variant-numeric: tabular-nums;
}
.vsk-count span {
	display: block !important;
	font-size: 11px !important;
	color: var(--vsk-mute) !important;
	margin-top: 4px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.vsk-sentline {
	display: block !important;
	font-size: 10.5px !important;
	font-style: normal !important;
	color: var(--vsk-mute-2) !important;
	margin-top: 3px !important;
}
.vsk-sentline[hidden] { display: none !important; }

/* ═══ Filtres ═══ */
.vsk-filters {
	position: relative;
	display: flex !important;
	gap: 8px !important;
	margin: 16px -20px 0 !important;
	padding: 2px 20px !important;
	overflow-x: auto !important;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.vsk-filters::-webkit-scrollbar { display: none; }
.vsk-pill { display: none !important; }
.vsk-chip {
	flex: none !important;
	padding: 8px 15px !important;
	border-radius: 99px !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink-2) !important;
	white-space: nowrap !important;
	letter-spacing: -.006em !important;
	line-height: 1.2 !important;
}
.vsk-chip[aria-pressed="true"] {
	background: var(--vsk-ink) !important;
	border-color: var(--vsk-ink) !important;
	color: #fff !important;
	font-weight: 600 !important;
}

/* ═══ Scène + deck ═══ */
.vsk-stage { position: relative; margin-top: 20px !important; }
.vsk-deck {
	position: relative !important;
	height: 416px;
	max-width: 400px;
	margin: 0 auto !important;
}
.vsk-deck[hidden] { display: none !important; height: 0 !important; }
.vsk-app[data-mode="grid"] .vsk-deck { height: auto; }
.vsk-app[data-mode="grid"] .vsk-actions { display: none !important; }
.vsk-card {
	position: absolute !important;
	inset: 0 !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: var(--vsk-r) !important;
	box-shadow: var(--vsk-sh-f) !important;
	padding: 22px 22px 20px !important;
	display: flex !important;
	flex-direction: column !important;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
	will-change: transform;
}
.vsk-card[data-i="1"] {
	transform: translateY(10px) scale(.965);
	box-shadow: var(--vsk-sh) !important;
	opacity: .7;
	pointer-events: none;
}
.vsk-card[data-i="0"] { z-index: 2; }
.vsk-card.vsk-dragging { transition: none !important; cursor: grabbing; }
.vsk-card.vsk-settle { transition: transform .42s var(--vsk-ease) !important; }
.vsk-card.vsk-fly {
	transition: transform .38s cubic-bezier(.3, .7, .4, 1), opacity .38s !important;
	opacity: 0;
	pointer-events: none;
}
.vsk-card.vsk-enter { animation: vskIn .5s var(--vsk-ease) both; }
@keyframes vskIn {
	from { opacity: 0; transform: translateY(14px) scale(.985); }
	to { opacity: 1; transform: none; }
}

/* ── Intérieur de carte ── */
.vsk-c-top {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
}
.vsk-c-time {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--vsk-ink) !important;
	letter-spacing: -.004em !important;
	text-transform: none !important;
	display: inline-flex !important;
	align-items: center !important;
	min-width: 0;
}
.vsk-c-time i { display: none !important; }
.vsk-c-time.vsk-calm { color: var(--vsk-mute) !important; font-weight: 500 !important; }

.vsk-ring { position: relative !important; width: 40px; height: 40px; flex: none !important; }
.vsk-ring svg { transform: rotate(-90deg); display: block !important; }
.vsk-ring circle { fill: none !important; stroke-width: 2 !important; }
.vsk-ring .vsk-t { stroke: var(--vsk-fill-g) !important; }
.vsk-ring .vsk-b {
	stroke: var(--vsk-accent) !important;
	stroke-linecap: round;
	stroke-dasharray: 107;
	transition: stroke-dashoffset .6s var(--vsk-ease);
}
.vsk-ring b {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	color: var(--vsk-ink) !important;
	letter-spacing: -.01em !important;
	font-variant-numeric: tabular-nums;
}

.vsk-c-body {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	padding: 14px 0 !important;
	min-height: 0;
}
/* Localisation GPS précise : une ligne, pointillés si trop long. */
.vsk-c-loc {
	font-size: 12px !important;
	font-weight: 500 !important;
	color: var(--vsk-mute) !important;
	margin: 0 0 8px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-width: 100%;
	min-width: 0;
}
.vsk-card h3, .vsk-g-card h3 {
	font-size: 23px !important;
	line-height: 1.17 !important;
	font-weight: 600 !important;
	letter-spacing: -.022em !important;
	color: var(--vsk-ink) !important;
	margin: 0 0 13px !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden !important;
	text-transform: none !important;
}
.vsk-c-resp { display: flex !important; align-items: center !important; gap: 8px !important; }
.vsk-avs { display: flex !important; flex: none !important; }
.vsk-avs i {
	width: 22px; height: 22px;
	border-radius: 50% !important;
	background: var(--vsk-fill-g) !important;
	color: var(--vsk-ink-2) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-style: normal !important;
	font-size: 9px !important;
	font-weight: 600 !important;
	border: 1.5px solid var(--vsk-card) !important;
	margin-left: -6px !important;
}
.vsk-avs i:first-child { margin-left: 0 !important; }
.vsk-c-resp > span { font-size: 12.5px !important; color: var(--vsk-mute) !important; }

.vsk-c-deal {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	padding: 15px 0 14px !important;
	border-top: 1px solid var(--vsk-hair) !important;
}
.vsk-c-deal strong {
	font-size: 26px !important;
	font-weight: 600 !important;
	letter-spacing: -.025em !important;
	line-height: 1 !important;
	color: var(--vsk-ink) !important;
	font-variant-numeric: tabular-nums;
}
.vsk-c-deal span {
	font-size: 11px !important;
	font-weight: 500 !important;
	color: var(--vsk-mute) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* ── Bande vues / échange / négociable : hairlines, zéro fond ── */
.vsk-c-band {
	display: flex !important;
	border-top: 1px solid var(--vsk-hair) !important;
	padding-top: 13px !important;
	background: none !important;
	border-radius: 0 !important;
}
.vsk-c-band > div {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 3px !important;
	min-width: 0;
}
.vsk-c-band > div + div {
	border-left: 1px solid var(--vsk-hair) !important;
	padding-left: 14px !important;
}
.vsk-c-band b {
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
	color: var(--vsk-ink) !important;
	font-variant-numeric: tabular-nums;
}
.vsk-c-band b.vsk-off { color: var(--vsk-mute-2) !important; font-weight: 500 !important; }
.vsk-c-band span {
	font-size: 10.5px !important;
	color: var(--vsk-mute) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* ── Tampons de swipe : pastilles discrètes ── */
.vsk-stamp {
	position: absolute !important;
	top: 18px !important;
	padding: 5px 12px !important;
	border-radius: 99px !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	box-shadow: var(--vsk-sh) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	opacity: 0;
	pointer-events: none !important;
	transform: none !important;
}
.vsk-stamp-yes { right: 18px !important; color: var(--vsk-accent) !important; }
.vsk-stamp-no { left: 18px !important; color: var(--vsk-mute) !important; }

/* ═══ Barre d'actions : espacements nets, rien ne se colle ═══ */
.vsk-actions {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin: 18px auto 0 !important;
	max-width: 400px;
}
.vsk-actions[data-off="1"] { display: none !important; }
.vsk-a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 99px !important;
	line-height: 1 !important;
}
.vsk-a:active { transform: scale(.96); }
.vsk-a-no {
	flex: none !important;
	width: 50px !important;
	height: 50px !important;
	border-radius: 50% !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	color: var(--vsk-mute) !important;
	box-shadow: var(--vsk-sh) !important;
}
.vsk-a-yes {
	flex: 1 !important;
	height: 50px !important;
	background: var(--vsk-accent) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
	gap: 7px !important;
	border: 0 !important;
}

/* ═══ CTA « Lancer une demande » ═══ */
.vsk-cta {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	max-width: 400px;
	margin: 12px auto 0 !important;
	height: 50px !important;
	border-radius: 99px !important;
	background: var(--vsk-ink) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
	border: 0 !important;
	text-transform: none !important;
}
.vsk-cta:hover { background: #000 !important; color: #fff !important; }
.vsk-cta:active { transform: scale(.985); }
.vsk-cta:disabled { opacity: .35 !important; cursor: default; transform: none !important; }
.vsk-cta em { font-style: normal !important; font-weight: 500 !important; }

/* ═══ Grille ═══
 * Colonnes pilotées par les réglages, sans palier fragile :
 * - par défaut (mobile) : --vsk-cols-m
 * - à partir de 768px de viewport : --vsk-cols (desktop)
 * Media query sur le viewport = se déclenche toujours, contrairement
 * aux container queries qui dépendent de la largeur du conteneur Elementor. */
.vsk-grid {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 14px !important;
	align-items: start !important;
}
@media (min-width: 768px) {
	.vsk-grid {
		grid-template-columns: repeat(var(--vsk-cols, 3), minmax(0, 1fr)) !important;
		gap: 16px !important;
	}
}
.vsk-grid[hidden] { display: none !important; }
.vsk-g-card {
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: var(--vsk-r) !important;
	box-shadow: var(--vsk-sh) !important;
	padding: 17px 17px 15px !important;
	display: flex !important;
	flex-direction: column !important;
	animation: vskIn .5s var(--vsk-ease) both;
	transition: box-shadow .25s var(--vsk-ease), transform .25s var(--vsk-ease);
}
@media (hover: hover) {
	.vsk-g-card:hover { transform: translateY(-2px); box-shadow: var(--vsk-sh-f) !important; }
}
.vsk-g-card .vsk-ring, .vsk-g-card .vsk-ring svg { width: 34px !important; height: 34px !important; }
.vsk-g-card .vsk-c-body { padding: 11px 0 !important; flex: none !important; }
.vsk-g-card h3 { font-size: 16.5px !important; -webkit-line-clamp: 2; margin-bottom: 10px !important; }
.vsk-g-card .vsk-c-deal { padding: 12px 0 11px !important; }
.vsk-g-card .vsk-c-deal strong { font-size: 20px !important; }
.vsk-g-card .vsk-c-band { padding-top: 11px !important; margin-bottom: 13px !important; }
.vsk-g-act { display: flex !important; gap: 8px !important; }
.vsk-g-yes {
	flex: 1 !important;
	height: 38px !important;
	border-radius: 99px !important;
	background: var(--vsk-ink) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 0 !important;
}
.vsk-g-no {
	flex: none !important;
	padding: 0 15px !important;
	height: 38px !important;
	border-radius: 99px !important;
	background: none !important;
	border: 1px solid var(--vsk-hair-2) !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	color: var(--vsk-mute) !important;
}
@media (hover: hover) {
	.vsk-g-yes:hover { background: #000 !important; }
	.vsk-g-no:hover { border-color: var(--vsk-ink) !important; color: var(--vsk-ink) !important; }
}

/* ═══ État vide : centré, compact, zéro espace mort ═══ */
.vsk-empty {
	width: 100% !important;
	max-width: 400px;
	margin: 0 auto !important;
	text-align: center !important;
	padding: 36px 22px !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: var(--vsk-r) !important;
	box-shadow: var(--vsk-sh) !important;
}
.vsk-empty[hidden] { display: none !important; }
.vsk-sat { width: 40px; height: 40px; margin: 0 auto 14px !important; color: var(--vsk-mute-2) !important; }
.vsk-sat svg { width: 100%; height: 100%; display: block; }
.vsk-empty h3 {
	font-size: 18px !important;
	font-weight: 600 !important;
	letter-spacing: -.015em !important;
	margin-bottom: 6px !important;
}
.vsk-empty p {
	font-size: 13px !important;
	color: var(--vsk-mute) !important;
	max-width: 240px;
	margin: 0 auto 16px !important;
	line-height: 1.5 !important;
}
.vsk-ghost {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 10px 22px !important;
	border-radius: 99px !important;
	background: none !important;
	border: 1px solid var(--vsk-hair-2) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink) !important;
}
.vsk-ghost:hover { border-color: var(--vsk-ink) !important; }

/* ═══ Toasts (notification iOS) ═══ */
.vsk-toasts {
	position: fixed !important;
	top: 16px !important;
	left: 50% !important;
	transform: translateX(-50%);
	width: min(400px, calc(100vw - 32px));
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	z-index: 99998 !important;
	pointer-events: none;
}
.vsk-toast {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	background: rgba(255, 255, 255, .86) !important;
	backdrop-filter: blur(20px) saturate(1.6);
	-webkit-backdrop-filter: blur(20px) saturate(1.6);
	border: 1px solid var(--vsk-hair) !important;
	border-radius: 16px !important;
	box-shadow: var(--vsk-sh-f) !important;
	padding: 12px 16px !important;
	animation: vskToastIn .45s var(--vsk-ease) both;
}
.vsk-toast i {
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--vsk-accent) !important;
	flex: none;
	font-style: normal;
}
.vsk-toast b {
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
	color: var(--vsk-ink) !important;
	white-space: nowrap;
	flex: none;
}
.vsk-toast span {
	font-size: 12.5px !important;
	color: var(--vsk-mute) !important;
	min-width: 0;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}
.vsk-toast.vsk-out { animation: vskToastOut .34s var(--vsk-ease) both; }
@keyframes vskToastIn {
	from { opacity: 0; transform: translateY(-14px) scale(.97); }
	to { opacity: 1; transform: none; }
}
@keyframes vskToastOut {
	to { opacity: 0; transform: translateY(-10px) scale(.98); }
}

/* ═══ Overlay + feuille formulaire ═══ */
.vsk-overlay {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(0, 0, 0, .3);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity .4s var(--vsk-ease);
	z-index: 99990 !important;
}
.vsk-overlay.vsk-on { opacity: 1; }
.vsk-overlay[hidden] { display: none !important; }
body.vsk-locked { overflow: hidden !important; }

.vsk-sheet {
	position: fixed !important;
	left: 50% !important;
	bottom: 0 !important;
	transform: translate(-50%, 24px);
	width: min(560px, 100vw) !important;
	max-height: min(92vh, 92dvh);
	background: var(--vsk-bg) !important;
	border-radius: 28px 28px 0 0 !important;
	box-shadow: 0 -8px 60px rgba(0, 0, 0, .18) !important;
	z-index: 99995 !important;
	display: flex !important;
	flex-direction: column !important;
	opacity: 0;
	transition: transform .48s var(--vsk-ease), opacity .4s var(--vsk-ease);
	overflow: hidden !important;
	padding-bottom: env(safe-area-inset-bottom, 0);
}
.vsk-sheet.vsk-on { transform: translate(-50%, 0); opacity: 1; }
.vsk-sheet[hidden] { display: none !important; }

.vsk-grip { padding: 10px 0 2px !important; display: flex !important; justify-content: center !important; cursor: pointer; }
.vsk-grip b {
	width: 36px; height: 4px;
	border-radius: 99px;
	background: var(--vsk-hair-2);
	display: block;
}

.vsk-form-nav {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 8px 20px 4px !important;
}
.vsk-back {
	width: 36px !important;
	height: 36px !important;
	border-radius: 50% !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	color: var(--vsk-ink) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding-bottom: 2px !important;
}
.vsk-steplab {
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	color: var(--vsk-mute) !important;
	flex: 1 !important;
	text-align: center !important;
}
.vsk-progress { display: flex !important; gap: 5px !important; }
.vsk-progress b {
	width: 16px; height: 3px;
	border-radius: 99px;
	background: var(--vsk-fill-g);
	transition: background-color .3s var(--vsk-ease);
	display: block;
}
.vsk-progress b.vsk-done { background: var(--vsk-ink); }

.vsk-steps { position: relative; flex: 1 !important; overflow-y: auto !important; padding: 12px 20px 8px !important; }
.vsk-step { display: none; }
.vsk-step.vsk-active { display: block !important; animation: vskStep .45s var(--vsk-ease) both; }
@keyframes vskStep {
	from { opacity: 0; transform: translateX(16px); }
	to { opacity: 1; transform: none; }
}
.vsk-step h2 {
	font-size: 25px !important;
	font-weight: 700 !important;
	letter-spacing: -.022em !important;
	line-height: 1.15 !important;
	margin-bottom: 6px !important;
	color: var(--vsk-ink) !important;
	text-transform: none !important;
}
.vsk-step h2 em { font-style: normal !important; color: var(--vsk-ink) !important; }
.vsk-step > p {
	font-size: 13.5px !important;
	color: var(--vsk-mute) !important;
	line-height: 1.5 !important;
	margin-bottom: 18px !important;
	max-width: 420px;
}

/* Champs : UNE bordure, UN état focus. Jamais de double cadre. */
.vsk-fieldwrap { position: relative; }
.vsk-mt { margin-top: 14px !important; }
input.vsk-field {
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 100% !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: 14px !important;
	padding: 15px 16px !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink) !important;
	letter-spacing: -.008em !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	box-shadow: none !important;
	transition: border-color .2s var(--vsk-ease);
	font-family: inherit;
}
input.vsk-field::placeholder { color: var(--vsk-mute-2) !important; opacity: 1 !important; }
input.vsk-field-s { font-size: 14.5px !important; padding: 13px 15px !important; }
.vsk-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}

/* Suggestions (catégories / communes) : cases propres, nettes */
.vsk-sugg { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 12px !important; }
.vsk-sugg button {
	padding: 8px 14px !important;
	border-radius: 99px !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink-2) !important;
	line-height: 1.2 !important;
}
.vsk-sugg button[aria-pressed="true"] {
	background: var(--vsk-ink) !important;
	border-color: var(--vsk-ink) !important;
	color: #fff !important;
	font-weight: 600 !important;
}

/* GPS */
.vsk-geo { display: flex !important; align-items: center !important; gap: 10px !important; margin-top: 12px !important; }
.vsk-geo-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 7px !important;
	padding: 9px 15px !important;
	border-radius: 99px !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair-2) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--vsk-ink) !important;
	flex: none !important;
}
.vsk-geo-btn:disabled { opacity: .45 !important; cursor: default; }
.vsk-geo-btn.vsk-loading svg { animation: vskSpin 1.1s linear infinite; }
@keyframes vskSpin { to { transform: rotate(360deg); } }
.vsk-geo-msg {
	font-size: 12px !important;
	color: var(--vsk-mute) !important;
	line-height: 1.35 !important;
	min-width: 0;
}
.vsk-geo-msg.vsk-ok { color: var(--vsk-ink) !important; font-weight: 500 !important; }
.vsk-geo-msg.vsk-ko { color: var(--vsk-accent) !important; }

/* Budget */
.vsk-amount-card {
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: 16px !important;
	padding: 18px 18px 16px !important;
	box-shadow: var(--vsk-sh) !important;
}
.vsk-amount-out {
	font-size: 30px !important;
	font-weight: 600 !important;
	letter-spacing: -.028em !important;
	line-height: 1 !important;
	color: var(--vsk-ink) !important;
	font-variant-numeric: tabular-nums;
	margin-bottom: 14px !important;
}
.vsk-amount-out small {
	display: block !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	color: var(--vsk-mute) !important;
	letter-spacing: 0 !important;
	margin-top: 6px !important;
}
input.vsk-range {
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 100% !important;
	height: 4px !important;
	border-radius: 99px !important;
	background: linear-gradient(to right, var(--vsk-ink) var(--vsk-fill, 30%), var(--vsk-fill-g) var(--vsk-fill, 30%)) !important;
	outline: none !important;
	margin: 6px 0 14px !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
}
input.vsk-range::-webkit-slider-thumb {
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--vsk-hair);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .12), 0 4px 12px rgba(0, 0, 0, .1);
	cursor: grab;
}
input.vsk-range::-moz-range-thumb {
	width: 26px; height: 26px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--vsk-hair);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .12), 0 4px 12px rgba(0, 0, 0, .1);
	cursor: grab;
}
.vsk-quick { display: flex !important; flex-wrap: wrap !important; gap: 7px !important; }
.vsk-quick button {
	padding: 7px 12px !important;
	border-radius: 99px !important;
	background: var(--vsk-bg) !important;
	border: 1px solid var(--vsk-hair) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink-2) !important;
	font-variant-numeric: tabular-nums;
	line-height: 1.2 !important;
}
.vsk-quick button[aria-pressed="true"] {
	background: var(--vsk-ink) !important;
	border-color: var(--vsk-ink) !important;
	color: #fff !important;
	font-weight: 600 !important;
}

/* Bascules : interrupteurs iOS, propres */
.vsk-toggles { display: flex !important; flex-direction: column !important; gap: 8px !important; margin-top: 14px !important; }
.vsk-tog {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	width: 100% !important;
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: 14px !important;
	padding: 13px 16px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--vsk-ink) !important;
	text-align: left !important;
	line-height: 1.3 !important;
}
.vsk-tog i {
	flex: none !important;
	width: 44px; height: 26px;
	border-radius: 99px;
	background: var(--vsk-fill-g);
	position: relative;
	transition: background-color .25s var(--vsk-ease);
	font-style: normal;
	display: block;
	order: 2;
	margin-left: auto;
}
.vsk-tog i::after {
	content: "";
	position: absolute;
	top: 2px; left: 2px;
	width: 22px; height: 22px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
	transition: transform .25s var(--vsk-ease);
}
.vsk-tog[aria-pressed="true"] i { background: var(--vsk-ink); }
.vsk-tog[aria-pressed="true"] i::after { transform: translateX(18px); }

/* Pied de feuille */
.vsk-form-foot { padding: 10px 20px 18px !important; }
.vsk-err {
	font-size: 12.5px !important;
	color: var(--vsk-accent) !important;
	margin-bottom: 10px !important;
	line-height: 1.4 !important;
}
.vsk-err[hidden] { display: none !important; }
.vsk-note {
	font-size: 11.5px !important;
	color: var(--vsk-mute-2) !important;
	text-align: center !important;
	margin-top: 10px !important;
}

/* Confirmation d'envoi */
.vsk-done {
	position: absolute !important;
	inset: 0 !important;
	background: var(--vsk-bg) !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: 32px 28px !important;
	z-index: 3;
	animation: vskStep .45s var(--vsk-ease) both;
}
.vsk-done[hidden] { display: none !important; }
.vsk-done h2 {
	font-size: 23px !important;
	font-weight: 700 !important;
	letter-spacing: -.02em !important;
	margin-bottom: 8px !important;
}
.vsk-done p {
	font-size: 13.5px !important;
	color: var(--vsk-mute) !important;
	line-height: 1.5 !important;
	max-width: 300px;
	margin: 0 auto 22px !important;
}
.vsk-done .vsk-cta { max-width: 300px; }

/* Coche animée */
.vsk-check { width: 60px; height: 60px; margin: 0 auto 20px !important; }
.vsk-check svg { width: 100%; height: 100%; fill: none; display: block; }
.vsk-check circle {
	stroke: var(--vsk-accent);
	stroke-width: 2;
	stroke-dasharray: 145;
	stroke-dashoffset: 145;
	animation: vskDraw .7s var(--vsk-ease) forwards;
}
.vsk-check path {
	stroke: var(--vsk-accent);
	stroke-width: 2.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 36;
	stroke-dashoffset: 36;
	animation: vskDraw .45s var(--vsk-ease) .45s forwards;
}
@keyframes vskDraw { to { stroke-dashoffset: 0; } }

/* ═══ Overlay match ═══ */
.vsk-match {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(0, 0, 0, .34);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 20px !important;
	z-index: 99996 !important;
	opacity: 0;
	transition: opacity .32s var(--vsk-ease);
}
.vsk-match.vsk-on { opacity: 1; }
.vsk-match[hidden] { display: none !important; }
.vsk-match-in {
	width: min(400px, 100%);
	background: var(--vsk-card) !important;
	border: 1px solid var(--vsk-hair) !important;
	border-radius: 24px !important;
	box-shadow: var(--vsk-sh-f) !important;
	padding: 40px 28px 26px !important;
	text-align: center !important;
	transform: translateY(12px) scale(.98);
	transition: transform .38s var(--vsk-ease);
}
.vsk-match.vsk-on .vsk-match-in { transform: none; }
.vsk-match h2 {
	font-size: 22px !important;
	font-weight: 700 !important;
	letter-spacing: -.02em !important;
	margin-bottom: 7px !important;
	color: var(--vsk-ink) !important;
}
.vsk-match p {
	font-size: 13.5px !important;
	color: var(--vsk-mute) !important;
	line-height: 1.5 !important;
	max-width: 260px;
	margin: 0 auto 22px !important;
}
.vsk-match-act { display: flex !important; gap: 8px !important; margin-bottom: 12px !important; }
.vsk-match-act a {
	flex: 1 !important;
	height: 46px !important;
	border-radius: 99px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.vsk-wa { background: var(--vsk-ink) !important; color: #fff !important; border: 0 !important; }
.vsk-wa:hover { background: #000 !important; color: #fff !important; }
.vsk-call { background: none !important; border: 1px solid var(--vsk-hair-2) !important; color: var(--vsk-ink) !important; }
.vsk-call:hover { border-color: var(--vsk-ink) !important; }
.vsk-match .vsk-ghost { border: 0 !important; font-size: 13px !important; color: var(--vsk-mute) !important; padding: 8px !important; }

/* ═══ Paliers (container queries) ═══
 * Colonnes : sous 780px c'est le réglage MOBILE (--vsk-cols-m),
 * à partir de 780px c'est le réglage DESKTOP (--vsk-cols).
 * Aucune valeur codée en dur : l'admin et Elementor pilotent. */
@container (min-width: 520px) {
	.vsk-app { padding: 30px 28px !important; }
	.vsk-filters { margin-left: -28px !important; margin-right: -28px !important; padding-left: 28px !important; padding-right: 28px !important; }
	.vsk-title { font-size: 30px !important; }
}
@container (min-width: 780px) {
	.vsk-app { padding: 36px 36px !important; }
	.vsk-filters { margin-left: -36px !important; margin-right: -36px !important; padding-left: 36px !important; padding-right: 36px !important; }
	.vsk-deck { height: 430px; }
}

/* ═══ Mouvement réduit ═══ */
@media (prefers-reduced-motion: reduce) {
	.vsk-scope *, .vsk-scope *::before, .vsk-scope *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
