/*
 * Tecadji — direction « doux et rond ».
 * Fond blanc, texte anthracite, une couleur pastel par service, police arrondie Nunito (hébergée dans le thème),
 * gros éléments arrondis faciles à toucher, illustrations dessinées, petites animations à rebond.
 */

:root {
	--d54-ciel: #DCEBFF;
	--d54-menthe: #D4F2E2;
	--d54-lavande: #E7E2FB;
	--d54-peche: #FFE2D1;
	--d54-citron: #FFF1B8;
	--d54-rose: #FCE0EA;
	--d54-ciel-2: #C6DEFF;
	--d54-menthe-2: #BCEBD2;
	--d54-lavande-2: #D6CEF8;
	--d54-peche-2: #FFD0B5;
	--d54-citron-2: #FFE88A;
	--d54-rose-2: #F8CADB;
	--d54-encre: #2B2D33;
	--d54-carte: #fff;
	--d54-survol: #ECEAE4;
	--d54-survol-2: #E7E5DE;
	--d54-attention: #FFF5D6;
	color-scheme: light dark;
	--d54-rebond: cubic-bezier(0.34, 1.56, 0.64, 1);
	--d54-doux: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Palette resserrée : surfaces gris doux, un seul accent vert menthe. */
:is(.d54-puces, .d54-tuiles, .d54-bulles, .d54-chemin, .d54-nuage, .d54-grille) > * { --d54-pastel: var(--wp--preset--color--fond); --d54-pastel-2: var(--d54-survol); }
.has-fond-background-color :is(.d54-puces, .d54-tuiles, .d54-bulles, .d54-nuage, .d54-grille) > * { --d54-pastel: var(--d54-carte); --d54-pastel-2: var(--d54-carte); }

/* ---------- Base & accessibilité ---------- */

html { scroll-padding-top: 6rem; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
body { -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; height: auto; }
strong, b { font-weight: 800; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--d54-encre);
	outline-offset: 3px;
	border-radius: 12px;
}

a { text-underline-offset: 0.2em; text-decoration-thickness: 2px; text-decoration-color: rgba(29, 95, 184, 0.35); }
a:hover { text-decoration-color: currentColor; }
::selection { background: var(--d54-menthe-2); color: var(--d54-encre); }
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }

.skip-link.screen-reader-text:focus { background: var(--d54-carte); color: var(--d54-encre); z-index: 100001; border-radius: 12px; }
.wp-site-blocks { overflow-x: clip; }
body .wp-site-blocks > * { margin-block-start: 0; }
main .wp-block-post-content > .alignfull,
main > .alignfull { margin-block: 0 !important; }
.wp-block-column:not(:has(*)) { display: none; }

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

.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
@media (min-width: 601px) and (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; }
}
@media (min-width: 783px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
}
.d54-header { background: var(--wp--preset--color--blanc); min-height: 4.5rem; }
.d54-header > .alignwide { max-width: 82rem; }
.d54-header .wp-block-site-title { white-space: nowrap; }
.d54-header .wp-block-site-title a:hover { color: var(--d54-encre); }
.d54-header .wp-block-site-logo img { max-height: 46px; width: auto; }
.d54-header .wp-block-site-tagline { display: none; }
@media (min-width: 900px) {
	.d54-header .wp-block-site-tagline { display: block; max-width: 13rem; line-height: 1.3; }
}
.d54-header .d54-header__cta { display: none; }
@media (min-width: 783px) {
	.d54-header .d54-header__cta { display: flex; }
}
.d54-header__cta .wp-block-button__link { padding: 0.75rem 1.375rem; font-size: 1rem; white-space: nowrap; }

.d54-logo { margin: 0; flex: none; }
.d54-logo img { display: block; width: 44px; height: 44px; }
.d54-header .wp-block-site-logo ~ .d54-logo { display: none !important; }
@media (prefers-reduced-motion: no-preference) {
	.d54-header .wp-block-group:hover > .d54-logo img { animation: d54-hop 0.6s var(--d54-rebond); }
}

/* Liens du menu : une pastille douce au survol et sur la page en cours. */
.d54-header .wp-block-navigation .wp-block-navigation__container { gap: 0.25rem; }
.d54-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 0.5rem 0.75rem;
	border-radius: 999px;
	transition: background-color 0.2s ease;
}
.d54-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--fond); color: var(--d54-encre); }
.d54-header .wp-block-navigation__container > .wp-block-navigation-item > .d54-actif { background: var(--d54-menthe); color: var(--d54-encre); }
.wp-block-navigation .d54-actif { font-weight: 800; }

.d54-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-radius: 24px;
	box-shadow: 0 20px 50px rgba(43, 45, 51, 0.16);
	padding: 0.5rem;
	min-width: 19rem;
}
/* Couleurs du sous-menu et du menu mobile : celles du thème (clair comme sombre), pas le blanc par défaut de WordPress. */
.d54-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background-color: var(--d54-carte) !important;
	color: var(--d54-encre) !important;
	min-width: 19rem !important;
}
.d54-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--blanc) !important;
	color: var(--d54-encre) !important;
}
.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background-color: transparent !important; }
.d54-header .wp-block-navigation__responsive-container-open,
.d54-header .wp-block-navigation__responsive-container-close,
.d54-header .wp-block-navigation-submenu__toggle { color: var(--d54-encre); }
.d54-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.75rem 1rem; border-radius: 16px; }
.d54-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--fond); }

