/*!
Theme Name: ls drive
Theme URI: http://underscores.me/
Author: Canopus web agency
Author URI: http://www.canopuswebagency.com
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: lsdrive
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

ls drive is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/* ============================================================
   LS Drive — header, pied de page, barre mobile
   Palette : graphite nuit (conduite de nuit) + pierre blonde
   bordelaise + laiton. Repère visuel unique : le soulignement
   du lien actif reprend le marquage au sol d'une voie.
   Polices : Instrument Sans / Instrument Serif.
   ⚠️ RGPD — les héberger localement (voir README), ne pas
   appeler fonts.googleapis.com depuis le site en production.
   ============================================================ */
/* ============================================================================
   LS DRIVE — style.css
   Feuille de style complète du site (pas seulement l'en-tête et le pied de page).

   SOMMAIRE
   01. Variables
   02. Réinitialisation et base
   03. Typographie
   04. Mise en page et utilitaires
   05. Boutons
   06. Formulaires
   07. Tableaux
   08. Images et médias
   09. Barre utilitaire
   10. En-tête et navigation
   11. Fil d'Ariane
   12. Sections de contenu (héros, cartes, étapes, avis, FAQ, bandeau CTA)
   13. Blog et contenu WordPress
   14. Pied de page
   15. WhatsApp et barre d'action mobile
   16. Accessibilité et animations

   Palette : graphite nuit (conduite de nuit), pierre blonde bordelaise, laiton.
   Polices : Instrument Serif (titres) / Instrument Sans (texte).
   ⚠️ RGPD — héberger les polices localement, ne pas appeler fonts.googleapis.com
   depuis le site en production.
   ============================================================================ */


/* == 01. VARIABLES ======================================================== */

:root {
	/* couleurs sombres */
	--ls-nuit:       #14181d;
	--ls-nuit-haut:  #1c222a;
	--ls-nuit-clair: #242b34;

	/* couleurs claires */
	--ls-pierre:     #ece5d8;
	--ls-creme:      #fbfaf7;
	--ls-sable:      #f3efe6;

	/* accent */
	--ls-laiton:     #c39a4e;
	--ls-laiton-vif: #d6ab5b;

	/* texte */
	--ls-encre:      #22262b;
	--ls-encre-doux: #5d6570;
	--ls-brume:      #8d949d;

	/* fonctions */
	--ls-trait:      rgba(34, 38, 43, .14);
	--ls-trait-nuit: rgba(236, 229, 216, .1);
	--ls-succes:     #25d366;

	/* typographie */
	--ls-sans:  "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ls-serif: "Instrument Serif", Georgia, "Times New Roman", serif;

	/* échelle */
	--ls-h1: clamp(2.25rem, 1.4rem + 3.6vw, 4rem);
	--ls-h2: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
	--ls-h3: clamp(1.3rem, 1.05rem + 1vw, 1.75rem);
	--ls-h4: 1.15rem;

	/* rythme */
	--ls-shell: 1200px;
	--ls-etroit: 720px;
	--ls-section: clamp(3rem, 7vw, 6rem);
	--ls-header-h: 76px;
	--ls-utility-h: 38px;
}


/* == 02. RÉINITIALISATION ET BASE ========================================= */

*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ls-header-h) + 16px);
}

body {
	margin: 0;
	background: var(--ls-creme);
	color: var(--ls-encre);
	font: 400 1rem/1.65 var(--ls-sans);
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

img, svg, video, iframe { max-width: 100%; }
img, video { height: auto; }
svg { vertical-align: middle; }

a { color: inherit; }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

:focus-visible {
	outline: 2px solid var(--ls-laiton);
	outline-offset: 3px;
}

::selection { background: var(--ls-laiton); color: var(--ls-nuit); }


/* == 03. TYPOGRAPHIE ====================================================== */

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--ls-serif);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -.005em;
	color: var(--ls-encre);
	text-wrap: balance;
}

