/* ==========================================================================
   PADC — pied de page commun (accueil, portail) — v0.3
   Inspiré du pied de page de l'ancien portail, amélioré :
   1. bande des organismes sur fond blanc (logos raster à fond blanc), rangés
      par rôle — porteur, soutien financier, partenaires — dans des cartes de
      même hauteur, légendes alignées ;
   2. bloc sombre : présentation, liens, contact ;
   3. barre légale : ©, mentions, confidentialité, accès discret à l'administration.
   Logos intacts : aucune recoloration ni déformation ; recadrage d'affichage
   limité à la marge blanche excédentaire du canevas (voir DECISIONS.md).
   ========================================================================== */
.pied-site { font-size: var(--taille-s); }

/* --- 1. Organismes --------------------------------------------------------- */
.pied-site__organismes {
  background: var(--surface);
  border-top: 1px solid var(--trait);
  padding-block: var(--e-7) var(--e-6);
}
.pied-site__initiative {
  max-width: 44rem;
  margin: 0 auto var(--e-6);
  text-align: center;
  font-family: var(--police-document);
  font-size: var(--taille-l);
  line-height: 1.4;
  color: var(--encre);
}
.pied-organismes {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 2fr);
  gap: var(--e-6);
  align-items: start;
}
.pied-organismes__groupe { min-width: 0; margin: 0; }
.pied-organismes__role {
  position: relative;
  margin: 0 0 var(--e-4);
  padding-bottom: var(--e-2);
  border-bottom: 1px solid var(--trait);
  color: var(--vert-800);
  font-size: var(--taille-xs);
  font-weight: 700;
  letter-spacing: 0.09em;
  text-align: center;
  text-transform: uppercase;
}
.pied-organismes__role::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 2.5rem;
  height: 3px;
  border-radius: 2px;
  background: var(--vert-500);
  transform: translateX(-50%);
}
.pied-organismes__logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--e-4);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pied-organismes__logos li { margin: 0; }
.logo-carte {
  display: grid;
  gap: var(--e-2);
  width: 11.5rem;
  margin: 0;
  text-align: center;
}
.logo-carte__cadre {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 5.5rem;
  padding: var(--e-2) var(--e-3);
  overflow: hidden;
  border: 1px solid var(--trait);
  border-radius: var(--r-3);
  background: #fff;
  box-shadow: var(--ombre-1);
}
.logo-carte__cadre img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 4.4rem;
  object-fit: contain;
}
/* Recadrage d'affichage de la seule marge blanche (échelle uniforme). */
.logo-carte--couvrir .logo-carte__cadre img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
}
.logo-carte--ica .logo-carte__cadre img { transform: scale(1.38); }
.logo-carte figcaption { color: var(--encre-3); font-size: var(--taille-xs); line-height: 1.35; }
.pied-organismes__mention {
  max-width: 46rem;
  margin: var(--e-6) auto 0;
  color: var(--encre-3);
  font-size: var(--taille-xs);
  text-align: center;
}

