/* Lorem Ipsum Réunion : styles des composants.
   Couleurs, polices et tailles viennent de theme.json (variables --wp--preset--*).

   Règle d'espacement : une seule échelle (multiples de 8 px) et la proximité.
   Plus deux éléments sont liés, plus ils sont proches. Chaque niveau de regroupement double l'écart.
     8 px  (--li-e1)  dans un même élément : surtitre → titre, titre de carte → texte, question → réponse
    16 px  (--li-e2)  dans un même bloc : titre → paragraphe, paragraphe → paragraphe
    24 px  (--li-e3)  entre cartes voisines, sous le H1
    32 px  (--li-e4)  avant un bouton ou une grille, intérieur des cartes
    48 px  (--li-e5)  intro de section → contenu, entre colonnes texte / image
   120 px  (--li-section, 64 px sur mobile)  entre deux sections
   Un titre est toujours plus proche de ce qu'il annonce que de ce qui le précède.
   L'intérieur d'une carte (32 px) est plus grand que l'écart entre deux cartes (24 px). */

:root {
	--li-e1: 0.5rem;
	--li-e2: 1rem;
	--li-e3: 1.5rem;
	--li-e4: 2rem;
	--li-e5: 3rem;
	--li-section: clamp(4rem, 9vw, 7.5rem);
	--li-rayon: 16px;
	--li-rayon-s: 10px;
	--li-trait: var(--wp--preset--color--trait);
	--li-surface: var(--wp--preset--color--surface);
	--li-ombre: 0 1px 2px rgb(0 0 0 / 30%), 0 12px 32px rgb(0 0 0 / 35%);
	--li-courbe: cubic-bezier(0.2, 0.8, 0.2, 1);
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

h1, h2 {
	text-wrap: balance;
}

:where(a, button, summary, input, textarea, select):focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
	border-radius: 4px;
}

::selection {
	background: var(--wp--preset--color--violet);
	color: #fff;
}

img {
	height: auto;
}

/* ---------- En-tête ---------- */

/* WordPress n'ajoute pas d'écart entre l'en-tête, le contenu et le pied de page. */
.wp-site-blocks > * + * {
	margin-block-start: 0 !important;
}

/* La balise <header> de WordPress est l'élément collant : elle suit tout le défilement de la page. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgb(15 15 15 / 72%);
	backdrop-filter: saturate(160%) blur(16px);
	-webkit-backdrop-filter: saturate(160%) blur(16px);
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.li-entete-barre {
	min-height: 80px;
	gap: var(--li-e4);
}

.li-marque {
	gap: var(--li-e1);
	align-items: center;
	flex-shrink: 0;
}

.li-marque .wp-block-site-logo {
	flex-shrink: 0;
}

.li-marque-nom {
	margin: 0;
	font-weight: 700;
	font-size: 1rem;
	white-space: nowrap;
}

.li-marque-nom a {
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
}

.li-entete-droite {
	gap: var(--li-e4);
	align-items: center;
}

/* Menu principal, aligné à droite près du bouton. */
.li-nav-bureau .wp-block-navigation__container {
	gap: var(--li-e3);
}

.li-nav-bureau a,
.li-nav-bureau .wp-block-navigation-submenu__toggle {
	color: var(--wp--preset--color--texte);
	text-decoration: none;
	font-size: 0.95rem;
}

.li-nav-bureau a {
	padding-block: var(--li-e1);
}

/* Flèche de « Services » centrée sur la hauteur du texte. */
.li-nav-bureau .wp-block-navigation-submenu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	min-width: 24px;
	min-height: 24px;
	height: auto;
	padding: 0;
	margin-left: 0;
}

.li-nav-bureau a:hover,
.li-nav-bureau .current-menu-item > a,
.li-nav-bureau .wp-block-navigation-item:hover > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--blanc);
}



/* Menu déroulant Services : un panneau de 2 colonnes, une miniature d'un site client par service. */
.li-nav-bureau .li-menu-services > .wp-block-navigation__submenu-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--li-e1);
	width: 680px !important;
	padding: var(--li-e2) !important;
	top: calc(100% + var(--li-e2)) !important;
	left: calc(-1 * var(--li-e3)) !important;
	background: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--li-trait) !important;
	border-radius: calc(var(--li-rayon) + 4px);
	box-shadow: 0 24px 60px rgb(0 0 0 / 55%);
}

/* Zone invisible entre le lien et le panneau : la souris passe de l'un à l'autre sans le fermer. */
.li-nav-bureau .li-menu-services > .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	inset: calc(-1 * var(--li-e2)) 0 auto;
	height: var(--li-e2);
}

.li-nav-bureau .li-menu-services .wp-block-navigation-item {
	width: 100%;
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: grid !important;
	grid-template-columns: 96px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: var(--li-e2);
	row-gap: 0.25rem;
	align-content: center;
	width: 100%;
	padding: var(--li-e1) !important;
	border-radius: var(--li-rayon-s);
	color: var(--wp--preset--color--texte) !important;
	text-decoration: none !important;
	transition: background 0.2s var(--li-courbe);
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
	content: "";
	grid-row: 1 / span 2;
	width: 96px;
	height: 60px;
	border-radius: var(--li-e1);
	border: 1px solid var(--li-trait);
	background: var(--wp--preset--color--surface-2) center / cover no-repeat;
	transition: transform 0.3s var(--li-courbe);
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
	align-self: end;
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
	display: block !important;
	align-self: start;
	font-size: 0.85rem;
	line-height: 1.35;
	color: var(--wp--preset--color--discret);
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--surface-2);
}

.li-nav-bureau .li-menu-services .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::before {
	transform: scale(1.05);
}

.li-menu-creation > a::before { background-image: url("../img/menu/creation.webp") !important; }
.li-menu-refonte > a::before { background-image: url("../img/menu/refonte.webp") !important; }
.li-menu-boutique > a::before { background-image: url("../img/menu/boutique.webp") !important; }
.li-menu-referencement > a::before { background-image: url("../img/menu/referencement.webp") !important; }
.li-menu-maintenance > a::before { background-image: url("../img/menu/maintenance.webp") !important; }
.li-menu-petit-prix > a::before { background-image: url("../img/menu/petit-prix.webp") !important; }

/* Dernière ligne : lien vers toutes les pages de service. */
.li-nav-bureau .li-menu-services .li-menu-tous {
	grid-column: 1 / -1;
	margin-top: var(--li-e1);
	padding-top: var(--li-e1);
	border-top: 1px solid var(--li-trait);
}

.li-nav-bureau .li-menu-services .li-menu-tous > a {
	white-space: nowrap;
	display: inline-flex !important;
	align-items: center;
	gap: var(--li-e1);
	padding: var(--li-e1) !important;
	color: var(--wp--preset--color--violet-clair) !important;
	font-weight: 600;
}

.li-nav-bureau .li-menu-services .li-menu-tous > a::before {
	display: none;
}

.li-nav-bureau .li-menu-services .li-menu-tous > a::after {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	mask: var(--li-ico-fleche) center / contain no-repeat;
}

.li-nav-bureau .li-menu-services .li-menu-tous > a:hover {
	background: transparent;
	color: var(--wp--preset--color--blanc) !important;
}

.li-entete-actions {
	gap: var(--li-e2);
	align-items: center;
}

.li-bouton-petit .wp-block-button__link {
	padding: var(--li-e1) var(--li-e3);
	font-size: 0.95rem;
}

.li-entete-cta .wp-block-button__link {
	white-space: nowrap;
}

/* Menu tablette et mobile : plein écran sous la barre d'en-tête. */
.li-nav-mobile > summary {
	position: relative;
	z-index: 2;
	list-style: none;
	cursor: pointer;
	padding: var(--li-e1) var(--li-e2);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.95rem;
}

.li-nav-mobile > summary::-webkit-details-marker {
	display: none;
}

.li-nav-mobile .li-menu-fermer,
.li-nav-mobile[open] .li-menu-ouvrir {
	display: none;
}

.li-nav-mobile[open] .li-menu-fermer {
	display: inline;
}

.li-nav-mobile[open] > summary {
	background: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--fond);
}

/* Le flou de l'en-tête limiterait le panneau à la hauteur de la barre : il est retiré pendant l'ouverture. */
.wp-site-blocks > header.wp-block-template-part:has(.li-nav-mobile[open]) {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	background: var(--wp--preset--color--fond);
	view-transition-name: none;
}

html:has(.li-nav-mobile[open]) {
	overflow: hidden;
}

.li-menu-plein {
	position: fixed;
	inset: 0;
	margin: 0 !important;
	z-index: -1;
	display: flex;
	flex-direction: column;
	gap: var(--li-e4);
	padding: calc(80px + var(--li-e4)) clamp(1rem, 5vw, 3rem) var(--li-e4);
	overflow-y: auto;
	overscroll-behavior: contain;
	background:
		radial-gradient(70% 50% at 100% 0%, rgb(120 38 255 / 22%), transparent 70%),
		var(--wp--preset--color--fond);
}

.admin-bar .li-menu-plein {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (prefers-reduced-motion: no-preference) {
	.li-nav-mobile[open] .li-menu-plein {
		animation: li-menu-plein 0.25s var(--li-courbe) both;
	}
}

@keyframes li-menu-plein {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
}

.li-menu-plein-colonnes {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--li-e4);
}

.li-menu-plein-bloc > * {
	margin: 0;
}

.li-menu-plein-titre {
	margin: 0 0 var(--li-e2) !important;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--discret);
}

/* Services : miniature, nom et phrase. */
.li-menu-plein-services .wp-block-navigation__container {
	display: grid !important;
	gap: var(--li-e1);
	width: 100%;
}

.li-menu-plein-services .wp-block-navigation-item,
.li-menu-plein-pages .wp-block-navigation-item {
	width: 100%;
}

.li-menu-plein-services .wp-block-navigation-item__content {
	display: grid !important;
	grid-template-columns: 80px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: var(--li-e2);
	row-gap: 0.15rem;
	align-content: center;
	width: 100%;
	padding: var(--li-e1);
	border-radius: var(--li-rayon-s);
	color: var(--wp--preset--color--texte);
	text-decoration: none;
}

.li-menu-plein-services .wp-block-navigation-item__content::before {
	content: "";
	grid-row: 1 / span 2;
	width: 80px;
	height: 50px;
	border-radius: var(--li-e1);
	border: 1px solid var(--li-trait);
	background: var(--wp--preset--color--surface-2) center / cover no-repeat;
}

.li-menu-plein-services .wp-block-navigation-item__label {
	align-self: end;
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
}

.li-menu-plein-services .wp-block-navigation-item__description {
	display: block !important;
	align-self: start;
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}

.li-menu-plein-services .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--surface);
}

/* Autres pages : grands liens. */
.li-menu-plein-pages .wp-block-navigation__container {
	display: grid !important;
	gap: 0;
	width: 100%;
}

.li-menu-plein-pages .wp-block-navigation-item__content {
	display: block;
	padding: var(--li-e1) 0;
	font-family: var(--wp--preset--font-family--titre);
	font-size: clamp(1.5rem, 5vw, 2rem);
	line-height: 1.2;
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
}

.li-menu-plein-pages .wp-block-navigation-item__content:hover,
.li-menu-plein-pages .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--violet-clair);
}

/* Bas du panneau : devis et coordonnées. */
.li-menu-plein-pied {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--li-e2) var(--li-e4);
	margin-top: auto;
	padding-top: var(--li-e3);
	border-top: 1px solid var(--li-trait);
}

.li-menu-plein-pied > * {
	margin: 0 !important;
}

.li-menu-plein-contact {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1) var(--li-e3);
}

.li-menu-plein-contact a {
	color: var(--wp--preset--color--texte);
	text-decoration: none;
}

.li-menu-plein-contact a:hover {
	color: var(--wp--preset--color--blanc);
	text-decoration: underline;
}

/* Tablette : services à gauche, pages à droite. */
@media (min-width: 700px) {
	.li-menu-plein-colonnes {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		column-gap: var(--li-e5);
	}
}

@media (max-width: 560px) {
	.li-menu-plein {
		padding-top: calc(64px + var(--li-e3));
	}
}

@media (min-width: 1100px) {
	.li-nav-mobile {
		display: none;
	}
}

@media (max-width: 1099px) {
	.li-nav-bureau {
		display: none !important;
	}
}

/* Petits écrans : logo, bouton devis et menu. Le texte du logo donne le nom aux lecteurs d'écran. */
@media (max-width: 560px) {
	.li-entete-barre {
		min-height: 64px;
		gap: var(--li-e2);
	}
	.li-marque .li-marque-nom {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.li-entete-actions {
		gap: var(--li-e1);
	}
	.li-entete-cta .wp-block-button__link {
		padding: var(--li-e1) var(--li-e2);
		font-size: 0.9rem;
	}
}

@media (max-width: 340px) {
	.wp-block-buttons.li-entete-cta {
		display: none;
	}
}

/* ---------- Structure des pages ---------- */

.li-principal {
	padding-bottom: 0;
}

.li-page,
.li-article,
.li-blog {
	padding-top: var(--li-section);
	padding-bottom: var(--li-section);
}

.li-chapo {
	font-size: var(--wp--preset--font-size--moyen);
	color: var(--wp--preset--color--texte);
	max-width: 62ch;
}

.is-style-surtitre {
	font-size: 0.8rem !important;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet-clair);
	margin-bottom: 0.5rem !important;
}

/* Sections pleine largeur avec un rythme vertical régulier */
.li-section {
	padding-top: var(--li-section);
	padding-bottom: var(--li-section);
}

/* Les sections se touchent : ni trait, ni écart. L'alternance des fonds les sépare. */
.wp-block-post-content > .alignfull {
	margin-block: 0 !important;
}

/* Intro de section : titre sur toute la largeur, texte dessous, tout aligné à gauche. */
.li-section-intro {
	max-width: none;
	margin-bottom: var(--li-e5);
}

.li-section-intro > p,
.li-section-intro > ul {
	max-width: 62ch;
}

.li-section-intro > * + * {
	margin-top: var(--li-e2);
}

