/* =========================================================
   DATA HUB MARQUES - /data/vendre-sa-voiture/
   Moteur + cards marques
   ========================================================= */

#sscms-data-3rd.vv4-brand-directory {
	margin-top: 34px !important;
	padding: 28px !important;
	border-radius: 30px !important;
	background:
		radial-gradient(circle at top left, rgba(37, 99, 235, .16), transparent 34%),
		linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(239, 246, 255, .94)) !important;
	border: 1px solid rgba(15, 23, 42, .10) !important;
	box-shadow: 0 24px 70px rgba(15, 23, 42, .12) !important;
	box-sizing: border-box !important;
}

.vv4-brand-directory-title {
	margin: 0 0 18px !important;
	padding: 0 !important;
	color: #0f172a !important;
	font-size: clamp(1.45rem, 3vw, 2.1rem) !important;
	line-height: 1.12 !important;
	font-weight: 950 !important;
	letter-spacing: -.04em !important;
	text-transform: none !important;
	background: transparent !important;
	border: 0 !important;
}

.vv4-brand-directory-title span {
	display: block !important;
	margin-top: 8px !important;
	color: #64748b !important;
	font-size: .98rem !important;
	font-weight: 800 !important;
	letter-spacing: 0 !important;
}

.vv4-brand-directory-tools {
	margin: 0 0 24px !important;
	padding: 22px !important;
	border: 1px solid rgba(15, 23, 42, .10) !important;
	border-radius: 24px !important;
	background: rgba(255, 255, 255, .94) !important;
	box-shadow: 0 18px 45px rgba(15, 23, 42, .10) !important;
	box-sizing: border-box !important;
}

.vv4-brand-directory-search {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	gap: 12px !important;
	align-items: end !important;
}

.vv4-brand-directory-search label {
	grid-column: 1 / -1 !important;
	display: block !important;
	margin: 0 !important;
	color: #0f172a !important;
	font-size: 1rem !important;
	font-weight: 950 !important;
	line-height: 1.35 !important;
}

.vv4-brand-directory-search input {
	width: 100% !important;
	min-height: 50px !important;
	padding: 0 16px !important;
	border: 1px solid rgba(15, 23, 42, .16) !important;
	border-radius: 16px !important;
	background: #fff !important;
	color: #0f172a !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	box-sizing: border-box !important;
	outline: none !important;
	box-shadow: inset 0 1px 0 rgba(15, 23, 42, .04) !important;
}

.vv4-brand-directory-search input:focus {
	border-color: rgba(37, 99, 235, .70) !important;
	box-shadow: 0 0 0 4px rgba(37, 99, 235, .12) !important;
}

