/* ============================================================
 * VideoIA — Home (refonte v2.0)
 * Toutes les sections de la home : hero, ticker, board, uses,
 * articles, newsletter
 * Source : spec section 01
 * ============================================================ */

/* === Wrapper home === */
.vi-home {
	max-width: var(--vi-container);
	margin: 0 auto;
	border-left: 1px solid var(--vi-line);
	border-right: 1px solid var(--vi-line);
	background: var(--vi-paper);
}

/* ============================================================
 * 1. HERO
 * ============================================================ */
.vi-hero {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: 56px;
	align-items: center;
	padding: 56px var(--vi-pad-x) 36px;
	border-bottom: 1px solid var(--vi-line);
}

.vi-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: 500 11px/1 var(--vi-mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--vi-accent);
	margin-bottom: 18px;
}
.vi-hero__kicker i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--vi-accent);
	display: inline-block;
}

.vi-hero h1 {
	font: 400 76px/0.98 var(--vi-serif);
	letter-spacing: -0.015em;
	margin: 0;
	max-width: 14ch;
	color: var(--vi-ink);
}
.vi-hero h1 em {
	font-style: italic;
	color: var(--vi-mute);
}

.vi-hero__lead {
	font-size: 16.5px;
	line-height: 1.55;
	color: var(--vi-ink-2);
	max-width: 44ch;
	margin: 18px 0 24px;
}

/* === Search box === */
.vi-search {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	padding: 8px;
	box-shadow:
		0 1px 0 rgba(20, 19, 15, 0.02),
		0 18px 40px -28px rgba(20, 19, 15, 0.25);
}

.vi-search__row {
	display: flex;
	align-items: center;
	gap: 4px;
}

.vi-search__field {
	flex: 1;
	padding: 12px 14px;
	font-size: 14.5px;
	color: var(--vi-ink-2);
	border: none;
	background: transparent;
	font-family: var(--vi-sans);
	outline: none;
}
.vi-search__field b {
	color: var(--vi-ink);
	font-weight: 500;
	padding: 2px 6px;
	background: var(--vi-paper-2);
	border-radius: 4px;
	margin: 0 2px;
}

.vi-search__go {
	padding: 12px 22px;
	background: var(--vi-ink);
	color: var(--vi-paper);
	border-radius: 9px;
	font-size: 14px;
	font-weight: 500;
	border: none;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s ease;
}
.vi-search__go:hover {
	background: var(--vi-ink-2);
}

.vi-search__chips {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	padding: 12px 8px 4px;
	border-top: 1px dashed var(--vi-line);
	margin-top: 8px;
}
.vi-search__chips span,
.vi-search__chips a {
	padding: 6px 11px;
	border-radius: 999px;
	font-size: 12.5px;
	color: var(--vi-ink-2);
	border: 1px solid var(--vi-line);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	background: transparent;
	font-family: inherit;
}
.vi-search__chips span:hover,
.vi-search__chips a:hover {
	border-color: var(--vi-ink);
	color: var(--vi-ink);
}
.vi-search__chips .is-on {
	background: var(--vi-ink);
	color: var(--vi-paper);
	border-color: var(--vi-ink);
}

/* === Hero side card (Top semaine) === */
.vi-hero-card {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	padding: 22px;
}

.vi-hero-card__label {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 500 11px/1 var(--vi-mono);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--vi-accent);
	margin-bottom: 16px;
}
.vi-hero-card__label i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--vi-accent);
	display: inline-block;
}

.vi-hero-card__row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--vi-line);
}
.vi-hero-card__row:first-of-type {
	border-top: 0;
	padding-top: 0;
}

.vi-hero-card__logo {
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	background: transparent;
	overflow: visible;
}
.vi-hero-card__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.vi-hero-card__logo.is-a,
.vi-hero-card__logo.is-b,
.vi-hero-card__logo.is-c { background: transparent; }

.vi-hero-card__name {
	flex: 1;
	min-width: 0;
}
.vi-hero-card__name b {
	display: block;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--vi-ink);
}
.vi-hero-card__name span {
	font-size: 12px;
	color: var(--vi-mute);
	display: block;
	margin-top: 2px;
}

.vi-hero-card__stars {
	color: var(--vi-warn);
	font-size: 13px;
	white-space: nowrap;
}
.vi-hero-card__stars b {
	color: var(--vi-ink);
	font-weight: 600;
	margin-left: 6px;
}

.vi-hero-card__price {
	font: 600 13.5px/1 var(--vi-mono);
	color: var(--vi-ink);
	white-space: nowrap;
}

.vi-hero-card__footer {
	font: 500 11px/1 var(--vi-mono);
	color: var(--vi-mute);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding-top: 16px;
	border-top: 1px solid var(--vi-line);
	margin-top: 6px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	transition: color 0.15s ease;
}
.vi-hero-card__footer:hover {
	color: var(--vi-ink);
}
.vi-hero-card__footer b {
	color: var(--vi-ink);
	font-weight: 600;
}

/* === Hero responsive === */
@media (max-width: 1024px) {
	.vi-hero {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 48px var(--vi-pad-x) 32px;
	}
	.vi-hero h1 {
		font-size: clamp(40px, 7vw, 60px);
	}
}
@media (max-width: 600px) {
	.vi-search__row {
		flex-direction: column;
		align-items: stretch;
	}
	.vi-search__go {
		text-align: center;
	}
}