/* ---------- Héros ---------- */

.li-heros {
	position: relative;
	padding-top: var(--li-section);
	padding-bottom: var(--li-section);
	background: var(--wp--preset--gradient--halo);
}

.li-heros h1 em {
	font-style: normal;
	color: var(--wp--preset--color--violet-clair);
}

.li-heros-colonnes {
	gap: var(--li-e5);
	align-items: center;
}

.li-heros .li-chapo {
	margin-top: var(--li-e3);
}

.li-preuves {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1) var(--li-e3);
	margin-top: var(--li-e3);
	padding: 0;
	list-style: none;
	font-size: 0.95rem;
	color: var(--wp--preset--color--texte);
}

.li-preuves li::before {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	margin-right: 0.5em;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
	vertical-align: 0.1em;
}

/* ---------- Cartes ---------- */

.is-style-carte {
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	padding: clamp(1.5rem, 3vw, 2rem);
	height: 100%;
}

.is-style-carte > :first-child {
	margin-top: 0;
}

.is-style-carte h3 {
	font-size: 1.2rem;
	line-height: 1.3;
	margin-bottom: 0;
}

.is-style-carte p {
	color: var(--wp--preset--color--texte);
	margin: 0;
}

.li-numero {
	display: inline-grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	margin-bottom: var(--li-e2) !important;
	border-radius: 50%;
	background: rgb(120 38 255 / 18%);
	color: var(--wp--preset--color--violet-clair);
	font-weight: 700;
}

.wp-block-columns.li-grille {
	gap: var(--li-e5);
}

/* ---------- Listes à coches ---------- */

.is-style-coches {
	list-style: none;
	padding-left: 0;
}

.is-style-coches li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: var(--li-e1);
}

.is-style-coches li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 0.75rem no-repeat;
}

/* ---------- Boutons ---------- */

.wp-block-button.is-style-contour .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--blanc);
	border: 1.5px solid var(--li-trait);
}

.wp-block-button.is-style-contour .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--violet-clair);
	background: transparent;
}

.wp-block-button__link {
	transition: background 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.wp-block-button__link:active {
	transform: scale(0.98);
}

/* ---------- Images ---------- */

.is-style-ecran img {
	filter: drop-shadow(0 18px 30px rgb(0 0 0 / 55%));
}

.li-photo img {
	border-radius: var(--li-rayon);
	object-fit: cover;
}

/* ---------- Réalisations ---------- */

.li-realisations .wp-block-post-template {
	gap: var(--li-e3);
}

.li-carte-realisation {
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	overflow: hidden;
	height: 100%;
	gap: 0;
}

.li-carte-realisation .wp-block-post-featured-image {
	margin: 0;
	padding: var(--li-e3) var(--li-e3) var(--li-e2);
	background:
		radial-gradient(70% 90% at 50% 100%, rgb(120 38 255 / 28%), transparent 70%),
		var(--wp--preset--color--surface-2);
	border-bottom: 1px solid var(--li-trait);
}

/* Les captures sont des ordinateurs portables sur fond transparent : affichées entières, centrées. */
.li-carte-realisation .wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	object-fit: contain;
	filter: drop-shadow(0 10px 16px rgb(0 0 0 / 45%));
	transition: transform 0.5s var(--li-courbe);
}

.li-carte-realisation:hover .wp-block-post-featured-image img {
	transform: translateY(-4px) scale(1.02);
}

.li-carte-realisation .wp-block-post-title {
	font-size: 1.2rem;
	margin: var(--li-e3) var(--li-e3) var(--li-e1);
}

.li-carte-realisation .wp-block-post-title a {
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
}

.li-carte-realisation .wp-block-post-excerpt {
	margin: 0 var(--li-e3) var(--li-e3);
	font-size: 0.95rem;
	color: var(--wp--preset--color--discret);
}

.li-fiche-projet {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: var(--li-e1) var(--li-e3);
	margin: 0;
}

.li-fiche-projet dt {
	color: var(--wp--preset--color--discret);
}

.li-fiche-projet dd {
	margin: 0;
	font-weight: 600;
}

/* ---------- Blog ---------- */

.li-blog-tete {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	column-gap: var(--li-e5);
	align-items: end;
	margin-bottom: var(--li-e5) !important;
}

.li-blog-tete > * {
	margin: 0 !important;
}

@media (max-width: 781px) {
	.li-blog-tete {
		grid-template-columns: 1fr;
		row-gap: var(--li-e2);
	}
}

/* Carte d'article : image, titre, extrait, date et temps de lecture. */
.li-carte-article {
	height: 100%;
}

.li-carte-article .wp-block-post-featured-image {
	margin: 0 0 var(--li-e2);
	overflow: hidden;
	border-radius: var(--li-rayon);
	background: var(--wp--preset--color--surface-2);
}

.li-carte-article .wp-block-post-featured-image img {
	border-radius: var(--li-rayon);
	transition: transform 0.5s var(--li-courbe);
}

.li-carte-article:hover .wp-block-post-featured-image img {
	transform: scale(1.03);
}

.li-carte-article-texte > * {
	margin: 0;
}

/* Le titre suit son image de près : 16 px, contre 48 px entre deux lignes de cartes. */
.li-carte-article > .li-carte-article-texte {
	margin-block-start: 0 !important;
}

.li-carte-article-titre {
	font-size: 1.3rem !important;
	line-height: 1.25;
}

.li-carte-article-titre a {
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
}

.li-carte-article-titre a:hover {
	color: var(--wp--preset--color--violet-clair);
}

.li-carte-article-extrait,
.li-carte-article .wp-block-post-excerpt {
	margin-top: var(--li-e1) !important;
	color: var(--wp--preset--color--discret);
	font-size: 0.95rem;
}

.li-carte-article .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.li-carte-article-meta,
.li-carte-article .li-lecture {
	margin-top: var(--li-e2) !important;
	color: var(--wp--preset--color--discret);
	font-size: 0.85rem;
}

.li-liste-articles .wp-block-query-pagination {
	margin-top: var(--li-e5);
	gap: var(--li-e2);
}

/* ---------- Article ---------- */

.li-article-tete {
	margin-bottom: var(--li-e5) !important;
}

.li-article-tete .wp-block-post-title {
	margin: 0 auto;
	max-width: 22ch;
	font-size: clamp(2.2rem, 5vw, 3.4rem);
}

.li-article-meta {
	margin-top: var(--li-e3) !important;
	gap: var(--li-e1) var(--li-e2);
	align-items: center;
	color: var(--wp--preset--color--discret);
	font-size: 0.9rem;
}

.li-article-meta > * {
	margin: 0 !important;
}

.li-article-auteur-photo img {
	border-radius: 50%;
}

.li-article-auteur a {
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
	text-decoration: none;
}

.li-maj::before {
	content: "Mis à jour le ";
}

.li-article-image {
	margin-bottom: var(--li-e5) !important;
}

.li-article-image img {
	border-radius: calc(var(--li-rayon) + 4px);
}

/* Texte de l'article : colonne de lecture de 720 px (environ 70 caractères par ligne), interligne confortable. */
.li-article-contenu {
	font-size: 1.125rem;
	line-height: 1.75;
}

.li-article .wp-block-post-content > * + * {
	margin-block-start: var(--li-e3);
}

/* Intertitres : grand espace avant (nouvelle partie), petit espace après (le titre appartient à son texte). */
.li-article .wp-block-post-content h2 {
	font-size: clamp(1.6rem, 3vw, 2rem);
	line-height: 1.2;
	margin-block: var(--li-e5) var(--li-e2) !important;
	scroll-margin-top: 104px;
}

.li-article .wp-block-post-content h3 {
	font-size: 1.3rem;
	line-height: 1.3;
	margin-block: var(--li-e4) var(--li-e1) !important;
	color: var(--wp--preset--color--violet-clair);
	scroll-margin-top: 104px;
}

.li-article .wp-block-post-content strong {
	color: var(--wp--preset--color--blanc);
}

.li-article .wp-block-post-content :is(ul, ol):not(.li-sommaire ol) {
	padding-left: 1.4em;
}

.li-article .wp-block-post-content li + li {
	margin-top: var(--li-e1);
}

.li-article .wp-block-post-content li::marker {
	color: var(--wp--preset--color--violet-clair);
	font-weight: 700;
}

.li-article .wp-block-post-content img {
	border-radius: var(--li-rayon-s);
}

.li-article .wp-block-post-content figcaption {
	margin-top: var(--li-e1);
	text-align: center;
	font-size: 0.9rem;
	color: var(--wp--preset--color--discret);
}

/* Citation et encadré : fond légèrement plus clair, trait violet à gauche. */
.li-article .wp-block-post-content blockquote {
	margin-inline: 0;
	padding: var(--li-e3);
	background: var(--li-surface);
	border-left: 3px solid var(--wp--preset--color--violet);
	border-radius: 0 var(--li-rayon-s) var(--li-rayon-s) 0;
}

.li-article .wp-block-post-content blockquote > :last-child {
	margin-bottom: 0;
}

.li-article .wp-block-post-content :not(pre) > code {
	padding: 0.1em 0.35em;
	font-size: 0.9em;
	background: var(--wp--preset--color--surface-2);
	border-radius: 4px;
}

.li-article .wp-block-post-content pre {
	padding: var(--li-e2) var(--li-e3);
	overflow-x: auto;
	font-size: 0.9rem;
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

/* Sommaire : colonne fixe à gauche sur grand écran, encadré repliable au-dessus du texte ailleurs. */
.li-article-corps {
	margin-inline: auto;
}

.li-sommaire {
	max-width: 720px;
	margin: 0 auto var(--li-e4);
	font-size: 0.95rem;
}

.li-sommaire details {
	padding: var(--li-e2) var(--li-e3);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
}

.li-sommaire summary {
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	cursor: pointer;
}

.li-sommaire ol {
	margin: var(--li-e2) 0 0;
	padding: 0;
	list-style: none;
	counter-reset: li-partie;
}

.li-sommaire li {
	margin: 0;
	line-height: 1.4;
}

.li-sommaire li + li {
	margin-top: var(--li-e1);
}

.li-sommaire-h3 {
	padding-left: var(--li-e2);
	font-size: 0.9em;
}

.li-sommaire a {
	display: block;
	padding: 0.25rem 0 0.25rem var(--li-e2);
	color: var(--wp--preset--color--discret);
	text-decoration: none;
	border-left: 2px solid var(--li-trait);
	transition: color 0.2s var(--li-courbe), border-color 0.2s var(--li-courbe);
}

.li-sommaire a:hover,
.li-sommaire a[aria-current] {
	color: var(--wp--preset--color--blanc);
	border-left-color: var(--wp--preset--color--violet);
}

@media (min-width: 1200px) {
	.li-article-corps {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 720px) minmax(0, 1fr);
		column-gap: var(--li-e5);
		align-items: start;
	}
	.li-article-corps > .li-sommaire {
		grid-column: 1;
		position: sticky;
		top: 104px;
		max-height: calc(100vh - 128px);
		margin: 0;
		overflow-y: auto;
	}
	.li-article-corps > .wp-block-post-content {
		grid-column: 2;
		margin-top: 0 !important;
	}
	.li-sommaire details {
		padding: 0;
		background: none;
		border: 0;
	}
	.li-sommaire summary {
		list-style: none;
		pointer-events: none;
		font-size: 0.8rem;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--wp--preset--color--discret);
	}
	.li-sommaire summary::-webkit-details-marker {
		display: none;
	}
}

/* Signature de l'auteur après le texte. */
.li-article-signature {
	max-width: 720px;
	margin: var(--li-e5) auto 0 !important;
	padding: var(--li-e3);
	gap: var(--li-e3);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	background: var(--wp--preset--color--surface);
}

.li-article-signature > * {
	margin: 0 !important;
}

.li-article-signature-photo img {
	border-radius: 50%;
}

.li-article-signature p {
	margin: 0;
	font-size: 0.95rem;
}

.li-article-signature-nom {
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	margin-bottom: 0.25rem !important;
}

/* Articles liés : 3 cartes illustrées. */
.li-articles-lies {
	margin-top: var(--li-section);
}

.li-articles-lies > h2 {
	margin: 0 0 var(--li-e4);
}

.li-articles-lies-grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(18rem, 100%), 1fr));
	gap: var(--li-e4);
}

.li-carte-article-image {
	display: block;
	margin-bottom: var(--li-e2);
	overflow: hidden;
	border-radius: var(--li-rayon);
}

.li-carte-article-image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform 0.5s var(--li-courbe);
}

.li-carte-liee:hover .li-carte-article-image img {
	transform: scale(1.03);
}

.li-carte-liee > * {
	margin: 0;
}

.li-article .li-cta {
	margin-top: var(--li-section) !important;
}

/* ---------- Tableaux ---------- */
/* Encadré arrondi, en-tête sur fond clair, lignes alternées, première colonne en blanc. */

.wp-block-table {
	overflow-x: auto;
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
}

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.95rem;
	line-height: 1.5;
}

.wp-block-table th,
.wp-block-table td {
	border: 0;
	padding: 0.85rem var(--li-e3);
	text-align: left;
	vertical-align: top;
}

.wp-block-table tbody tr + tr td {
	border-top: 1px solid var(--li-trait);
}

.wp-block-table tbody tr:nth-child(even) {
	background: rgb(255 255 255 / 2%);
}

.wp-block-table tbody td:first-child {
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
}

/* WordPress ajoute 3 px sous l'en-tête et au-dessus du pied de tableau : le fond suffit. */
.wp-block-table thead,
.wp-block-table tfoot {
	border: 0;
}

.wp-block-table thead th {
	background: var(--wp--preset--color--surface-2);
	color: var(--wp--preset--color--blanc);
	font-size: 0.85rem;
	font-weight: 700;
	white-space: nowrap;
}

.wp-block-table figcaption {
	padding: var(--li-e1) var(--li-e3) var(--li-e2);
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}

/* ---------- FAQ ---------- */

.li-faq .wp-block-details {
	border-bottom: 1px solid var(--li-trait);
	padding: var(--li-e3) 0;
}

