/* ==========================================================
   Le Major d'Assistance - pied de page moderne
   ========================================================== */
.lma-footer {
  --lma-f-bg: #0B2A2E;
  --lma-f-text: #B9CFD1;
  --lma-f-muted: #8FB3B7;
  --lma-f-accent: #31B3C4;
  --lma-f-light: #E7F7F9;
  --lma-f-line: #1E4A50;
  --lma-f-chip: #123A3F;
  width: 100%;
  box-sizing: border-box;
  background: var(--lma-f-bg);
  color: var(--lma-f-text);
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  padding: 56px 40px 0;
  overflow: hidden;
  margin-top: 64px;
}
.lma-footer *, .lma-footer *::before, .lma-footer *::after { box-sizing: border-box; }
.lma-footer a { color: var(--lma-f-text); text-decoration: none !important; transition: color .2s ease; }
.lma-footer a:hover, .lma-footer a:focus-visible { color: #FFFFFF; }
.lma-footer a:focus-visible { outline: 2px solid var(--lma-f-accent); outline-offset: 3px; border-radius: 6px; }
.lma-footer svg { flex-shrink: 0; }
.lma-footer ul { list-style: none; margin: 0; padding: 0; }
.lma-footer p, .lma-footer h2, .lma-footer h3 { margin: 0; }

/* --- Bandeau d'appel --- */
.lma-f-cta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;
  background: var(--lma-f-light); border-radius: 24px; padding: 36px 44px;
}
.lma-f-cta-text { display: flex; align-items: center; gap: 20px; flex: 1 1 420px; min-width: 0; }
.lma-f-cta-icon {
  flex: 0 0 56px; width: 56px; height: 56px; border-radius: 16px; background: var(--lma-f-accent);
  display: flex; align-items: center; justify-content: center; color: #FFFFFF;
}
.lma-f-cta h2 { font-family: inherit; font-size: 26px; line-height: 1.2; font-weight: 800; color: var(--lma-f-bg); letter-spacing: -0.01em; }
.lma-f-cta p { font-size: 15px; color: #2E5257; margin-top: 6px; }
.lma-f-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.lma-footer .lma-f-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px;
  border-radius: 14px; font-size: 15px; font-weight: 700; border: 2px solid var(--lma-f-bg);
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.lma-footer .lma-f-btn:hover { transform: translateY(-1px); }
.lma-footer .lma-f-btn--dark { background: var(--lma-f-bg); color: #FFFFFF; }
.lma-footer .lma-f-btn--dark:hover { background: #227B87; border-color: #227B87; color: #FFFFFF; }
.lma-footer .lma-f-btn--ghost { background: transparent; color: var(--lma-f-bg); }
.lma-footer .lma-f-btn--ghost:hover { background: var(--lma-f-bg); color: #FFFFFF; }

/* --- Colonnes --- */
.lma-f-grid {
  display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr));
  gap: 48px 40px; padding: 64px 0 56px;
}
.lma-f-brand { display: flex; flex-direction: column; gap: 20px; }
.lma-f-brand img { height: 64px; width: auto; display: block; }
.lma-f-brand p { font-size: 14px; line-height: 1.7; max-width: 340px; }
.lma-f-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.lma-f-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px;
  border: 1px solid #24515A; font-size: 12px; font-weight: 600; color: var(--lma-f-light);
}
.lma-f-dot { width: 8px; height: 8px; border-radius: 50%; background: #3FD6C1; box-shadow: 0 0 0 4px rgba(63,214,193,.15); }
.lma-f-social { display: flex; gap: 10px; }
.lma-footer .lma-f-social a {
  width: 44px; height: 44px; border-radius: 12px; background: var(--lma-f-chip);
  display: flex; align-items: center; justify-content: center; color: var(--lma-f-light);
  transition: background .2s ease, transform .15s ease;
}
.lma-footer .lma-f-social a:hover { background: var(--lma-f-accent); color: #FFFFFF; transform: translateY(-2px); }

.lma-f-col { display: flex; flex-direction: column; gap: 16px; }
.lma-f-col h3 {
  font-family: inherit; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lma-f-accent);
}
.lma-f-links { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.lma-footer .lma-f-all { display: inline-flex; align-items: center; gap: 6px; color: #FFFFFF; font-weight: 600; }
.lma-f-contact { display: flex; flex-direction: column; gap: 16px; font-size: 14px; line-height: 1.5; }
.lma-f-contact li { display: flex; gap: 12px; align-items: flex-start; }
.lma-f-contact li > svg { margin-top: 2px; color: var(--lma-f-accent); }
.lma-f-phones { display: flex; flex-direction: column; gap: 4px; }
.lma-footer .lma-f-phones a { color: #FFFFFF; font-weight: 600; }

/* --- Filigrane --- */
.lma-f-watermark {
  font-size: clamp(48px, 9.6vw, 148px); line-height: 0.85; font-weight: 800; letter-spacing: -0.04em;
  color: var(--lma-f-chip); white-space: nowrap; margin: 0 0 -6px; user-select: none; pointer-events: none;
}

/* --- Barre du bas --- */
.lma-f-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
  border-top: 1px solid var(--lma-f-line); padding: 22px 0 26px; font-size: 13px; color: var(--lma-f-muted);
}
.lma-f-legal { display: flex; flex-wrap: wrap; gap: 24px; }
.lma-footer .lma-f-legal a { color: var(--lma-f-muted); }
.lma-footer .lma-f-legal a:hover { color: #FFFFFF; }
.lma-footer .lma-f-top { display: inline-flex; align-items: center; gap: 6px; color: var(--lma-f-light); font-weight: 600; }

/* --- Responsive --- */
@media (max-width: 1100px) {
  .lma-f-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .lma-footer { padding: 48px 24px 0; }
}
@media (max-width: 767px) {
  .lma-footer { padding: 32px 16px 0; margin-top: 40px; }
  .lma-f-cta { flex-direction: column; align-items: stretch; padding: 24px 20px; border-radius: 20px; gap: 18px; }
  .lma-f-cta-text { flex-direction: column; align-items: flex-start; gap: 16px; flex-basis: auto; }
  .lma-f-cta-icon { flex-basis: 48px; width: 48px; height: 48px; border-radius: 14px; }
  .lma-f-cta h2 { font-size: 22px; line-height: 1.25; }
  .lma-f-cta p { font-size: 14px; line-height: 1.5; }
  .lma-f-cta-actions { flex-direction: column; }
  .lma-footer .lma-f-btn { width: 100%; }
  .lma-f-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; padding: 40px 0 32px; }
  .lma-f-brand, .lma-f-col--contact { grid-column: 1 / -1; }
  .lma-f-brand img { height: 56px; }
  .lma-f-links { gap: 4px; }
  .lma-f-links a { display: block; padding: 6px 0; }
  .lma-f-watermark { font-size: 64px; white-space: normal; line-height: .9; }
  .lma-f-watermark span { display: none; }
  .lma-f-bottom { flex-direction: column-reverse; align-items: flex-start; gap: 14px; padding-bottom: 28px; }
  .lma-f-legal { gap: 20px; }
}