h1 { font-size: var(--ls-h1); }
h2 { font-size: var(--ls-h2); }
h3 { font-size: var(--ls-h3); }
h4 { font-size: var(--ls-h4); font-family: var(--ls-sans); font-weight: 600; }
h5, h6 { font-family: var(--ls-sans); font-weight: 600; font-size: 1rem; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

.ls-chapeau {
	font-size: clamp(1.05rem, .98rem + .35vw, 1.25rem);
	line-height: 1.6;
	color: var(--ls-encre-doux);
}

.ls-surtitre {
	display: block;
	margin-bottom: .9rem;
	font: 600 .8rem/1 var(--ls-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ls-laiton);
}

ul, ol { margin: 0 0 1.15em; padding-left: 1.25em; }
li { margin-bottom: .35em; }

/* liste à puces maison, pour le contenu éditorial */
.ls-liste { list-style: none; padding-left: 0; }
.ls-liste li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: .6em;
}
.ls-liste li::before {
	content: "";
	position: absolute;
	left: 0; top: .62em;
	width: 10px; height: 2px;
	background: var(--ls-laiton);
}

blockquote {
	margin: 2rem 0;
	padding: .25rem 0 .25rem 1.5rem;
	border-left: 2px solid var(--ls-laiton);
	font-family: var(--ls-serif);
	font-size: 1.3rem;
	line-height: 1.45;
}
blockquote cite {
	display: block;
	margin-top: .8rem;
	font: 400 .9rem/1.4 var(--ls-sans);
	font-style: normal;
	color: var(--ls-encre-doux);
}

hr {
	height: 1px;
	margin: var(--ls-section) 0;
	border: 0;
	background: var(--ls-trait);
}

code, kbd, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; }
pre { padding: 1rem 1.25rem; background: var(--ls-sable); overflow-x: auto; }

strong, b { font-weight: 600; }
small { font-size: .875rem; }
abbr[title] { text-decoration: underline dotted; }


/* == 04. MISE EN PAGE ET UTILITAIRES ====================================== */

.ls-shell {
	width: min(100% - 2.5rem, var(--ls-shell));
	margin-inline: auto;
}
.ls-shell--etroit { width: min(100% - 2.5rem, var(--ls-etroit)); }

.ls-section { padding: var(--ls-section) 0; }
.ls-section--sable { background: var(--ls-sable); }
.ls-section--pierre { background: var(--ls-pierre); }
.ls-section--nuit {
	background: var(--ls-nuit);
	color: var(--ls-pierre);
}
.ls-section--nuit h1, .ls-section--nuit h2, .ls-section--nuit h3 { color: var(--ls-pierre); }
.ls-section--nuit .ls-chapeau { color: var(--ls-brume); }

.ls-section__tete {
	max-width: 46rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.ls-section__tete--centre { margin-inline: auto; text-align: center; }

/* grilles */
.ls-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.ls-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ls-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ls-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 900px) {
	.ls-grid--3, .ls-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.ls-grid--2, .ls-grid--3, .ls-grid--4 { grid-template-columns: 1fr; }
}

.ls-centre { text-align: center; }
.ls-nowrap { white-space: nowrap; }
.ls-mt-0 { margin-top: 0; }
.ls-mb-0 { margin-bottom: 0; }

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

.ls-skip {
	position: absolute;
	left: -9999px;
	z-index: 999;
	padding: .75rem 1.25rem;
	background: var(--ls-laiton);
	color: var(--ls-nuit);
	font: 600 .95rem/1 var(--ls-sans);
	text-decoration: none;
}
.ls-skip:focus { left: 1rem; top: 1rem; }


/* == 05. BOUTONS ========================================================== */

