/* Pied de page commun à l'accueil et aux sous-pages (bloc généré par build.mjs).
   Tout est en liens HTML ordinaires : la carte SVG ne dessine que le rayon, les villes
   sont une liste de liens placés par-dessus à leurs coordonnées (--x, --y). */

.foot {
  display: grid; align-items: start;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .75fr);
  gap: 2.8rem clamp(2rem, 4vw, 4.5rem);
  margin: 2.6rem 0 .6rem; padding-top: 2.6rem;
  border-top: 1px solid rgba(201, 162, 74, .18);
}
.foot__titre {
  margin: 0 0 1.1rem;
  font: 600 .7rem/1.2 var(--text); letter-spacing: .24em; text-transform: uppercase;
  color: var(--gold);
}
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot a { color: var(--ivory-soft); text-decoration: none; transition: color .25s; }
.foot a:hover, .foot a:focus-visible { color: var(--ivory); }
.foot a[aria-current] { color: var(--gold); }

/* --- Objets : vignette détourée + nom ----------------------------------- */
.foot__objets { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .55rem; }
.foot__objets a {
  display: flex; align-items: center; gap: .75rem; height: 100%;
  padding: .45rem .8rem .45rem .5rem;
  border: 1px solid rgba(201, 162, 74, .14);
  background: linear-gradient(150deg, rgba(255, 236, 200, .04), transparent 65%);
  font-size: .86rem; line-height: 1.3;
  transition: color .25s, border-color .35s, background-color .35s;
}
.foot__objets img {
  flex: none; width: 2.8rem; height: 2.8rem; object-fit: contain;
  filter: drop-shadow(0 .35rem .4rem rgba(0, 0, 0, .55));
  transition: transform .5s var(--ease-out);
}
.foot__objets a:hover, .foot__objets a:focus-visible { border-color: rgba(201, 162, 74, .55); background-color: rgba(201, 162, 74, .06); }
.foot__objets a:hover img, .foot__objets a:focus-visible img { transform: translateY(-3px) scale(1.1) rotate(-4deg); }
.foot__objets a[aria-current] { border-color: rgba(201, 162, 74, .55); }

/* --- Carte des villes --------------------------------------------------- */
.carte { position: relative; aspect-ratio: 1; width: 100%; max-width: 24rem; font-size: .74rem; line-height: 1.1; }
.carte__fond { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.carte__rayon { fill: rgba(201, 162, 74, .045); stroke: rgba(201, 162, 74, .5); stroke-width: .3; stroke-dasharray: 1.4 1.4; }
.carte__rayon--int { fill: none; stroke: rgba(201, 162, 74, .16); }
.carte__point { display: none; fill: var(--gold); }
.carte .carte__villes, .carte .carte__villes li { list-style: none; margin: 0; padding: 0; }
.carte__ville { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; }
/* Le point est dessiné en HTML pour s'allumer au survol de son lien. */
.carte__ville::before {
  content: ''; position: absolute; left: -.22rem; top: -.22rem; width: .44rem; height: .44rem; border-radius: 50%;
  background: var(--gold); box-shadow: 0 0 0 .2rem rgba(201, 162, 74, .14);
  transition: transform .3s var(--ease-out), box-shadow .3s;
}
.carte__ville:first-child::before { left: -.32rem; top: -.32rem; width: .64rem; height: .64rem; background: #f3dc94; }
.carte__ville a { position: absolute; padding: .25rem .3rem; white-space: nowrap; }
.carte__ville--g a { right: .25rem; top: 0; translate: 0 -50%; }
.carte__ville--d a { left: .25rem; top: 0; translate: 0 -50%; }
.carte__ville--dh a { left: .2rem; top: 0; translate: 0 -82%; }
.carte__ville--h a { bottom: .1rem; left: 0; translate: -50% 0; }
.carte__ville--b a { top: .1rem; left: 0; translate: -50% 0; }
.carte__ville:first-child a { font-weight: 600; color: var(--ivory); }
.carte__ville:hover::before, .carte__ville:focus-within::before { transform: scale(1.6); box-shadow: 0 0 0 .3rem rgba(201, 162, 74, .25); }
.foot__note { margin: .8rem 0 0; font-size: .8rem; }
.foot__note a { display: inline-block; padding: .35rem 0; color: var(--gold); text-decoration: underline; text-decoration-color: rgba(201, 162, 74, .4); text-underline-offset: .22em; }

/* --- Guides ------------------------------------------------------------- */
.foot__guides { display: grid; gap: .55rem; font-size: .9rem; line-height: 1.35; }
.foot__guides a { display: inline-block; padding-left: 1rem; position: relative; }
.foot__guides a::before { content: ''; position: absolute; left: 0; top: .62em; width: .45rem; height: 1px; background: var(--gold); transition: width .3s var(--ease-out); }
.foot__guides a:hover::before, .foot__guides a:focus-visible::before { width: .7rem; }

@media (max-width: 1023px) {
  .foot { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .foot__bloc--objets { grid-column: 1 / -1; }
}
@media (max-width: 639px) {
  .foot { grid-template-columns: minmax(0, 1fr); }
  .foot__objets { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .foot__objets a { font-size: .8rem; padding-right: .5rem; gap: .5rem; }
  .foot__objets img { width: 2.3rem; height: 2.3rem; }
  /* Étiquettes trop serrées pour le doigt : mini-carte de points, villes en pastilles dessous. */
  .carte { aspect-ratio: auto; max-width: none; font-size: .82rem; }
  .carte__fond { position: relative; display: block; width: min(13rem, 62%); height: auto; aspect-ratio: 1; margin: 0 auto 1.1rem; }
  .carte__point { display: inline; }
  .carte .carte__villes { display: flex; flex-wrap: wrap; gap: .45rem; }
  .carte__ville { position: static; width: auto; height: auto; }
  .carte__ville::before { display: none; }
  .carte__ville a, .carte__ville--dh a { position: static; translate: none; display: inline-block; padding: .4rem .75rem; border: 1px solid rgba(201, 162, 74, .25); border-radius: 999px; }
}
@media (prefers-reduced-motion: reduce) {
  .foot a, .foot__objets img, .carte__ville::before { transition: none; }
}
.foot__plus {
  flex: none; display: grid; place-items: center; width: 2.8rem; height: 2.8rem;
  font: 400 1.6rem/1 var(--display); color: var(--gold);
}
.foot__tout { border-style: dashed !important; }
@media (max-width: 639px) { .foot__plus { width: 2.3rem; height: 2.3rem; } }
.site-footer__legal a { color: inherit; text-decoration: underline; text-decoration-color: rgba(201, 162, 74, .5); text-underline-offset: .22em; }
