/* Structure globale : header, navigation, footer. */
/* Le conteneur de page porte le sticky : le header interne est dans ce conteneur. */
#site-header { position: sticky; top: 0; z-index: 1100; background: #fff; }
.site-header { position: relative; height: var(--header-height); background: #fff; border-bottom: 1px solid var(--color-line); transition: box-shadow var(--ease-ui); }
.site-header.is-scrolled { box-shadow: 0 10px 25px rgb(6 29 54 / 9%); }
.site-header__inner { height: 100%; display: flex; align-items: center; gap: 24px; }
.site-header__brand { flex: 0 0 auto; }
.site-header__nav { flex: 1 1 auto; min-width: 0; }
.main-nav__list { display: flex; align-items: center; justify-content: center; gap: clamp(12px, 1.5vw, 23px); margin: 0; padding: 0; list-style: none; }
.nav-item { position: relative; }
.site-header__actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.site-header__mobile { display: none; }
.site-footer { background: var(--color-navy-deep); color: #fff; padding: 76px 0 0; }
.site-footer__grid { display: grid; grid-template-columns: minmax(270px, 1.4fr) minmax(135px, .75fr) minmax(200px, 1.05fr) minmax(270px, 1.2fr); gap: clamp(28px, 4vw, 70px); }
.site-footer__brand { margin-bottom: 23px; }
.site-footer__summary { max-width: 320px; color: #b9c9dc; font-size: .93rem; line-height: 1.9; }
.site-footer h2 { margin: 8px 0 25px; color: #fff; font-size: 1.01rem; font-weight: 750; }
.site-footer__list { padding: 0; margin: 0; list-style: none; display: grid; gap: 13px; }
.site-footer__list a { color: #b9c9dc; font-size: .92rem; transition: color var(--ease-ui); }
.site-footer__list a:hover { color: #fff; }
.site-footer__contact { display: grid; gap: 15px; margin: 0; }
.site-footer__contact dt { font-size: .74rem; color: #86a2be; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.site-footer__contact dd { margin: 3px 0 0; color: #d2e1ed; font-size: .91rem; line-height: 1.6; }
.site-footer__contact a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-footer__bottom { border-top: 1px solid rgb(255 255 255 / 12%); margin-top: 60px; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; gap: 18px; color: #a5bad0; font-size: .83rem; }
.site-footer__bottom p { margin: 0; }


/* F8 — accès à l'administration, séparé des liens publics du footer. */
.site-footer__access {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 28px;
  margin-top: 40px;
  padding-block: 24px;
  border-top: 1px solid rgb(255 255 255 / 16%);
}
.site-footer__access-note {
  margin: 0;
  color: #c5d4e2;
  font-size: .88rem;
  line-height: 1.6;
}
.site-footer .footer-admin-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 52px;
  max-width: 100%;
  padding: 14px 21px;
  border: 1px solid #ffceac;
  border-radius: 12px;
  color: #683019;
  background: #ffe6d2;
  box-shadow: 0 5px 16px rgb(0 0 0 / 14%);
  font-size: .94rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.footer-admin-link svg { flex: 0 0 auto; }
.footer-admin-link span { min-width: 0; overflow-wrap: anywhere; }
.footer-admin-link__arrow { transition: transform 180ms ease; }
.site-footer .footer-admin-link:hover,
.site-footer .footer-admin-link:focus-visible {
  color: #fff;
  background: #a64216;
  border-color: #ffbb8c;
  box-shadow: 0 8px 22px rgb(0 0 0 / 24%);
  transform: translateY(-2px);
}
.site-footer .footer-admin-link:focus-visible { outline: 3px solid #ffd2a8; outline-offset: 4px; }
.site-footer .footer-admin-link:active { transform: translateY(0); box-shadow: 0 2px 8px rgb(0 0 0 / 18%); }
.footer-admin-link:hover .footer-admin-link__arrow,
.footer-admin-link:focus-visible .footer-admin-link__arrow { transform: translateX(3px); }
html[dir="rtl"] .footer-admin-link__arrow { transform: rotate(180deg); }
html[dir="rtl"] .footer-admin-link:hover .footer-admin-link__arrow,
html[dir="rtl"] .footer-admin-link:focus-visible .footer-admin-link__arrow { transform: rotate(180deg) translateX(3px); }
.site-footer__access + .site-footer__bottom { margin-top: 0; }
@media(max-width: 650px) {
  /* Réserver la colonne droite aux boutons de contact flottants sur mobile. */
  .site-footer__access { flex-direction: column; align-items: flex-start; margin-top: 30px; gap: 14px; padding-right: 64px; }
  .site-footer .footer-admin-link { width: 100%; gap: 8px; padding: 13px 12px; font-size: .9rem; }
}
@media(prefers-reduced-motion: reduce) {
  .site-footer .footer-admin-link, .footer-admin-link__arrow { transition: none; }
  .site-footer .footer-admin-link:hover, .site-footer .footer-admin-link:focus-visible { transform: none; }
  .footer-admin-link:hover .footer-admin-link__arrow, .footer-admin-link:focus-visible .footer-admin-link__arrow { transform: none; }
  html[dir="rtl"] .footer-admin-link__arrow,
  html[dir="rtl"] .footer-admin-link:hover .footer-admin-link__arrow,
  html[dir="rtl"] .footer-admin-link:focus-visible .footer-admin-link__arrow { transform: rotate(180deg); }
}
