/* ==========================================================================
   de Vulliod Conseil — styles communs aux 5 maquettes.
   Couleurs : uniquement les variables --c-* des presets. Aucune couleur en dur.
   Chaque maquette ajoute ses styles dans css/{maquette}.css, scopés sur body.dvc-l-{maquette}.
   ========================================================================== */

:root {
	--r: 18px;
	--r-sm: 10px;
	--shadow: 0 1px 2px color-mix(in srgb, var(--c-text) 8%, transparent), 0 10px 28px -12px color-mix(in srgb, var(--c-text) 22%, transparent);
	--gap: clamp(16px, 2.4vw, 28px);
	--head-h: 76px;
	--adminbar: 0px;
}
.admin-bar { --adminbar: 32px; }
@media (max-width: 782px) { .admin-bar { --adminbar: 46px; } }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + var(--adminbar) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }

/* Blocs pleine largeur accolés : pas d'espace entre les sections. */
.wp-site-blocks > * + *, .wp-block-post-content > .alignfull, main#main > * { margin-block: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

/* Couleurs héritées dans les bandeaux colorés (titres, liens, filets). */
.has-text-color :is(h1, h2, h3, h4, h5, h6):not(.has-text-color),
.has-text-color :is(.dvc-eyebrow, .dvc-kicker, .dvc-lead) { color: inherit; }
.has-text-color a:not(.wp-element-button):not(.has-text-color) { color: inherit; }
.has-background:is(.has-primary-background-color, .has-primary-strong-background-color, .has-accent-background-color) {
	--c-border: color-mix(in srgb, currentColor 28%, transparent);
	--c-focus: var(--c-highlight);
}

/* Focus visible partout (AA 2.4.7). */
:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* ----- rythme des sections ----- */
.dvc-s { padding-block: clamp(56px, 8vw, 104px); }
.dvc-s > * + * { margin-block-start: 1.1rem; }
.dvc-s > :is(h2, .dvc-idx-head) + * { margin-block-start: .7rem; }
.dvc-s > :is(.wp-block-group, .wp-block-columns, .wp-block-buttons):not(:first-child) { margin-block-start: clamp(24px, 3.5vw, 44px); }
.dvc-center { text-align: center; }
.dvc-center .wp-block-list { justify-content: center; }
.dvc-narrow > * { max-width: 820px !important; }

h1, .wp-block-heading:is(h1) { font-size: var(--wp--preset--font-size--xx-large); letter-spacing: -.01em; }
h2 { font-size: var(--wp--preset--font-size--x-large); color: var(--c-primary); letter-spacing: -.005em; }
h3 { font-size: var(--wp--preset--font-size--large); color: var(--c-primary); }
h4 { font-size: 1.1rem; color: var(--c-primary); }
.has-text-color :is(h2, h3, h4):not(.has-text-color) { color: inherit; }

.dvc-kicker, .dvc-eyebrow {
	font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent-text);
}
.dvc-hero .dvc-kicker { color: inherit; opacity: .92; }
.dvc-intro { font-size: 1.12rem; color: var(--c-text-muted); max-width: 760px; }
.has-text-color .dvc-intro { color: inherit; opacity: .92; }
.dvc-lead { font-size: 1.2rem; font-weight: 600; line-height: 1.5; }
.dvc-small { font-size: .92rem; }
.dvc-sub { font-size: 1.12rem; max-width: 640px; }
.dvc-hero mark { background: none; }
.dvc-placeholder {
	font-size: .88rem; color: var(--c-text-muted); border: 1.5px dashed var(--c-border-strong); border-radius: var(--r-sm);
	padding: 12px 16px; text-align: center;
}
.has-text-color .dvc-placeholder { color: inherit; border-color: currentColor; opacity: .9; }
.dvc-flag {
	display: inline-block; font-size: .78rem; font-weight: 700; background: var(--c-highlight); color: var(--c-on-highlight);
	padding: 4px 10px; border-radius: 999px;
}
.dvc-tag {
	display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--c-accent-text); margin: 0 0 .3rem;
}
.dvc-more { font-weight: 700; margin-top: auto !important; }
.dvc-more a { text-decoration: none; color: var(--c-accent-text); }
.dvc-more a:hover { text-decoration: underline; }
.dvc-links a { font-weight: 600; }