.vv4-brand-directory-clear {
	min-height: 50px !important;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 16px !important;
	background: linear-gradient(135deg, #0f172a, #2563eb) !important;
	color: #fff !important;
	font-weight: 950 !important;
	cursor: pointer !important;
	box-shadow: 0 14px 30px rgba(37, 99, 235, .20) !important;
	white-space: nowrap !important;
}

.vv4-brand-directory-meta {
	margin-top: 12px !important;
	color: #475569 !important;
	font-size: .95rem !important;
	font-weight: 850 !important;
}

.vv4-brand-directory-letters {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin-top: 16px !important;
}

.vv4-brand-directory-letters button {
	width: 36px !important;
	height: 36px !important;
	padding: 0 !important;
	border: 1px solid rgba(15, 23, 42, .12) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: #0f172a !important;
	font-size: .88rem !important;
	font-weight: 950 !important;
	line-height: 36px !important;
	text-align: center !important;
	cursor: pointer !important;
	box-shadow: none !important;
}

.vv4-brand-directory-letters .vv4-brand-letter-all {
	width: auto !important;
	min-width: 58px !important;
	padding: 0 14px !important;
}

.vv4-brand-directory-letters button.is-active {
	border-color: transparent !important;
	background: linear-gradient(135deg, #2563eb, #0891b2) !important;
	color: #fff !important;
	box-shadow: 0 10px 24px rgba(37, 99, 235, .22) !important;
}

.vv4-brand-directory-letters button.is-disabled {
	opacity: .32 !important;
	cursor: not-allowed !important;
	background: rgba(241, 245, 249, .90) !important;
	color: #94a3b8 !important;
}

.vv4-brand-card-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.vv4-brand-card {
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 18px !important;
	border-radius: 22px !important;
	border: 1px solid rgba(15, 23, 42, .09) !important;
	background: rgba(255, 255, 255, .96) !important;
	box-shadow: 0 14px 34px rgba(15, 23, 42, .09) !important;
	box-sizing: border-box !important;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.vv4-brand-card:hover {
	transform: translateY(-2px) !important;
	border-color: rgba(37, 99, 235, .24) !important;
	box-shadow: 0 20px 44px rgba(37, 99, 235, .13) !important;
}

.vv4-brand-card[hidden] {
	display: none !important;
}

.vv4-brand-card h4 {
	margin: 0 !important;
	padding: 0 !important;
	color: #0f172a !important;
	font-size: 1.08rem !important;
	line-height: 1.2 !important;
	font-weight: 950 !important;
	letter-spacing: -.02em !important;
	text-transform: none !important;
	background: transparent !important;
	border: 0 !important;
}

.vv4-brand-card p {
	margin: 0 !important;
	padding: 0 !important;
	color: #475569 !important;
	font-size: .93rem !important;
	line-height: 1.45 !important;
	font-weight: 750 !important;
	background: transparent !important;
	border: 0 !important;
}

.vv4-brand-card p a {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: fit-content !important;
	margin-top: 4px !important;
	padding: 9px 12px !important;
	border-radius: 999px !important;
	background: rgba(37, 99, 235, .10) !important;
	color: #1d4ed8 !important;
	font-size: .88rem !important;
	font-weight: 950 !important;
	text-decoration: none !important;
	border: 1px solid rgba(37, 99, 235, .18) !important;
}

.vv4-brand-card p a:hover {
	background: #2563eb !important;
	color: #fff !important;
	text-decoration: none !important;
}

.vv4-brand-card .cta-btn-container-ss {
	margin: auto 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.vv4-brand-card .cta-btn,
.vv4-brand-card .kamesen.cta-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 42px !important;
	padding: 10px 14px !important;
	border-radius: 16px !important;
	background: linear-gradient(135deg, #0f172a, #2563eb) !important;
	color: #fff !important;
	font-size: .9rem !important;
	font-weight: 950 !important;
	line-height: 1.25 !important;
	text-align: center !important;
	box-shadow: 0 12px 26px rgba(37, 99, 235, .20) !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
}

.vv4-brand-empty {
	display: none !important;
	margin: 18px 0 0 !important;
	padding: 14px 16px !important;
	border-radius: 16px !important;
	background: rgba(239, 68, 68, .08) !important;
	color: #991b1b !important;
	font-weight: 850 !important;
}

.vv4-brand-empty.is-visible {
	display: block !important;
}

/* Petit lifting des zones géographiques sous le hub */
#sscms-data-list-child.list-child {
	margin-top: 34px !important;
	padding: 24px !important;
	border-radius: 28px !important;
	background: rgba(248, 250, 252, .96) !important;
	border: 1px solid rgba(15, 23, 42, .08) !important;
	box-shadow: 0 18px 48px rgba(15, 23, 42, .08) !important;
	box-sizing: border-box !important;
}

#sscms-data-list-child h2,
#sscms-data-list-child h3 {
	color: #0f172a !important;
	font-weight: 950 !important;
	letter-spacing: -.02em !important;
	background: transparent !important;
	border: 0 !important;
}

#sscms-data-list-child ul {
	list-style: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

#sscms-data-list-child li {
	list-style: none !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
}

#sscms-data-list-child a {
	display: inline-flex !important;
	align-items: center !important;
	padding: 8px 11px !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid rgba(15, 23, 42, .08) !important;
	color: #0f172a !important;
	font-weight: 850 !important;
	text-decoration: none !important;
	box-shadow: 0 8px 18px rgba(15, 23, 42, .05) !important;
}

#sscms-data-list-child a:hover {
	color: #2563eb !important;
	border-color: rgba(37, 99, 235, .20) !important;
	text-decoration: none !important;
}

