/* Polices servies par le site (licences SIL OFL dans fonts/) */
@font-face{font-family:"Bricolage Grotesque";src:url(fonts/bricolage-grotesque-latin-standard-normal.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{--primaire:#d8772f;--bouton:#dd7e34;--fond:#d8e8a4;--texte:#3a2c22;--accent:#b7dfe6;--r:10px;
  --titre:"Bricolage Grotesque",system-ui,sans-serif;--corps:"Inter",system-ui,sans-serif;
  --clair:rgba(255,255,255,.55);--filet:rgba(58,44,34,.32)}
*,*::before,*::after{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--fond);color:var(--texte);font:400 1rem/1.6 var(--corps)}
a{color:inherit}
img{max-width:100%}
[id]{scroll-margin-top:88px}
:focus-visible{outline:3px solid var(--texte);outline-offset:3px;border-radius:4px}
.evitement{position:absolute;left:-9999px;top:.5rem;background:var(--texte);color:var(--fond);padding:.6rem 1rem;border-radius:var(--r);z-index:50}
.evitement:focus{left:.5rem}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* En-tête (aperçu validé) */
.site{position:sticky;top:0;z-index:30;background:var(--fond);border-bottom:2px solid var(--texte)}
.barre{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.7rem clamp(1rem,4vw,2.5rem)}
.logo{display:flex;align-items:center;gap:.75rem;flex-shrink:0;text-decoration:none}
.logo-nom{font:800 1.35rem/1 var(--titre);font-stretch:80%;white-space:nowrap}
.logo-nom[hidden]{display:none}
.logo img{display:block;height:54px;width:auto;object-fit:contain}
.menu{list-style:none;display:flex;align-items:center;gap:clamp(.9rem,1.6vw,1.6rem);padding:0}
.menu a{text-decoration:none;font-weight:500;font-size:.95rem;padding:.35rem 0;border-bottom:2px solid transparent;white-space:nowrap}
.menu a:hover,.menu a[aria-current="page"]{border-bottom-color:var(--texte)}
.burger{display:none;background:none;border:2px solid var(--texte);border-radius:var(--r);width:48px;height:48px;cursor:pointer;padding:0;color:var(--texte)}
.burger span{display:block;width:22px;height:2px;background:currentColor;margin:5px auto;transition:transform .2s,opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Boutons : --bouton, orange de la palette à peine éclairci, 4,55:1 avec le texte (WCAG AA, voir README) */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:.7rem 1.4rem;border:2px solid var(--texte);border-radius:var(--r);
  font:700 1.2rem/1.1 var(--titre);font-stretch:85%;text-decoration:none;color:var(--texte);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
.btn-primaire{background:var(--bouton);box-shadow:4px 4px 0 var(--texte)}
.btn-primaire:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--texte)}
.btn-second{background:transparent}
.btn-second:hover{background:var(--accent)}
.menu .btn{border-bottom:2px solid var(--texte);padding:.5rem 1.1rem;min-height:44px}
.menu .btn:hover{border-bottom-color:var(--texte)}
.lien{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--primaire)}
.lien:hover{text-decoration-color:var(--texte)}