.ls-btn {
	display: inline-block;
	padding: .8rem 1.4rem;
	border: 1px solid transparent;
	font: 600 .9375rem/1.2 var(--ls-sans);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.ls-btn--solid { background: var(--ls-laiton); color: var(--ls-nuit); }
.ls-btn--solid:hover { background: var(--ls-laiton-vif); }

.ls-btn--ghost { color: var(--ls-pierre); border-color: rgba(236, 229, 216, .3); }
.ls-btn--ghost:hover { color: var(--ls-laiton); border-color: var(--ls-laiton); }

.ls-btn--ligne { color: var(--ls-encre); border-color: var(--ls-trait); }
.ls-btn--ligne:hover { border-color: var(--ls-laiton); color: var(--ls-laiton); }

.ls-btn--large { padding: 1rem 1.9rem; font-size: 1rem; }
.ls-btn--bloc { display: block; width: 100%; }

.ls-btns { display: flex; flex-wrap: wrap; gap: .75rem; }

/* lien texte souligné laiton */
.ls-lien {
	color: var(--ls-encre);
	text-decoration: none;
	border-bottom: 1px solid var(--ls-laiton);
	padding-bottom: 1px;
}
.ls-lien:hover { color: var(--ls-laiton); }


/* == 06. FORMULAIRES ====================================================== */

.ls-form { display: grid; gap: 1.1rem; }
.ls-form--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { .ls-form--2 { grid-template-columns: 1fr; } }

.ls-champ { display: grid; gap: .4rem; }
.ls-champ--large { grid-column: 1 / -1; }

label, .ls-label {
	font: 600 .875rem/1.3 var(--ls-sans);
	color: var(--ls-encre);
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="number"], input[type="date"], input[type="time"], input[type="search"],
input[type="password"], select, textarea {
	width: 100%;
	padding: .75rem .9rem;
	background: #fff;
	border: 1px solid var(--ls-trait);
	border-radius: 0;
	color: var(--ls-encre);
	transition: border-color .18s ease, box-shadow .18s ease;
	appearance: none;
}
input:focus, select:focus, textarea:focus {
	outline: 0;
	border-color: var(--ls-laiton);
	box-shadow: 0 0 0 3px rgba(195, 154, 78, .18);
}
textarea { min-height: 140px; resize: vertical; }

select {
	background-image: linear-gradient(45deg, transparent 50%, var(--ls-encre-doux) 50%),
	                  linear-gradient(135deg, var(--ls-encre-doux) 50%, transparent 50%);
	background-position: calc(100% - 20px) 55%, calc(100% - 14px) 55%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 2.5rem;
}

.ls-check { display: flex; align-items: flex-start; gap: .6rem; }
.ls-check input { margin-top: .25rem; accent-color: var(--ls-laiton); }
.ls-check label { font-weight: 400; font-size: .875rem; color: var(--ls-encre-doux); }

input[type="submit"], button[type="submit"], .wpcf7-submit {
	padding: .85rem 1.6rem;
	background: var(--ls-laiton);
	border: 0;
	color: var(--ls-nuit);
	font-weight: 600;
	transition: background-color .18s ease;
}
input[type="submit"]:hover, button[type="submit"]:hover, .wpcf7-submit:hover {
	background: var(--ls-laiton-vif);
}

.ls-aide { font-size: .8125rem; color: var(--ls-encre-doux); }


/* == 07. TABLEAUX (grille tarifaire) ====================================== */

.ls-table-wrap { overflow-x: auto; }

table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
}
th, td {
	padding: .85rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--ls-trait);
	vertical-align: top;
}
thead th {
	font: 600 .8rem/1.2 var(--ls-sans);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ls-encre-doux);
	border-bottom-color: var(--ls-encre);
}
tbody tr:hover { background: var(--ls-sable); }
td.ls-prix { font-weight: 600; white-space: nowrap; }


/* == 08. IMAGES ET MÉDIAS ================================================= */

figure { margin: 2rem 0; }
figcaption, .wp-caption-text {
	margin-top: .6rem;
	font-size: .8125rem;
	color: var(--ls-encre-doux);
}

.ls-media { display: block; width: 100%; object-fit: cover; }
.ls-media--16-9 { aspect-ratio: 16 / 9; }
.ls-media--4-3  { aspect-ratio: 4 / 3; }
.ls-media--1-1  { aspect-ratio: 1 / 1; }


/* == 09. BARRE UTILITAIRE ================================================= */

.ls-utility {
	background: var(--ls-nuit);
	color: var(--ls-brume);
	font: 400 .8125rem/1.4 var(--ls-sans);
	border-bottom: 1px solid var(--ls-trait-nuit);
}
.ls-utility__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--ls-utility-h);
}
.ls-utility p { margin: 0; }
.ls-utility__contact { display: flex; align-items: center; gap: .75rem; }
.ls-utility__tel {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--ls-pierre);
	text-decoration: none;
	font-weight: 600;
}
.ls-utility__tel:hover { color: var(--ls-laiton); }
.ls-utility__sep { width: 1px; height: 14px; background: rgba(236, 229, 216, .18); }