@media (max-width: 1100px) {
	.vv4-brand-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 680px) {
	#sscms-data-3rd.vv4-brand-directory {
		padding: 18px !important;
		border-radius: 24px !important;
	}

	.vv4-brand-directory-search {
		grid-template-columns: 1fr !important;
	}

	.vv4-brand-directory-clear {
		width: 100% !important;
	}

	.vv4-brand-directory-letters button {
		width: 34px !important;
		height: 34px !important;
		line-height: 34px !important;
	}

	.vv4-brand-card-grid {
		grid-template-columns: 1fr !important;
	}

	.vv4-brand-card {
		padding: 15px !important;
		border-radius: 18px !important;
	}

	#sscms-data-list-child.list-child {
		padding: 18px !important;
		border-radius: 22px !important;
	}
}

/* =========================================================
   VV4 - FIX GLOBAL TABLEAUX SSCMS
   Objectif : un seul scroll horizontal, porté uniquement
   par .vv4-table-wrap. Jamais par body / section / table.
   À garder TOUT EN BAS du fichier CSS.
   ========================================================= */

/* Le module ne doit jamais élargir la page */
.vv4-wrap,
.vv4-wrap .vv4-section,
.vv4-wrap .vv4-card,
.vv4-wrap .vv4-panel,
.vv4-wrap .vv4-panel-box,
.vv4-wrap .vv4-table-wrap {
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Le wrapper est le SEUL élément autorisé à scroller horizontalement */
.vv4-wrap .vv4-table-wrap {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 22px 0 0 !important;
	padding: 0 !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior-x: contain !important;
	box-sizing: border-box !important;
}

/* La table ne scrolle jamais elle-même */
.vv4-wrap .vv4-table-wrap table,
.vv4-wrap .vv4-table-wrap .vv4-table,
.vv4-wrap table.vv4-table {
	display: table !important;
	width: max-content !important;
	min-width: 680px !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	overflow-x: visible !important;
	overflow-y: visible !important;
	table-layout: auto !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	box-sizing: border-box !important;
}

/* On force le vrai comportement tableau, sinon le CSS legacy peut tout casser */
.vv4-wrap .vv4-table-wrap thead {
	display: table-header-group !important;
	width: auto !important;
	max-width: none !important;
	overflow: visible !important;
}

.vv4-wrap .vv4-table-wrap tbody {
	display: table-row-group !important;
	width: auto !important;
	max-width: none !important;
	overflow: visible !important;
}

.vv4-wrap .vv4-table-wrap tr {
	display: table-row !important;
	width: auto !important;
	max-width: none !important;
	overflow: visible !important;
}

.vv4-wrap .vv4-table-wrap th,
.vv4-wrap .vv4-table-wrap td {
	display: table-cell !important;
	width: auto !important;
	max-width: none !important;
	white-space: normal !important;
	vertical-align: top !important;
	overflow: visible !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	box-sizing: border-box !important;
}

/* Mobile : on garde la même stratégie, scroll interne unique */
@media (max-width: 760px) {
	.vv4-wrap {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: clip !important;
	}

	.vv4-wrap .vv4-section {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: visible !important;
	}

	.vv4-wrap .vv4-table-wrap {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.vv4-wrap .vv4-table-wrap table,
	.vv4-wrap .vv4-table-wrap .vv4-table,
	.vv4-wrap table.vv4-table {
		width: max-content !important;
		min-width: 620px !important;
		max-width: none !important;
		table-layout: auto !important;
	}

	.vv4-wrap .vv4-table-wrap th,
	.vv4-wrap .vv4-table-wrap td {
		padding: 11px 10px !important;
		font-size: .86rem !important;
		line-height: 1.38 !important;
		white-space: normal !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
}

/* Très petits écrans : on réduit un peu la largeur mini, sans casser le tableau */
@media (max-width: 420px) {
	.vv4-wrap .vv4-table-wrap table,
	.vv4-wrap .vv4-table-wrap .vv4-table,
	.vv4-wrap table.vv4-table {
		min-width: 560px !important;
	}
}