.li-faq .wp-block-details summary {
	cursor: pointer;
	font-weight: 700;
	font-size: 1.1rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: var(--li-e2);
}

.li-faq .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.li-faq .wp-block-details summary::after {
	content: "+";
	color: var(--wp--preset--color--violet-clair);
	font-size: 1.4rem;
	line-height: 1;
	transition: transform 0.2s var(--li-courbe);
}

.li-faq .wp-block-details[open] summary::after {
	transform: rotate(45deg);
}

.li-faq .wp-block-details > :not(summary) {
	margin-top: var(--li-e1);
	color: var(--wp--preset--color--texte);
}

/* ---------- Kap Numérik ---------- */

.is-style-encadre-kap {
	border: 1px solid rgb(255 183 0 / 35%);
	background: linear-gradient(135deg, rgb(255 183 0 / 10%), rgb(255 183 0 / 2%));
	border-radius: var(--li-rayon);
	padding: clamp(2rem, 5vw, 3rem);
}

.is-style-encadre-kap .is-style-surtitre,
.li-kap {
	color: var(--wp--preset--color--kap) !important;
}

/* ---------- Chiffres ---------- */

.li-chiffre {
	font-family: var(--wp--preset--font-family--titre);
	font-size: clamp(2.2rem, 5vw, 3rem);
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--blanc);
	margin-bottom: var(--li-e1) !important;
}

/* ---------- Avis ---------- */

.li-avis {
	margin: 0;
	padding: var(--li-e4);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	background: var(--li-surface);
}

.li-avis p {
	font-size: 1.05rem;
}

.li-avis cite {
	display: block;
	margin-top: var(--li-e2);
	font-style: normal;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

/* ---------- Appel à l'action ---------- */

.li-cta {
	padding: clamp(2rem, 5vw, 3rem);
	border-radius: calc(var(--li-rayon) + 8px);
	background: radial-gradient(80% 120% at 0% 0%, rgb(120 38 255 / 40%), rgb(120 38 255 / 0%) 70%), var(--li-surface);
	border: 1px solid rgb(164 124 255 / 30%);
}

.li-cta-titre {
	margin-top: 0;
}

.li-cta > * {
	margin-left: 0 !important;
}

/* ---------- Lexique (infobulles) ---------- */

.li-terme {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: help;
	text-decoration: underline dotted var(--wp--preset--color--violet-clair);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.li-definition {
	max-width: min(340px, calc(100vw - 2rem));
	margin: 0;
	padding: var(--li-e2);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
	background: var(--wp--preset--color--surface-2);
	color: var(--wp--preset--color--texte);
	box-shadow: var(--li-ombre);
	font-size: 0.95rem;
	line-height: 1.5;
}

/* Navigateurs récents : l'infobulle s'accroche sous le mot. Sinon elle s'affiche au centre de l'écran. */
@supports (position-area: bottom) {
	.li-definition {
		inset: auto;
		margin: var(--li-e1) 0 0;
		position-area: bottom span-right;
		position-try-fallbacks: flip-block, flip-inline;
	}
}

.li-definition strong {
	display: block;
	color: var(--wp--preset--color--blanc);
	margin-bottom: 0.25rem;
}

.li-definition a {
	font-size: 0.9rem;
}

.li-definition::backdrop {
	background: transparent;
}

/* ---------- Pied de page ---------- */

.li-pied {
	margin-top: 0;
	padding-top: var(--li-section);
	padding-bottom: var(--li-e4);
	border-top: 1px solid rgb(255 255 255 / 7%);
	background: #0a0a0c;
	font-size: 0.95rem;
}

.li-pied-colonnes {
	gap: var(--li-e5);
}

.li-pied-titre {
	font-family: var(--wp--preset--font-family--texte) !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--discret) !important;
	margin-bottom: var(--li-e2);
}

.li-pied-liens {
	list-style: none;
	padding: 0;
	margin: 0;
}

.li-pied-liens li {
	margin-bottom: var(--li-e1);
}

.li-pied a {
	color: var(--wp--preset--color--texte);
	text-decoration: none;
}

.li-pied a:hover {
	color: var(--wp--preset--color--blanc);
}

.li-pied-texte,
.li-pied-legal {
	color: var(--wp--preset--color--discret);
}

.li-pied-bas {
	margin-top: var(--li-e5) !important;
	padding-top: var(--li-e3);
	border-top: 1px solid rgb(255 255 255 / 7%);
	color: var(--wp--preset--color--discret);
	font-size: 0.875rem;
	gap: var(--li-e1) var(--li-e3);
}

.li-pied-bas p {
	margin: 0;
}

/* ---------- Mouvement réduit ---------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
	}
}

/* ---------- Grilles de cartes ---------- */

.li-grille-cartes {
	gap: var(--li-e3);
	align-items: stretch;
}

.li-grille-cartes > .is-style-carte {
	margin: 0;
}

.li-grille-cartes > .wp-block-quote {
	margin: 0;
}

/* ---------- Tarifs [lorem_tarifs] ---------- */

.li-tarifs-bascule {
	display: inline-flex;
	gap: 0;
	margin: 0 0 var(--li-e4);
	padding: 4px;
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	background: var(--li-surface);
}

.li-tarifs-bascule input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.li-tarifs-bascule label {
	padding: var(--li-e1) var(--li-e2);
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	color: var(--wp--preset--color--discret);
}

.li-tarifs-bascule input:checked + label {
	background: var(--wp--preset--color--violet);
	color: #fff;
}

.li-tarifs-bascule input:focus-visible + label {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 2px;
}

.li-tarifs .li-si-12 {
	display: none;
}

.li-tarifs:has(#li-12:checked) .li-si-12 {
	display: inline;
}

.li-tarifs:has(#li-12:checked) .li-si-24 {
	display: none;
}

/* Créations → forfaits → options : nouveau bloc, 48 px. Titre → texte d'intro : 8 px. */
.li-tarifs .li-tarifs-sous-titre {
	margin: var(--li-e5) 0 0;
	font-size: 1.5rem;
}

.li-forfaits .li-prix-reglement {
	margin-bottom: var(--li-e3);
}

.li-tarifs .li-tarifs-intro {
	margin: var(--li-e1) 0 var(--li-e3);
	color: var(--wp--preset--color--discret);
}

.li-tarifs-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--li-e2);
	margin: var(--li-e3) 0 0;
	padding: 0;
	list-style: none;
}

.li-tarifs-options li {
	display: grid;
	gap: 0.25rem;
	padding: var(--li-e2) var(--li-e3);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-tarifs-options strong {
	color: var(--wp--preset--color--blanc);
}

.li-tarifs-options span {
	font-size: 0.9rem;
	color: var(--wp--preset--color--discret);
}

.li-tarifs-grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--li-e3);
}

.li-formule {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--li-e4);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
}

.li-formule-avant {
	border-color: var(--wp--preset--color--violet);
	box-shadow: 0 0 0 1px var(--wp--preset--color--violet), var(--li-ombre);
}

.li-formule-badge {
	position: absolute;
	top: -0.8rem;
	left: 1.5rem;
	margin: 0;
	padding: 0.2rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--violet);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 700;
}

.li-formule h3 {
	margin: 0;
	font-size: 1.5rem;
}

.li-formule-accroche {
	margin: var(--li-e1) 0 var(--li-e3);
	color: var(--wp--preset--color--discret);
	font-size: 0.95rem;
	min-height: 2.9em;
}

.li-prix {
	margin: 0;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--blanc);
}

.li-prix-mois {
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1rem;
	font-weight: 400;
	color: var(--wp--preset--color--discret);
}

.li-formule-details {
	margin: var(--li-e2) 0 var(--li-e3);
	font-size: 0.9rem;
	color: var(--wp--preset--color--texte);
	line-height: 1.7;
}

.li-formule-cumul {
	margin: 0 0 var(--li-e1);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--wp--preset--color--violet-clair);
}

.li-formule .is-style-coches {
	flex: 1;
	margin: 0 0 var(--li-e4);
	font-size: 0.95rem;
}

.li-formule .wp-block-buttons {
	margin-top: auto;
}

.li-formule .wp-block-button,
.li-formule .wp-block-button__link {
	width: 100%;
	text-align: center;
}

.li-tarifs-option,
.li-tarifs-mention {
	margin-top: var(--li-e1);
	font-size: 0.95rem;
	color: var(--wp--preset--color--texte);
}

.li-tarifs-mention {
	color: var(--wp--preset--color--discret);
	font-size: 0.875rem;
}

/* ---------- Page lexique ---------- */

.li-lexique {
	display: grid;
	grid-template-columns: minmax(10rem, 14rem) 1fr;
	gap: 0;
	margin: var(--li-e5) 0 0;
}

.li-lexique dt,
.li-lexique dd {
	margin: 0;
	padding: var(--li-e2) 0;
	border-bottom: 1px solid var(--li-trait);
}

.li-lexique dt {
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	scroll-margin-top: 100px;
}

.li-lexique dt:target,
.li-lexique dt:target + dd {
	background: rgb(120 38 255 / 12%);
}

@media (max-width: 600px) {
	.li-lexique {
		grid-template-columns: 1fr;
	}
	.li-lexique dt {
		border-bottom: 0;
		padding-bottom: 0;
	}
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* ---------- Pages simples : espace avant chaque section ---------- */

.li-page .wp-block-post-content > h2 {
	margin-top: var(--li-e5);
}

/* ---------- Contact direct (photo ronde + phrase) ---------- */

.li-contact-direct {
	gap: var(--li-e2);
	align-items: center;
	margin-top: var(--li-e3);
	padding: var(--li-e1) var(--li-e2) var(--li-e1) var(--li-e1);
	width: fit-content;
	max-width: 100%;
	background: rgb(255 255 255 / 4%);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
}

.li-contact-direct .li-avatar {
	margin: 0;
	flex-shrink: 0;
}

.li-contact-direct .li-avatar img {
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--violet);
}

.li-contact-direct p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.4;
}

@media (max-width: 600px) {
	.li-contact-direct {
		border-radius: var(--li-rayon);
	}
}

:root {
	--li-ico-appel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--li-ico-google: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
	--li-ico-confiance: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--li-ico-maj: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3C/svg%3E");
	--li-ico-services: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E");
	--li-ico-preuves: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8-6.2-3.2-6.2 3.2L7 14.2 2 9.3l6.9-1z'/%3E%3C/svg%3E");
	--li-ico-image-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 2 20 20'/%3E%3Cpath d='M10.4 10.4a2 2 0 1 1-2.8-2.8'/%3E%3Cpath d='M13.5 13.5 6 21'/%3E%3Cpath d='m18 12 3 3'/%3E%3Cpath d='M3.6 3.6A2 2 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.6 0 1-.2 1.4-.6'/%3E%3Cpath d='M21 15V5a2 2 0 0 0-2-2H9'/%3E%3C/svg%3E");
	--li-ico-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-9 5.7a2 2 0 0 1-2 0L2 7'/%3E%3C/svg%3E");
	--li-ico-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");
}

/* ---------- Bandeau de logos clients (défilement continu) ---------- */

.li-section-logos {
	padding-block: var(--li-e5) !important;
}

.li-logos-titre {
	text-align: center;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--discret);
	margin: 0 0 var(--li-e3);
}