/* ----- boutons ----- */
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s ease; text-decoration: none; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; padding: 11px 24px; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) { color: var(--c-primary); }
.has-text-color .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),
.wp-block-cover:not(.is-light) .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) { color: inherit; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
.wp-block-button.is-style-primary > .wp-block-button__link { background: var(--c-primary); color: var(--c-on-primary); }
.wp-block-button.is-style-primary > .wp-block-button__link:hover { background: var(--c-primary-strong); }

/* ----- cartes ----- */
.dvc-card {
	border-radius: var(--r); padding: clamp(20px, 3vw, 32px); border: 1px solid var(--c-border);
	display: flex; flex-direction: column; gap: .6rem;
}
.dvc-card > * { margin: 0; }
.dvc-card h3 { margin-bottom: .1rem; }
.is-style-card { background: var(--c-surface); border-radius: var(--r); padding: clamp(20px, 3vw, 32px); box-shadow: var(--shadow); }

/* Grilles : le nombre de colonnes choisi dans l'éditeur devient une grille souple. */
:is(.dvc-cibles, .dvc-offres, .dvc-pourquoi, .dvc-kards, .dvc-mqs, .dvc-pqs, .dvc-bigs, .dvc-badges, .dvc-presets).is-layout-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: var(--gap);
}
.dvc-pourquoi.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.dvc-presets.is-layout-grid, .dvc-pqs.is-layout-grid, .dvc-kards.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }

