/* Une fin de page plus structurée ; la photographie reste une texture discrète. */
.pied { position: relative; isolation: isolate; overflow: hidden; padding-top: 52px; background: #B1C3C1; color: var(--c-texte); }
.pied__fond { position: absolute; inset: 0 0 0 20%; width: 80%; height: 100%; object-fit: cover; object-position: right center; opacity: .10; filter: grayscale(1); pointer-events: none; z-index: -1; mask-image: linear-gradient(90deg, transparent, #000 50%); }
.pied__tete { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; padding-bottom: 38px; }
.pied__tete .pied__marque { grid-column: auto; }
.pied__logo { display: inline-block; text-decoration: none; }
.pied a.pied__logo:is(:link, :visited, :hover, :focus-visible) { text-decoration: none; background-image: none; }
.pied a.pied__logo::after { content: none; }
.pied__tete .pied__marque p { max-width: 440px; margin: 14px 0 0; color: var(--c-texte); font-size: 14px; }
.pied__invitation { justify-self: end; max-width: 510px; }
.pied__invitation h2 { font-family: var(--f-titre); color: var(--c-texte); font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.5rem); line-height: 1.12; letter-spacing: -.025em; margin: 0 0 22px; }
.pied__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.pied .pied__actions a.btn { color: #fff; background: var(--c-action); }
.pied .pied__actions a.btn:hover { background: var(--c-action-survol); }
.pied .pied__actions a.btn::after { content: none; }
.pied a.pied__rappel { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; font-weight: 600; color: var(--c-texte); }
.pied__rappel > .ico { width: 18px; height: 18px; color: var(--c-lien); }
.pied__navigation { padding-top: 32px; border-top: 1px solid var(--c-trait-clair); }
.pied__grille { grid-template-columns: 1.1fr .95fr 1.45fr 1.15fr; gap: 32px; align-items: start; }
.pied__grille > div { min-width: 0; }
.pied__titre { font-size: 17px; margin: 0 0 16px; }
.pied__titre--zones { margin-top: 24px; font-size: 14px; }
.pied__grille .liste-liens { display: grid; gap: 10px; columns: auto; font-size: 14px; }
.pied__guides .liste-liens li { margin: 0; }
.pied .liste-liens a, .pied__contact, .pied__contact a { color: var(--c-texte); }
.pied .liste-liens a:hover, .pied__contact a:hover { color: var(--c-lien); }
.pied .pied__liens--briques a { display: inline-block; position: relative; padding-left: 32px; line-height: 24px; text-decoration: none; transition: padding-left .3s cubic-bezier(.22,1,.36,1), color .2s ease; }
.pied .pied__liens--briques a::after { content: none; }
.pied .pied__liens--briques a::before { content: ''; position: absolute; left: 0; top: 9px; display: block; box-sizing: border-box; width: 10px; height: 6px; min-height: 6px; max-height: 6px; margin: 0; border: 0; border-radius: 1.5px; background: var(--c-orange); box-shadow: inset 0 -2px 0 rgba(0,0,0,.18); transition: width .3s cubic-bezier(.22,1,.36,1); pointer-events: none; }
.pied .pied__liens--briques a:is(:hover, :focus-visible, [aria-current="page"])::before { width: 40px; }
.pied .pied__liens--briques a:is(:hover, :focus-visible, [aria-current="page"]) { padding-left: 52px; color: var(--c-lien); }
@media (prefers-reduced-motion: reduce) { .pied .pied__liens--briques a, .pied .pied__liens--briques a::before { transition: none; } }
.pied__contact { gap: 14px; font-size: 14px; }
.pied__contact li { align-items: flex-start; gap: 10px; }
.pied__contact .ico { width: 30px; height: 30px; padding: 6px; }
.pied__contact a { overflow-wrap: anywhere; }
.pied__contact span { padding-top: 4px; }
.pied__bas { margin-top: 34px; padding-top: 22px; color: var(--c-texte); border-color: var(--c-trait-clair); font-size: 12px; }
.pied a:focus-visible { outline: 2px solid var(--c-lien); outline-offset: 5px; border-radius: 3px; }
[data-theme="nuit"] .pied__fond { opacity: .08; }
[data-theme="nuit"] .pied { background: #111B18; }
.interventions { display: grid; grid-template-columns: minmax(90px, .9fr) minmax(0, 1.1fr); align-items: center; gap: 12px; }
.interventions__carte { display: block; width: 100%; max-width: 150px; overflow: visible; }
.interventions__contour { fill: rgba(255,255,255,.20); stroke: #617D74; stroke-width: 1.3; stroke-linejoin: round; }
.interventions__repere { fill: var(--c-action); stroke: #F6F2E8; stroke-width: 1.4; }
.interventions__onde { fill: none; stroke: var(--c-action); stroke-width: 1.5; opacity: 0; transform-origin: 0 0; animation: onde-intervention 3s cubic-bezier(.16,1,.3,1) infinite; }
.interventions__onde--deux { animation-delay: 1.5s; }
.interventions__point--lyon .interventions__onde { animation-delay: .7s; }
.interventions__point--lyon .interventions__onde--deux { animation-delay: 2.2s; }
.pied__grille .interventions__liens { font-size: 12px; gap: 10px; }
.interventions__liens li:last-child { padding-top: 8px; border-top: 1px solid rgba(30,45,39,.18); }
[data-theme="nuit"] .interventions__contour { fill: rgba(200,222,210,.07); stroke: #839E94; }
[data-theme="nuit"] .interventions__liens li:last-child { border-color: rgba(216,234,223,.18); }
[data-theme="nuit"] .interventions__onde { stroke: #F47C5A; }
@keyframes onde-intervention {
  0% { transform: scale(1); opacity: .7; }
  85%, 100% { transform: scale(4); opacity: 0; }
}
@media (max-width: 640px) {
  .pied .pied__liens--briques a::before { top: 14px; }
  .interventions { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .interventions__carte { width: 120px; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .interventions__onde { animation: none; opacity: 0; }
}
@media (max-width: 1100px) {
  .pied__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
  .pied__tete { gap: 32px; }
}
@media (max-width: 640px) {
  .pied { padding-top: 36px; }
  .pied__tete { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-bottom: 30px; }
  .pied__invitation { justify-self: start; }
  .pied__invitation h2 { max-width: 300px; }
  .pied__actions { gap: 8px 16px; }
  .pied__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; }
  .pied__guides, .pied__coordonnees { grid-column: 1 / -1; }
  .pied__guides .liste-liens { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 6px 20px; }
  .pied__grille .liste-liens { gap: 6px; }
  .pied__grille .liste-liens a { display: inline-block; padding-block: 5px; }
  .pied__bas { margin-top: 30px; gap: 12px; }
  .pied__fond { left: 0; width: 100%; opacity: .06; mask-image: linear-gradient(#000, transparent 85%); }
}
/* Nous suivre : réseaux en pastilles sous la carte des interventions. */
.pied__reseaux { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(30,45,39,.18); }
.pied__reseaux .pied__titre { margin: 0 0 12px; }
.pied__reseaux ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pied a.pied__reseau { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; min-height: 38px; padding: 3px 12px 3px 3px; gap: 7px; border: 1px solid rgba(30,45,39,.14); border-radius: 999px; background: rgba(255,255,255,.2); color: var(--c-texte); font-size: 13px; font-weight: 600; text-decoration: none; background-image: none; transition: color .25s ease, border-color .25s ease; }
.pied a.pied__reseau::after { content: none; }
/* Le rond de l'icône se répand comme un liquide jusqu'à remplir la pastille, sans changer de teinte :
   une goutte aux bords irréguliers, centrée sur l'icône, grossit en tournant un peu (transform seul, sans à-coup). */
.pied a.pied__reseau::before { content: ''; position: absolute; z-index: -1; left: 17px; top: 50%; width: 280px; height: 280px; margin: -140px 0 0 -140px; border-radius: 50%; background: rgba(255,255,255,.5); transform: scale(.1); will-change: transform; transition: transform .7s cubic-bezier(.3,1.35,.55,1), border-radius .5s ease; transition: transform 1.1s linear(0.000, 0.017, 0.050, 0.096, 0.152, 0.218, 0.292, 0.373, 0.462, 0.558, 0.660, 0.769, 0.884, 1.005, 1.055, 1.039, 1.018, 0.998, 0.982, 0.972, 0.969, 0.973, 0.981, 0.992, 1.002, 1.010, 1.015, 1.016, 1.014, 1.009, 1.004, 0.999, 0.995, 0.992, 0.992, 0.993, 0.996, 0.998, 1.001, 1.003, 1.004, 1.004, 1.003, 1.002, 1.001, 0.999, 0.999, 0.998, 1.000), border-radius .5s ease; }
.pied__reseau .ico { flex: none; width: 28px; height: 28px; padding: 6px; border-radius: 50%; background: none; color: var(--c-lien); }
.pied a.pied__reseau:is(:hover, :focus-visible) { color: var(--c-lien); border-color: var(--c-lien); }
/* Retour : le rond se rétracte en rebondissant trois fois (courbe linear() amortie, rebond simple sinon) ; aller : easy ease. */
.pied a.pied__reseau:is(:hover, :focus-visible)::before { transform: scale(1) rotate(35deg); border-radius: 44% 56% 52% 48% / 55% 45% 55% 45%; transition-duration: .6s; transition-timing-function: cubic-bezier(.42,0,.58,1); }
[data-theme="nuit"] .pied__reseaux { border-color: rgba(216,234,223,.18); }
[data-theme="nuit"] .pied a.pied__reseau { color: #CED8E7; border-color: rgba(216,234,223,.18); background: rgba(255,255,255,.05); }
[data-theme="nuit"] .pied a.pied__reseau::before { background: rgba(255,179,141,.16); }
[data-theme="nuit"] .pied__reseau .ico { color: #FFB38D; }
[data-theme="nuit"] .pied a.pied__reseau:is(:hover, :focus-visible) { color: #FFB38D; border-color: #FFB38D; }
@media (prefers-reduced-motion: reduce) { .pied a.pied__reseau, .pied a.pied__reseau::before, .contact-reseau { transition: none; } }