.li-logos-defile {
	display: flex;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.li-logos-piste {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: var(--li-e5);
	margin: 0;
	padding: 0 var(--li-e3);
	list-style: none;
}

.li-logos-piste img {
	display: block;
	width: auto;
	height: 64px;
	max-width: 140px;
	object-fit: contain;
	filter: grayscale(1) brightness(0) invert(1);
	opacity: 0.6;
	transition: opacity 0.2s var(--li-courbe);
}

.li-logos-piste img:hover {
	opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {
	.li-logos-piste {
		animation: li-defile 38s linear infinite;
	}
	.li-logos-defile:hover .li-logos-piste {
		animation-play-state: paused;
	}
}

@media (prefers-reduced-motion: reduce) {
	.li-logos-defile {
		mask-image: none;
	}
	.li-logos-piste {
		flex-wrap: wrap;
		justify-content: center;
		flex-shrink: 1;
	}
	.li-logos-piste[aria-hidden="true"] {
		display: none;
	}
}

@keyframes li-defile {
	to {
		transform: translateX(-100%);
	}
}

/* ---------- Bandes de couleur entre les sections ---------- */

/* Une section sur deux a un fond clair, sans compter le bandeau de logos ni l'appel à l'action final. */
.wp-block-post-content > .li-section:nth-child(even of .li-section:not(.li-section-logos)):not(:has(.li-cta)) {
	background:
		radial-gradient(60% 80% at 100% 0%, rgb(120 38 255 / 10%), transparent 60%),
		var(--wp--preset--color--surface);
}

.wp-block-post-content > .li-section:nth-child(even of .li-section:not(.li-section-logos)):not(:has(.li-cta)) :is(.is-style-carte, .li-avis, .li-carte-realisation, .li-panneau, .li-formule) {
	background: var(--wp--preset--color--fond);
}

.wp-block-post-content > .li-section.li-bande-violette {
	background:
		radial-gradient(55% 70% at 0% 0%, rgb(120 38 255 / 30%), transparent 65%),
		radial-gradient(45% 60% at 100% 100%, rgb(66 199 73 / 10%), transparent 60%),
		var(--wp--preset--color--surface);
}

/* ---------- Cartes avec icône ---------- */

.li-ico {
	position: relative;
}

.li-ico::before {
	content: "";
	display: block;
	width: 48px;
	height: 48px;
	margin-bottom: var(--li-e2);
	border-radius: 14px;
	background: linear-gradient(135deg, var(--wp--preset--color--violet), var(--wp--preset--color--violet-fonce));
	box-shadow: 0 8px 22px rgb(120 38 255 / 35%);
}

.li-ico::after {
	content: "";
	position: absolute;
	top: clamp(1.5rem, 3vw, 2rem);
	left: clamp(1.5rem, 3vw, 2rem);
	width: 48px;
	height: 48px;
	background: #fff;
	mask: var(--li-icone) center / 24px no-repeat;
}

.li-ico-appel { --li-icone: var(--li-ico-appel); }
.li-ico-google { --li-icone: var(--li-ico-google); }
.li-ico-confiance { --li-icone: var(--li-ico-confiance); }
.li-ico-maj { --li-icone: var(--li-ico-maj); }
.li-ico-services { --li-icone: var(--li-ico-services); }
.li-ico-preuves { --li-icone: var(--li-ico-preuves); }

.is-style-carte,
.li-carte-realisation,
.li-avis {
	transition: border-color 0.25s var(--li-courbe), transform 0.25s var(--li-courbe), box-shadow 0.25s var(--li-courbe);
}

.li-grille-cartes > .is-style-carte:hover,
.li-carte-realisation:hover {
	transform: translateY(-4px);
	border-color: rgb(164 124 255 / 50%);
	box-shadow: 0 18px 40px rgb(0 0 0 / 35%), 0 0 0 1px rgb(164 124 255 / 15%);
}

/* ---------- Étapes en frise ---------- */

.li-etapes > .is-style-carte {
	background: transparent !important;
	border-color: transparent;
	padding-inline: 0;
	position: relative;
}

.li-etapes > .is-style-carte:hover {
	transform: none;
	box-shadow: none;
	border-color: transparent;
}

.li-etapes .li-numero {
	width: 3rem;
	height: 3rem;
	font-size: 1.1rem;
	background: linear-gradient(135deg, var(--wp--preset--color--violet), var(--wp--preset--color--violet-fonce));
	color: #fff;
	box-shadow: 0 0 0 6px rgb(120 38 255 / 15%);
	position: relative;
	z-index: 1;
}

@media (min-width: 900px) {
	.li-etapes > .is-style-carte:not(:last-child)::after {
		content: "";
		position: absolute;
		top: calc(clamp(1.5rem, 3vw, 2rem) + 1.5rem);
		left: 3.75rem;
		right: -0.25rem;
		height: 2px;
		background: linear-gradient(90deg, rgb(164 124 255 / 60%), rgb(164 124 255 / 10%));
	}
}

/* ---------- Héros : deux captures et une notification ---------- */

.li-heros::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(40% 50% at 75% 40%, rgb(120 38 255 / 22%), transparent 70%);
	pointer-events: none;
}

.li-heros-visuel {
	position: relative;
	padding-bottom: 12%;
}

.li-heros-visuel .wp-block-image {
	margin: 0;
}

.li-heros-second {
	position: absolute !important;
	left: -8%;
	bottom: 0;
	width: 58%;
}

.li-toast {
	position: absolute;
	right: 2%;
	bottom: 6%;
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: var(--li-e2);
	align-items: center;
	padding: 0.75rem var(--li-e2) 0.75rem 0.75rem;
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: 14px;
	background: rgb(24 23 29 / 92%);
	box-shadow: 0 16px 40px rgb(0 0 0 / 45%);
}

.li-toast::before {
	content: "";
	grid-row: span 2;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: rgb(66 199 73 / 18%);
}

.li-toast::after {
	content: "";
	position: absolute;
	left: calc(0.75rem + 9px);
	top: 50%;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	background: var(--wp--preset--color--vert);
	mask: var(--li-ico-mail) center / contain no-repeat;
}

.li-toast p {
	margin: 0;
	line-height: 1.3;
}

.li-toast-titre {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--wp--preset--color--blanc);
}

.li-toast-texte {
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

.li-legende {
	margin-top: var(--li-e2) !important;
	font-size: var(--wp--preset--font-size--petit);
	color: var(--wp--preset--color--discret);
}

@media (max-width: 781px) {
	.li-heros-visuel {
		padding-bottom: 0;
	}
	.li-heros-second {
		display: none;
	}
	.li-toast {
		right: 4%;
		bottom: -6%;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.li-heros .wp-block-column:first-child > * {
		animation: li-entree 0.7s var(--li-courbe) both;
	}
	.li-heros .wp-block-column:first-child > :nth-child(2) { animation-delay: 0.06s; }
	.li-heros .wp-block-column:first-child > :nth-child(3) { animation-delay: 0.12s; }
	.li-heros .wp-block-column:first-child > :nth-child(4) { animation-delay: 0.18s; }
	.li-heros .wp-block-column:first-child > :nth-child(n+5) { animation-delay: 0.24s; }
	.li-heros-principal {
		animation: li-entree 0.9s 0.1s var(--li-courbe) both;
	}
	.li-heros-second {
		animation: li-entree 0.9s 0.3s var(--li-courbe) both;
	}
	.li-toast {
		animation: li-toast 0.6s 0.9s var(--li-courbe) both, li-flotte 5s 1.5s ease-in-out infinite;
	}
}

@keyframes li-entree {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
}

@keyframes li-toast {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.96);
	}
}

@keyframes li-flotte {
	50% {
		transform: translateY(-6px);
	}
}

/* ---------- Panneau « reprise de site » ---------- */

.li-colonnes-centrees {
	align-items: center !important;
}

.li-panneau {
	padding: var(--li-e4);
	border: 1px solid var(--li-trait);
	border-radius: calc(var(--li-rayon) + 4px);
	background:
		radial-gradient(80% 60% at 100% 0%, rgb(120 38 255 / 18%), transparent 70%),
		var(--wp--preset--color--surface);
	box-shadow: var(--li-ombre);
}

.li-panneau-titre {
	display: flex;
	align-items: center;
	gap: var(--li-e1);
	margin: 0 0 var(--li-e1) !important;
	padding-bottom: var(--li-e2);
	border-bottom: 1px solid var(--li-trait);
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-panneau-titre::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
	box-shadow: 0 0 0 4px rgb(66 199 73 / 20%);
}

.li-panneau .is-style-coches {
	margin: 0;
}

.li-panneau .is-style-coches li {
	padding: var(--li-e1) 0 var(--li-e1) 2rem;
	margin: 0;
	border-bottom: 1px dashed rgb(255 255 255 / 8%);
}

.li-panneau .is-style-coches li:last-child {
	border-bottom: 0;
}

.li-panneau .is-style-coches li::before {
	top: 0.75rem;
	background-color: var(--wp--preset--color--vert);
}

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.li-coches-anim li::before {
			animation: li-coche linear both;
			animation-timeline: view();
		}
		.li-coches-anim li:nth-child(1)::before { animation-range: entry 60% cover 30%; }
		.li-coches-anim li:nth-child(2)::before { animation-range: entry 70% cover 33%; }
		.li-coches-anim li:nth-child(3)::before { animation-range: entry 80% cover 36%; }
		.li-coches-anim li:nth-child(4)::before { animation-range: entry 90% cover 39%; }
		.li-coches-anim li:nth-child(5)::before { animation-range: entry 100% cover 42%; }
	}
}

@keyframes li-coche {
	from {
		transform: scale(0.4);
		background-color: var(--wp--preset--color--trait);
	}
}

/* ---------- Visuel de secours (réalisation sans capture) ---------- */

.li-visuel-defaut,
.li-visuel-defaut a {
	box-sizing: border-box;
	width: 100%;
	align-self: stretch;
}

.li-visuel-defaut a {
	display: grid;
	place-items: center;
	align-content: center;
	gap: var(--li-e1);
	aspect-ratio: 16 / 9;
	text-decoration: none;
	color: var(--wp--preset--color--discret);
	font-size: 0.9rem;
	border: 1px dashed rgb(255 255 255 / 14%);
	border-radius: var(--li-rayon-s);
}

.li-visuel-defaut a::before {
	content: "";
	width: 36px;
	height: 36px;
	background: currentColor;
	mask: var(--li-ico-image-off) center / contain no-repeat;
	opacity: 0.7;
}

/* ---------- Boutons : flèche et relief ---------- */

.wp-block-button:not(.is-style-contour) .wp-block-button__link {
	box-shadow: 0 8px 22px rgb(120 38 255 / 30%);
}

.wp-block-button:not(.is-style-contour) .wp-block-button__link:hover {
	box-shadow: 0 10px 28px rgb(120 38 255 / 45%);
	transform: translateY(-1px);
}

.li-section .wp-block-button:not(.is-style-contour) .wp-block-button__link::after,
.li-heros .wp-block-button:not(.is-style-contour) .wp-block-button__link::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-left: 0.5em;
	vertical-align: -0.15em;
	background: currentColor;
	mask: var(--li-ico-fleche) center / contain no-repeat;
	transition: transform 0.2s var(--li-courbe);
}

.wp-block-button__link:hover::after {
	transform: translateX(3px);
}

/* ---------- Avis et liens de preuve ---------- */

.li-liens-preuves {
	font-size: 0.95rem;
	color: var(--wp--preset--color--discret);
}

.li-avis {
	position: relative;
}

.li-avis::before {
	content: "\201C";
	position: absolute;
	top: 0.25rem;
	right: 1rem;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 4rem;
	line-height: 1;
	color: rgb(164 124 255 / 35%);
}

/* ---------- Ouvertures en douceur : FAQ, menu mobile, infobulles ---------- */

@supports (interpolate-size: allow-keywords) {
	:root {
		interpolate-size: allow-keywords;
	}
	.li-faq .wp-block-details::details-content {
		block-size: 0;
		overflow: hidden;
		transition: block-size 0.3s var(--li-courbe), content-visibility 0.3s allow-discrete;
	}
	.li-faq .wp-block-details[open]::details-content {
		block-size: auto;
	}
}

.li-faq .wp-block-details summary:hover {
	color: var(--wp--preset--color--violet-clair);
}

@media (prefers-reduced-motion: no-preference) {
	.li-definition:popover-open {
		animation: li-menu 0.18s var(--li-courbe) both;
	}
}

@keyframes li-menu {
	from {
		opacity: 0;
		transform: translateY(-6px) scale(0.98);
	}
}

/* ---------- Apparition au défilement (sans JavaScript) ---------- */

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.li-section .li-grille-cartes > *,
		.li-section .li-carte-realisation,
		.li-section .li-avis,
		.li-panneau {
			animation: li-apparition linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 30%;
		}
	}
}

/* Glissement seul : l'opacité reste à 1 pour garder le contraste du texte à tout moment. */
@keyframes li-apparition {
	from {
		transform: translateY(28px) scale(0.98);
	}
}

/* ---------- Transitions entre les pages ---------- */

@view-transition {
	navigation: auto;
}

.wp-site-blocks > header.wp-block-template-part {
	view-transition-name: li-entete;
}

@media (prefers-reduced-motion: no-preference) {
	::view-transition-old(root) {
		animation: 0.18s ease-in both li-sortie;
	}
	::view-transition-new(root) {
		animation: 0.3s var(--li-courbe) both li-entree;
	}
}

@media (prefers-reduced-motion: reduce) {
	::view-transition-group(*),
	::view-transition-old(*),
	::view-transition-new(*) {
		animation: none !important;
	}
}

@keyframes li-sortie {
	to {
		opacity: 0;
	}
}

/* ---------- Espacements : relations entre blocs (voir la règle en tête de fichier) ---------- */

/* Un surtitre colle à son titre. */
.is-style-surtitre + * {
	margin-block-start: var(--li-e1) !important;
}

/* Titre de carte → texte. */
.is-style-carte h3 + p {
	margin-top: var(--li-e1);
}

/* Avant un bouton ou une grille dans un bloc de texte. */
:where(.is-layout-flow, .is-layout-constrained) > .wp-block-buttons:not(:first-child),
:where(.is-layout-flow, .is-layout-constrained) > .li-grille-cartes:not(:first-child),
:where(.is-layout-flow, .is-layout-constrained) > .li-contact-direct:not(:first-child) {
	margin-block-start: var(--li-e4);
}

.li-heros :where(.is-layout-flow, .is-layout-constrained) > .li-contact-direct,
.li-heros .li-preuves {
	margin-block-start: var(--li-e3);
}

/* Les questions de FAQ sont séparées par leur filet : pas d'écart en plus. */
.li-faq > .wp-block-details + .wp-block-details {
	margin-block-start: 0;
}

.li-prix-reglement {
	margin: var(--li-e1) 0 0;
	font-size: 0.9rem;
	color: var(--wp--preset--color--discret);
}

@media (max-width: 600px) {
	.li-formule,
	.li-avis,
	.li-panneau {
		padding: var(--li-e3);
	}
}

/* Numéro d'étape → titre : 16 px (la marge du numéro suffit). */
.li-numero + h3 {
	margin-top: 0 !important;
}

/* Grille de tarifs → option Ads (avant un nouveau bloc : 32 px), option → mention (même bloc : 8 px). */
.li-tarifs .li-tarifs-option {
	margin: var(--li-e4) 0 0;
}

.li-tarifs .li-tarifs-mention {
	margin: var(--li-e3) 0 0;
}

/* Anciens blocs « Espacement » des articles : la marge des titres (48 px) suffit. */
.li-article .wp-block-post-content > .wp-block-spacer {
	display: none;
}

/* Image → légende : même élément, 8 px. */
.wp-element-caption {
	margin-top: var(--li-e1);
}

/* Boutons des formules : pleine largeur, sur une ligne. */
.li-formule .wp-block-button,
.li-formule .wp-block-button__link {
	width: 100%;
}

.li-formule .wp-block-button__link {
	padding-inline: var(--li-e2);
	white-space: nowrap;
}

/* ---------- Visuels d'exemple (captures des sites clients) ---------- */

/* Carte avec visuel : la capture occupe le haut de la carte, bord à bord. */
.li-carte-visuel {
	position: relative;
	overflow: hidden;
}

.li-carte-visuel > .li-exemple,
.li-carte-visuel > .li-statut {
	margin: calc(-1 * clamp(1.5rem, 3vw, 2rem)) calc(-1 * clamp(1.5rem, 3vw, 2rem)) var(--li-e3) !important;
}

.li-carte-visuel > .li-exemple {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background:
		radial-gradient(70% 90% at 50% 100%, rgb(120 38 255 / 30%), transparent 70%),
		var(--wp--preset--color--surface-2);
}