/* ----- listes ----- */
.dvc-checks { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .55rem; font-size: .96rem; }
.dvc-checks li { position: relative; padding-left: 1.6rem; }
.dvc-checks li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 1rem; height: 1rem; border-radius: 50%;
	background: var(--c-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.dvc-checks li::after {
	content: ""; position: absolute; left: .33rem; top: calc(.45em + .2rem); width: .3rem; height: .5rem;
	border: solid var(--c-on-accent); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.dvc-pills { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.dvc-pills li {
	padding: .35rem .95rem; border-radius: 999px; background: var(--c-surface); border: 1px solid var(--c-border);
	font-weight: 600; font-size: .92rem; color: var(--c-primary);
}
.has-text-color .dvc-pills li { color: var(--c-primary); }
.dvc-lined { list-style: none; padding: 0; border-top: 1px solid var(--c-border); }
.dvc-lined li { padding: .8rem 0; border-bottom: 1px solid var(--c-border); font-weight: 600; }

/* ----- accordéons (bloc Détails) ----- */
.dvc-acc { border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-text); }
.dvc-acc + .dvc-acc { margin-top: .6rem; }
.dvc-acc summary {
	cursor: pointer; list-style: none; padding: 15px 48px 15px 18px; font-weight: 700; color: var(--c-primary); position: relative;
	border-radius: var(--r-sm);
}
.dvc-acc summary::-webkit-details-marker { display: none; }
.dvc-acc summary::after {
	content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px;
	display: grid; place-items: center; border-radius: 50%; background: var(--c-highlight-soft); color: var(--c-on-highlight);
	font-size: 1.2rem; line-height: 1; transition: transform .2s ease;
}
.dvc-acc[open] summary::after { content: "–"; }
.dvc-acc > :not(summary) { padding: 0 18px 16px; margin: 0; }

/* ----- bandeau « autre besoin » ----- */
.dvc-autre { border-radius: var(--r); padding: clamp(22px, 3.5vw, 40px); }
.dvc-autre > * { margin-block: 0 .7rem; }
.dvc-autre > :last-child { margin-bottom: 0; }

/* ----- chiffres ----- */
.dvc-stats { display: grid; gap: 14px; }
.dvc-stat { padding: 16px 18px; border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-text); border-left: 4px solid var(--c-accent); }
.dvc-stat > * { margin: 0; }
.dvc-stat-v { font-family: var(--wp--preset--font-family--rounded); font-weight: 800; font-size: 1.6rem; color: var(--c-primary); line-height: 1.2; }
.dvc-stat-l { font-size: .94rem; color: var(--c-text-muted); }

/* ----- formation phare ----- */
.dvc-phare { position: relative; }
.dvc-flist { display: grid; gap: 12px; }
.dvc-fitem { padding: 16px 18px; border-radius: var(--r-sm); border: 1px solid var(--c-border); background: var(--c-surface); }
.dvc-fitem > * { margin: 0; }
.dvc-fitem h4 { margin-block: .15rem; }

/* ----- portrait ----- */
.wp-block-image figcaption { font-size: .8rem; color: var(--c-text-muted); text-align: center; margin-top: .5rem; }
.has-text-color .wp-block-image figcaption { color: inherit; opacity: .85; }

/* ----- contact ----- */
.dvc-coords { display: grid; gap: 14px; margin-top: 1.4rem; }
.dvc-coord { position: relative; padding-left: 52px; min-height: 40px; }
.dvc-coord > * { margin: 0; }
.dvc-coord-x { font-size: .95rem; opacity: .95; }
.dvc-coord::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 38px; height: 38px; border-radius: 50%;
	background: var(--c-highlight);
}
.dvc-coord::after {
	content: ""; position: absolute; left: 9px; top: 11px; width: 20px; height: 20px; background: var(--c-on-highlight);
	-webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.ico-phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.ico-chat { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2z'/%3E%3C/svg%3E"); }
.ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L20 7H4z'/%3E%3C/svg%3E"); }
.ico-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.3 7 13 7 13s7-7.7 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.ico-share { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16a3 3 0 0 0-2.2 1l-7-4a3 3 0 0 0 0-2l7-4A3 3 0 1 0 15 5l-7 4a3 3 0 1 0 0 6l7 4a3 3 0 1 0 3-3z'/%3E%3C/svg%3E"); }

.dvc-form-card { border-radius: var(--r); padding: clamp(20px, 3.5vw, 36px); box-shadow: var(--shadow); }
.dvc-form { display: grid; gap: 14px; }
.dvc-field label { display: block; font-weight: 700; font-size: .92rem; margin-bottom: 6px; color: var(--c-primary); }
.dvc-field input, .dvc-field textarea {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--c-text); background: var(--c-bg);
	border: 1.5px solid var(--c-border-strong); border-radius: var(--r-sm); padding: 11px 14px;
}
.dvc-field input:focus, .dvc-field textarea:focus { outline: 3px solid var(--c-focus); outline-offset: 1px; border-color: var(--c-focus); }
.dvc-field [aria-invalid="true"] { border-color: var(--c-accent-text); }
.dvc-hint { font-size: .82rem; color: var(--c-text-muted); margin: 4px 0 0; }
.dvc-form-note { font-size: .82rem; color: var(--c-text-muted); margin: 0; }
.dvc-form-note a { color: var(--c-primary); }
.dvc-submit { justify-self: start; cursor: pointer; border: 0; font: inherit; font-weight: 700; }
.dvc-form-ok { margin: 0; padding: 12px 16px; border-radius: var(--r-sm); background: var(--c-highlight-soft); color: var(--c-on-highlight); font-weight: 600; }

/* ----- en-tête commun ----- */
.dvc-site-header { position: sticky; top: var(--adminbar); z-index: 50; }
.dvc-header { padding: 12px clamp(16px, 4vw, 32px); gap: 20px; min-height: var(--head-h); box-sizing: border-box; }
.dvc-brand { gap: 12px; flex-shrink: 0; }
.dvc-brand-txt { gap: 0 !important; }
.dvc-logo { flex: none; line-height: 0; }
.dvc-logo img { height: auto; }
.dvc-site-title { font-family: var(--wp--preset--font-family--rounded); font-weight: 800; font-size: 1.15rem; line-height: 1.2; margin: 0; }
.dvc-site-title a { text-decoration: none; color: var(--c-primary); }
.has-text-color .dvc-site-title a { color: inherit; }
.dvc-site-tagline { font-size: .8rem; color: var(--c-text-muted); margin: 0; }
.dvc-nav { font-weight: 600; font-size: .95rem; }
.dvc-nav a { text-decoration: none; }
.dvc-nav .wp-block-navigation-item__content { padding: 6px 2px; border-bottom: 2px solid transparent; }
.dvc-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--c-accent); }
.dvc-nav .wp-block-navigation__responsive-container-open, .dvc-nav .wp-block-navigation__responsive-container-close { color: inherit; }
.dvc-head-cta .wp-block-button__link { padding: 10px 20px; font-size: .95rem; white-space: nowrap; }
@media (max-width: 1100px) { body .dvc-head-ctas.wp-block-buttons { display: none; } }
@media (max-width: 600px) { .dvc-site-tagline { display: none; } .dvc-brand .dvc-logo img { width: 42px; } }

/* ----- pied de page ----- */
.dvc-footer { padding-block: 44px; text-align: center; font-size: .92rem; }
.dvc-footer > * { margin-block: 0 .6rem; }
.dvc-footer .dvc-site-title a { color: inherit; }
.dvc-legal a { color: inherit; }
.credit-qg { font-size: .75rem; opacity: .78; transition: opacity .2s ease; margin: 0; }
.credit-qg a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.credit-qg:hover { opacity: 1; }

