/* Feuille de section « services » : chargée uniquement avec la section (SECTION_STYLES, inc/assets.php). */

/* ==========================================================================
   Services : grille bento (3 colonnes en desktop)
   ========================================================================== */

.wl-bento {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

.wl-bento > * {
	display: flex;
	flex-direction: column;
}

:root .wl-bento > * {
	margin-block: 0;
}

@media (min-width: 48rem) {
	.wl-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wl-bento__item--site,
	.wl-bento__cta {
		grid-column: span 2;
	}
}

@media (min-width: 64rem) {
	.wl-bento {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.wl-bento__item--site {
		grid-column: span 2;
	}

	.wl-bento__cta {
		grid-column: span 2;
	}

	/* Carte large : texte à gauche, illustration à droite. */
	.wl-bento__item--site {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
		grid-template-rows: repeat(5, auto) 1fr;
		column-gap: var(--wp--preset--spacing--50);
	}

	.wl-bento__item--site > :not(.wl-viz) {
		grid-column: 1;
	}

	/* Illustration sur toute la hauteur de la carte (5 éléments + ligne libre). */
	.wl-bento > .wl-bento__item--site .wl-viz {
		grid-row: 1 / -1;
		grid-column: 2;
		height: auto;
		min-height: 14rem;
		margin: 0;
	}
}

.wl-icon {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: var(--wp--preset--spacing--20);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--accent-soft);
	color: var(--wp--preset--color--accent);
	transition: background var(--wl-ease), color var(--wl-ease);
}

.wl-icon svg {
	width: 1.5rem;
	height: 1.5rem;
}

.is-style-card:has(.wl-card-link a:hover) .wl-icon {
	background: var(--wp--preset--gradient--marque-fonce);
	color: var(--wp--preset--color--base);
}

.wl-bento .is-style-check {
	margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}

/* Tuile devis : mini section nuit avec halo. */
.wl-bento__cta {
	position: relative;
	justify-content: center;
	gap: var(--wp--preset--spacing--30);
	overflow: hidden;
	isolation: isolate;
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--custom--radius--large);
	background:
		radial-gradient(30rem 16rem at 100% 0%, rgb(109 63 224 / 0.45), transparent 70%),
		radial-gradient(24rem 14rem at 0% 100%, rgb(79 124 255 / 0.35), transparent 70%),
		var(--wp--preset--color--night);
	color: var(--wp--preset--color--ink-muted);
}

.wl-bento__cta::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		linear-gradient(var(--wl-night-line) 1px, transparent 1px) 0 0 / 2.5rem 2.5rem,
		linear-gradient(90deg, var(--wl-night-line) 1px, transparent 1px) 0 0 / 2.5rem 2.5rem;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 85% 20%, #000, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 80% at 85% 20%, #000, transparent 75%);
}

.wl-bento__cta h3 {
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--x-large);
	letter-spacing: -0.03em;
}

:root .wl-bento__cta h3 {
	margin: 0;
}

.wl-bento__cta p {
	max-width: 34rem;
	margin: 0;
}

/* Illustrations des cartes ------------------------------------------------- */

.wl-bento__item .wl-viz {
	position: relative;
	height: 8.5rem;
	margin: calc(var(--wp--preset--spacing--50) * -1) calc(var(--wp--preset--spacing--50) * -1) var(--wp--preset--spacing--40);
	overflow: hidden;
	border-bottom: 1px solid var(--wl-line);
	border-radius: var(--wp--custom--radius--large) var(--wp--custom--radius--large) 0 0;
	background:
		radial-gradient(18rem 10rem at 80% 0%, rgb(79 124 255 / 0.16), transparent 70%),
		radial-gradient(rgb(7 10 26 / 0.08) 1px, transparent 1px) 0 0 / 1rem 1rem,
		var(--wp--preset--color--surface);
}

@media (min-width: 64rem) {
	.wl-bento > .wl-bento__item--site .wl-viz {
		border: 1px solid var(--wl-line);
		border-radius: var(--wp--custom--radius--medium);
	}
}

/* Site : navigateur et jauge de performance. */
.wl-viz__browser {
	position: absolute;
	inset: 1.25rem 1.25rem auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
	padding: 0.75rem;
	border: 1px solid var(--wl-line);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--custom--shadow--medium);
	transition: translate 500ms var(--wl-ease);
}

.wl-viz__dots {
	display: flex;
	grid-column: 1 / -1;
	gap: 0.35rem;
	margin: 0 0 0.25rem;
}

.wl-viz__browser i {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--border);
}

.wl-viz__browser b {
	grid-column: 1 / -1;
	height: 0.55rem;
	border-radius: 0.3rem;
	background: var(--wp--preset--color--border);
}