.li-carte-visuel > .li-exemple img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	transition: transform 0.5s var(--li-courbe);
}

.li-carte-visuel:hover > .li-exemple img {
	transform: scale(1.03);
}

/* Capture de téléphone : écran arrondi qui dépasse du bas de la zone. */
.li-carte-visuel > .li-visuel-mobile {
	display: flex;
	justify-content: center;
	padding: var(--li-e3) var(--li-e3) 0;
}

.li-carte-visuel > .li-visuel-mobile img {
	width: 62%;
	height: auto;
	min-height: 100%;
	border: 6px solid #1c1b22;
	border-bottom: 0;
	border-radius: 26px 26px 0 0;
	box-shadow: 0 -8px 30px rgb(0 0 0 / 35%);
}

/* Capture d'ordinateur dans une carte : affichée entière, comme une capture d'écran posée. */
.li-carte-visuel > .li-visuel-bureau {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--li-e3) var(--li-e3) var(--li-e5);
}

.li-carte-visuel > .li-visuel-bureau img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	min-height: 0;
	object-fit: contain;
	border-radius: var(--li-e1);
	box-shadow: 0 12px 28px rgb(0 0 0 / 40%);
}

/* Portrait et maquette d'ordinateur dans les étapes. */
.li-carte-visuel > .li-visuel-portrait img {
	object-position: center 25%;
}

.li-carte-visuel > .li-visuel-ecran {
	padding: var(--li-e3) var(--li-e3) var(--li-e1);
}

.li-carte-visuel > .li-visuel-ecran img {
	object-fit: contain;
	filter: drop-shadow(0 10px 16px rgb(0 0 0 / 45%));
}

/* Légende posée sur la capture : le nom du site client. */
.li-carte-visuel > .li-exemple figcaption {
	position: absolute;
	left: var(--li-e2);
	bottom: var(--li-e2);
	margin: 0;
	padding: 0.25rem var(--li-e1);
	border-radius: 999px;
	background: rgb(15 15 15 / 82%);
	color: var(--wp--preset--color--blanc);
	font-size: 0.75rem;
	font-weight: 600;
}

/* Numéro d'étape posé sur le visuel. */
.li-etapes-visuelles .li-carte-visuel > .li-numero {
	position: absolute;
	top: var(--li-e2);
	left: var(--li-e2);
	z-index: 2;
	margin: 0 !important;
	background: linear-gradient(135deg, var(--wp--preset--color--violet), var(--wp--preset--color--violet-fonce));
	color: #fff;
	box-shadow: 0 6px 16px rgb(0 0 0 / 35%);
}

.li-etapes-visuelles .li-carte-visuel > .li-numero + h3 {
	margin-top: 0 !important;
}

/* Capture en haut de page, dans un cadre de navigateur. */
.li-visuel-cadre img {
	border-radius: var(--li-rayon);
	border: 1px solid rgb(255 255 255 / 10%);
	box-shadow: 0 24px 60px rgb(0 0 0 / 50%);
	filter: none;
}

.li-visuel-cadre figcaption {
	margin-top: var(--li-e2);
	font-size: var(--wp--preset--font-size--petit);
	color: var(--wp--preset--color--discret);
}

/* Capture de téléphone seule (boutique, réalisation sans capture d'ordinateur). */
.li-visuel-seul {
	max-width: 300px;
	margin-top: var(--li-e4) !important;
}

.li-visuel-mobile.li-visuel-seul img,
.li-telephone img {
	border: 8px solid #1c1b22;
	border-radius: 32px;
	box-shadow: 0 24px 50px rgb(0 0 0 / 45%);
}

.li-visuel-seul figcaption {
	margin-top: var(--li-e1);
	font-size: var(--wp--preset--font-size--petit);
	color: var(--wp--preset--color--discret);
}

/* Réalisation : version mobile posée sur la capture d'ordinateur. */
.li-heros-visuel-mobile {
	padding-bottom: 8%;
}

.li-heros-mobile {
	position: absolute !important;
	right: -2%;
	bottom: 0;
	width: 26%;
	margin: 0 !important;
}

@media (max-width: 781px) {
	.li-heros-mobile {
		width: 30%;
		right: 0;
	}
}

/* ---------- Encart « maintenance du mois » ---------- */

.li-statut {
	padding: var(--li-e3);
	background:
		radial-gradient(80% 70% at 100% 0%, rgb(66 199 73 / 14%), transparent 70%),
		var(--wp--preset--color--surface-2);
}

.li-statut-titre {
	display: flex;
	align-items: center;
	gap: var(--li-e1);
	margin: 0 0 var(--li-e2) !important;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-statut-titre::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
	box-shadow: 0 0 0 4px rgb(66 199 73 / 20%);
}

.li-statut-liste {
	margin: 0 !important;
	font-size: 0.95rem;
}

.li-statut-liste li::before {
	background-color: var(--wp--preset--color--vert) !important;
}

.li-statut-carte {
	aspect-ratio: 16 / 10;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.li-statut-heros {
	padding: var(--li-e4);
	border: 1px solid var(--li-trait);
	border-radius: calc(var(--li-rayon) + 4px);
	box-shadow: var(--li-ombre);
}

.li-statut-heros .li-statut-liste {
	font-size: 1.05rem;
}

/* Photo de la page Contact. */
.li-photo-contact img {
	aspect-ratio: 4 / 5;
	max-height: 520px;
	object-fit: cover;
	object-position: center 20%;
}

/* Encart « maintenance du mois » posé sur la capture d'un site client. */
.li-statut-flottant {
	position: absolute !important;
	left: -6%;
	bottom: 0;
	width: 58%;
	padding: var(--li-e3);
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: var(--li-rayon);
	box-shadow: 0 20px 50px rgb(0 0 0 / 50%);
}

@media (max-width: 781px) {
	.li-statut-flottant {
		position: relative !important;
		left: 0;
		width: 100%;
		margin-top: var(--li-e3) !important;
	}
}

/* ---------- Plan du site ---------- */

.li-plan {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr));
	gap: var(--li-e5) var(--li-e4);
	margin-top: var(--li-e5);
}

.li-plan-groupe h2 {
	margin: 0 0 var(--li-e2);
	font-size: var(--wp--preset--font-size--grand);
}

.li-plan-groupe ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.li-plan-groupe li {
	margin-bottom: var(--li-e1);
}

/* ---------- Cartes de services : toute la carte est cliquable ---------- */

.li-cartes-liens > .is-style-carte {
	position: relative;
}

.li-cartes-liens h3 a {
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
}

.li-cartes-liens h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.li-cartes-liens h3::after {
	content: "";
	display: inline-block;
	width: 0.8em;
	height: 0.8em;
	margin-left: var(--li-e1);
	background: var(--wp--preset--color--violet-clair);
	mask: var(--li-ico-fleche) center / contain no-repeat;
	transition: transform 0.2s var(--li-courbe);
}

.li-cartes-liens > .is-style-carte:hover h3::after {
	transform: translateX(4px);
}

.li-cartes-liens > .is-style-carte:focus-within {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

/* Liens vers les autres services, en pastilles. */
.li-liens-services {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1);
	padding: 0;
	list-style: none;
}

.li-liens-services li {
	margin: 0;
}

.li-liens-services a {
	display: inline-block;
	padding: var(--li-e1) var(--li-e2);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	color: var(--wp--preset--color--texte);
	text-decoration: none;
}

.li-liens-services a:hover {
	border-color: var(--wp--preset--color--violet-clair);
	color: var(--wp--preset--color--blanc);
}

/* Cartes d'articles : la date reste en bas, les cartes d'une même ligne s'alignent. */
.li-carte-article,
.li-carte-article-texte {
	display: flex;
	flex-direction: column;
}

.li-carte-article-texte {
	flex: 1;
}

.li-carte-article-texte > .li-lecture {
	margin-top: auto !important;
	padding-top: var(--li-e2);
}

/* Tableaux sur téléphone : texte plus petit pour garder toutes les colonnes visibles. */
@media (max-width: 600px) {
	.wp-block-table table {
		font-size: 0.85rem;
	}
	.wp-block-table th,
	.wp-block-table td {
		padding: var(--li-e1) var(--li-e2);
	}
}

/* Zone visuelle des cartes : même hauteur pour un téléphone, un ordinateur ou l'encart maintenance.
   Les marges intérieures sont comprises dans le format 16/10, les titres démarrent tous à la même hauteur. */
.li-carte-visuel > :is(.li-exemple, .li-statut) {
	box-sizing: border-box;
	aspect-ratio: 16 / 10;
	height: auto;
	overflow: hidden;
}

.li-carte-visuel > .li-visuel-mobile img {
	min-height: 0;
}

/* Menu plein écran : colonnes alignées en haut, miniatures alignées sur le bord des titres. */
.li-menu-plein > *,
.li-menu-plein-colonnes > *,
.li-menu-plein-bloc > * {
	margin-block: 0 !important;
}

.li-menu-plein-bloc > .li-menu-plein-titre {
	margin-bottom: var(--li-e2) !important;
}

.li-menu-plein-services {
	margin-inline: calc(-1 * var(--li-e1));
}

/* ---------- Prise de rendez-vous [lorem_rendez_vous] ---------- */

.li-rdv {
	padding: var(--li-e4);
	border: 1px solid var(--li-trait);
	border-radius: calc(var(--li-rayon) + 4px);
	background: var(--wp--preset--color--surface);
	box-shadow: var(--li-ombre);
}

.li-rdv fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.li-rdv-etape + .li-rdv-etape {
	margin-top: var(--li-e4);
	padding-top: var(--li-e4);
	border-top: 1px solid var(--li-trait);
}

.li-rdv-titre {
	margin: 0 0 var(--li-e2);
	padding: 0;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-rdv-attente {
	margin: 0;
	color: var(--wp--preset--color--discret);
}

/* Calendrier du mois : en-tête avec navigation, 7 colonnes du lundi au dimanche. */
.li-cal-tete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--li-e2);
	margin-bottom: var(--li-e2);
}

.li-cal-mois {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1.25rem;
	color: var(--wp--preset--color--blanc);
	text-transform: capitalize;
}

.li-cal-nav {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	font: inherit;
	font-size: 1.4rem;
	line-height: 1;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: 50%;
	cursor: pointer;
}

.li-cal-nav:hover:not(:disabled) {
	border-color: var(--wp--preset--color--violet-clair);
}

.li-cal-nav:disabled {
	opacity: 0.3;
	cursor: default;
}

.li-cal-grille {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}

.li-cal-semaine {
	padding-bottom: var(--li-e1);
	text-align: center;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--discret);
}

.li-cal-jour {
	position: relative;
	aspect-ratio: 1;
	min-height: 40px;
	padding: 0;
	font: inherit;
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
	cursor: pointer;
	transition: border-color 0.2s var(--li-courbe), background 0.2s var(--li-courbe);
}

/* Petit point vert sous les jours qui ont des créneaux libres. */
.li-cal-jour:not(:disabled)::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
}

.li-cal-jour:hover:not(:disabled) {
	border-color: var(--wp--preset--color--violet-clair);
}

.li-cal-jour:disabled {
	color: rgb(255 255 255 / 28%);
	background: transparent;
	border-color: transparent;
	cursor: default;
}

/* Aujourd'hui : cercle jaune, même sans créneau. */
.li-cal-jour[aria-current="date"] {
	color: var(--wp--preset--color--kap);
	border: 2px solid var(--wp--preset--color--kap);
	font-weight: 700;
}

.li-cal-jour[aria-pressed="true"] {
	color: #fff;
	background: var(--wp--preset--color--violet);
	border-color: var(--wp--preset--color--violet);
}

.li-cal-jour[aria-pressed="true"]::after {
	background: #fff;
}

.li-cal-legende {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--li-e1) var(--li-e2);
	margin-top: var(--li-e2) !important;
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

.li-cal-legende > span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	white-space: nowrap;
}

.li-cal-cle {
	display: inline-block;
	box-sizing: border-box;
	width: 14px;
	height: 14px;
	border-radius: 4px;
}

.li-cal-cle-aujourdhui {
	border: 2px solid var(--wp--preset--color--kap);
}

.li-cal-cle-libre {
	border: 1px solid var(--li-trait);
	background: var(--wp--preset--color--fond) radial-gradient(circle at 50% 75%, var(--wp--preset--color--vert) 2px, transparent 2.5px);
}

.li-cal-cle-choisi {
	background: var(--wp--preset--color--violet);
}

/* Heures. */
.li-rdv-heure {
	font: inherit;
	color: var(--wp--preset--color--texte);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
	cursor: pointer;
	transition: border-color 0.2s var(--li-courbe), background 0.2s var(--li-courbe);
}

.li-rdv-heures {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: var(--li-e1);
}

.li-rdv-heure {
	padding: var(--li-e1);
	font-weight: 600;
}

.li-rdv-heure:hover {
	border-color: var(--wp--preset--color--violet-clair);
}

.li-rdv-heure[aria-pressed="true"] {
	background: var(--wp--preset--color--violet);
	border-color: var(--wp--preset--color--violet);
	color: #fff;
}

.li-rdv-choix {
	margin: 0 0 var(--li-e3);
	padding: var(--li-e2);
	border-radius: var(--li-rayon-s);
	background: rgb(120 38 255 / 14%);
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
}

/* Formulaire. */
.li-rdv-champs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr));
	gap: var(--li-e2);
}

.li-rdv p {
	margin: 0;
}

.li-rdv-etape > p + p,
.li-rdv-mode,
.li-rdv-mode + p {
	margin-top: var(--li-e2);
}

.li-rdv label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
}

.li-rdv label span {
	font-weight: 400;
	color: var(--wp--preset--color--discret);
}

.li-rdv input:not([type="radio"]),
.li-rdv textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 0.7rem var(--li-e2);
	font: inherit;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-rdv input:focus,
.li-rdv textarea:focus {
	border-color: var(--wp--preset--color--violet-clair);
	outline: none;
}

.li-rdv-mode {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1);
}