/* Structure commune */
.conteneur{max-width:1240px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}
.bloc{position:relative;padding:clamp(3rem,7vw,5.5rem) 0;border-top:2px solid var(--texte)}
h1,h2{font-family:var(--titre);font-weight:800;font-stretch:80%;font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:.95;letter-spacing:-.01em}
h3{font-family:var(--titre);font-weight:700;font-stretch:85%;font-size:clamp(1.3rem,2vw,1.55rem);line-height:1.1}
.tete{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 3rem;align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
.intro{max-width:46ch;font-size:1.08rem}
.deco{position:absolute;display:block;height:auto;object-fit:contain;pointer-events:none}
.liens{display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;margin-top:1.4rem}
.points{list-style:none;padding:0;margin:1.4rem 0 0;border-top:1px solid var(--filet)}
.points li{padding:.85rem 0;border-bottom:1px solid var(--filet)}
.points strong{display:block;font:700 1.15rem/1.2 var(--titre);font-stretch:88%;margin-bottom:.15rem}

/* Agenda */
.agenda{position:relative;padding:clamp(2rem,4vw,3rem) 0 clamp(2.5rem,5vw,4rem);border-bottom:2px solid var(--texte)}
.agenda-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.25rem 2rem;margin-bottom:1.75rem}
.agenda-tete p{max-width:54ch;margin-top:.7rem}
.deco-chauve{position:static;width:96px;flex:none;align-self:center}
.cal-cadre{border:2px solid var(--texte);border-radius:var(--r);overflow:hidden;background:var(--clair)}
.calendrier{width:100%;border-collapse:collapse;table-layout:fixed}
.calendrier th{font:700 1rem/1 var(--titre);font-stretch:85%;text-align:left;padding:.75rem .6rem;background:var(--texte);color:var(--fond)}
.calendrier abbr{text-decoration:none}
.calendrier td{vertical-align:top;height:7.6rem;padding:.45rem;border-right:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.calendrier td:last-child{border-right:0}
.calendrier tr:last-child td{border-bottom:0}
.calendrier td.hors{background:rgba(58,44,34,.07)}
.calendrier td.hors>*{opacity:.75}
.num{display:inline-grid;place-items:center;width:2rem;height:2rem;font:700 1rem/1 var(--titre)}
.entoure .num{border:2px solid var(--texte);border-radius:52% 46% 55% 44%;transform:rotate(-6deg)}
.aujourdhui .num{background:var(--texte);color:var(--fond);border-radius:50%}
.auj-txt{font-size:.75rem;font-weight:600;margin-left:.35rem}
.evts{list-style:none;padding:0;margin-top:.3rem;display:grid;gap:.3rem}
.evt{display:flex;align-items:stretch;border:1.5px solid var(--texte);border-radius:7px;background:var(--fond);overflow:hidden}
.evt--recurrent{background:var(--accent)}
.evt--special{box-shadow:inset 5px 0 0 var(--primaire)}
.evt a:not(.evt-plus){flex:1;min-width:0;display:block;padding:.3rem .4rem .3rem .5rem;font-size:.82rem;line-height:1.2;text-decoration:none;font-weight:500}
.evt--special a:not(.evt-plus){padding-left:.8rem}
.evt a:hover .evt-nom{text-decoration:underline}
.evt-h{display:block;font-weight:700}
.evt-plus{flex:0 0 28px;display:grid;place-items:center;text-decoration:none;border:0;border-left:1.5px solid var(--texte);background:transparent;color:var(--texte);font:700 1.15rem/1 var(--titre);cursor:pointer;padding:0}
.evt-plus:hover{background:var(--texte);color:var(--fond)}
.evt a:focus-visible,.evt-plus:focus-visible{outline-offset:-4px}
.legende{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:.9rem;font-size:.9rem}
.legende li{display:flex;align-items:center;gap:.5rem}
.pastille{width:1.1rem;height:.8rem;border:1.5px solid var(--texte);border-radius:3px;background:var(--accent)}
.pastille--spe{background:var(--fond);box-shadow:inset 4px 0 0 var(--primaire)}
.detail{margin-top:1.25rem;border:2px solid var(--texte);border-radius:var(--r);background:var(--fond);padding:1.4rem 1.6rem;display:none;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:1rem 2.5rem;box-shadow:6px 6px 0 var(--texte)}
.detail:target{display:grid}
.detail h3{font-size:1.7rem;font-weight:800;font-stretch:80%}
.detail-quand{font-weight:600;margin:.35rem 0 .5rem}
.detail-action{margin-top:1rem}
.detail h4{font:700 1.1rem/1.2 var(--titre);font-stretch:88%;margin-bottom:.5rem}
.detail-avec ul{list-style:none;padding:0;display:grid;gap:.45rem}
.detail-fermer{align-self:start;display:inline-flex;align-items:center;text-decoration:none;min-height:44px;padding:.4rem .9rem;border:2px solid var(--texte);border-radius:var(--r);background:transparent;font:600 .95rem var(--corps);color:var(--texte);cursor:pointer}
.detail-fermer:hover{background:var(--accent)}
.agenda-liste{display:none}
.cartes{list-style:none;padding:0;display:grid;gap:.75rem}
.carte{display:grid;grid-template-columns:4.8rem minmax(0,1fr);border:2px solid var(--texte);border-radius:var(--r);background:var(--clair);overflow:hidden}
.carte--spe{border-left:7px solid var(--primaire)}
.carte-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.6rem .3rem;border-right:2px solid var(--texte);background:var(--fond);font-family:var(--titre);line-height:1;text-align:center}
.carte--rec .carte-date{background:var(--accent)}
.cd-j,.cd-m{font-size:.85rem;font-weight:600}
.cd-n{font-size:2.1rem;font-weight:800;font-stretch:78%}
.cd-n--txt{font-size:1.5rem}
.carte-txt{padding:.85rem 1rem}
.carte h3{font-size:1.25rem}
.carte h3 a{text-decoration:none}
.carte h3 a:hover{text-decoration:underline}
.carte-quand{font-weight:600;margin-top:.25rem}
.carte-prochain,.carte-avec{font-size:.93rem;margin-top:.25rem}
.repli .cartes{margin-top:.75rem}
summary.plus{list-style:none}
summary.plus::-webkit-details-marker{display:none}
.plus{width:100%;margin-top:.9rem}

.actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}

/* La ferme : affiche pleine largeur, panneaux cliquables */
.ferme{border-block:3px solid var(--texte);background:var(--accent)}
.ferme-cadre{position:relative;overflow:hidden}
.ferme-cadre img{display:block;width:100%;height:auto}
.panneau{position:absolute;left:var(--l);top:var(--t);width:var(--w);height:var(--h);border-radius:var(--r);text-decoration:none;
  outline:3px dashed transparent;outline-offset:6px;box-shadow:0 0 0 200vmax rgba(58,44,34,0);
  transition:outline-color .25s,outline-offset .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,backdrop-filter .35s}
.panneau span{position:absolute;left:50%;top:-.4rem;transform:translate(-50%,calc(-100% + 8px)) scale(.9);white-space:nowrap;
  background:var(--texte);color:var(--fond);font:700 .9rem/1 var(--corps);padding:.5rem .8rem;border-radius:999px;
  box-shadow:4px 4px 0 var(--primaire);opacity:0;pointer-events:none;
  transition:opacity .2s,transform .4s cubic-bezier(.34,1.56,.64,1)}
.panneau:hover,.panneau:focus-visible{z-index:2;outline-color:var(--primaire);outline-offset:-3px;
  box-shadow:0 0 0 200vmax rgba(58,44,34,.5);backdrop-filter:brightness(1.12) saturate(1.25)}
.panneau:hover span,.panneau:focus-visible span{opacity:1;transform:translate(-50%,-100%) scale(1)}
.panneau.gauche span{left:0;transform:translate(0,calc(-100% + 8px)) scale(.9)}
.panneau.gauche:hover span,.panneau.gauche:focus-visible span{transform:translate(0,-100%) scale(1)}
.ferme figcaption{text-align:center;font-weight:600;padding:.8rem 1rem;background:var(--fond);border-top:3px solid var(--texte)}
@media (hover:none){.panneau{outline-color:rgba(216,119,47,.85);outline-offset:-2px;outline-width:2px}.panneau span{display:none}}
@media (prefers-reduced-motion:reduce){.panneau,.panneau span{transition:none}}

/* Le projet */
.deco-nuages{top:1.5rem;right:clamp(1rem,5vw,4rem);width:clamp(140px,16vw,220px)}
.projet-grille{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.chapo{font-family:var(--titre);font-weight:600;font-stretch:90%;font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.25;margin:1.3rem 0 1rem;max-width:30ch}
.projet p{max-width:60ch}
.sommaire{margin-top:clamp(3rem,7vw,6rem)}
.sommaire ul{list-style:none;padding:0;border-top:2px solid var(--texte)}
.sommaire a{display:grid;grid-template-columns:10.5rem 1fr;gap:.2rem 1rem;align-items:baseline;padding:.85rem .6rem;border-bottom:2px solid var(--texte);text-decoration:none;transition:background-color .15s}
.sommaire a:hover{background:var(--accent)}
.sommaire strong{font:700 1.3rem/1.1 var(--titre);font-stretch:85%}
.sommaire span{font-size:.95rem}

/* L'asso */
.asso-liste{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--texte);border-bottom:2px solid var(--texte)}
.asso-liste li{display:flex;flex-direction:column;gap:.6rem;padding:1.6rem 1.4rem;border-left:1px solid var(--filet)}
.asso-liste li:first-child{border-left:0}
.asso-liste .rejoindre{background:var(--accent)}
.asso-liste .lien{margin-top:auto;padding-top:.4rem}

