/**
 * canardises-carte.css — section « Où acheter mes produits » (page À propos).
 * S'appuie sur les tokens --cdv-* de canardises-design-system.css (thème enfant),
 * chargés sur tout le site public. Portée : .canardises-carte-section.
 */

.canardises-carte-section {
	border-top: 1px solid var(--cdv-border);
}

/* Élargi le 02/09 (retour exploitant « centrée sur la gauche, utiliser
 * toute la largeur ») : cette section reste par ailleurs un .cdv-container
 * classique (centré, largeur = --cdv-container = 1200px), ce qui la fait
 * paraître étroite/tassée par rapport aux bandes pleine largeur du reste
 * de la page. Repris ici le même gabarit "large" que .alignwide dans
 * canardises-blocks.css (88vw) plutôt que --cdv-container — la carte et
 * les listes en dessous (déjà en width:100% de leur parent) en profitent
 * directement, sans autre changement. */
/* max-width seul ne suffit pas : .cdv-container a width:100%, qui se
 * calcule sur le conteneur parent (.canardises-native-content, plafonné à
 * --cdv-container = 1200px) — il faut sortir de ce plafond, même recette
 * que .alignwide dans canardises-blocks.css (largeur ET marges négatives
 * explicites, pas seulement un max-width plus grand). Sélecteur par id
 * (plutôt que .canardises-carte-section.cdv-container, même spécificité
 * que .canardises-editorial .cdv-container — canardises-editorial.css
 * gagnait le conflit selon l'ordre de chargement) : #ou-acheter l'emporte
 * de façon fiable sans dépendre de l'ordre d'enqueue des feuilles. */
#ou-acheter.cdv-container {
	width: 88vw;
	max-width: 88vw;
	margin-left: calc(50% - 44vw);
	margin-right: calc(50% - 44vw);
}

/* Surtitre + titre + chapô de la section carte : en mode « contenu en blocs
 * natifs », ce sont trois blocs éditables (surtitre / titre / paragraphe)
 * regroupés dans un bloc Groupe .cdv-ouacheter-head, placé dans la page juste
 * avant le shortcode [canardises_points_vente_map]. Par défaut ils resteraient
 * dans la colonne de contenu (1200px) et se tasseraient sur la moitié gauche
 * face à la carte élargie en dessous. On leur applique donc le MÊME gabarit
 * 88vw que #ou-acheter.cdv-container, avec le même padding interne (1.5rem) :
 * le texte s'aligne alors exactement sur la carte. Sélecteur de contexte
 * (.canardises-native-content) pour ne pas toucher l'aperçu de l'éditeur. */
.canardises-native-content > .cdv-ouacheter-head {
	width: 88vw;
	max-width: 88vw;
	margin-left: calc(50% - 44vw);
	margin-right: calc(50% - 44vw);
	padding-inline: 1.5rem;
	box-sizing: border-box;
}

/* .cdv-section-title (32ch) et .cdv-section-intro (60ch) ont des max-width
 * génériques, disproportionnés une fois la zone élargie à 88vw : on les lève
 * ici, aussi bien pour le gabarit figé (#ou-acheter) que pour les blocs
 * éditables (.cdv-ouacheter-head). Pour ces derniers, on préfixe avec
 * .canardises-native-content : à spécificité égale, canardises-blocks.css
 * (qui pose le plafond 32ch/60ch) est chargé APRÈS cette feuille et gagnerait
 * le départage par ordre de cascade. */
#ou-acheter .cdv-section-title,
.canardises-native-content .cdv-ouacheter-head .cdv-section-title,
.canardises-native-content .cdv-ouacheter-head .cdv-section-intro {
	max-width: none;
}

.canardises-carte {
	margin-top: 2rem;
}

/* ---- La carte ---- */
/* Largeur plafonnée + centrée sur grand écran (C30, 2026-09-07) : la section
 * reste en 88vw pour les listes en dessous, mais une carte-ruban de ~1100px
 * de large pour ~520 de haut forçait un zoom si large que la France se
 * noyait dans l'Europe voisine (est-ouest). ~840px de large la ramène à un
 * cadre presque carré où la France remplit l'image. Sous 900px, la carte
 * reprend toute la largeur disponible. */
.canardises-carte__map {
	height: 560px;
	width: 100%;
	max-width: 840px;
	margin-inline: auto;
	border: 1px solid var(--cdv-border-strong);
	border-radius: var(--cdv-radius);
	background: var(--cdv-cream);
	overflow: hidden;
	z-index: 0; /* garde l'en-tête sticky du site au-dessus des tuiles */
}

