/* ========================================================
   FOOTER CANONIQUE MADLY — version unique pour tout le site
   Source : index-fr.html / index.html
   ======================================================== */

footer {
  background: #0B0419 !important;
  color: #ffffff !important;
  border-top: none !important;
  margin-top: 0 !important;
  padding: 88px 80px 36px !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 1.6fr) 1fr 1fr 1fr !important;
  column-gap: 36px !important;
  row-gap: 48px !important;
  align-items: start !important;
  flex-wrap: initial !important;
  justify-content: initial !important;
}

@media (max-width: 1024px) {
  footer {
    grid-template-columns: 1fr 1fr 1fr !important;
    padding: 60px 40px 28px !important;
    row-gap: 40px !important;
  }
  footer .ft-col-brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  footer {
    grid-template-columns: 1fr 1fr !important;
    padding: 50px 24px 24px !important;
    row-gap: 32px !important;
  }
}

@media (max-width: 480px) {
  footer { grid-template-columns: 1fr !important; }
}

.madly-ft-logo img,
.brand-divider-mark img { border-radius: 0; }

/* Contraindre le logo du brand-divider à la taille de son parent (34×34) */
.brand-divider-mark img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  backface-visibility: visible !important;
}

.madly-ft-logo {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
}

/* logo footer SVG : x3 (160px -> 480px) — override du width inline */
.madly-ft-logo svg {
  width: 480px !important;
  height: auto !important;
}
@media (max-width: 900px) {
  .madly-ft-logo svg { width: 100% !important; }   /* cappe a la colonne sur mobile — DOIT suivre le bloc 480px (cascade) */
}

.madly-ft-logo img {
  display: block !important;
  height: 60px !important;
  width: auto !important;
  margin-top: 4px !important;
  opacity: 1 !important;
}

@media (max-width: 560px) {
  .madly-ft-logo img { height: 44px !important; }
}

.ft-col {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-width: 0 !important;
}

.ft-col-brand {
  gap: 20px !important;
  min-width: 0 !important;
  grid-column: 1 / -1 !important;
  max-width: 100% !important;
}

@media (min-width: 901px) {
  .ft-col-brand { grid-column: 1 !important; }
}

@media (max-width: 560px) {
  .ft-col-brand, footer .ft-copy { grid-column: 1 !important; }
}

.ft-desc {
  font: 500 14px/1.55 'Champ', 'Arial Black', sans-serif !important;
  color: rgba(255,255,255,0.7) !important;
  margin-top: 4px !important;
  overflow-wrap: anywhere !important;
}

.ft-desc .ft-grad,
.ft-grad {
  background: linear-gradient(135deg, #FF7262, #A259FF, #1ABCFE) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  font-weight: 700 !important;
}

.ft-lang {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 8px !important;
}

.ft-lang-btn { min-height: 36px; min-width: 36px;
  width: 44px !important;
  height: 44px !important; min-width: 44px !important; min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font: 500 11px/1 'Champ', 'Arial Black', sans-serif !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.6) !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.42) !important;   /* .18 -> .42 : bordure des boutons EN/FR/ES, 1,61:1 -> >3:1 (24/07/2026) */
  border-radius: 50% !important;
  padding: 0 !important;
  cursor: pointer !important;
  transition: color 0.25s, border-color 0.25s, background 0.25s !important;
}

.ft-lang-btn:hover {
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.45) !important;
  background: rgba(255,255,255,0.05) !important;
}

.ft-lang-btn.active {
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.6) !important;
  background: rgba(255,255,255,0.08) !important;
}

.ft-lang-sep {
  color: rgba(255,255,255,0.3) !important;
  font-size: 12px !important;
}

.ft-col h4 {
  font: 500 12px/1 'Champ', 'Arial Black', sans-serif !important;   /* 10 -> 12px (audit 29/08/2026) */
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.55) !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
}

.ft-col ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

.ft-col li {
  margin: 0 !important;
  padding: 0 !important;
}

.ft-col a {
  font: 500 15px/1.2 'Champ', 'Arial Black', sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: rgba(255,255,255,0.85) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: color 0.25s !important;
  text-align: initial !important;
  width: fit-content !important;
  text-decoration: none !important;
}

.ft-col a:hover { color: #ffffff !important; }

/* Animation flèche slide (nouveau système ft-arrow-wrap + ft-arrow-clone) */
.ft-col a .ft-arrow-wrap,
.ft-arrow-wrap {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  overflow: hidden !important;
  position: relative !important;
  flex-shrink: 0 !important;
  vertical-align: middle !important;
  margin-left: 6px !important;
}

.ft-col a .ft-arrow,
.ft-arrow {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255,255,255,0.6) !important;
  transition: transform 0.55s cubic-bezier(.65,.05,.36,1), color 0.25s !important;
  transform: translate(0, 0) !important;
}

.ft-col a .ft-arrow-clone,
.ft-arrow-clone {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255,255,255,0.6) !important;
  transition: transform 0.55s cubic-bezier(.65,.05,.36,1), color 0.25s !important;
  display: block !important;
  transform: translate(-100%, 100%) !important;
}