/* Producteurices */
.prod-grille{display:grid;grid-template-columns:1.35fr 1fr;gap:1.5rem}
.prod{display:flex;flex-direction:column;gap:.8rem;border:2px solid var(--texte);border-radius:var(--r);padding:clamp(1.5rem,3vw,2.5rem)}
.prod--famille{background:var(--clair)}
.prod--legumes{background:var(--accent)}
.prod h3{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:800;font-stretch:76%;line-height:.95}
.prod-role{font-weight:600;font-size:1.05rem}
.prod p{max-width:52ch}
.prod .lien{margin-top:auto}

/* Librairie, recyclerie, tiers-lieu */
.maison-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.maison--inverse .maison-grille>:first-child{order:2}
.maison-txt>p{max-width:58ch;margin-top:1rem}
.visuel{position:relative;margin:0;border:2px solid var(--texte);border-radius:var(--r);background:var(--accent);padding:clamp(1rem,3vw,2rem);display:grid;place-items:center}
.visuel img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}
.visuel .deco-souris{bottom:-18px;right:-12px;width:clamp(60px,7vw,88px);max-height:none}
.coffre{border:3px solid var(--texte);border-radius:var(--r);background:var(--accent);padding:clamp(1.5rem,3.5vw,2.75rem);box-shadow:8px 8px 0 var(--texte)}
.coffre h3{font-size:clamp(2.2rem,4.4vw,3.3rem);font-weight:800;font-stretch:75%;line-height:.92}
.coffre p{margin:1rem 0 1.5rem;max-width:36ch}
.appel{margin-top:1.6rem;padding:1.25rem 1.4rem;border-left:6px solid var(--primaire);background:var(--clair);border-radius:0 var(--r) var(--r) 0}
.appel h3{margin-bottom:.4rem}
.appel .btn{margin-top:1rem}

/* Podcast */
.podcast-bande{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.5rem 3rem;align-items:center;border:2px solid var(--texte);border-radius:var(--r);padding:clamp(1.5rem,3.5vw,2.75rem);background:var(--clair)}
.podcast-sous{display:block;font-size:.5em;font-stretch:88%;font-weight:600;margin-top:.4rem}
.podcast-bande p{max-width:56ch}
.podcast-bande .badge{font-stretch:100%;margin-left:.3rem}
.deco-bat{top:-38px;right:2.5rem;width:clamp(64px,7vw,92px)}

/* Marché */
.marche{background:var(--accent)}
.deco-coin{top:0;right:0;width:clamp(110px,13vw,190px)}
.marche-grille{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.horaire{font:800 clamp(3.4rem,8.5vw,6.8rem)/.9 var(--titre);font-stretch:75%;letter-spacing:-.02em;margin:1.2rem 0 .5rem}
.horaire-sous{font-weight:600;font-size:1.1rem}
.marche .actions{margin-top:1.8rem}
.marche-liste{list-style:none;padding:0;border-top:2px solid var(--texte);margin-top:clamp(3rem,8vw,7rem)}
.marche-liste li{padding:1.1rem 0;border-bottom:2px solid var(--texte)}
.marche-liste h3{margin-bottom:.3rem}
.marche-liste ul{padding-left:1.1rem;margin-top:.3rem}

/* Gîtes */
.gites-grille{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.gites-visuel{margin:0;border:2px solid var(--texte);border-radius:var(--r);overflow:hidden;background:var(--accent)}
.gites-visuel img{display:block;width:100%;height:auto}
.badge{display:inline-block;background:var(--texte);color:var(--fond);border-radius:999px;padding:.3rem .85rem;font:600 .9rem/1.2 var(--corps);vertical-align:middle}
.gites-txt>p{margin:1rem 0 1.4rem;max-width:48ch}
.reseau{border-left:3px solid var(--texte);border-radius:var(--r) 0 0 var(--r);padding-left:1.25rem}
.reseau-titre{font-weight:600;margin-bottom:.3rem}
.gites-liste{list-style:none;padding:0}
.gites-liste li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--filet)}
.gites-liste strong{font:700 1.35rem/1.1 var(--titre);font-stretch:85%}
.gites-liste span{font-size:.9rem;font-weight:500;white-space:nowrap}
.gites-txt .btn{margin-top:1.5rem}

