/* Polices auto-hébergées (sous-ensemble latin). Les fichiers sont déposés à côté de cette feuille. */
@font-face{
  font-family:'Shrikhand';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(../fonts/shrikhand.woff2) format('woff2');
}
@font-face{
  font-family:'Rethink Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url(../fonts/rethink-sans.woff2) format('woff2');
}

/*
Theme Name: Drive de Marius — la cagette du mois
Theme URI: https://drivedemarius.fr/
Author: Drive de Marius
Description: Thème code pur de drivedemarius.fr. Idée : la cagette du mois — produits vus du dessus, étiquette de cagette qui sert de moteur de recherche, réglette des 12 mois en signature, pastille ronde du mois. Bleu de travail, potimarron, vert fane, paille, lin. Shrikhand + Rethink Sans.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dm-cagette
*/

/* ===================== Jetons de design (mode clair uniquement, décision du chantier) ===================== */
:root{
  color-scheme: light;

  --dm-blanc:#ffffff;
  --dm-lin:#f5eedd;
  --dm-lin-fonce:#e9dfc6;
  --dm-encre:#16295a;
  --dm-bleu:#2b4f94;
  --dm-poti:#df621c;
  --dm-poti-fonce:#b84c10;
  --dm-fane:#3b6a33;
  --dm-fane-clair:#e6efe2;
  --dm-paille:#f4d47c;
  --dm-gris:#5b6680;
  --dm-filet:#dfe4ee;
  --dm-champ:#d5dbe8;
  --dm-texte-doux:#34446b;

  --dm-r-carte:18px;
  --dm-r-photo:22px;
  --dm-r-bouton:999px;
  --dm-ombre:0 18px 40px -18px rgba(22,41,90,.45);
  --dm-ombre-douce:0 8px 24px -14px rgba(22,41,90,.35);

  --dm-titre:'Shrikhand',Georgia,'Times New Roman',serif;
  --dm-texte:'Rethink Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --dm-large:1240px;
  --dm-entete-h:76px;

  /* Variables lues par les blocs figés (article, rail, sommaire, encadrés, FAQ, auteur, pied) */
  --sb-conteneur:1240px;
  --sb-lecture:760px;
  --sb-rail:340px;
  --sb-gouttiere:28px;
  --sb-accent:#b84c10;
  --sb-accent-clair:#f4d47c;
  --sb-encre:#16295a;
  --sb-doux:#5b6680;
  --sb-filet:#dfe4ee;
  --sb-fond-carte:#ffffff;
  --sb-surf:#f5eedd;
  --sb-rayon:18px;
  --sb-rayon-grand:22px;
  --sb-ombre:0 8px 24px -14px rgba(22,41,90,.35);
  --sb-ombre-forte:0 18px 40px -18px rgba(22,41,90,.45);
  --sb-fonce:#16295a;
  --sb-sur-fonce:#ffffff;
  --sb-titre:'Rethink Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --sb-texte:'Rethink Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ===================== Base ===================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--dm-texte);font-size:17px;line-height:1.6;color:var(--dm-encre);background:var(--dm-blanc);text-rendering:optimizeLegibility}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:var(--dm-bleu)}
p{margin:0}
:focus-visible{outline:3px solid var(--dm-poti);outline-offset:3px}

/*
 * BLOC FIGÉ — ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-article*` /
 * `.cdw-fil-ariane` / `.cdw-a-lire` / `.cdw-carte*` (renommées `.sbt-*` ici).
 * Couleurs/polices/espacements uniquement en `var(--sb-*, repli)` : un site neuf peut
 * utiliser ce fichier tel quel sans avoir encore défini ses propres variables.
 *
 * INTERDIT DE MODIFIER : voir single-article.php (un seul <article>, « à lire aussi »
 * en <div>). LIBRE DE MODIFIER : toutes les valeurs des var() ci-dessous.
 */

.sbt-conteneur{ max-width: var(--sb-conteneur, 1240px); margin-inline: auto; padding-inline: var(--sb-gouttiere, 24px); }