/* ----- bouton WhatsApp flottant ----- */
/* Vert WhatsApp foncé (#1DA851) : icône blanche à 3,1:1 (AA 1.4.11 pour un pictogramme). Libellé en info-bulle au survol. */
.dvc-wa {
	position: fixed; right: 16px; bottom: 16px; z-index: 60; width: 58px; height: 58px; border-radius: 50%;
	display: grid; place-items: center; background: #1da851; color: #fff; text-decoration: none;
	box-shadow: 0 8px 24px rgb(0 0 0 / .28); transition: transform .2s ease, background-color .2s ease;
}
.dvc-wa:hover { background: #128c4a; transform: translateY(-2px); }
.dvc-wa:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 50%; }
.dvc-wa-label {
	position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%); white-space: nowrap;
	background: #1b222b; color: #fff; font-size: .88rem; font-weight: 600; padding: 7px 12px; border-radius: 8px;
	clip-path: inset(50%); opacity: 0; transition: opacity .2s ease;
}
.dvc-wa:is(:hover, :focus-visible) .dvc-wa-label { clip-path: none; opacity: 1; }
@media (max-width: 782px) { .dvc-footer { padding-bottom: 96px; } }
@media print { .dvc-wa { display: none; } }

/* ----- versions « complète », « essentielle » et « épurée » ----- */
/* <html data-texte> est posé par WordPress (réglage par défaut) puis par le bouton Complet · Essentiel · Épuré. */
html[data-texte="complet"] :is(.dvc-epure, .dvc-mid, .dvc-mid-epure),
html[data-texte="essentiel"] :is(.dvc-full, .dvc-epure),
html[data-texte="epure"] :is(.dvc-full, .dvc-mid, .dvc-full-mid) { display: none !important; }
/* Essentiel un peu plus serré que le complet ; épuré compact (moins de vide autour de peu de contenu). */
html[data-texte="essentiel"] body .dvc-s { padding-block: clamp(48px, 6.5vw, 84px); }
html[data-texte="epure"] body .dvc-s { padding-block: clamp(40px, 5vw, 68px); }
html:not([data-texte="complet"]) body.dvc-l-horizon .dvc-hero { padding-block: clamp(40px, 5.5vw, 72px); }
html[data-texte="epure"] body .dvc-hero-media { max-width: 340px; }
html[data-texte="epure"] body .dvc-mini { padding: clamp(18px, 2.4vw, 26px); }
.dvc-autre-mid { text-align: center; }
html[data-texte="epure"] .dvc-min-plain { background-color: transparent !important; }
html[data-texte="epure"] .dvc-min-alt { background-color: var(--c-surface-alt) !important; }
/* Le groupe épuré suit un groupe complet masqué : pas de double marge. */
.wp-block-group:is(.dvc-full, .dvc-mid):first-child ~ .wp-block-group:is(.dvc-mid, .dvc-epure) { margin-block-start: 0 !important; }
:is(.dvc-full, .dvc-mid, .dvc-epure) > :first-child { margin-block-start: 0; }
:is(.dvc-full, .dvc-mid, .dvc-epure).wp-block-group > * + * { margin-block-start: 1.1rem; }
:is(.dvc-full, .dvc-mid, .dvc-epure).wp-block-group > :is(.wp-block-group, .wp-block-columns, .wp-block-buttons):not(:first-child) { margin-block-start: clamp(24px, 3.5vw, 44px); }

/* Cartes épurées : une situation vécue, une promesse, trois repères. */
.dvc-minis.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: var(--gap); }
.dvc-mini { gap: .7rem; }
.dvc-mini-q { font-style: italic; font-size: 1.05rem; color: var(--c-text-muted); }
.has-text-color .dvc-mini-q { color: inherit; opacity: .92; }
.dvc-mini h3 { font-size: 1.35rem; }
.dvc-mini-tags { margin-top: auto !important; padding-top: .4rem; gap: .4rem; }
.dvc-mini-tags li { font-size: .82rem; padding: .25rem .75rem; }
.dvc-minifigs { gap: 12px 28px; margin-block: 1.4rem !important; }
.dvc-minifig > * { margin: 0; }
.dvc-minifig .dvc-stat-v { font-size: 1.8rem; }
.has-text-color .dvc-minifig :is(.dvc-stat-v, .dvc-stat-l) { color: inherit; }