@media (max-width: 860px) {
	.ls-utility__claim, .ls-utility__licence, .ls-utility__sep { display: none; }
	.ls-utility__inner { justify-content: center; }
}


/* == 10. EN-TÊTE ET NAVIGATION ============================================ */

.ls-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--ls-nuit-haut);
	transition: box-shadow .2s ease;
}
.ls-header.is-stuck { box-shadow: 0 1px 0 var(--ls-trait-nuit), 0 10px 30px -20px #000; }

.ls-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1rem, 3vw, 2rem);
	min-height: var(--ls-header-h);
}

/* logo */
.ls-logo { flex: 0 0 auto; }
.ls-logo__link {
	display: block;
	height: 48px;
	max-width: 230px;
	overflow: hidden; /* si l'image tarde, le texte alt ne déforme pas l'en-tête */
}
.ls-logo__img {
	display: block;
	height: 48px;
	width: auto;
	max-width: 230px;
	object-fit: contain;
}
/* variante « plaque » : pour un logo JPEG à fond blanc sur fond sombre */
.ls-logo--plaque .ls-logo__link,
.ls-footer__logo--plaque {
	display: inline-block;
	padding: 7px 12px;
	background: var(--ls-pierre);
}

@media (max-width: 520px) {
	.ls-logo__link, .ls-logo__img { height: 100px; max-width: 180px; }
}

/* menu */
.ls-menu {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.2vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ls-menu li { margin: 0; }
.ls-menu a {
	position: relative;
	display: block;
	padding: .5rem 0;
	color: var(--ls-pierre);
	font: 500 .9375rem/1.2 var(--ls-sans);
	text-decoration: none;
}
.ls-menu > li > a { white-space: nowrap; }
.ls-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	/* marquage au sol : segments discontinus */
	background-image: linear-gradient(90deg, var(--ls-laiton) 0 60%, transparent 60% 100%);
	background-size: 14px 2px;
	opacity: 0;
	transition: opacity .18s ease;
}
.ls-menu > li > a:hover::after,
.ls-menu > .current-menu-item > a::after,
.ls-menu > .current-menu-ancestor > a::after,
.ls-menu > .current-menu-parent > a::after { opacity: 1; }

.ls-menu .sub-menu { margin: 0; padding: .5rem 0; list-style: none; }

@media (min-width: 1025px) {
	.ls-menu .menu-item-has-children { position: relative; }
	.ls-menu .sub-menu {
		position: absolute;
		top: calc(100% + 10px);
		left: -1rem;
		min-width: 290px;
		background: var(--ls-nuit);
		border: 1px solid var(--ls-trait-nuit);
		border-top: 2px solid var(--ls-laiton);
		box-shadow: 0 24px 48px -28px #000;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-4px);
		transition: opacity .16s ease, transform .16s ease, visibility .16s;
	}
	.ls-menu .menu-item-has-children:hover > .sub-menu,
	.ls-menu .menu-item-has-children:focus-within > .sub-menu {
		opacity: 1; visibility: visible; transform: translateY(0);
	}
	.ls-menu .sub-menu a { padding: .55rem 1.25rem; font-weight: 400; color: var(--ls-brume); }
	.ls-menu .sub-menu a:hover { color: var(--ls-pierre); background: rgba(195, 154, 78, .08); }
	.ls-submenu-toggle { display: none; }
}

/* menu mobile */
.ls-burger {
	display: none;
	width: 44px; height: 44px;
	background: none;
	border: 1px solid rgba(236, 229, 216, .22);
}
.ls-burger__bars { display: grid; gap: 4px; justify-items: center; }
.ls-burger__bars i {
	display: block;
	width: 18px; height: 1.5px;
	background: var(--ls-pierre);
	transition: transform .2s ease, opacity .2s ease;
}
.ls-nav__mobile-cta { display: none; }