.li-rdv-mode label {
	display: flex;
	align-items: center;
	gap: var(--li-e1);
	margin: 0;
	padding: var(--li-e1) var(--li-e2);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	font-weight: 500;
	cursor: pointer;
}

.li-rdv-mode label:has(input:checked) {
	border-color: var(--wp--preset--color--violet-clair);
	background: rgb(120 38 255 / 14%);
}

.li-rdv-mode input {
	accent-color: var(--wp--preset--color--violet);
}

.li-rdv-piege {
	position: absolute;
	left: -9999px;
}

[data-rdv-turnstile]:not(:empty) {
	margin-top: var(--li-e2);
}

.li-rdv-bouton {
	margin-top: var(--li-e3);
	border: 0;
	cursor: pointer;
}

.li-rdv-statut:not(:empty) {
	margin-top: var(--li-e2);
	color: var(--wp--preset--color--kap);
}

.li-rdv-confirmation:focus {
	outline: none;
}

.li-rdv-date {
	margin: 0 0 var(--li-e1) !important;
	font-family: var(--wp--preset--font-family--titre);
	font-size: var(--wp--preset--font-size--grand);
	color: var(--wp--preset--color--blanc);
}

.li-rdv-confirmation > p + p {
	margin-top: var(--li-e1);
}

@media (max-width: 600px) {
	.li-rdv {
		padding: var(--li-e3);
	}
}

/* Étapes du rendez-vous : le titre de chaque étape reste au-dessus du trait de séparation. */
.li-rdv-etape > legend {
	float: left;
	width: 100%;
}

.li-rdv-etape > :not(legend) {
	clear: both;
}

/* Sous-titre dans le haut de page : plus petit que les titres de section. */
.li-titre-moyen {
	margin-top: var(--li-e4) !important;
	font-size: var(--wp--preset--font-size--grand) !important;
}

.li-rdv .li-rdv-choix {
	margin-bottom: var(--li-e3);
}

/* Bouton qui ressemble à un lien (« Gérer les cookies » dans le pied de page). */
.li-lien-bouton {
	padding: 0;
	font: inherit;
	color: var(--wp--preset--color--texte);
	background: none;
	border: 0;
	cursor: pointer;
}

.li-lien-bouton:hover {
	color: var(--wp--preset--color--blanc);
	text-decoration: underline;
}

/* Dans un texte, il prend l'apparence des liens. */
.wp-block-post-content .li-lien-bouton {
	color: var(--wp--preset--color--violet-clair);
	text-decoration: underline;
}

.wp-block-post-content .li-lien-bouton:hover {
	color: var(--wp--preset--color--blanc);
}

/* Bannière cookies : petite carte sombre en bas à droite, Accepter et Refuser côte à côte. */
.li-cookies {
	position: fixed;
	right: var(--li-e2);
	bottom: var(--li-e2);
	z-index: 60;
	display: grid;
	gap: var(--li-e2);
	box-sizing: border-box;
	width: min(360px, calc(100vw - 2 * var(--li-e2)));
	padding: var(--li-e2) var(--li-e3) var(--li-e3);
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--texte);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	box-shadow: var(--li-ombre);
}

.li-cookies[hidden] {
	display: none;
}

.li-cookies p {
	margin: 0;
}

.li-cookies .li-cookies-titre {
	display: flex;
	align-items: center;
	gap: var(--li-e1);
	margin-bottom: var(--li-e1);
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-cookies a {
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

.li-cookies-icone {
	flex: none;
	color: var(--wp--preset--color--kap);
}

.li-cookies-boutons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--li-e1);
}

.li-cookies-bouton {
	min-height: 44px;
	padding: 0.5rem 1rem;
	font: inherit;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--violet);
	border: 2px solid var(--wp--preset--color--violet);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s var(--li-courbe), border-color 0.2s var(--li-courbe);
}

.li-cookies-bouton:hover {
	background: var(--wp--preset--color--violet-fonce);
	border-color: var(--wp--preset--color--violet-fonce);
}

.li-cookies-bouton.is-contour {
	background: transparent;
	border-color: rgb(255 255 255 / 55%);
}

.li-cookies-bouton.is-contour:hover {
	border-color: var(--wp--preset--color--blanc);
}

.li-cookies-bouton:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
	.li-cookies:not([hidden]) {
		animation: li-cookies 0.35s var(--li-courbe) both;
	}
}

@keyframes li-cookies {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
}

@media (max-width: 480px) {
	.li-cookies {
		right: var(--li-e1);
		bottom: var(--li-e1);
		width: calc(100vw - 2 * var(--li-e1));
		max-height: calc(100dvh - 2 * var(--li-e1));
		overflow-y: auto;
	}
}

/* ---------- Images des cartes d'articles ----------
   Image entière, comme sur le blog en ligne : format 16/9, rien n'est coupé. */
.li-carte-article .wp-block-post-featured-image img,
.li-carte-article-image img {
	aspect-ratio: 16 / 9 !important;
	object-fit: contain !important;
	background: var(--wp--preset--color--surface-2);
}

/* Grille du blog : 48 px entre deux lignes de cartes, 32 px entre deux colonnes (écart réglé dans le modèle). */
.li-liste-articles .wp-block-post-template {
	row-gap: var(--li-e5) !important;
}

/* Prix des cartes de tarifs : le libellé passe sous le montant. */
.li-prix-pile .li-prix-mois {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.9rem;
}

/* Articles liés : 16 px entre l'image et le titre, comme sur la page du blog. */
.li-carte-liee > .li-carte-article-image {
	margin-bottom: var(--li-e2);
}

.li-carte-liee > p:empty {
	display: none;
}

/* ---------- Survol des liens ----------
   Liens dans un texte : trait fin qui s'épaissit, le lien passe au blanc.
   Menu et pied de page : trait violet qui se déploie de gauche à droite.
   Boutons et cartes : la flèche avance. */
:where(.wp-block-post-content, .li-faq, .li-definition, .li-cookies) :is(p, li, td, dd, figcaption) a:not([class]),
.li-carte-article-titre a {
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
	padding-bottom: 1px;
	transition: color 0.2s var(--li-courbe), background-size 0.25s var(--li-courbe);
}

.li-carte-article-titre a {
	background-size: 0 2px;
}

:where(.wp-block-post-content, .li-faq, .li-definition, .li-cookies) :is(p, li, td, dd, figcaption) a:not([class]):hover,
.li-carte-article-titre a:hover {
	color: var(--wp--preset--color--blanc);
	background-size: 100% 2px;
}

.li-nav-bureau .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.li-pied-liens a {
	text-decoration: none;
	background: linear-gradient(var(--wp--preset--color--violet), var(--wp--preset--color--violet)) 0 100% / 0 2px no-repeat;
	transition: color 0.2s var(--li-courbe), background-size 0.3s var(--li-courbe);
}

.li-nav-bureau .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.li-nav-bureau .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.li-pied-liens a:hover {
	background-size: 100% 2px;
}

.wp-block-button__link::after {
	transition: transform 0.2s var(--li-courbe);
}

.wp-block-button__link:hover::after {
	transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link:hover::after,
	.li-cartes-liens > .is-style-carte:hover h3::after {
		transform: none;
	}
}

/* ---------- Liens externes ----------
   Icône après le texte (pas sur les boutons ni sur les liens-images), fenêtre de confirmation avant de partir. */
.li-lien-externe:not(.wp-block-button__link):not(:has(img, svg))::after {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	margin-left: 0.3em;
	vertical-align: -0.05em;
	background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s var(--li-courbe);
}

.li-lien-externe:hover::after {
	transform: translate(2px, -2px);
}

.li-sortie {
	box-sizing: border-box;
	width: min(460px, calc(100vw - 2 * var(--li-e2)));
	padding: var(--li-e4);
	color: var(--wp--preset--color--texte);
	text-align: center;
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	box-shadow: var(--li-ombre);
}

.li-sortie::backdrop {
	background: rgb(10 10 10 / 72%);
	backdrop-filter: blur(3px);
}

.li-sortie-icone {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin: 0 auto var(--li-e2);
	color: var(--wp--preset--color--violet-clair);
	background: rgb(120 38 255 / 16%);
	border-radius: 50%;
}

.li-sortie-titre {
	margin: 0 0 var(--li-e1);
	font-size: 1.4rem;
}

.li-sortie-texte {
	margin: 0 0 var(--li-e3);
	color: var(--wp--preset--color--discret);
}

.li-sortie-texte strong {
	color: var(--wp--preset--color--blanc);
	overflow-wrap: anywhere;
}

.li-sortie-boutons {
	display: grid;
	gap: var(--li-e1);
}

.li-sortie-continuer,
.li-sortie-rester {
	display: block;
	min-height: 44px;
	padding: 0.7rem 1.2rem;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	border: 2px solid var(--wp--preset--color--violet);
	border-radius: 999px;
	cursor: pointer;
}

.li-sortie-continuer {
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--violet);
}

.li-sortie-rester {
	color: var(--wp--preset--color--blanc);
	background: transparent;
	border-color: rgb(255 255 255 / 55%);
}

.li-sortie-continuer:focus-visible,
.li-sortie-rester:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

/* ---------- Visuels explicatifs [lorem_visuel] ----------
   Une infographie de 112 px de haut en tête de carte, sur fond sombre avec un halo violet. */
.li-info {
	margin: 0 0 var(--li-e3) !important;
	padding: var(--li-e2);
	background:
		radial-gradient(80% 90% at 20% 0%, rgb(120 38 255 / 18%), transparent 70%),
		var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-info svg {
	display: block;
	width: 100%;
	height: 112px;
	font-family: var(--wp--preset--font-family--texte);
	overflow: visible;
}

.li-info-large svg {
	height: auto;
	max-height: 140px;
}

.li-info .v-fond { fill: var(--wp--preset--color--surface-2); }
.li-info .v-trou { fill: var(--wp--preset--color--fond); }
.li-info .v-violet { fill: var(--wp--preset--color--violet); }
.li-info .v-clair { fill: var(--wp--preset--color--violet-clair); }
.li-info .v-vert { fill: var(--wp--preset--color--vert); }
.li-info .v-jaune { fill: var(--wp--preset--color--kap); }
.li-info .v-blanc { fill: var(--wp--preset--color--blanc); }
.li-info .v-discret { fill: var(--wp--preset--color--discret); }
.li-info .v-clair-texte { fill: var(--wp--preset--color--violet-clair); }
.li-info .v-vide { fill: none; }
.li-info .v-o60 { opacity: 0.6; }
.li-info .v-o30 { opacity: 0.3; }
.li-info .v-trait { stroke: var(--li-trait); stroke-width: 1.5; }
.li-info .v-trait-clair { stroke: var(--wp--preset--color--violet-clair); stroke-width: 2.5; }
.li-info .v-trait-epais { stroke: var(--li-trait); stroke-width: 8; }
.li-info .v-tirets { stroke-dasharray: 4 4; }
.li-info .v-arc { fill: none; stroke: var(--wp--preset--color--violet); stroke-width: 8; stroke-linecap: round; stroke-dasharray: 80 100; }
.li-info .v-ligne { fill: none; stroke: var(--li-trait); stroke-width: 2; }
.li-info .v-ligne-clair { fill: none; stroke: var(--wp--preset--color--violet-clair); stroke-width: 1.5; opacity: 0.7; }
.li-info .v-ligne-epaisse { fill: none; stroke: var(--wp--preset--color--fond); stroke-width: 10; }
.li-info .v-ligne-noire { fill: none; stroke: rgb(0 0 0 / 35%); stroke-width: 10; }
.li-info :is(.v-trace-blanc, .v-trace-clair, .v-trace-jaune) { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.li-info .v-trace-blanc { stroke: var(--wp--preset--color--blanc); }
.li-info .v-trace-clair { stroke: var(--wp--preset--color--violet-clair); }
.li-info .v-trace-jaune { stroke: var(--wp--preset--color--kap); }

/* Carte avec un visuel : le numéro d'étape passe au-dessus du titre, plus petit. */
.is-style-carte > .li-info + .li-numero {
	margin-top: 0;
}

/* ---------- Cartes de tarifs : création + forfait réunis ---------- */
.li-prix-pile {
	padding: var(--li-e2);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-prix-pile .li-prix {
	font-size: 2.2rem;
}

.li-prix-plus {
	margin: var(--li-e1) 0 0;
	padding-top: var(--li-e1);
	font-weight: 700;
	color: var(--wp--preset--color--violet-clair);
	border-top: 1px dashed var(--li-trait);
}

/* ---------- Calculateur de prix [lorem_calculateur] ----------
   Choix à gauche, estimation fixe à droite sur grand écran. */
.li-calc {
	display: grid;
	gap: var(--li-e4);
	align-items: start;
}

@media (min-width: 1000px) {
	.li-calc {
		grid-template-columns: minmax(0, 1fr) 360px;
	}
	.li-calc-recap {
		position: sticky;
		top: 104px;
	}
}

.li-calc-choix-liste {
	display: grid;
	gap: var(--li-e4);
}

.li-calc-bloc {
	margin: 0;
	padding: 0;
	border: 0;
}

.li-calc-bloc[hidden],
.li-calc-cartes[hidden] {
	display: none;
}

.li-calc-bloc legend {
	margin-bottom: var(--li-e2);
	padding: 0;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1.25rem;
	color: var(--wp--preset--color--blanc);
}

.li-calc-cartes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--li-e1);
}

.li-calc-cartes + .li-calc-cartes {
	margin-top: var(--li-e2);
}

.li-calc-carte {
	position: relative;
	display: grid;
	gap: 0.25rem;
	padding: var(--li-e2);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
	cursor: pointer;
	transition: border-color 0.2s var(--li-courbe), background 0.2s var(--li-courbe);
}

.li-calc-carte input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.li-calc-carte:hover {
	border-color: var(--wp--preset--color--violet-clair);
}

.li-calc-carte:has(input:checked) {
	background: rgb(120 38 255 / 14%);
	border-color: var(--wp--preset--color--violet);
	box-shadow: 0 0 0 1px var(--wp--preset--color--violet);
}

.li-calc-carte:has(input:focus-visible) {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 2px;
}

.li-calc-carte.est-indisponible {
	opacity: 0.4;
	cursor: not-allowed;
}

.li-calc-carte-titre {
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-calc-carte-detail {
	font-size: 0.875rem;
	color: var(--wp--preset--color--discret);
}

.li-calc-carte-detail:empty {
	display: none;
}

.li-calc-compteur {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--li-e1) var(--li-e2);
	padding: var(--li-e2) 0;
	border-bottom: 1px solid var(--li-trait);
}

.li-calc-compteur label {
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
}

.li-calc-compteur-boutons {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	background: var(--li-surface);
}

.li-calc-compteur-boutons button {
	width: 44px;
	height: 44px;
	font: inherit;
	font-size: 1.2rem;
	color: var(--wp--preset--color--blanc);
	background: none;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.li-calc-compteur-boutons button:hover {
	color: var(--wp--preset--color--violet-clair);
}

.li-calc-compteur-boutons input {
	width: 3.5em;
	font: inherit;
	font-weight: 700;
	text-align: center;
	color: var(--wp--preset--color--blanc);
	background: none;
	border: 0;
	-moz-appearance: textfield;
}

.li-calc-compteur-boutons input::-webkit-inner-spin-button {
	appearance: none;
}

.li-calc-aide {
	flex-basis: 100%;
	margin: 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}

.li-calc-aide:empty {
	display: none;
}

.li-calc-cartes + .li-calc-aide {
	margin-top: var(--li-e1);
}

.li-calc-case {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--li-e1);
	margin: var(--li-e2) 0;
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
	cursor: pointer;
}

.li-calc-case input {
	width: 20px;
	height: 20px;
	accent-color: var(--wp--preset--color--violet);
}

.li-calc-case span {
	font-weight: 400;
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}

.li-calc-recap {
	padding: var(--li-e3);
	background: var(--li-surface);
	border: 1px solid var(--wp--preset--color--violet);
	border-radius: var(--li-rayon);
	box-shadow: var(--li-ombre);
}

.li-calc-recap > p {
	margin: 0;
}

.li-calc-recap .li-calc-recap-titre {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--discret);
}