/* ----- éditeur : les deux versions sont visibles et étiquetées ----- */
.editor-styles-wrapper .dvc-wa { position: static; margin: 12px auto 0; }
.editor-styles-wrapper .dvc-wa-label { position: static; transform: none; clip-path: none; opacity: 1; display: none; }
.editor-styles-wrapper :is(.dvc-full, .dvc-mid, .dvc-epure) { outline: 2px dashed color-mix(in srgb, var(--c-accent) 70%, transparent); outline-offset: 4px; }
.editor-styles-wrapper .dvc-epure { outline-color: color-mix(in srgb, var(--c-primary) 70%, transparent); }
.editor-styles-wrapper .dvc-mid { outline-color: color-mix(in srgb, var(--c-decor-sage, #6f8f7a) 80%, transparent); }
.editor-styles-wrapper .wp-block-group:is(.dvc-full, .dvc-mid, .dvc-epure)::before {
	display: block; margin-bottom: 8px; font: 700 11px/1.4 system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase;
	color: var(--c-text-muted);
}
.editor-styles-wrapper .wp-block-group.dvc-full::before { content: "Version complète uniquement"; }
.editor-styles-wrapper .wp-block-group.dvc-epure::before { content: "Version épurée uniquement"; }
.editor-styles-wrapper .wp-block-group.dvc-mid::before { content: "Version essentielle uniquement"; }

/* ---------- Modules complémentaires (bouton « Modules », Alt+M) ---------- */
/* <html data-mods="note avis …"> : liste des modules affichés (interrupteurs du sélecteur). Sans l'attribut (éditeur) : tout visible. */
html[data-mods]:not([data-mods~="note"]) .dvc-mod-note,
html[data-mods]:not([data-mods~="avis"]) .dvc-mod-avis,
html[data-mods]:not([data-mods~="rdv"]) .dvc-mod-rdv,
html[data-mods]:not([data-mods~="news"]) .dvc-mod-news,
html[data-mods]:not([data-mods~="pdf"]) .dvc-mod-pdf,
html[data-mods]:not([data-mods~="insta"]) .dvc-mod-insta,
html[data-mods]:not([data-mods~="news"]):not([data-mods~="pdf"]):not([data-mods~="insta"]) .dvc-footmods { display: none !important; }
.dvc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dvc-module-tag {
  display: inline-block; margin: 0 0 .75rem !important; padding: .1rem .65rem; border: 1px solid currentColor; border-radius: 999px;
  font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
}
.dvc-gbadge-wrap { margin-top: 1.25rem !important; }
.dvc-gbadge {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding: .45rem .95rem; border-radius: 999px;
  border: 1px solid color-mix(in srgb, currentColor 35%, transparent); color: inherit; text-decoration: none; font-size: .95rem;
}
.dvc-gbadge:hover { border-color: currentColor; }
.dvc-gbadge:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.dvc-stars, .dvc-avis-stars { color: var(--c-accent); letter-spacing: .12em; }
.dvc-tag-ex { font-size: .8rem; font-style: italic; }
body .dvc-avis.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: var(--gap); margin-block: 1.5rem; }
.dvc-avis-card { display: flex; flex-direction: column; gap: .6rem; }
.dvc-avis-card > * { margin: 0 !important; }
.dvc-avis-txt { font-style: italic; }
.dvc-avis-who { margin-top: auto !important; font-size: .875rem; color: var(--c-text-muted); }
.dvc-rdv { margin-top: 1.5rem !important; }
.dvc-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 1rem 0; }
.dvc-slot-day { display: flex; flex-direction: column; gap: .4rem; text-align: center; font-size: .9rem; }
.dvc-slot-day span { padding: .35rem .25rem; border: 1px solid var(--c-primary); border-radius: 8px; color: var(--c-primary); }
.dvc-slot-day:first-child span:first-of-type { background: var(--c-primary); color: var(--c-on-primary); }
body .dvc-footmods.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: var(--gap); margin-bottom: 2.5rem; }
.dvc-footmods .dvc-card { display: flex; flex-direction: column; }
.dvc-footmods .dvc-card > .wp-block-buttons { margin-top: auto; }
.dvc-news-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; }
.dvc-news-form .dvc-field { flex: 1 1 180px; margin: 0; }
.dvc-news-form .dvc-form-ok { flex-basis: 100%; }
.editor-styles-wrapper .dvc-module { outline: 2px dashed color-mix(in srgb, var(--c-highlight) 80%, var(--c-ink)); outline-offset: 4px; }

/* ---------- Pages légales ---------- */
.dvc-todo { background: var(--c-highlight-soft); color: inherit; padding: 0 .25em; border-radius: 3px; font-weight: 600; }
.dvc-provisoire { padding: .8rem 1rem; border-left: 4px solid var(--c-accent); background: var(--c-surface-alt); }
.dvc-maj { font-size: .875rem; color: var(--c-text-muted); }