.d54-header .wp-block-navigation__responsive-container-open,
.d54-header .wp-block-navigation__responsive-container-close {
	width: 3rem;
	height: 3rem;
	justify-content: center;
	align-items: center;
	border-radius: 50%;
	background: var(--wp--preset--color--fond);
}
.d54-header .wp-block-navigation__responsive-container-open svg,
.d54-header .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
.d54-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1.125rem, 4vw, 2rem) 2rem; }
.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; align-items: stretch; }
.d54-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) { align-items: stretch; text-align: left; }
.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.5rem; width: 100%; }
.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--fond);
	border-radius: 20px;
	font-size: 1.25rem;
	font-weight: 800;
	width: 100%;
	box-sizing: border-box;
}
.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	font-size: 1.0625rem;
	font-weight: 700;
	padding: 0.5rem 0 0.5rem 1rem !important;
	gap: 0.25rem;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none;
}
@media (prefers-reduced-motion: no-preference) {
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > * { animation: d54-pop 0.55s var(--d54-rebond) both; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(2) { animation-delay: 0.05s; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(3) { animation-delay: 0.1s; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(4) { animation-delay: 0.15s; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(5) { animation-delay: 0.2s; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(6) { animation-delay: 0.25s; }
	.d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > :nth-child(7) { animation-delay: 0.3s; }
}
/* Menu complet à partir de 1360 px ; menu compact en dessous. */
@media (min-width: 600px) and (max-width: 1359.98px) {
	.d54-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.d54-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Lien vers un autre site (ouvre un nouvel onglet) : flèche visible, annoncée aux lecteurs d'écran. */
.d54-lien-externe > a::after,
a.d54-lien-externe::after {
	content: "\2197";
	content: "\2197" / " (nouvel onglet)";
	display: inline-block;
	margin-left: 0.3em;
	font-weight: 700;
}

/* ---------- Barre d'appel mobile ---------- */

.d54-mobile-bar {
	position: fixed;
	z-index: 40;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.75rem clamp(0.75rem, 4vw, 1.25rem) calc(0.75rem + env(safe-area-inset-bottom));
	background: var(--wp--preset--color--blanc);
	border-radius: 24px 24px 0 0;
	box-shadow: 0 -10px 30px rgba(43, 45, 51, 0.12);
}
.d54-mobile-bar .wp-block-buttons { flex-wrap: nowrap; gap: 0.625rem; }
.d54-mobile-bar .wp-block-button { flex: 1 1 50%; }
.d54-mobile-bar .wp-block-button__link { width: 100%; min-height: 3.375rem; display: flex; align-items: center; justify-content: center; padding: 0.625rem 0.75rem; font-size: 1.0625rem; }
@media (max-width: 782px) {
	.wp-site-blocks { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
	body:has(.d54-form :focus) .d54-mobile-bar { display: none; }
}
@media (min-width: 783px) {
	.d54-mobile-bar { display: none; }
}

/* ---------- Boutons : gros, ronds, qui réagissent ---------- */

.wp-block-button__link,
.d54-form__envoyer {
	min-height: 3.25rem;
	transition: background-color 0.2s ease, transform 0.35s var(--d54-rebond);
}
.wp-block-button__link:hover,
.d54-form__envoyer:hover { transform: translateY(-3px); }
.wp-block-button__link:active,
.d54-form__envoyer:active { transform: scale(0.96); }
.wp-block-button.is-style-outline .wp-block-button__link { background-color: var(--wp--preset--color--fond); }
.has-fond-background-color .wp-block-button.is-style-outline .wp-block-button__link { background-color: var(--d54-carte); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background-color: var(--d54-survol-2); color: var(--d54-encre); }
.wp-block-button__link.has-blanc-background-color:hover { background-color: var(--d54-survol) !important; }
.wp-block-button.is-style-lien .wp-block-button__link { background: transparent; color: var(--wp--preset--color--bleu); padding: 0.25rem 0; min-height: 0; border-radius: 0; }
.wp-block-button.is-style-lien .wp-block-button__link::after { content: " →"; display: inline-block; transition: transform 0.35s var(--d54-rebond); }
.wp-block-button.is-style-lien .wp-block-button__link:hover { transform: none; text-decoration: underline; }
.wp-block-button.is-style-lien .wp-block-button__link:hover::after { transform: translateX(5px); }
@media (max-width: 480px) {
	.d54-boutons-mobile-pleins > .wp-block-button,
	.d54-boutons-mobile-pleins > .wp-block-button .wp-block-button__link { width: 100%; }
}

/* ---------- Textes ---------- */

.is-style-chapo { font-size: var(--wp--preset--font-size--medium); line-height: 1.55; color: var(--wp--preset--color--secondaire-fonce); }
.is-style-surtitre,
.d54-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	width: fit-content;
	padding: 0.375rem 1rem 0.375rem 0.75rem;
	border-radius: 999px;
	background: var(--d54-menthe);
	font-weight: 800;
	font-size: 0.9688rem;
	color: var(--d54-encre);
}
.d54-badge::before,
.is-style-surtitre::before { content: ""; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: #16794A; }
.is-style-numero { font-size: 2.5rem; font-weight: 900; color: var(--d54-encre); margin: 0; }
.is-style-prix { font-size: clamp(2.25rem, 4vw, 2.75rem); font-weight: 900; line-height: 1.05; letter-spacing: -0.02em; margin: 0; }
.d54-intro { max-width: 46rem; margin-left: auto !important; margin-right: auto !important; }
.d54-intro > * { margin-left: auto; margin-right: auto; }
.d54-entete { max-width: var(--wp--style--global--wide-size) !important; }
.d54-fil a { color: var(--wp--preset--color--secondaire-fonce); text-decoration: none; font-weight: 700; }
.d54-fil a:hover { color: var(--d54-encre); text-decoration: underline; }
.d54-fil { color: var(--wp--preset--color--secondaire-fonce); }

/* ---------- Accueil : premier écran ---------- */

.d54-hero--accueil h1 { font-size: clamp(2.5rem, 4.4vw, 4rem) !important; }
.d54-hero__visuel img { display: block; width: 100%; margin-inline: auto; }
ul.d54-puces-confiance { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
ul.d54-puces-confiance li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 !important;
	padding: 0.5rem 1rem 0.5rem 0.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--fond);
	font-weight: 700;
	font-size: 1rem;
}
ul.d54-puces-confiance li::before {
	content: "";
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: var(--d54-menthe-2) center / 0.875rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

/* ---------- Problèmes : grosses pastilles cliquables ---------- */

ul.d54-puces {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr));
	gap: 0.875rem;
}
ul.d54-puces li { margin: 0 !important; }
ul.d54-puces a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 5rem;
	padding: 1rem 3.75rem 1rem 5rem;
	border-radius: 28px;
	background: var(--d54-pastel);
	color: var(--d54-encre);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color 0.25s ease, transform 0.4s var(--d54-rebond);
}
ul.d54-puces a::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 50%;
	width: 3rem;
	height: 3rem;
	margin-top: -1.5rem;
	border-radius: 50%;
	background: var(--d54-carte) center / 1.5rem no-repeat;
	transition: background-color 0.25s ease, transform 0.4s var(--d54-rebond);
}
ul.d54-puces a:hover::before { background-color: var(--d54-menthe); transform: rotate(-8deg); }
ul.d54-puces li:nth-child(1) a::before { background-image: url(../icons/lent.svg); }
ul.d54-puces li:nth-child(2) a::before { background-image: url(../icons/demarrage.svg); }
ul.d54-puces li:nth-child(3) a::before { background-image: url(../icons/wifi.svg); }
ul.d54-puces li:nth-child(4) a::before { background-image: url(../icons/ventilateur.svg); }
ul.d54-puces li:nth-child(5) a::before { background-image: url(../icons/composants.svg); }
ul.d54-puces li:nth-child(6) a::before { background-image: url(../icons/fichiers.svg); }
ul.d54-puces li:nth-child(7) a::before { background-image: url(../icons/telephone-transfert.svg); }
ul.d54-puces li:nth-child(8) a::before { background-image: url(../icons/telephone-reparation.svg); }
ul.d54-puces a::after {
	content: "";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: -0.75rem;
	background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	transition: transform 0.4s var(--d54-rebond);
}
ul.d54-puces a:hover { background: var(--d54-pastel-2); transform: translateY(-4px); }
ul.d54-puces a:hover::after { transform: translateX(5px); }
ul.d54-puces a:active { transform: scale(0.98); }

/* ---------- Services : tuiles colorées de tailles variées ---------- */

.d54-tuiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}
.d54-tuiles > * { margin: 0 !important; }
@media (max-width: 999px) {
	.d54-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.d54-tuiles > :nth-child(1) { grid-column: span 2; }
}
@media (max-width: 599px) {
	.d54-tuiles { grid-template-columns: minmax(0, 1fr); }
	.d54-tuiles > :nth-child(n) { grid-column: auto; }
}
.d54-tuile {
	position: relative;
	min-height: 15rem;
	padding: clamp(1.5rem, 3.5vw, 2.25rem);
	border-radius: 32px;
	background: var(--d54-pastel);
	transition: background-color 0.25s ease, transform 0.45s var(--d54-rebond);
}
.d54-tuile .wp-block-image.is-style-icone {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: var(--d54-carte);
	margin: 0 0 0.5rem;
	transition: transform 0.45s var(--d54-rebond);
}
.d54-tuile .wp-block-image.is-style-icone img { width: 1.75rem; height: 1.75rem; }
.d54-tuile h3 { margin-top: 0.25rem; }
.d54-tuile h3 a { color: var(--d54-encre); text-decoration: none; }
.d54-tuile h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.d54-tuile p:not(.d54-tuile__prix) { color: var(--wp--preset--color--secondaire-fonce); max-width: 34rem; }
.d54-tuile__prix {
	margin-top: auto !important;
	width: fit-content;
	padding: 0.375rem 1rem;
	border-radius: 999px;
	background: var(--d54-carte);
	font-weight: 900;
}
.d54-tuile:hover { background: var(--d54-pastel-2); transform: translateY(-6px) rotate(-0.4deg); }
.d54-tuile:hover .is-style-icone { transform: rotate(-10deg) scale(1.08); background: var(--d54-menthe); }
.d54-tuile:has(a:focus-visible) { outline: 3px solid var(--d54-encre); outline-offset: 4px; }
.d54-tuile a:focus-visible { outline: none; }

/* ---------- Tarifs : bulles de prix ---------- */

.d54-bulles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 1rem;
}
.d54-bulles > * { margin: 0 !important; }
.d54-bulle { background: var(--d54-carte); border-radius: 32px; padding: 1.75rem; text-align: center; transition: transform 0.45s var(--d54-rebond); }
.d54-bulle:hover { transform: translateY(-6px); }
.d54-bulle p:last-child { color: var(--wp--preset--color--secondaire-fonce); }
.d54-gros-prix {
	display: inline-block;
	margin: 0 auto 0.5rem !important;
	max-width: 100%;
	padding: 0.45rem 0.875rem;
	border-radius: 999px;
	background: var(--d54-menthe);
	white-space: nowrap;
	font-size: clamp(1.25rem, 1.7vw, 1.625rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

/* ---------- Panneaux arrondis ---------- */

.d54-panneau { border-radius: 40px; padding: clamp(1.75rem, 5vw, 4rem) !important; }
.d54-panneau--centre { text-align: center; }
.d54-panneau--centre .wp-block-image.is-style-icone {
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--d54-carte);
}
.d54-panneau--centre .wp-block-image.is-style-icone img { width: 2.25rem; height: 2.25rem; }
.d54-cta-final h2 { font-size: var(--wp--preset--font-size--x-large); }

ul.d54-coches-rondes li { padding-left: 2.5rem; }
ul.d54-coches-rondes li + li { margin-top: 0.875rem; }
ul.d54-coches-rondes li::before {
	width: 1.75rem;
	height: 1.75rem;
	top: 0.05em;
	border-radius: 50%;
	background: var(--d54-carte) center / 1rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316794A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") !important;
}

/* ---------- Étapes : gros ronds reliés par un chemin ---------- */

.d54-chemin {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: 2rem 1.5rem;
	text-align: center;
}
.d54-chemin > * { margin: 0 !important; position: relative; z-index: 1; }
@media (min-width: 900px) {
	.d54-chemin::before {
		content: "";
		position: absolute;
		top: 2.25rem;
		left: 12%;
		right: 12%;
		border-top: 4px dashed var(--wp--preset--color--bordure);
	}
}
.d54-rond {
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	margin: 0 auto 0.5rem !important;
	border-radius: 50%;
	background: var(--d54-menthe);
	box-shadow: 0 0 0 8px var(--d54-carte);
	font-size: 1.75rem;
	font-weight: 900;
	transition: transform 0.45s var(--d54-rebond);
}
.d54-etape:hover .d54-rond { transform: scale(1.1) rotate(-6deg); }

/* ---------- Zone : nuage de communes ---------- */

ul.d54-nuage { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.625rem; }
ul.d54-nuage li {
	margin: 0 !important;
	padding: 0.625rem 1.25rem;
	border-radius: 999px;
	background: var(--d54-pastel);
	font-weight: 800;
	font-size: 1.125rem;
	transition: transform 0.4s var(--d54-rebond);
}
ul.d54-nuage li:nth-child(odd) { transform: rotate(-1.5deg); }
ul.d54-nuage li:nth-child(even) { transform: rotate(1.2deg); }
ul.d54-nuage li:hover { transform: rotate(0) scale(1.06); }
ul.d54-nuage li:last-child { background: transparent; box-shadow: inset 0 0 0 2px var(--wp--preset--color--bordure); font-weight: 700; }

/* ---------- Cartes et grilles des pages intérieures ---------- */

.is-style-carte,
.is-style-carte-lien {
	background: var(--d54-pastel, var(--wp--preset--color--fond));
	border-radius: 32px;
	padding: clamp(1.5rem, 3.5vw, 2.25rem);
	height: 100%;
}
.d54-hero .is-style-carte { background: var(--d54-carte); }
.is-style-carte > :first-child,
.is-style-carte-lien > :first-child { margin-top: 0; }
.is-style-carte-lien { position: relative; transition: background-color 0.25s ease, transform 0.45s var(--d54-rebond); }
.is-style-carte-lien a { text-decoration: none; font-weight: 800; color: var(--d54-encre); }
.is-style-carte-lien a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.is-style-carte-lien:hover { background: var(--d54-pastel-2, var(--d54-survol)); transform: translateY(-6px); }
.is-style-carte-lien:has(a:focus-visible) { outline: 3px solid var(--d54-encre); outline-offset: 4px; }
.is-style-carte-lien a:focus-visible { outline: none; }
.d54-carte__lien { margin-top: auto !important; padding-top: 0.25rem; }
.d54-carte__lien a { padding-right: 1.625rem; background: right 0.125rem center / 1.125rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); transition: background-position 0.35s var(--d54-rebond); }
.is-style-carte-lien:hover .d54-carte__lien a { background-position: right -0.25rem center; }
.d54-grille > .wp-block-group,
.d54-grille > .wp-block-column { display: flex; flex-direction: column; }
.d54-grille .is-style-carte .wp-block-table.is-style-tarifs table { background: transparent; }

.is-style-encadre,
.is-style-encadre-attention {
	border-radius: 24px;
	padding: 1.25rem 1.5rem 1.25rem 3.75rem;
	position: relative;
	background: var(--wp--preset--color--fond);
}
.has-fond-background-color .is-style-encadre { background: var(--d54-carte); }
.is-style-encadre::before,
.is-style-encadre-attention::before {
	content: "";
	position: absolute;
	left: 1.125rem;
	top: 1.2rem;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--d54-carte) center / 1.125rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E");
}
.is-style-encadre-attention { background: var(--d54-attention); }
.is-style-encadre-attention::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 16.5h.01'/%3E%3C/svg%3E"); }
.is-style-encadre > *,
.is-style-encadre-attention > * { margin-top: 0; margin-bottom: 0; }
.is-style-encadre > * + *,
.is-style-encadre-attention > * + * { margin-top: 0.5rem; }

