/* Cavac - Jardineries — fiche et liste des magasins
   Couleurs du thème enfant (--jc-*), valeurs de repli pour un autre thème. Cibles tactiles de 44 px. */

.jc-fiche,
.jc-liste,
.jc-contenu {
	--jcf-vert: var(--jc-vert, #01694e);
	--jcf-vert-fonce: var(--jc-vert-fonce, #014b38);
	--jcf-pale: var(--jc-vert-pale, #e9f2d2);
	--jcf-fond: var(--jc-vert-fond, #f4f8ec);
	--jcf-encre: var(--jc-encre, #2f3542);
	--jcf-gris: var(--jc-gris, #474d5d);
	--jcf-bord: var(--cmswp-border, #d9dfd0);
	--jcf-rayon: var(--cmswp-radius, 10px);
	--jcf-rayon-lg: var(--cmswp-radius-lg, 16px);
}

/* ── Boutons ── */

.jc-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4em;
	min-height: 44px;
	padding: .55em 1.1em;
	border: 2px solid var(--jcf-vert);
	border-radius: 999px;
	background: #fff;
	color: var(--jcf-vert-fonce);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.jc-bouton:hover { background: var(--jcf-pale); color: var(--jcf-vert-fonce); }
.jc-bouton--plein { background: var(--jcf-vert); color: #fff; }
.jc-bouton--plein:hover { background: var(--jcf-vert-fonce); color: #fff; }
.jc-bouton--large { width: 100%; }

/* ── Fiche : en-tête ── */

.jc-fiche__entete {
	position: relative;
	background: var(--jcf-fond);
	padding: 1.5rem 0 1.75rem;
	overflow: hidden;
}
.jc-fiche__fond img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.jc-fiche__entete--photo .jc-fiche__fond::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 45, 33, .55) 0%, rgba(1, 45, 33, .82) 100%);
}
.jc-fiche__entete-int { position: relative; }
.jc-fiche__entete--photo { padding: 3rem 0 2rem; color: #fff; }
.jc-fiche__entete--photo .jc-fiche__titre,
.jc-fiche__entete--photo .jc-fiche__enseigne a,
.jc-fiche__entete--photo .jc-fiche__ville,
.jc-fiche__entete--photo .cmswp-breadcrumbs,
.jc-fiche__entete--photo .cmswp-breadcrumbs a { color: #fff; }
.jc-fiche__enseigne {
	margin: 0 0 .25rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: .85rem;
}
.jc-fiche__enseigne a { color: var(--jcf-vert); text-decoration: none; }
.jc-fiche__titre { margin: 0; font-size: clamp(1.8rem, 5vw, 2.75rem); }
.jc-fiche__ville { margin: .25rem 0 0; font-size: 1.1rem; }
.jc-fiche__statut { margin: .75rem 0 0; }
.jc-fiche__entete--photo .jc-badge--ouvert { background: #fff; }
.jc-fiche__entete--photo .jc-badge--ferme { background: #fff; }

.jc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}
.jc-actions__detail { display: none; }
@media (min-width: 640px) {
	.jc-actions__detail { display: inline; }
}

/* Fil d'Ariane (toolkit) sur une ligne */
.jc-fiche .cmswp-breadcrumbs__list,
.jc-liste .cmswp-breadcrumbs__list,
.jc-contenu .cmswp-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	font-size: .9rem;
}
.jc-fiche .cmswp-breadcrumbs__item,
.jc-liste .cmswp-breadcrumbs__item,
.jc-contenu .cmswp-breadcrumbs__item { margin: 0; }

/* ── Fiche : sommaire ── */

.jc-ancres {
	position: sticky;
	top: 0;
	z-index: 5;
	background: #fff;
	border-bottom: 1px solid var(--jcf-bord);
}
.jc-ancres ul {
	display: flex;
	gap: .25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: thin;
}
.jc-ancres a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 .85rem;
	white-space: nowrap;
	color: var(--jcf-encre);
	font-weight: 600;
	text-decoration: none;
}
.jc-ancres a:hover { color: var(--jcf-vert); text-decoration: underline; }
.admin-bar .jc-ancres { top: 32px; }

/* ── Fiche : grille contenu + infos pratiques ── */

.jc-fiche__grille {
	display: grid;
	gap: 2rem;
	padding-top: 1.5rem;
	padding-bottom: 3rem;
}
.jc-fiche__contenu { min-width: 0; }
@media (min-width: 992px) {
	.jc-fiche__grille {
		grid-template-columns: minmax(0, 1fr) 340px;
		grid-template-areas: 'contenu infos';
		align-items: start;
		gap: 3rem;
	}
	.jc-fiche__contenu { grid-area: contenu; }
	.jc-infos { grid-area: infos; position: sticky; top: 60px; }
}

.jc-section { padding: 1.75rem 0; border-top: 1px solid var(--jcf-bord); scroll-margin-top: 64px; }
.jc-section:first-child { border-top: 0; padding-top: 0; }
.jc-section > h2 { margin: 0 0 1rem; font-size: clamp(1.4rem, 3vw, 1.75rem); }
.jc-section h3 { margin: 1.25rem 0 .6rem; font-size: 1.1rem; }

/* ── Infos pratiques ── */

.jc-infos__carte {
	background: var(--jcf-fond);
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon-lg);
	padding: 1.25rem 1.25rem .5rem;
}
.jc-infos__titre { margin: 0 0 .5rem; font-size: 1.3rem; }
.jc-infos__sous-titre {
	margin: 1rem 0 .35rem;
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--jcf-gris);
}
.jc-infos__adresse { font-style: normal; margin: 0 0 .5rem; }
.jc-infos__tel { font-size: 1.15rem; font-weight: 700; }
.jc-infos p { margin: 0 0 .75rem; }
.jc-reseaux { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.jc-reseaux a { display: inline-flex; align-items: center; min-height: 44px; }

.jc-horaires { width: 100%; border-collapse: collapse; font-size: .95rem; }
.jc-horaires th,
.jc-horaires td { padding: .35rem 0; border-bottom: 1px solid var(--jcf-bord); text-align: left; vertical-align: top; }
.jc-horaires th { font-weight: 600; padding-right: .75rem; white-space: nowrap; }
.jc-horaires td { text-align: right; }
.jc-horaires tr.is-today th,
.jc-horaires tr.is-today td { color: var(--jcf-vert-fonce); font-weight: 700; }
.jc-horaires tr.is-today th::after { content: ' (aujourd\'hui)'; font-weight: 400; font-size: .85em; }
.jc-horaires__saison,
.jc-horaires__note { font-size: .9rem; color: var(--jcf-gris); }
.jc-horaires__saison { font-weight: 700; color: var(--jcf-vert-fonce); }
.jc-fermetures { margin-top: .75rem; padding: .75rem; background: #fff; border-left: 4px solid var(--jc-rouge, #c62828); border-radius: 6px; font-size: .9rem; }
.jc-fermetures__titre { font-weight: 700; margin: 0 0 .35rem; }
.jc-fermetures ul { margin: 0; padding-left: 1.1rem; }

/* ── À la une : cartes ── */

.jc-cartes {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.jc-carte-contenu {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon);
	overflow: hidden;
}
.jc-carte-contenu:focus-within,
.jc-carte-contenu:hover { border-color: var(--jcf-vert); box-shadow: 0 4px 14px rgba(1, 75, 56, .12); }
.jc-carte__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--jcf-pale); }
.jc-carte__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.jc-carte__corps { padding: .85rem 1rem 1rem; }
.jc-carte__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0 0 .4rem; font-size: .9rem; }
.jc-carte__quand { color: var(--jcf-gris); }
.jc-carte__titre { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.jc-carte__titre a { color: var(--jcf-encre); text-decoration: none; }
.jc-carte__titre a::after { content: ''; position: absolute; inset: 0; }	/* carte entière cliquable */
.jc-carte__titre a:focus-visible { outline: none; }
.jc-carte-contenu:focus-within { outline: 3px solid var(--jc-focus, #1a5fb4); outline-offset: 2px; }

/* ── Photos ── */

.jc-equipe { margin: 0 0 1rem; }
.jc-equipe img { width: 100%; height: auto; border-radius: var(--jcf-rayon); display: block; }
.jc-equipe figcaption { margin-top: .4rem; color: var(--jcf-gris); font-size: .9rem; }
.jc-galerie {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.jc-galerie__lien { display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; }
.jc-galerie__lien img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s; }
.jc-galerie__lien:hover img { transform: scale(1.03); }
.jc-galerie__lien, .jc-equipe__lien { cursor: zoom-in; }
.jc-galerie__lien:focus-visible, .jc-equipe__lien:focus-visible { outline: 3px solid var(--jcf-vert); outline-offset: 3px; }
.jc-equipe__lien { display: block; border-radius: var(--jcf-rayon); overflow: hidden; }

/* ── Visionneuse des photos ── */
.jc-visio {
	width: 100vw;
	height: 100vh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(8, 12, 10, .97);
	color: #fff;
	overflow: hidden;
}
.jc-visio::backdrop { background: rgba(10, 14, 12, .6); }
.jc-visio[open] { display: flex; align-items: center; justify-content: center; }
.jc-visio__cadre {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	width: 100%;
	height: 100%;
	padding: 3.5rem 4rem 3rem;
	box-sizing: border-box;
}
.jc-visio__img {
	max-width: 100%;
	max-height: calc(100vh - 9rem);
	object-fit: contain;
	border-radius: 6px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .5);
	transition: opacity .2s, filter .2s;
}
.jc-visio__img.is-chargement { filter: blur(2px); opacity: .85; }
.jc-visio__legende { font-size: .95rem; text-align: center; max-width: 60ch; color: #e8ece6; }
.jc-visio__compteur { position: absolute; top: 1rem; left: 1.25rem; margin: 0; font-size: .9rem; color: #cfd6cc; }
.jc-visio__btn {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
}
.jc-visio__btn:hover { background: rgba(255, 255, 255, .26); }
.jc-visio__btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.jc-visio__fermer { top: .75rem; right: .75rem; }
.jc-visio__prec { left: .75rem; top: 50%; transform: translateY(-50%); }
.jc-visio__suiv { right: .75rem; top: 50%; transform: translateY(-50%); }
.jc-visio__btn[hidden] { display: none; }
@media (max-width: 600px) {
	.jc-visio__cadre { padding: 3.5rem .5rem 4.5rem; }
	.jc-visio__img { max-height: calc(100vh - 10rem); }
	.jc-visio__prec, .jc-visio__suiv { top: auto; bottom: .75rem; transform: none; }
	.jc-visio__prec { left: 25%; }
	.jc-visio__suiv { right: 25%; }
}
@media (prefers-reduced-motion: reduce) { .jc-visio__img { transition: none; } }

/* ── Rayons, services, marques ── */

.jc-termes { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.jc-terme__lien {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .3rem .9rem;
	border: 1px solid var(--jcf-bord);
	border-radius: 999px;
	background: #fff;
	color: var(--jcf-encre);
	text-decoration: none;
	font-size: .95rem;
}
.jc-terme__lien:hover { border-color: var(--jcf-vert); color: var(--jcf-vert-fonce); }
.jc-terme__picto { width: 30px; height: 30px; object-fit: contain; }
.jc-terme--picto .jc-terme__lien { padding-left: .4rem; }

/* ── Marques : logos (fiche, annuaire, page de la marque) ── */
.jc-marques { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.jc-marque {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 84px;
	padding: .75rem 1rem;
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon);
	background: #fff;
	color: var(--jcf-encre);
	text-decoration: none;
	font-weight: 600;
	text-align: center;
	transition: border-color .15s, box-shadow .15s;
}
.jc-marque img { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.jc-marque:hover { border-color: var(--jcf-vert); box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }
.jc-marque:focus-visible { outline: 3px solid var(--jcf-vert); outline-offset: 2px; }
.jc-magasin__marques { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .2rem 0 0; padding: 0; list-style: none; }
.jc-magasin__marques li { display: flex; align-items: center; height: 30px; padding: 3px 7px; border: 1px solid var(--jcf-bord); border-radius: 6px; background: #fff; }
.jc-magasin__marques img { display: block; height: 18px; width: auto; max-width: 92px; object-fit: contain; }
.jc-magasin__marques-plus { font-size: .8rem; color: var(--jcf-gris); font-weight: 600; }
.jc-liste__logo { margin: .5rem 0 .25rem; }
.jc-liste__logo img { display: block; height: 56px; width: auto; max-width: 260px; object-fit: contain; padding: .5rem .9rem; background: #fff; border-radius: var(--jcf-rayon); }
@media (prefers-reduced-motion: reduce) { .jc-marque { transition: none; } }

/* ── Accès ── */

.jc-plan {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .75rem;
	padding: 1.25rem;
	margin: 0 0 1rem;
	background: var(--jcf-fond);
	border-radius: var(--jcf-rayon);
}
.jc-plan__invite { margin: 0; color: var(--jcf-gris); font-size: .9rem; }
.jc-plan__carte { width: 100%; height: 340px; border-radius: var(--jcf-rayon); }
.jc-plan:has(.jc-plan__carte) { padding: 0; background: none; }

/* ── Liste des magasins ── */

.jc-liste__entete { background: var(--jcf-fond); padding: 1.75rem 0 1.5rem; }
.jc-liste__entete h1 { margin: 0 0 .5rem; }
.jc-liste__intro { max-width: 46rem; }
.jc-liste__intro p:last-child { margin-bottom: 0; }
.jc-liste__carte { padding: 1.5rem 0 0; }
.jc-liste__corps { padding-top: 1.5rem; padding-bottom: 3rem; }

.jc-filtres {
	display: grid;
	gap: 1rem;
	align-items: end;
	padding: 1rem 1.25rem;
	margin: 0 0 1rem;
	background: #fff;
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon-lg);
}
.jc-filtres[hidden] { display: none; }
@media (min-width: 768px) {
	.jc-filtres { grid-template-columns: minmax(220px, 1.2fr) auto auto; }
}
.jc-filtres p { margin: 0; }
.jc-filtres__champ label { display: block; font-weight: 600; margin-bottom: .3rem; }
.jc-filtres__champ input {
	width: 100%;
	min-height: 44px;
	padding: .5rem .75rem;
	border: 1px solid var(--jcf-gris);
	border-radius: 8px;
	font-size: 1rem;
}
.jc-filtres fieldset { display: flex; flex-wrap: wrap; gap: .25rem .75rem; margin: 0; padding: 0; border: 0; }
.jc-filtres legend { float: none; font-size: 1rem; font-family: inherit; font-weight: 600; line-height: 1.4; margin-bottom: .3rem; padding: 0; width: 100%; color: inherit; }
.jc-filtres fieldset label,
.jc-filtres__ouvert label { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; cursor: pointer; }
.jc-filtres input[type='radio'],
.jc-filtres input[type='checkbox'] { width: 1.15rem; height: 1.15rem; accent-color: var(--jcf-vert); }

.jc-liste__compte { font-weight: 600; color: var(--jcf-gris); margin: 0 0 .75rem; }
.jc-magasins {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.jc-magasin {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon);
	overflow: hidden;
}
.jc-magasin[hidden] { display: none; }
.jc-magasin:hover,
.jc-magasin:focus-within { border-color: var(--jcf-vert); box-shadow: 0 4px 14px rgba(1, 75, 56, .12); }
.jc-magasin:has(.jc-magasin__lien:focus-visible) { outline: 3px solid var(--jc-focus, #1a5fb4); outline-offset: 2px; }
.jc-magasin__lien:focus-visible { outline: none; }
.jc-magasin__lien:hover { color: var(--jcf-vert); text-decoration: underline; }
.jc-magasin__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--jcf-pale); }
.jc-magasin__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.jc-magasin__corps { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; gap: .35rem; }
.jc-magasin__corps p { margin: 0; }
.jc-magasin__enseigne { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--jcf-vert); }
.jc-magasin__nom { margin: 0; font-size: 1.15rem; line-height: 1.3; }
.jc-magasin__lien { color: var(--jcf-encre); text-decoration: none; }
.jc-magasin__lien::after { content: ''; position: absolute; inset: 0; }
.jc-magasin__ville { color: var(--jcf-gris); font-size: .95rem; }
.jc-magasin__tel { position: relative; z-index: 1; }	/* au-dessus du lien de la carte */
.jc-magasin__appel { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.jc-liste__vide { padding: 1.5rem; background: var(--jcf-fond); border-radius: var(--jcf-rayon); }

@media (prefers-reduced-motion: reduce) {
	.jc-galerie__lien img { transition: none; }
}

/* ── Accueil ── */

.jc-accueil {
	--jcf-vert: var(--jc-vert, #01694e);
	--jcf-vert-fonce: var(--jc-vert-fonce, #014b38);
	--jcf-pale: var(--jc-vert-pale, #e9f2d2);
	--jcf-fond: var(--jc-vert-fond, #f4f8ec);
	--jcf-encre: var(--jc-encre, #2f3542);
	--jcf-gris: var(--jc-gris, #474d5d);
	--jcf-bord: var(--cmswp-border, #d9dfd0);
	--jcf-rayon: var(--cmswp-radius, 10px);
	--jcf-rayon-lg: var(--cmswp-radius-lg, 16px);
}

.jc-bandeau {
	position: relative;
	overflow: hidden;
	padding: 2.5rem 0 2.25rem;
	background: var(--jcf-fond);
}
.jc-bandeau--photo { padding: 4rem 0 3rem; color: #fff; }
.jc-bandeau__fond img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jc-bandeau--photo .jc-bandeau__fond::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 45, 33, .5) 0%, rgba(1, 45, 33, .85) 100%);
}
.jc-bandeau__int { position: relative; max-width: 960px; }
.jc-bandeau__titre { margin: 0; font-size: clamp(1.8rem, 4.6vw, 3rem); }
.jc-bandeau--photo .jc-bandeau__titre { color: #fff; }
.jc-bandeau__accroche { margin: .75rem 0 0; font-size: clamp(1.05rem, 2.2vw, 1.25rem); max-width: 44rem; }

.jc-trouver {
	margin: 1.75rem 0 0;
	padding: 1rem;
	background: #fff;
	border-radius: var(--jcf-rayon-lg);
	box-shadow: 0 8px 24px rgba(1, 45, 33, .14);
	color: var(--jcf-encre);
	max-width: 44rem;
}
.jc-trouver__label { display: block; font-weight: 700; margin: 0 0 .5rem; font-size: 1.05rem; }
.jc-trouver__ligne { display: flex; flex-wrap: wrap; gap: .5rem; }
.jc-trouver__ligne input {
	flex: 1 1 14rem;
	min-height: 48px;
	padding: .5rem .85rem;
	border: 1px solid var(--jcf-gris);
	border-radius: 999px;
	font-size: 1rem;
}
.jc-trouver__ligne .jc-bouton { min-height: 48px; }

.jc-enseignes { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.jc-enseigne {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	min-height: 48px;
	padding: .35rem 1rem .35rem .4rem;
	background: #fff;
	border: 2px solid transparent;
	border-radius: 999px;
	color: var(--jcf-encre);
	font-weight: 700;
	text-decoration: none;
}
.jc-enseigne:hover { border-color: var(--jcf-vert); color: var(--jcf-vert-fonce); }
.jc-enseigne__logo { width: 38px; height: 38px; object-fit: contain; border-radius: 50%; }
.jc-enseigne__nb { font-weight: 400; color: var(--jcf-gris); }
.jc-bandeau__tous { margin: 1rem 0 0; }
.jc-bandeau--photo .jc-bandeau__tous a { color: #fff; }

.jc-bloc { padding: 3rem 0; }
.jc-bloc--alt { background: var(--jcf-fond); }
.jc-bloc__titre { margin: 0 0 .5rem; font-size: clamp(1.5rem, 3.2vw, 2rem); }
.jc-bloc__intro { margin: 0 0 1.5rem; color: var(--jcf-gris); }
.jc-bloc__titre + .jc-cartes,
.jc-bloc__titre + .jc-magasins { margin-top: 1.25rem; }
.jc-bloc__liens { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; }

.jc-tuiles {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.jc-tuile {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: .4rem;
	height: 100%;
	padding: 1rem .75rem;
	background: #fff;
	border: 1px solid var(--jcf-bord);
	border-radius: var(--jcf-rayon);
	text-align: center;
	text-decoration: none;
	color: var(--jcf-encre);
}
.jc-tuile:hover { border-color: var(--jcf-vert); box-shadow: 0 4px 14px rgba(1, 75, 56, .12); }
.jc-tuile__picto { width: 64px; height: 64px; object-fit: contain; }
.jc-tuile__picto--vide { display: block; border-radius: 50%; background: var(--jcf-pale); }
.jc-tuile__nom { font-weight: 700; line-height: 1.25; }
.jc-tuile__nb { font-size: .85rem; color: var(--jcf-gris); }

.jc-cavac__grille { display: grid; gap: 2rem; }
@media (min-width: 992px) {
	.jc-cavac__grille { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }
}
.jc-cavac__texte h2 { margin-top: 0; }
.jc-reseaux--grands { gap: .5rem; }

.jc-liste__proximite { padding: .75rem 1rem; margin: 0 0 1rem; background: var(--jcf-pale); border-radius: var(--jcf-rayon); font-weight: 600; }
.jc-magasin__distance { font-weight: 700; color: var(--jcf-vert-fonce); }
.jc-magasin__distance[hidden] { display: none; }
.jc-cavac__texte h2 { font-size: clamp(1.5rem, 3.2vw, 2rem); margin-bottom: .75rem; }
.jc-accueil .jc-magasins { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }

/* ── Bandeaux sur photo : textes toujours lisibles (priment sur les liens soulignés du thème) ── */

.jc-fiche__entete--photo .jc-fiche__fond::after,
.jc-bandeau--photo .jc-bandeau__fond::after {
	background: linear-gradient(180deg, rgba(1, 38, 28, .72) 0%, rgba(1, 38, 28, .88) 100%);
}
.jc-fiche__entete--photo,
.jc-bandeau--photo { text-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
.theme-jardineries .jc-fiche__entete--photo a:not(.jc-bouton),
.theme-jardineries .jc-bandeau--photo a:not(.jc-bouton):not(.jc-enseigne) { color: #fff; }
.theme-jardineries .jc-fiche__entete--photo .jc-fiche__enseigne a { text-decoration: none; letter-spacing: .08em; }
.jc-fiche__entete--photo .jc-badge,
.jc-fiche__entete--photo .jc-bouton,
.jc-bandeau--photo .jc-trouver { text-shadow: none; }
.jc-fiche__entete--photo .cmswp-breadcrumbs__item:last-child { opacity: .9; }

/* ── Actualités, offres, animations ── */

.jc-contenu__entete { background: var(--jc-vert-fond, #f4f8ec); padding: 1.75rem 0 1.5rem; }
.jc-contenu__etroit { max-width: 960px; }
.jc-contenu__titre { margin: .35rem 0 0; font-size: clamp(1.7rem, 4vw, 2.5rem); }
.jc-contenu__quand { font-weight: 700; color: var(--jc-vert-fonce, #014b38); }
.jc-contenu__ou { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1rem 0 0; }
.jc-contenu__ou-libelle { font-weight: 600; }
.jc-contenu__grille { display: grid; gap: 2rem; padding-top: 2rem; padding-bottom: 1rem; max-width: 960px; }
@media (min-width: 900px) {
	.jc-contenu__grille:not(.jc-contenu__grille--texte) { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
}
.jc-contenu__visuel { margin: 0; }
.jc-contenu__zoom { position: relative; display: block; border-radius: var(--cmswp-radius, 10px); overflow: hidden; background: var(--jc-vert-fond, #f4f8ec); }
.jc-contenu__zoom img { display: block; width: 100%; height: auto; }	/* affiche entière, jamais recadrée */
.jc-contenu__agrandir {
	position: absolute;
	right: .5rem;
	bottom: .5rem;
	padding: .25rem .6rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--jc-vert-fonce, #014b38);
	font-size: .85rem;
	font-weight: 600;
}
.jc-contenu__texte { min-width: 0; }
.jc-contenu__texte > :first-child { margin-top: 0; }
.jc-contenu__suite { padding-bottom: 3rem; }
.jc-carte__extrait { margin: .5rem 0 0; color: var(--jc-gris, #474d5d); font-size: .95rem; line-height: 1.5; }
.jc-contenus .jc-cartes { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.jc-contenus .jc-carte__media img,
.jc-accueil .jc-carte__media img,
.jc-fiche .jc-carte__media img { object-position: top; }

/* Carte de l'accueil : moins haute sur mobile (le doigt doit pouvoir faire défiler la page) */
@media (max-width: 640px) {
	.jc-carte-accueil .csl-locator { --csl-h: 320px !important; }
}
.jc-carte-accueil .csl-locator { border-radius: var(--jcf-rayon-lg, 16px); overflow: hidden; }

/* ── Fiche Google (1.13.0) ── */
.jc-google { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .5rem; padding: 0; list-style: none; }
.jc-bouton--avis span[aria-hidden] { color: #f2b708; }
