/* ==========================================================================
   Diélectrique France — feuille de style principale
   Chargée sur le site et dans l'éditeur (aperçu fidèle).
   Les couleurs, polices et tailles viennent de theme.json (variables --wp--preset--*).
   ========================================================================== */

:root {
	--df-marine: var(--wp--preset--color--marine, #022256);
	--df-nuit: var(--wp--preset--color--marine-fonce, #011A42);
	--df-profond: var(--wp--preset--color--marine-profond, #00112E);
	--df-rouge: var(--wp--preset--color--rouge, #D80714);
	--df-rouge-fonce: var(--wp--preset--color--rouge-fonce, #B1050F);
	--df-encre: var(--wp--preset--color--encre, #0E1C3B);
	--df-ardoise: var(--wp--preset--color--ardoise, #4B5A78);
	--df-acier: var(--wp--preset--color--acier, #8A97B1);
	--df-ligne: var(--wp--preset--color--ligne, #DDE4EF);
	--df-brume: var(--wp--preset--color--brume, #F3F6FB);
	--df-brume-bleu: var(--wp--preset--color--brume-bleu, #E8EEF8);
	--df-titres: var(--wp--preset--font-family--titres, Montserrat, Arial, sans-serif);
	--df-ombre: 0 1px 2px rgba(2, 34, 86, .06), 0 10px 30px rgba(2, 34, 86, .08);
	--df-ombre-forte: 0 2px 6px rgba(2, 34, 86, .08), 0 24px 48px rgba(2, 34, 86, .16);
	--df-rayon: 14px;
	--df-transition: .2s cubic-bezier(.2, .7, .3, 1);
	--df-entete: 132px;
	--df-motif: repeating-linear-gradient(115deg, rgba(2, 34, 86, .035) 0 1px, transparent 1px 22px);
	--df-icone-coche: url("../icons/check.svg");
	--df-icone-eclair: url("../icons/zap.svg");
	--df-icone-fleche: url("../icons/arrow-right.svg");
	--df-icone-chevron: url("../icons/chevron-down.svg");
}

/* --------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--df-entete) + 16px); }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
::selection { background: var(--df-marine); color: #fff; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--df-rouge); outline-offset: 2px; border-radius: 4px; }
img { height: auto; }
strong, b { font-weight: 650; }
.df-svg { display: block; flex-shrink: 0; stroke-width: 1.75; }
.df-a-completer { color: var(--df-rouge); font-style: italic; }
.wp-site-blocks { overflow-x: clip; }
.df-main { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

h1, h2, h3, h4, h5, h6 { text-wrap: balance; overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (max-width: 600px) { h1, h2 { hyphens: auto; -webkit-hyphens: auto; } }
p, li { text-wrap: pretty; }
mark.has-inline-color { padding: 0; }

/* Liste à puces standard du contenu */
.df-contenu ul:not([class*="is-style"]), .df-contenu ol:not([class*="is-style"]) { padding-left: 1.25rem; }
.df-contenu ul:not([class*="is-style"]) li::marker { color: var(--df-rouge); }
.df-contenu > * + * { margin-block-start: 1.1rem; }
.df-contenu > h2 { margin-block-start: 2.6rem; font-size: clamp(1.4rem, 1.15rem + 1vw, 1.875rem); }
.df-contenu > h3 { margin-block-start: 1.9rem; }
.df-contenu > :first-child { margin-block-start: 0; }

/* --------------------------------------------------------------------------
   En-tête
   ----------------------------------------------------------------------- */
.df-header-zone { position: sticky; top: 0; z-index: 100; }
.admin-bar .df-header-zone { top: 32px; }
@media (max-width: 782px) { .admin-bar .df-header-zone { top: 46px; } }
@media (max-width: 600px) { .admin-bar .df-header-zone { top: 0; } }

.df-header { background: #fff; border-bottom: 1px solid var(--df-ligne); transition: box-shadow var(--df-transition); }
.df-header.is-scrolled { box-shadow: 0 8px 24px rgba(2, 34, 86, .08); }
.df-header > .alignwide { margin-block: 0 !important; }
.df-header__barre { padding-block: 14px 10px; gap: 1.5rem; }
.df-header__infos { gap: clamp(1rem, 2.2vw, 2.25rem) !important; }
.df-header__infos .wp-block-buttons { margin: 0; }
.df-header__nav { border-top: 1px solid var(--df-ligne); }

.df-logo { display: inline-block; line-height: 0; }
.df-logo img { width: var(--df-logo, 290px); max-width: 100%; height: auto; }

/* Navigation principale */
.df-nav { gap: clamp(1.1rem, 2.3vw, 2.4rem) !important; }
.df-nav .wp-block-navigation-item__content { padding-block: 15px 13px; color: var(--df-marine); text-decoration: none; position: relative; border-bottom: 3px solid transparent; }
.df-nav .wp-block-navigation-item__content:hover { color: var(--df-rouge); }
.df-nav .current-menu-item > .wp-block-navigation-item__content,
.df-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.df-nav .current-menu-parent > .wp-block-navigation-item__content { color: var(--df-rouge); border-bottom-color: var(--df-rouge); }
.df-nav .wp-block-navigation__submenu-icon { margin-left: .3rem; color: var(--df-acier); }
.df-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--df-ligne) !important; border-radius: 12px; box-shadow: var(--df-ombre-forte);
	padding: .5rem !important; min-width: 270px !important; background: #fff !important;
}
.df-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .6rem .8rem !important; border: 0; border-radius: 8px; font-family: var(--wp--preset--font-family--texte);
	text-transform: none; letter-spacing: 0; font-size: .9375rem; font-weight: 600;
}
.df-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--df-brume); color: var(--df-rouge); }

/* Éléments d'information de l'en-tête */
.df-coord { margin: 0; }
.df-coord--entete, .df-coord--delai, .df-coord--kit { display: inline-flex; align-items: center; gap: .65rem; color: var(--df-marine); text-decoration: none; line-height: 1.2; white-space: nowrap; }
.df-coord--entete .df-svg, .df-coord--delai .df-svg, .df-coord--kit .df-svg { color: var(--df-rouge); }
.df-coord--entete span, .df-coord--delai span, .df-coord--kit span { display: flex; flex-direction: column; }
.df-coord--entete strong { font-family: var(--df-titres); font-weight: 800; font-size: 1.0625rem; letter-spacing: .01em; }
.df-coord--entete small, .df-coord--delai small, .df-coord--kit small { font-size: .75rem; color: var(--df-ardoise); }
.df-coord--delai small:first-child { text-transform: uppercase; font-family: var(--df-titres); font-weight: 700; letter-spacing: .04em; color: var(--df-marine); font-size: .6875rem; }
.df-coord--delai strong { font-family: var(--df-titres); font-weight: 800; color: var(--df-rouge); font-size: 1.0625rem; }
.df-coord--kit strong { font-family: var(--df-titres); font-weight: 800; text-transform: uppercase; font-size: .8125rem; }
.df-coord--entete:hover strong { color: var(--df-rouge); }

/* En-tête : adaptation progressive */
.df-header .df-coord--kit { display: none; }
@media (min-width: 1400px) { .df-header .df-coord--kit { display: inline-flex; } }
@media (max-width: 1180px) { .df-header .df-coord--delai { display: none; } }
@media (max-width: 1100px) { .df-header .df-coord--entete span { display: none; } }
@media (max-width: 980px) {
	:root { --df-entete: 72px; }
	.df-header { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: .6rem; }
	.df-header > .df-header__barre, .df-header > .df-header__nav { max-width: none !important; margin: 0 !important; min-width: 0; }
	.df-header > .df-header__barre { grid-column: 1; grid-row: 1; padding-block: 12px; gap: .75rem; }
	.df-header > .df-header__nav { grid-column: 2; grid-row: 1; border: 0; }
	.df-header__cta { display: none !important; }
	.df-header__infos { gap: .5rem !important; }
	.df-logo img { width: min(var(--df-logo, 290px), 220px); }
}
@media (max-width: 600px) {
	.df-header .df-coord--entete { display: none; }
	.df-logo img { width: min(200px, 52vw); }
}

/* Menu mobile (superposition) — bascule sous 980 px */
.df-nav .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border-radius: 10px; background: var(--df-marine); color: #fff; align-items: center; justify-content: center; }
@media (min-width: 981px) { .df-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none !important; } }
@media (max-width: 980px) {
	.df-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.df-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
}
.df-nav .wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; padding: 1.25rem; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; gap: .25rem; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1rem; padding-block: .55rem; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; border: 0 !important; padding: 0 0 .5rem 1rem !important; }

/* --------------------------------------------------------------------------
   Styles de blocs (panneau « Styles » de l'éditeur)
   ----------------------------------------------------------------------- */

/* Surtitre — petit texte en capitales précédé d'un éclair rouge */
.is-style-surtitre { display: inline-flex; align-items: center; gap: .55rem; margin: 0; font-family: var(--df-titres); font-weight: 700; font-size: .8125rem; line-height: 1.3; letter-spacing: .07em; text-transform: uppercase; color: var(--df-marine); }
.is-style-surtitre::before { content: ""; width: 1.05rem; height: 1.05rem; flex-shrink: 0; background: var(--df-rouge); -webkit-mask: var(--df-icone-eclair) center / contain no-repeat; mask: var(--df-icone-eclair) center / contain no-repeat; }
.is-style-surtitre a { color: inherit; text-decoration: none; }
p.has-text-align-center.is-style-surtitre { display: flex; justify-content: center; }

/* Étiquette marine à pointe rouge (rappel des filets du logo) */
.is-style-etiquette { position: relative; display: inline-block; margin: 0; padding: .6rem 1.9rem .6rem 1.15rem; background: var(--df-marine); color: #fff; font-family: var(--df-titres); font-weight: 700; font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); }
.is-style-etiquette::after { content: ""; position: absolute; top: 0; right: 0; width: 22px; height: 100%; background: var(--df-rouge); clip-path: polygon(64% 0, 100% 0, 36% 100%, 0 100%); }

.is-style-chapo { font-size: clamp(1.0625rem, 1rem + .35vw, 1.1875rem); line-height: 1.6; color: var(--df-ardoise); }
.is-style-mention { font-size: .8125rem; color: var(--df-ardoise); }

/* Titre souligné d'un trait rouge court */
.is-style-souligne::after { content: ""; display: block; width: 56px; height: 3px; margin-top: .55em; background: var(--df-rouge); border-radius: 2px; }
.is-style-souligne.has-text-align-center::after { margin-inline: auto; }

/* Listes */
ul.is-style-coches, ol.is-style-coches { list-style: none; padding-left: 0; }
.is-style-coches li { position: relative; padding-left: 1.9rem; }
.is-style-coches li + li { margin-top: .55rem; }
.is-style-coches li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.2rem; height: 1.2rem; background: var(--df-rouge); -webkit-mask: var(--df-icone-coche) center / contain no-repeat; mask: var(--df-icone-coche) center / contain no-repeat; }

ul.is-style-puces { list-style: none; padding-left: 0; display: flex; flex-wrap: wrap; gap: .35rem 0; font-weight: 500; color: var(--df-marine); }
.is-style-puces li { display: inline-flex; align-items: center; }
.is-style-puces li + li::before { content: ""; width: 6px; height: 6px; margin-inline: .85rem; border-radius: 50%; background: var(--df-rouge); }
@media (max-width: 600px) {
	ul.is-style-puces { flex-direction: column; gap: .4rem; }
	.is-style-puces li::before, .is-style-puces li + li::before { content: ""; flex: none; width: 6px; height: 6px; margin: 0 .7rem 0 0; border-radius: 50%; background: var(--df-rouge); }
}

ol.is-style-numeros, ul.is-style-numeros { list-style: none; padding-left: 0; counter-reset: df-num; }
.is-style-numeros li { position: relative; padding-left: 3rem; min-height: 2.2rem; counter-increment: df-num; }
.is-style-numeros li + li { margin-top: 1rem; }
.is-style-numeros li::before { content: counter(df-num); position: absolute; left: 0; top: -.1rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--df-marine); color: #fff; font: 800 .9375rem/2.1rem var(--df-titres); text-align: center; }

/* Groupes */
.is-style-carte { background: #fff; border: 1px solid rgba(221, 228, 239, .8); border-radius: var(--df-rayon); box-shadow: var(--df-ombre); padding: clamp(1.25rem, 2.5vw, 2rem); }
.is-style-carte-bordee { background: #fff; border: 1px solid var(--df-ligne); border-radius: var(--df-rayon); padding: clamp(1.25rem, 2.5vw, 2rem); }
.is-style-sombre { background: linear-gradient(135deg, var(--df-marine) 0%, var(--df-profond) 100%); color: #DCE4F2; border-radius: var(--df-rayon); padding: clamp(1.5rem, 3vw, 2.5rem); position: relative; overflow: hidden; }
.is-style-sombre.alignfull { border-radius: 0; }
.is-style-sombre::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255, 255, 255, .035) 0 1px, transparent 1px 24px); pointer-events: none; }
.is-style-sombre > * { position: relative; }
.is-style-sombre :where(h1, h2, h3, h4, h5, h6), .is-style-sombre .is-style-surtitre { color: #fff; }
.is-style-sombre a:not(.wp-element-button):not(.df-bouton) { color: #fff; }

.is-style-atout { display: grid !important; grid-template-columns: auto 1fr; gap: .9rem 1rem; align-items: start; }
.is-style-atout > * { margin: 0 !important; }
.is-style-atout :where(h3, h4) { font-size: .9375rem; text-transform: uppercase; letter-spacing: .02em; margin: .15rem 0 .25rem; }
.is-style-atout p { font-size: .9375rem; color: var(--df-ardoise); line-height: 1.5; }
.is-style-sombre .is-style-atout p, .df-footer .is-style-atout p { color: #C9D3E6; }

/* Encadré « référence échantillon » (exemple de confidentialité) */
.is-style-confidentiel { position: relative; background: #fff; border: 2px dashed var(--df-acier); border-radius: 12px; padding: 1.25rem 1.4rem 1.25rem 4.2rem; font-variant-numeric: tabular-nums; color: var(--df-encre); }
.is-style-confidentiel::before { content: ""; position: absolute; left: 1.2rem; top: 1.25rem; width: 2.1rem; height: 2.1rem; border-radius: 8px; background: var(--df-rouge) url("../icons/tag.svg") center / 1.15rem no-repeat; filter: none; }
.is-style-confidentiel p { margin: 0; }
.is-style-confidentiel p + p { margin-top: .25rem; }
.is-style-confidentiel strong { font-family: var(--df-titres); color: var(--df-marine); letter-spacing: .02em; }

/* Colonnes */
.wp-block-columns.is-style-separateurs > .wp-block-column + .wp-block-column { border-left: 1px solid var(--df-ligne); padding-left: var(--wp--style--columns-gap, 2rem); }
.is-style-sombre .wp-block-columns.is-style-separateurs > .wp-block-column + .wp-block-column { border-color: rgba(255, 255, 255, .14); }

.wp-block-columns.is-style-bande { background: #fff; border: 1px solid rgba(221, 228, 239, .8); border-radius: var(--df-rayon); box-shadow: var(--df-ombre); padding: clamp(1.1rem, 2.4vw, 1.75rem) clamp(1.1rem, 2.4vw, 2rem); gap: 1.25rem !important; }
.wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column { border-left: 1px solid var(--df-ligne); padding-left: 1.25rem; }
.is-style-bande .is-style-atout :where(h3, h4) { font-size: .875rem; }
.is-style-bande .is-style-atout p { font-size: .875rem; }
@media (max-width: 781px) {
	.wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column,
	.wp-block-columns.is-style-separateurs > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: 1px solid var(--df-ligne); padding-top: 1.1rem; }
}

/* Étapes reliées par des pointillés rouges */
.wp-block-columns.is-style-etapes { counter-reset: df-etape; gap: 1.5rem !important; }
.is-style-etapes > .wp-block-column { position: relative; text-align: center; counter-increment: df-etape; }
.is-style-etapes > .wp-block-column > .df-icone { margin-inline: auto; }
.is-style-etapes > .wp-block-column > :where(h3, h4)::before { content: counter(df-etape); display: block; width: 1.75rem; height: 1.75rem; margin: .85rem auto .7rem; border-radius: 50%; background: var(--df-rouge); color: #fff; font: 800 .875rem/1.75rem var(--df-titres); text-align: center; }
.is-style-etapes > .wp-block-column > :where(h3, h4) { font-size: .9375rem; text-transform: uppercase; letter-spacing: .02em; margin-top: 0; }
.is-style-etapes > .wp-block-column > p { font-size: .9375rem; color: var(--df-ardoise); line-height: 1.5; margin-top: .35rem; }
.is-style-etapes > .wp-block-column:not(:last-child)::after { content: ""; position: absolute; top: 37px; left: calc(50% + 48px); width: calc(100% - 96px + 1.5rem); border-top: 2px dashed rgba(216, 7, 20, .55); }
@media (max-width: 781px) { .is-style-etapes > .wp-block-column::after { display: none; } }
.is-style-sombre .is-style-etapes > .wp-block-column > p { color: #C9D3E6; }

/* Images */
.wp-block-image.is-style-arrondi img { border-radius: 18px; box-shadow: var(--df-ombre-forte); }
.wp-block-image.is-style-diagonal { --df-coupe: polygon(14% 0, 100% 0, 100% 86%, 86% 100%, 0 100%, 0 14%); clip-path: var(--df-coupe); background: linear-gradient(135deg, var(--df-rouge), var(--df-rouge-fonce)); padding: 6px; }
.wp-block-image.is-style-diagonal img { clip-path: var(--df-coupe); width: 100%; display: block; }

/* Boutons */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; text-decoration: none; transition: background-color var(--df-transition), color var(--df-transition), border-color var(--df-transition), transform var(--df-transition); }
.wp-block-button.is-style-fleche .wp-block-button__link::after,
.df-bouton .df-svg { transition: transform var(--df-transition); }
.wp-block-button.is-style-fleche .wp-block-button__link::after { content: ""; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: var(--df-icone-fleche) center / contain no-repeat; mask: var(--df-icone-fleche) center / contain no-repeat; }
.wp-block-button.is-style-fleche .wp-block-button__link:hover::after, .df-bouton:hover .df-svg { transform: translateX(3px); }
.wp-block-button.is-style-contour .wp-block-button__link { background: transparent; color: var(--df-marine); box-shadow: inset 0 0 0 1.5px var(--df-marine); }
.wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--df-marine); color: #fff; }
.is-style-sombre .wp-block-button.is-style-contour .wp-block-button__link, .df-cta .wp-block-button.is-style-contour .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .7); }
.wp-block-button.is-style-marine .wp-block-button__link { background: var(--df-marine); color: #fff; }
.wp-block-button.is-style-marine .wp-block-button__link:hover { background: var(--df-profond); }
.wp-block-button.is-style-blanc .wp-block-button__link { background: #fff; color: var(--df-marine); }
.wp-block-button.is-style-blanc .wp-block-button__link:hover { background: var(--df-brume-bleu); color: var(--df-marine); }

.df-bouton { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .95rem 1.4rem; border-radius: 6px; border: 0; cursor: pointer; font: 700 .8125rem/1.2 var(--df-titres); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; transition: background-color var(--df-transition), color var(--df-transition); }
.df-bouton--rouge { background: var(--df-rouge); color: #fff; }
.df-bouton--rouge:hover { background: var(--df-rouge-fonce); color: #fff; }
.df-bouton--contour { background: transparent; color: var(--df-marine); box-shadow: inset 0 0 0 1.5px var(--df-marine); }
.df-bouton--contour:hover { background: var(--df-marine); color: #fff; }
.df-bouton--marine { background: var(--df-marine); color: #fff; }
.df-bouton--marine:hover { background: var(--df-profond); color: #fff; }

/* Tableaux */
.wp-block-table.is-style-reference table, .wp-block-table.is-style-suivi table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--df-ligne); border-radius: 12px; overflow: hidden; }
.wp-block-table.is-style-reference :where(th, td), .wp-block-table.is-style-suivi :where(th, td) { border: 0; border-bottom: 1px solid var(--df-ligne); padding: .8rem 1rem; text-align: left; vertical-align: top; }
.wp-block-table.is-style-reference thead th { background: var(--df-marine); color: #fff; font-family: var(--df-titres); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }
.wp-block-table.is-style-reference tbody tr:nth-child(even) td { background: var(--df-brume); }
.wp-block-table.is-style-reference tbody tr:last-child td, .wp-block-table.is-style-suivi tbody tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-reference td:first-child { font-weight: 600; color: var(--df-marine); }
.wp-block-table.is-style-suivi thead th { background: #fff; color: var(--df-marine); font-family: var(--df-titres); font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; }
.wp-block-table.is-style-suivi td { background: #fff; }
.wp-block-table.is-style-suivi td:first-child { font-weight: 700; color: var(--df-marine); font-family: var(--df-titres); }
.wp-block-table figcaption { font-size: .8125rem; color: var(--df-ardoise); margin-top: .6rem; }
.df-pastille { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; }
.df-pastille::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: currentColor; }

/* Questions fréquentes */
.wp-block-details.is-style-faq { background: #fff; transition: border-color var(--df-transition), box-shadow var(--df-transition); }
.wp-block-details.is-style-faq + .wp-block-details.is-style-faq { margin-top: .75rem; }
.wp-block-details.is-style-faq[open] { border-color: var(--df-marine); box-shadow: var(--df-ombre); }
.wp-block-details.is-style-faq summary { list-style: none; position: relative; padding-right: 2.25rem; cursor: pointer; font-family: var(--df-titres); font-weight: 700; color: var(--df-marine); font-size: 1rem; line-height: 1.4; }
.wp-block-details.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq summary::after { content: ""; position: absolute; right: 0; top: 50%; width: 1.5rem; height: 1.5rem; margin-top: -.75rem; border-radius: 50%; background: var(--df-brume-bleu) url("../icons/chevron-down.svg") center / .95rem no-repeat; transition: transform var(--df-transition); }
.wp-block-details.is-style-faq[open] summary::after { transform: rotate(180deg); }
.wp-block-details.is-style-faq > :not(summary) { margin-top: .75rem; color: var(--df-ardoise); }

.wp-block-separator.is-style-court { width: 56px; max-width: 56px; border: 0; border-top: 3px solid var(--df-rouge) !important; margin-left: 0; opacity: 1; }
.wp-block-separator.is-style-court.aligncenter { margin-inline: auto; }

/* --------------------------------------------------------------------------
   Bloc Icône
   ----------------------------------------------------------------------- */
.df-icone { --df-icone: 28px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--df-marine); line-height: 0; }
.df-icone .df-svg { width: var(--df-icone); height: var(--df-icone); }
.df-icone--rouge { color: var(--df-rouge); }
.df-icone--blanc { color: #fff; }
.df-icone--ardoise { color: var(--df-ardoise); }
.df-icone--fond-cercle, .df-icone--fond-cercle-marine, .df-icone--fond-cercle-rouge, .df-icone--fond-carre, .df-icone--fond-carre-rouge { width: calc(var(--df-icone) * 2.15); height: calc(var(--df-icone) * 2.15); }
.df-icone--fond-cercle { border-radius: 50%; background: var(--df-brume-bleu); box-shadow: inset 0 0 0 1px rgba(2, 34, 86, .05); }
.df-icone--fond-cercle-marine { border-radius: 50%; background: var(--df-marine); }
.df-icone--fond-cercle-rouge { border-radius: 50%; background: var(--df-rouge); }
.df-icone--fond-carre { border-radius: 14px; background: var(--df-brume-bleu); }
.df-icone--fond-carre-rouge { border-radius: 14px; background: var(--df-rouge); }

/* --------------------------------------------------------------------------
   Liste des analyses
   ----------------------------------------------------------------------- */
.df-analyses--grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr)); gap: 1rem; }
.df-analyses--liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: .6rem; }
.df-analyse-carte { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .95rem; padding: 1.05rem 1.15rem; background: #fff; border: 1px solid var(--df-ligne); border-radius: 12px; color: var(--df-encre); text-decoration: none; transition: border-color var(--df-transition), box-shadow var(--df-transition), transform var(--df-transition); }
.df-analyse-carte:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); transform: translateY(-2px); color: var(--df-encre); }
.df-analyse-carte__icone { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: var(--df-brume-bleu); color: var(--df-marine); transition: background-color var(--df-transition), color var(--df-transition); }
.df-analyse-carte:hover .df-analyse-carte__icone { background: var(--df-marine); color: #fff; }
.df-analyse-carte__corps { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.df-analyse-carte__titre { font-family: var(--df-titres); font-weight: 700; font-size: .9375rem; color: var(--df-marine); line-height: 1.3; }
.df-analyse-carte__resume { font-size: .875rem; color: var(--df-ardoise); line-height: 1.45; }
.df-analyse-carte__fleche { color: var(--df-rouge); transition: transform var(--df-transition); }
.df-analyse-carte:hover .df-analyse-carte__fleche { transform: translateX(3px); }
.df-analyses--grille .df-analyse-carte { align-items: start; }
.df-analyses--grille .df-analyse-carte__fleche { align-self: center; }
.df-analyses--liste .df-analyse-carte { padding: .7rem .9rem; gap: .75rem; }
.df-analyses--liste .df-analyse-carte__icone { width: 38px; height: 38px; border-radius: 10px; }

/* Menu latéral (fiches) */
.df-analyses--menu { background: #fff; border: 1px solid var(--df-ligne); border-radius: var(--df-rayon); overflow: hidden; box-shadow: var(--df-ombre); position: sticky; top: calc(var(--df-entete) + 24px); }
.df-analyses__entete { display: flex; align-items: center; gap: .65rem; margin: 0; padding: 1rem 1.15rem; background: var(--df-marine); color: #fff; font: 700 .875rem/1.2 var(--df-titres); letter-spacing: .05em; text-transform: uppercase; }
.df-analyses--menu ul { list-style: none; margin: 0; padding: .35rem 0; max-height: calc(100vh - var(--df-entete) - 140px); overflow-y: auto; }
.df-analyses--menu a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; padding: .62rem 1.15rem; color: var(--df-encre); text-decoration: none; font-size: .9375rem; border-left: 3px solid transparent; transition: background-color var(--df-transition); }
.df-analyses--menu a .df-svg:first-child { color: var(--df-marine); }
.df-analyses--menu a .df-chevron { color: var(--df-acier); }
.df-analyses--menu a:hover { background: var(--df-brume); color: var(--df-rouge); }
.df-analyses--menu a.is-current { background: var(--df-brume); border-left-color: var(--df-rouge); font-weight: 600; color: var(--df-marine); }
.df-analyses--menu li + li a { border-top: 1px solid var(--df-brume); }

/* Étiquettes */
.df-analyses--etiquettes { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.df-analyses--etiquettes a { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border: 1px solid var(--df-ligne); border-radius: 999px; background: #fff; color: var(--df-marine); font-size: .875rem; font-weight: 600; text-decoration: none; transition: border-color var(--df-transition), background-color var(--df-transition); }
.df-analyses--etiquettes a:hover { border-color: var(--df-marine); background: var(--df-brume); }
.is-style-sombre .df-analyses--etiquettes a { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); color: #fff; }

/* --------------------------------------------------------------------------
   Packs
   ----------------------------------------------------------------------- */
.df-packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 205px), 1fr)); gap: 1.1rem; margin-top: var(--wp--preset--spacing--50); }
.df-pack { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2rem 1.2rem 1.4rem; background: #fff; border: 1px solid var(--df-ligne); border-radius: 16px; box-shadow: var(--df-ombre); transition: transform var(--df-transition), box-shadow var(--df-transition); }
.df-pack:hover { transform: translateY(-4px); box-shadow: var(--df-ombre-forte); }
.df-pack.is-featured { border: 2px solid var(--df-rouge); }
.df-pack__badge { position: absolute; top: -.8rem; left: 50%; transform: translateX(-50%); margin: 0; padding: .3rem .8rem; border-radius: 999px; background: var(--df-rouge); color: #fff; font: 700 .6875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.df-pack__icone { display: flex; align-items: center; justify-content: center; width: 78px; height: 78px; border-radius: 50%; background: var(--df-brume-bleu); color: var(--df-marine); margin-bottom: 1rem; }
.df-pack__icone .df-svg { stroke-width: 1.5; }
.df-pack__nom { margin: 0; font-size: 1.125rem !important; text-transform: uppercase; letter-spacing: .02em; }
.df-pack__nom::after { content: ""; display: block; width: 34px; height: 3px; margin: .6rem auto 0; background: var(--df-rouge); border-radius: 2px; }
.df-pack__composition { margin: .8rem 0 1rem; min-height: 3em; color: var(--df-ardoise); font-size: .9375rem; line-height: 1.45; }
.df-pack__delai { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1rem; padding: .5rem .9rem; border-radius: 10px; background: var(--df-brume); color: var(--df-marine); text-align: left; }
.df-pack__delai span { display: flex; flex-direction: column; line-height: 1.15; font-size: .75rem; color: var(--df-ardoise); }
.df-pack__delai strong { font-family: var(--df-titres); font-weight: 800; color: var(--df-rouge); font-size: .9375rem; }
.df-pack__prix { display: flex; align-items: flex-start; justify-content: center; gap: .1rem; margin: 0 0 1.1rem; font-family: var(--df-titres); color: var(--df-marine); line-height: 1; }
.df-pack__montant { font-size: 2.75rem; font-weight: 800; letter-spacing: -.02em; }
.df-pack__devise { font-size: 1.25rem; font-weight: 800; margin-top: .25rem; }
.df-pack__ht { font-size: .6875rem; font-weight: 700; align-self: flex-end; margin: 0 0 .35rem .15rem; }
.df-pack__prix--devis { font-size: 1.375rem; font-weight: 800; }
.df-pack__detail { list-style: none; padding: 0; margin: -.25rem 0 1rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; }
.df-pack__detail a { display: inline-block; padding: .2rem .55rem; border-radius: 999px; background: var(--df-brume); color: var(--df-marine); font-size: .75rem; font-weight: 600; text-decoration: none; }
.df-pack__texte { font-size: .875rem; color: var(--df-ardoise); margin: 0 0 1rem; }
.df-pack__bouton { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; width: 100%; padding: .85rem 1rem; border-radius: 6px; background: var(--df-marine); color: #fff; text-decoration: none; font: 700 .8125rem/1.2 var(--df-titres); letter-spacing: .05em; text-transform: uppercase; transition: background-color var(--df-transition); }
.df-pack__bouton .df-svg { color: var(--df-rouge); transition: transform var(--df-transition); }
.df-pack__bouton:hover { background: var(--df-rouge); color: #fff; }
.df-pack__bouton:hover .df-svg { color: #fff; transform: translateX(3px); }

/* --------------------------------------------------------------------------
   Bandeaux de page
   ----------------------------------------------------------------------- */
.df-hero-page { position: relative; background: var(--df-brume); background-image: var(--df-motif); padding-block: clamp(1.5rem, 3vw, 2.25rem) clamp(2.5rem, 5vw, 4rem); overflow: hidden; }
.df-hero-page::after { content: ""; position: absolute; right: -60px; bottom: -1px; width: 380px; height: 100%; background: linear-gradient(115deg, transparent 0 46%, rgba(2, 34, 86, .06) 46% 62%, transparent 62% 66%, rgba(216, 7, 20, .1) 66% 69%, transparent 69%); pointer-events: none; }
.df-hero-page > * { position: relative; z-index: 1; }
.df-hero-page__inner > * + * { margin-top: 1rem; }
.df-hero-page h1 { max-width: 22ch; margin-top: 1.25rem; }
.df-hero-page__chapo, .df-hero-page .wp-block-post-excerpt__excerpt { font-size: clamp(1.0625rem, 1rem + .4vw, 1.25rem); line-height: 1.6; color: var(--df-ardoise); max-width: 64ch; margin: 0; }
.df-hero-page .wp-block-post-excerpt { margin-top: 1rem; }
.df-hero-page .wp-block-post-excerpt__more-text { display: none; }

.df-hero-analyse h1 { margin-top: 0; font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem); }
.df-hero-analyse__titre { gap: 1.1rem !important; margin-top: 1.25rem !important; }
.df-hero-analyse__titre > .wp-block-group > * + * { margin-top: .5rem; }
.df-hero-analyse .df-fiche-points { margin-top: 1.4rem; }
.df-hero-analyse__colonnes { gap: clamp(1.5rem, 4vw, 3.5rem) !important; }

.df-colonne-laterale > * + * { margin-top: 1.5rem; }
.df-colonne-laterale { position: relative; }

/* Fil d'Ariane */
.df-fil ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; font-size: .8125rem; color: var(--df-ardoise); }
.df-fil li { display: inline-flex; align-items: center; gap: .25rem; }
.df-fil li + li::before { content: "›"; margin-right: .25rem; color: var(--df-acier); }
.df-fil a { color: var(--df-marine); text-decoration: none; font-weight: 600; }
.df-fil a:hover { color: var(--df-rouge); }

/* Encadré récapitulatif d'analyse */
.df-fiche { background: #fff; border-radius: 16px; box-shadow: var(--df-ombre-forte); padding: 1.5rem; border: 1px solid rgba(221, 228, 239, .8); }
.df-fiche__titre { display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem; font: 800 .875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; color: var(--df-marine); }
.df-fiche__titre .df-svg { color: var(--df-rouge); }
.df-fiche dl { margin: 0; }
.df-fiche dl > div { padding: .8rem 0; border-bottom: 1px solid var(--df-ligne); }
.df-fiche dt { display: flex; align-items: center; gap: .5rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--df-ardoise); }
.df-fiche dt .df-svg { color: var(--df-marine); }
.df-fiche dd { margin: .25rem 0 0 1.7rem; font-weight: 600; color: var(--df-encre); line-height: 1.45; }
.df-fiche dd a { color: var(--df-marine); }
.df-fiche__actions { display: grid; gap: .6rem; margin-top: 1.2rem; }
.df-fiche__actions .df-bouton { width: 100%; }
.df-fiche__confidentiel { display: flex; align-items: center; gap: .45rem; margin: .9rem 0 0; font-size: .8125rem; color: var(--df-ardoise); }
.df-fiche__confidentiel .df-svg { color: var(--df-rouge); }
.df-fiche-surtitre { margin-bottom: .2rem !important; }

/* Articles liés */
.df-liees { background: var(--df-brume); border-radius: var(--df-rayon); padding: 1.25rem; }
.df-liees__titre { margin: 0 0 .85rem; font: 800 .875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; color: var(--df-marine); }
.df-liees .df-analyses--liste { grid-template-columns: 1fr; }
.df-carte-kit > * + * { margin-top: .85rem; }
.df-carte-kit h3 { font-size: 1.0625rem; }

/* Sous-pages (zones) */
.df-sous-pages { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1rem; }
.df-sous-page { display: flex; flex-direction: column; gap: .5rem; padding: 1.35rem; background: #fff; border: 1px solid var(--df-ligne); border-radius: 14px; text-decoration: none; color: var(--df-encre); transition: border-color var(--df-transition), box-shadow var(--df-transition), transform var(--df-transition); }
.df-sous-page:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); transform: translateY(-2px); }
.df-sous-page__icone { color: var(--df-rouge); }
.df-sous-page__titre { font-family: var(--df-titres); font-weight: 700; color: var(--df-marine); line-height: 1.3; }
.df-sous-page__texte { font-size: .875rem; color: var(--df-ardoise); line-height: 1.5; }
.df-sous-page__lien { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font: 700 .75rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; color: var(--df-rouge); }

/* Carte de France */
.df-carte { margin: 0; }
.df-carte svg { width: 100%; height: auto; display: block; overflow: visible; }
.df-carte__pays { fill: #fff; stroke: var(--df-acier); stroke-width: 1.4; stroke-linejoin: round; filter: drop-shadow(0 12px 22px rgba(2, 34, 86, .12)); }
.df-carte__pin path { fill: var(--df-rouge); }
.df-carte__point { fill: #fff; }
.df-carte__halo { fill: rgba(216, 7, 20, .1); transform-origin: center; }
.df-carte__pin text { font: 700 13px var(--df-titres); fill: var(--df-marine); paint-order: stroke; stroke: #fff; stroke-width: 4px; }
.df-carte a:hover .df-carte__pin path, .df-carte a:focus .df-carte__pin path { fill: var(--df-marine); }
.is-style-sombre .df-carte__pays { fill: rgba(255, 255, 255, .06); stroke: rgba(255, 255, 255, .35); }
.is-style-sombre .df-carte__pin text { fill: #fff; stroke: var(--df-marine); }

/* --------------------------------------------------------------------------
   Formulaire
   ----------------------------------------------------------------------- */
.df-form-wrap { scroll-margin-top: calc(var(--df-entete) + 20px); }
.df-form { display: grid; gap: 1.4rem; }
.df-form__piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.df-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.df-form legend, .df-champ > label { display: block; margin-bottom: .45rem; font-weight: 600; font-size: .875rem; color: var(--df-marine); }
.df-form legend { font-family: var(--df-titres); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: .8125rem; }
.df-form abbr { color: var(--df-rouge); text-decoration: none; }
.df-form__types-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: .6rem; }
.df-type { position: relative; cursor: pointer; }
.df-type input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.df-type span { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; height: 100%; padding: .95rem 1rem; border: 1.5px solid var(--df-ligne); border-radius: 12px; background: #fff; font-weight: 600; font-size: .875rem; line-height: 1.3; color: var(--df-marine); transition: border-color var(--df-transition), background-color var(--df-transition), box-shadow var(--df-transition); }
.df-type span .df-svg { color: var(--df-rouge); }
.df-type:hover span { border-color: var(--df-acier); }
.df-type input:checked + span { border-color: var(--df-marine); background: var(--df-brume-bleu); box-shadow: inset 0 0 0 1px var(--df-marine); }
.df-type input:focus-visible + span { outline: 3px solid var(--df-rouge); outline-offset: 2px; }
.df-form__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; }
.df-champ { margin: 0; }
.df-champ--large { grid-column: 1 / -1; }
@media (max-width: 640px) { .df-form__grille { grid-template-columns: 1fr; } }
.df-form :where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
	width: 100%; box-sizing: border-box; padding: .8rem .95rem; border: 1.5px solid var(--df-ligne); border-radius: 8px; background: #fff;
	font: inherit; font-size: 1rem; color: var(--df-encre); transition: border-color var(--df-transition), box-shadow var(--df-transition);
}
.df-form select { appearance: none; background: #fff url("../icons/chevron-down.svg") right .9rem center / 1rem no-repeat; padding-right: 2.5rem; }
.df-form :where(input, select, textarea):focus { outline: none; border-color: var(--df-marine); box-shadow: 0 0 0 3px rgba(2, 34, 86, .12); }
.df-champ small { display: flex; align-items: center; gap: .4rem; margin-top: .45rem; font-size: .8125rem; color: var(--df-ardoise); }
.df-champ small .df-svg { color: var(--df-rouge); }
.df-form__analyses > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: .35rem 1rem; padding: 1rem 1.1rem; border: 1.5px solid var(--df-ligne); border-radius: 10px; background: var(--df-brume); }
.df-form__analyses label, .df-form__consentement label { display: flex; align-items: flex-start; gap: .55rem; font-size: .9rem; cursor: pointer; }
.df-form input[type="checkbox"] { width: 1.05rem; height: 1.05rem; margin-top: .2rem; accent-color: var(--df-rouge); flex-shrink: 0; }
.df-form__consentement { margin: 0; font-size: .875rem; color: var(--df-ardoise); }
.df-form__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin: 0; }
.df-form__envoi span { display: inline-flex; align-items: center; gap: .45rem; font-size: .8125rem; color: var(--df-ardoise); }
.df-form__envoi span .df-svg { color: var(--df-marine); }
.df-form-message { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem 1.2rem; border-radius: 12px; margin-bottom: 1.5rem; }
.df-form-message p { margin: 0; }
.df-form-message--ok { background: #E9F6EF; color: #0B5A33; border: 1px solid #B7E0C8; }
.df-form-message--erreur { background: #FDECEE; color: #8E0A13; border: 1px solid #F6C2C7; }

/* Affichage des champs selon le type de demande (sans JavaScript) */
.df-form:has(input[name="df_type"][value="commande"]:checked) [data-types]:not([data-types~="commande"]),
.df-form:has(input[name="df_type"][value="kit"]:checked) [data-types]:not([data-types~="kit"]),
.df-form:has(input[name="df_type"][value="devis"]:checked) [data-types]:not([data-types~="devis"]),
.df-form:has(input[name="df_type"][value="prelevement"]:checked) [data-types]:not([data-types~="prelevement"]),
.df-form:has(input[name="df_type"][value="contact"]:checked) [data-types]:not([data-types~="contact"]),
.df-form:has(.df-form__type-fixe[data-type="commande"]) [data-types]:not([data-types~="commande"]),
.df-form:has(.df-form__type-fixe[data-type="kit"]) [data-types]:not([data-types~="kit"]),
.df-form:has(.df-form__type-fixe[data-type="devis"]) [data-types]:not([data-types~="devis"]),
.df-form:has(.df-form__type-fixe[data-type="prelevement"]) [data-types]:not([data-types~="prelevement"]),
.df-form:has(.df-form__type-fixe[data-type="contact"]) [data-types]:not([data-types~="contact"]),
.df-form:has(.df-form__type-fixe[data-type="acces"]) [data-types]:not([data-types~="acces"]) { display: none; }

/* --------------------------------------------------------------------------
   Coordonnées (blocs)
   ----------------------------------------------------------------------- */
ul.df-coord { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
ul.df-coord li { display: flex; align-items: flex-start; gap: .7rem; }
ul.df-coord .df-svg { color: var(--df-rouge); margin-top: .15rem; }
ul.df-coord a { color: inherit; text-decoration: none; font-weight: 600; }
ul.df-coord a:hover { color: var(--df-rouge); }
.df-coord--telephone { display: flex; flex-direction: column; gap: .2rem; }
.df-coord--telephone a { display: inline-flex; align-items: center; gap: .7rem; font: 800 clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem)/1.1 var(--df-titres); color: var(--df-marine); text-decoration: none; }
.df-coord--telephone a .df-svg { color: var(--df-rouge); }
.df-coord--telephone small { font-weight: 600; color: var(--df-ardoise); margin-left: 2.6rem; }
.is-style-sombre .df-coord--telephone a { color: #fff; }

/* --------------------------------------------------------------------------
   Bandeau d'appel à l'action
   ----------------------------------------------------------------------- */
.df-cta { position: relative; background: linear-gradient(120deg, var(--df-marine) 0%, var(--df-profond) 100%); color: #DCE4F2; overflow: hidden; }
.df-cta::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255, 255, 255, .03) 0 1px, transparent 1px 24px); }
.df-cta::after { content: ""; position: absolute; right: -40px; top: 0; width: 46%; height: 100%; background: linear-gradient(115deg, transparent 0 40%, rgba(255, 255, 255, .05) 40% 58%, transparent 58% 61%, rgba(216, 7, 20, .55) 61% 63%, transparent 63%); pointer-events: none; }
.df-cta > * { position: relative; z-index: 1; }
.df-cta .is-style-surtitre { color: #fff; }
.df-cta h2 { margin-top: .6rem; }
.df-cta p:not(.is-style-surtitre) { margin-top: .6rem; max-width: 60ch; }
@media (max-width: 781px) { .df-cta .wp-block-buttons { justify-content: flex-start !important; } }

/* --------------------------------------------------------------------------
   Pied de page
   ----------------------------------------------------------------------- */
.df-footer { background: linear-gradient(180deg, var(--df-nuit) 0%, var(--df-profond) 100%); color: #B9C4DA; font-size: .9375rem; }
.df-footer :where(h3, h4) { color: #fff; }
.df-footer a { color: #DCE4F2; text-decoration: none; }
.df-footer a:hover { color: #fff; text-decoration: underline; }
.df-footer__piliers { padding-block: 2.6rem 2.2rem; border-bottom: 1px solid rgba(255, 255, 255, .1); gap: 2rem !important; margin-bottom: 0 !important; }
.df-footer__piliers .wp-block-column { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-content: start; }
.df-footer__piliers .df-icone { grid-row: span 2; }
.df-footer__piliers h3 { margin: .25rem 0 .2rem; font-size: .9375rem; text-transform: uppercase; letter-spacing: .04em; }
.df-footer__piliers p { margin: 0; font-size: .875rem; line-height: 1.5; color: #B9C4DA; }
.df-footer__principal { padding-block: 3rem 2.5rem; gap: 2.5rem !important; margin-block: 0 !important; }
.df-footer__principal h4 { font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }
.df-footer__principal h4::after { content: ""; display: block; width: 28px; height: 2px; margin-top: .55rem; background: var(--df-rouge); }
.df-footer__accroche { margin: 1.25rem 0 1.25rem; max-width: 34ch; line-height: 1.55; }
.df-footer .df-coord .df-svg { color: var(--df-rouge); }
.df-footer__menu { font-family: var(--wp--preset--font-family--texte) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: .9375rem !important; font-weight: 500 !important; }
.df-footer__menu .wp-block-navigation__container { gap: .55rem !important; }
.df-footer__menu .wp-block-navigation-item__content { padding: 0; }
.df-footer__bas { padding-block: 1.3rem !important; border-top: 1px solid rgba(255, 255, 255, .1); gap: .75rem 2rem !important; font-size: .8125rem; margin-block: 0 !important; }
.df-footer__bas p { margin: 0; }
.df-footer__legal { font-family: var(--wp--preset--font-family--texte) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: .8125rem !important; font-weight: 500 !important; gap: 1.25rem !important; }
.df-footer__legal .wp-block-navigation-item__content { padding: 0; color: #B9C4DA; }

/* --------------------------------------------------------------------------
   Sections de contenu (compositions)
   ----------------------------------------------------------------------- */
.df-section { position: relative; }
.df-section--brume { background: var(--df-brume); background-image: var(--df-motif); }
.df-entete-section > * + * { margin-top: .9rem; }
.df-entete-section { max-width: 760px; }
.df-entete-section.has-text-align-center, .df-entete-section.is-centre { margin-inline: auto; text-align: center; }
.df-entete-section.is-centre .is-style-surtitre { justify-content: center; }
.df-entete-section.is-centre .is-style-souligne::after { margin-inline: auto; }

/* Accueil — grand bandeau */
.df-hero { position: relative; background: linear-gradient(180deg, var(--df-brume) 0%, #fff 100%); overflow: hidden; }
.df-hero::before { content: ""; position: absolute; inset: 0; background: var(--df-motif); pointer-events: none; }
.df-hero > * { position: relative; z-index: 1; }
.df-hero h1 { font-size: clamp(1.9rem, 1.1rem + 2.7vw, 3.5rem); line-height: 1.04; letter-spacing: -.015em; margin-top: 1.1rem; }
@media (max-width: 1024px) {
	.df-hero .wp-block-columns, .df-hero-page .wp-block-columns:not(.is-style-bande):not(.is-style-etapes):not(.is-not-stacked-on-mobile) { flex-wrap: wrap !important; }
	.df-hero .wp-block-columns > .wp-block-column, .df-hero-page .wp-block-columns:not(.is-style-bande):not(.is-style-etapes):not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}
.df-hero__slogan { margin-top: .9rem !important; font-family: var(--df-titres); font-weight: 600; font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); color: var(--df-marine); }
.df-hero__slogan + .wp-block-separator { margin-top: 1.25rem; }
.df-hero .is-style-puces { margin-top: 1.25rem; font-size: 1rem; }
.df-hero .wp-block-buttons { margin-top: 1.9rem; }
.df-hero__visuel { position: relative; }
.df-hero__visuel .wp-block-image { margin: 0; }
.df-hero__atouts { position: absolute !important; right: 0; top: 50%; transform: translateY(-50%); width: min(290px, 46%); padding: .6rem 1rem !important; }
.df-hero__atouts > .is-style-atout { padding: .85rem 0; }
.df-hero__atouts > .is-style-atout + .is-style-atout { border-top: 1px solid var(--df-ligne); }
.df-hero__atouts :where(h3, h4) { font-size: .8125rem !important; }
.df-hero__atouts p { font-size: .8125rem !important; }
@media (max-width: 1100px) { .df-hero__atouts { position: static !important; transform: none; width: auto; margin-top: 1rem; } }

/* Mise en page : section image + texte */
.df-duo { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.df-duo .wp-block-image img { width: 100%; }

/* Bloc confidentialité */
.df-confidentialite h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.6rem); }
.df-confidentialite .df-confidentialite__accroche { font-family: var(--df-titres); font-weight: 700; color: #fff; font-size: clamp(1.125rem, 1rem + .6vw, 1.5rem); margin-top: .5rem; }
.df-confidentialite .df-correspondance { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: stretch; }

/* Tableau de bord illustratif (espace client) */
.df-ecran { background: #fff; border-radius: 18px; box-shadow: var(--df-ombre-forte); border: 1px solid var(--df-ligne); overflow: hidden; }
.df-ecran__barre { display: flex; align-items: center; gap: .45rem; padding: .7rem 1rem; background: var(--df-brume); border-bottom: 1px solid var(--df-ligne); }
.df-ecran__barre::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #FF6159; box-shadow: 16px 0 0 #FFBD2E, 32px 0 0 #28C840; margin-right: 34px; }
.df-ecran__corps { padding: 1.25rem; }
.df-indicateur { background: #fff; border: 1px solid var(--df-ligne); border-radius: 12px; padding: 1rem; text-align: left; }
.df-indicateur .df-indicateur__valeur { font: 800 2rem/1 var(--df-titres); margin: .5rem 0 .15rem; }
.df-indicateur p { font-size: .8125rem; color: var(--df-ardoise); }

/* Articles */
.df-articles .wp-block-post-template { gap: 1.25rem; }
.df-article-carte { height: 100%; display: flex; flex-direction: column; gap: .7rem; padding: 1.5rem; background: #fff; border: 1px solid var(--df-ligne); border-radius: 14px; transition: border-color var(--df-transition), box-shadow var(--df-transition), transform var(--df-transition); }
.df-article-carte:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); transform: translateY(-2px); }
.df-article-carte__titre { font-size: 1.1875rem !important; text-transform: none !important; line-height: 1.3 !important; margin: 0; }
.df-article-carte__titre a { text-decoration: none; color: var(--df-marine); }
.df-article-carte__titre a:hover { color: var(--df-rouge); }
.df-article-carte .wp-block-post-excerpt { margin: 0; font-size: .9375rem; color: var(--df-ardoise); }
.df-article-carte .wp-block-post-excerpt__more-link { display: inline-flex; margin-top: .75rem; font: 700 .75rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; color: var(--df-rouge); text-decoration: none; }
.df-article-titre { text-transform: none !important; font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem) !important; max-width: 26ch; }
.df-article-date { font-size: .8125rem; color: var(--df-ardoise); }
.df-article-categorie a { color: inherit; }

.df-recherche .wp-block-search__input { border: 1.5px solid var(--df-ligne); border-radius: 8px 0 0 8px; padding: .8rem 1rem; }
.df-recherche .wp-block-search__button { margin-left: 0; border-radius: 0 8px 8px 0; }

.wp-block-query-pagination { margin-top: 2.5rem; gap: .5rem; font-weight: 600; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: .45rem .8rem; border-radius: 8px; text-decoration: none; }
.wp-block-query-pagination .current { background: var(--df-marine); color: #fff; }

/* Utilitaires */
.df-rouge { color: var(--df-rouge); }
@media (max-width: 1024px) { .df-masque-mobile { display: none !important; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Impression */
@media print {
	.df-header-zone, .df-footer, .df-cta, .df-colonne-laterale { display: none !important; }
	.df-hero-page { background: none; }
}

/* --------------------------------------------------------------------------
   Ajustements de composition
   ----------------------------------------------------------------------- */

/* Piliers en cartes */
.df-piliers { gap: 1.25rem !important; margin-top: var(--wp--preset--spacing--50) !important; }
.df-piliers > .wp-block-column { background: #fff; border: 1px solid rgba(221, 228, 239, .8); border-radius: var(--df-rayon); box-shadow: var(--df-ombre); padding: 1.75rem 1.5rem; transition: transform var(--df-transition), box-shadow var(--df-transition); }
.df-piliers > .wp-block-column:hover { transform: translateY(-3px); box-shadow: var(--df-ombre-forte); }
.df-piliers > .wp-block-column > * + * { margin-top: .9rem; }
.df-piliers h3 { font-size: 1.0625rem; text-transform: uppercase; letter-spacing: .03em; }
.df-piliers p { font-size: .9375rem; color: var(--df-ardoise); line-height: 1.55; }

/* Cartes d'analyses (grille) : format vertical */
.df-analyses--grille .df-analyse-carte { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; padding: 1.4rem 1.35rem 1.2rem; height: 100%; box-sizing: border-box; }
.df-analyses--grille .df-analyse-carte__corps { flex: 1; }
.df-analyses--grille .df-analyse-carte__titre { font-size: 1rem; }
.df-analyses--grille .df-analyse-carte__fleche { align-self: flex-end; margin-top: auto; }

/* Fonds sombres */
.is-style-sombre .is-style-etiquette, .df-cta .is-style-etiquette { background: #fff; color: var(--df-marine); }
.is-style-sombre .is-style-mention { color: #B9C4DA; }
.is-style-sombre .is-style-chapo { color: #DCE4F2; }
.is-style-sombre .is-style-coches li { color: #E3E9F4; }
.is-style-sombre .is-style-puces { color: #fff; }
.is-style-sombre .df-icone--fond-cercle { background: rgba(255, 255, 255, .1); }

/* Bandeau d'appel à l'action : carte marine distincte du pied de page */
.df-cta { background: #fff; color: #DCE4F2; }
.df-cta::before, .df-cta::after { display: none; }
.df-cta > .wp-block-columns { position: relative; overflow: hidden; background: linear-gradient(120deg, var(--df-marine) 0%, var(--df-profond) 100%); border-radius: 20px; padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.5rem, 4vw, 3.5rem); box-shadow: var(--df-ombre-forte); }
.df-cta > .wp-block-columns::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255, 255, 255, .03) 0 1px, transparent 1px 24px); pointer-events: none; }
.df-cta > .wp-block-columns::after { content: ""; position: absolute; right: -30px; top: 0; width: 42%; height: 100%; background: linear-gradient(115deg, transparent 0 44%, rgba(255, 255, 255, .05) 44% 60%, transparent 60% 63%, rgba(216, 7, 20, .6) 63% 65.5%, transparent 65.5%); pointer-events: none; }
.df-cta > .wp-block-columns > * { position: relative; z-index: 1; }

/* Encarts dans le contenu */
.df-encart, .df-encart-cta { margin-block: 2rem !important; }
.df-encart > * + *, .df-encart-cta > * + * { margin-top: .8rem; }
.df-encart h3, .df-encart-cta h3 { font-size: 1.125rem; }
.df-a-retenir { background: var(--df-brume); border-color: transparent; }
.df-a-retenir > * + * { margin-top: .8rem; }
.df-contenu .wp-block-table { margin-block: 1.5rem; }

/* Cartes de services */
.df-carte-service { height: 100%; display: flex; flex-direction: column; gap: .9rem; }
.df-carte-service .wp-block-buttons { margin-top: auto; padding-top: .5rem; }
.df-carte-service h3 { font-size: 1.125rem; }
.df-carte-service p { color: var(--df-ardoise); font-size: .9375rem; }

/* Listes d'atouts verticales (kit, expertise) */
.df-liste-kit { display: grid; gap: 1rem; margin-block: 1.6rem !important; }

/* Bande marine (envoyer un échantillon) */
.df-bande-marine .wp-block-columns { gap: 1.5rem !important; }
.df-bande-marine .is-style-atout :where(h3, h4) { color: #fff; font-size: .8125rem; }
.df-bande-marine .is-style-atout p { font-size: .8125rem; }

/* Sections avec formulaire */
.df-section-form .is-style-carte { max-width: 900px; margin-inline: auto; margin-top: var(--wp--preset--spacing--50); }

/* Écran espace client */
.df-ecran__titre { font: 700 .75rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .06em; color: var(--df-marine); }
.df-indicateurs { gap: .75rem !important; }
.df-indicateur > * { margin: 0; }
.df-vert { color: var(--wp--preset--color--vert); }
.df-orange { color: var(--wp--preset--color--orange); }
.df-ecran__tableau { margin-top: 1rem; }
.df-ecran__tableau td:last-child { font-weight: 600; white-space: nowrap; }
.df-ecran__tableau tr:nth-child(1) td:last-child, .df-ecran__tableau tr:nth-child(4) td:last-child { color: var(--wp--preset--color--vert); }
.df-ecran__tableau tr:nth-child(2) td:last-child { color: var(--wp--preset--color--orange); }
.df-ecran__tableau tr:nth-child(3) td:last-child { color: var(--df-rouge); }
@media (max-width: 600px) { .df-indicateurs { flex-wrap: wrap !important; } .df-indicateurs > .wp-block-column { flex-basis: calc(50% - .4rem) !important; } }

/* Derniers articles (accueil) */
.df-derniers-articles { list-style: none; padding: 0; gap: 1.25rem; margin-top: var(--wp--preset--spacing--50); }
.df-derniers-articles li { background: #fff; border: 1px solid var(--df-ligne); border-radius: 14px; padding: 1.5rem; margin: 0 !important; display: flex; flex-direction: column; gap: .6rem; transition: border-color var(--df-transition), box-shadow var(--df-transition); }
.df-derniers-articles li:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); }
.df-derniers-articles .wp-block-latest-posts__post-title { font: 700 1.125rem/1.3 var(--df-titres); color: var(--df-marine); text-decoration: none; }
.df-derniers-articles .wp-block-latest-posts__post-title:hover { color: var(--df-rouge); }
.df-derniers-articles .wp-block-latest-posts__post-excerpt { margin: 0; font-size: .9375rem; color: var(--df-ardoise); }

/* Étiquette de référence (confidentialité) */
.df-reference > * + * { margin-top: 1rem; }
.is-style-sombre .df-coord--telephone small { color: #B9C4DA; }
.is-style-sombre ul.df-coord li, .is-style-sombre ul.df-coord a { color: #fff; }

/* Pages de texte : bandeau aligné sur la colonne de contenu */
.df-corps-page { margin-block: 0 !important; }
.df-laterale-collante { position: sticky; top: calc(var(--df-entete) + 24px); display: grid; gap: 1.25rem; }
.df-laterale-collante > * { margin: 0 !important; }
.df-laterale-collante .is-style-carte-bordee > * + * { margin-top: .85rem; }
.df-laterale-collante .df-coord--telephone a { font-size: 1.5rem; }
.df-laterale-collante .df-coord--telephone small { margin-left: 2.6rem; }
@media (max-width: 781px) { .df-laterale-collante { position: static; } }
.df-contenu-large > .alignwide:first-child { margin-top: 0; }
.df-ecran__tableau :where(th, td) { white-space: nowrap; padding: .6rem .7rem !important; font-size: .8125rem; }
.df-ecran__tableau { overflow-x: auto; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { border-bottom: 0; }

/* ==========================================================================
   Espace client
   ========================================================================== */
.df-compte { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .85rem; border-radius: 8px; box-shadow: inset 0 0 0 1.5px var(--df-ligne); color: var(--df-marine); font: 700 .75rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .04em; text-decoration: none; white-space: nowrap; transition: box-shadow var(--df-transition), background-color var(--df-transition); }
.df-compte:hover { box-shadow: inset 0 0 0 1.5px var(--df-marine); color: var(--df-marine); }
.df-compte.is-connecte { background: var(--df-marine); color: #fff; box-shadow: none; }
.df-compte .df-svg { color: inherit; }
@media (max-width: 980px) { .df-compte { width: 44px; height: 44px; padding: 0; justify-content: center; } .df-compte span { display: none; } }

.df-main--espace { background: var(--df-brume); }
.df-ec { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 0; max-width: 1360px !important; margin: clamp(1rem, 3vw, 2.5rem) auto !important; background: #fff; border-radius: 18px; box-shadow: var(--df-ombre-forte); overflow: hidden; min-height: 70vh; }
.df-ec__nav { position: relative; background: linear-gradient(180deg, var(--df-marine) 0%, var(--df-profond) 100%); color: #DCE4F2; padding: 1.4rem .9rem 2rem; overflow: hidden; }
.df-ec__nav::after { content: ""; position: absolute; left: -10%; bottom: 0; width: 140%; height: 120px; background: linear-gradient(170deg, transparent 0 48%, rgba(255, 255, 255, .9) 48% 50%, transparent 50% 54%, var(--df-rouge) 54% 57%, transparent 57%); opacity: .55; pointer-events: none; }
.df-ec__nav-tete { display: flex; align-items: center; gap: .75rem; padding: .25rem .6rem 1.2rem; border-bottom: 1px solid rgba(255, 255, 255, .12); margin-bottom: .8rem; }
.df-ec__nav-tete p { margin: 0; display: flex; flex-direction: column; line-height: 1.25; }
.df-ec__nav-tete strong { font: 800 .9375rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .03em; color: #fff; }
.df-ec__nav-tete span { font-size: .8125rem; color: #B9C4DA; }
.df-ec__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; position: relative; z-index: 1; }
.df-ec__nav a { display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; border-radius: 10px; color: #DCE4F2; text-decoration: none; font-weight: 500; border-left: 3px solid transparent; transition: background-color var(--df-transition); }
.df-ec__nav a:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.df-ec__nav a.is-actif { background: rgba(255, 255, 255, .12); color: #fff; font-weight: 600; border-left-color: var(--df-rouge); }
.df-ec__nav a em { margin-left: auto; min-width: 1.4rem; height: 1.4rem; border-radius: 999px; background: var(--df-rouge); color: #fff; font: 700 .75rem/1.4rem var(--df-titres); text-align: center; font-style: normal; }
.df-ec__main { padding: clamp(1.25rem, 3vw, 2.5rem); min-width: 0; }
.df-ec__main > * + * { margin-top: 1.5rem; }
.df-ec-titre { display: flex; align-items: center; gap: .6rem; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem) !important; margin: 0; }
.df-ec-titre::after { content: none; }
.df-ec-entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }
.df-ec-entete h2 { margin: 0; }
.df-ec-retour { margin: 0 0 -.5rem !important; font-size: .875rem; }
.df-ec-retour a { color: var(--df-ardoise); text-decoration: none; font-weight: 600; }
.df-ec-apercu { display: block; line-height: 1.5; padding: .6rem 1rem; border-radius: 10px; background: #FFF6E5; color: #7A4B00; font-size: .875rem; margin: 0 !important; }

.df-ec-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 1rem; }
.df-ec-stat { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; align-items: center; padding: 1.25rem; border: 1px solid var(--df-ligne); border-radius: 14px; background: #fff; }
.df-ec-stat__icone { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; }
.df-ec-stat p { margin: 0; display: flex; flex-direction: column; font-weight: 600; color: var(--df-encre); line-height: 1.25; }
.df-ec-stat strong { font: 800 2rem/1 var(--df-titres); }
.df-ec-stat small { font-size: .8125rem; color: var(--df-ardoise); }
.df-ec-stat--vert .df-ec-stat__icone { background: #E7F5EE; color: #138A4F; } .df-ec-stat--vert strong { color: #138A4F; }
.df-ec-stat--orange .df-ec-stat__icone { background: #FDF1E2; color: #E5820B; } .df-ec-stat--orange strong { color: #E5820B; }
.df-ec-stat--rouge .df-ec-stat__icone { background: #FCE8EA; color: var(--df-rouge); } .df-ec-stat--rouge strong { color: var(--df-rouge); }
.df-ec-stat--marine .df-ec-stat__icone { background: var(--df-brume-bleu); color: var(--df-marine); } .df-ec-stat--marine strong { color: var(--df-marine); }
.df-ec-apercu svg { vertical-align: -3px; margin-right: .4rem; }
@media (max-width: 600px) {
	.df-ec-stats { grid-template-columns: 1fr 1fr; gap: .6rem; }
	.df-ec-stat { grid-template-columns: 1fr; padding: .9rem; gap: .5rem; }
	.df-ec-stat__icone { grid-row: auto; width: 36px !important; height: 36px !important; }
	.df-ec-stat strong { font-size: 1.6rem; }
	.df-ec-stat p { font-size: .875rem; }
	.df-ec-stat small { display: none; }
}

.df-ec-carte { background: #fff; border: 1px solid var(--df-ligne); border-radius: 14px; padding: clamp(1rem, 2.5vw, 1.5rem); min-width: 0; }
.df-ec-carte > h2, .df-ec-carte h2 { font-size: 1.0625rem !important; margin: 0 0 1rem; }
.df-ec-carte > * + * { margin-top: 1rem; }
.df-ec-grille { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.25rem; }
.df-ec-grille--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
@media (max-width: 1100px) { .df-ec-grille { grid-template-columns: minmax(0, 1fr); } }
.df-ec-actions { display: flex; flex-direction: column; gap: .7rem; }
.df-ec-actions .df-bouton { width: 100%; }
.df-ec-note { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--df-ardoise); margin: 0; }
.df-ec-note .df-svg { color: var(--df-rouge); }
.df-ec-centre { text-align: center; }
.df-ec-vide { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.2rem; border-radius: 12px; background: var(--df-brume); color: var(--df-ardoise); margin: 0; }
.df-ec-boutons { display: flex; flex-wrap: wrap; gap: .75rem; }

.df-ec-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 0; }
.df-ec-table table { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 560px; }
.df-ec-table th { text-align: left; padding: .7rem .8rem; font: 700 .6875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .06em; color: var(--df-marine); border-bottom: 2px solid var(--df-ligne); white-space: nowrap; }
.df-ec-table td { padding: .75rem .8rem; border-bottom: 1px solid var(--df-brume); vertical-align: middle; }
.df-ec-table td { white-space: nowrap; }
.df-ec-table td.df-ec-table__long { white-space: normal; min-width: 14rem; }
.df-ec-table tbody tr:hover td { background: var(--df-brume); }
.df-ec-table a { color: var(--df-marine); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.df-ec-table a:hover { color: var(--df-rouge); }
.df-ec-voir { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .7rem; border: 1px solid var(--df-ligne); border-radius: 8px; font-size: .8125rem; font-weight: 600; color: var(--df-marine); text-decoration: none; white-space: nowrap; }
.df-ec-voir:hover { border-color: var(--df-marine); }

.df-ec-pastille, .df-ec-suivi { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem; border-radius: 999px; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.df-ec-pastille::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; }
.df-ec-pastille--vert { background: #E7F5EE; color: #0F7A45; }
.df-ec-pastille--orange { background: #FDF1E2; color: #B2600A; }
.df-ec-pastille--rouge { background: #FCE8EA; color: #B1050F; }
.df-ec-pastille--attente { background: var(--df-brume); color: var(--df-ardoise); }
.df-ec-suivi { background: var(--df-brume-bleu); color: var(--df-marine); }
.df-ec-suivi--termine { background: #E7F5EE; color: #0F7A45; }

.df-ec-courbe { margin: 0; }
.df-ec-courbe figcaption { font: 700 .875rem/1.3 var(--df-titres); color: var(--df-marine); margin-bottom: .5rem; }
.df-ec-courbe svg { width: 100%; height: auto; display: block; }
.df-ec-courbe__grille { stroke: var(--df-ligne); stroke-width: 1; }
.df-ec-courbe__axe { font: 600 11px var(--wp--preset--font-family--texte); fill: var(--df-ardoise); }
.df-ec-courbe__legende { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; font-size: .8125rem; color: var(--df-ardoise); }
.df-ec-courbe__legende li { display: inline-flex; align-items: center; gap: .4rem; }
.df-ec-courbe__legende span { width: .8rem; height: .8rem; border-radius: 3px; }
.df-ec-courbe__legende strong { color: var(--df-encre); margin-left: .2rem; }

.df-ec-infos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 180px), 1fr)); gap: .75rem; margin: 0; }
.df-ec-infos > div { padding: .8rem 1rem; border-radius: 10px; background: var(--df-brume); }
.df-ec-infos dt { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--df-ardoise); }
.df-ec-infos dd { margin: .2rem 0 0; font-weight: 600; color: var(--df-marine); }

.df-ec-etapes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .5rem; counter-reset: e; }
.df-ec-etapes li { position: relative; display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center; font-size: .75rem; font-weight: 600; color: var(--df-acier); }
.df-ec-etapes li span { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--df-brume-bleu); color: var(--df-acier); font: 800 .8125rem/1 var(--df-titres); }
.df-ec-etapes li:not(:last-child)::after { content: ""; position: absolute; top: 1rem; left: calc(50% + 1rem); width: calc(100% - 2rem + .5rem); height: 2px; background: var(--df-ligne); }
.df-ec-etapes li.is-fait { color: var(--df-marine); }
.df-ec-etapes li.is-fait span { background: var(--df-marine); color: #fff; }
.df-ec-etapes li.is-fait::after { background: var(--df-marine); }
.df-ec-etapes li.is-encours { color: var(--df-rouge); }
.df-ec-etapes li.is-encours span { background: var(--df-rouge); color: #fff; box-shadow: 0 0 0 4px rgba(216, 7, 20, .15); }
@media (max-width: 700px) { .df-ec-etapes { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1rem; } .df-ec-etapes li::after { display: none; } }

.df-ec-avis { display: flex; gap: 1rem; padding: 1.1rem 1.25rem; border-radius: 12px; background: var(--df-brume-bleu); }
.df-ec-avis .df-svg { color: var(--df-marine); flex-shrink: 0; margin-top: .15rem; }
.df-ec-avis h3 { font-size: .9375rem; margin: 0 0 .35rem; }
.df-ec-avis p { margin: 0; color: var(--df-encre); }

.df-ec-fil { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .75rem; }
.df-ec-fil li { max-width: 85%; padding: .8rem 1rem; border-radius: 12px; }
.df-ec-fil li p { margin: 0; }
.df-ec-fil li.is-client { justify-self: end; background: var(--df-brume-bleu); }
.df-ec-fil li.is-labo { background: var(--df-brume); border-left: 3px solid var(--df-rouge); }
.df-ec-fil__auteur { font-size: .75rem; font-weight: 700; color: var(--df-ardoise); margin-bottom: .25rem !important; }

.df-ec-masquer button { display: inline-flex; align-items: center; gap: .4rem; background: none; border: 0; padding: 0; color: var(--df-ardoise); font: inherit; font-size: .8125rem; cursor: pointer; text-decoration: underline; }
.df-ec-filtres { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.df-ec-filtres a { display: inline-block; padding: .45rem .9rem; border-radius: 999px; border: 1px solid var(--df-ligne); color: var(--df-marine); font-size: .875rem; font-weight: 600; text-decoration: none; }
.df-ec-filtres a.is-actif { background: var(--df-marine); border-color: var(--df-marine); color: #fff; }

.df-ec-rapports, .df-ec-alertes { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.df-ec-rapports li, .df-ec-alertes li { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: 1rem 1.2rem; border: 1px solid var(--df-ligne); border-radius: 12px; background: #fff; }
.df-ec-rapports li > div, .df-ec-alertes li > div { flex: 1 1 220px; display: flex; flex-direction: column; min-width: 0; }
.df-ec-rapports li span { font-size: .8125rem; color: var(--df-ardoise); }
.df-ec-rapports .df-svg { color: var(--df-marine); }
.df-ec-alertes li p { margin: .2rem 0 0; font-size: .875rem; color: var(--df-ardoise); }
.df-ec-alertes li.is-intervention { border-left: 4px solid var(--df-rouge); }
.df-ec-alertes li.is-surveiller { border-left: 4px solid var(--wp--preset--color--orange); }
.df-ec-alertes li.is-info { border-left: 4px solid var(--df-marine); }
.df-ec-alertes .df-svg:first-child { color: var(--df-marine); }

.df-ec-modifier summary { cursor: pointer; font-weight: 700; color: var(--df-marine); }
.df-ec-form { margin-top: 1rem; }
.df-ec-form input[disabled] { background: var(--df-brume); }

/* Connexion */
.df-ec-connexion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 3rem); max-width: 1240px !important; margin: clamp(1.5rem, 4vw, 3.5rem) auto !important; align-items: start; }
.df-ec-connexion__carte { background: #fff; border-radius: 18px; padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: var(--df-ombre-forte); }
.df-ec-connexion__carte > * + * { margin-top: 1rem; }
.df-ec-connexion__carte h1 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important; }
.df-ec-connexion__intro { color: var(--df-ardoise); }
.df-ec-connexion form p { margin: 0 0 1rem; }
.df-ec-connexion form label { display: block; font-weight: 600; font-size: .875rem; color: var(--df-marine); margin-bottom: .4rem; }
.df-ec-connexion form input[type="text"], .df-ec-connexion form input[type="password"] { width: 100%; box-sizing: border-box; padding: .85rem 1rem; border: 1.5px solid var(--df-ligne); border-radius: 8px; font: inherit; }
.df-ec-connexion form input:focus { outline: none; border-color: var(--df-marine); box-shadow: 0 0 0 3px rgba(2, 34, 86, .12); }
.df-ec-connexion .login-remember label { display: flex; align-items: center; gap: .5rem; font-weight: 500; }
.df-ec-connexion .login-submit input { width: 100%; padding: 1rem; border: 0; border-radius: 6px; background: var(--df-rouge); color: #fff; font: 700 .875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.df-ec-connexion .login-submit input:hover { background: var(--df-rouge-fonce); }
.df-ec-connexion__oubli { font-size: .875rem; }
.df-ec-connexion__aside { padding-top: 1rem; }
.df-ec-connexion__aside > * + * { margin-top: 1rem; }
.df-ec-connexion__aside h2 { font-size: 1.375rem !important; }
@media (max-width: 900px) {
	.df-ec { grid-template-columns: minmax(0, 1fr); border-radius: 0; margin: 0 !important; }
	.df-ec__nav { padding: .75rem; }
	.df-ec__nav::after { display: none; }
	.df-ec__nav-tete { padding: .25rem .25rem .75rem; margin-bottom: .5rem; }
	.df-ec__nav ul { display: flex; overflow-x: auto; gap: .25rem; scrollbar-width: none; }
	.df-ec__nav a { white-space: nowrap; padding: .55rem .75rem; border-left: 0; border-bottom: 3px solid transparent; border-radius: 8px; }
	.df-ec__nav a.is-actif { border-bottom-color: var(--df-rouge); }
	.df-ec-connexion { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   Boutons : jamais de débordement
   ----------------------------------------------------------------------- */
.wp-block-buttons { flex-wrap: wrap; }
.wp-block-button { max-width: 100%; }
.wp-block-button__link, .df-bouton, .df-pack__bouton { max-width: 100%; white-space: normal; text-align: center; overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.wp-block-buttons > .wp-block-button { flex: 1 1 100%; }
	.wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; }
}

/* --------------------------------------------------------------------------
   Photos
   ----------------------------------------------------------------------- */
.df-photo { position: relative; margin: 0; }
.df-photo img, .wp-block-post-featured-image.df-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Cadre diagonal à liseré rouge (maquette « expertise transformateur ») */
.df-photo--diagonale, .wp-block-image.is-style-diagonal { --df-coupe: polygon(16% 0, 100% 0, 100% 84%, 84% 100%, 0 100%, 0 16%); clip-path: var(--df-coupe); background: linear-gradient(135deg, var(--df-rouge), var(--df-rouge-fonce)); padding: 6px; }
.df-photo--diagonale img, .wp-block-image.is-style-diagonal img { clip-path: var(--df-coupe); aspect-ratio: 4 / 3; object-fit: cover; }
.wp-block-image.is-style-arrondi img { aspect-ratio: 4 / 3; object-fit: cover; }
.wp-block-image.df-photo--haute img { aspect-ratio: 4 / 5; }
.wp-block-image.df-photo--large img { aspect-ratio: 16 / 9; }

/* Carte flottante posée sur une photo (maquettes accueil) */
.df-photo-carte { position: relative; }
.df-photo-carte > .wp-block-image { margin: 0; }
.df-photo-carte__badge { position: absolute !important; left: -1.5rem; bottom: 1.5rem; z-index: 2; max-width: 300px; margin: 0 !important; box-shadow: var(--df-ombre-forte) !important; }
@media (max-width: 781px) { .df-photo-carte__badge { position: relative !important; left: 0; bottom: 0; margin-top: -2.5rem !important; margin-inline: 1rem !important; } }

/* Cartes de services avec photo */
.df-carte-service > .wp-block-image:first-child { margin: calc(-1 * clamp(1.25rem, 2.5vw, 2rem)) calc(-1 * clamp(1.25rem, 2.5vw, 2rem)) .25rem; }
.df-carte-service > .wp-block-image:first-child img { aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--df-rayon) var(--df-rayon) 0 0; width: 100%; }
.df-carte-service { overflow: hidden; }

/* Bandeau photo pleine largeur avec voile marine */
.df-bandeau-photo { position: relative; color: #fff; }
.df-bandeau-photo .wp-block-cover__inner-container > * + * { margin-top: 1rem; }

/* Bandeaux des gabarits : image à la une à droite */
.df-hero-page__colonnes { gap: clamp(1.5rem, 4vw, 3.5rem) !important; }
.df-hero-page__colonnes:not(:has(.wp-block-post-featured-image img)) > .wp-block-column:last-child { display: none; }
.df-hero-page__colonnes:not(:has(.wp-block-post-featured-image img)) > .wp-block-column:first-child { flex-basis: 100% !important; }
.df-hero-page .wp-block-post-featured-image { margin: 0; }
.df-hero-page .wp-block-post-featured-image img { aspect-ratio: 4 / 3; }

/* Fiche analyse : photo + encadré en chevauchement */
.df-fiche-photo { margin: 0; }
.df-fiche-photo img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.df-fiche--chevauche { position: relative; z-index: 2; margin: -4.5rem 1.25rem 0 -1.25rem !important; }
@media (max-width: 781px) { .df-fiche--chevauche { margin: -2.5rem .75rem 0 !important; } }

/* Menu des analyses toujours à gauche */
.df-corps-analyse > .df-colonne-laterale { order: -1; }
@media (max-width: 781px) { .df-corps-analyse > .df-colonne-laterale { order: 2; } .df-analyses--menu { position: static; } }

/* Articles liés (fiches d'analyse) */
.df-articles-lies { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--df-ligne); }
.df-articles-lies h2 { font-size: 1.375rem !important; margin-bottom: 1.25rem; }
.df-articles-lies__grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.df-article-lien { display: flex; flex-direction: column; gap: .6rem; padding-bottom: 1rem; border: 1px solid var(--df-ligne); border-radius: 14px; overflow: hidden; text-decoration: none; background: #fff; transition: box-shadow var(--df-transition), border-color var(--df-transition); }
.df-article-lien:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); }
.df-article-lien img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.df-article-lien__titre { padding: 0 1rem; font: 700 .9375rem/1.35 var(--df-titres); color: var(--df-marine); }
.df-article-lien__lire { margin-top: auto; padding: 0 1rem; display: inline-flex; align-items: center; gap: .35rem; font: 700 .6875rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .05em; color: var(--df-rouge); }
.df-sous-page__photo { display: block; margin: -1.35rem -1.35rem .5rem; }
.df-sous-page__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-radius: 14px 14px 0 0; }
.df-sous-page { overflow: hidden; }
.df-article-carte .wp-block-post-featured-image { margin: -1.5rem -1.5rem .25rem; }
.df-article-carte .wp-block-post-featured-image img { aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px 14px 0 0; }
.df-article-carte { overflow: hidden; }

/* Menu mobile ouvert : liste structurée, sous-menus en retrait */
.df-nav .wp-block-navigation__responsive-container.is-menu-open { background: #fff linear-gradient(180deg, var(--df-brume) 0, #fff 7rem) !important; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--df-ligne); padding-block: .2rem; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font: 800 1rem/1.3 var(--df-titres); text-transform: uppercase; letter-spacing: .02em; color: var(--df-marine); }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { width: 100%; margin: 0 0 .5rem .2rem !important; padding: 0 0 0 .9rem !important; border-left: 2px solid var(--df-rouge) !important; gap: 0 !important; }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: .9375rem; font-weight: 500; padding-block: .35rem; color: var(--df-encre); }
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; border-radius: 10px; background: var(--df-marine); color: #fff; align-items: center; justify-content: center; top: 1rem; right: 1rem; }

/* Mobile : titre de fiche analyse sous l'icône, sans césure ; choix du formulaire compacts */
@media (max-width: 600px) {
	.df-hero-analyse__titre { flex-direction: column; align-items: flex-start !important; gap: .75rem !important; }
	.df-hero-analyse__titre > :first-child { transform: scale(.8); transform-origin: left top; margin-bottom: -.6rem; }
	.df-hero-analyse h1 { font-size: clamp(1.5rem, 7.4vw, 1.875rem); hyphens: manual; -webkit-hyphens: manual; }
	.df-form__types-grille { grid-template-columns: 1fr 1fr; gap: .5rem; }
	.df-type span { flex-direction: row; align-items: center; gap: .5rem; padding: .7rem .75rem; font-size: .8125rem; }
	.df-type span .df-svg { flex: none; width: 18px; height: 18px; }
}
.df-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border-radius: 0 !important; }

/* =====================================================================
 * Correctifs de mise en page (retours du 13/10)
 * ================================================================== */

/* Carte de France : noms des villes sans soulignement */
.df-carte a, .df-carte a:hover, .df-carte a:focus, .df-carte text { text-decoration: none !important; }
.df-carte a { cursor: pointer; }

/* Respiration sous les titres soulignés et les barres rouges */
.is-style-souligne + * { margin-top: 1.5rem !important; }
.wp-block-separator.is-style-court { margin-top: 1.1rem !important; margin-bottom: 1.5rem !important; }
.wp-block-separator.is-style-court + * { margin-top: 0 !important; }

/* Cartes et blocs marine : espacement régulier entre éléments */
:where(.is-style-carte, .is-style-carte-bordee, .is-style-sombre) > * + * { margin-top: 1rem; }
:where(.is-style-carte, .is-style-carte-bordee, .is-style-sombre) > .wp-block-df-coordonnees,
:where(.is-style-carte, .is-style-carte-bordee, .is-style-sombre) > .wp-block-buttons { margin-top: 1.4rem; }

/* Bandeaux d'atouts : grille qui passe à la ligne au lieu de déborder */
.wp-block-columns.is-style-bande { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1.1rem 1.4rem !important; container-type: inline-size; }
.wp-block-columns.is-style-bande > .wp-block-column { flex-basis: auto !important; min-width: 0; margin: 0 !important; }
.wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column { border-left: 0 !important; padding-left: 0 !important; border-top: 0 !important; padding-top: 0 !important; }
@container (min-width: 1000px) {
	.wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column { border-left: 1px solid var(--df-ligne) !important; padding-left: 1.4rem !important; }
}
@container (max-width: 459px) {
	.wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column { border-top: 1px solid var(--df-ligne) !important; padding-top: 1.1rem !important; }
}
.is-style-atout :where(h3, h4) { overflow-wrap: normal; word-break: normal; }

/* Encadré « référence » : trait plein au lieu des pointillés */
.is-style-confidentiel { border: 1px solid var(--df-ligne) !important; border-left: 4px solid var(--df-rouge) !important; box-shadow: var(--df-ombre); }

/* Pastilles d'analyses dans le contenu : alignées et espacées */
.df-contenu .df-analyses--etiquettes, .entry-content .df-analyses--etiquettes, .wp-block-post-content .df-analyses--etiquettes { padding-left: 0 !important; margin-top: 1.25rem !important; margin-bottom: 1.75rem !important; }
.df-analyses--etiquettes li { margin: 0 !important; }

/* Formulaire : consentement sur une ligne propre */
.df-form__consentement label { display: grid !important; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; line-height: 1.5; }
.df-form__consentement input { margin: .2rem 0 0; }
.df-form__consentement a { color: var(--df-marine); font-weight: 600; }

/* Formulaire : cartes de choix toutes identiques (icône + 2 lignes) */
.df-form__types { container-type: inline-size; }
.df-form__types-grille { grid-template-columns: 1fr 1fr !important; gap: .55rem !important; }
@container (min-width: 540px) { .df-form__types-grille { grid-template-columns: repeat(5, 1fr) !important; } }
@container (max-width: 539px) { .df-type:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.df-type span { flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center; gap: .5rem !important; padding: .9rem .4rem !important; height: 100%; }
.df-type span .df-svg { width: 22px !important; height: 22px !important; }
.df-type b { font-weight: 600; font-size: .8125rem; line-height: 1.3; color: var(--df-marine); }

/* Colonnes de même hauteur (ex. carte + bloc marine) */
.df-colonnes-egales > .wp-block-column { display: flex; flex-direction: column; }
.df-hauteur-pleine { flex: 1 1 auto; height: 100%; }
.df-colonne-empilee { display: flex !important; flex-direction: column; gap: 1.25rem; }
.df-colonne-empilee > * { margin: 0 !important; }
.df-colonne-empilee > .df-photo--remplit { flex: 1 1 220px; min-height: 220px; position: relative; overflow: hidden; }
.df-colonne-empilee > .df-photo--remplit img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

/* En-tête simplifié : logo | téléphone | Commander une analyse | Espace client */
.df-header__infos { gap: clamp(.9rem, 1.6vw, 1.5rem) !important; align-items: center; }
.df-header__cta .wp-block-button__link,
.df-header .df-compte { height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 1.2rem !important; border-radius: 8px; font: 700 .8125rem/1 var(--df-titres) !important; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.df-header .df-compte { box-shadow: inset 0 0 0 1.5px var(--df-marine); color: var(--df-marine); background: #fff; }
.df-header .df-compte:hover, .df-header .df-compte.is-connecte { background: var(--df-marine); color: #fff; box-shadow: none; }
@media (max-width: 1100px) { .df-header .df-coord--entete span { display: flex; } }
@media (max-width: 1040px) { .df-header .df-coord--entete span { display: none; } }
@media (max-width: 980px) { .df-header .df-compte { width: 44px; height: 44px; padding: 0 !important; } }

/* Promesses (kit offert, délai) dans le bandeau d'appel à l'action */
.df-cta__promesses { gap: 1.25rem 2.5rem !important; margin-top: 1.5rem !important; }
.df-cta .df-coord--kit, .df-cta .df-coord--delai { color: #fff; }
.df-cta .df-coord--kit .df-svg, .df-cta .df-coord--delai .df-svg { color: #fff; background: var(--df-rouge); border-radius: 50%; padding: 7px; width: 36px !important; height: 36px !important; }
.df-cta .df-coord--kit small, .df-cta .df-coord--delai small { color: #C9D3E6; }
.df-cta .df-coord--delai small:first-child { color: #fff; }
.df-cta .df-coord--delai strong { color: #fff; }

/* Analyses : menu toujours à gauche, au même endroit (page catalogue et fiches) */
.df-analyse-colonnes { gap: clamp(1.5rem, 3.5vw, 3rem) !important; align-items: flex-start !important; }
.df-analyse-colonnes > .df-colonne-laterale { align-self: stretch; position: relative; z-index: 2; }
.df-analyse-colonnes > .df-analyse-principale { min-width: 0; }
.df-analyses-hero > .df-analyse-principale > .wp-block-df-fil-ariane + * { margin-top: 1.25rem; }
.df-page-analyse { overflow-x: clip; padding-bottom: var(--wp--preset--spacing--70); }
.df-page-analyse .df-colonne-laterale { padding-top: var(--wp--preset--spacing--40); }
.df-analyse-entete { position: relative; z-index: 1; padding-block: var(--wp--preset--spacing--40) clamp(2.5rem, 5vw, 3.5rem); }
.df-analyse-entete::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -100vmax; right: -100vmax; background: var(--df-brume); background-image: var(--df-motif); }
.df-analyse-entete h1 { margin-top: 0; font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem); max-width: 22ch; }
.df-analyse-entete .df-hero-analyse__titre { gap: 1.1rem !important; margin-top: 1.25rem !important; }
.df-analyse-entete .df-hero-page__chapo, .df-analyse-entete .wp-block-post-excerpt__excerpt { font-size: clamp(1.0625rem, 1rem + .4vw, 1.25rem); line-height: 1.6; color: var(--df-ardoise); margin: 0; }
.df-analyse-entete > h1 + .df-hero-page__chapo { margin-top: 1.25rem; }
.df-analyse-entete .wp-block-post-excerpt { margin-top: 1rem; }
.df-analyse-entete .wp-block-post-excerpt__more-text { display: none; }
.df-analyse-entete .df-fiche-points { margin-top: 1.4rem; }
.df-analyse-visuels { margin-top: 2rem !important; gap: 1.5rem !important; align-items: flex-start !important; }
.df-analyse-contenu { margin-top: clamp(2.5rem, 5vw, 3.5rem) !important; }
.df-seulement-mobile { display: none; }
@media (max-width: 1024px) {
	.df-analyse-colonnes > .df-analyse-principale { flex-basis: 100% !important; }
	.df-seulement-mobile { display: block; margin-top: 2.5rem; }
	.df-seulement-mobile .df-analyses--menu { position: static; }
	.df-seulement-mobile .df-analyses--menu ul { max-height: none; }
}
@media (max-width: 600px) {
	.df-analyse-entete .df-hero-analyse__titre { flex-direction: column; align-items: flex-start !important; gap: .75rem !important; }
	.df-analyse-entete .df-hero-analyse__titre > :first-child { transform: scale(.8); transform-origin: left top; margin-bottom: -.6rem; }
	.df-analyse-entete h1 { font-size: clamp(1.5rem, 7.4vw, 1.875rem); hyphens: manual; -webkit-hyphens: manual; }
}

/* Espace client encadré, centré sur la largeur du site (comme l'en-tête et le pied de page) */
.df-main--espace { background: #F3F6FB; padding-block: clamp(1.25rem, 3vw, 2.5rem) !important; }
.df-main--espace > .wp-block-post-content { max-width: none !important; margin: 0 !important; }
.df-main--espace .df-ec { width: 100%; max-width: var(--wp--style--global--wide-size, 1240px) !important; margin: 0 auto !important; border-radius: 18px; box-shadow: var(--df-ombre-forte); background: #fff; min-height: 70vh; grid-template-columns: 260px minmax(0, 1fr); }
.df-main--espace .df-ec, .df-main--espace .df-ec__nav { overflow: clip; }
.df-main--espace .df-ec__nav-colle { position: sticky; top: calc(var(--df-entete, 132px) + 1rem); z-index: 1; }
.df-main--espace .df-ec__main { padding: clamp(1.25rem, 3vw, 2.5rem); }
.df-main--espace .df-ec-carte { box-shadow: 0 1px 2px rgba(2, 34, 86, .04); }
.df-main--espace .df-ec--equipe, .df-main--espace .df-ec-connexion { min-height: 0; }

/* Espacements réguliers dans l'espace client */
.df-ec__main > * + * { margin-top: 1.5rem !important; }
.df-ec-boutons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.df-ec-carte > .df-ec-vide + *, .df-ec-carte > * + .df-ec-vide { margin-top: 1rem; }

/* Champs de formulaire : tous les types (date, mot de passe…) */
.df-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="file"]):not([type="button"]), select, textarea) {
	width: 100%; box-sizing: border-box; min-height: 48px; padding: .8rem .95rem; border: 1.5px solid var(--df-ligne); border-radius: 8px; background-color: #fff;
	font: inherit; font-size: 1rem; color: var(--df-encre); transition: border-color var(--df-transition), box-shadow var(--df-transition);
}
.df-form input[type="date"] { appearance: none; -webkit-appearance: none; }
.df-form input[disabled], .df-form input[readonly] { background-color: var(--df-brume); color: var(--df-ardoise); }
.df-form .df-champ > label, .df-form fieldset > legend { display: block; margin-bottom: .45rem; font-weight: 600; font-size: .9rem; color: var(--df-marine); }

/* Espace client sur mobile : menu en tuiles (2 rangées), plus de défilement horizontal */
@media (max-width: 900px) {
	.df-main--espace { padding: 0 !important; }
	.df-main--espace .df-ec { grid-template-columns: minmax(0, 1fr); min-height: 0; border-radius: 0; box-shadow: none; }
	.df-main--espace .df-ec__nav-colle { position: static; }
	.df-ec__nav ul { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem !important; overflow: visible !important; }
	.df-ec__nav a { position: relative; flex-direction: column; justify-content: center; gap: .3rem; height: 100%; min-height: 62px; padding: .55rem .25rem !important; border: 0 !important; border-radius: 10px !important; background: rgba(255, 255, 255, .06); text-align: center; white-space: normal !important; font-size: .6875rem; font-weight: 600; line-height: 1.2; }
	.df-ec__nav a.is-actif { background: #fff; color: var(--df-marine); }
	.df-ec__nav a.is-actif .df-svg { color: var(--df-rouge); }
	.df-ec__nav a em { position: absolute; top: 4px; right: 6px; margin: 0; min-width: 1.1rem; height: 1.1rem; font-size: .625rem; line-height: 1.1rem; }
}
/* Bandeaux d'atouts : icône au-dessus du texte quand la colonne est étroite */
.wp-block-columns.is-style-bande > .wp-block-column { container-type: inline-size; }
@container (max-width: 250px) {
	.wp-block-columns.is-style-bande .is-style-atout { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
}

/* Grilles de 4 cartes ou plus : 2 par ligne sur tablette (titres jamais tronqués) */
@media (min-width: 782px) and (max-width: 1100px) {
	.wp-block-columns:has(> .wp-block-column:nth-child(4)):not(.is-style-bande):not(.is-style-etapes):not(.is-style-separateurs):not(.is-not-stacked-on-mobile):not(.df-indicateurs) { flex-wrap: wrap !important; row-gap: 1.5rem; }
	.wp-block-columns:has(> .wp-block-column:nth-child(4)):not(.is-style-bande):not(.is-style-etapes):not(.is-style-separateurs):not(.is-not-stacked-on-mobile):not(.df-indicateurs) > .wp-block-column { flex: 1 1 calc(50% - 1.5rem) !important; }
}
/* Étapes : 3 par ligne sur tablette, 2 sur mobile */
@media (max-width: 1100px) {
	.wp-block-columns.is-style-etapes { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem !important; }
	.wp-block-columns.is-style-etapes > .wp-block-column { flex-basis: auto !important; }
	.is-style-etapes > .wp-block-column::after { display: none; }
}
@media (max-width: 600px) {
	.wp-block-columns.is-style-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem !important; }
	.is-style-etapes > .wp-block-column > :where(h3, h4) { font-size: .8125rem; }
	.is-style-etapes > .wp-block-column > p { font-size: .875rem; }
}
@media (min-width: 601px) and (max-width: 1100px) {
	.wp-block-columns.is-style-etapes:not(:has(> .wp-block-column:nth-child(5))) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Espace client : tous les tableaux sont dans une carte .df-ec-carte (mêmes marges partout) */
.df-ec-carte .df-ec-table tbody tr:last-child td { border-bottom: 0; }
.df-main--espace .df-ec-filtres a:not(.is-actif) { background: #fff; }
.df-ec-table a strong { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.df-ec-table th { white-space: normal; vertical-align: bottom; }

/* Page catalogue des analyses : contenu à droite du menu collant */
.df-analyse-entete > .wp-block-df-fil-ariane + * { margin-top: 1.25rem; }
.df-analyse-entete > * + * { margin-top: 1.25rem; }
.df-analyse-entete > .df-photo--large, .df-analyse-entete > .df-analyses-atouts { margin-top: 2rem; }
.df-analyse-principale > .df-bande-marine--carte, .df-analyse-principale > .df-analyses-bloc { margin-top: clamp(2.75rem, 5vw, 4rem); }
.df-bande-marine--carte { padding: clamp(1.25rem, 2.5vw, 1.75rem) !important; }
.df-bande-marine--carte .wp-block-columns.is-style-bande { background: transparent; border: 0; box-shadow: none; padding: 0; }
.df-bande-marine--carte .wp-block-columns.is-style-bande > .wp-block-column + .wp-block-column { border-color: rgba(255, 255, 255, .14) !important; }
.df-bande-marine--carte .is-style-atout :where(h3, h4) { color: #fff; font-size: .8125rem; }
.df-bande-marine--carte .is-style-atout p { color: #C9D3E6; font-size: .8125rem; }
.df-analyses-bloc > .df-entete-section + *, .df-analyses-bloc > .is-style-souligne + * { margin-top: 1.5rem !important; }
.df-analyses-bloc > .wp-block-table { margin-top: 1.5rem; }
.df-conseil-choix { margin-top: 1.5rem; display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem 1.5rem; align-items: center; }
.df-conseil-choix > * { margin: 0 !important; }
.df-conseil-choix > .wp-block-df-coordonnees { grid-column: 2; }
.df-conseil-choix > .wp-block-buttons { grid-column: 3; grid-row: 1 / span 2; }
.df-conseil-choix h3 { color: #fff; margin: 0; }
.df-conseil-choix p { margin: .35rem 0 0; }
@media (max-width: 781px) {
	.df-conseil-choix { grid-template-columns: minmax(0, 1fr); }
	.df-conseil-choix > .wp-block-df-coordonnees, .df-conseil-choix > .wp-block-buttons { grid-column: auto; grid-row: auto; }
}

/* Fiche analyse : la photo occupe toute la hauteur du bloc « En bref » (plus de vide dessous) */
.df-analyse-visuels { align-items: stretch !important; }
.df-analyse-visuels > .wp-block-column { display: flex; flex-direction: column; }
.df-analyse-visuels .df-fiche-photo { flex: 1 1 auto; display: flex; min-height: 280px; }
.df-analyse-visuels .df-fiche-photo img { flex: 1 1 auto; width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; }
.df-analyse-visuels > .wp-block-column > .wp-block-df-fiche-analyse:not(.df-fiche-photo) { flex: 1 1 auto; }
@media (max-width: 781px) {
	.df-analyse-visuels .df-fiche-photo { min-height: 0; }
	.df-analyse-visuels .df-fiche-photo img { aspect-ratio: 16 / 10 !important; height: auto !important; }
}

/* Bandeaux de 4 pictos : 4 colonnes, ou 2 × 2 si la place manque (jamais 3 + 1) */
.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(4)):not(:has(> .wp-block-column:nth-child(5))) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) {
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(4)):not(:has(> .wp-block-column:nth-child(5))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(4)):not(:has(> .wp-block-column:nth-child(5))) { grid-template-columns: minmax(0, 1fr); }
}

/* Menu : « Kit de prélèvement offert » mis en avant en rouge, à droite */
.df-nav .df-nav-kit > .wp-block-navigation-item__content { color: var(--df-rouge) !important; display: inline-flex; align-items: center; gap: .4rem; }
.df-nav .df-nav-kit > .wp-block-navigation-item__content::before { content: ""; width: 16px; height: 16px; flex: none; background: currentColor; -webkit-mask: url("../icons/package.svg") center / contain no-repeat; mask: url("../icons/package.svg") center / contain no-repeat; }
.df-nav .df-nav-kit > .wp-block-navigation-item__content:hover { color: var(--df-rouge-fonce, #A80510) !important; }
@media (min-width: 981px) and (max-width: 1180px) {
	.df-nav { gap: .95rem !important; }
	.df-nav > .wp-block-navigation__responsive-container .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: .75rem; letter-spacing: .02em; }
	.df-nav .wp-block-navigation__submenu-icon { margin-left: .15rem; }
}

/* À propos : encadré « Notre ambition » sous le texte, liste sur 2 colonnes */
.df-ambition { margin-top: 2rem !important; }
.df-ambition h3 { color: #fff; }
ul.df-liste-2-colonnes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1.5rem; }
ul.df-liste-2-colonnes li { margin: 0 !important; }
@media (max-width: 600px) { ul.df-liste-2-colonnes { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 781px) { .df-colonnes-egales .df-photo--remplit { min-height: 260px; } }

/* Cartes seules dans une colonne : même hauteur sur toute la rangée ; titre et texte espacés */
.wp-block-columns:not(.are-vertically-aligned-center) > .wp-block-column > :where(.is-style-carte, .is-style-carte-bordee):only-child { height: 100%; }
:where(.is-style-carte, .is-style-carte-bordee, .is-style-sombre) > :where(h2, h3, h4) + p { margin-top: .6rem !important; }
/* Espacement régulier entre titres et paragraphes dans les colonnes */
.wp-block-column > p + p { margin-top: 1rem; }
.wp-block-column > :where(h1, h2, h3):not(.is-style-souligne) + p { margin-top: 1rem; }
.df-footer__piliers .wp-block-column > h3 + p { margin-top: 0; }

/* Espace client : réponses non lues */
.df-ec-badge-nouveau { display: inline-flex; align-items: center; gap: .3rem; margin-left: .6rem; padding: .2rem .55rem; border-radius: 999px; background: var(--df-rouge); color: #fff !important; font: 700 .6875rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .04em; text-decoration: none; white-space: nowrap; vertical-align: middle; }
.df-ec-badge-nouveau .df-svg { color: #fff; }
a.df-ec-badge-nouveau:hover { background: var(--df-rouge-fonce, #A80510); }
.df-ec-table tr.is-nouveau td { background: #FFF5F5; }
.df-ec-fil li.is-nouveau { box-shadow: 0 0 0 2px var(--df-rouge); }
.df-ec-fil li .df-ec-badge-nouveau { margin-left: .4rem; }
.df-ec-bandeau-messages { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-radius: 14px; background: #fff; border: 1px solid var(--df-ligne); border-left: 4px solid var(--df-rouge); color: var(--df-encre); text-decoration: none; box-shadow: var(--df-ombre); }
.df-ec-bandeau-messages > .df-svg { flex: none; width: 44px !important; height: 44px !important; padding: 10px; border-radius: 50%; background: var(--df-rouge); color: #fff; }
.df-ec-bandeau-messages span { flex: 1; display: flex; flex-direction: column; gap: .15rem; font-size: .9375rem; color: var(--df-ardoise); }
.df-ec-bandeau-messages strong { color: var(--df-marine); font-family: var(--df-titres); font-size: 1rem; }
.df-ec-bandeau-messages b { display: inline-flex; align-items: center; gap: .35rem; color: var(--df-rouge); font: 700 .8125rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.df-ec-bandeau-messages:hover { border-color: var(--df-rouge); }
.df-ec-intro { margin: 0; color: var(--df-ardoise); }
.df-ec-messages { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.df-ec-messages a { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border: 1px solid var(--df-ligne); border-radius: 14px; background: #fff; color: var(--df-encre); text-decoration: none; transition: border-color var(--df-transition), box-shadow var(--df-transition); }
.df-ec-messages a:hover { border-color: var(--df-marine); box-shadow: var(--df-ombre); }
.df-ec-messages li.is-nouveau a { border-left: 4px solid var(--df-rouge); }
.df-ec-messages__icone { flex: none; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--df-brume-bleu); color: var(--df-marine); }
.df-ec-messages li.is-nouveau .df-ec-messages__icone { background: #FCE8EA; color: var(--df-rouge); }
.df-ec-messages__corps { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.df-ec-messages__titre { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; color: var(--df-marine); }
.df-ec-messages__titre .df-ec-badge-nouveau { margin-left: 0; }
.df-ec-messages__transfo { font-size: .875rem; color: var(--df-ardoise); }
.df-ec-messages__extrait { font-size: .9rem; color: var(--df-ardoise); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.df-ec-messages__extrait b { color: var(--df-marine); font-weight: 600; }
.df-ec-messages__date { flex: none; font-size: .8125rem; color: var(--df-ardoise); white-space: nowrap; }
@media (max-width: 600px) { .df-ec-messages a { flex-wrap: wrap; } .df-ec-messages__date { width: 100%; padding-left: 58px; } .df-ec-bandeau-messages { flex-wrap: wrap; } }

/* Pastille sur le bouton « Espace client » de l'en-tête */
.df-compte { position: relative; }
.df-compte__pastille { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--df-rouge); color: #fff; font: 700 .6875rem/20px var(--df-titres); font-style: normal; text-align: center; box-shadow: 0 0 0 2px #fff; }

/* Menu de l'espace client sur mobile : 9 tuiles en 3 × 3 */
@media (max-width: 900px) { .df-ec__nav ul { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }

/* Espace client encadré : pas de double marge, tableaux qui tiennent dans la carte */
.df-main--espace > .wp-block-post-content { padding-inline: 0 !important; }
.df-ec-table table { min-width: 0; }
.df-ec-table td { white-space: normal; }
.df-ec-table td, .df-ec-table th { padding-inline: .6rem; }
.df-ec-table td:has(> .df-ec-pastille), .df-ec-table td:has(> .df-ec-suivi), .df-ec-table td:has(> .df-ec-voir) { white-space: nowrap; }

/* Tableaux de l'espace client : en fiches quand la carte est étroite (plus de défilement horizontal) */
.df-ec-carte { container-type: inline-size; }
@container (max-width: 900px) {
	.df-ec-table--large table, .df-ec-table--large tbody, .df-ec-table--large tr, .df-ec-table--large td { display: block; width: 100%; min-width: 0 !important; }
	.df-ec-table--large thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.df-ec-table--large tbody { display: grid; gap: .75rem; }
	.df-ec-table--large tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem 1rem; padding: .9rem 1rem; border: 1px solid var(--df-ligne); border-radius: 12px; background: #fff; }
	.df-ec-table--large tr.is-nouveau { border-left: 4px solid var(--df-rouge); }
	.df-ec-table--large tbody tr:hover td, .df-ec-table--large tr.is-nouveau td { background: none; }
	.df-ec-table--large td { padding: 0 !important; border: 0 !important; white-space: normal !important; }
	.df-ec-table--large td[data-label]:not([data-label=""])::before { content: attr(data-label); display: block; margin-bottom: .2rem; font: 700 .625rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .06em; color: var(--df-ardoise); }
	.df-ec-table--large td:first-child { grid-column: 1 / -1; font-size: 1rem; }
	.df-ec-table--large td:first-child::before { display: none !important; }
	.df-ec-table--large td:last-child:has(> .df-ec-voir) { grid-column: 1 / -1; }
	.df-ec-table--large .df-ec-voir { display: inline-flex; width: 100%; justify-content: center; }
}
@container (max-width: 560px) {
	.df-ec-table table, .df-ec-table tbody, .df-ec-table tr, .df-ec-table td { display: block; width: 100%; min-width: 0 !important; }
	.df-ec-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.df-ec-table tbody { display: grid; gap: .75rem; }
	.df-ec-table tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem 1rem; padding: .9rem 1rem; border: 1px solid var(--df-ligne); border-radius: 12px; background: #fff; }
	.df-ec-table tr.is-nouveau { border-left: 4px solid var(--df-rouge); }
	.df-ec-table tbody tr:hover td, .df-ec-table tr.is-nouveau td { background: none; }
	.df-ec-table td { padding: 0 !important; border: 0 !important; white-space: normal !important; }
	.df-ec-table td[data-label]:not([data-label=""])::before { content: attr(data-label); display: block; margin-bottom: .2rem; font: 700 .625rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .06em; color: var(--df-ardoise); }
	.df-ec-table td:first-child { grid-column: 1 / -1; font-size: 1rem; }
	.df-ec-table td:first-child::before { display: none !important; }
	.df-ec-table td:last-child:has(> .df-ec-voir) { grid-column: 1 / -1; }
	.df-ec-table .df-ec-voir { display: inline-flex; width: 100%; justify-content: center; }
}
/* Espace client centré, collé à l'en-tête et au pied de page */
.df-main--espace { padding-block: 0 !important; }
.df-main--espace .df-ec { border-radius: 0; box-shadow: 0 0 0 1px var(--df-ligne); min-height: calc(100vh - var(--df-entete, 132px)); }

/* Tableaux : pastilles qui ne dépassent jamais de leur colonne ; tableau plus compact */
.df-ec-table td > .df-ec-pastille, .df-ec-table td > .df-ec-suivi { max-width: 100%; }
.df-ec-table--large td, .df-ec-table--large th { padding-inline: .5rem; font-size: .875rem; }
.df-ec-table--large .df-ec-pastille, .df-ec-table--large .df-ec-suivi { font-size: .75rem; }
@container (max-width: 900px) {
	.df-ec-table--large tr { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
	.df-ec-table--large td > .df-ec-pastille, .df-ec-table--large td > .df-ec-suivi { white-space: normal; }
}
/* Titre de carte avec bouton (ex. « Résultats » + « Télécharger la fiche PDF ») : espace avant le contenu */
.df-ec-carte > .df-ec-entete + * { margin-top: 1.5rem !important; }
.df-ec-carte > .df-ec-entete h2 { margin: 0; }
/* Espace client : plus large que le site (1 440 px max), toujours centré */
.df-main--espace .df-ec { max-width: 1440px !important; }

.df-ec-table--large td { white-space: nowrap; }
/* Actions rapides : un seul espacement, serré, entre les boutons */
.df-ec-actions { gap: .55rem; justify-content: flex-start; }
.df-ec-actions > * + * { margin-top: 0 !important; }
.df-ec-actions > h2 { margin-bottom: .45rem !important; }
.df-ec-actions > .df-ec-note { margin-top: .45rem !important; }
@container (max-width: 900px) {
	.df-ec-table--large tr { grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); }
	.df-ec-table--large td:has(> .df-ec-voir)::before { display: none !important; }
	.df-ec-table--large td:last-child:has(> .df-ec-voir) { grid-column: 1 / -1; justify-self: end; }
	.df-ec-table--large .df-ec-voir { width: auto; }
}

/* Tableau de bord : les 4 chiffres — texte groupé (chiffre, libellé, précision) centré à côté de l'icône */
.df-ec-stat { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; align-items: start; row-gap: .2rem !important; column-gap: 1rem; }
.df-ec-stat__icone { grid-row: 1 / span 2; align-self: center; }
.df-ec-stat p { gap: .2rem; align-self: end; }
.df-ec-stat small { align-self: start; line-height: 1.35; }
@media (max-width: 600px) {
	.df-ec-stat { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; align-content: start; }
	.df-ec-stat__icone { grid-row: auto; align-self: start; }
}

/* Encadré « référence » : étiquette de flacon */
.is-style-confidentiel.df-etiquette { padding: 0 !important; overflow: hidden; border: 1px solid var(--df-ligne) !important; border-radius: 14px; background: #fff; box-shadow: 0 18px 40px rgba(2, 34, 86, .14); max-width: 440px; }
.is-style-confidentiel.df-etiquette::before { display: none; }
.df-etiquette > * { margin: 0 !important; }
.df-etiquette__entete { position: relative; display: flex; align-items: center; gap: .55rem; padding: .75rem 1.25rem; background: var(--df-marine); color: #fff; font: 700 .6875rem/1 var(--df-titres); text-transform: uppercase; letter-spacing: .1em; }
.df-etiquette__entete::before { content: ""; width: 15px; height: 15px; background: var(--df-rouge); -webkit-mask: url("../icons/tag.svg") center / contain no-repeat; mask: url("../icons/tag.svg") center / contain no-repeat; }
.df-etiquette__entete::after { content: ""; margin-left: auto; width: 74px; height: 18px; background: repeating-linear-gradient(90deg, #fff 0 2px, transparent 2px 4px, #fff 4px 5px, transparent 5px 8px, #fff 8px 11px, transparent 11px 13px); opacity: .85; }
.df-etiquette__ref { padding: 1.1rem 1.25rem .9rem; border-bottom: 1px solid var(--df-ligne); }
.df-etiquette__ref span, .df-etiquette__ligne span { display: block; font: 700 .625rem/1.2 var(--df-titres); text-transform: uppercase; letter-spacing: .08em; color: var(--df-ardoise); }
.df-etiquette__ref strong { display: block; margin-top: .3rem; font: 800 1.75rem/1 var(--df-titres); letter-spacing: .04em; color: var(--df-marine); }
.df-etiquette__ligne { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding: .75rem 1.25rem; font-size: .9375rem; color: var(--df-encre); }
.df-etiquette__ligne + .df-etiquette__ligne { border-top: 1px solid var(--df-brume); }
.df-etiquette__ligne:last-child { padding-bottom: 1rem; }
.df-reference > .is-style-mention { max-width: 440px; }
.is-style-sombre .df-reference > .is-style-mention, .df-confidentialite .df-reference > .is-style-mention { color: #C9D3E6; }
.df-encart-independance { margin-top: 2rem !important; }

/* Sections pleine largeur collées les unes aux autres (pas de bande blanche entre deux fonds colorés) */
.df-main .wp-block-post-content > .alignfull + .alignfull, .df-main > .alignfull + .alignfull { margin-block-start: 0 !important; }

/* En-tête : « Résultats 24/48 h » discret, sur une ligne, à gauche du menu (grands écrans) */
.df-header__nav { align-items: center; }
.df-header__nav > .df-nav { margin-left: auto; }
.df-header__delai { display: none !important; }
@media (min-width: 1360px) {
	.df-header__delai.df-coord--delai { display: inline-flex !important; gap: .45rem; flex: none; margin-right: .5rem; padding-right: 1.25rem; border-right: 1px solid var(--df-ligne); }
	.df-header__delai .df-svg { width: 18px !important; height: 18px !important; }
	.df-header__delai span { flex-direction: row !important; align-items: baseline; gap: .35rem; }
	.df-header__delai small:first-child { font-size: .6875rem; }
	.df-header__delai strong { font-size: .875rem !important; }
	.df-header__delai small:last-child { font-size: .75rem; }
}

/* Accueil, mobile : les 4 atouts posés sur la photo en grille 2 × 2 compacte */
@media (max-width: 781px) {
	.df-hero__atouts-carte.df-photo-carte__badge { max-width: none; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .9rem; padding: 1rem 1.1rem !important; margin-top: -2rem !important; margin-inline: .75rem !important; }
	.df-hero__atouts-carte > .is-style-atout { grid-template-columns: minmax(0, 1fr) !important; gap: .35rem !important; padding: 0 !important; border: 0 !important; margin: 0 !important; }
	.df-hero__atouts-carte > .is-style-atout + .is-style-atout { border: 0 !important; }
	.df-hero__atouts-carte > .is-style-atout .df-icone { width: auto; }
	.df-hero__atouts-carte :where(h3, h4) { font-size: .75rem !important; line-height: 1.25; margin: 0 !important; }
	.df-hero__atouts-carte p { font-size: .75rem !important; line-height: 1.4; margin: .15rem 0 0 !important; }
}
@media (max-width: 781px) {
	.df-hero__atouts-carte > .is-style-atout > .df-icone, .df-hero__atouts-carte > .is-style-atout > .wp-block-df-icone { justify-self: start; margin: 0 !important; }
}
/* Bandeaux de 5 atouts sur mobile : 2 colonnes (le dernier sur toute la largeur) */
@media (max-width: 600px) {
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem .9rem !important; }
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(5)) > .wp-block-column:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(5)) > .wp-block-column + .wp-block-column { border-top: 0 !important; padding-top: 0 !important; }
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(5)) .is-style-atout :where(h3, h4) { font-size: .75rem; }
	.wp-block-columns.is-style-bande:has(> .wp-block-column:nth-child(5)) .is-style-atout p { font-size: .75rem; }
}
/* En-tête : délai présenté comme le téléphone (picto 30 px à gauche, valeur en gras, libellé dessous) */
@media (min-width: 1360px) {
	.df-header__delai.df-coord--delai { gap: .65rem; margin-right: .25rem; padding-right: 1.25rem; }
	.df-header__delai .df-svg { width: 30px !important; height: 30px !important; color: var(--df-rouge); }
	.df-header__delai span { flex-direction: column !important; align-items: flex-start; gap: 0; }
	.df-header__delai strong { order: -1; font-family: var(--df-titres); font-weight: 800; font-size: 1.0625rem !important; letter-spacing: .01em; color: var(--df-marine); }
	.df-header__delai small, .df-header__delai small:first-child { font-family: inherit; font-weight: 400; font-size: .75rem !important; text-transform: none; letter-spacing: 0; color: var(--df-ardoise); }
}