@media (max-width: 1024px) {
	.ls-burger { display: grid; place-items: center; }

	.ls-nav {
		position: fixed;
		inset: calc(var(--ls-header-h) + var(--ls-utility-h)) 0 0 0;
		padding: 1.25rem 1.25rem 3rem;
		background: var(--ls-nuit);
		margin-top: 3rem;
		overflow-y: auto;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform .24s ease, visibility .24s;
	}
	.ls-nav-open .ls-nav { transform: translateX(0); visibility: visible; }
	.ls-nav-open { overflow: hidden; }
	.ls-nav-open .ls-burger__bars i:first-child { transform: translateY(5.5px) rotate(45deg); }
	.ls-nav-open .ls-burger__bars i:nth-child(2) { opacity: 0; }
	.ls-nav-open .ls-burger__bars i:last-child { transform: translateY(-5.5px) rotate(-45deg); }

	.ls-menu { display: block; }
	.ls-menu > li { border-bottom: 1px solid rgba(236, 229, 216, .09); }
	.ls-menu > li > a { padding: .95rem 0; font-size: 1.0625rem; }
	.ls-menu .menu-item-has-children { position: relative; }

	.ls-submenu-toggle {
		position: absolute;
		top: .55rem; right: 0;
		width: 40px; height: 40px;
		background: none;
		border: 0;
	}
	.ls-submenu-toggle::before, .ls-submenu-toggle::after {
		content: "";
		position: absolute;
		top: 50%; left: 50%;
		width: 12px; height: 1.5px;
		background: var(--ls-laiton);
		transform: translate(-50%, -50%);
		transition: transform .2s ease;
	}
	.ls-submenu-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
	.is-open > .ls-submenu-toggle::after { transform: translate(-50%, -50%) rotate(0deg); }

	.ls-menu .sub-menu { display: none; padding: 0 0 .75rem .9rem; }
	.ls-menu .is-open > .sub-menu { display: block; }
	.ls-menu .sub-menu a { padding: .55rem 0; color: var(--ls-brume); }

	.ls-nav__mobile-cta { display: grid; gap: .6rem; margin-top: 1.75rem; }
	.ls-header__cta { display: none; }
}


/* == 11. FIL D'ARIANE ===================================================== */

.ls-breadcrumb {
	background: var(--ls-pierre);
	font: 400 .8125rem/1.4 var(--ls-sans);
}
.ls-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin: 0;
	padding: .7rem 0;
	list-style: none;
}
.ls-breadcrumb li { margin: 0; }
.ls-breadcrumb li + li::before { content: "›"; margin-right: .45rem; color: #9a917f; }
.ls-breadcrumb a { color: #4b4436; text-decoration: none; border-bottom: 1px solid rgba(75, 68, 54, .25); }
.ls-breadcrumb a:hover { color: var(--ls-nuit); }
.ls-breadcrumb [aria-current="page"] { color: #6d6555; }


/* == 12. SECTIONS DE CONTENU ============================================== */

/* --- héros --- */
.ls-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: clamp(420px, 62vh, 620px);
	padding: clamp(3rem, 7vw, 5.5rem) 0;
	background: var(--ls-nuit);
	color: var(--ls-pierre);
	overflow: hidden;
}
.ls-hero__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: .38;
}
.ls-hero__inner { position: relative; max-width: 44rem; }
.ls-hero h1 { color: var(--ls-creme); margin-bottom: .5em; }
.ls-hero .ls-chapeau { color: rgba(236, 229, 216, .8); margin-bottom: 2rem; }

/* --- carte --- */
.ls-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--ls-trait);
	transition: border-color .18s ease, transform .18s ease;
}
.ls-card:hover { border-color: var(--ls-laiton); }
a.ls-card { text-decoration: none; color: inherit; }
a.ls-card:hover { transform: translateY(-2px); }

.ls-card__img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.ls-card__body { padding: 1.5rem; flex: 1; }
.ls-card__title { font-size: 1.25rem; margin-bottom: .5rem; }
.ls-card__text { color: var(--ls-encre-doux); font-size: .9375rem; margin: 0; }
.ls-card__more {
	display: inline-block;
	margin-top: 1rem;
	font: 600 .875rem/1 var(--ls-sans);
	color: var(--ls-laiton);
}