.li-calc-recap .li-calc-recap-formule {
	margin: 0.25rem 0 var(--li-e2);
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1.6rem;
	color: var(--wp--preset--color--blanc);
}

.li-calc-lignes {
	display: grid;
	gap: var(--li-e1);
	margin: 0 0 var(--li-e2);
}

.li-calc-lignes div {
	display: flex;
	justify-content: space-between;
	gap: var(--li-e2);
	padding-bottom: var(--li-e1);
	border-bottom: 1px solid var(--li-trait);
}

.li-calc-lignes dt {
	font-size: 0.95rem;
	color: var(--wp--preset--color--texte);
}

.li-calc-lignes dt small {
	display: block;
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

.li-calc-lignes dd {
	margin: 0;
	font-weight: 700;
	white-space: nowrap;
	color: var(--wp--preset--color--blanc);
}

.li-calc-totaux {
	display: grid;
	gap: var(--li-e1);
	margin-bottom: var(--li-e2);
}

.li-calc-totaux p {
	display: flex;
	justify-content: space-between;
	gap: var(--li-e2);
	margin: 0;
}

.li-calc-totaux strong {
	text-align: right;
	color: var(--wp--preset--color--blanc);
}

.li-calc-totaux .li-calc-total {
	padding-top: var(--li-e1);
	font-size: 1.15rem;
	border-top: 1px solid var(--li-trait);
}

.li-calc-totaux .li-calc-total strong {
	color: var(--wp--preset--color--violet-clair);
}

.li-calc-recap .li-calc-note,
.li-commande .li-calc-note {
	margin: 0 0 var(--li-e2);
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

.li-calc-actions {
	display: grid;
	gap: var(--li-e1);
}

.li-calc-bouton {
	min-height: 48px;
	padding: 0.7rem 1.2rem;
	font: inherit;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--violet);
	border: 2px solid var(--wp--preset--color--violet);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s var(--li-courbe), border-color 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.li-calc-bouton:hover {
	background: var(--wp--preset--color--violet-fonce);
	border-color: var(--wp--preset--color--violet-fonce);
	transform: translateY(-1px);
}

.li-calc-bouton.is-contour {
	background: transparent;
	border-color: rgb(255 255 255 / 55%);
}

.li-calc-bouton.is-contour:hover {
	border-color: var(--wp--preset--color--blanc);
}

.li-calc-bouton:disabled {
	opacity: 0.6;
	cursor: wait;
}

.li-calc-bouton:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

.li-calc-lien {
	text-align: center;
	font-size: 0.9rem;
	color: var(--wp--preset--color--violet-clair);
}

/* Fenêtre de commande. */
.li-commande {
	box-sizing: border-box;
	width: min(520px, calc(100vw - 2 * var(--li-e2)));
	max-height: calc(100dvh - 2 * var(--li-e2));
	padding: var(--li-e4);
	color: var(--wp--preset--color--texte);
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	box-shadow: var(--li-ombre);
}

.li-commande::backdrop {
	background: rgb(10 10 10 / 72%);
	backdrop-filter: blur(3px);
}

.li-commande-formulaire > p {
	margin: 0 0 var(--li-e2);
}

.li-commande .li-commande-titre {
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1.5rem;
	color: var(--wp--preset--color--blanc);
}

.li-commande .li-commande-recap {
	color: var(--wp--preset--color--violet-clair);
	font-weight: 600;
}

.li-commande label {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
}

.li-commande label span {
	font-weight: 400;
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}

.li-commande :is(input:not([type="checkbox"]), textarea) {
	box-sizing: border-box;
	width: 100%;
	padding: 0.7rem 0.9rem;
	font: inherit;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-commande :is(input, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--violet-clair);
	outline-offset: 1px;
}

.li-commande .li-calc-case label {
	display: inline;
	margin: 0;
}

.li-commande .li-commande-piege {
	position: absolute;
	left: -9999px;
}

.li-commande-statut:empty {
	display: none;
}

.li-commande-boutons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--li-e1);
	margin-bottom: var(--li-e2);
}

/* ---------- En-tête : une ligne très légère sous la barre ---------- */
.wp-site-blocks > header.wp-block-template-part {
	border-bottom: 1px solid rgb(255 255 255 / 6%);
}

/* ---------- Pied de page : même trait animé sur tous les liens ---------- */
.li-pied a:not(.li-pied-action):not(:has(svg)),
.li-pied .li-lien-bouton {
	text-decoration: none;
	background: linear-gradient(var(--wp--preset--color--violet), var(--wp--preset--color--violet)) 0 100% / 0 2px no-repeat;
	transition: color 0.2s var(--li-courbe), background-size 0.3s var(--li-courbe);
}

.li-pied a:not(.li-pied-action):not(:has(svg)):hover,
.li-pied .li-lien-bouton:hover {
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
	background-size: 100% 2px;
}

/* Sur ordinateur : derniers guides, contact rapide, réseaux et badges. */
.li-pied-plus {
	display: none;
}

@media (min-width: 1000px) {
	.li-pied-plus {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--li-e5);
		margin-top: var(--li-e5) !important;
		padding-top: var(--li-e4);
		border-top: 1px solid rgb(255 255 255 / 7%);
	}
}

.li-pied-plus ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.li-pied-guides li + li {
	margin-top: var(--li-e2);
}

.li-pied-guides span {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

.li-pied-jours {
	margin: 0 0 var(--li-e2);
	color: var(--wp--preset--color--discret);
}

.li-pied-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1);
	margin: 0;
}

.li-pied-action {
	padding: 0.5rem 1rem;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--wp--preset--color--blanc) !important;
	border: 1px solid rgb(255 255 255 / 30%);
	border-radius: 999px;
	transition: border-color 0.2s var(--li-courbe), background 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.li-pied-action:hover {
	border-color: var(--wp--preset--color--blanc);
	transform: translateY(-1px);
}

.li-pied-action.is-plein {
	background: var(--wp--preset--color--violet);
	border-color: var(--wp--preset--color--violet);
}

.li-pied-action.is-plein:hover {
	background: var(--wp--preset--color--violet-fonce);
	border-color: var(--wp--preset--color--violet-fonce);
}

.li-pied-reseaux {
	display: flex;
	gap: var(--li-e1);
	margin-bottom: var(--li-e3) !important;
}

.li-pied-reseaux a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	color: var(--wp--preset--color--texte);
	border: 1px solid var(--li-trait);
	border-radius: 50%;
	transition: color 0.2s var(--li-courbe), border-color 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.li-pied-reseaux a:hover {
	color: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--violet-clair);
	transform: translateY(-2px);
}

.li-pied-badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1);
}

.li-pied-badges li {
	padding: 0.3rem 0.75rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--texte);
	background: rgb(255 255 255 / 4%);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
}

/* ---------- Mes autres services : cartes avec icône ---------- */
.li-services-liens {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
	gap: var(--li-e2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.li-services-liens li {
	margin: 0;
}

.li-service-lien {
	display: flex;
	align-items: center;
	gap: var(--li-e2);
	height: 100%;
	box-sizing: border-box;
	padding: var(--li-e2);
	color: var(--wp--preset--color--texte) !important;
	text-decoration: none !important;
	background: var(--li-surface) !important;
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
	transition: border-color 0.2s var(--li-courbe), transform 0.2s var(--li-courbe);
}

.li-service-lien:hover {
	border-color: var(--wp--preset--color--violet-clair);
	transform: translateY(-2px);
}

.li-service-lien:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

.li-service-icone {
	display: grid;
	flex: none;
	place-items: center;
	width: 44px;
	height: 44px;
	color: var(--wp--preset--color--violet-clair);
	background: rgb(120 38 255 / 16%);
	border-radius: var(--li-rayon-s);
}

.li-service-texte {
	display: grid;
	flex: 1;
	gap: 0.15rem;
}

.li-service-texte strong {
	color: var(--wp--preset--color--blanc);
}

.li-service-texte span {
	font-size: 0.875rem;
	color: var(--wp--preset--color--discret);
}

.li-service-lien::after {
	content: "";
	flex: none;
	width: 1em;
	height: 1em;
	background: var(--wp--preset--color--violet-clair);
	mask: var(--li-ico-fleche) center / contain no-repeat;
	transition: transform 0.2s var(--li-courbe);
}

.li-service-lien:hover::after {
	transform: translateX(4px);
}

/* Tableau atteignable au clavier quand il défile : contour visible au focus. */
.wp-block-table:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

/* ---------- Pied de page : contact, statut, don ---------- */
.li-pied-contact > * + * {
	margin-top: var(--li-e2);
}

.li-pied-statut {
	display: inline-flex;
	align-items: center;
	gap: var(--li-e1);
	margin: 0 0 var(--li-e2);
	padding: 0.3rem 0.8rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wp--preset--color--discret);
	background: rgb(255 255 255 / 4%);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
}

.li-pied-statut[hidden] {
	display: none;
}

.li-pied-statut-point {
	width: 8px;
	height: 8px;
	background: var(--wp--preset--color--discret);
	border-radius: 50%;
}

.li-pied-statut.est-ouvert {
	color: var(--wp--preset--color--vert);
	border-color: rgb(66 199 73 / 40%);
	background: rgb(66 199 73 / 10%);
}

.li-pied-statut.est-ouvert .li-pied-statut-point {
	background: var(--wp--preset--color--vert);
	box-shadow: 0 0 0 4px rgb(66 199 73 / 20%);
}

.li-pied-horaires {
	margin-bottom: 0;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--wp--preset--color--discret);
}

.li-pied-action.is-vert {
	color: #0f0f0f !important;
	background: var(--wp--preset--color--vert);
	border-color: var(--wp--preset--color--vert);
}

.li-pied-action.is-vert:hover {
	background: #5ad861;
	border-color: #5ad861;
}

.li-pied-badges a {
	color: inherit;
}

.li-pied-badges li:has(a) {
	border-color: rgb(164 124 255 / 40%);
}

.li-pied-don {
	padding: var(--li-e3);
	background: rgb(66 199 73 / 6%);
	border: 1px solid rgb(66 199 73 / 25%);
	border-radius: var(--li-rayon);
}

.li-pied-don p {
	margin: 0 0 var(--li-e2);
	color: var(--wp--preset--color--texte);
}

.li-pied-don .li-pied-actions {
	margin: 0;
}

.li-pied-don-icone {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	color: var(--wp--preset--color--vert) !important;
	background: rgb(66 199 73 / 14%);
	border-radius: var(--li-rayon-s);
}

/* ---------- Boutons : mêmes hauteurs partout ----------
   Grands boutons de page : bordure transparente sur les boutons pleins, pour la même hauteur que les boutons contour.
   Boutons des fenêtres (commande, devis PDF, sortie) : 44 px, sur une ligne quand la place le permet. */
.wp-block-button:not(.is-style-contour) .wp-block-button__link {
	border: 1.5px solid transparent;
}

.li-calc-bouton,
.li-sortie-continuer,
.li-sortie-rester {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0.5rem 1.1rem;
	font-size: 0.9rem;
	line-height: 1.25;
	text-align: center;
	white-space: nowrap;
}

.li-calc-actions .li-calc-bouton {
	min-height: 52px;
	font-size: 1rem;
}

.li-commande-boutons,
.li-sortie-boutons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--li-e1);
}

.li-commande-boutons > *,
.li-sortie-boutons > * {
	flex: 1 1 auto;
}

/* Fenêtre de sortie : plus compacte. Un nom de domaine long passe à la ligne. */
.li-sortie {
	width: min(420px, calc(100vw - 2 * var(--li-e2)));
	padding: var(--li-e3) var(--li-e4);
}

.li-sortie-icone {
	width: 44px;
	height: 44px;
}

.li-sortie-titre {
	font-size: 1.2rem;
}

.li-sortie-texte {
	font-size: 0.95rem;
}

.li-sortie-continuer {
	white-space: normal;
	overflow-wrap: anywhere;
}

.li-pied-action {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	box-sizing: border-box;
}