/* ---------- Listes ---------- */

ul.is-style-coches,
ul.is-style-sans-puces,
ul.is-style-pastilles { list-style: none; padding-left: 0; }
ul.is-style-coches li { position: relative; padding-left: 2rem; }
ul.is-style-coches li + li { margin-top: 0.5rem; }
ul.is-style-coches li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.375rem;
	height: 1.375rem;
	border-radius: 50%;
	background: var(--d54-menthe-2) center / 0.8rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
ul.is-style-sans-puces li + li { margin-top: 0.375rem; }
ul.is-style-pastilles { display: flex; flex-wrap: wrap; gap: 0.5rem; }
ul.is-style-pastilles li { background: var(--wp--preset--color--fond); border-radius: 999px; padding: 0.5rem 1.125rem; font-weight: 700; margin: 0 !important; }
ul.is-style-pastilles a { text-decoration: none; color: var(--d54-encre); }
.has-fond-background-color ul.is-style-pastilles li,
.is-style-carte ul.is-style-pastilles li { background: var(--d54-carte); }

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

.wp-block-image.is-style-icone { margin: 0 0 0.25rem; flex: none; }
.wp-block-image.is-style-icone img { width: 2rem; height: 2rem; }
.wp-block-image.is-style-photo img { border-radius: 32px; }

