/* Marché de la Guichardière - feuille de style du site public
   Couleurs tirées du logo : rouge cerise (principal), rose framboise, vert pomme, jaune, brun poulet. */

:root{
  --rouge:#c41a1f; --rouge-fonce:#9e1418; --rouge-pale:#fdeceb;
  --rose:#e0335a; --vert:#8dc21f; --vert-fonce:#5f8a0f; --jaune:#f5cf2a; --brun:#d2834f;
  --texte:#3a2a26; --texte-doux:#6b5852; --fond:#fffaf4; --creme:#fdf1e6; --carte:#fff; --bord:#f1e4d6;
  --ombre:0 6px 20px rgba(158,20,24,.07);
  --rayon:18px;
  --police:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--fond);color:var(--texte);font:17px/1.65 var(--police)}
img{max-width:100%;height:auto}
a{color:var(--rouge)}
a:hover{color:var(--rouge-fonce)}
:focus-visible{outline:3px solid var(--jaune);outline-offset:2px}
h1,h2,h3{line-height:1.2;color:var(--texte);margin:0 0 .5em}
h1{font-size:clamp(28px,4.5vw,42px);color:var(--rouge)}
h2{font-size:clamp(23px,3.2vw,30px)}
h3{font-size:20px}
p{margin:0 0 1em}
.conteneur{width:100%;max-width:1160px;margin:0 auto;padding:0 16px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lien-evitement{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;z-index:100}
.lien-evitement:focus{left:8px}

/* ---------- En-tête ---------- */
.entete{background:#fff;border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:50}
.entete .conteneur{display:flex;align-items:center;gap:20px;min-height:76px}
.entete .logo img{display:block;height:56px;width:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a{padding:10px 12px;border-radius:999px;text-decoration:none;color:var(--texte);font-weight:600;font-size:16px}
.nav a:hover,.nav a[aria-current=page]{background:var(--rouge-pale);color:var(--rouge)}
.nav .nav-commander{background:var(--rouge);color:#fff}
.nav .nav-commander:hover,.nav .nav-commander[aria-current=page]{background:var(--rouge-fonce);color:#fff}
.icones{display:flex;gap:6px;align-items:center}
.icone{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--texte);text-decoration:none}
.icone:hover{background:var(--creme);color:var(--rouge)}
.icone svg{width:24px;height:24px}
.pastille-panier{position:absolute;top:2px;right:0;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--rouge);color:#fff;font-size:12px;font-weight:700;line-height:20px;text-align:center}
.burger{display:none;background:none;border:0;width:44px;height:44px;border-radius:50%;cursor:pointer;color:var(--texte)}
.burger svg{width:28px;height:28px}
@media (max-width:900px){
  .burger{display:inline-flex;align-items:center;justify-content:center;order:3}
  .icones{margin-left:auto}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:8px 16px 16px;border-bottom:1px solid var(--bord);box-shadow:var(--ombre)}
  .nav.ouvert{display:flex}
  .nav a{padding:14px 16px}
  .entete .logo img{height:46px}
}

/* ---------- Boutons ---------- */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;border:2px solid var(--rouge);background:var(--rouge);color:#fff;font:700 16px/1.2 var(--police);text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.bouton:hover{background:var(--rouge-fonce);border-color:var(--rouge-fonce);color:#fff;transform:translateY(-1px)}
.bouton-contour{background:#fff;color:var(--rouge)}
.bouton-contour:hover{background:var(--rouge-pale);color:var(--rouge)}
.bouton-vert{background:var(--vert-fonce);border-color:var(--vert-fonce)}
.bouton-vert:hover{background:#4c700b;border-color:#4c700b}
.bouton-petit{padding:8px 16px;font-size:14px}
.bouton[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* ---------- Héros ---------- */
.heros{position:relative;overflow:hidden;padding:56px 0 64px;background:
  radial-gradient(circle at 6% 20%, rgba(141,194,31,.18) 0 140px, transparent 141px),
  radial-gradient(circle at 94% 14%, rgba(245,207,42,.22) 0 110px, transparent 111px),
  radial-gradient(circle at 90% 92%, rgba(196,26,31,.09) 0 160px, transparent 161px),
  var(--fond)}
.heros .conteneur{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.heros .accroche{font-size:19px;color:var(--texte-doux);max-width:560px}
.heros .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.heros-visuel{background:#fff;border-radius:28px;padding:28px;box-shadow:var(--ombre);text-align:center}
.heros-visuel img{mix-blend-mode:multiply}
.badge{display:inline-block;padding:5px 14px;border-radius:999px;background:var(--vert);color:#fff;font-weight:700;font-size:13px;letter-spacing:.05em;text-transform:uppercase}
.badge-rouge{background:var(--rouge)}
.badge-jaune{background:var(--jaune);color:var(--texte)}
.badge-gris{background:#e7ddd6;color:var(--texte-doux)}
@media (max-width:800px){ .heros{padding:32px 0 40px} .heros .conteneur{grid-template-columns:1fr} .heros-visuel{order:-1;padding:18px} }

/* ---------- Sections ---------- */
.section{padding:56px 0}
.section-creme{background:var(--creme)}
.section-titre{text-align:center;max-width:720px;margin:0 auto 32px}
.section-titre p{color:var(--texte-doux)}
.grille{display:grid;gap:20px}
.grille-3{grid-template-columns:repeat(3,1fr)}
.grille-2{grid-template-columns:repeat(2,1fr)}
@media (max-width:900px){ .grille-3{grid-template-columns:1fr 1fr} }
@media (max-width:640px){ .grille-3,.grille-2{grid-template-columns:1fr} .section{padding:40px 0} }
.carte{background:var(--carte);border:1px solid var(--bord);border-radius:var(--rayon);padding:24px;box-shadow:var(--ombre)}
.carte h3{color:var(--rouge)}
.carte-campagne{display:flex;flex-direction:column;gap:8px}
.carte-campagne .bouton{margin-top:auto;align-self:flex-start}
.puce{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle}
/* Accueil : sections et encadrés resserrés */
.section-serree{padding:40px 0}
.section-serree .section-titre{margin-bottom:22px}
.section-serree .section-titre h2{margin-bottom:.25em}
.section-serree .section-titre p{margin:0;font-size:16px}
.grille-campagnes{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.etiquette{display:flex;flex-direction:column;gap:3px;padding:14px 16px 14px 18px;background:var(--carte);border:1px solid var(--bord);border-left:5px solid var(--c);border-radius:12px;color:var(--texte);text-decoration:none;transition:transform .15s,box-shadow .15s}
a.etiquette:hover{color:var(--texte);transform:translateY(-2px);box-shadow:var(--ombre)}
.etiquette-titre{font-weight:700;font-size:17px;color:var(--rouge);line-height:1.3}
.etiquette-date{align-self:flex-start;margin:4px 0 2px;padding:2px 10px;border-radius:999px;background:#fdf3c4;color:#6b4e00;font-size:13px;font-weight:700}
.etiquette-info{font-size:14px;color:var(--texte-doux)}
.etiquette-lien{margin-top:6px;font-size:14px;font-weight:700;color:var(--rouge)}
.etiquette-close{opacity:.6}
.etiquette-bientot{border-style:dashed;border-left-style:solid}
.etiquette-bientot .etiquette-titre{color:var(--vert-fonce)}
.etiquette-bientot .etiquette-date{background:#eaf4d9;color:#3f5c0a}
.etiquette-close .etiquette-date{background:#eee;color:var(--texte-doux)}
.rayon{padding:16px 18px;background:var(--carte);border:1px solid var(--bord);border-top:4px solid var(--c);border-radius:12px}
.rayon h3{font-size:17px;color:var(--rouge);margin:0 0 6px}
.rayon p{margin:0;font-size:15px;line-height:1.55;color:var(--texte-doux)}
.accueil-pratique .carte{padding:18px 20px}
.accueil-pratique h2{font-size:21px;margin-bottom:.6em}
.accueil-pratique h3{font-size:17px}
.accueil-pratique p{font-size:15px}
.accueil-pratique .horaires li{padding:6px 0;font-size:15px}

.horaires{list-style:none;margin:0;padding:0}
.horaires li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--bord)}
.horaires li:last-child{border-bottom:0}
.horaires span:first-child{font-weight:700}
.horaires span:last-child{text-align:right;color:var(--texte-doux)}

/* ---------- Catalogue ---------- */
.campagne{margin-bottom:48px;scroll-margin-top:100px}
.campagne-entete{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:8px}
.campagne-entete h2{margin:0;color:var(--rouge)}
.campagne-infos{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--texte-doux);margin-bottom:20px}
.campagne-infos strong{color:var(--texte)}
.produits{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.produit{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--ombre)}
.produit-image{aspect-ratio:4/3;background:var(--creme);display:flex;align-items:center;justify-content:center;overflow:hidden}
.produit-image img{width:100%;height:100%;object-fit:cover}
.produit-image .defaut{width:46%;opacity:.9}
.produit-corps{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.produit-corps h3{margin:0;font-size:19px}
.produit-desc{color:var(--texte-doux);font-size:15px;margin:0}
.declinaisons{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.declinaison{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 12px;background:var(--fond);border:1px solid var(--bord);border-radius:12px}
.declinaison .nom{font-weight:700}
.declinaison .poids{display:block;font-weight:400;font-size:13px;color:var(--texte-doux)}
.declinaison .prix{font-weight:700;color:var(--rouge);white-space:nowrap;text-align:right}
.declinaison .prix small{display:block;font-size:12px;font-weight:400;color:var(--texte-doux)}
.declinaison .epuise{font-size:13px;font-weight:700;color:var(--texte-doux)}
.declinaison .reste{display:block;font-size:12px;color:var(--brun);font-weight:700}
.quantite{display:inline-flex;align-items:center;border:1px solid var(--bord);border-radius:999px;background:#fff}
.quantite button{width:36px;height:36px;border:0;background:none;font-size:20px;line-height:1;color:var(--rouge);cursor:pointer;border-radius:50%}
.quantite button:hover{background:var(--rouge-pale)}
.quantite input{width:38px;border:0;text-align:center;font:700 16px var(--police);background:none;-moz-appearance:textfield}
.quantite input::-webkit-outer-spin-button,.quantite input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.barre-panier{position:sticky;bottom:0;z-index:40;background:#fff;border-top:3px solid var(--rouge);box-shadow:0 -6px 20px rgba(0,0,0,.08);padding:12px 0}
.barre-panier .conteneur{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.barre-panier strong{font-size:18px}
.campagne-close{opacity:.65}

/* ---------- Formulaires ---------- */
.formulaire{display:grid;gap:16px}
.champ label{display:block;font-weight:700;margin-bottom:6px;font-size:15px}
.champ .aide{display:block;font-size:13px;color:var(--texte-doux);margin-top:4px;font-weight:400}
.champ input[type=text],.champ input[type=search],.champ input[type=email],.champ input[type=tel],.champ input[type=password],.champ input[type=date],.champ textarea,.champ select{
  width:100%;padding:12px 14px;border:1px solid #dccbbd;border-radius:12px;font:16px var(--police);background:#fff;color:var(--texte)}
.champ input:focus,.champ textarea:focus,.champ select:focus{border-color:var(--rouge);outline:3px solid rgba(196,26,31,.15)}
.champ textarea{min-height:110px;resize:vertical}
.deux-colonnes{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){ .deux-colonnes{grid-template-columns:1fr} }
.case{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.case input{width:20px;height:20px;margin-top:3px;accent-color:var(--rouge);flex:0 0 20px}
.obligatoire{color:var(--rouge)}
.piege{position:absolute;left:-5000px}
.choix-compte{display:flex;gap:8px;flex-wrap:wrap}
.choix-compte label{flex:1;min-width:200px;display:flex;gap:10px;align-items:center;padding:14px 16px;border:2px solid var(--bord);border-radius:14px;cursor:pointer;font-weight:700;background:#fff}
.choix-compte label:has(input:checked){border-color:var(--rouge);background:var(--rouge-pale)}
.choix-compte input{accent-color:var(--rouge);width:18px;height:18px}

.alerte{padding:14px 18px;border-radius:14px;margin:0 0 18px;font-weight:600}
.alerte-ok{background:#eef7dc;color:#3d5c08;border:1px solid #cfe6a4}
.alerte-erreur{background:#fdeceb;color:#8f1216;border:1px solid #f4c3c1}
.alerte-info{background:var(--creme);color:var(--texte);border:1px solid var(--bord)}

/* ---------- Panier / commande ---------- */
.mise-en-page-commande{display:grid;grid-template-columns:1.4fr .9fr;gap:28px;align-items:start}
@media (max-width:900px){ .mise-en-page-commande{grid-template-columns:1fr} }
.tableau{width:100%;border-collapse:collapse}
.tableau th{text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--texte-doux);padding:10px 8px;border-bottom:2px solid var(--bord)}
.tableau td{padding:14px 8px;border-bottom:1px solid var(--bord);vertical-align:middle}
.tableau .num{text-align:right;white-space:nowrap}
.tableau .petit{display:block;font-size:13px;color:var(--texte-doux)}
@media (max-width:640px){
  .tableau thead{display:none}
  .tableau tr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:12px 0;border-bottom:1px solid var(--bord)}
  .tableau td{border:0;padding:0}
}
.recap{position:sticky;top:100px}
.recap .total{display:flex;justify-content:space-between;font-size:22px;font-weight:800;padding:12px 0;border-top:2px solid var(--bord);margin-top:8px}
.lien-supprimer{background:none;border:0;color:var(--texte-doux);text-decoration:underline;cursor:pointer;font-size:14px;padding:4px}

/* ---------- Pied de page ---------- */
.pied{background:var(--rouge);color:#fff;margin-top:56px;padding:44px 0 24px}
.pied a{color:#fff}
.pied .grille{grid-template-columns:1.2fr 1fr 1fr;gap:28px}
.pied h2{color:#fff;font-size:18px;margin-bottom:12px}
.pied ul{list-style:none;margin:0;padding:0}
.pied li{margin-bottom:6px}
.pied .horaires li{border-color:rgba(255,255,255,.25)}
.pied .horaires span:last-child{color:#fde3e2}
.pied-bas{border-top:1px solid rgba(255,255,255,.25);margin-top:28px;padding-top:16px;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
@media (max-width:800px){ .pied .grille{grid-template-columns:1fr} }

.page-titre{padding:40px 0 8px}
.page-titre p{color:var(--texte-doux);max-width:720px}
.contenu-texte{max-width:820px}
.contenu-texte h2{margin-top:1.4em;color:var(--rouge);font-size:24px}
.grille-compte{grid-template-columns:1.4fr 1fr;align-items:start}
@media (max-width:800px){ .grille-compte{grid-template-columns:1fr} }
[hidden]{display:none !important}
.produit-image img.defaut{width:52%;height:auto;object-fit:contain;mix-blend-mode:multiply}
.produit-image{background:#fff;border-bottom:1px solid var(--bord)}

/* Retouches du 20/10 (retour Frédéric) : contenu plus large, textes sur plus d'espace, cartes produits plus compactes */
.conteneur{max-width:1320px}
.page-titre p{max-width:none}
.section-titre{max-width:960px}
.contenu-texte{max-width:1040px}
.heros .accroche{max-width:640px}
.produits{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.produit-image{aspect-ratio:16/9}
.produit-image img.defaut{width:auto;height:78%}
.produit-corps{padding:14px 14px 16px;gap:8px}
.produit-corps h3{font-size:17px}
.produit-desc{font-size:14px}
.declinaison{padding:8px 10px;gap:8px}
.declinaison .nom{font-size:15px}
.quantite button{width:32px;height:32px;font-size:18px}
.quantite input{width:32px;font-size:15px}

/* Encadré newsletter au-dessus du pied de page */
.bandeau-newsletter{background:var(--creme);border-top:1px solid var(--bord);margin-top:56px;padding:36px 0}
.bandeau-newsletter .conteneur{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.bandeau-newsletter h2{color:var(--rouge);font-size:24px;margin-bottom:6px}
.bandeau-newsletter p{margin:0;color:var(--texte-doux)}
.nl-ligne{display:flex;gap:8px}
.nl-ligne input{flex:1;min-width:0;padding:13px 16px;border:1px solid #dccbbd;border-radius:999px;font:16px var(--police)}
.nl-case{margin-top:10px;font-size:13px}
.bandeau-newsletter + .pied{margin-top:0}
@media (max-width:800px){ .bandeau-newsletter .conteneur{grid-template-columns:1fr} .nl-ligne{flex-direction:column} }

/* Pied de page : liens sans soulignement (soulignés seulement au survol) */
.pied a{text-decoration:none}
.pied a:hover,.pied a:focus-visible{text-decoration:underline;color:#fff}

/* Page « Le marché » : encadré latéral plus étroit */
.grille-marche{grid-template-columns:2.2fr 1fr;align-items:start}
.grille-marche aside{padding:18px 20px}
@media (max-width:800px){ .grille-marche{grid-template-columns:1fr} }

/* Pied de page et encadré newsletter resserrés */
.bandeau-newsletter{padding:22px 0;margin-top:44px}
.bandeau-newsletter h2{font-size:21px;margin-bottom:2px}
.bandeau-newsletter p{font-size:15px;line-height:1.5}
.nl-ligne input{padding:10px 16px}
.nl-ligne .bouton{padding:10px 20px}
.nl-case{margin-top:6px}
.pied{padding:26px 0 12px;font-size:15px;line-height:1.5}
.pied .grille{gap:20px}
.pied h2{font-size:16px;margin-bottom:8px}
.pied p{margin:0 0 6px}
.pied li{margin-bottom:3px}
.pied .horaires li{padding:4px 0}
.pied-bas{margin-top:16px;padding-top:10px;font-size:13px}

/* FAQ en accordéon */
.faq{margin:40px 0 0}
.faq h2{color:var(--rouge)}
.faq-item{background:#fff;border:1px solid var(--bord);border-radius:14px;margin-bottom:10px;box-shadow:var(--ombre)}
.faq-item summary{cursor:pointer;list-style:none;padding:16px 48px 16px 20px;font-weight:700;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--rouge);line-height:1}
.faq-item[open] summary::after{content:"−"}
.faq-item[open] summary{color:var(--rouge)}
.faq-reponse{padding:0 20px 16px;color:var(--texte-doux)}
.faq-reponse p:last-child{margin:0}

/* Bloc « Qui rédige » (E-E-A-T) */
.eeat{display:flex;gap:18px;align-items:center;background:var(--creme);border:1px solid var(--bord);border-radius:var(--rayon);padding:18px 22px;margin:40px 0 0}
.eeat img{flex:0 0 72px;width:72px;height:72px;mix-blend-mode:multiply}
.eeat p{margin:0;font-size:15px;color:var(--texte-doux)}
.eeat strong{color:var(--texte)}

/* Calendrier des saisons */
.mois{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.mois-carte{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);padding:18px 20px;box-shadow:var(--ombre);scroll-margin-top:100px}
.mois-carte.actuel{border:3px solid var(--vert);background:#fbfef4}
.mois-carte h3{display:flex;justify-content:space-between;align-items:center;color:var(--rouge);margin-bottom:10px}
.mois-carte h4{margin:10px 0 4px;font-size:14px;text-transform:uppercase;letter-spacing:.05em}
.mois-carte h4.leg{color:var(--vert-fonce)}
.mois-carte h4.fru{color:var(--brun)}
.mois-carte p{margin:0;font-size:15px;line-height:1.55}
.dates-fetes{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre)}
.dates-fetes th,.dates-fetes td{padding:14px 16px;border-bottom:1px solid var(--bord);text-align:left}
.dates-fetes th{background:var(--rouge);color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.04em}
@media (max-width:640px){ .dates-fetes th:nth-child(3),.dates-fetes td:nth-child(3){display:none} }

/* ===== Pied de page v2 (20/10) : fond clair et chaleureux au lieu du rouge plein ===== */
.bandeau-newsletter{background:#fff;border-top:1px solid var(--bord);margin-top:56px;padding:26px 0}
.pied{position:relative;background:var(--creme);color:var(--texte);padding:34px 0 14px;border-top:0}
.pied::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;
  background:linear-gradient(90deg,var(--rouge) 0 25%,var(--vert) 25% 50%,var(--jaune) 50% 75%,var(--brun) 75% 100%)}
.pied a{color:var(--texte);text-decoration:none}
.pied a:hover,.pied a:focus-visible{color:var(--rouge);text-decoration:underline}
.pied h2{color:var(--rouge);font-size:16px;letter-spacing:.02em}
.pied .horaires li{border-color:#ead9c8}
.pied .horaires span:last-child{color:var(--texte-doux)}
.pied .grille{grid-template-columns:1.3fr 1fr 1fr}
.pied-marque{display:flex;gap:14px;align-items:flex-start}
.pied-marque img{flex:0 0 64px;width:64px;height:64px;mix-blend-mode:multiply}
.pied-bas{border-top:1px solid #ead9c8;color:var(--texte-doux)}
.pied-bas a{color:var(--texte-doux)}

/* Horaires : les heures juste à côté du jour (et non plus collées à droite) */
.horaires li,.pied .horaires li{justify-content:flex-start;gap:14px}
.horaires span:first-child{flex:0 0 84px}
.horaires span:last-child,.pied .horaires span:last-child{text-align:left}

/* Champ mot de passe avec œil */
.mdp-boite{position:relative;display:block}
.mdp-boite input{padding-right:48px !important}
.mdp-oeil{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;color:var(--texte-doux);cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}
.mdp-oeil:hover{color:var(--rouge);background:var(--rouge-pale)}
.mdp-oeil.visible{color:var(--rouge)}

/* Accueil : pastilles décoratives entières (plus coupées par les bords du bandeau) */
.heros{background:
  radial-gradient(circle at 5% 150px, rgba(141,194,31,.18) 0 110px, transparent 111px),
  radial-gradient(circle at 96% 115px, rgba(245,207,42,.22) 0 85px, transparent 86px),
  radial-gradient(circle at 91% calc(100% - 140px), rgba(196,26,31,.09) 0 115px, transparent 116px),
  var(--fond)}
.heros{background:
  radial-gradient(circle at 125px 140px, rgba(141,194,31,.18) 0 105px, transparent 106px),
  radial-gradient(circle at calc(100% - 105px) 105px, rgba(245,207,42,.22) 0 80px, transparent 81px),
  radial-gradient(circle at calc(100% - 140px) calc(100% - 130px), rgba(196,26,31,.09) 0 110px, transparent 111px),
  var(--fond)}

/* Page Commander : cartes produits compactes (21/10/2026) : sans grande image, liseré couleur de la campagne */
.campagne{margin-bottom:36px}
.campagne-entete{gap:8px 12px;margin-bottom:4px}
.campagne-entete h2{font-size:clamp(21px,2.6vw,26px)}
.pastille-date{display:inline-block;padding:3px 12px;border-radius:999px;background:#fdf3c4;color:#6b4e00;font-size:14px;font-weight:700}
.pastille-close{background:#eee;color:var(--texte-doux)}
.campagne-infos{display:block;margin:0 0 16px;font-size:15px;color:var(--texte-doux)}
.produits{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.produit{border-top:4px solid var(--c,var(--rouge));border-radius:12px;box-shadow:none}
.produit-corps{padding:12px 14px 14px;gap:6px}
.produit-tete{display:flex;align-items:center;gap:12px}
.produit-tete h3{margin:0;font-size:16px;line-height:1.3}
.produit-vignette{flex:0 0 64px;width:64px;height:64px;object-fit:cover;border-radius:10px;background:var(--creme)}
.produit-desc{font-size:13.5px;line-height:1.5}
.declinaisons{gap:6px;margin-top:4px}
.declinaison{padding:6px 8px 6px 10px;border-radius:10px}
.declinaison .nom{font-size:14px;line-height:1.3}
.declinaison .prix{font-size:15px}
.quantite button{width:30px;height:30px;font-size:17px}
.quantite input{width:28px;font-size:15px}

/* Bandeau « site en maintenance » (visible uniquement des comptes du back-office) */
.bandeau-maintenance{background:#f5cf2a;color:#3a2a26;text-align:center;font-size:14px;padding:8px 16px;font-weight:600}
.bandeau-maintenance a{color:#9e1418}

/* Bouton « haut de page » (en bas à droite) ; l'icône 🍪 d'OK Cookie est remontée au-dessus pour ne pas se chevaucher */
.haut-de-page{position:fixed;right:20px;bottom:20px;z-index:900;width:50px;height:50px;border-radius:50%;background:var(--rouge);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.2);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s}
.haut-de-page.visible{opacity:1;visibility:visible;transform:none}
.haut-de-page:hover,.haut-de-page:focus-visible{background:var(--rouge-fonce);color:#fff}
.haut-de-page svg{width:24px;height:24px}
#okcookie-icon{bottom:82px!important}
@media print{.haut-de-page{display:none}}

/* ---------- Accueil enrichi (21/10/2026) : chiffres, étapes, présentation, équipe, animations ---------- */
.chiffres{background:var(--rouge);color:#fff;padding:22px 0}
.chiffres-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;text-align:center}
.chiffre strong{display:block;font-size:30px;line-height:1.15;font-weight:800}
.chiffre > span{font-size:15px;opacity:.92}
@media (max-width:700px){ .chiffres-grille{grid-template-columns:1fr 1fr} .chiffre strong{font-size:24px} }

.etapes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:none}
.etape{position:relative;background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:22px 20px 18px 74px;box-shadow:var(--ombre)}
.etape h3{margin:0 0 4px;font-size:17px;color:var(--rouge)}
.etape p{margin:0;font-size:15px;color:var(--texte-doux);line-height:1.55}
.etape-num{position:absolute;left:18px;top:20px;width:40px;height:40px;border-radius:50%;background:var(--jaune);color:var(--texte);font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center}
@media (max-width:800px){ .etapes{grid-template-columns:1fr} }

.accueil-presentation{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}
.accueil-presentation .contenu-texte h2{margin-top:0}
.accueil-presentation .contenu-texte h3{color:var(--rouge-fonce);font-size:19px;margin:1.3em 0 .3em}
.saison-du-mois{text-align:center;border-top:5px solid var(--vert);position:sticky;top:20px}
.saison-du-mois h2{margin:0 0 8px;color:var(--vert-fonce);font-size:26px}
.saison-du-mois p{text-align:left;font-size:15px;margin:0 0 8px}
.saison-du-mois-sur{text-align:center!important;text-transform:uppercase;letter-spacing:.06em;font-size:12px!important;font-weight:700;color:var(--texte-doux);margin:0!important}
.saison-du-mois-note{font-size:13px!important;color:var(--texte-doux)}
.mascotte{display:block;margin:0 auto 6px;mix-blend-mode:multiply;animation:mascotte 4s ease-in-out infinite}
@keyframes mascotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (max-width:900px){ .accueil-presentation{grid-template-columns:1fr} .saison-du-mois{position:static} }

.equipe{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:40px;align-items:center}
.equipe-photo{margin:0}
.equipe-photo img{display:block;width:100%;border-radius:var(--rayon);box-shadow:var(--ombre)}
.equipe-photo figcaption{font-size:13px;color:var(--texte-doux);margin-top:6px;text-align:center}
.equipe-texte h2{margin-top:0}
@media (max-width:800px){ .equipe{grid-template-columns:1fr;gap:20px} }

.eeat .eeat-photo{object-fit:cover;border-radius:50%;mix-blend-mode:normal}

/* Apparition au défilement : seulement si le JS est actif (classe sur <html>) et si l'utilisateur accepte les animations */
@media (prefers-reduced-motion:no-preference){
  .js-anim .revele{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .js-anim .revele.visible{opacity:1;transform:none}
  .js-anim .etapes .revele:nth-child(2),.js-anim .grille-3 .revele:nth-child(2),.js-anim .chiffres-grille .revele:nth-child(2){transition-delay:.12s}
  .js-anim .etapes .revele:nth-child(3),.js-anim .grille-3 .revele:nth-child(3),.js-anim .chiffres-grille .revele:nth-child(3){transition-delay:.24s}
  .js-anim .chiffres-grille .revele:nth-child(4){transition-delay:.36s}
}
@media (prefers-reduced-motion:reduce){ .mascotte{animation:none} }
/* Page « Le marché » (21/10/2026) */
.marche-photo{margin:6px 0 16px}
.marche-aside{position:sticky;top:20px}
@media (max-width:800px){ .marche-aside{position:static} }
/* « Le marché » : titre dans la colonne de gauche, horaires remontés à hauteur du titre, moins de blanc */
.grille-marche .page-titre{padding-bottom:0}
.grille-marche .page-titre p{margin-bottom:0}
.grille-marche .page-titre + h2{margin-top:.9em}
.grille-marche .marche-aside{margin-top:40px}
@media (max-width:800px){ .grille-marche .marche-aside{margin-top:0} }
/* Page « Les fêtes » (21/10/2026) : compte à rebours + vitrine des produits */
.compte-rebours{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#fff7d6;border:1px solid #f3e19a;border-left:6px solid var(--jaune);border-radius:14px;padding:14px 18px;margin:8px 0 28px}
.compte-rebours p{margin:0;flex:1 1 320px}
.compte-rebours-icone{font-size:28px;line-height:1}
.compte-rebours-jours{display:block;font-size:15px;color:var(--texte-doux)}
.compte-rebours-jours strong{color:var(--rouge);font-size:18px}
.vitrine-fetes{margin:0 0 36px}
.vitrine-fetes h2{color:var(--rouge);font-size:24px;margin:0 0 14px}
.vitrine-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.vitrine-produit{display:flex;flex-direction:column;background:var(--carte);border:1px solid var(--bord);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--texte);box-shadow:var(--ombre);transition:transform .2s,box-shadow .2s}
.vitrine-produit:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(158,20,24,.13)}
.vitrine-produit img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.vitrine-nom{padding:10px 12px 0;font-weight:700;font-size:15px;line-height:1.35}
.vitrine-prix{padding:2px 12px 12px;color:var(--rouge);font-weight:700;font-size:14px}
.vitrine-note{font-size:13px;color:var(--texte-doux);margin:10px 0 0}
@media (max-width:900px){ .vitrine-grille{grid-template-columns:repeat(2,1fr)} }
.js-anim .vitrine-grille .revele:nth-child(4n+2){transition-delay:.08s}
.js-anim .vitrine-grille .revele:nth-child(4n+3){transition-delay:.16s}
.js-anim .vitrine-grille .revele:nth-child(4n+4){transition-delay:.24s}
/* Page « De saison » (21/10/2026) : barre des mois + tableau par produit avec recherche */
.mois-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;position:sticky;top:0;z-index:5;background:var(--fond);padding:8px 0}
.mois-nav a{padding:6px 12px;border-radius:999px;border:1px solid var(--bord);background:#fff;color:var(--texte);text-decoration:none;font-size:14px;font-weight:600}
.mois-nav a:hover{border-color:var(--vert)}
.mois-nav a.actuel{background:var(--vert);border-color:var(--vert);color:#fff}
.saison-produits{margin:40px 0 0}
.saison-produits h2{color:var(--rouge)}
.saison-recherche{display:block;font-weight:600;font-size:15px;margin:0 0 12px;max-width:460px}
.saison-recherche input{display:block;width:100%;margin-top:6px;padding:11px 16px;border:1px solid var(--bord);border-radius:999px;font:inherit;background:#fff}
.saison-recherche input:focus{outline:3px solid rgba(141,194,31,.35);border-color:var(--vert)}
.saison-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre)}
.saison-table th,.saison-table td{padding:10px 14px;border-bottom:1px solid var(--bord);text-align:left;font-size:15px}
.saison-table th{background:var(--vert-fonce);color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.saison-table tr.de-saison td{background:#fbfef4}
.saison-table .badge{font-size:10px;padding:2px 8px;vertical-align:middle}
.saison-vide{color:var(--texte-doux);font-style:italic}
@media (max-width:640px){ .saison-table th:nth-child(2),.saison-table td:nth-child(2){display:none} }
/* Icône « Les Fermiers de Loué » (21/10/2026) : jamais rognée, fond transparent */
img[src*="/uploads/logo-"]{object-fit:contain!important;background:transparent!important}
.vitrine-produit img[src*="/uploads/logo-"]{padding:14px;background:var(--creme)!important}
.rayon .logo-loue{float:right;width:44px;height:auto;margin:0 0 6px 10px}
.logo-loue-texte{float:right;width:70px;height:auto;margin:4px 0 8px 16px}
/* Infos pratiques (21/10/2026) : statut d'ouverture, jour en cours, contact, carte au clic */
.horaires li.aujourd-hui span{color:var(--vert-fonce)!important}
.horaires li.aujourd-hui em{font-style:normal;font-weight:400;font-size:13px}
.statut-ouverture{display:inline-flex;align-items:center;gap:10px;margin:0 0 20px;padding:10px 18px;border-radius:999px;font-weight:700;font-size:16px}
.statut-ouverture.ouvert{background:#eef8dc;color:var(--vert-fonce)}
.statut-ouverture.ferme{background:var(--rouge-pale);color:var(--rouge-fonce)}
.statut-point{width:12px;height:12px;border-radius:50%;background:currentColor;flex:0 0 12px}
@media (prefers-reduced-motion:no-preference){ .statut-ouverture.ouvert .statut-point{animation:pouls 1.8s ease-out infinite} }
@keyframes pouls{0%{box-shadow:0 0 0 0 rgba(95,138,15,.55)}100%{box-shadow:0 0 0 10px rgba(95,138,15,0)}}
.infos-note{margin:14px 0 0;color:var(--texte-doux);font-size:15px}
.infos-contact{list-style:none;margin:16px 0 0;padding:0}
.infos-contact li{padding:5px 0}
.carte-plan{margin:24px 0 0}
.carte-plan h2{color:var(--rouge)}
.plan{min-height:320px;border-radius:var(--rayon);border:1px solid var(--bord);background:var(--creme);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;overflow:hidden}
.plan p{color:var(--texte-doux);font-size:15px;max-width:420px}
.plan img{mix-blend-mode:multiply}
.plan iframe{width:100%;height:380px;border:0;display:block}
.plan.charge{padding:0;display:block;min-height:0}
.infos-texte{margin-top:16px}
/* Infos pratiques : cartes de même hauteur, contact sur 2 colonnes, moyens de paiement */
.infos-grille{align-items:stretch}
.infos-contact{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px}
@media (max-width:640px){ .infos-contact{grid-template-columns:1fr} }
.infos-paiement-titre{margin:18px 0 8px;font-size:17px;color:var(--rouge)}
.infos-paiement{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.infos-paiement li{padding:6px 14px;border-radius:999px;background:var(--creme);border:1px solid var(--bord);font-weight:600;font-size:15px}
/* Contact (21/10/2026) : réponses rapides + encadré latéral */
.avant-ecrire{margin:0 0 24px}
.avant-ecrire h2{font-size:22px;color:var(--rouge);margin:0 0 4px}
.avant-ecrire > p{margin:0 0 12px;color:var(--texte-doux)}
.avant-ecrire ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.avant-ecrire a{display:flex;flex-direction:column;gap:2px;height:100%;padding:12px 14px;background:var(--carte);border:1px solid var(--bord);border-left:4px solid var(--vert);border-radius:12px;text-decoration:none;color:var(--texte);transition:transform .15s,box-shadow .15s}
.avant-ecrire a:hover{transform:translateY(-2px);box-shadow:var(--ombre)}
.avant-ecrire a span{font-size:13px;color:var(--texte-doux)}
@media (max-width:900px){ .avant-ecrire ul{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .avant-ecrire ul{grid-template-columns:1fr} }
.statut-petit{font-size:14px;padding:6px 12px;margin:0 0 12px}
.contact-aside .aide{font-size:13px;color:var(--texte-doux)}
/* Poste de commande : recherche d'un client du fichier du marché (21/10/2026) */
.recherche-client{position:relative;background:#f3f9e6;border:1px dashed var(--vert);border-radius:12px;padding:10px 12px;margin-top:10px}
.recherche-resultats{position:absolute;left:0;right:0;top:100%;z-index:20;list-style:none;margin:4px 0 0;padding:4px;background:#fff;border:1px solid var(--bord);border-radius:12px;box-shadow:var(--ombre);max-height:320px;overflow:auto}
.recherche-resultats button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:8px 10px;font:inherit;cursor:pointer}
.recherche-resultats button:hover,.recherche-resultats button:focus{background:var(--creme)}
.recherche-resultats small{display:block;color:var(--texte-doux);font-size:13px}
.recherche-resultats .vide{padding:8px 10px;color:var(--texte-doux);font-size:14px}
/* Poste de commande : en-tête et pied propres (21/10/2026) */
.entete-comptoir .conteneur{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.nav-comptoir{display:flex;gap:8px;flex-wrap:wrap}
.nav-comptoir a{padding:8px 14px;border-radius:999px;border:1px solid var(--bord);background:#fff;color:var(--texte);text-decoration:none;font-weight:700;font-size:15px}
.nav-comptoir a:hover{border-color:var(--rouge)}
.nav-comptoir a[aria-current]{background:var(--vert-fonce);border-color:var(--vert-fonce);color:#fff}
.pied-comptoir{padding:18px 0;font-size:14px;color:var(--texte-doux);text-align:center}
/* Comptoir : case « emporté maintenant » et règlement des produits emportés */
.emporte{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:700;color:var(--vert-fonce);cursor:pointer}
.emporte input{width:18px;height:18px;accent-color:var(--vert-fonce)}
.reglement-emporte{background:#f3f9e6;border-radius:12px;padding:10px 12px}
 /* Fix footer mobile (23/10/2026) */
  @media (max-width:800px){
    .pied .horaires span:last-child{white-space:nowrap}
    .pied .grille{gap:24px 16px}
  }
  /* Widgets flottants OkCookie/OkAccessibilité : remonter sur mobile */
  @media (max-width:600px){
    #okcookie-icon,#okaccessibilite-icon{bottom:80px !important}
  }
   /* Fix footer mobile (23/10/2026) */
  @media (max-width:800px){
    .pied .grille{grid-template-columns:1fr !important}
    .pied .horaires span:last-child{white-space:nowrap}
  }
  /* Widgets flottants OkCookie/OkAccessibilité : remonter sur mobile */
  @media (max-width:600px){
    #okcookie-icon,#okaccessibilite-icon{bottom:80px !important}
  }
/* 10/11/2026 : jour de retrait au choix du client (Noël) */
.choix-retrait{border:2px solid var(--rouge,#c41a1f);border-radius:14px;padding:14px 16px;margin:0;display:grid;gap:10px;background:#fff8f0}
.choix-retrait legend{font-weight:700;padding:0 6px}
.choix-retrait .case{font-size:16px}
.choix-retrait .retrait-groupe{display:grid;gap:6px;padding-bottom:6px;border-bottom:1px dashed #e8d4c4}
.choix-retrait .retrait-groupe:last-of-type{border-bottom:0}
.choix-retrait .retrait-groupe p,.choix-retrait .retrait-impose{margin:0}