@media (max-width: 600px) {
	.li-commande,
	.li-sortie {
		padding: var(--li-e3);
	}
}

/* ---------- Calculateur : options en plus ---------- */
.li-calc-intro {
	margin: 0 0 var(--li-e1) !important;
}

.li-calc-option {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--li-e2);
	align-items: start;
	padding: var(--li-e2) 0;
	border-bottom: 1px solid var(--li-trait);
}

.li-calc-option-plus,
.li-option-plus {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--violet);
	border-radius: 50%;
}

.li-calc-option-titre {
	display: block;
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	cursor: pointer;
}

.li-calc-option .li-calc-aide {
	margin-top: 0.25rem;
}

.li-calc-calcul {
	margin: var(--li-e1) 0 0;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--violet-clair);
}

.li-calc-calcul[hidden] {
	display: none;
}

.li-calc-option-choix {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
}

.li-calc-unite {
	font-size: 0.8rem;
	color: var(--wp--preset--color--discret);
}

/* Interrupteur Google Ads. */
.li-calc-interrupteur {
	position: relative;
	width: 52px;
	height: 30px;
	margin: 7px 0 0;
	appearance: none;
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s var(--li-courbe), border-color 0.2s var(--li-courbe);
}

.li-calc-interrupteur::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 22px;
	height: 22px;
	background: var(--wp--preset--color--blanc);
	border-radius: 50%;
	transition: transform 0.2s var(--li-courbe);
}

.li-calc-interrupteur:checked {
	background: var(--wp--preset--color--violet);
	border-color: var(--wp--preset--color--violet);
}

.li-calc-interrupteur:checked::before {
	transform: translateX(22px);
}

.li-calc-interrupteur:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 3px;
}

.li-calc-sous-titre {
	margin: var(--li-e3) 0 var(--li-e1);
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
}

.li-calc-durees-bloc[hidden] {
	display: none;
}

@media (max-width: 600px) {
	.li-calc-option {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.li-calc-option-choix {
		grid-column: 2;
		flex-direction: row;
		gap: var(--li-e1);
	}

	.li-calc-interrupteur {
		margin: 0;
	}
}

/* ---------- Fenêtre de commande : montants lisibles ---------- */
.li-commande-montants {
	margin: 0 0 var(--li-e3);
	padding: var(--li-e1) var(--li-e2);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-commande-montants div {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0 var(--li-e2);
	padding: 0.6rem 0;
}

.li-commande-montants div + div {
	border-top: 1px solid var(--li-trait);
}

.li-commande-montants dt {
	font-size: 0.95rem;
	color: var(--wp--preset--color--discret);
}

.li-commande-montants dd {
	margin: 0 0 0 auto;
	font-weight: 700;
	text-align: right;
	color: var(--wp--preset--color--blanc);
}

.li-commande-montants .is-principal dt {
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
}

.li-commande-montants .is-principal dd {
	font-size: 1.5rem;
	color: var(--wp--preset--color--violet-clair);
}

/* ---------- Tarifs : options en plus ---------- */
.li-tarifs-options li {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--li-e1);
	padding: var(--li-e3);
}

.li-tarifs-options li > p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--wp--preset--color--discret);
}

.li-tarifs-options .li-option-plus {
	margin-bottom: var(--li-e1);
	font-size: 1.25rem;
	color: var(--wp--preset--color--blanc);
}

.li-tarifs-options strong {
	font-size: 1.05rem;
}

.li-tarifs-options .li-option-prix {
	font-family: var(--wp--preset--font-family--titre);
	font-size: 1.8rem;
	line-height: 1.1;
	color: var(--wp--preset--color--blanc);
}

.li-tarifs-options .li-option-prix span {
	font-family: var(--wp--preset--font-family--texte);
	font-size: 0.9rem;
}

.li-tarifs-options .li-option-exemple {
	margin-top: auto !important;
	padding-top: var(--li-e1);
	font-weight: 600;
	color: var(--wp--preset--color--violet-clair);
	border-top: 1px solid var(--li-trait);
}

/* ---------- Blog : le dernier article à la une, en tête de la page 1 ---------- */
body.category-blog:not(.paged) .li-liste-articles .wp-block-post-template > li:first-child .li-carte-article-titre {
	font-size: clamp(1.6rem, 2.6vw, 2.3rem) !important;
	line-height: 1.15;
}

body.category-blog:not(.paged) .li-liste-articles .wp-block-post-template > li:first-child .li-carte-article-extrait {
	font-size: 1.05rem;
}

@media (min-width: 900px) {
	body.category-blog:not(.paged) .li-liste-articles .wp-block-post-template > li:first-child {
		grid-column: 1 / -1;
	}

	body.category-blog:not(.paged) .li-liste-articles .wp-block-post-template > li:first-child .li-carte-article {
		display: grid;
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		gap: var(--li-e4);
		align-items: center;
		padding-bottom: var(--li-e5);
		border-bottom: 1px solid var(--li-trait);
	}

	body.category-blog:not(.paged) .li-liste-articles .wp-block-post-template > li:first-child .wp-block-post-featured-image {
		margin: 0;
	}
}

/* ---------- Pagination des listes d'articles ---------- */
.li-liste-articles .wp-block-query-pagination {
	gap: var(--li-e1);
	font-weight: 600;
}

.li-liste-articles .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--li-e1);
}

.li-liste-articles .wp-block-query-pagination .page-numbers,
.li-liste-articles .wp-block-query-pagination-previous,
.li-liste-articles .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-width: 44px;
	height: 44px;
	margin: 0;
	padding: 0 0.9rem;
	box-sizing: border-box;
	color: var(--wp--preset--color--blanc);
	text-decoration: none;
	background: var(--li-surface);
	border: 1px solid var(--li-trait);
	border-radius: 999px;
	transition: border-color 0.2s var(--li-courbe), background 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.li-liste-articles .wp-block-query-pagination a:hover {
	border-color: var(--wp--preset--color--violet-clair);
	transform: translateY(-1px);
}

.li-liste-articles .wp-block-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--violet);
	border-color: var(--wp--preset--color--violet);
}

.li-liste-articles .wp-block-query-pagination .page-numbers.dots {
	min-width: 0;
	padding: 0 0.25rem;
	background: none;
	border: 0;
}

.li-liste-articles .wp-block-query-pagination-previous,
.li-liste-articles .wp-block-query-pagination-next {
	padding: 0 1.2rem;
}

.li-liste-articles :is(.wp-block-query-pagination-next-arrow, .wp-block-query-pagination-previous-arrow) {
	margin: 0;
	transition: transform 0.2s var(--li-courbe);
}

.li-liste-articles .wp-block-query-pagination a:hover .wp-block-query-pagination-next-arrow {
	transform: translateX(3px);
}

.li-liste-articles .wp-block-query-pagination a:hover .wp-block-query-pagination-previous-arrow {
	transform: translateX(-3px);
}

/* ---------- Visuels : contour violet ---------- */
.li-info .v-trait-violet {
	stroke: var(--wp--preset--color--violet);
	stroke-width: 1.5;
}

/* Visuel placé sous un titre de section. */
:is(h2, h3) + .li-info {
	margin-top: var(--li-e2) !important;
}

/* Case des CGV : la case reste à côté de son texte sur téléphone. */
.li-commande .li-calc-case {
	flex-wrap: nowrap;
	align-items: flex-start;
}

.li-commande .li-calc-case input {
	flex: none;
	margin-top: 2px;
}

/* ---------- Formulaires : erreur écrite sous le champ (assets/js/formulaires.js) ---------- */
.li-champ-erreur {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.4rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: #ffa3a3;
}

.li-champ-erreur::before {
	content: "!";
	display: grid;
	flex: none;
	place-items: center;
	width: 16px;
	height: 16px;
	font-size: 0.7rem;
	font-weight: 700;
	color: #1a1a1f;
	background: #ffa3a3;
	border-radius: 50%;
}

.li-calc-case .li-champ-erreur {
	flex-basis: 100%;
	margin-left: 28px;
	font-size: 0.85rem;
	font-weight: 600;
	color: #ffa3a3;
}

/* Case des CGV : la case et son texte sur une ligne, l'erreur en dessous. */
.li-commande .li-calc-case {
	flex-wrap: wrap;
}

.li-commande .li-calc-case label {
	flex: 1 1 0;
	min-width: 0;
}

:is(input, textarea, select)[aria-invalid="true"] {
	border-color: #ff7a7a !important;
}

/* ---------- Calculateur : boutons − et + bien visibles ---------- */
.li-calc-compteur-boutons {
	gap: 2px;
	padding: 3px;
}

.li-calc-compteur-boutons button {
	width: 38px;
	height: 38px;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	background: rgb(255 255 255 / 8%);
	transition: background 0.2s var(--li-courbe), transform 0.15s var(--li-courbe);
}

.li-calc-compteur-boutons button:hover {
	color: var(--wp--preset--color--blanc);
	background: rgb(255 255 255 / 16%);
}

.li-calc-compteur-boutons button.is-plus {
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--violet);
}

.li-calc-compteur-boutons button.is-plus:hover {
	background: var(--wp--preset--color--violet-fonce);
	transform: scale(1.05);
}

.li-calc-compteur-boutons button:focus-visible {
	outline: 3px solid var(--wp--preset--color--violet-clair);
	outline-offset: 2px;
}

.li-calc-compteur-boutons input {
	width: 2.6em;
}

/* ---------- Récapitulatif : remises en vert, montant à régler en avant ---------- */
.li-calc-remises {
	display: grid;
	gap: 0.35rem;
	margin: 0 0 var(--li-e2);
	padding: var(--li-e1) var(--li-e2);
	background: rgb(66 199 73 / 8%);
	border: 1px solid rgb(66 199 73 / 25%);
	border-radius: var(--li-rayon-s);
}

.li-calc-remises:empty {
	display: none;
}

.li-calc-remises div {
	display: flex;
	justify-content: space-between;
	gap: var(--li-e2);
	font-size: 0.85rem;
}

.li-calc-remises dt {
	color: var(--wp--preset--color--texte);
}

.li-calc-remises dd {
	margin: 0;
	font-weight: 700;
	white-space: nowrap;
	color: #5fdc66;
}

.li-calc-totaux .li-calc-total strong {
	color: var(--wp--preset--color--blanc);
}

.li-calc-totaux .li-calc-a-regler {
	padding: var(--li-e1) var(--li-e2);
	font-weight: 700;
	color: var(--wp--preset--color--blanc);
	background: rgb(120 38 255 / 18%);
	border-radius: var(--li-rayon-s);
}

.li-calc-totaux .li-calc-a-regler strong {
	font-size: 1.3rem;
	color: var(--wp--preset--color--violet-clair);
}

.li-commande-montants .is-remise dd {
	color: #5fdc66;
}

.li-commande-montants [hidden] {
	display: none;
}

/* ---------- Récapitulatif : la première année, puis les années suivantes ---------- */
.li-calc-recap .li-calc-recap-sous-titre {
	margin: 0 0 var(--li-e1);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet-clair);
}

.li-calc-a-regler small,
.li-commande-montants small {
	display: block;
	font-size: 0.8rem;
	font-weight: 400;
	color: var(--wp--preset--color--discret);
}

.li-calc-recap .li-calc-suite {
	margin: 0 0 var(--li-e2);
	padding: var(--li-e1) var(--li-e2);
	font-size: 0.85rem;
	color: var(--wp--preset--color--texte);
	border-left: 2px solid var(--li-trait);
}

/* Retour de Stripe après un paiement. */
.li-calc-merci {
	margin: 0 0 var(--li-e3);
	padding: var(--li-e2) var(--li-e3);
	font-weight: 600;
	color: var(--wp--preset--color--blanc);
	background: rgb(66 199 73 / 12%);
	border: 1px solid rgb(66 199 73 / 40%);
	border-radius: var(--li-rayon-s);
}

/* ---------- Page Tarifs : titres plus grands et bien visibles ---------- */
.li-tarifs .li-tarifs-sous-titre {
	margin-top: var(--li-e5);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: var(--wp--preset--color--blanc);
}

.li-calc-bloc legend {
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
}

.li-calc-recap .li-calc-recap-sous-titre {
	font-size: 0.85rem;
	color: var(--wp--preset--color--blanc);
}

/* ---------- Bandeau d’annonce en haut du site (administration : Lorem > Vue d’ensemble) ---------- */
.li-annonce {
	padding: 0.45rem var(--li-e2);
	font-size: 0.875rem;
	line-height: 1.4;
	text-align: center;
	color: #fff;
	background: var(--wp--preset--color--violet);
}

.li-annonce p {
	margin: 0;
}

.li-annonce a {
	margin-left: 0.4em;
	font-weight: 700;
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.li-annonce a:hover {
	text-decoration-thickness: 2px;
}

/* Inscription à la newsletter (page Blog, [lorem_newsletter]). */
.li-newsletter {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
	gap: var(--li-e3) var(--li-e5);
	align-items: start;
	margin-top: var(--li-e5);
	padding: var(--li-e4);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon);
	background: var(--li-surface);
}

.li-newsletter h2 {
	margin: 0 0 var(--li-e1);
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
}

.li-newsletter-texte p {
	margin: 0;
	color: var(--wp--preset--color--discret);
}

.li-newsletter-formulaire {
	display: grid;
	gap: var(--li-e2);
}

.li-newsletter-formulaire p {
	margin: 0;
}

.li-newsletter-formulaire label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
}

.li-newsletter-formulaire input {
	box-sizing: border-box;
	width: 100%;
	padding: 0.7rem var(--li-e2);
	font: inherit;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--fond);
	border: 1px solid var(--li-trait);
	border-radius: var(--li-rayon-s);
}

.li-newsletter-formulaire input:focus {
	border-color: var(--wp--preset--color--violet-clair);
	outline: none;
}

.li-newsletter-piege {
	position: absolute;
	left: -9999px;
}

.li-newsletter-statut:empty {
	display: none;
}

.li-newsletter-mention {
	font-size: 0.85rem;
	color: var(--wp--preset--color--discret);
}