@media (max-width: 900px) {
	.canardises-carte__map { max-width: none; }
}

@media (max-width: 640px) {
	/* Plus haut qu'avant (380 → 480) : à 380 de haut sur un écran étroit, le
	 * cadre était trop plat pour montrer la tournée nord-sud sans déborder
	 * est-ouest sur les pays voisins. */
	.canardises-carte__map { height: 480px; }
}

.canardises-carte__noscript {
	margin: 0;
	padding: 1.5rem;
	font-size: 0.9rem;
	color: var(--cdv-ink-soft);
}

/* ---- Habillage Leaflet ---- */
.canardises-carte .leaflet-container {
	font-family: var(--cdv-font-body);
	background: var(--cdv-cream);
}

.canardises-carte .leaflet-container a { color: var(--cdv-terracotta); }

.canardises-carte .leaflet-bar a,
.canardises-carte .leaflet-bar a:hover {
	color: var(--cdv-ink);
	border-bottom-color: var(--cdv-border);
}

.canardises-carte .leaflet-bar {
	border: 1px solid var(--cdv-border-strong);
	border-radius: var(--cdv-radius);
	box-shadow: none;
}

.canardises-carte .leaflet-control-attribution {
	background: rgba(255, 255, 255, 0.82);
	font-size: 0.68rem;
	color: var(--cdv-ink-faint);
}

/* Camion posé sur le tracé — le conteneur est positionné par Leaflet,
 * l'élément .cdv-truck-rot à l'intérieur porte la rotation (sens de la route). */
.canardises-carte__truck {
	background: none;
	border: 0;
	overflow: visible;
	display: flex;
	align-items: center;
	justify-content: center;
}
.canardises-carte__truck .cdv-truck-rot {
	display: block;
	transform-origin: 50% 50%;
	transition: transform 0.25s ease;
	/* C30, 2026-09-07 : liseré blanc + ombre portée renforcée pour que le
	 * camion se détache nettement du fond de carte (avant : une seule ombre
	 * discrète, l'icône se perdait). */
	filter: drop-shadow(0 0 3px #fff) drop-shadow(0 3px 5px rgba(91, 14, 26, 0.5));
}
.canardises-carte__truck img.cdv-truck-rot {
	/* Agrandi (54 → 72 px) — C30 : trop peu visible à 54. */
	width: 72px;
	height: auto;
}
.canardises-carte__truck span.cdv-truck-rot {
	font-size: 34px;
	line-height: 1;
}

/* Bulles */
.canardises-carte .leaflet-popup-content-wrapper {
	border-radius: var(--cdv-radius);
	border-top: 3px solid var(--cdv-amber);
	box-shadow: 0 14px 34px rgba(91, 14, 26, 0.16);
}
.canardises-carte .leaflet-popup-content { margin: 0.9rem 1.1rem; }

.cdv-pop__title {
	margin: 0;
	font-family: var(--cdv-font-display);
	font-size: 1.05rem;
	color: var(--cdv-ink);
}
.cdv-pop__num {
	display: inline-block;
	min-width: 1.4em;
	padding: 0 0.35em;
	margin-right: 0.15em;
	background: var(--cdv-terracotta);
	color: var(--cdv-cream);
	border-radius: var(--cdv-radius);
	font-family: var(--cdv-font-body);
	font-size: 0.8rem;
	text-align: center;
}
.cdv-pop__ville {
	margin: 0.15rem 0 0.6rem;
	color: var(--cdv-ink-faint);
	font-size: 0.85rem;
}
.cdv-pop__dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.15rem 0.6rem;
	font-size: 0.82rem;
}
.cdv-pop__dl dt {
	color: var(--cdv-ink-faint);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.68rem;
	align-self: baseline;
}
.cdv-pop__dl dd { margin: 0; color: var(--cdv-ink); }
.cdv-pop__note {
	margin: 0.6rem 0 0;
	font-size: 0.8rem;
	color: var(--cdv-ink-soft);
}

/* ---- Légende ---- */
/* Étalée sur toute la largeur de la carte : les 5 entrées se répartissent
 * d'un bord à l'autre (space-between) au lieu de se tasser à gauche. Sur une
 * largeur trop étroite pour tenir en une ligne, flex-wrap reprend la main et
 * les entrées passent à la ligne, calées à gauche. */