/* ============================================================
 * 2. TICKER (4 stats inline)
 * ============================================================ */
.vi-ticker {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-bottom: 1px solid var(--vi-line);
}
.vi-ticker__cell {
	padding: 22px 28px;
	border-right: 1px solid var(--vi-line);
}
.vi-ticker__cell:last-child {
	border-right: 0;
}
.vi-ticker__num {
	font: 400 44px/1 var(--vi-serif);
	letter-spacing: -0.01em;
	color: var(--vi-ink);
}
.vi-ticker__num em {
	font-style: italic;
	color: var(--vi-mute);
}
.vi-ticker__lbl {
	font-size: 12.5px;
	color: var(--vi-ink-2);
	margin-top: 4px;
	line-height: 1.4;
}

/* === Ticker responsive === */
@media (max-width: 899px) {
	.vi-ticker {
		grid-template-columns: 1fr 1fr;
	}
	.vi-ticker__cell {
		padding: 18px 22px;
	}
	.vi-ticker__cell:nth-child(2) { border-right: 0; }
	.vi-ticker__cell:nth-child(1),
	.vi-ticker__cell:nth-child(2) { border-bottom: 1px solid var(--vi-line); }
	.vi-ticker__num {
		font-size: 36px;
	}
}
@media (max-width: 480px) {
	.vi-ticker {
		grid-template-columns: 1fr;
	}
	.vi-ticker__cell {
		border-right: 0;
		border-bottom: 1px solid var(--vi-line);
	}
	.vi-ticker__cell:last-child { border-bottom: 0; }
}


/* ============================================================
 * 3. BOARD — leaderboard 5 outils
 * ============================================================ */
.vi-board {
	padding: 56px var(--vi-pad-x) 24px;
}

.vi-board__head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 24px;
	margin-bottom: 22px;
}
.vi-board__head h2 {
	font: 400 38px/1.05 var(--vi-serif);
	margin: 0;
	letter-spacing: -0.01em;
	color: var(--vi-ink);
}
.vi-board__head h2 em {
	font-style: italic;
	color: var(--vi-mute);
}
.vi-board__sub {
	font-size: 13.5px;
	color: var(--vi-mute);
	margin-top: 4px;
}