/* ---------- En-têtes des pages intérieures ---------- */

.d54-hero--page {
	border-radius: 0 0 48px 48px;
	margin-inline: clamp(0rem, 1vw, 1rem) !important;
	width: auto !important;
}
.d54-hero--page h1 { max-width: 20ch; }
.d54-hero--page p:not(.d54-fil) { max-width: 44rem; }

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

.d54-faq > * + * { margin-top: 0.625rem !important; }
.wp-block-details {
	background: var(--wp--preset--color--fond);
	border-radius: 24px;
	padding: 0;
	transition: background-color 0.25s ease;
}
.has-fond-background-color .wp-block-details { background: var(--d54-carte); }
.wp-block-details[open] { background: var(--d54-menthe); }
.wp-block-details summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 1.25rem 4.25rem 1.25rem 1.5rem;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 800;
	line-height: 1.4;
	border-radius: 24px;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 1.125rem;
	top: 50%;
	width: 2.25rem;
	height: 2.25rem;
	margin-top: -1.125rem;
	border-radius: 50%;
	background: var(--d54-carte) center / 1rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D33' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
	transition: transform 0.45s var(--d54-rebond);
}
.has-fond-background-color .wp-block-details summary::after { background-color: var(--wp--preset--color--fond); }
.wp-block-details[open] summary::after { transform: rotate(135deg); background-color: var(--d54-carte); }
.wp-block-details > :not(summary) { margin: 0; padding: 0 1.5rem; color: var(--wp--preset--color--secondaire-fonce); }
.wp-block-details > :not(summary) + :not(summary) { padding-top: 0.75rem; }
.wp-block-details > :last-child:not(summary) { padding-bottom: 1.5rem; }
@media (prefers-reduced-motion: no-preference) {
	.wp-block-details[open] > :not(summary) { animation: d54-pop 0.5s var(--d54-rebond) both; }
}

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

.d54-footer { border-radius: 48px 48px 0 0; margin-inline: clamp(0rem, 1vw, 1rem) !important; width: auto !important; }
.d54-footer a:not(.wp-element-button) { color: var(--wp--preset--color--secondaire-fonce); text-decoration: none; font-weight: 600; }
.d54-footer a:not(.wp-element-button):hover { color: var(--d54-encre); text-decoration: underline; }
.d54-footer .wp-block-site-title a { color: var(--d54-encre); font-weight: 900; }
.d54-footer .wp-block-site-tagline { color: var(--wp--preset--color--secondaire-fonce); }
.d54-footer .wp-block-navigation { font-weight: 600; font-size: 1rem; }
.d54-footer .wp-block-navigation .wp-block-navigation-item__content { padding: 0.125rem 0; }
.d54-footer h2 { font-size: 1.0625rem; letter-spacing: 0; color: var(--d54-encre); }
.d54-footer .d54-footer__bas { border-top: 2px solid var(--wp--preset--color--bordure); }

/* ---------- Articles et recherche ---------- */

.d54-articles .wp-block-post { display: flex; flex-direction: column; }
.d54-articles .wp-block-post-featured-image img { border-radius: 24px; aspect-ratio: 16 / 10; object-fit: cover; }
.d54-article .wp-block-post-content > * + h2 { margin-top: 2.5rem; }
.d54-article .wp-block-post-content > * + h3 { margin-top: 1.75rem; }
.wp-block-search__input { border: 2px solid var(--wp--preset--color--bordure); border-radius: 999px; padding: 0.75rem 1.25rem; font-size: 1.125rem; min-height: 3.25rem; font-family: inherit; }
.wp-block-search__button { margin-left: 0.5rem; }

/* ---------- Mouvement : de petits rebonds ---------- */

