/* AgenceFood. — PIED DE PAGE, DÉFINITION UNIQUE ═════════════════════════════

   Même règle que pour le header : ce fichier est la seule feuille qui décrit
   le pied de page. Aucune page ne redéfinit .footer dans sa feuille locale.

   Le balisage correspondant vit dans _src/footer.html et est injecté dans les
   pages par _src/build-chrome.mjs.
   ══════════════════════════════════════════════════════════════════════════ */

.footer{background:var(--creme);color:var(--gris-texte);padding:80px 56px 60px;position:relative}

/* Hauteurs de ligne posées sur chaque élément, et non laissées à l'héritage :
   les articles et les pages légales appliquent une hauteur de ligne aux <p> et
   aux <li>, qui l'emporte sur toute valeur héritée du conteneur. Sans ces
   déclarations, le pied de page ne tomberait pas au même pixel d'une famille
   de pages à l'autre. */
.footer__logo,.footer__h,.footer__list,.footer__list li,.footer__bottom,
.footer__bottom span,.footer .text-link{line-height:normal}
/* Même raison pour le corps : les pages légales posent une taille sur <li>. */
.footer__list li{font-size:14px}
.footer__grid{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px}
.footer__logo{font-family:var(--font-display);font-size:36px;margin:0;letter-spacing:-.01em;color:var(--noir)}
.footer__logo .dot{color:var(--bordeaux)}
.footer__mark{width:28px;height:28px;display:inline-block;vertical-align:-6px;margin-right:10px}
.footer__tag{margin:14px 0 0;font-size:14px;max-width:32ch;line-height:1.5;color:rgba(61,58,53,.85)}
.footer__h{font-family:var(--font-body);font-weight:600;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;margin:0 0 18px;color:var(--gris-texte)}
.footer__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.footer__list a{color:var(--bordeaux);opacity:1;text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
.footer__list a:hover{color:var(--bordeaux-hover)}
.footer__contact{font-size:14px;line-height:1.7}
.footer__contact .at{color:var(--bordeaux)}
.footer__contact a{color:var(--bordeaux);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
.footer__contact a:hover{color:var(--bordeaux-hover)}
.footer__social{display:flex;gap:6px;align-items:center}
.footer__bottom{max-width:1440px;margin:60px auto 0;padding-top:24px;
  border-top:1px solid rgba(10,10,10,.1);
  display:flex;justify-content:space-between;gap:20px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.75}
.footer__bottom .dot{color:var(--bordeaux);margin-right:8px}

/* Lien souligné du pied de page. Déclaré ici pour que les pages légales, qui
   n'embarquent pas la feuille des pages principales, rendent le même lien. */
.footer .text-link{position:relative;font-weight:500;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;display:inline-block;color:var(--bordeaux)}
.footer .text-link::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;
  background:currentColor;opacity:.4}
.footer .text-link:hover::after{opacity:1}

@media (max-width:1100px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:50px}
}
@media (max-width:900px){
  .footer{padding:60px 22px 40px}
  .footer__grid{grid-template-columns:1fr;gap:40px}
  .footer__bottom{flex-direction:column;gap:14px}
  /* Le plan du site et les liens légaux sont une navigation, pas du texte
     courant : au doigt, 17 px de haut ne suffisent pas. La hauteur de ligne
     absorbe l'écart, la liste ne s'allonge donc presque pas. */
  .footer__list{gap:0}
  .footer__list a{display:inline-flex;align-items:center;min-height:38px}
}

/* ── Barre d'appel collante, mobile ───────────────────────────────────────────
   Définie une seule fois, comme le reste du mobilier de page. Elle n'apparaît
   qu'après le premier écran et s'efface dès que le bouton de fin de page est
   visible : elle ne recouvre jamais le hero ni l'appel final. Tant qu'elle est
   masquée, elle est aussi retirée du parcours au clavier.

   Le pied de page réserve sa hauteur : sans cette réserve, la barre restait
   posée sur les dernières lignes du site sur les treize pages qui n'avaient pas
   la logique d'apparition. */
.cta-bar{display:none}
@media (max-width:768px){
  .cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:70;
    display:flex;justify-content:center;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    pointer-events:none;visibility:hidden;opacity:0;transform:translateY(120%);
    transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s linear .35s}
  .cta-bar.is-on{visibility:visible;opacity:1;transform:none;
    transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s}
  .cta-bar a{pointer-events:auto;width:100%;max-width:520px;
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    min-height:52px;padding:14px 22px;border-radius:999px;
    background:var(--bordeaux);color:var(--creme);
    font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:1;
    letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
    box-shadow:0 -6px 24px rgba(10,10,10,.28)}
  body[data-page="contact"] .cta-bar{display:none}
  .footer{padding-bottom:112px}
}
@media (prefers-reduced-motion:reduce){
  .cta-bar{transition:none}
}