.vi-board__filter {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.vi-board__filter a,
.vi-board__filter span {
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid var(--vi-line);
	font-size: 12.5px;
	color: var(--vi-ink-2);
	background: #fff;
	cursor: pointer;
	transition: all 0.15s ease;
}
.vi-board__filter a:hover {
	border-color: var(--vi-ink);
	color: var(--vi-ink);
}
.vi-board__filter .is-on {
	background: var(--vi-ink);
	color: var(--vi-paper);
	border-color: var(--vi-ink);
}

/* === Table === */
.vi-table {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	overflow: hidden;
}
.vi-row {
	display: grid;
	grid-template-columns: 56px 2fr 140px 130px 1fr 140px;
	gap: 16px;
	align-items: center;
	padding: 18px 22px;
	border-bottom: 1px solid var(--vi-line);
	font-size: 13.5px;
}
.vi-row.is-head {
	background: var(--vi-paper);
	font: 500 11px/1 var(--vi-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vi-mute);
	padding: 12px 22px;
}
.vi-row:last-child {
	border-bottom: 0;
}

.vi-row__rk {
	font: 400 28px/1 var(--vi-serif);
	color: var(--vi-mute);
}
.vi-row__rk em {
	font-style: italic;
}

.vi-row__tool {
	display: flex;
	gap: 14px;
	align-items: center;
	min-width: 0;
}
.vi-row__logo {
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	overflow: visible;
	background: transparent;
}
.vi-row__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.vi-row__logo.is-a,
.vi-row__logo.is-b,
.vi-row__logo.is-c,
.vi-row__logo.is-d,
.vi-row__logo.is-e { background: transparent; }

.vi-row__name {
	min-width: 0;
}
.vi-row__name b {
	display: block;
	font-weight: 600;
	font-size: 15px;
	color: var(--vi-ink);
	margin-bottom: 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.vi-row__name span {
	color: var(--vi-mute);
	font-size: 12.5px;
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.vi-row__stars {
	color: var(--vi-warn);
	font-size: 13px;
	white-space: nowrap;
}
.vi-row__stars b {
	color: var(--vi-ink);
	font-weight: 600;
	margin-left: 6px;
}

.vi-row__price {
	font: 600 14px/1 var(--vi-mono);
	color: var(--vi-ink);
}
.vi-row__price small {
	display: block;
	font: 400 11.5px/1.4 var(--vi-sans);
	color: var(--vi-mute);
	margin-top: 4px;
}

.vi-row__verdict {
	font-size: 13px;
	color: var(--vi-ink-2);
	line-height: 1.4;
}
.vi-row__verdict b {
	display: block;
	font-size: 11px;
	color: var(--vi-pos);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.vi-row__verdict.is-warn b {
	color: var(--vi-warn);
}

.vi-row__cta {
	padding: 11px 16px;
	background: var(--vi-ink);
	color: var(--vi-paper);
	border-radius: 9px;
	font-size: 13px;
	font-weight: 500;
	text-align: center;
	display: block;
	transition: background 0.15s ease;
}
.vi-row__cta:hover {
	background: var(--vi-ink-2);
	color: var(--vi-paper);
}

.vi-board__all {
	display: flex;
	justify-content: center;
	margin: 22px 0 0;
}
.vi-board__all a {
	font-size: 13.5px;
	color: var(--vi-ink-2);
	border-bottom: 1px solid var(--vi-ink);
	padding-bottom: 2px;
	transition: color 0.15s ease;
}
.vi-board__all a:hover {
	color: var(--vi-ink);
}

/* === Board responsive === */
@media (max-width: 1100px) {
	.vi-row {
		grid-template-columns: 44px 1.5fr 100px 100px 0.8fr 100px;
		gap: 12px;
		padding: 16px 18px;
	}
	.vi-row__verdict { font-size: 12px; }
	.vi-row__cta { padding: 9px 12px; font-size: 12.5px; }
}
@media (max-width: 899px) {
	.vi-board { padding: 40px var(--vi-pad-x) 20px; }
	.vi-board__head {
		flex-direction: column;
		align-items: flex-start;
	}
	.vi-row.is-head { display: none; }
	.vi-row {
		grid-template-columns: 44px 1fr;
		grid-template-areas:
			"rk tool"
			"meta meta"
			"verdict verdict"
			"cta cta";
		gap: 12px 14px;
		padding: 18px;
	}
	.vi-row__rk { grid-area: rk; }
	.vi-row__tool { grid-area: tool; }
	.vi-row__stars,
	.vi-row__price {
		grid-area: meta;
		display: inline-block;
		font-size: 13px;
	}
	.vi-row__price { margin-left: 16px; }
	.vi-row__price small { display: inline; margin-left: 4px; }
	.vi-row__stars { grid-area: meta; align-self: start; }
	.vi-row__verdict { grid-area: verdict; }
	.vi-row__cta { grid-area: cta; }
}


/* ============================================================
 * 4. USES — 6 cards par profil utilisateur
 * ============================================================ */
.vi-uses {
	padding: 56px var(--vi-pad-x);
	border-top: 1px solid var(--vi-line);
}

.vi-uses__head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 24px;
	margin-bottom: 24px;
}
.vi-uses__head h2 {
	font: 400 38px/1.05 var(--vi-serif);
	margin: 0;
	letter-spacing: -0.01em;
	max-width: 22ch;
	color: var(--vi-ink);
}
.vi-uses__head h2 em {
	font-style: italic;
	color: var(--vi-mute);
}
.vi-uses__head p {
	font-size: 13.5px;
	color: var(--vi-mute);
	max-width: 40ch;
	text-align: right;
	margin: 0;
}

.vi-uses__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.vi-use {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 22px;
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	min-height: 168px;
	color: inherit;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.vi-use:hover {
	transform: translateY(-2px);
	border-color: var(--vi-ink);
	box-shadow: 0 12px 32px -16px rgba(20, 19, 15, 0.16);
}

.vi-use__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.vi-use__ic {
	font: 600 12px/1 var(--vi-mono);
	letter-spacing: 0.12em;
	color: var(--vi-mute);
}
.vi-use__arr {
	font-size: 16px;
	color: var(--vi-mute);
	transition: transform 0.2s ease, color 0.2s ease;
}
.vi-use:hover .vi-use__arr {
	transform: translateX(4px);
	color: var(--vi-ink);
}

.vi-use h4 {
	font: 400 22px/1.15 var(--vi-serif);
	margin: 0;
	letter-spacing: -0.01em;
	color: var(--vi-ink);
}
.vi-use p {
	margin: 0;
	font-size: 13.5px;
	color: var(--vi-ink-2);
	line-height: 1.5;
}

.vi-use__stack {
	display: flex;
	margin-top: auto;
	padding-top: 4px;
}
.vi-use__stack i {
	width: 22px;
	height: 22px;
	border-radius: 6px;
	border: 2px solid #fff;
	margin-left: -6px;
	display: inline-block;
	flex-shrink: 0;
}
.vi-use__stack i:first-child { margin-left: 0; }

/* === Gradient presets pour les stacks === */
.vi-use__stack i.gr-blue   { background: linear-gradient(135deg, #cbd0e8, #9ea4d2); }
.vi-use__stack i.gr-peach  { background: linear-gradient(135deg, #f5d0c5, #d68d76); }
.vi-use__stack i.gr-green  { background: linear-gradient(135deg, #cfe7d0, #7eaf86); }
.vi-use__stack i.gr-purple { background: linear-gradient(135deg, #ddd0e8, #a589c4); }
.vi-use__stack i.gr-sand   { background: linear-gradient(135deg, #e6dcc4, #b8a26a); }
.vi-use__stack i.gr-blue-2 { background: linear-gradient(135deg, #b6c8d2, #6f8c9d); }

/* === Uses responsive === */
@media (max-width: 1024px) {
	.vi-uses__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.vi-uses { padding: 40px var(--vi-pad-x); }
	.vi-uses__grid { grid-template-columns: 1fr; }
	.vi-uses__head {
		flex-direction: column;
		align-items: flex-start;
	}
	.vi-uses__head p {
		text-align: left;
	}
}


/* ============================================================
 * 5. ARTICLES — 3 cards blog (1 featured + 2 normaux)
 * ============================================================ */
.vi-art {
	padding: 56px var(--vi-pad-x);
	border-top: 1px solid var(--vi-line);
}

.vi-art__head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 24px;
	margin-bottom: 24px;
}
.vi-art__head h2 {
	font: 400 38px/1.05 var(--vi-serif);
	margin: 0;
	letter-spacing: -0.01em;
	color: var(--vi-ink);
}
.vi-art__head h2 em {
	font-style: italic;
	color: var(--vi-mute);
}
.vi-art__all {
	font-size: 13.5px;
	color: var(--vi-mute);
	transition: color 0.15s ease;
	white-space: nowrap;
}
.vi-art__all:hover { color: var(--vi-ink); }

.vi-art__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr;
	gap: 24px;
}

.vi-card {
	display: flex;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
	transition: transform 0.2s ease;
}
.vi-card:hover {
	transform: translateY(-2px);
}
.vi-card:hover h3 {
	color: var(--vi-mute);
}

.vi-card__thumb {
	aspect-ratio: 4 / 3;
	border-radius: 10px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #ddd2b6, #b8a87f);
}
.vi-card.is-feat .vi-card__thumb {
	aspect-ratio: 16 / 10;
}
.vi-card__thumb.is-alt  { background: linear-gradient(135deg, #c5b9d1, #8a7aa4); }
.vi-card__thumb.is-alt2 { background: linear-gradient(135deg, #b6c8d2, #6f8c9d); }

.vi-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
.vi-card:hover .vi-card__thumb img {
	transform: scale(1.03);
}

.vi-card__tag {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(255, 255, 255, 0.92);
	padding: 5px 10px;
	border-radius: 999px;
	font: 500 10.5px/1 var(--vi-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vi-ink);
	z-index: 2;
}

.vi-card__meta {
	font: 500 11px/1 var(--vi-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vi-mute);
	margin-top: 14px;
}

.vi-card h3 {
	font: 400 22px/1.18 var(--vi-serif);
	margin: 8px 0 6px;
	letter-spacing: -0.005em;
	color: var(--vi-ink);
	transition: color 0.15s ease;
}
.vi-card.is-feat h3 {
	font-size: clamp(24px, 2.6vw, 34px);
	line-height: 1.12;
}

.vi-card p {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--vi-ink-2);
	margin: 0;
}

/* === Articles responsive === */
@media (max-width: 1024px) {
	.vi-art__grid {
		grid-template-columns: 1fr 1fr;
	}
	.vi-card.is-feat {
		grid-column: 1 / -1;
	}
	.vi-card.is-feat h3 {
		font-size: clamp(22px, 3vw, 30px);
	}
}
@media (max-width: 600px) {
	.vi-art { padding: 40px var(--vi-pad-x); }
	.vi-art__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.vi-card.is-feat { grid-column: auto; }
	.vi-art__head {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* ============================================================
 * 6. NEWSLETTER — forme dark sur fond ink
 * ============================================================ */
.vi-news {
	padding: 56px var(--vi-pad-x);
	border-top: 1px solid var(--vi-line);
	background: var(--vi-ink);
	color: var(--vi-paper);
}

.vi-news__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

.vi-news h2 {
	font: 400 clamp(34px, 5vw, 56px)/1 var(--vi-serif);
	margin: 0;
	max-width: 14ch;
	color: var(--vi-paper);
	letter-spacing: -0.01em;
}
.vi-news h2 em {
	font-style: italic;
	color: rgba(250, 248, 243, 0.55);
}

.vi-news__lead {
	font-size: 15px;
	color: rgba(250, 248, 243, 0.7);
	line-height: 1.55;
	max-width: 42ch;
	margin: 18px 0 0;
}

.vi-news__promise {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin-top: 28px;
	border-top: 1px solid rgba(250, 248, 243, 0.15);
}
.vi-news__promise > div {
	padding: 20px 16px 0;
	border-right: 1px solid rgba(250, 248, 243, 0.15);
}
.vi-news__promise > div:last-child {
	border-right: 0;
}
.vi-news__promise .vi-news__num {
	font: 400 36px/1 var(--vi-serif);
	color: var(--vi-paper);
	letter-spacing: -0.01em;
}
.vi-news__promise .vi-news__lbl {
	font-size: 12.5px;
	color: rgba(250, 248, 243, 0.7);
	margin-top: 6px;
	line-height: 1.4;
}

/* === Form === */
.vi-news__form {
	background: rgba(250, 248, 243, 0.06);
	border: 1px solid rgba(250, 248, 243, 0.15);
	border-radius: 14px;
	padding: 8px;
	display: flex;
	gap: 4px;
	align-items: stretch;
}
.vi-news__form .vi-news__field,
input.vi-news__field {
	flex: 1;
	padding: 14px 16px;
	font-size: 14.5px;
	color: var(--vi-paper) !important;
	background: transparent !important;
	border: none;
	outline: none;
	font-family: var(--vi-sans);
	caret-color: var(--vi-paper);
	-webkit-text-fill-color: var(--vi-paper);
}
.vi-news__form .vi-news__field::placeholder,
input.vi-news__field::placeholder {
	color: rgba(250, 248, 243, 0.5) !important;
	-webkit-text-fill-color: rgba(250, 248, 243, 0.5);
	opacity: 1;
}
/* Override Chrome/Safari autofill which forces white-on-white text */
.vi-news__field:-webkit-autofill,
.vi-news__field:-webkit-autofill:hover,
.vi-news__field:-webkit-autofill:focus,
.vi-news__field:-webkit-autofill:active {
	-webkit-text-fill-color: var(--vi-paper) !important;
	-webkit-box-shadow: 0 0 0 1000px transparent inset !important;
	box-shadow: 0 0 0 1000px transparent inset !important;
	caret-color: var(--vi-paper) !important;
	transition: background-color 5000s ease-in-out 0s;
}

/* Feedback message */
.vi-news__msg {
	min-height: 1.4em;
	margin: 12px 0 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: rgba(250, 248, 243, 0.7);
	transition: color 0.2s ease;
}
.vi-news__msg.is-success {
	color: #8be39a;
}
.vi-news__msg.is-error {
	color: #ff9a9a;
}
.vi-news__form { position: relative; }
.vi-news__go[disabled] {
	opacity: 0.65;
	cursor: not-allowed;
}
.vi-news__go {
	padding: 14px 22px;
	background: var(--vi-paper);
	color: var(--vi-ink);
	border-radius: 9px;
	font-size: 14px;
	font-weight: 600;
	border: none;
	cursor: pointer;
	font-family: inherit;
	white-space: nowrap;
	transition: background 0.15s ease;
}
.vi-news__go:hover {
	background: var(--vi-paper-2);
}

.vi-news__legal {
	font-size: 12px;
	color: rgba(250, 248, 243, 0.5);
	margin-top: 12px;
	line-height: 1.5;
}

/* === Newsletter responsive === */
@media (max-width: 899px) {
	.vi-news { padding: 48px var(--vi-pad-x); }
	.vi-news__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.vi-news h2 {
		max-width: 100%;
	}
}
@media (max-width: 600px) {
	.vi-news__form {
		flex-direction: column;
		gap: 6px;
	}
	.vi-news__go {
		text-align: center;
	}
	.vi-news__promise {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.vi-news__promise > div {
		padding: 16px 0 0;
		border-right: 0;
		border-bottom: 1px solid rgba(250, 248, 243, 0.15);
		padding-bottom: 16px;
	}
	.vi-news__promise > div:last-child { border-bottom: 0; }
}


/* ============================================================
 * USAGE PAGES — fiches piliers par profil
 * ============================================================ */
.vi-usage-hero .vi-hero__main h1 {
	font-size: clamp(36px, 5vw, 64px);
	max-width: 18ch;
}
.vi-usage__mono {
	display: inline-block;
	padding: 2px 8px;
	border: 1px solid currentColor;
	border-radius: 4px;
	font: 600 11px/1 var(--vi-mono);
	letter-spacing: 0.12em;
	margin-right: 4px;
}

/* Pain points (dans la side card hero) */
.vi-usage__pain {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--vi-ink-2);
}
.vi-usage__pain li {
	padding: 8px 0;
	border-top: 1px dashed var(--vi-line);
}
.vi-usage__pain li:first-child {
	border-top: none;
	padding-top: 0;
}

/* Workflow steps */
.vi-usage-workflow .vi-uses__head h2 {
	max-width: 100%;
}
.vi-usage__steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}
.vi-usage__step {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	padding: 22px;
}
.vi-usage__step-num {
	font: 400 36px/1 var(--vi-serif);
	color: var(--vi-mute);
	margin-bottom: 8px;
}
.vi-usage__step-num em {
	font-style: italic;
}
.vi-usage__step h4 {
	font: 400 20px/1.15 var(--vi-serif);
	margin: 0 0 6px;
	color: var(--vi-ink);
}
.vi-usage__step p {
	font-size: 13.5px;
	color: var(--vi-ink-2);
	line-height: 1.5;
	margin: 0;
}

/* FAQ */
.vi-usage-faq {
	padding-top: 56px;
}
.vi-usage__faq {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.vi-usage__faq-item {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	overflow: hidden;
}
.vi-usage__faq-item summary {
	padding: 18px 24px;
	font: 500 16px/1.4 var(--vi-sans);
	color: var(--vi-ink);
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 14px;
	user-select: none;
}
.vi-usage__faq-item summary::-webkit-details-marker { display: none; }
.vi-usage__faq-item summary::after {
	content: "+";
	margin-left: auto;
	font-size: 24px;
	color: var(--vi-mute);
	font-weight: 300;
	transition: transform 0.2s ease, color 0.2s ease;
	font-family: var(--vi-serif);
}
.vi-usage__faq-item[open] summary::after {
	transform: rotate(45deg);
	color: var(--vi-accent);
}
.vi-usage__faq-a {
	padding: 0 24px 22px;
	color: var(--vi-ink-2);
	font-size: 14.5px;
	line-height: 1.6;
}
.vi-usage__faq-a strong {
	color: var(--vi-ink);
}

/* === Articles utiles : grille 4 colonnes === */
.vi-usage-articles__grid {
	grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 1024px) {
	.vi-usage-articles__grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
	.vi-usage-articles__grid { grid-template-columns: 1fr !important; }
}

/* Pages usage : aligner les 2 colonnes du hero en haut (pas center) */
.vi-usage-hero {
	align-items: start !important;
	padding-bottom: 56px !important;
}
.vi-usage-hero .vi-hero__aside {
	position: sticky;
	top: 100px;
}
.vi-usage-hero .vi-hero-card__footer {
	color: var(--vi-mute);
	cursor: pointer;
}
.vi-usage-hero .vi-hero-card__footer:hover {
	color: var(--vi-accent-purple);
}


/* === USAGE CARD — pain points refondus === */
.vi-usage-card {
	padding: 24px 26px !important;
}
.vi-usage-card .vi-hero-card__label {
	margin-bottom: 18px !important;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--vi-line);
}
.vi-usage__pain {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--vi-ink-2);
}
.vi-usage__pain li {
	display: flex !important;
	gap: 12px;
	padding: 11px 0 !important;
	border-top: 1px dashed var(--vi-line);
	margin: 0 !important;
}
.vi-usage__pain li:first-child {
	border-top: none;
	padding-top: 4px !important;
}
.vi-usage__pain li::before {
	content: "—";
	color: var(--vi-warn);
	font-weight: 500;
	flex-shrink: 0;
	font-family: var(--vi-serif);
	font-size: 16px;
	line-height: 1.4;
}
.vi-usage__cta {
	display: block;
	margin-top: 18px;
	padding: 12px 16px;
	background: var(--vi-ink);
	color: var(--vi-paper) !important;
	border-radius: 9px;
	text-align: center;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none !important;
	transition: background 0.15s ease;
}
.vi-usage__cta:hover {
	background: var(--vi-ink-2);
	color: var(--vi-paper) !important;
}
.vi-usage__cta span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* === Pages comparatifs : compteur sur les cards usage === */
.vi-use__count {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px dashed var(--vi-line);
	font: 500 12px/1 var(--vi-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vi-mute);
}
.vi-use__count strong {
	font-family: var(--vi-serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--vi-ink);
	margin-right: 6px;
	letter-spacing: -0.01em;
}

/* === Critères de méthodologie (grid 4 cols) === */
.vi-comparatifs__criteria {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.vi-comparatifs__criterion {
	background: #fff;
	border: 1px solid var(--vi-line);
	border-radius: 14px;
	padding: 22px;
}
.vi-comparatifs__num {
	font: 400 36px/1 var(--vi-serif);
	color: var(--vi-mute);
	margin-bottom: 8px;
}
.vi-comparatifs__num em { font-style: italic; }
.vi-comparatifs__criterion h4 {
	font: 400 18px/1.2 var(--vi-serif);
	margin: 0 0 6px;
	color: var(--vi-ink);
}
.vi-comparatifs__criterion p {
	font-size: 13px;
	color: var(--vi-ink-2);
	line-height: 1.5;
	margin: 0;
}
@media (max-width: 1024px) { .vi-comparatifs__criteria { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .vi-comparatifs__criteria { grid-template-columns: 1fr; } }


/* ============================================================
 * BLOG — page d'archive principale (home.php)
 * ============================================================ */

/* === Side card catégories === */
.vi-blog__cats {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.vi-blog__cats li {
	margin: 0 !important;
	padding: 0 !important;
	border-top: 1px dashed var(--vi-line);
}
.vi-blog__cats li:first-child { border-top: none; }
.vi-blog__cats li a {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	padding: 12px 0 !important;
	color: var(--vi-ink-2);
	font-size: 14.5px;
	transition: color 0.15s ease;
	text-decoration: none !important;
}
.vi-blog__cats li a:hover {
	color: var(--vi-accent-purple);
}
.vi-blog__cat-name {
	font-weight: 500;
}
.vi-blog__cat-count {
	font: 500 11px/1 var(--vi-mono);
	color: var(--vi-mute);
	background: var(--vi-paper-2);
	padding: 4px 10px;
	border-radius: 999px;
}
.vi-blog__cats li a:hover .vi-blog__cat-count {
	background: var(--vi-ink);
	color: var(--vi-paper);
}

/* === Featured (1er article en grand sur page 1) === */
.vi-blog__feature {
	padding: 0 var(--vi-pad-x) 56px;
	border-bottom: 1px solid var(--vi-line);
}
.vi-blog__feature-link {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: center;
	color: inherit;
	text-decoration: none !important;
	background: transparent;
}
.vi-blog__feature-thumb {
	aspect-ratio: 4 / 3;
	border-radius: 14px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #ddd2b6, #b8a87f);
}
.vi-blog__feature-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
.vi-blog__feature-link:hover .vi-blog__feature-thumb img {
	transform: scale(1.04);
}
.vi-blog__feature-body {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.vi-blog__feature-title {
	font: 400 clamp(28px, 3.6vw, 48px)/1.08 var(--vi-serif);
	color: var(--vi-ink);
	margin: 0;
	letter-spacing: -0.01em;
	transition: color 0.15s ease;
}
.vi-blog__feature-link:hover .vi-blog__feature-title {
	color: var(--vi-mute);
}
.vi-blog__feature-excerpt {
	font-size: 16px;
	line-height: 1.55;
	color: var(--vi-ink-2);
	margin: 0;
}
.vi-blog__feature-cta {
	font: 500 13px/1 var(--vi-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vi-ink);
	border-bottom: 1px solid currentColor;
	padding-bottom: 4px;
	align-self: flex-start;
	transition: color 0.15s ease;
}
.vi-blog__feature-link:hover .vi-blog__feature-cta {
	color: var(--vi-accent-purple);
}

/* === Grid section === */
.vi-blog__grid-sec .vi-art__head h2 {
	font: 400 32px/1.05 var(--vi-serif);
}

/* === Pagination === */
.vi-blog__pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 56px;
	flex-wrap: wrap;
}
.vi-blog__pagination span a,
.vi-blog__pagination span span {
	display: inline-block;
	padding: 10px 16px;
	border: 1px solid var(--vi-line);
	border-radius: 9px;
	font: 500 13px/1 var(--vi-mono);
	color: var(--vi-ink-2);
	text-decoration: none;
	transition: all 0.15s ease;
	min-width: 44px;
	text-align: center;
}
.vi-blog__pagination span a:hover {
	border-color: var(--vi-ink);
	color: var(--vi-ink);
}
.vi-blog__pagination span .current {
	background: var(--vi-ink);
	color: var(--vi-paper);
	border-color: var(--vi-ink);
}
.vi-blog__pagination span .dots {
	border: none;
	background: transparent;
	color: var(--vi-mute);
}

/* === Responsive === */
@media (max-width: 1024px) {
	.vi-blog__feature-link {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.vi-blog__feature-thumb {
		aspect-ratio: 16 / 10;
	}
}
@media (max-width: 600px) {
	.vi-blog__feature {
		padding: 0 var(--vi-pad-x) 40px;
	}
	.vi-blog__pagination span a,
	.vi-blog__pagination span span {
		padding: 8px 12px;
		font-size: 12px;
	}
}


/* ============================================================
 * 404 — page d'erreur
 * ============================================================ */
.vi-404__hero {
	padding: 80px var(--vi-pad-x) 64px;
	background:
		radial-gradient(ellipse 60% 80% at 100% 0%, rgba(159, 63, 251, 0.06), transparent 55%),
		radial-gradient(ellipse 80% 60% at 0% 100%, rgba(74, 108, 247, 0.06), transparent 55%),
		linear-gradient(180deg, var(--vi-paper) 0%, var(--vi-paper-2) 100%);
	border-bottom: 1px solid var(--vi-line);
	text-align: center;
}
.vi-404__inner {
	max-width: 720px;
	margin: 0 auto;
}
.vi-404__num {
	font: 400 clamp(120px, 18vw, 220px)/0.9 var(--vi-serif);
	color: var(--vi-ink);
	letter-spacing: -0.04em;
	margin-bottom: 24px;
	line-height: 0.85;
}
.vi-404__num em {
	font-style: italic;
	color: var(--vi-mute);
	background: linear-gradient(135deg, var(--vi-accent, #4A6CF7), var(--vi-accent-purple, #6E3DBE));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.vi-404__title {
	font: 400 clamp(28px, 4vw, 48px)/1.05 var(--vi-serif);
	color: var(--vi-ink);
	letter-spacing: -0.01em;
	margin: 0 0 18px;
	text-wrap: balance;
}
.vi-404__title em {
	font-style: italic;
	color: var(--vi-mute);
}
.vi-404__lead {
	font-size: 17px;
	color: var(--vi-ink-2);
	line-height: 1.55;
	margin: 0 auto 36px;
	max-width: 540px;
}
.vi-404__hero .vi-search {
	max-width: 600px;
	margin: 0 auto;
	text-align: left;
}

.vi-404__paths {
	padding-top: 64px !important;
	border-top: none !important;
}

@media (max-width: 600px) {
	.vi-404__hero {
		padding: 56px var(--vi-pad-x) 40px;
	}
	.vi-404__num {
		margin-bottom: 16px;
	}
}

/* Screen-reader only */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
 * 7. LEGAL — pages confidentialité / mentions légales
 * ============================================================ */
.vi-legal__body {
	padding: 64px var(--vi-pad-x) 80px;
	background: var(--vi-paper);
	border-top: 1px solid var(--vi-line);
}
.vi-legal__inner {
	max-width: 760px;
	margin: 0 auto;
	color: var(--vi-ink-2);
	font-size: 16px;
	line-height: 1.7;
}
.vi-legal__inner h2 {
	font: 400 clamp(28px, 4vw, 40px)/1.1 var(--vi-serif);
	color: var(--vi-ink);
	margin: 56px 0 18px;
	letter-spacing: -0.01em;
}
.vi-legal__inner h2:first-child { margin-top: 0; }
.vi-legal__inner h3 {
	font: 400 clamp(20px, 2.4vw, 26px)/1.25 var(--vi-serif);
	color: var(--vi-ink);
	margin: 40px 0 12px;
	letter-spacing: -0.005em;
}
.vi-legal__inner h3:first-child { margin-top: 0; }
.vi-legal__inner h4 {
	font: 600 17px/1.3 var(--vi-sans);
	color: var(--vi-ink);
	margin: 28px 0 10px;
}
.vi-legal__inner p {
	margin: 0 0 16px;
}
.vi-legal__inner ul,
.vi-legal__inner ol {
	margin: 0 0 18px;
	padding-left: 22px;
}
.vi-legal__inner li {
	margin-bottom: 8px;
}
.vi-legal__inner li > p {
	margin: 0 0 6px;
}
.vi-legal__inner a {
	color: var(--vi-accent, #4A6CF7);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: text-decoration-thickness 0.15s ease;
}
.vi-legal__inner a:hover {
	text-decoration-thickness: 2px;
}
.vi-legal__inner strong,
.vi-legal__inner b {
	color: var(--vi-ink);
	font-weight: 600;
}
.vi-legal__inner code {
	background: var(--vi-paper-2);
	padding: 2px 6px;
	border-radius: 4px;
	font-family: var(--vi-mono, ui-monospace, monospace);
	font-size: 13.5px;
	color: var(--vi-ink);
}
.vi-legal__inner blockquote {
	margin: 24px 0;
	padding: 16px 20px;
	border-left: 3px solid var(--vi-accent, #4A6CF7);
	background: var(--vi-paper-2);
	font-style: italic;
	color: var(--vi-ink-2);
}

@media (max-width: 768px) {
	.vi-legal__body { padding: 48px var(--vi-pad-x) 64px; }
	.vi-legal__inner h2 { margin-top: 44px; }
	.vi-legal__inner h3 { margin-top: 32px; }
}

/* ============================================================
 * 8. PLAN DU SITE
 * ============================================================ */
/* Cloud de pills cliquables */
.vi-plan__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 8px;
}
.vi-plan__tag {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 8px 10px 18px;
	background: var(--vi-paper);
	border: 1px solid var(--vi-line);
	border-radius: 999px;
	color: var(--vi-ink);
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease, color 0.18s ease;
}
.vi-plan__tag:hover {
	background: var(--vi-ink);
	border-color: var(--vi-ink);
	color: var(--vi-paper);
	transform: translateY(-1px);
}
.vi-plan__tag-name {
	white-space: nowrap;
}
.vi-plan__tag-count {
	background: var(--vi-paper-2);
	color: var(--vi-ink-2);
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	transition: background 0.18s ease, color 0.18s ease;
}
.vi-plan__tag:hover .vi-plan__tag-count {
	background: rgba(250, 248, 243, 0.15);
	color: rgba(250, 248, 243, 0.9);
}

/* BAO listing */
.vi-plan__bao {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 32px 40px;
	margin-top: 8px;
}
.vi-plan__bao-block {}
.vi-plan__bao-title {
	font: 400 22px/1.2 var(--vi-serif);
	color: var(--vi-ink);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--vi-line);
	letter-spacing: -0.005em;
}
.vi-plan__bao-title a {
	color: inherit;
	text-decoration: none;
}
.vi-plan__bao-title a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.vi-plan__bao-count {
	font-size: 13px;
	color: var(--vi-mute, var(--vi-ink-2));
	font-family: var(--vi-sans);
	font-weight: 400;
	margin-left: 6px;
}
.vi-plan__bao-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.vi-plan__bao-list li {
	padding: 6px 0;
	font-size: 14.5px;
}
.vi-plan__bao-list a {
	color: var(--vi-ink-2);
	text-decoration: none;
	transition: color 0.15s ease;
}
.vi-plan__bao-list a:hover {
	color: var(--vi-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Articles récents */
.vi-plan__articles {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--vi-line);
}
.vi-plan__article {
	border-bottom: 1px solid var(--vi-line);
}
.vi-plan__article a {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 16px;
	align-items: center;
	padding: 14px 0;
	color: inherit;
	text-decoration: none;
	transition: padding-left 0.15s ease;
}
.vi-plan__article a:hover {
	padding-left: 8px;
}
.vi-plan__article-title {
	font-weight: 500;
	color: var(--vi-ink);
	font-size: 15px;
	line-height: 1.4;
}
.vi-plan__article-cat {
	font-size: 12px;
	color: var(--vi-mute, var(--vi-ink-2));
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 3px 10px;
	border: 1px solid var(--vi-line);
	border-radius: 999px;
	white-space: nowrap;
}
.vi-plan__article-date {
	font-size: 12.5px;
	color: var(--vi-mute, var(--vi-ink-2));
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Pages éditoriales / légal / liens */
.vi-plan__pages {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto;
}
.vi-plan__col-title {
	font: 600 13px/1 var(--vi-sans);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--vi-mute, var(--vi-ink-2));
	margin: 0 0 16px;
}
.vi-plan__simple-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.vi-plan__simple-list li {
	padding: 6px 0;
	font-size: 15px;
}
.vi-plan__simple-list a {
	color: var(--vi-ink);
	text-decoration: none;
	transition: color 0.15s ease;
}
.vi-plan__simple-list a:hover {
	color: var(--vi-accent, #4A6CF7);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 768px) {
	.vi-plan__cols { grid-template-columns: 1fr; }
	.vi-plan__row,
	.vi-plan__row:nth-child(even) { border-right: 0; }
	.vi-plan__bao { grid-template-columns: 1fr; gap: 28px; }
	.vi-plan__pages { grid-template-columns: 1fr; gap: 28px; }
	.vi-plan__article a {
		grid-template-columns: 1fr;
		gap: 6px;
	}
	.vi-plan__article-cat,
	.vi-plan__article-date {
		justify-self: start;
	}
}