@keyframes d54-pop {
	0% { opacity: 0; transform: translateY(24px) scale(0.94); }
	60% { opacity: 1; transform: translateY(-4px) scale(1.01); }
	100% { opacity: 1; transform: none; }
}
@keyframes d54-hop {
	30% { transform: translateY(-6px) rotate(-6deg); }
	60% { transform: translateY(0) rotate(3deg); }
}

/* Apparitions déclenchées par assets/js/motion.js (rien n'est masqué sans script). */
.d54-apparition {
	opacity: 0;
	transform: translateY(28px) scale(0.95);
	transition: opacity 0.45s ease, transform 0.75s var(--d54-rebond);
}
.d54-apparition.d54-pose { opacity: 1; transform: none; }
ul.d54-nuage li.d54-apparition.d54-pose:nth-child(odd) { transform: rotate(-1.5deg); }
ul.d54-nuage li.d54-apparition.d54-pose:nth-child(even) { transform: rotate(1.2deg); }
/* Une fois posés, les éléments retrouvent leurs propres transitions de survol. */
.d54-pose.d54-tuile,
.d54-pose.d54-bulle { transition: background-color 0.25s ease, transform 0.45s var(--d54-rebond); }

@media (prefers-reduced-motion: no-preference) {
	.d54-hero--accueil .wp-block-column:first-child > *,
	.d54-hero--page :is(h1, .is-style-chapo, .wp-block-buttons, .is-style-carte) {
		animation: d54-pop 0.8s var(--d54-rebond) both;
	}
	.d54-hero--accueil .wp-block-column:first-child > :nth-child(2) { animation-delay: 0.06s; }
	.d54-hero--accueil .wp-block-column:first-child > :nth-child(3) { animation-delay: 0.12s; }
	.d54-hero--accueil .wp-block-column:first-child > :nth-child(4) { animation-delay: 0.18s; }
	.d54-hero--accueil .wp-block-column:first-child > :nth-child(5) { animation-delay: 0.24s; }
	.d54-hero--accueil .d54-hero__visuel { animation: d54-pop 1s 0.15s var(--d54-rebond) both; }
	.d54-hero--page .is-style-chapo { animation-delay: 0.06s; }
	.d54-hero--page .wp-block-buttons { animation-delay: 0.12s; }
	.d54-hero--page .is-style-carte { animation-delay: 0.18s; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.d54-apparition { opacity: 1; transform: none; }
}

@media print {
	.d54-mobile-bar,
	.wp-block-navigation { display: none; }
	.wp-site-blocks > header.wp-block-template-part { position: static; }
	.d54-apparition { opacity: 1; transform: none; }
}

/* ---------- Grille tarifaire ---------- */

.wp-block-table.is-style-tarifs table {
	table-layout: auto;
	border-collapse: collapse;
	width: 100%;
	background: var(--wp--preset--color--blanc);
	border-radius: 18px;
	overflow: hidden;
}
.wp-block-table.is-style-tarifs :where(th, td) {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--bordure);
	padding: 0.875rem 0.75rem;
	text-align: left;
	vertical-align: top;
}
.wp-block-table.is-style-tarifs thead { border: 0; }
.wp-block-table.is-style-tarifs thead th {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--secondaire);
	border-bottom: 2px solid var(--wp--preset--color--bordure);
}
.wp-block-table.is-style-tarifs :where(th, td):last-child {
	text-align: right;
	white-space: nowrap;
	font-weight: 700;
}
.wp-block-table.is-style-tarifs tbody tr:hover { background: var(--wp--preset--color--fond); }
.wp-block-table.is-style-tarifs figcaption { text-align: left; margin-top: 0.75rem; }


/* ---------- Formulaire ---------- */