/* --- étapes numérotées --- */
.ls-steps { counter-reset: etape; list-style: none; padding: 0; margin: 0; }
.ls-steps li {
	counter-increment: etape;
	position: relative;
	padding-left: 3.5rem;
	margin-bottom: 2rem;
}
.ls-steps li::before {
	content: counter(etape, decimal-leading-zero);
	position: absolute;
	left: 0; top: -.1em;
	font: 400 1.5rem/1 var(--ls-serif);
	color: var(--ls-laiton);
}
.ls-steps h3 { font-size: 1.15rem; font-family: var(--ls-sans); font-weight: 600; margin-bottom: .35rem; }
.ls-steps p { color: var(--ls-encre-doux); margin: 0; }

/* --- avis client --- */
.ls-avis {
	padding: 1.75rem;
	background: var(--ls-sable);
	border-left: 2px solid var(--ls-laiton);
}
.ls-avis__texte { font-family: var(--ls-serif); font-size: 1.15rem; line-height: 1.5; }
.ls-avis__auteur { margin: 1rem 0 0; font-size: .875rem; color: var(--ls-encre-doux); }
.ls-etoiles { color: var(--ls-laiton); letter-spacing: .1em; font-size: .9rem; }

/* --- FAQ (accordéon) --- */
.ls-faq { border-top: 1px solid var(--ls-trait); }
.ls-faq__item { border-bottom: 1px solid var(--ls-trait); }
.ls-faq__q {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	width: 100%;
	padding: 1.15rem 0;
	background: none;
	border: 0;
	text-align: left;
	font: 600 1.05rem/1.45 var(--ls-sans);
	color: var(--ls-encre);
}
.ls-faq__q:hover { color: var(--ls-laiton); }
.ls-faq__icone {
	position: relative;
	flex: 0 0 auto;
	width: 18px; height: 18px;
	margin-top: .25rem;
}
.ls-faq__icone::before, .ls-faq__icone::after {
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	width: 14px; height: 1.5px;
	background: var(--ls-laiton);
	transform: translate(-50%, -50%);
	transition: transform .2s ease;
}
.ls-faq__icone::after { transform: translate(-50%, -50%) rotate(90deg); }
.ls-faq__item.is-open .ls-faq__icone::after { transform: translate(-50%, -50%) rotate(0); }

.ls-faq__r {
	display: none;
	padding: 0 0 1.35rem;
	max-width: 60ch;
	color: var(--ls-encre-doux);
}
.ls-faq__item.is-open .ls-faq__r { display: block; }

/* --- bandeau CTA --- */
.ls-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.75rem, 4vw, 2.75rem);
	background: var(--ls-nuit);
	color: var(--ls-pierre);
}
.ls-cta h2 { color: var(--ls-creme); margin: 0 0 .35rem; font-size: var(--ls-h3); }
.ls-cta p { margin: 0; color: var(--ls-brume); }

/* --- étiquette --- */
.ls-tag {
	display: inline-block;
	padding: .25rem .6rem;
	background: var(--ls-pierre);
	font: 600 .75rem/1.4 var(--ls-sans);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #4b4436;
}


/* == 13. BLOG ET CONTENU WORDPRESS ======================================= */

.ls-main { display: block; }

.entry-content > * { max-width: var(--ls-etroit); margin-inline: auto; }
.entry-content > .alignwide { max-width: 1000px; }
.entry-content > .alignfull { max-width: none; width: 100%; }

.alignleft  { float: left;  margin: .4rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .4rem 0 1rem 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.clearfix::after { content: ""; display: table; clear: both; }

.ls-article__meta {
	margin-bottom: 2rem;
	font-size: .8125rem;
	color: var(--ls-encre-doux);
}

.ls-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: var(--ls-section);
}
.ls-pagination a, .ls-pagination span,
.page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .6rem;
	border: 1px solid var(--ls-trait);
	text-decoration: none;
	font-size: .9rem;
}
.page-numbers.current { background: var(--ls-nuit); border-color: var(--ls-nuit); color: var(--ls-pierre); }
.page-numbers:hover { border-color: var(--ls-laiton); }

.wp-block-image img { height: auto; }
.wp-block-button__link { background: var(--ls-laiton); color: var(--ls-nuit); border-radius: 0; }


/* == 14. PIED DE PAGE ==================================================== */