.canardises-carte__legende {
	list-style: none;
	margin: 0.9rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.4rem;
	font-size: 0.82rem;
	color: var(--cdv-ink-soft);
}

/* En mode « contenu en blocs natifs », canardises-blocks.css plafonne tout
 * <ul>/<ol> de .canardises-native-content à 68ch — ce qui rabougrit la légende
 * (et les listes) de la carte, sans rapport avec du texte courant. On lève ce
 * plafond pour cette seule section, via #ou-acheter (sélecteur par id :
 * l'emporte quel que soit l'ordre de chargement des feuilles). */
#ou-acheter .canardises-carte__legende,
#ou-acheter .canardises-carte__etapes,
#ou-acheter .canardises-carte__pts {
	max-width: none;
}
.canardises-carte__legende li {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}
.canardises-carte__key {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px var(--cdv-border-strong);
	flex: 0 0 auto;
}
.canardises-carte__key--route {
	width: 22px;
	height: 0;
	border: 0;
	border-top: 4px solid var(--cdv-terracotta);
	border-radius: 0;
	box-shadow: none;
}
.canardises-carte__key--truck {
	border: 0;
	box-shadow: none;
	width: auto;
	height: auto;
	font-size: 15px;
}
.canardises-carte__key--public { background: #2f7d33; }
.canardises-carte__key--ferme { background: #5b6b7a; }
.canardises-carte__key--base { background: #a9762f; }

/* ---- Listes sous la carte ---- */
/* Pensé mobile : une seule colonne par défaut. Il ne reste que 2 blocs
 * (« Tournée de livraison » et « Points de vente ouverts au public » — le
 * bloc « Réseaux professionnels » a été retiré du rendu le 2026-09-06) :
 * au-delà de 900px on passe à 2 colonnes, dans un conteneur plafonné et
 * centré dans la section large (88vw) plutôt qu'étiré sur toute sa largeur. */
.canardises-carte__listes {
	margin: 2.5rem auto 0;
	max-width: 760px;
	display: grid;
	gap: 2rem 2.5rem;
}
@media (min-width: 900px) {
	.canardises-carte__listes { grid-template-columns: repeat(2, 1fr); }
}

.canardises-carte__bloc h3 {
	font-family: var(--cdv-font-display);
	font-weight: 400;
	font-size: 1.2rem;
	margin: 0 0 0.75rem;
	color: var(--cdv-ink);
	border-top: 1px solid var(--cdv-border);
	padding-top: 1rem;
}
.canardises-carte__bloc-intro {
	margin: 0 0 0.9rem;
	font-size: 0.85rem;
	line-height: 1.55;
	color: var(--cdv-ink-faint);
}
.canardises-carte__etapes,
.canardises-carte__pts {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.7rem;
}
.canardises-carte__etapes { counter-reset: etape; }
.canardises-carte__etapes > li {
	counter-increment: etape;
	position: relative;
	padding-left: 2rem;
	font-size: 0.88rem;
	line-height: 1.45;
}
.canardises-carte__etapes > li::before {
	content: counter(etape);
	position: absolute;
	left: 0;
	top: 0;
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cdv-terracotta-soft);
	border: 1px solid var(--cdv-border-strong);
	border-radius: 50%;
	font-size: 0.72rem;
	color: var(--cdv-terracotta-deep);
}
.canardises-carte__pts > li {
	font-size: 0.88rem;
	line-height: 1.45;
	border-bottom: 1px solid var(--cdv-border-soft);
	padding-bottom: 0.7rem;
}
.canardises-carte__pts > li:last-child { border-bottom: 0; }

.canardises-carte__ville {
	display: block;
	font-weight: 500;
	color: var(--cdv-ink);
}
.canardises-carte__tag {
	display: block;
	font-size: 0.82rem;
	color: var(--cdv-ink-soft);
}
.canardises-carte__tag--ferme { color: var(--cdv-ink-faint); }
.canardises-carte__meta {
	display: block;
	font-size: 0.8rem;
	color: var(--cdv-ink-faint);
}

/* Pastille « Ponctuel » / « Lors de la tournée » dans la liste des points publics */
.canardises-carte__nature {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.05rem 0.45rem;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	vertical-align: 0.08em;
	border: 1px solid var(--cdv-border-strong);
	color: var(--cdv-ink-soft);
	background: var(--cdv-cream);
}
.canardises-carte__nature--ponctuel {
	color: var(--cdv-terracotta-deep);
	border-color: rgba(151, 54, 43, 0.35);
	background: var(--cdv-terracotta-soft);
}