/* Remerciements */
.merci-liste{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 0;border-top:2px solid var(--texte);border-bottom:2px solid var(--texte);padding:1.6rem 0}
.merci-liste li{display:flex;align-items:center;font:800 clamp(1.7rem,3.8vw,2.7rem)/1 var(--titre);font-stretch:76%}
.merci-liste li+li::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--primaire);border:1.5px solid var(--texte);margin:0 1.2rem}

/* Soutenir */
.soutien{background:var(--texte);color:var(--fond)}
.soutien :focus-visible{outline-color:var(--fond)}
.soutien-grille{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.soutien-grille>div>p,.dons-bloc p{margin-top:1.2rem;max-width:50ch;font-size:1.08rem}
.soutien .btn-primaire{box-shadow:4px 4px 0 var(--fond)}
.soutien .btn-primaire:hover{box-shadow:6px 6px 0 var(--fond)}
.btn-clair{border-color:var(--fond);color:var(--fond);background:transparent}
.btn-clair:hover{background:var(--fond);color:var(--texte)}
.facons{list-style:none;padding:0;border-top:2px solid var(--fond)}
.facons li{padding:1.1rem 0;border-bottom:1px solid rgba(216,232,164,.4)}
.facons strong{display:block;font:700 1.3rem/1.15 var(--titre);font-stretch:85%;margin-bottom:.2rem}

/* Newsletter */
.lettre-boite{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:2rem 3rem;align-items:end;border:3px solid var(--texte);border-radius:var(--r);background:var(--accent);padding:clamp(1.75rem,4vw,3.5rem);box-shadow:8px 8px 0 var(--texte)}
.lettre-boite>div>p{margin-top:1rem;max-width:44ch}
.deco-nuages2{top:-44px;right:1.5rem;width:clamp(110px,13vw,170px)}
.champ label{display:block;font-weight:600;margin-bottom:.4rem}
.champ input,.champ textarea{width:100%;min-height:48px;border:2px solid var(--texte);border-radius:var(--r);background:#fff;padding:.7rem .9rem;font:inherit;color:var(--texte)}
.champ textarea{min-height:9rem;resize:vertical}
.champ [aria-invalid="true"]{border-width:3px;background:#fff6ee}
.ligne{display:flex;flex-wrap:wrap;gap:.75rem}
.ligne input{flex:1 1 15rem}
.statut{min-height:1.6em;margin-top:.7rem;font-weight:600}
.statut.erreur{padding-left:.7rem;border-left:4px solid var(--texte)}
.note{font-size:.88rem;margin-top:.7rem}

/* Contact */
.contact-grille{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.coord{list-style:none;padding:0;margin-top:1.6rem;border-top:2px solid var(--texte)}
.coord li{padding:1rem 0;border-bottom:1px solid var(--filet)}
.coord strong{display:block;font:700 1.15rem/1.2 var(--titre);font-stretch:88%}
.formulaire{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border:2px solid var(--texte);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem);background:var(--clair)}
.formulaire .plein{grid-column:1/-1}
.formulaire h3{margin-bottom:.2rem}

/* Pied de page */
.pied{border-top:2px solid var(--texte);padding:2.75rem 0 2rem}
.pied-grille{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2rem}
.pied img{display:block;height:54px;width:auto;object-fit:contain;margin-bottom:.8rem}
.pied h2{font-size:1.3rem;font-stretch:85%;margin-bottom:.6rem}
.pied ul{list-style:none;padding:0;display:grid;gap:.35rem}
.pied-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid var(--filet);font-size:.9rem}
.pied-bas ul{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}


/* Blocs rendus par le serveur, absents de la maquette */
.agenda-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.agenda-mois{font:800 clamp(1.5rem,2.6vw,2rem)/1 var(--titre);font-stretch:80%;text-align:center}
.agenda-mois::first-letter{text-transform:uppercase}
.agenda-vide{font-weight:600}
.carte-detail{display:inline-block;margin-top:.25rem;font-size:.93rem}
.detail-lieu{margin-bottom:.5rem}
.plan-acces{margin-top:clamp(2rem,4vw,3rem)}
.galerie{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1.25rem}
.galerie figure{margin:0;height:100%;border:2px solid var(--texte);border-radius:var(--r);background:var(--accent);overflow:hidden}
.galerie img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;padding:.75rem}
.galerie figcaption{padding:.55rem .85rem;border-top:2px solid var(--texte);background:var(--fond);font-size:.93rem;font-weight:500}
.equipe-photo{display:block;width:88px;height:88px;object-fit:cover;border:2px solid var(--texte);border-radius:50%}
.episodes{list-style:none;padding:0;display:grid;gap:1rem;margin-top:clamp(1.5rem,3vw,2.5rem)}
.episode{border:2px solid var(--texte);border-radius:var(--r);background:var(--clair);padding:clamp(1.25rem,3vw,2rem)}
.episode p{max-width:64ch}
.episode-date{font-weight:600;font-size:.93rem;margin:.3rem 0 .6rem}
.episode-action{margin-top:1rem}
.legal h1{margin-bottom:1.25rem}
.legal h2{font-size:clamp(1.5rem,2.6vw,2rem);font-stretch:85%;line-height:1.1;margin:2rem 0 .6rem}
.legal p{max-width:70ch;margin-top:.7rem}
.legal a{font-weight:600;text-decoration-color:var(--primaire);text-underline-offset:4px}
.legal-todo{background:var(--accent);color:var(--texte);border-radius:4px;padding:0 .3rem;font-weight:600}
.abonnement h1{margin-bottom:1.25rem}
.abonnement p{max-width:60ch}
.abonnement-action{margin-top:1.4rem}

@media (max-width:1080px){
  .burger{display:block}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
    background:var(--fond);border-bottom:2px solid var(--texte);padding:.5rem clamp(1rem,4vw,2.5rem) 1.25rem;box-shadow:0 12px 24px rgba(58,44,34,.18)}
  .menu.ouvert{display:flex}
  .menu a{display:block;font-size:1.1rem;padding:.85rem 0;border-bottom:1px solid rgba(58,44,34,.25)}
  .menu a:hover,.menu a[aria-current="page"]{border-bottom-color:var(--texte);font-weight:600}
  .menu li:last-child{margin-top:1rem}
  .menu .btn{display:flex;width:100%}
  .asso-liste{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asso-liste li:nth-child(3){border-left:0}
  .asso-liste li:nth-child(n+3){border-top:1px solid var(--filet)}
  .podcast-bande{grid-template-columns:minmax(0,1fr) auto}
  .podcast-bande p{grid-column:1/-1;grid-row:2}
}
@media (max-width:1023px){
  .agenda-grille,.agenda-nav{display:none}
  .agenda-liste{display:block}
}
@media (max-width:899px){
  .deco-chauve{display:none}
  .detail:target{grid-template-columns:minmax(0,1fr)}
  .tete,.projet-grille,.maison-grille,.marche-grille,.gites-grille,.soutien-grille,.lettre-boite,.contact-grille{grid-template-columns:1fr}
  .maison--inverse .maison-grille>:first-child{order:0}
  .sommaire,.marche-liste{margin-top:1rem}
  .deco-nuages{width:120px;top:1rem}
  .deco-coin{width:100px}
  .marche h1,.marche h2{max-width:calc(100% - 100px)}
  .visuel img{max-height:320px}
}
@media (max-width:767px){
  .logo img{height:44px}
  .actions .btn{flex:1 1 100%}
  .prod-grille,.pied-grille{grid-template-columns:1fr}
  .podcast-bande{grid-template-columns:1fr}
  .podcast-bande p{grid-column:auto;grid-row:auto}
  .podcast-bande .btn,.coffre .btn,.appel .btn,.gites-txt .btn{width:100%}
}
@media (max-width:600px){
  .asso-liste{grid-template-columns:1fr}
  .asso-liste li{border-left:0;border-top:1px solid var(--filet)}
  .asso-liste li:first-child{border-top:0}
  .sommaire a{grid-template-columns:1fr}
  .formulaire{grid-template-columns:1fr}
  .deco-nuages{display:none}
  .gites-liste li{flex-direction:column;gap:.15rem}
  .merci-liste{flex-direction:column;align-items:flex-start}
  .merci-liste li+li::before{display:none}
  .ligne .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.burger span,.sommaire a{transition:none}
}