.ls-footer {
	background: var(--ls-nuit);
	color: var(--ls-brume);
	font: 400 .9rem/1.65 var(--ls-sans);
	padding: clamp(2.75rem, 6vw, 4.5rem) 0 0;
	border-top: 2px solid var(--ls-laiton);
}
.ls-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, 1fr);
	gap: clamp(1.75rem, 4vw, 3.25rem);
}
.ls-footer__logo { margin-bottom: 1.25rem; }
.ls-footer__pitch { max-width: 46ch; margin: 0 0 1.5rem; }

.ls-nap { display: grid; gap: .15rem; font-style: normal; margin-bottom: 1rem; }
.ls-nap__name { color: var(--ls-pierre); font-weight: 600; }
.ls-nap a { color: var(--ls-pierre); text-decoration: none; }
.ls-nap a:hover { color: var(--ls-laiton); }

.ls-footer__gbp { margin: 0 0 1rem; }
.ls-footer__gbp a {
	display: inline-block;
	padding-bottom: 2px;
	color: var(--ls-pierre);
	text-decoration: none;
	border-bottom: 1px solid var(--ls-laiton);
}
.ls-footer__gbp a:hover { color: var(--ls-laiton); }

.ls-footer__legalid { margin: 0; font-size: .8125rem; color: #6f757d; }

.ls-footer__title {
	margin: 0 0 .9rem;
	font: 400 1.15rem/1.2 var(--ls-serif);
	color: var(--ls-pierre);
}
.ls-footer__col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.ls-footer__col li { margin: 0; }
.ls-footer__col a { color: var(--ls-brume); text-decoration: none; }
.ls-footer__col a:hover { color: var(--ls-laiton); }

.ls-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: clamp(2rem, 5vw, 3.25rem);
	padding: 1.25rem 0;
	border-top: 1px solid var(--ls-trait-nuit);
	font-size: .8125rem;
}
.ls-footer__bottom p { margin: 0; }
.ls-footer__legal { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.ls-footer__legal li { margin: 0; }
.ls-footer__legal a { color: #6f757d; text-decoration: none; }
.ls-footer__legal a:hover { color: var(--ls-pierre); }

@media (max-width: 900px) {
	.ls-footer__grid { grid-template-columns: repeat(2, 1fr); }
	.ls-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.ls-footer__grid { grid-template-columns: 1fr; }
	.ls-footer { padding-bottom: 72px; } /* place pour la barre d'action */
}


/* == 15. WHATSAPP ET BARRE D'ACTION MOBILE =============================== */

.ls-whatsapp {
	position: fixed;
	right: 20px; bottom: 20px;
	z-index: 95;
	display: grid;
	place-items: center;
	width: 54px; height: 54px;
	border-radius: 50%;
	background: var(--ls-succes);
	color: #fff;
	box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .55);
	transition: transform .18s ease, box-shadow .18s ease;
}
.ls-whatsapp:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -8px rgba(0, 0, 0, .6);
}
.ls-whatsapp svg { display: block; }
.ls-nav-open .ls-whatsapp { display: none; }

.ls-dock { display: none; }

@media (max-width: 720px) {
	.ls-whatsapp { bottom: 72px; right: 16px; width: 50px; height: 50px; }

	.ls-dock {
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 90;
		display: grid;
		grid-template-columns: 1fr 1fr;
		background: var(--ls-nuit-haut);
		border-top: 1px solid rgba(236, 229, 216, .12);
	}
	.ls-dock__item {
		padding: 1rem;
		text-align: center;
		color: var(--ls-pierre);
		font: 600 .95rem/1 var(--ls-sans);
		text-decoration: none;
	}
	.ls-dock__item--primary { background: var(--ls-laiton); color: var(--ls-nuit); }
	.ls-nav-open .ls-dock { display: none; }
}


/* == 16. ACCESSIBILITÉ ET ANIMATIONS ===================================== */

/* apparition douce au défilement — voir script.js */
.ls-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s ease, transform .5s ease;
}
.ls-reveal.is-visible { opacity: 1; transform: none; }

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

@media print {
	.ls-utility, .ls-header, .ls-dock, .ls-whatsapp, .ls-breadcrumb { display: none !important; }
	body { background: #fff; color: #000; }
}