.ft-col a:hover .ft-arrow {
  transform: translate(100%, -100%) !important;
  color: #ffffff !important;
}

.ft-col a:hover .ft-arrow-clone {
  transform: translate(0, 0) !important;
  color: #ffffff !important;
}

.ft-copy {
  grid-column: 1 / -1 !important;
  padding-top: 28px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  font: 500 12px/1 'Champ', 'Arial Black', sans-serif !important;
  color: rgba(255,255,255,0.62) !important;   /* .35 -> .62 : contraste 3,09:1 (echec AA) -> ~7:1 (24/07/2026) */
  width: auto !important;
  margin-top: 8px !important;
  text-align: initial !important;
  justify-self: stretch !important;
}
.ft-legal {
  display: inline-flex; align-items: center;
  gap: 14px;
  font: 500 12px/1 'Champ', 'Arial Black', sans-serif !important;
  color: rgba(255,255,255,0.5);
}
.ft-legal a {
  color: rgba(255,255,255,0.55) !important;
  text-decoration: none;
  transition: color 0.25s ease;
  /* zone tactile : padding compense, sans incidence visuelle (audit 29/08/2026) */
  display: inline-block;
  padding: 12px 8px; margin: -12px -8px;
}
.ft-legal a:hover { color: #FFFEF7 !important; }
.ft-legal .ft-legal-sep {
  width: 3px; height: 3px; border-radius: 50%;
  background: rgba(255,255,255,0.25);
  display: inline-block;
}

@media (max-width: 560px) {
  .ft-copy {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-start !important;
  }
}


/* ── ZONES TACTILES DES LOGOS DE NAV (audit mobile 29/08/2026) ── */
a.nav-logo, a.pa-logo { padding: 9px 10px; margin: -9px -10px; }


/* ── MOBILE : footer resserre (retour Dimitri 01/09/2026 : « hyper espace ») ── */
@media (max-width: 768px){
  .ft-col { gap: 10px !important; }
  .ft-col ul { gap: 7px !important; }
  .ft-col h4 { margin-bottom: 2px !important; }
}


/* ══════════════════════════════════════════════════════════════════
   FOOTER CONDENSE SUR TELEPHONE (demande alex 14/09/2026)
   Avant : 1 colonne, logo de 300 px, 4 blocs empiles -> 1023 px de haut.
   Maintenant : logo reduit, langue a droite du logo, les 3 colonnes de liens
   cote a cote, interlignes resserres. Cible ~360 px.
   ══════════════════════════════════════════════════════════════════ */
@media (max-width: 720px) {
  body footer {
    grid-template-columns: repeat(3, 1fr) !important;
    padding: 34px 18px 16px !important;
    row-gap: 22px !important;
    column-gap: 12px !important;
    align-items: start !important;
  }
  body footer .ft-col-brand {
    grid-column: 1 / -1 !important;
    display: flex !important; flex-direction: row !important; flex-wrap: wrap !important;
    align-items: center !important; justify-content: space-between !important;
    gap: 10px 12px !important;
  }
  body footer .madly-ft-logo { flex: 0 0 auto !important; }
  body footer .madly-ft-logo svg { width: 138px !important; height: auto !important; }
  body footer .ft-desc {
    flex: 1 1 100% !important; order: 3 !important;
    font-size: 11.5px !important; line-height: 1.45 !important; margin: 0 !important;
    color: rgba(255,255,255,.6) !important;
  }
  body footer .ft-lang { flex: 0 0 auto !important; margin: 0 !important; gap: 6px !important; }
  body footer .ft-lang-btn {
    width: 34px !important; height: 34px !important;
    min-width: 34px !important; min-height: 34px !important; font-size: 11px !important;
  }
  body footer .ft-col { gap: 0 !important; min-width: 0 !important; }
  body footer .ft-col h4 {
    font-size: 10px !important; letter-spacing: .18em !important;
    margin: 0 0 8px !important; color: rgba(255,255,255,.45) !important;
  }
  body footer .ft-col ul { gap: 2px !important; }
  body footer .ft-col a {
    font-size: 12.5px !important; line-height: 1.25 !important;
    min-height: 30px !important; gap: 5px !important;
  }
  body footer .ft-col a .ft-arrow-wrap,
  body footer .ft-col a .ft-arrow, body footer .ft-col a .ft-arrow-clone {
    width: 12px !important; height: 12px !important;
  }
  body footer .ft-copy {
    grid-column: 1 / -1 !important;
    flex-direction: row !important; flex-wrap: wrap !important;
    align-items: center !important; justify-content: space-between !important;
    gap: 6px 12px !important; padding-top: 14px !important;
    font-size: 10.5px !important;
  }
  body footer .ft-copy > span { font-size: 10.5px !important; color: rgba(255,255,255,.45) !important; }
  body footer .ft-legal { gap: 8px !important; font-size: 10.5px !important; order: 3 !important; flex: 1 1 100% !important; }
  body footer .ft-legal a { font-size: 10.5px !important; padding: 2px 0 !important; min-height: 0 !important; }
}
@media (max-width: 380px) {
  body footer .ft-col a { font-size: 11.5px !important; }
  body footer .madly-ft-logo svg { width: 120px !important; }
}