.sbt-fil-ariane{ font-size: .8125rem; color: var(--sb-doux, #55607a); display: flex; gap: 6px; flex-wrap: wrap; padding-block: 16px; }
.sbt-fil-ariane a{ color: var(--sb-doux, #55607a); text-decoration: none; }
.sbt-fil-ariane a:hover{ color: var(--sb-encre, #0f172a); }

.sbt-article-entete{ max-width: var(--sb-lecture, 720px); margin-inline: auto; padding-block: 8px 24px; }
.sbt-article-pastille{
	display: inline-block; background: var(--sb-surf, #f4f5fa); color: var(--sb-encre, #0f172a);
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	text-transform: uppercase; letter-spacing: .04em; padding: 6px 12px; border-radius: 999px; margin-bottom: 16px;
	text-decoration: none;
}
.sbt-article-entete h1{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); line-height: 1.15; margin: 0; }
.sbt-article-chapo{ font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); font-style: italic; font-size: clamp(1.0625rem,1rem + .3vw,1.3125rem); color: var(--sb-doux, #55607a); margin-top: 16px; }
.sbt-article-meta{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 20px; font-size: .875rem; color: var(--sb-doux, #55607a); }
.sbt-article-meta img{ width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.sbt-article-meta-auteur{ color: inherit; font-weight: 600; text-decoration: none; }

.sbt-article-une{ max-width: var(--sb-conteneur, 1240px); margin: 28px auto 32px; padding-inline: var(--sb-gouttiere, 24px); }
.sbt-article-une-cadre{ aspect-ratio: 2.4 / 1; max-height: min(520px, 46vh); overflow: hidden; /* 01/10 : à 1440×900 le texte passait sous la ligne de flottaison (B-ART-09) */ border-radius: var(--sb-rayon, 14px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-article-une-cadre img{ width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px){ .sbt-article-une-cadre{ aspect-ratio: auto; height: 220px; max-height: 220px; } }

/* Grille corps + rail — align-items:start obligatoire pour que le rail sticky
   (cf. partial-sidebar.css) tienne sur toute la hauteur du contenu. */
.sbt-article-mise-en-page{
	display: grid; grid-template-columns: minmax(0, var(--sb-lecture, 720px)) var(--sb-rail, 340px);
	column-gap: var(--sb-gouttiere, 24px); row-gap: var(--sb-gouttiere, 24px);
	max-width: var(--sb-conteneur, 1240px); margin-inline: auto;
	padding: 32px var(--sb-gouttiere, 24px) 64px; align-items: start; justify-content: center;
}
@media (max-width: 1080px){ .sbt-article-mise-en-page{ grid-template-columns: minmax(0,1fr); } .sbt-article-principal, .sbt-rail{ min-width: 0; } }
.sbt-article-mise-en-page--suite{ padding-top: 0; }

.sbt-article-corps{ font-size: 1.0625rem; line-height: 1.7; color: var(--sb-encre, #0f172a); font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); }
.sbt-article-corps h2{ margin-top: 2.2em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps h3{ margin-top: 1.8em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps p{ margin-bottom: 1.3em; }
.sbt-article-corps img{ border-radius: var(--sb-rayon, 14px); margin-block: 1.6em; width: 100%; height: auto; }
.sbt-article-corps blockquote{
	margin: 1.8em 0; padding: 18px 24px; border-left: 4px solid var(--sb-accent, #2563eb);
	background: var(--sb-surf, #f4f5fa); border-radius: 8px; font-style: italic;
}

/* Sommaire replié en accordéon sur mobile uniquement (en desktop, il vit dans le rail —
   cf. partial-sidebar.php / partial-sommaire.php). */
.sbt-sommaire-mobile{ display: none; }
@media (max-width: 1080px){ .sbt-sommaire-mobile{ display: block; margin-bottom: 24px; } }
/* 01/10/2026 (baliturismo, juge visuel) : sous 1080px le rail passe SOUS l'article ; sa carte sommaire
   faisait doublon avec le sommaire mobile de tête (erreur n°6 « sommaire en double »). */
@media (max-width: 1080px){ .sbt-rail-carte--sommaire{ display: none; } }

/* « À lire aussi » (toujours un <div>, jamais un <article> — cf. single-article.php) */
.sbt-a-lire{ margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-kicker{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .9375rem; font-weight: 700; margin-bottom: 12px; }
.sbt-grille{ display: grid; gap: var(--sb-gouttiere, 24px); }
.sbt-grille--3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 760px){ .sbt-grille--3{ grid-template-columns: 1fr; } }
.sbt-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); overflow: hidden; box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-carte:hover{ transform: translateY(-4px); box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); }
.sbt-carte a{ display: block; color: inherit; text-decoration: none; }
.sbt-carte img{ width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.sbt-carte-corps{ padding: 18px; }
.sbt-carte-corps h3{ margin: 0; font-size: 1.0625rem; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }

.sbt-article-commentaires{ margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--sb-filet, #e2e5ef); }

/* 01/10 (accessoiriste.net) : un seul sommaire visible par largeur — la carte du rail se masque quand l'accordéon mobile s'affiche. */
@media (max-width: 1080px){ .sbt-rail-carte--sommaire{ display: none; } }
/* 05/10 (operations-digestives, juge visuel) : sous-titres collés au paragraphe suivant (marge basse 0 px mesurée) */
.sbt-article-corps h2{ margin-bottom: .6em; }
.sbt-article-corps h3{ margin-bottom: .45em; }

/*
 * BLOC FIGÉ — BARRE LATÉRALE D'ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-rail` / `.cdw-rail-carte`
 * (lignes ~854-861, renommées `.sbt-rail*` ici) — commentaire garde-fou d'origine
 * CONSERVÉ TEL QUEL ci-dessous (règle la plus importante de ce bloc).
 *
 * Inspiration secondaire documentée (pas copiée en entier) : amatauto.fr fait basculer
 * sa colonne latérale en bloc STATIQUE empilé sous le texte à partir de 1100px
 * (assets/css/v2.css, `.a2-art__cote { position: sticky; ... }` +
 * `@media (max-width: 1100px) { .a2-art__cote { position: static; } }`) — repris ici en
 * option mobile (media query 1080px, cohérente avec le point de rupture de
 * `.sbt-article-mise-en-page` dans single-article.css).
 */

/* Rail sticky — collé à la colonne de texte, séparation par un filet interne, jamais un
   gap blanc entre les deux colonnes. */
.sbt-rail{
	position: sticky; top: 96px; align-self: start;
	display: flex; flex-direction: column; gap: 20px;
	border-left: 1px solid var(--sb-filet, #e2e5ef); padding-left: 20px;
}
/* ⛔ GARDE-FOU (conservé tel quel depuis curieux-du-web.com, retour Mathias ×3) : jamais
   de overflow-y ni de max-height ici — la colonne reste collante et accompagne TOUTE la
   lecture de l'article jusqu'en bas, sans sa propre barre de défilement interne. */
.sbt-rail-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); padding: 18px;
}
.sbt-rail-carte .sbt-t4, .sbt-rail-carte h4{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .875rem;
	text-transform: uppercase; letter-spacing: .04em; color: var(--sb-doux, #55607a); margin: 0 0 10px;
}

/* Option mobile (inspirée d'amatauto.fr, cf. en-tête) : sous 1080px, la grille parente
   passe déjà en une colonne (cf. .sbt-article-mise-en-page dans single-article.css) — le
   rail redevient donc naturellement un bloc statique empilé sous le texte. */
@media (max-width: 1080px){
	.sbt-rail{ position: static; border-left: 0; padding-left: 0; border-top: 1px solid var(--sb-filet, #e2e5ef); padding-top: 20px; }
}

/* Sommaire tel qu'affiché dans le rail (cf. partial-sommaire.css pour le détail des
   classes `.sbt-sommaire*`) : pas de style supplémentaire ici, la carte du rail suffit. */

/*
 * BLOC FIGÉ — SOMMAIRE (thématique) — CSS
 * CSS volontairement simple (voir partial-sommaire.php : la robustesse de ce bloc est
 * dans le PHP — ids séquentiels, exclusion FAQ/Sources, seuil de 3 titres — pas dans son
 * habillage). Inspiré du rendu `<details>` natif de health-nutrition-cambrai.fr
 * (« Bien Vivre Santé »), classes renommées `.sbt-sommaire*`.
 */

.sbt-sommaire{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-left: 4px solid var(--sb-accent, #2563eb); border-radius: var(--sb-rayon, 14px);
	padding: 16px 20px;
}
.sbt-sommaire-titre{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700;
	font-size: .9375rem; cursor: pointer; list-style: none;
}
.sbt-sommaire-titre::-webkit-details-marker{ display: none; }
.sbt-sommaire ol{ list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-sommaire li a{
	display: flex; align-items: baseline; gap: 10px; font-size: .9375rem;
	color: var(--sb-encre, #0f172a); text-decoration: none;
}
.sbt-sommaire li a:hover{ color: var(--sb-accent, #2563eb); text-decoration: underline; }
.sbt-sommaire-num{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	color: var(--sb-encre, #0f172a); background: var(--sb-surf, #f4f5fa); border-radius: 50%;
	width: 20px; height: 20px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}

/*
 * BLOC FIGÉ — ENCADRÉS « LE SAVIEZ-VOUS » / « POINTS À RETENIR » (thématique) — CSS
 * Origine : amatauto.fr, assets/css/v2.css, règles `.amat-encadre--retenir` / `.a2-saviez`
 * (renommées `.sbt-encadre--retenir` / `.sbt-encadre--saviez` ici). Habillage simplifié
 * (gradients/decorations ::before retirés pour rester générique et léger), la structure
 * (grille icône + texte pour « le saviez-vous », liste à puces pour « points à retenir »)
 * est conservée.
 */

.sbt-encadre{ margin-block: 2em; border-radius: var(--sb-rayon-grand, 22px); }

.sbt-encadre-titre{
	margin: 0 0 12px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif);
	font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em;
}

/* « Points à retenir » — fond foncé, liste à puces check. */
.sbt-encadre--retenir{
	background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff);
	padding: 28px 30px;
}
.sbt-encadre--retenir .sbt-encadre-titre{ color: var(--sb-accent-clair, #93c5fd); }
.sbt-retenir-liste{ list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sbt-retenir-liste li{
	position: relative; padding-left: 32px; font-size: 1rem; line-height: 1.55;
}
.sbt-retenir-liste li::before{
	content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; border-radius: 50%;
	background: var(--sb-accent, #2563eb)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}

/* « Le saviez-vous ? » — encadré clair, icône ampoule. */
.sbt-encadre--saviez{
	display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start;
	padding: 22px 24px; background: var(--sb-surf, #f4f5fa);
}
.sbt-encadre--saviez::before{
	content: "?"; grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 14px;
	background: var(--sb-accent, #2563eb); color: #fff; display: flex; align-items: center; justify-content: center;
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.375rem;
}
.sbt-encadre--saviez .sbt-encadre-titre{ grid-column: 2; margin: 0; color: var(--sb-encre, #0f172a); }
.sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 2; margin: 0; font-size: 1rem; line-height: 1.6; color: var(--sb-encre, #0f172a); }

@media (max-width: 620px){
	.sbt-encadre--saviez{ grid-template-columns: 1fr; }
	.sbt-encadre--saviez::before{ grid-row: 1; }
	.sbt-encadre--saviez .sbt-encadre-titre, .sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 1; }
}
/* 04/10/2026 (invalidcast.com) : la règle de liste du corps d'article écrasait le retrait → la coche mangeait la 1re lettre. */
.sbt-article-corps .sbt-retenir-liste{ padding: 0; margin: 0; list-style: none; }
.sbt-article-corps .sbt-retenir-liste li{ padding-left: 34px; margin: 0; text-indent: 0; }

/*
 * BLOC FIGÉ — FAQ EN ACCORDÉON (thématique) — CSS
 * Visuel inspiré du rendu RÉEL de solutionminceur.fr, classes `.smr-faq*` récupérées par
 * un unique curl en lecture seule sur
 * `https://solutionminceur.fr/wp-content/themes/solutionminceur-v2/roxane.css`
 * (fichier CSS distant, absent du mirroir local du chantier — ce curl a RÉUSSI, voir
 * README). Classes renommées `.sbt-faq*` ici, variables de couleur remplacées par des
 * `var(--sb-*, repli)` génériques.
 *
 * Mécanisme accordéon (natif <details>/<summary>, sans JS) : cf. partial-faq.php, origine
 * health-nutrition-cambrai.fr.
 */

.sbt-faq{ margin: 56px 0; padding: 30px; border-radius: var(--sb-rayon-grand, 22px); background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-faq-liste{ display: grid; gap: 10px; }
.sbt-faq-liste details{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef) !important;
	border-radius: 14px; padding: 0 !important; transition: box-shadow .25s ease, border-color .25s ease;
}
.sbt-faq-liste details[open]{ box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); border-color: var(--sb-accent, #2563eb) !important; }
.sbt-faq-liste summary{
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
	gap: 18px; padding: 18px 20px; font-size: 1.03rem; font-weight: 600; line-height: 1.45; color: var(--sb-encre, #0f172a);
}
.sbt-faq-liste summary::-webkit-details-marker{ display: none; }
.sbt-faq-liste summary::after{
	content: ""; width: 30px; height: 30px; flex: none; border-radius: 50%;
	background: var(--sb-surf, #f4f5fa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 15px no-repeat;
	transition: transform .3s ease;
}
.sbt-faq-liste details[open] summary::after{ transform: rotate(135deg); }
.sbt-faq-liste summary:hover{ color: var(--sb-accent, #2563eb); }
.sbt-faq-reponse{ padding: 0 20px 18px; font-size: .96875rem; line-height: 1.75; color: var(--sb-doux, #55607a); }
.sbt-faq-reponse p{ margin: 0 0 14px; }
.sbt-faq-reponse p:last-child{ margin-bottom: 0; }

@media (max-width: 760px){
	.sbt-faq{ padding: 20px; }
}

/*
 * BLOC FIGÉ — SIGNATURE / BOÎTE AUTEUR (thématique) — CSS
 * Visuel inspiré du rendu RÉEL de solutionminceur.fr, classes `.smr-auteur*` récupérées
 * par le même curl en lecture seule que partial-faq.css (roxane.css, voir README).
 * Classes renommées `.sbt-auteur*` ici, variables de couleur remplacées par des
 * `var(--sb-*, repli)` génériques.
 */

.sbt-auteur{
	display: grid; grid-template-columns: 120px 1fr; gap: 26px; margin: 54px 0 10px;
	padding: 30px; border-radius: var(--sb-rayon-grand, 22px);
	background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef);
}
.sbt-auteur-photo img{
	width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
	box-shadow: 0 0 0 5px var(--sb-fond-carte, #ffffff), var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
}
.sbt-auteur-sur{ margin: 0 0 2px; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sb-doux, #55607a); }
.sbt-auteur-nom{ font-size: 1.5rem; margin: 0 0 4px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-auteur-nom a{ color: var(--sb-encre, #0f172a); text-decoration: none; }
.sbt-auteur-nom a:hover{ text-decoration: underline; }
.sbt-auteur-role{ margin: 0 0 12px; font-size: .8125rem; font-weight: 600; color: var(--sb-accent, #2563eb); text-transform: uppercase; letter-spacing: .05em; }
.sbt-auteur-bio{ font-size: .96875rem; line-height: 1.7; color: var(--sb-encre, #0f172a); margin: 0 0 16px; }
.sbt-auteur-chiffres{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.sbt-auteur-chiffres span{ background: var(--sb-fond-carte, #ffffff); border-radius: 12px; padding: 8px 12px; font-size: .78125rem; color: var(--sb-doux, #55607a); }
.sbt-auteur-chiffres b{ color: var(--sb-encre, #0f172a); margin-right: 4px; }
.sbt-auteur-der{ margin-bottom: 18px; }
.sbt-auteur-der p{ margin: 0 0 6px; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sb-doux, #55607a); }
.sbt-auteur-der a{ display: block; font-size: .9375rem; font-weight: 500; padding: 6px 0; color: var(--sb-encre, #0f172a); text-decoration: none; border-bottom: 1px dashed var(--sb-filet, #e2e5ef); }
.sbt-auteur-der a:hover{ color: var(--sb-accent, #2563eb); }
.sbt-auteur-actions{ display: flex; flex-wrap: wrap; gap: 10px; }
.sbt-auteur-actions .sbt-btn{
	display: inline-block; padding: 10px 18px; border-radius: 999px; font-size: .875rem; font-weight: 600;
	text-decoration: none; background: var(--sb-accent, #2563eb); color: #fff;
}
.sbt-auteur-actions .sbt-btn--fantome{ background: transparent; border: 1.5px solid var(--sb-filet, #e2e5ef); color: var(--sb-encre, #0f172a); }

@media (max-width: 700px){
	.sbt-auteur{ grid-template-columns: 1fr; padding: 22px; }
	.sbt-auteur-photo img{ width: 88px; height: 88px; }
}

/*
 * BLOC FIGÉ — PIED DE PAGE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-footer*` / `.cdw-cookies*` /
 * `.cdw-popup-sortie*` / `.cdw-btn*` (renommées `.sbt-footer*` / `.sbt-cookies*` /
 * `.sbt-popup-sortie*` / `.sbt-btn*` ici).
 */

.sbt-btn{
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 24px; border-radius: 999px; font-weight: 700; font-size: 1rem;
	background: var(--sb-accent, #2563eb); color: #fff; text-decoration: none; border: 0; cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-btn:hover{ transform: translateY(-2px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-btn--petit{ padding: 10px 18px; font-size: .875rem; }
.sbt-btn--fantome{ background: transparent; border: 1.5px solid rgba(255,255,255,.5); color: inherit; }

.sbt-footer{ background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff); padding-block: clamp(40px,6vw,64px) 24px; }
.sbt-footer a{ color: #c4c7e4; text-decoration: none; }
.sbt-footer a:hover{ color: #fff; }
.sbt-footer a.sbt-btn, .sbt-footer a.sbt-btn:hover{ color: #fff; } /* 10/10/2026 (blueau.fr) : « .sbt-footer a » battait la couleur du bouton (texte gris sur accent, 4,25:1) */

.sbt-footer-cta{
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	padding: 24px 28px; margin-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12);
}
@media (max-width: 600px){ .sbt-footer-cta{ padding: 20px; } } /* 04/10/2026 (invalidcast.com) : texte collé au bord dès qu'un thème donne un fond de carte au bandeau */
.sbt-footer-cta .sbt-t3{ color: #fff; margin: 0 0 4px; font-size: 1.25rem; }
.sbt-footer-cta p{ color: #a9acd0; margin: 0; max-width: 46ch; }

.sbt-footer-grille{ display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12); }
@media (max-width: 980px){ .sbt-footer-grille{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .sbt-footer-grille{ grid-template-columns: 1fr; } }
.sbt-footer-colonne .sbt-t4{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: #8b8fb5; margin: 0 0 14px; }
.sbt-footer-colonne ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-footer-colonne ul a{ font-size: .875rem; }
.sbt-footer-logo{ display: block; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.125rem; color: #fff; margin-bottom: 14px; }
.sbt-footer-desc{ color: #a9acd0; font-size: .9375rem; margin: 0; max-width: 32ch; }
.sbt-footer-contact{ display: flex; flex-direction: column; gap: 8px; font-size: .875rem; }

.sbt-footer-bas{ padding-top: 20px; font-size: .8125rem; color: #8b8fb5; }

/* Bandeau cookies — deux boutons de MÊME poids (même classe .sbt-btn/.sbt-btn--petit),
   jamais un seul « J'ai compris » qui vaudrait acceptation forcée. */
.sbt-cookies{
	position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 80;
	background: var(--sb-fonce, #141733); color: #fff; border-radius: 12px;
	padding: 10px 14px; display: none; align-items: center; gap: 12px;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 64px; overflow: hidden;
}
.sbt-cookies.est-visible{ display: flex; }
.sbt-cookies p{ margin: 0; flex: 1; min-width: 0; font-size: .75rem; line-height: 1.3; }
.sbt-cookies-actions{ display: flex; gap: 8px; flex-shrink: 0; }
.sbt-cookies .sbt-btn{ flex-shrink: 0; padding: 8px 14px; min-height: 32px; font-size: .8125rem; }

/* Popup de sortie — jamais de colonne image vide : si pas d'image, la boîte bascule sur
   une seule colonne (cf. .sbt-popup-sortie-boite--sans-image). */
.sbt-popup-sortie{ position: fixed; inset: 0; z-index: 90; display: none; align-items: center; justify-content: center; padding: 20px; }
.sbt-popup-sortie.est-ouvert{ display: flex; }
.sbt-popup-sortie-fond{ position: absolute; inset: 0; background: rgba(15,23,42,.7); }
.sbt-popup-sortie-boite{
	position: relative; z-index: 1; background: var(--sb-fond-carte, #ffffff); border-radius: var(--sb-rayon, 14px);
	max-width: 720px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 90vh;
}
.sbt-popup-sortie-boite--sans-image{ grid-template-columns: 1fr; max-width: 480px; }
@media (max-width: 640px){ .sbt-popup-sortie-boite{ grid-template-columns: 1fr; max-height: 85vh; overflow-y: auto; } }
.sbt-popup-sortie-image{ min-height: 220px; }
.sbt-popup-sortie-image img{ width: 100%; height: 100%; object-fit: cover; }
.sbt-popup-sortie-texte{ padding: 28px; color: var(--sb-encre, #0f172a); }
.sbt-popup-sortie-fermer{
	position: absolute; top: 12px; right: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 50%;
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.sbt-popup-sortie-fermer svg{ width: 20px; height: 20px; }

/*
 * Drive de Marius — feuille unique du thème dm-cagette (assemblée dans tout.css après fonts.css, style.css et les blocs figés).
 * Idée : la cagette du mois. Mode clair uniquement (décision du chantier). Contrastes texte ≥ 4,5:1.
 * Sommaire : 1 base · 2 en-tête · 3 boutons et champs · 4 accueil · 5 réglette et produits · 6 mosaïque, villes, guides, producteurs, lettre ·
 * 7 pied · 8 composant « Trouver mon panier » · 9 page ville · 10 agenda, points, carte · 11 accordéons · 12 en-têtes de page ·
 * 13 pilier, hubs · 14 calendrier, mois · 15 article, rail, rubriques · 16 annexes · 17 infographies du socle · 18 adaptations mobiles.
 */

/* ===================== 1. Base ===================== */
:root{
  --dm-poti-btn:#c4510f;      /* potimarron lisible sous du texte blanc (4,6:1) */
  --dm-poti-btn-fonce:#a8430b;
}
html{scroll-padding-top:96px}
body{display:flex;flex-direction:column;min-height:100vh}
.dm-main{flex:1 0 auto;display:block}
[hidden]{display:none!important}
h1,h2,h3,h4{margin:0;font-weight:400;line-height:1.1;color:var(--dm-encre)}
h1,h2{font-family:var(--dm-titre);letter-spacing:0}
h2{font-size:clamp(30px,3.2vw,44px)}
h3{font-family:var(--dm-texte);font-weight:700;font-size:21px;line-height:1.25}
.dm-conteneur{max-width:var(--dm-large);margin:0 auto;padding:0 28px}
.dm-sr,.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dm-evitement{position:absolute;left:12px;top:-60px;z-index:100;background:var(--dm-encre);color:#fff;padding:12px 18px;border-radius:0 0 12px 12px;text-decoration:none;font-weight:700}
.dm-evitement:focus{top:0}
.nw{white-space:nowrap}
.dm-doux{color:var(--dm-gris);margin-top:12px;max-width:50ch}
.dm-source{font-size:13px;color:var(--dm-gris);line-height:1.4}
.dm-source--bas{margin-top:22px}
.dm-picto{width:22px;height:22px;flex:none}
.dm-js .dm-cache{display:none}

/* ===================== 2. En-tête ===================== */
.dm-entete{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--dm-filet);transition:box-shadow .2s}
.dm-entete.defile{box-shadow:0 8px 24px -16px rgba(22,41,90,.45)}
.dm-entete-in{display:flex;align-items:center;gap:34px;height:var(--dm-entete-h)}
.dm-logo{display:flex;align-items:center;text-decoration:none;color:var(--dm-encre)}
.dm-logo-in{display:flex;align-items:center;gap:10px}
.dm-logo-img{width:44px;height:36px;flex:none}
.dm-logo-nom{font-family:var(--dm-titre);font-size:25px;line-height:1;color:var(--dm-encre)}
.dm-nav{display:flex;align-items:center;gap:26px;margin-left:auto}
.dm-nav-liste{display:flex;gap:26px;margin:0;padding:0;list-style:none}
.dm-nav-liste a{display:block;color:var(--dm-encre);text-decoration:none;font-weight:600;font-size:16px;padding:8px 0;border-bottom:3px solid transparent}
.dm-nav-liste a:hover{color:var(--dm-poti-btn)}
.dm-nav-item.est-actif a{border-bottom-color:var(--dm-poti)}
.dm-burger{display:none}

/* ===================== 3. Boutons et champs ===================== */
.dm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:700 17px/1 var(--dm-texte);white-space:nowrap;
  background:var(--dm-poti-btn);color:#fff;text-decoration:none;padding:17px 28px;border-radius:var(--dm-r-bouton);min-height:54px;transition:background .2s,transform .2s}
.dm-btn:hover{background:var(--dm-poti-btn-fonce);transform:translateY(-1px)}
.dm-btn:disabled{opacity:.6;cursor:wait;transform:none}
.dm-btn--petit{min-height:48px;padding:12px 22px;font-size:16px}
.dm-btn--marge{margin-top:26px}
.dm-lien-plus{display:inline-block;font-weight:700;text-decoration:none;white-space:nowrap;border-bottom:2px solid var(--dm-poti);color:var(--dm-encre);padding-bottom:2px}
.dm-lien-plus:hover{color:var(--dm-poti-btn-fonce)}
.dm-lien-plus--bloc{margin-top:12px}
.dm-lien-clair{color:#fff;font-weight:700;text-decoration:none;border-bottom:2px solid var(--dm-paille);padding-bottom:2px}
.dm-lien-retour{background:none;border:0;padding:10px 4px;min-height:44px;color:var(--dm-bleu);font:700 15px var(--dm-texte);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dm-champ{width:100%;font:500 17px var(--dm-texte);color:var(--dm-encre);border:2px solid var(--dm-champ);border-radius:12px;padding:12px 14px;min-height:52px;background:#fff}
.dm-champ:focus{border-color:var(--dm-bleu);outline:none;box-shadow:0 0 0 3px rgba(43,79,148,.18)}
select.dm-champ{appearance:none;-webkit-appearance:none;padding-right:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316295a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center/16px no-repeat}
.dm-champ--zone{min-height:160px;resize:vertical;line-height:1.5}
.dm-label{display:block;font-size:14px;font-weight:700;color:var(--dm-gris);margin:0 0 6px}
.dm-label span{font-weight:500}
.dm-case{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.4;color:var(--dm-texte-doux);cursor:pointer}
.dm-case input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--dm-poti-btn)}
.dm-case a{color:var(--dm-bleu)}
.dm-form-msg{font-size:14px;font-weight:600;color:#a32d0a;min-height:0}
.dm-form-msg:empty{display:none}
.dm-form-msg.est-ok{color:var(--dm-fane)}
.dm-form-envoye{background:var(--dm-fane-clair);border-radius:14px;padding:16px 18px;color:var(--dm-fane);font-weight:600}

/* ===================== 4. Accueil : premier écran ===================== */
.dm-hero{position:relative;background:var(--dm-lin);overflow:hidden;--col:calc(max(0px,(100vw - var(--dm-large))/2) + 640px)}
.dm-hero-grille{display:grid;grid-template-columns:var(--col) minmax(0,1fr);min-height:640px;max-height:700px}
.dm-hero-texte{padding:56px 96px 56px max(28px,calc((100vw - var(--dm-large))/2 + 28px));position:relative;z-index:3;display:flex;flex-direction:column;justify-content:center}
.dm-hero h1{font-size:clamp(46px,4.4vw,74px);line-height:1.04;letter-spacing:-.5px}
.dm-hero h1 em{font-style:normal;color:var(--dm-poti-btn)}
.dm-chapo{font-size:19px;color:var(--dm-texte-doux);max-width:60ch;margin:16px 0 0}
.dm-hero .dm-chapo{max-width:44ch;margin-top:20px}
.dm-preuves{display:flex;gap:28px;margin:26px 0 0;padding:0;list-style:none}
.dm-preuves li{font-size:15px;color:var(--dm-gris);line-height:1.35}
.dm-preuves b{display:block;font-size:28px;color:var(--dm-encre);font-weight:800;letter-spacing:-.5px;font-family:var(--dm-texte)}
.dm-hero-photo{position:relative}
.dm-hero-photo > img,.dm-hero-photo picture,.dm-hero-photo > .dm-repli{position:absolute;inset:0;width:100%;height:100%}
.dm-hero-photo img{width:100%;height:100%;object-fit:cover;border-radius:0 0 0 120px}
.dm-hero-photo > .dm-repli{border-radius:0 0 0 120px}
.dm-pastille{position:absolute;z-index:4;top:46px;right:8%;width:156px;height:156px;border-radius:50%;background:var(--dm-paille);color:var(--dm-encre);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--dm-ombre-douce);transform:rotate(-8deg);
  border:3px dashed rgba(22,41,90,.35);outline:8px solid var(--dm-paille)}
.dm-pastille b{font:800 44px/1 var(--dm-texte);letter-spacing:-1px}
.dm-pastille span{font-size:14px;font-weight:700;line-height:1.2;max-width:11ch;text-wrap:balance}
.dm-pastille--mois{position:static;flex:none;top:auto;right:auto}

/* l'étiquette de cagette : la carte d'action qui chevauche la photo */
.dm-form--hero{position:absolute;z-index:4;left:calc(var(--col) - 70px);bottom:56px;width:420px;background:#fff;border-radius:var(--dm-r-carte);box-shadow:var(--dm-ombre);overflow:hidden}
.dm-bandeau{background:var(--dm-bleu);color:#fff;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700}
.dm-bandeau small{font-weight:500;font-size:14px;color:#fff}
.dm-form--hero .dm-form-etape{padding:20px 22px 22px;gap:14px}
.dm-form--hero .dm-form-etape.est-active{display:grid}
.dm-form--hero .dm-btn{width:100%}
.dm-form--hero .dm-champ-bloc,.dm-form--hero .dm-form-etape > *{min-width:0}
.dm-pilules--types{gap:8px}

/* ===================== 5. Réglette des 12 mois et produits ===================== */
.dm-section{padding:56px 0}
.dm-section--lin{background:var(--dm-lin)}
.dm-section--producteurs{padding-bottom:0}
.dm-section--fin{padding-bottom:48px}
.dm-tete-section{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:26px}
.dm-tete-section p{color:var(--dm-gris);max-width:56ch;margin-top:10px}

.dm-reglette{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border:2px solid var(--dm-encre);border-radius:14px;overflow:hidden;background:#fff}
.dm-reglette > a,.dm-reglette > span{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 0 9px;text-decoration:none;color:var(--dm-encre);font-weight:700;font-size:15px;border-left:1px solid #cfd6e4;position:relative;min-height:52px}
.dm-reglette > :first-child{border-left:0}
.dm-reglette small{font-weight:500;font-size:12px;color:var(--dm-gris)}
.dm-reglette .ici{background:var(--dm-poti-btn);color:#fff}
.dm-reglette .ici small{color:#fff}
.dm-reglette a:hover:not(.ici){background:var(--dm-lin)}
.dm-reglette--geante{border-width:3px;border-radius:18px;margin-top:26px}
.dm-reglette--geante > a,.dm-reglette--geante > span{padding:18px 0 14px;font-size:28px;line-height:1;font-family:var(--dm-texte);font-weight:800}
.dm-reglette--geante small{font-size:13px;margin-top:6px}

.dm-saison{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;margin-top:26px;align-items:start}
.dm-saison--grille{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:0;align-items:stretch}
.dm-produit{display:block;background:#fff;border-radius:var(--dm-r-carte);overflow:hidden;box-shadow:var(--dm-ombre-douce);text-decoration:none;color:var(--dm-encre);transition:transform .25s}
a.dm-produit:hover{transform:translateY(-4px)}
.dm-produit-photo{display:block;position:relative;aspect-ratio:4/3;background:var(--dm-lin)}
.dm-produit-photo img,.dm-produit-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-produit-texte{display:block;padding:12px 14px 15px}
.dm-produit-nom{display:block;font-weight:700;font-size:18px;line-height:1.25}
.dm-produit-periode{display:block;font-size:13.5px;color:var(--dm-gris);margin-top:6px}
.dm-mois{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:9px}
.dm-mois i{height:6px;border-radius:2px;background:#dfe4ee}
.dm-mois i.on{background:var(--dm-fane)}
.dm-mois i.now.on{background:var(--dm-poti)}
.dm-mois i.now:not(.on){background:#fff;box-shadow:inset 0 0 0 2px var(--dm-poti)}
.dm-mois--grand{gap:3px;margin-top:0}
.dm-mois--grand i{height:14px;border-radius:4px}

img.dm-diff[data-dm-src]{background:var(--dm-lin)}

/* repli d'une photo absente : aplat bleu de travail + motif de cagette + nom en Shrikhand */
.dm-repli{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;width:100%;height:100%;min-height:90px;background:var(--dm-bleu);color:#fff}
.dm-repli-motif{position:absolute;inset:0;width:100%;height:100%}
.dm-repli-nom{position:relative;font-family:var(--dm-titre);font-size:clamp(20px,2.4vw,30px);line-height:1.1;text-align:center;padding:10px 14px;color:#fff;text-wrap:balance}

/* ===================== 6. Mosaïque, villes, guides, producteurs, lettre ===================== */
.dm-mosaique{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:200px 200px;gap:16px}
.dm-voie{position:relative;border-radius:var(--dm-r-photo);overflow:hidden;color:#fff;text-decoration:none;display:flex;align-items:flex-end;background:var(--dm-bleu)}
.dm-voie > img,.dm-voie > .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
a.dm-voie:hover > img{transform:scale(1.04)}
.dm-voie::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,41,90,0) 20%,rgba(22,41,90,.92));pointer-events:none}
.dm-voie-texte{position:relative;z-index:2;padding:22px 24px}
.dm-voie h3,.dm-voie h2{color:#fff;font-family:var(--dm-texte);font-weight:800;font-size:24px;line-height:1.2}
.dm-voie p{font-size:15px;color:#fff;margin-top:4px;max-width:36ch}
.dm-vol{position:absolute;z-index:2;top:16px;left:16px;background:#fff;color:var(--dm-encre);font-size:13px;font-weight:700;border-radius:999px;padding:6px 12px}
.dm-voie.grande{grid-row:span 2}
.dm-voie.grande h3{font-size:34px;font-family:var(--dm-titre);font-weight:400}
.dm-grille-voies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.dm-voie--haute{min-height:340px}

.dm-villes{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:44px;align-items:center}
.dm-france-fig{margin:0;max-width:520px;width:100%;background:#e3ebf6;border-radius:var(--dm-r-photo);border:6px solid #fff;box-shadow:var(--dm-ombre-douce);padding:14px 14px 8px;position:relative}
.dm-france{display:block;width:100%;height:auto;max-height:400px}
.dm-france-contour{fill:var(--dm-lin);stroke:var(--dm-encre);stroke-width:1.4;stroke-linejoin:round}
.dm-france-pt circle{fill:var(--dm-bleu);stroke:#fff;stroke-width:2.4;transition:fill .2s}
a.dm-france-pt{cursor:pointer;outline-offset:2px}
a.dm-france-pt:hover circle,a.dm-france-pt:focus circle{fill:var(--dm-poti)}
.dm-france-fig .dm-source{margin-top:6px;font-size:11.5px}
.dm-bulle{position:absolute;z-index:5;transform:translate(-50%,-100%);background:var(--dm-encre);color:#fff;font-size:13px;font-weight:700;padding:4px 10px;border-radius:8px;pointer-events:none;white-space:nowrap}
.dm-puces{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.dm-puces a,.dm-puces > span{background:#fff;border:2px solid var(--dm-champ);color:var(--dm-encre);text-decoration:none;font-weight:600;border-radius:999px;padding:8px 13px;font-size:14.5px;min-height:44px;display:inline-flex;align-items:center}
.dm-puces a:hover{border-color:var(--dm-poti)}
.dm-puces b{color:var(--dm-poti-btn-fonce);font-weight:700;margin-left:6px;font-size:13px}
.dm-puces--petites{margin-top:0}
.dm-puces--petites a{padding:7px 14px;font-size:14.5px}
.dm-puces .dm-puce-type{background:var(--dm-encre);border-color:var(--dm-encre);color:#fff}

.dm-guides{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:22px;align-items:start}
.dm-guide{display:block;text-decoration:none;color:var(--dm-encre)}
.dm-guide-photo{display:block;position:relative;border-radius:var(--dm-r-photo);aspect-ratio:16/9;overflow:hidden;background:var(--dm-lin)}
.dm-guide.une .dm-guide-photo{aspect-ratio:2/1}
.dm-guide-photo img,.dm-guide-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-rub{display:inline-block;margin:14px 0 6px;font-size:13px;font-weight:700;color:var(--dm-fane);background:var(--dm-fane-clair);border-radius:999px;padding:4px 11px}
.dm-guide h3{font-size:21px}
.dm-guide.une h3{font-family:var(--dm-titre);font-weight:400;font-size:30px;line-height:1.1}
.dm-guide p{font-size:15px;color:var(--dm-gris);margin-top:8px}
.dm-guide:hover h3{color:var(--dm-poti-btn-fonce)}

.dm-producteurs{background:var(--dm-encre);color:#fff;border-radius:28px;display:grid;grid-template-columns:1fr 1.1fr;overflow:hidden}
.dm-producteurs > img,.dm-producteurs > .dm-repli{width:100%;height:100%;object-fit:cover;min-height:340px}
.dm-producteurs-texte{padding:44px 48px;display:flex;flex-direction:column;justify-content:center}
.dm-producteurs h2{color:#fff}
.dm-producteurs p{color:#e4e9f5;margin-top:12px;max-width:46ch}
.dm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:24px}
.dm-actions--col{flex-direction:column;align-items:flex-start}

.dm-section--lettre{padding-top:56px}
.dm-lettre{background:var(--dm-paille);color:var(--dm-encre);border-radius:28px;display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden}
.dm-lettre-texte{padding:46px 48px}
.dm-lettre p{margin-top:12px;max-width:46ch}
.dm-lettre > img,.dm-lettre > .dm-repli{width:100%;height:100%;object-fit:cover;min-height:260px}
.dm-lettre-form{margin-top:22px;max-width:540px;display:grid;gap:12px}
.dm-lettre-ligne{display:flex;gap:10px}
.dm-lettre .dm-champ{border-color:var(--dm-encre)}
.dm-lettre .dm-case{color:var(--dm-encre)}
.dm-lettre .dm-case a{color:var(--dm-encre)}
.dm-lettre .dm-form-msg{color:#7a2208}

/* ===================== 7. Pied (bloc figé footer, habillé) ===================== */
.dm-pied{background:var(--dm-encre);padding:56px 0 30px;margin-top:80px}
.dm-pied.sbt-footer{background:var(--dm-encre)}
.dm-pied{position:relative}
/* l'étiquette agrafée sur la cagette : à cheval sur le haut du pied, coins coupés, filet pointillé imprimé, comme la pastille du mois */
.dm-etiquette-pied{display:flex;margin:-101px 0 40px;filter:drop-shadow(0 10px 18px rgba(22,41,90,.28))}
.dm-etiquette-carton{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px 18px;background:var(--dm-paille);color:var(--dm-encre);text-decoration:none;
  padding:20px 34px 20px 52px;transform:rotate(-1.4deg);position:relative;max-width:100%;
  clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);
  outline:2px dashed rgba(22,41,90,.42);outline-offset:-9px;transition:transform .25s}
.dm-pied a.dm-etiquette-carton,.dm-pied a.dm-etiquette-carton:hover{color:var(--dm-encre)}
.dm-etiquette-carton:hover{transform:rotate(0deg)}
.dm-etiquette-carton:focus-visible{outline:3px solid var(--dm-encre);outline-offset:-9px}
.dm-etiquette-agrafe{position:absolute;left:22px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--dm-encre);box-shadow:inset 0 0 0 4px #c9a34a}
.dm-etiquette-q{font-family:var(--dm-titre);font-size:27px;line-height:1.15}
.dm-etiquette-l{color:var(--dm-encre);font-weight:700;font-size:16px;border-bottom:2px solid var(--dm-poti-btn);padding-bottom:1px}
.dm-etiquette-carton:hover .dm-etiquette-l{color:var(--dm-poti-btn-fonce)}
.sbt-footer .sbt-btn{background:var(--dm-poti-btn)}
.dm-pied .sbt-footer-grille{grid-template-columns:1.25fr 1fr 1fr 2.4fr 1fr;gap:36px;align-items:start}
.dm-pied .dm-logo{display:inline-flex;color:#fff}
.dm-pied .dm-logo-nom{color:#fff;font-size:24px}
.dm-pied .dm-logo-img{background:#fff;border-radius:10px;padding:5px 6px;box-sizing:content-box}
.dm-pied .sbt-footer-desc{color:#dde3f2;margin-top:14px;max-width:30ch}
.dm-pied-prod{display:inline-block;margin-top:16px;font-weight:700;font-size:15px;color:#fff!important;border-bottom:2px solid var(--dm-paille)}
.dm-pied .sbt-footer-colonne .sbt-t4{font-family:var(--dm-texte);font-weight:700;color:#c9d0e6;font-size:.8125rem;margin-bottom:14px}
.dm-pied .sbt-footer-colonne a{color:#e4e9f5}
.dm-pied .sbt-footer-colonne ul a,.dm-pied .sbt-footer-colonne ul span{font-size:15px;line-height:1.5}
.dm-pied .sbt-footer-colonne ul{gap:9px}
.dm-pied ul.dm-pied-villes{display:block;columns:3;column-gap:22px}
.dm-pied ul.dm-pied-villes li{break-inside:avoid;margin:0 0 9px}
.dm-pied ul.dm-pied-villes span{color:#c9d0e6}
.dm-pied .sbt-footer-grille{border-bottom-color:#2f4478}
.dm-pied .sbt-footer-bas{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;color:#c9d0e6;font-size:14px;padding-top:20px}
.dm-pied .sbt-footer-bas a{color:#e4e9f5;text-decoration:underline}
.sbt-cookies{background:var(--dm-encre)}

/* ===================== 8. Composant « Trouver mon panier » ===================== */
.dm-form-carte{background:#fff;border-radius:var(--dm-r-carte);box-shadow:var(--dm-ombre);overflow:hidden;scroll-margin-top:96px}
.dm-form-photo{position:relative;height:118px;background:var(--dm-bleu)}
.dm-form-photo-img,.dm-form-photo > .dm-repli{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.dm-form-photo > .dm-repli{position:absolute;inset:0}
.dm-form-carte:not([data-etape="1"]) .dm-form-photo{display:none}
.dm-etiquette{position:absolute;left:18px;bottom:12px;background:#fff;color:var(--dm-encre);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;max-width:calc(100% - 36px)}
.dm-form-corps{padding:20px 22px 22px}
.dm-form-titre{font-weight:800;font-size:23px;line-height:1.2;color:var(--dm-encre)}
.dm-etapes{display:flex;gap:6px;margin:12px 0 14px}
.dm-etapes i{flex:1;height:5px;border-radius:3px;background:#dfe4ee}
.dm-etapes i.on{background:var(--dm-poti)}
.dm-form-etape{display:none}
.dm-form-etape.est-active{display:block}
.dm-q{font-weight:700;margin-bottom:10px;outline:none}
.dm-tuiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dm-tuile{font:600 15.5px/1.25 var(--dm-texte);text-align:left;color:var(--dm-encre);background:var(--dm-lin);border:2px solid transparent;border-radius:14px;padding:13px 14px;cursor:pointer;min-height:64px}
.dm-tuile small{display:block;font-weight:500;font-size:13px;color:var(--dm-gris);margin-top:2px}
.dm-tuile:hover{border-color:#e8c9ae}
.dm-tuile[aria-pressed=true]{border-color:var(--dm-poti);background:#fff3ea}
.dm-tuile--pilule{font-size:15px;border-radius:999px;padding:9px 14px;min-height:44px;text-align:center}
.dm-tuile--pilule[aria-pressed=true]{background:#fff;color:var(--dm-poti-btn-fonce)}
.dm-form-etape > .dm-btn{width:100%;margin-top:14px}
.dm-form-note{font-size:13px;color:var(--dm-gris);margin-top:10px;text-align:center}
.dm-champs{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
.dm-champ-bloc{min-width:0}
.dm-pilules{display:flex;flex-wrap:wrap;gap:6px}
.dm-pilule{font:700 14.5px var(--dm-texte);border:2px solid var(--dm-champ);background:#fff;color:var(--dm-encre);border-radius:999px;padding:8px 14px;cursor:pointer;min-height:44px;min-width:52px}
.dm-pilule[aria-pressed=true]{background:var(--dm-encre);border-color:var(--dm-encre);color:#fff}
.dm-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.dm-form-actions .dm-btn{flex:1}
.dm-form-etape > .dm-form-msg{margin-top:10px}

.dm-selection{margin-bottom:6px}
.dm-sel-liste{list-style:none;margin:0;padding:0}
.dm-sel-point{display:flex;gap:11px;padding:7px 0;border-bottom:1px solid var(--dm-filet)}
.dm-sel-point:last-child{border-bottom:0}
.dm-sel-point b{font-size:15.5px}
.dm-sel-point small{color:var(--dm-gris);font-size:13px;margin-left:6px}
.dm-sel-h{display:block;font-size:13.5px;font-weight:700;color:var(--dm-poti-btn-fonce)}
.dm-point-pastille{width:12px;height:12px;border-radius:50%;background:var(--dm-bleu);flex:none;margin-top:6px;display:block}
.dm-point-pastille.f{background:var(--dm-fane)}
.dm-point-pastille.a{background:var(--dm-poti)}
.dm-point-adr{display:block;font-size:13px;color:var(--dm-gris)}
.dm-sel-msg,.dm-sel-chargement{font-size:14.5px;color:var(--dm-texte-doux);margin-bottom:8px}
.dm-sel-vide{background:var(--dm-lin);border-radius:14px;padding:14px 16px;font-size:14.5px}
.dm-sel-meta{font-size:13.5px;color:var(--dm-gris);margin:6px 0 12px;line-height:1.45}
.dm-sel-meta a{font-weight:700;color:var(--dm-bleu)}
.dm-sel-meta:empty{display:none}
.dm-lettre-mini{border-top:2px dashed var(--dm-champ);padding-top:12px;display:grid;gap:9px}
.dm-lettre-mini .dm-label{margin:0}
.dm-form .dm-duo{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}
.dm-lettre-mini .dm-champ{min-height:48px;padding:9px 12px;font-size:16px}
.dm-lettre-mini .dm-btn{width:100%;min-height:50px;padding:13px 16px;font-size:16px}
.dm-rgpd{font-size:12.5px;color:var(--dm-gris);line-height:1.4}
.dm-rgpd a{color:var(--dm-bleu)}
.dm-form-etape[data-dm-etape="3"] .dm-lien-retour{margin-top:2px}

/* variantes */
.dm-form--rail{box-shadow:var(--dm-ombre-douce);border:1px solid var(--dm-filet)}
.dm-form--rail .dm-form-corps{padding:16px 16px 18px}
.dm-form--rail .dm-form-titre{font-size:19px}
.dm-form--rail .dm-tuile{min-height:58px;padding:10px 12px;font-size:14.5px}
.dm-form--rail .dm-form-note{display:none}
.dm-form--rail .dm-form .dm-duo,.dm-form--rail .dm-duo{grid-template-columns:1fr}
.dm-form--page{box-shadow:var(--dm-ombre)}
.dm-form--page .dm-form-corps{padding:28px 30px 30px}
.dm-form--page .dm-form-titre{font-size:28px}
.dm-form--page .dm-tuile{min-height:84px;font-size:17px;padding:16px 18px}
.dm-form--page .dm-tuile small{font-size:14px}
.dm-form--contact{box-shadow:var(--dm-ombre)}
.dm-form--contact .dm-form-corps{padding:28px 30px 30px;display:grid;gap:14px}
.dm-form--contact .dm-champs{grid-template-columns:1fr 1fr;margin-bottom:0}
.dm-form--contact .dm-btn{width:100%}

/* ===================== 9. Page ville ===================== */
.dm-fil{font-size:14px;color:var(--dm-gris);padding:14px 0 0}
.dm-fil a{color:var(--dm-gris)}
.dm-ville-haut{background:var(--dm-lin);padding-bottom:30px;position:relative}
.dm-ville-grille{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:36px;align-items:start;padding-top:14px}
.dm-ville-haut h1{font-size:clamp(34px,2.85vw,44px);line-height:1.05;text-wrap:balance}
.dm-ville-haut .dm-chapo{font-size:18px;margin-top:14px;max-width:60ch}
.dm-reperes{display:flex;gap:26px;margin:14px 0 0;flex-wrap:wrap}
.dm-reperes > div{min-width:0}
.dm-reperes b{display:block;font-size:22px;font-weight:800;letter-spacing:-.5px;font-family:var(--dm-texte)}
.dm-reperes span{font-size:13.5px;color:var(--dm-gris);line-height:1.3;display:block;max-width:20ch}
.dm-carte{height:236px;margin-top:14px;border-radius:var(--dm-r-photo);border:6px solid #fff;box-shadow:var(--dm-ombre-douce);background:#e3ebf6;position:relative;z-index:0}
.dm-carte .leaflet-tile-pane{filter:saturate(.75)}
.dm-carte--marche{height:300px;margin-top:0}
.dm-carte-indispo{padding:30px;color:var(--dm-gris);font-size:15px}
.dm-legende{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--dm-gris);margin-top:10px}
.dm-legende i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;background:var(--dm-bleu)}
.dm-legende i.f{background:var(--dm-fane)}
.dm-legende i.a{background:var(--dm-poti)}
.dm-colonne-droite{position:sticky;top:96px;display:grid;gap:14px}
.dm-colonne-droite .dm-form-carte{position:relative}
.dm-texte-grille{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:start}
.dm-colonne-droite--texte{position:sticky;top:96px}
.dm-texte-colonne{min-width:0}

/* marqueurs et groupes de la carte */
.dm-epingle-wrap,.dm-cluster{background:none!important;border:0!important}
.dm-epingle{display:block;width:20px;height:20px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.45);background:var(--dm-bleu)}
.dm-epingle--f{background:var(--dm-fane)}
.dm-epingle--a{background:var(--dm-poti)}
.dm-cluster span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(22,41,90,.93);color:#fff;border:3px solid #fff;font:800 14px var(--dm-texte);box-shadow:0 2px 8px rgba(0,0,0,.4)}
.leaflet-container{font-family:var(--dm-texte)}
.leaflet-popup-content{font-size:14px;line-height:1.45;margin:12px 16px}
.leaflet-popup-content b{font-size:15px}

/* ===================== 10. Agenda, points, blocs ===================== */
.dm-agenda-ctrl{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-bottom:22px}
.dm-jours,.dm-types{display:flex;gap:6px;flex-wrap:wrap}
.dm-jours button,.dm-types button{font:700 15px var(--dm-texte);border:2px solid var(--dm-champ);background:#fff;color:var(--dm-encre);border-radius:999px;padding:9px 15px;cursor:pointer;min-height:44px}
.dm-jours button[aria-pressed=true]{background:var(--dm-encre);border-color:var(--dm-encre);color:#fff}
.dm-types button[aria-pressed=true]{background:var(--dm-fane);border-color:var(--dm-fane);color:#fff}
.dm-types b{margin-left:7px;font-size:12.5px;opacity:.85}
.dm-panneau-agenda{background:var(--dm-lin);border-radius:var(--dm-r-photo);padding:18px 22px}
.dm-agenda,.dm-agenda-brut{list-style:none;margin:0;padding:0;columns:2;column-gap:36px}
.dm-agenda li{break-inside:avoid;display:grid;grid-template-columns:150px minmax(0,1fr) 14px;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid #e3d9c2}
.dm-agenda li.dm-cache{display:none}
.dm-heure{font-weight:800;font-size:16px;color:var(--dm-poti-btn-fonce)}
.dm-heure--verif{font-size:14px;font-weight:700;color:var(--dm-gris)}
.dm-lieu b{display:block;font-size:16.5px}
.dm-lieu small{color:var(--dm-gris);font-size:13.5px}
.dm-type{width:12px;height:12px;border-radius:50%;background:var(--dm-bleu)}
.dm-type.f{background:var(--dm-fane)}
.dm-type.a{background:var(--dm-poti)}
.dm-agenda-titre{margin:22px 0 4px;font-weight:800;font-size:17px}
.dm-agenda-titre small{font-weight:500;color:var(--dm-gris)}
.dm-agenda--verif li{padding:8px 0}
.dm-voir-plus{margin-top:14px;font:700 15px var(--dm-texte);background:#fff;border:2px solid var(--dm-encre);color:var(--dm-encre);border-radius:999px;padding:10px 20px;min-height:46px;cursor:pointer}
.dm-voir-plus:hover{background:var(--dm-encre);color:#fff}
.dm-plus-ligne{text-align:center;margin-top:26px}
.dm-vide-agenda,.dm-vide{background:#fff;border-radius:14px;padding:22px;color:var(--dm-gris)}
.dm-vide{display:grid;gap:14px;justify-items:start}
.dm-agenda-brut li{break-inside:avoid;padding:8px 0;border-bottom:1px solid #e3d9c2;font-size:15px}
.dm-agenda-brut small{color:var(--dm-gris)}
.dm-js .dm-agenda-brut{display:none}

.dm-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.dm-point{display:flex;gap:12px;background:#fff;border-radius:14px;padding:13px 16px;box-shadow:var(--dm-ombre-douce)}
.dm-point .dm-point-pastille{margin-top:7px}
.dm-point b{display:block;font-size:16.5px;line-height:1.3}
.dm-point small{display:block;color:var(--dm-gris);font-size:13.5px}
.dm-point-web{display:inline-block;margin-top:6px;font-size:13.5px;font-weight:700;color:var(--dm-bleu)}
.dm-point .dm-point-adr{font-size:14px;margin-top:2px}

.dm-duo{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.dm-bloc{background:#fff;border-radius:var(--dm-r-carte);overflow:hidden;box-shadow:var(--dm-ombre-douce);display:grid;grid-template-columns:200px minmax(0,1fr);align-items:stretch}
.dm-bloc > img,.dm-bloc > .dm-repli{height:100%;width:100%;object-fit:cover;min-height:170px}
.dm-bloc > div{padding:20px 22px}
.dm-bloc p{font-size:15px;color:var(--dm-texte-doux);margin-top:8px}

.dm-autour{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:40px;align-items:center}
.dm-autour h2{font-size:30px;margin-bottom:0}
.dm-autour .dm-source{margin-top:12px}
.dm-bloc-marche{display:grid;grid-template-columns:150px minmax(0,1fr);background:#fff;border-radius:var(--dm-r-carte);overflow:hidden;box-shadow:var(--dm-ombre-douce);text-decoration:none;color:var(--dm-encre);transition:transform .25s}
.dm-bloc-marche:hover{transform:translateY(-3px)}
.dm-bloc-marche-photo{display:block;position:relative;min-height:120px}
.dm-bloc-marche-photo img,.dm-bloc-marche-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-bloc-marche-texte{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:18px 20px}
.dm-bloc-marche-titre{font-weight:800;font-size:18px;line-height:1.25}
.dm-etiquette-claire{display:inline-block;align-self:flex-start;font-size:12.5px;font-weight:700;color:var(--dm-fane);background:var(--dm-fane-clair);border-radius:999px;padding:3px 11px}

/* grand marché : jours et horaires */
.dm-horaires{margin-top:20px}
.dm-semaine{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;list-style:none;margin:0;padding:0}
.dm-semaine li{background:#fff;border-radius:12px;padding:9px 4px;text-align:center;box-shadow:var(--dm-ombre-douce)}
.dm-semaine li b{display:block;font-size:14px}
.dm-semaine li span{display:block;font-size:12.5px;color:var(--dm-poti-btn-fonce);font-weight:700;line-height:1.3;margin-top:2px}
.dm-semaine li.ferme{background:transparent;box-shadow:none;border:2px dashed #d8cdb2}
.dm-semaine li.ferme b,.dm-semaine li.ferme span{color:var(--dm-gris);font-weight:600}
.dm-horaires-verif{background:#fff;border-radius:14px;padding:14px 18px;display:inline-block;color:var(--dm-texte-doux)}
.dm-horaires-verif small{display:block;color:var(--dm-gris);margin-top:2px}
.dm-marche-adr{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:14px;font-size:15px}
.dm-marche-adr span{display:inline-flex;align-items:center;gap:6px}
.dm-marche-adr .dm-picto{width:18px;height:18px}
.dm-source--carte{margin:8px 0 22px}
.dm-retour-ville{margin-top:28px}

/* ===================== 11. Accordéons du texte ===================== */
.dm-acc-intro{margin-bottom:18px}
.dm-acc{background:#fff;border-radius:14px;margin-bottom:10px;box-shadow:var(--dm-ombre-douce);border:1px solid var(--dm-filet)}
.dm-acc > summary{cursor:pointer;list-style:none;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.dm-acc > summary::-webkit-details-marker{display:none}
.dm-acc > summary::after{content:"+";font:700 28px/1 var(--dm-texte);color:var(--dm-poti-btn);flex:none}
.dm-acc[open] > summary::after{content:"–"}
.sbt-article-corps .dm-acc-h2,.dm-acc-h2{margin:0;font-family:var(--dm-texte);font-weight:800;font-size:19px;line-height:1.3;color:var(--dm-encre)}
.dm-acc-corps{padding:0 22px 20px}
.dm-acc-corps > :first-child{margin-top:0}
.dm-acc-corps .sbt-faq{margin:18px 0 0;padding:16px}
.dm-texte-colonne .dm-acc-corps h3{font-size:18px;margin:1.2em 0 .4em}

/* ===================== 12. En-têtes de page (cagette du mois, version courte) ===================== */
.dm-tete{background:var(--dm-lin);padding:0 0 48px}
.dm-tete-grille{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:center;padding-top:14px}
.dm-tete--sans-photo .dm-tete-grille{grid-template-columns:minmax(0,1fr)}
.dm-tete h1{font-size:clamp(36px,3.8vw,58px);line-height:1.05}
.dm-tete-photo{position:relative;aspect-ratio:4/3;max-height:340px;width:100%}
.dm-tete-photo > img,.dm-tete-photo > picture,.dm-tete-photo > .dm-repli{position:absolute;inset:0;width:100%;height:100%}
.dm-tete-photo img{width:100%;height:100%;object-fit:cover;border-radius:22px 22px 22px 96px}
.dm-tete-photo > .dm-repli{border-radius:22px 22px 22px 96px}
.dm-pastille-mini{position:absolute;left:16px;bottom:22px;z-index:2;background:var(--dm-paille);color:var(--dm-encre);font-weight:800;font-size:14px;line-height:1.2;padding:9px 18px;border-radius:999px;border:2px dashed rgba(22,41,90,.4);transform:rotate(-3deg);box-shadow:var(--dm-ombre-douce);max-width:calc(100% - 20px)}
.dm-tete--villes .dm-tete-photo{aspect-ratio:auto;max-height:none}
.dm-tete--villes .dm-tete-photo > .dm-france-fig{position:static;max-width:100%}
.dm-tete--villes .dm-france{max-height:330px}
.dm-tete--villes .dm-pastille-mini{bottom:auto;top:14px;left:16px}
.dm-tete--auteur .dm-tete-photo{aspect-ratio:1;max-width:260px;justify-self:end;border-radius:50%}
.dm-auteur-photo{display:block;width:100%;height:100%}
.dm-auteur-photo img,.dm-auteur-photo svg{width:100%;height:100%;border-radius:50%;object-fit:cover;box-shadow:0 0 0 8px #fff,var(--dm-ombre-douce)}
.dm-tete--auteur .dm-tete-photo img{border-radius:50%}
.dm-tete--marche .dm-chapo{max-width:52ch}
.dm-tete--recherche .dm-tete-grille,.dm-tete--rubrique.dm-tete--sans-photo .dm-tete-grille{padding-bottom:6px}
.dm-recherche-page{display:flex;gap:10px;margin-top:22px;max-width:560px}
.dm-rub-reglette{margin-bottom:34px}
.dm-rub-reglette .dm-label{margin-bottom:10px}
.dm-section--rubrique{padding-top:48px}
.dm-section--page{padding:48px 0 40px}
.dm-page-corps > :last-child,.dm-section--page .dm-conteneur > :last-child{margin-bottom:0}
.dm-page-corps{max-width:var(--dm-large)}

/* ===================== 13. Pilier, hubs, villes ===================== */
.dm-section--texte-rail{padding:36px 0 56px}
.dm-conteneur > .dm-mise-en-page{padding-inline:0;max-width:none}
.dm-villes-cartes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;align-items:start}
.dm-ville-carte{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:2px solid var(--dm-champ);border-radius:14px;padding:13px 16px;min-height:56px;text-decoration:none;color:var(--dm-encre);font-weight:700;transition:border-color .2s,transform .2s}
a.dm-ville-carte:hover{border-color:var(--dm-poti);transform:translateY(-2px)}
.dm-ville-carte-n{background:var(--dm-fane-clair);color:var(--dm-fane);border-radius:999px;padding:3px 10px;font-size:14px}
.dm-grille-villes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;align-items:start}
.dm-ville-vignette{display:block;background:#fff;border-radius:var(--dm-r-carte);overflow:hidden;box-shadow:var(--dm-ombre-douce);text-decoration:none;color:var(--dm-encre);transition:transform .25s}
a.dm-ville-vignette:hover{transform:translateY(-4px)}
.dm-vc-photo{display:block;position:relative;aspect-ratio:4/3;background:var(--dm-bleu)}
.dm-vc-photo img,.dm-vc-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-vc-corps{display:block;padding:12px 14px 14px}
.dm-vc-corps b{display:block;font-size:19px;font-family:var(--dm-texte);font-weight:800}
.dm-vc-corps small{display:block;color:var(--dm-gris);font-size:13.5px;margin-top:2px}

/* ===================== 14. Calendrier de saison et pages mois ===================== */
.dm-cal-barre{display:flex;flex-wrap:wrap;gap:16px 34px;align-items:center;justify-content:space-between;margin-bottom:18px}
.dm-cal-sel{display:flex;align-items:center;gap:14px}
.dm-cal-fleche{width:52px;height:52px;border-radius:50%;border:2px solid var(--dm-encre);background:#fff;color:var(--dm-encre);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}
.dm-cal-fleche:hover{background:var(--dm-encre);color:#fff}
.dm-cal-mois{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:190px}
.dm-cal-nom{font-family:var(--dm-titre);font-size:clamp(30px,3.2vw,42px);line-height:1}
.dm-cal-compte{color:var(--dm-gris);margin-bottom:18px}
.dm-types--cal button[aria-pressed=true]{background:var(--dm-fane)}
.dm-grille-calendrier{background:#fff;border-radius:var(--dm-r-photo);padding:14px 18px 18px;box-shadow:var(--dm-ombre-douce)}
.dm-ligne{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:center;padding:8px 10px;border-radius:12px;color:var(--dm-encre);text-decoration:none}
a.dm-ligne:hover{background:var(--dm-lin)}
.dm-ligne-nom{font-weight:700;font-size:16px;line-height:1.25}
.dm-ligne-nom small{display:block;font-weight:500;font-size:12.5px;color:var(--dm-gris)}
.dm-ligne--tete{padding-bottom:2px}
.dm-ligne-lettres{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;text-align:center}
.dm-ligne-lettres b{font-size:13px;color:var(--dm-gris)}
.dm-ligne-lettres b.now{color:var(--dm-poti-btn-fonce);border-bottom:3px solid var(--dm-poti)}
.dm-ligne-famille{font-family:var(--dm-titre);font-size:26px;margin:18px 0 4px 10px;color:var(--dm-encre)}
.dm-tete--mois{padding-bottom:40px}
.dm-mois-tete{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:24px}
.dm-mois-tete-texte{min-width:0}
.dm-mois-nav{display:flex;justify-content:space-between;gap:16px;padding:6px 0 10px}
.dm-mois-nav-lien{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--dm-encre);border:2px solid var(--dm-champ);border-radius:16px;padding:12px 20px;min-height:64px;background:#fff;transition:border-color .2s}
.dm-mois-nav-lien:hover{border-color:var(--dm-poti)}
.dm-mois-nav-lien small{display:block;font-size:12.5px;color:var(--dm-gris)}
.dm-mois-nav-lien b{font-size:18px}
.dm-mois-nav-lien--suiv{text-align:right}

/* ===================== 15. Article, rail, rubriques ===================== */
.dm-ah{background:var(--dm-lin);padding:0 0 48px}
.dm-ah-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:48px;align-items:start;padding-top:14px}
.dm-ah h1{font-size:clamp(34px,3.4vw,52px);line-height:1.06}
.dm-ah .dm-chapo{font-size:19px;margin-top:18px;max-width:56ch}
.dm-ah-meta{margin-top:20px;color:var(--dm-texte-doux)}
.dm-ah-photo{position:relative}
.dm-ah-aplat{background:var(--dm-poti);border-radius:28px;padding:16px;box-shadow:var(--dm-ombre);transform:rotate(1.2deg)}
.dm-ah-aplat img,.dm-ah-aplat .dm-repli{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;transform:rotate(-1.2deg);height:auto}
.dm-ah-aplat .dm-repli{height:auto;aspect-ratio:4/3}
.dm-ah-photo .dm-pastille-mini{left:16px;bottom:16px}
.dm-reglette-p{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;margin-top:22px;max-width:560px}
.dm-reglette-p span{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border-radius:10px;padding:8px 0 6px;color:var(--dm-gris);border:2px solid transparent;min-height:50px}
.dm-reglette-p b{font-size:15px;font-weight:800;line-height:1}
.dm-reglette-p small{font-size:10.5px;margin-top:3px;font-weight:600}
.dm-reglette-p .on{background:var(--dm-fane);color:#fff}
.dm-reglette-p .now{border-color:var(--dm-poti);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--dm-poti)}
.dm-ou-acheter{background:#fff;border-bottom:1px solid var(--dm-filet)}
.dm-ou-acheter-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-top:14px;padding-bottom:14px}
.dm-ou-acheter-titre{font-weight:800;font-size:16px}
.sbt-article-meta img,.sbt-article-meta svg{width:32px;height:32px;border-radius:50%}

@media (min-width:1081px){
  .dm-mise-en-page{grid-template-columns:minmax(0,1fr) var(--sb-rail);column-gap:28px;justify-content:start;padding:36px 28px 64px}
}
.dm-mise-en-page .sbt-article-principal{min-width:0}
.sbt-rail{top:92px;gap:14px;padding-left:18px}
/* rail : le sommaire toujours ouvert et en entier (jamais replié, jamais de défilement interne) ; le formulaire sans photo */
.sbt-rail .sbt-rail-carte--sommaire{padding:0;border:0;background:none}
.sbt-rail .sbt-sommaire{padding:14px 16px}
.sbt-rail .sbt-sommaire-titre{pointer-events:none;font-size:15px}
.sbt-rail .sbt-sommaire ol{margin-top:10px;gap:6px}
.sbt-rail .sbt-sommaire li a{font-size:14.5px;line-height:1.35}
.sbt-rail .dm-form-photo{display:none}
.sbt-rail .dm-form--rail .dm-form-corps{padding:14px 16px 16px}
.sbt-rail .dm-form--rail .dm-form-titre{font-size:18px}
.sbt-rail .dm-etapes{margin:10px 0 10px}
.sbt-rail .dm-form--rail .dm-tuile{min-height:52px;padding:8px 11px;font-size:14px}
.sbt-rail .dm-form--rail .dm-tuile small{font-size:12.5px}
.sbt-rail .dm-form-etape > .dm-btn{margin-top:10px;min-height:50px;padding:14px 20px}
/* fenêtre basse : le bloc se resserre (dm-rail-serre), puis cesse d'être collant (dm-rail-libre) plutôt que de cacher sa fin */
.sbt-rail.dm-rail-serre .sbt-sommaire-num{display:none}
.sbt-rail.dm-rail-serre .sbt-sommaire ol{gap:4px}
.sbt-rail.dm-rail-serre .sbt-sommaire li a{font-size:14px}
.sbt-rail.dm-rail-serre .dm-etapes,.sbt-rail.dm-rail-serre .dm-tuile small{display:none}
.sbt-rail.dm-rail-serre .dm-form--rail .dm-tuile{min-height:44px}
.sbt-rail.dm-rail-libre{position:relative;top:auto}
.sbt-sommaire{border-left-color:var(--dm-poti)}
.sbt-sommaire li a:hover{color:var(--dm-poti-btn-fonce)}

/* corps de texte */
.sbt-article-corps{font-size:17px;line-height:1.7;color:var(--dm-encre)}
.sbt-article-corps h2{font-family:var(--dm-titre);font-weight:400;font-size:clamp(26px,2.4vw,32px);line-height:1.15;margin-top:2em;scroll-margin-top:96px}
.sbt-article-corps h3{font-family:var(--dm-texte);font-weight:800;font-size:20px;line-height:1.3;margin-top:1.7em}
.sbt-article-corps a{color:var(--dm-bleu)}
.sbt-article-corps img{border-radius:var(--dm-r-carte)}
.sbt-article-corps blockquote{background:var(--dm-lin);border-left-color:var(--dm-poti)}
.sbt-retenir-liste li::before{background-color:var(--dm-poti)}
.sbt-encadre--retenir{background:var(--dm-encre)}
.sbt-encadre--saviez::before{background:var(--dm-poti-btn)}
.sbt-faq-liste summary::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4510f' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E")}
.sbt-faq-liste details[open]{border-color:var(--dm-poti)!important}
.sbt-auteur-actions .sbt-btn,.sbt-btn{background:var(--dm-poti-btn)}
.sbt-auteur-actions .sbt-btn--fantome,.sbt-btn--fantome{background:transparent}
.sbt-auteur-photo img,.sbt-auteur-photo svg{width:120px;height:120px;border-radius:50%}
.sbs_tableau{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.6em 0}
.sbs_tableau table{border-collapse:collapse;min-width:520px;width:100%}
.sbs_tableau th,.sbs_tableau td{padding:10px 12px;border-bottom:1px solid var(--dm-filet);text-align:left}

/* sources en fin de texte : encadré dédié (noms des sources, sans lien) */
.dm-sources{margin:2.2em 0 0;background:var(--dm-lin);border-radius:var(--dm-r-carte);padding:18px 22px 20px;border-top:4px solid var(--dm-fane)}
.dm-sources-titre{font-weight:800;font-size:16px;color:var(--dm-encre);margin:0 0 6px}
.sbt-article-corps .dm-sources p{margin:0}
.dm-sources p:not(.dm-sources-titre){font-size:15px;line-height:1.6;color:var(--dm-texte-doux);margin:0}
.dm-source-nom{font-weight:600;color:var(--dm-encre)}

/* À lire aussi : pleine largeur, sans case vide */
.dm-alire{padding:48px 0 64px}
.dm-alire-titre{font-family:var(--dm-titre)!important;font-weight:400!important;font-size:30px!important;margin-bottom:22px!important}
.dm-alire-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}

/* cartes d'article (rubriques, recherche, auteur, à lire aussi) */
.dm-liste-art{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;align-items:start}
.dm-carte-art{background:#fff;border-radius:var(--dm-r-carte);overflow:hidden;box-shadow:var(--dm-ombre-douce);transition:transform .25s}
.dm-carte-art:hover{transform:translateY(-4px)}
.dm-carte-art-lien{display:block;color:var(--dm-encre);text-decoration:none}
.dm-carte-art-photo{display:block;position:relative;aspect-ratio:16/10;background:var(--dm-lin)}
.dm-carte-art-photo img,.dm-carte-art-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-carte-art-corps{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px 18px 18px}
.dm-carte-art-titre{font-weight:800;font-size:19px;line-height:1.28}
.dm-carte-art-corps .dm-mois{width:100%;margin-top:0}
.dm-carte-art-extrait{font-size:14.5px;color:var(--dm-gris);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dm-carte-art-date{font-size:13px;color:var(--dm-gris)}
.dm-carte-art:hover .dm-carte-art-titre{color:var(--dm-poti-btn-fonce)}

/* ===================== 16. Annexes : à propos, contact, panier, 404 ===================== */
.dm-apropos,.dm-contact{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}
.dm-carte-info{background:var(--dm-lin);border-radius:var(--dm-r-photo);padding:26px 26px 28px}
.dm-carte-info-titre{font-family:var(--dm-titre);font-size:24px;line-height:1.15;margin-bottom:16px}
.dm-carte-info ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.dm-carte-info li b{display:block;font-size:26px;font-weight:800;font-family:var(--dm-texte);line-height:1.1}
.dm-carte-info li span{font-size:14.5px;color:var(--dm-texte-doux)}
.dm-carte-info .dm-info-liste li b{font-size:16px;margin-bottom:2px}
.dm-carte-info .dm-info-liste li span{display:block;line-height:1.45}
.dm-carte-info .dm-info-liste a,.dm-carte-info-texte a{color:var(--dm-bleu)}
.dm-carte-info-note{font-size:13.5px;color:var(--dm-texte-doux);margin:16px 0 18px;line-height:1.5}
.dm-carte-info-texte{margin-top:20px;font-size:15px}

.dm-section--panier{background:var(--dm-lin);padding:48px 0 72px}
.dm-panier{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:760px}
.dm-panier-texte{display:contents}
.dm-panier h1{order:1;text-align:center;font-size:clamp(36px,4vw,56px)}
.dm-panier .dm-chapo{order:2;text-align:center;margin:0;max-width:52ch}
.dm-panier-form{order:3;width:100%;max-width:640px}
.dm-reassurances{order:4;list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;max-width:1000px}
.dm-reassurances li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.45;color:var(--dm-texte-doux)}
.dm-reassurances li .dm-picto{color:var(--dm-fane);margin-top:2px}
.dm-reassurances b{color:var(--dm-encre)}
.dm-reassurances a{color:var(--dm-bleu)}

.dm-section--404{padding:36px 0 72px;background:var(--dm-lin)}
.dm-404{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center}
.dm-404-code{font-family:var(--dm-titre);font-size:clamp(70px,9vw,130px);line-height:1;color:var(--dm-poti);margin-bottom:6px}
.dm-404 h1{font-size:clamp(34px,3.6vw,52px)}
.dm-404-photo{position:relative;aspect-ratio:4/3;max-height:380px}
.dm-404-photo img,.dm-404-photo .dm-repli{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:22px 22px 22px 96px}

/* ===================== 17. Infographies du socle ([sbs_jauges], [sbs_tarifs], [sbs_frise], [sbs_lieu]) ===================== */
sbs-tarifs,sbs-frise,sbs-jauges,sbs-lieu{display:block;margin:1.8em 0;padding:22px 24px;background:var(--dm-lin);border-radius:var(--dm-r-photo)}
.sbs_tarifs_titre,.sbs_frise_titre,.sbs_jauges_titre{display:block;font:800 18px/1.3 var(--dm-texte);color:var(--dm-encre);margin-bottom:12px}
sbs-tarif{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--dm-lin-fonce)}
.sbs_tarif_libelle{grid-column:1;font-size:15.5px;color:var(--dm-encre)}
.sbs_tarif_prix{grid-column:2;grid-row:1;font:800 17px var(--dm-texte);color:var(--dm-encre)}
meter.sbs_tarif_barre{grid-column:1 / -1;width:100%;height:10px;-webkit-appearance:none;appearance:none;background:#fff;border:0;border-radius:6px;overflow:hidden}
meter.sbs_tarif_barre::-webkit-meter-bar{background:#fff;height:10px;border-radius:6px;border:0}
meter.sbs_tarif_barre::-webkit-meter-optimum-value,meter.sbs_tarif_barre::-webkit-meter-suboptimum-value,meter.sbs_tarif_barre::-webkit-meter-even-less-good-value{background:var(--dm-poti);border-radius:6px}
meter.sbs_tarif_barre::-moz-meter-bar{background:var(--dm-poti);border-radius:6px}
.sbs_tarifs_notes,.sbs_source{display:block;font-size:13px;color:var(--dm-gris);margin-top:10px;line-height:1.4}
sbs-etape{display:grid;grid-template-columns:120px minmax(0,1fr);gap:2px 16px;padding:12px 0;border-top:1px solid var(--dm-lin-fonce)}
.sbs_etape_date{grid-row:1 / span 2;font-weight:800;color:var(--dm-poti-btn-fonce);font-size:15px}
.sbs_etape_titre{font-weight:800;font-size:16px}
.sbs_etape_desc{font-size:14.5px;color:var(--dm-texte-doux);line-height:1.5}
sbs-jauges{display:flex;flex-wrap:wrap;gap:14px}
sbs-jauges > sbs-jauge{flex:1 1 130px;min-width:0}
sbs-jauges > .sbs_jauges_titre,sbs-jauges > .sbs_source{flex:0 0 100%;margin:0}
sbs-jauge{display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:16px;padding:16px 18px;box-shadow:var(--dm-ombre-douce)}
.sbs_jauge_valeur{font:800 34px/1.05 var(--dm-texte);letter-spacing:-.5px;color:var(--dm-encre)}
.sbs_jauge_libelle{order:-1;font-size:14px;font-weight:700;color:var(--dm-gris)}
.sbs_jauge_unite{font-size:13.5px;color:var(--dm-gris)}
.sbs_lieu_nom{display:block;font-weight:800;font-size:18px}
.sbs_lieu_adresse{font-style:normal;margin-top:4px;color:var(--dm-texte-doux)}
.sbs_lieu_acces{display:block;margin-top:4px;font-size:14px;color:var(--dm-gris)}
.sbs_lieu_carte{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-weight:700;color:var(--dm-bleu)}
.sbs_icone_repere{fill:currentColor}

/* ===================== 18. Adaptations (tablette puis mobile) ===================== */
@media (max-width:1240px){
  .dm-pied .sbt-footer-grille{grid-template-columns:1fr 1fr 1fr;gap:32px}
  .dm-pied .sbt-footer-colonne--villes{grid-column:1 / -1;order:5}
  .dm-pied ul.dm-pied-villes{columns:4}
}
@media (max-width:1100px){
  .dm-saison,.dm-saison--grille{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dm-burger{display:inline-flex;margin-left:auto;width:48px;height:48px;border-radius:12px;border:2px solid var(--dm-champ);background:#fff;color:var(--dm-encre);align-items:center;justify-content:center;cursor:pointer}
  .dm-nav{display:none;position:fixed;top:64px;left:0;right:0;bottom:0;z-index:49;margin:0;background:#fff;flex-direction:column;align-items:stretch;gap:18px;padding:18px 18px 28px;overflow-y:auto}
  .dm-nav.est-ouvert{display:flex}
  .dm-menu-ouvert body{overflow:hidden}
  .dm-nav-liste{flex-direction:column;gap:0}
  .dm-nav-liste a{font-size:21px;font-weight:700;padding:16px 4px;border-bottom:1px solid var(--dm-filet)}
  .dm-nav-item.est-actif a{border-bottom-color:var(--dm-poti)}
  .dm-nav-cta{width:100%;min-height:58px;font-size:18px}
  .dm-entete-in{gap:12px}
  .dm-texte-grille{grid-template-columns:minmax(0,1fr)}
  .dm-colonne-droite--texte{position:static}
}
@media (max-width:980px){
  .dm-ville-grille{grid-template-columns:minmax(0,1fr)}
  .dm-colonne-droite{position:static}
  .dm-tete-grille,.dm-ah-grille,.dm-404{grid-template-columns:minmax(0,1fr)}
  .dm-tete-photo{max-height:300px}
  .dm-tete--auteur .dm-tete-photo{justify-self:start}
  .dm-ah-photo{max-width:480px}
  .dm-apropos,.dm-contact{grid-template-columns:minmax(0,1fr)}
  .dm-points{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dm-autour{grid-template-columns:minmax(0,1fr)}
  .dm-grille-voies{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dm-reassurances{grid-template-columns:minmax(0,1fr)}
  .dm-mois-tete{flex-direction:column;align-items:flex-start}
}
@media (max-width:820px){
  body{font-size:16.5px}
  .dm-conteneur{padding:0 18px}
  .dm-entete-in{height:64px}
  .dm-logo-nom{font-size:21px}
  .dm-logo-img{width:38px;height:31px}
  h2{font-size:clamp(28px,7.6vw,34px)}
  .dm-section{padding:52px 0}
  .dm-tete-section{flex-direction:column;align-items:flex-start;gap:10px}

  /* accueil : titre, photo, bouton dans les 700 premiers pixels */
  .dm-hero-grille{grid-template-columns:minmax(0,1fr);max-height:none;min-height:0;padding-bottom:26px}
  .dm-hero-grille > *{min-width:0}
  .dm-hero-photo{height:84px;order:0}
  .dm-hero-photo img,.dm-hero-photo > .dm-repli{border-radius:0 0 0 48px}
  .dm-hero-texte{display:contents}
  .dm-hero h1{order:1;font-size:34px;padding:12px 18px 0}
  .dm-hero h1 em{display:block}
  .dm-hero .dm-chapo{order:2;font-size:15.5px;line-height:1.45;margin:8px 0 0;padding:0 18px}
  .dm-preuves{order:4;gap:18px;margin:18px 0 0;padding:0 18px}
  .dm-preuves li{font-size:13px}
  .dm-preuves b{font-size:19px}
  .dm-form--hero{order:3;position:relative;left:auto;bottom:auto;width:auto;min-width:0;max-width:calc(100vw - 36px);margin:14px 18px 0}
  .dm-bandeau{padding:11px 18px}
  .dm-form--hero .dm-form-etape{padding:12px 16px 16px;gap:10px}
  .dm-form--hero .dm-label[for]{display:none}
  .dm-pilules--types .dm-tuile{min-height:44px;padding:7px 12px;font-size:14px}
  .dm-pastille{top:auto;bottom:-20px;right:14px;width:96px;height:96px;outline-width:5px}
  .dm-pastille b{font-size:28px}
  .dm-pastille span{font-size:11px}
  .dm-pastille--mois{width:104px;height:104px}

  .dm-reglette > a,.dm-reglette > span{font-size:12px;padding:8px 0;min-height:44px}
  .dm-reglette small{display:none}
  .dm-reglette--geante > a,.dm-reglette--geante > span{font-size:17px;padding:12px 0}
  .dm-saison{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dm-saison--grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dm-grille-villes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dm-vc-corps{padding:10px 11px 12px}
  .dm-vc-corps b{font-size:16.5px}
  .dm-vc-corps small{font-size:12.5px}
  .dm-produit-nom{font-size:16px}
  .dm-mosaique{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:200px}
  .dm-voie.grande{grid-column:span 2;grid-row:auto}
  .dm-voie h3,.dm-voie h2{font-size:19px}
  .dm-voie p{display:none}
  .dm-voie-texte{padding:16px 16px}
  .dm-grille-voies{grid-template-columns:minmax(0,1fr)}
  .dm-voie--haute{min-height:230px}
  .dm-voie--haute p{display:block;font-size:14.5px}
  .dm-villes{grid-template-columns:minmax(0,1fr)}
  .dm-france-fig{max-width:420px;margin:0 auto}
  .dm-guides{grid-template-columns:minmax(0,1fr)}
  .dm-guide.une h3{font-size:26px}
  .dm-producteurs,.dm-lettre{grid-template-columns:minmax(0,1fr)}
  .dm-producteurs > img,.dm-producteurs > .dm-repli{min-height:0;height:200px}
  .dm-producteurs-texte{padding:28px 22px}
  .dm-lettre-texte{padding:30px 22px}
  .dm-lettre > img,.dm-lettre > .dm-repli{height:180px;min-height:0}
  .dm-lettre-ligne{flex-direction:column}
  .dm-lettre-ligne .dm-btn{width:100%}

  .dm-pied{margin-top:72px;padding-top:40px}
  .dm-etiquette-pied{margin:-92px 0 30px}
  .dm-etiquette-carton{padding:16px 22px 16px 42px;gap:2px 12px;transform:rotate(-1deg)}
  .dm-etiquette-agrafe{left:17px;width:12px;height:12px;margin-top:-6px}
  .dm-etiquette-q{font-size:22px}
  .dm-etiquette-l{font-size:15px}
  .dm-pied .sbt-footer-grille{grid-template-columns:1fr 1fr}
  .dm-pied .sbt-footer-colonne--marque{grid-column:1 / -1}
  .dm-pied ul.dm-pied-villes{columns:2}

  /* page ville : titre, formulaire, chapo, repères, carte */
  .dm-ville-grille{display:flex;flex-direction:column;gap:0;padding-top:12px}
  .dm-ville-gauche{display:contents}
  .dm-ville-haut h1{font-size:30px;order:1}
  .dm-colonne-droite{order:2;margin-top:14px;display:block}
  .dm-ville-haut .dm-chapo{order:3;margin-top:22px;font-size:16.5px}
  .dm-reperes{order:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .dm-reperes b{font-size:18px}
  .dm-reperes span{font-size:12px}
  .dm-carte{order:5;height:260px;margin-top:14px}
  .dm-legende{order:6}
  .dm-form-photo{height:90px}
  .dm-form-corps{padding:16px 16px 18px}
  .dm-form-titre{font-size:20px}
  .dm-tuile{min-height:56px;padding:10px 12px;font-size:14.5px}
  .dm-form-note{display:none}
  .dm-form--page .dm-form-corps,.dm-form--contact .dm-form-corps{padding:20px 18px 22px}
  .dm-form--contact .dm-champs{grid-template-columns:1fr}
  .dm-agenda,.dm-agenda-brut{columns:1}
  .dm-agenda li{grid-template-columns:112px minmax(0,1fr) 12px}
  .dm-heure{font-size:14px}
  .dm-panneau-agenda{padding:12px 16px}
  .dm-points{grid-template-columns:minmax(0,1fr)}
  .dm-duo{grid-template-columns:minmax(0,1fr)}
  .dm-bloc{grid-template-columns:120px minmax(0,1fr)}
  .dm-semaine{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dm-carte--marche{height:240px}
  .dm-acc > summary{padding:14px 16px}
  .dm-acc-corps{padding:0 16px 16px}
  .dm-bloc-marche{grid-template-columns:110px minmax(0,1fr)}

  .dm-tete{padding-bottom:36px}
  .dm-tete h1,.dm-ah h1{font-size:clamp(30px,8.4vw,38px)}
  .dm-pastille-mini{left:8px;bottom:12px;font-size:13px;padding:7px 14px}
  .dm-ah-photo .dm-pastille-mini{left:10px;bottom:12px}
  .dm-reglette-p{gap:3px}
  .dm-reglette-p small{display:none}
  .dm-reglette-p span{min-height:40px}
  .dm-ligne{grid-template-columns:minmax(0,1fr);gap:6px;padding:10px}
  .dm-ligne--tete .dm-ligne-nom{display:none}
  .dm-cal-barre{flex-direction:column;align-items:flex-start}
  .dm-mois-nav{flex-direction:column}
  .dm-alire-grille,.dm-liste-art{grid-template-columns:minmax(0,1fr)}
  .dm-recherche-page{flex-direction:column}
  .dm-404-code{font-size:84px}
  sbs-etape{grid-template-columns:minmax(0,1fr)}
  .sbs_etape_date{grid-row:auto}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* Blocs visuels du texte (encadrés, infographies, tableaux) : figure neutre, sans légende */
.dm-bloc{margin:2em 0;padding:0}
.dm-bloc > aside, .dm-bloc > sbs-jauges, .dm-bloc > sbs-tarifs, .dm-bloc > sbs-frise{margin:0}
.dm-tableau{margin:2em 0;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.dm-tableau table{width:100%;border-collapse:collapse;font-size:.95em}
.dm-tableau th,.dm-tableau td{padding:.6em .8em;border-bottom:1px solid rgba(22,41,90,.12);text-align:left;vertical-align:top}
.dm-tableau thead th{background:var(--dm-creme,#f6efe0);font-weight:700}
@media (max-width:640px){
  .dm-tableau table,.dm-tableau tbody,.dm-tableau tr,.dm-tableau td{display:block;width:100%}
  .dm-tableau thead{display:none}
  .dm-tableau tr{background:#fff;border:1px solid rgba(22,41,90,.12);border-radius:14px;padding:.4em .2em;margin:0 0 .9em;box-shadow:0 4px 14px rgba(22,41,90,.06)}
  .dm-tableau td{border:0;padding:.35em .9em;overflow-wrap:break-word}
  .dm-tableau td[data-label]::before{content:attr(data-label);display:block;font-size:.8em;font-weight:700;color:var(--dm-encre,#16295a);opacity:.7}
}

/* Contact : le formulaire tient entier au-dessus du pli (1440×780, 390×700) */
.dm-tete--contact{padding-bottom:18px}
.dm-tete--contact .dm-chapo{margin-top:6px}
.dm-tete--contact + .dm-section{padding-top:26px}
.dm-form--contact .dm-champ--zone{height:104px;min-height:104px}
@media (max-width:640px){
  .dm-tete--contact h1{font-size:34px}
  .dm-tete--contact .dm-chapo{display:none}
  .dm-tete--contact + .dm-section{padding-top:16px}
  .dm-form--contact .dm-form-corps{padding:16px 16px 18px}
  .dm-form--contact .dm-champs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dm-form--contact .dm-champ--zone{height:84px;min-height:84px}
  .dm-form--contact .dm-form-titre{margin-bottom:6px}
  .dm-form--contact .dm-case{font-size:13px}
}
.dm-logo-img{object-fit:contain}
/* 19/10 (juge) : l'enveloppe <figure class="dm-bloc"> des encadrés d'article héritait de la carte .dm-bloc (colonne photo de 200 px) → texte un mot par ligne à côté d'un vide. */
figure.dm-bloc{display:block;background:none;box-shadow:none;border-radius:0;overflow:visible;margin:2em 0;grid-template-columns:none}
figure.dm-bloc > *{width:100%;max-width:none}
figure.dm-bloc p{font-size:inherit;color:inherit}