.wl-viz__browser b:nth-of-type(1) {
	width: 60%;
	height: 0.9rem;
	background: var(--wp--preset--gradient--marque);
}

.wl-viz__browser b:nth-of-type(3) {
	width: 75%;
}

/* Tuiles de contenu (visibles quand l'illustration est haute : carte large). */
.wl-viz__browser u {
	display: none;
	height: 3.5rem;
	border: 1px solid var(--wl-line);
	border-radius: 0.5rem;
	background: var(--wp--preset--color--surface);
}

.wl-viz__browser u:first-of-type {
	border-color: rgb(53 88 232 / 0.35);
	background: linear-gradient(160deg, var(--wp--preset--color--accent-soft), var(--wp--preset--color--base));
}

@media (min-width: 64rem) {
	/* Points, 3 lignes, puis tuiles qui prennent la hauteur restante. */
	.wl-viz__browser {
		inset: 1.5rem 1.5rem 3.5rem;
		grid-template-rows: auto auto auto auto 1fr;
	}

	.wl-viz__browser u {
		display: block;
		height: auto;
	}
}

.wl-viz__gauge {
	position: absolute;
	right: 1.25rem;
	bottom: 1.25rem;
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: conic-gradient(#3558e8, #6d3fe0, #22b8d6 92%, var(--wp--preset--color--border) 0);
	box-shadow: var(--wp--custom--shadow--medium);
	transition: scale 500ms var(--wl-ease);
}

.wl-viz__gauge::before {
	content: "";
	position: absolute;
	inset: 0.4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
}

.wl-viz__gauge span {
	position: relative;
	color: var(--wp--preset--color--contrast);
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.wl-bento__item--site:hover .wl-viz__browser {
	translate: 0 -0.35rem;
}

.wl-bento__item--site:hover .wl-viz__gauge {
	scale: 1.08;
}

/* SEO : résultats, le premier remonte au survol. */
.wl-viz--seo {
	display: grid;
	align-content: center;
	gap: 0.6rem;
	padding-inline: 1.5rem;
}

.wl-viz--seo span {
	position: relative;
	height: 1.6rem;
	border: 1px solid var(--wl-line);
	border-radius: 0.5rem;
	background:
		linear-gradient(var(--wp--preset--color--border), var(--wp--preset--color--border)) 0.75rem 50% / 45% 0.4rem no-repeat,
		var(--wp--preset--color--base);
	transition: translate 500ms var(--wl-ease);
}

.wl-viz--seo .is-top {
	order: 3;
	border-color: rgb(53 88 232 / 0.4);
	background:
		linear-gradient(90deg, #3558e8, #6d3fe0) 0.75rem 50% / 55% 0.4rem no-repeat,
		var(--wp--preset--color--accent-soft);
	box-shadow: 0 8px 20px -10px rgb(53 88 232 / 0.6);
}

.wl-viz--seo em {
	position: absolute;
	top: 50%;
	right: 0.6rem;
	display: grid;
	place-items: center;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: var(--wp--preset--gradient--marque-fonce);
	color: var(--wp--preset--color--base);
	font-size: 0.6875rem;
	font-style: normal;
	font-weight: 800;
	translate: 0 -50%;
}

/* Au survol, le résultat passe en tête. */
.wl-bento__item--seo:hover .wl-viz--seo .is-top {
	translate: 0 calc(-200% - 1.2rem);
}

.wl-bento__item--seo:hover .wl-viz--seo span:not(.is-top) {
	translate: 0 calc(100% + 0.6rem);
}

/* IA : conversation, l'assistant « réfléchit » au survol. */
.wl-viz--ia {
	display: grid;
	align-content: center;
	gap: 0.6rem;
	padding-inline: 1.5rem;
}

.wl-viz--ia span {
	height: 1.9rem;
	border-radius: 1rem;
}

.wl-viz--ia .is-user {
	justify-self: end;
	width: 60%;
	border-bottom-right-radius: 0.25rem;
	background: var(--wp--preset--gradient--marque-fonce);
}

.wl-viz--ia .is-bot {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	width: 4.5rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--wl-line);
	border-bottom-left-radius: 0.25rem;
	background: var(--wp--preset--color--base);
}

.wl-viz--ia i {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	opacity: 0.35;
}

.wl-bento__item--ia:hover .wl-viz--ia i {
	animation: wl-typing 1s ease-in-out infinite;
}

.wl-viz--ia i:nth-child(2) {
	animation-delay: 150ms !important;
}

.wl-viz--ia i:nth-child(3) {
	animation-delay: 300ms !important;
}

@keyframes wl-typing {
	50% {
		opacity: 1;
		translate: 0 -0.2rem;
	}
}