/* --- 2. Bloc principal -------------------------------------------------------- */
.pied-site__principal {
  background: var(--vert-900);
  color: #d5e6e2;
  padding-block: var(--e-7) var(--e-4);
}
.pied-site__principal a { color: #fff; text-decoration-color: rgba(255, 255, 255, 0.45); }
.pied-site__principal a:hover { color: #fff; text-decoration-color: #fff; text-decoration-thickness: 2px; }
.pied-site__principal :focus-visible { outline-color: var(--focus-inverse); }
.pied-site__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: var(--e-6);
}
.pied-site__nom {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  margin: 0 0 var(--e-3);
  color: #fff;
  font-family: var(--police-titre);
  font-size: var(--taille-xl);
  font-weight: 750;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.pied-site__nom small {
  display: block;
  margin-top: 3px;
  color: var(--vert-200);
  font-size: var(--taille-xs);
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pied-site__logo {
  flex: none;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: #fff;
  object-fit: cover;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12);
}
.pied-site__marque p { max-width: 24rem; }
.pied-site__marque p:not(.pied-site__nom) { margin: 0 0 var(--e-3); }
.pied-site__colonne h3 {
  margin: 0 0 var(--e-3);
  color: var(--vert-200);
  font-size: var(--taille-xs);
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.pied-site__colonne ul { margin: 0; padding: 0; list-style: none; }
.pied-site__colonne li { margin: 0; }
.pied-site__colonne li + li { margin-top: var(--e-2); }
.pied-site__colonne a { overflow-wrap: anywhere; }

/* --- 3. Barre légale -------------------------------------------------------------- */
.pied-site__bas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--e-2) var(--e-5);
  margin-top: var(--e-6);
  padding-top: var(--e-4);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: #b9d0ca;
  font-size: var(--taille-xs);
}
.pied-site__bas p { margin: 0; }
.pied-site__legal { display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-4); margin: 0; padding: 0; list-style: none; }
.pied-site__legal li { margin: 0; }
.pied-site__principal .pied-site__legal a { color: #d5e6e2; }
.pied-site__admin { display: inline-flex; align-items: center; gap: 5px; }
.pied-site__admin .icone { width: 14px; height: 14px; }

@media (max-width: 62rem) {
  .pied-organismes { grid-template-columns: minmax(0, 1fr); gap: var(--e-5); }
  .pied-site__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pied-site__marque { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
  .pied-site__initiative { font-size: var(--taille-m); }
  .logo-carte { width: 9.75rem; }
  .logo-carte__cadre { height: 4.75rem; }
  .logo-carte__cadre img { max-height: 3.75rem; }
  .pied-site__grille { grid-template-columns: minmax(0, 1fr); gap: var(--e-5); }
}
@media print {
  .pied-site__principal { display: none; }
  .pied-site__organismes { padding-block: var(--e-4); }
}

/* Soutien au développement du portail */
.soutien-portail { background: #edf6f2; border-top: 1px solid #c9dfd6; padding-block: clamp(1.75rem, 4vw, 3rem); color: #163b32; }
.soutien-portail__contenu { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.soutien-portail h2 { margin: 0 0 .6rem; font-size: clamp(1.3rem, 2.5vw, 1.75rem); line-height: 1.3; }
.soutien-portail p { margin: 0; max-width: 44rem; line-height: 1.65; }
.soutien-portail__action { display: flex; flex-direction: column; align-items: center; gap: .65rem; flex: 0 0 auto; }
.soutien-portail__bouton { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .8rem 1.5rem; border-radius: 999px; background: #116d5b; color: #fff; font-weight: 700; text-decoration: none; box-shadow: 0 4px 12px #116d5b24; transition: background .15s ease; }
.soutien-portail__bouton:hover { background: #084e41; color: #fff; }
.soutien-portail__bouton:focus-visible { outline: 3px solid #926500; outline-offset: 4px; }
.soutien-portail small { font-size: .8rem; text-align: center; max-width: 19rem; }
@media (max-width: 760px) { .soutien-portail__contenu { flex-direction: column; align-items: flex-start; gap: 1.25rem; } .soutien-portail__action { align-items: flex-start; } .soutien-portail small { text-align: start; } }
@media print { .soutien-portail { display: none; } }

/* Boutons de soutien : corail, animation douce et préférence de mouvement. */
.soutien-portail__bouton { background: linear-gradient(120deg, #b92c40, #cf3945); box-shadow: 0 5px 16px #b92c4033; transition: transform .2s ease, box-shadow .2s ease; animation: don-rythme 1.8s ease-in-out infinite; transform-origin: center; }
.soutien-portail__bouton:hover { background: #b92c40; transform: translateY(-2px); box-shadow: 0 7px 20px #b92c4044; }
.entete__commandes a.don-menu { display: inline-flex; align-items: center; justify-content: center; padding: 0; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #cf3945; box-shadow: 0 3px 10px #b92c4033; animation: don-rythme 1.8s ease-in-out infinite; transform-origin: center; transition: transform .2s ease; }
.don-menu img { display: block; width: 44px; height: 44px; }
.entete__commandes a.don-menu:hover { transform: translateY(-2px) scale(1.06); background: #cf3945; }
@keyframes don-rythme {
  0%, 44%, 100% { transform: translateY(0) scale(1) rotate(0); box-shadow: 0 4px 12px #b92c4033; }
  10% { transform: translateY(-3px) scale(1.09) rotate(-3deg); box-shadow: 0 0 0 5px #cf39452b; }
  18% { transform: translateY(0) scale(.97) rotate(0); }
  28% { transform: translateY(-5px) scale(1.12) rotate(3deg); box-shadow: 0 0 0 11px #cf394500; }
  36% { transform: translateY(-1px) scale(1.02) rotate(-1deg); }
}
.animations-en-pause .soutien-portail__bouton, .animations-en-pause .don-menu { animation-play-state: paused; }
.soutien-portail__bouton:is(:hover, :focus-visible), .entete__commandes a.don-menu:is(:hover, :focus-visible) { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .soutien-portail__bouton, .entete__commandes a.don-menu { animation: none; transition: none; } .soutien-portail__bouton:hover, .entete__commandes a.don-menu:hover { transform: none; } }

.entete__interieur > .entete__commandes { display: flex; align-items: center; gap: .65rem; margin-inline-start: auto; order: 2; flex: 0 0 auto; }
.entete__commandes a.don-menu { overflow: hidden; text-decoration: none; }
.entete__commandes a.don-menu img { width: 44px; height: 44px; object-fit: contain; }
@media (max-width: 36rem) { .entete__interieur > .entete__commandes { gap: .4rem; } }
@media print { .entete__commandes { display: none !important; } }