.d54-form { display: grid; gap: 1.25rem; position: relative; }
.d54-form__grille {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.125rem 1.25rem;
}
@media (min-width: 640px) {
	.d54-form__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.d54-form__pleine { grid-column: 1 / -1; }
}
.d54-form__champ { margin: 0; min-width: 0; }
.d54-form label,
.d54-form legend {
	display: block;
	font-weight: 600;
	margin-bottom: 0.4375rem;
	line-height: 1.4;
}
.d54-form__obl { font-weight: 400; font-size: 0.875rem; color: var(--wp--preset--color--secondaire); }
.d54-form :where(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
	display: block;
	width: 100%;
	min-height: 3.125rem;
	padding: 0.75rem 0.875rem;
	font: inherit;
	font-size: 1.0625rem; /* ≥ 16 px : pas de zoom automatique sur iOS. */
	color: var(--wp--preset--color--nuit);
	background: var(--wp--preset--color--blanc);
	border: 2px solid #D9D6CE;
	border-radius: 18px;
	box-sizing: border-box;
}
.d54-form textarea { min-height: 8.5rem; resize: vertical; }
.d54-form :where(input, select, textarea):hover { border-color: #8EA2C0; }
.d54-form :where(input, select, textarea):focus-visible { border-color: var(--wp--preset--color--nuit); outline-offset: 1px; }
.d54-form [aria-invalid="true"] { border-color: #B42318; }
.d54-form__aide { font-size: 0.9375rem; color: var(--wp--preset--color--secondaire); margin: 0.375rem 0 0; }
.d54-form__aide.d54-form__pleine { margin-top: -0.5rem; }
.d54-form__erreur { font-size: 0.9375rem; font-weight: 600; color: #B42318; margin: 0.375rem 0 0; }
.d54-form__note { font-size: 0.9375rem; color: var(--wp--preset--color--secondaire); margin: 0; }

.d54-form__choix { border: 0; padding: 0; }
.d54-form__choix legend { padding: 0; }
.d54-form .d54-form__radio,
.d54-form .d54-form__case {
	display: flex;
	gap: 0.625rem;
	align-items: flex-start;
	font-weight: 400;
	cursor: pointer;
}
.d54-form .d54-form__radio { display: inline-flex; margin: 0.25rem 1.5rem 0.25rem 0; align-items: center; }
.d54-form :where(input[type="radio"], input[type="checkbox"]) {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0.125rem 0 0;
	flex: none;
	accent-color: var(--wp--preset--color--bleu);
}

.d54-form__piege {
	position: absolute !important;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.d54-form__actions { display: grid; gap: 0.5rem; justify-items: start; }
.d54-form__envoyer { cursor: pointer; font-size: 1.125rem; padding: 1rem 2rem; border: 0; }
@media (max-width: 639px) {
	.d54-form__actions,
	.d54-form__envoyer { width: 100%; }
}

.d54-form__alerte,
.d54-form__succes {
	border-radius: var(--wp--custom--radius--m);
	padding: 1rem 1.25rem;
}
.d54-form__alerte { background: #FEF3F2; border: 1px solid #FDA29B; color: #7A271A; }
.d54-form__alerte a { color: #7A271A; }
.d54-form__succes { background: var(--wp--preset--color--turquoise-pale); border: 1px solid #A7DCCF; color: #0B4F48; margin-bottom: 1.25rem; }
.d54-form__alerte p,
.d54-form__succes p { margin: 0 0 0.25rem; }
.d54-form__alerte ul { margin: 0.5rem 0 0; padding-left: 1.25rem; }


/* Contraste : texte secondaire en version foncée sur les fonds teintés (≥ 4,5:1). */
:where(.is-style-carte, .is-style-carte-lien, .has-fond-background-color, .d54-panneau, .d54-tuile) .has-secondaire-color,
.d54-form__note,
.d54-form__aide,
.d54-form__obl { color: var(--wp--preset--color--secondaire-fonce) !important; }
.d54-form :where(input, select, textarea) { font-family: inherit; }

/* =========================================================================
   Mode sombre : automatique (réglage de l'appareil) ou choisi avec le bouton
   soleil / lune de l'en-tête (mémorisé dans le navigateur du visiteur).
   ========================================================================= */
.d54-sombre { display: none !important; }
html[data-theme="light"] { color-scheme: light; }

/* Bouton soleil / lune (visible uniquement si JavaScript est actif). */
.d54-mode {
	display: none;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--fond);
	color: var(--d54-encre);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.4s var(--d54-rebond);
}
.d54-js .d54-mode { display: inline-flex; }
.d54-mode::before {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	background: currentColor;
	-webkit-mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8.5 8.5 0 0 1 9.5 4a8.5 8.5 0 1 0 10.5 10.5z'/%3E%3C/svg%3E");
	mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8.5 8.5 0 0 1 9.5 4a8.5 8.5 0 1 0 10.5 10.5z'/%3E%3C/svg%3E");
}
.d54-mode[aria-pressed="true"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E");
}
.d54-mode:hover { background: var(--d54-survol); }
.d54-mode:focus-visible { outline: 3px solid var(--d54-encre); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
	.d54-mode:active { transform: rotate(-20deg) scale(0.92); }
}
@media (max-width: 599.98px) {
	.d54-mode { order: -1; }
}

/* Mode sombre choisi avec le bouton. */
html[data-theme="dark"] {
	--wp--preset--color--nuit: #ECEDEF;
	--wp--preset--color--blanc: #000000;
	--wp--preset--color--fond: #000000;
	--wp--preset--color--bleu: #6EE7B0;
	--wp--preset--color--bleu-fonce: #9FF0C9;
	--wp--preset--color--bleu-pale: #000000;
	--wp--preset--color--turquoise: #5EE0A0;
	--wp--preset--color--turquoise-fonce: #8BEDBE;
	--wp--preset--color--turquoise-pale: #0A2418;
	--wp--preset--color--lavande: #000000;
	--wp--preset--color--peche: #000000;
	--wp--preset--color--citron: #000000;
	--wp--preset--color--rose: #000000;
	--wp--preset--color--secondaire: #9EA3AD;
	--wp--preset--color--secondaire-fonce: #BABEC6;
	--wp--preset--color--clair-sur-nuit: #2B2D33;
	--wp--preset--color--bordure: #26272B;
	--d54-encre: #ECEDEF;
	--d54-carte: #000000;
	--d54-trait: #26272B;
	--d54-survol: #111214;
	--d54-survol-2: #18191C;
	--d54-attention: #000000;
	--d54-vert-doux: rgba(34, 196, 122, 0.14);
	--d54-ciel: #000000;
	--d54-ciel-2: #111214;
	--d54-menthe: #0A2418;
	--d54-menthe-2: #0E3021;
	--d54-lavande: #000000;
	--d54-lavande-2: #111214;
	--d54-peche: #000000;
	--d54-peche-2: #111214;
	--d54-citron: #000000;
	--d54-citron-2: #111214;
	--d54-rose: #000000;
	--d54-rose-2: #111214;
	color-scheme: dark;
}
html[data-theme="dark"] a {
	text-decoration-color: rgba(110, 231, 176, 0.45);
}
html[data-theme="dark"] .d54-form {
	accent-color: #22C47A;
}
html[data-theme="dark"] .is-style-encadre-attention {
	box-shadow: inset 0 0 0 1px rgba(255, 214, 102, 0.22);
}
html[data-theme="dark"] :where(.wp-block-button:not(.is-style-outline):not(.is-style-lien)) > .wp-block-button__link:not(.has-background), html[data-theme="dark"] .d54-form__envoyer {
	background-color: #22C47A; color: #06140C;
}
html[data-theme="dark"] :where(.wp-block-button:not(.is-style-outline):not(.is-style-lien)) > .wp-block-button__link:not(.has-background):hover, html[data-theme="dark"] .d54-form__envoyer:hover {
	background-color: #45D493; color: #06140C;
}
html[data-theme="dark"] .d54-clair {
	display: none !important;
}
html[data-theme="dark"] .d54-sombre {
	display: block !important;
}
html[data-theme="dark"] .d54-hero__visuel:has(img[src*="illustration-accueil"]) img {
	visibility: hidden;
}
html[data-theme="dark"] .d54-hero__visuel:has(img[src*="illustration-accueil"]) {
	position: relative; background: center / contain no-repeat url(../images/illustration-accueil-sombre.svg);
}
html[data-theme="dark"] .is-style-icone img {
	filter: brightness(0) saturate(100%) invert(80%) sepia(26%) saturate(645%) hue-rotate(99deg) brightness(95%) contrast(99%);
}
html[data-theme="dark"] .d54-tuile .wp-block-image.is-style-icone, html[data-theme="dark"] .d54-panneau--centre .wp-block-image.is-style-icone {
	background: var(--d54-vert-doux);
}
html[data-theme="dark"] ul.d54-puces a::before {
	background-color: var(--d54-vert-doux);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(1) a::before {
	background-image: url(../icons/sombre/lent.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(2) a::before {
	background-image: url(../icons/sombre/demarrage.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(3) a::before {
	background-image: url(../icons/sombre/wifi.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(4) a::before {
	background-image: url(../icons/sombre/ventilateur.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(5) a::before {
	background-image: url(../icons/sombre/composants.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(6) a::before {
	background-image: url(../icons/sombre/fichiers.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(7) a::before {
	background-image: url(../icons/sombre/telephone-transfert.svg);
}
html[data-theme="dark"] ul.d54-puces li:nth-child(8) a::before {
	background-image: url(../icons/sombre/telephone-reparation.svg);
}
html[data-theme="dark"] ul.d54-puces a::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
html[data-theme="dark"] ul.d54-puces-confiance li::before {
	background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
html[data-theme="dark"] ul.is-style-coches li::before {
	background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
html[data-theme="dark"] ul.d54-coches-rondes li::before {
	background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236EE7B0' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") !important;
}
html[data-theme="dark"] .is-style-encadre::before {
	background-color: rgba(34,196,122,.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .is-style-encadre-attention::before {
	background-color: rgba(255, 214, 102, 0.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 16.5h.01'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .wp-block-details summary::after, html[data-theme="dark"] .has-fond-background-color .wp-block-details summary::after {
	background-color: rgba(34,196,122,.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .wp-block-details[open] summary::after {
	background-color: var(--d54-vert-doux);
}
html[data-theme="dark"] .d54-carte__lien a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .d54-mobile-bar {
	box-shadow: 0 -1px 0 var(--d54-trait);
}
html[data-theme="dark"] .d54-tuile, html[data-theme="dark"] ul.d54-puces a, html[data-theme="dark"] .d54-bulle, html[data-theme="dark"] ul.d54-nuage li, html[data-theme="dark"] .is-style-carte, html[data-theme="dark"] .is-style-carte-lien, html[data-theme="dark"] .is-style-encadre, html[data-theme="dark"] ul.is-style-pastilles li, html[data-theme="dark"] .wp-block-details, html[data-theme="dark"] .d54-tuile__prix, html[data-theme="dark"] ul.d54-puces-confiance li, html[data-theme="dark"] .has-fond-background-color:not(.alignfull), html[data-theme="dark"] .has-blanc-background-color:not(.alignfull), html[data-theme="dark"] .wp-block-button.is-style-outline .wp-block-button__link, html[data-theme="dark"] .d54-mode, html[data-theme="dark"] .d54-header .wp-block-navigation__responsive-container-open, html[data-theme="dark"] .d54-header .wp-block-navigation__responsive-container-close, html[data-theme="dark"] .d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	box-shadow: inset 0 0 0 1px var(--d54-trait);
}
html[data-theme="dark"] .d54-tuile:hover, html[data-theme="dark"] ul.d54-puces a:hover, html[data-theme="dark"] .is-style-carte-lien:hover, html[data-theme="dark"] .d54-mode:hover, html[data-theme="dark"] .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--d54-survol); box-shadow: inset 0 0 0 1px #3A3B40;
}
html[data-theme="dark"] .d54-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background: var(--d54-survol);
}
html[data-theme="dark"] .d54-cta-final {
	background-color: #000000 !important; box-shadow: inset 0 0 0 1px rgba(110,231,176,.45);
}
html[data-theme="dark"] .wp-block-details[open] {
	box-shadow: inset 0 0 0 1px rgba(34, 196, 122, 0.35);
}
html[data-theme="dark"] .d54-header {
	box-shadow: inset 0 -1px 0 var(--d54-trait);
}
html[data-theme="dark"] .d54-footer {
	box-shadow: inset 0 0 0 1px var(--d54-trait);
}
html[data-theme="dark"] .wp-block-table.is-style-tarifs table {
	box-shadow: inset 0 0 0 1px var(--d54-trait);
}
html[data-theme="dark"] .d54-header .wp-block-navigation .wp-block-navigation__submenu-container {
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55), inset 0 0 0 1px var(--wp--preset--color--bordure);
}
html[data-theme="dark"] .d54-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--d54-survol);
}
html[data-theme="dark"] .d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	box-shadow: none;
}
html[data-theme="dark"] .d54-form :where(input, select, textarea) {
	background: var(--d54-carte); color: var(--d54-encre); border-color: #3A3D46;
}
html[data-theme="dark"] .d54-form [aria-invalid="true"] {
	border-color: #F97066;
}
html[data-theme="dark"] .d54-form__erreur {
	color: #FDA29B;
}
html[data-theme="dark"] .d54-form__alerte {
	background: #33150F; border-color: #912018; color: #FECDCA;
}
html[data-theme="dark"] .d54-form__alerte a {
	color: #FECDCA;
}
html[data-theme="dark"] .d54-form__succes {
	border-color: #1D3F2E; color: #A6F4C5;
}

/* Mode sombre automatique (aucun choix enregistré). */
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) {
		--wp--preset--color--nuit: #ECEDEF;
		--wp--preset--color--blanc: #000000;
		--wp--preset--color--fond: #000000;
		--wp--preset--color--bleu: #6EE7B0;
		--wp--preset--color--bleu-fonce: #9FF0C9;
		--wp--preset--color--bleu-pale: #000000;
		--wp--preset--color--turquoise: #5EE0A0;
		--wp--preset--color--turquoise-fonce: #8BEDBE;
		--wp--preset--color--turquoise-pale: #0A2418;
		--wp--preset--color--lavande: #000000;
		--wp--preset--color--peche: #000000;
		--wp--preset--color--citron: #000000;
		--wp--preset--color--rose: #000000;
		--wp--preset--color--secondaire: #9EA3AD;
		--wp--preset--color--secondaire-fonce: #BABEC6;
		--wp--preset--color--clair-sur-nuit: #2B2D33;
		--wp--preset--color--bordure: #26272B;
		--d54-encre: #ECEDEF;
		--d54-carte: #000000;
		--d54-trait: #26272B;
		--d54-survol: #111214;
		--d54-survol-2: #18191C;
		--d54-attention: #000000;
		--d54-vert-doux: rgba(34, 196, 122, 0.14);
		--d54-ciel: #000000;
		--d54-ciel-2: #111214;
		--d54-menthe: #0A2418;
		--d54-menthe-2: #0E3021;
		--d54-lavande: #000000;
		--d54-lavande-2: #111214;
		--d54-peche: #000000;
		--d54-peche-2: #111214;
		--d54-citron: #000000;
		--d54-citron-2: #111214;
		--d54-rose: #000000;
		--d54-rose-2: #111214;
		color-scheme: dark;
	}
	html:not([data-theme="light"]) a {
		text-decoration-color: rgba(110, 231, 176, 0.45);
	}
	html:not([data-theme="light"]) .d54-form {
		accent-color: #22C47A;
	}
	html:not([data-theme="light"]) .is-style-encadre-attention {
		box-shadow: inset 0 0 0 1px rgba(255, 214, 102, 0.22);
	}
	html:not([data-theme="light"]) :where(.wp-block-button:not(.is-style-outline):not(.is-style-lien)) > .wp-block-button__link:not(.has-background), html:not([data-theme="light"]) .d54-form__envoyer {
		background-color: #22C47A; color: #06140C;
	}
	html:not([data-theme="light"]) :where(.wp-block-button:not(.is-style-outline):not(.is-style-lien)) > .wp-block-button__link:not(.has-background):hover, html:not([data-theme="light"]) .d54-form__envoyer:hover {
		background-color: #45D493; color: #06140C;
	}
	html:not([data-theme="light"]) .d54-clair {
		display: none !important;
	}
	html:not([data-theme="light"]) .d54-sombre {
		display: block !important;
	}
	html:not([data-theme="light"]) .d54-hero__visuel:has(img[src*="illustration-accueil"]) img {
		visibility: hidden;
	}
	html:not([data-theme="light"]) .d54-hero__visuel:has(img[src*="illustration-accueil"]) {
		position: relative; background: center / contain no-repeat url(../images/illustration-accueil-sombre.svg);
	}
	html:not([data-theme="light"]) .is-style-icone img {
		filter: brightness(0) saturate(100%) invert(80%) sepia(26%) saturate(645%) hue-rotate(99deg) brightness(95%) contrast(99%);
	}
	html:not([data-theme="light"]) .d54-tuile .wp-block-image.is-style-icone, html:not([data-theme="light"]) .d54-panneau--centre .wp-block-image.is-style-icone {
		background: var(--d54-vert-doux);
	}
	html:not([data-theme="light"]) ul.d54-puces a::before {
		background-color: var(--d54-vert-doux);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(1) a::before {
		background-image: url(../icons/sombre/lent.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(2) a::before {
		background-image: url(../icons/sombre/demarrage.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(3) a::before {
		background-image: url(../icons/sombre/wifi.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(4) a::before {
		background-image: url(../icons/sombre/ventilateur.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(5) a::before {
		background-image: url(../icons/sombre/composants.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(6) a::before {
		background-image: url(../icons/sombre/fichiers.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(7) a::before {
		background-image: url(../icons/sombre/telephone-transfert.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces li:nth-child(8) a::before {
		background-image: url(../icons/sombre/telephone-reparation.svg);
	}
	html:not([data-theme="light"]) ul.d54-puces a::after {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) ul.d54-puces-confiance li::before {
		background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) ul.is-style-coches li::before {
		background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) ul.d54-coches-rondes li::before {
		background-color: var(--d54-vert-doux); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236EE7B0' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") !important;
	}
	html:not([data-theme="light"]) .is-style-encadre::before {
		background-color: rgba(34,196,122,.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) .is-style-encadre-attention::before {
		background-color: rgba(255, 214, 102, 0.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 16.5h.01'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) .wp-block-details summary::after, html:not([data-theme="light"]) .has-fond-background-color .wp-block-details summary::after {
		background-color: rgba(34,196,122,.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) .wp-block-details[open] summary::after {
		background-color: var(--d54-vert-doux);
	}
	html:not([data-theme="light"]) .d54-carte__lien a {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEDEF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	}
	html:not([data-theme="light"]) .d54-mobile-bar {
		box-shadow: 0 -1px 0 var(--d54-trait);
	}
	html:not([data-theme="light"]) .d54-tuile, html:not([data-theme="light"]) ul.d54-puces a, html:not([data-theme="light"]) .d54-bulle, html:not([data-theme="light"]) ul.d54-nuage li, html:not([data-theme="light"]) .is-style-carte, html:not([data-theme="light"]) .is-style-carte-lien, html:not([data-theme="light"]) .is-style-encadre, html:not([data-theme="light"]) ul.is-style-pastilles li, html:not([data-theme="light"]) .wp-block-details, html:not([data-theme="light"]) .d54-tuile__prix, html:not([data-theme="light"]) ul.d54-puces-confiance li, html:not([data-theme="light"]) .has-fond-background-color:not(.alignfull), html:not([data-theme="light"]) .has-blanc-background-color:not(.alignfull), html:not([data-theme="light"]) .wp-block-button.is-style-outline .wp-block-button__link, html:not([data-theme="light"]) .d54-mode, html:not([data-theme="light"]) .d54-header .wp-block-navigation__responsive-container-open, html:not([data-theme="light"]) .d54-header .wp-block-navigation__responsive-container-close, html:not([data-theme="light"]) .d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		box-shadow: inset 0 0 0 1px var(--d54-trait);
	}
	html:not([data-theme="light"]) .d54-tuile:hover, html:not([data-theme="light"]) ul.d54-puces a:hover, html:not([data-theme="light"]) .is-style-carte-lien:hover, html:not([data-theme="light"]) .d54-mode:hover, html:not([data-theme="light"]) .wp-block-button.is-style-outline .wp-block-button__link:hover {
		background: var(--d54-survol); box-shadow: inset 0 0 0 1px #3A3B40;
	}
	html:not([data-theme="light"]) .d54-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
		background: var(--d54-survol);
	}
	html:not([data-theme="light"]) .d54-cta-final {
		background-color: #000000 !important; box-shadow: inset 0 0 0 1px rgba(110,231,176,.45);
	}
	html:not([data-theme="light"]) .wp-block-details[open] {
		box-shadow: inset 0 0 0 1px rgba(34, 196, 122, 0.35);
	}
	html:not([data-theme="light"]) .d54-header {
		box-shadow: inset 0 -1px 0 var(--d54-trait);
	}
	html:not([data-theme="light"]) .d54-footer {
		box-shadow: inset 0 0 0 1px var(--d54-trait);
	}
	html:not([data-theme="light"]) .wp-block-table.is-style-tarifs table {
		box-shadow: inset 0 0 0 1px var(--d54-trait);
	}
	html:not([data-theme="light"]) .d54-header .wp-block-navigation .wp-block-navigation__submenu-container {
		box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55), inset 0 0 0 1px var(--wp--preset--color--bordure);
	}
	html:not([data-theme="light"]) .d54-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
		background: var(--d54-survol);
	}
	html:not([data-theme="light"]) .d54-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		box-shadow: none;
	}
	html:not([data-theme="light"]) .d54-form :where(input, select, textarea) {
		background: var(--d54-carte); color: var(--d54-encre); border-color: #3A3D46;
	}
	html:not([data-theme="light"]) .d54-form [aria-invalid="true"] {
		border-color: #F97066;
	}
	html:not([data-theme="light"]) .d54-form__erreur {
		color: #FDA29B;
	}
	html:not([data-theme="light"]) .d54-form__alerte {
		background: #33150F; border-color: #912018; color: #FECDCA;
	}
	html:not([data-theme="light"]) .d54-form__alerte a {
		color: #FECDCA;
	}
	html:not([data-theme="light"]) .d54-form__succes {
		border-color: #1D3F2E; color: #A6F4C5;
	}
}

/* Logotype (en-tête et pied de page). */
.d54-marque { margin: 0 !important; line-height: 0; }
.d54-marque a { display: inline-block; border-radius: 6px; }
.d54-marque img { display: block; height: 1.5rem; width: auto; }
.d54-footer .d54-marque img { height: 1.75rem; }
