/* Animalia — adaptation tablette et mobile
   Les maquettes sont en styles en ligne ; les points de rupture passent donc
   par des surcharges ciblées sur ces mêmes styles. */

/* ---------- Tablette : jusqu'à 900 px ---------- */
@media (max-width: 900px) {

  /* Conteneurs principaux : marges réduites */
  div[style*="max-width: 1400px"],
  div[style*="max-width: 1264px"],
  div[style*="max-width: 1200px"],
  div[style*="max-width: 1180px"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Grilles à colonnes fixes : deux colonnes maximum */
  div[style*="grid-template-columns: 1.35fr"],
  div[style*="grid-template-columns: 1.3fr"],
  div[style*="grid-template-columns: 1.5fr"],
  div[style*="grid-template-columns: 1.6fr"],
  div[style*="grid-template-columns: 1.7fr"],
  div[style*="grid-template-columns: 1.75fr"],
  div[style*="grid-template-columns: 1.9fr"],
  div[style*="grid-template-columns: 1.2fr"],
  div[style*="grid-template-columns: 1.4fr"],
  div[style*="grid-template-columns: 380px"],
  div[style*="grid-template-columns: 1fr 1fr 1fr"],
  div[style*="grid-template-columns: repeat(3, 1fr)"],
  div[style*="grid-template-columns: repeat(4, 1fr)"],
  div[style*="grid-template-columns: repeat(5, 1fr)"],
  div[style*="grid-template-columns: repeat(6, 1fr)"],
  div[style*="grid-template-columns: repeat(7, 1fr)"],
  div[style*="grid-template-columns: repeat(9, 1fr)"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto !important;
  }

  /* Colonnes latérales collantes : plus de collage sur petit écran */
  div[style*="position: sticky"][style*="top: 96px"],
  div[style*="position: sticky"][style*="top: 110px"],
  div[style*="position: sticky"][style*="top: 120px"],
  aside[style*="position: sticky"] {
    position: static !important;
  }

  /* Éléments qui traversent plusieurs colonnes */
  [style*="grid-column: span 2"] { grid-column: span 2 !important; }
  [style*="grid-row: span 2"] { grid-row: auto !important; }

  /* Titres */
  h1 { font-size: 30px !important; line-height: 1.18 !important; }
  h2 { font-size: 21px !important; }

  /* Hero : moins de padding, hauteur libre */
  div[style*="min-height: 460px"],
  div[style*="min-height: 404px"],
  div[style*="min-height: 380px"],
  div[style*="min-height: 340px"] {
    min-height: 0 !important;
  }
  div[style*="padding: 56px 60px"],
  div[style*="padding: 46px 52px"],
  div[style*="padding: 44px 48px"],
  div[style*="padding: 44px 46px"] {
    padding: 32px 26px !important;
  }
  div[style*="padding: 30px 34px"],
  div[style*="padding: 32px 34px"],
  div[style*="padding: 34px 36px"],
  div[style*="padding: 28px 30px"],
  div[style*="padding: 30px 32px"] {
    padding: 24px 20px !important;
  }

  div, p, h1, h2 { max-width: 100% !important; }
  div[style*="display: flex"] { flex-wrap: wrap !important; min-width: 0 !important; }
}

/* ---------- Mobile : jusqu'à 640 px ---------- */
@media (max-width: 640px) {

  /* Rien ne peut dépasser la largeur de l'écran */
  div, p, h1, h2, h3, form, section { max-width: 100% !important; }
  div[style*="min-width: 320px"],
  div[style*="min-width: 300px"],
  div[style*="min-width: 280px"],
  div[style*="min-width: 260px"] { min-width: 0 !important; }
  /* Un enfant flexible ne se compresse pas : il passe à la ligne */
  div[style*="flex: 1 1 0%"],
  div[style*="flex: 1 1 0"],
  div[style*="flex: 1"] { flex-basis: 100% !important; }
  div[style*="display: flex"] { flex-wrap: wrap !important; min-width: 0 !important; }
  a[style*="display: flex"] { min-width: 0 !important; }

  div[style*="max-width: 1400px"],
  div[style*="max-width: 1264px"],
  div[style*="max-width: 1200px"],
  div[style*="max-width: 1180px"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Toutes les grilles passent en une colonne */
  div[style*="display: grid"] {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    gap: 12px !important;
  }
  [style*="grid-column: span 2"],
  [style*="grid-column: span 3"] { grid-column: auto !important; }

  /* Titres et textes */
  h1 { font-size: 26px !important; letter-spacing: -0.02em !important; }
  h2 { font-size: 19px !important; }
  h3 { font-size: 17px !important; }

  /* Hero */
  div[style*="padding: 56px 60px"],
  div[style*="padding: 46px 52px"],
  div[style*="padding: 44px 48px"],
  div[style*="padding: 44px 46px"],
  div[style*="padding: 42px 46px"] {
    padding: 26px 20px !important;
  }
  div[style*="padding: 30px 34px"],
  div[style*="padding: 32px 34px"],
  div[style*="padding: 34px 36px"],
  div[style*="padding: 28px 30px"],
  div[style*="padding: 30px 32px"],
  div[style*="padding: 26px 28px"],
  div[style*="padding: 24px 26px"] {
    padding: 20px 16px !important;
  }

  /* Espacement vertical entre sections */
  div[style*="padding: 60px 40px 0"],
  div[style*="padding: 56px 40px 0"],
  div[style*="padding: 52px 32px 0"],
  div[style*="padding: 44px 40px 0"] {
    padding-top: 36px !important;
  }

  /* Lignes de liste : miniature plus petite, pas de débordement */
  a[style*="display: flex"] > div[style*="width: 124px"],
  a[style*="display: flex"] > div[style*="width: 100px"],
  a[style*="display: flex"] > div[style*="width: 96px"],
  a[style*="display: flex"] > div[style*="width: 88px"],
  a[style*="display: flex"] > div[style*="width: 84px"] {
    width: 76px !important;
    height: 56px !important;
  }

  /* Blocs à deux zones (texte + vignette) */
  a[style*="display: flex"] > div[style*="width: 130px"],
  a[style*="display: flex"] > div[style*="width: 62px"],
  a[style*="display: flex"] > div[style*="width: 54px"] {
    width: 84px !important;
  }

  /* Chiffres-clés du hero */
  div[style*="display: flex"][style*="gap: 44px"],
  div[style*="display: flex"][style*="gap: 36px"],
  div[style*="display: flex"][style*="gap: 32px"] {
    gap: 20px !important;
  }

  /* Champs de recherche : pleine largeur */
  form[style*="display: flex"] { flex-direction: column !important; align-items: stretch !important; }
  form button { width: 100% !important; }

  /* Colonnes latérales sur les fiches */
  div[style*="position: sticky"]:not([style*="z-index: 40"]) { position: static !important; }

  /* Carte de répartition */
  iframe { height: 300px !important; }
}

/* ---------- Navigation mobile ---------- */
.am-burger { display: none; }

@media (max-width: 1100px) {
  .am-burger {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 1px solid #E6E8EB;
    background: #FFFFFF;
    cursor: pointer;
    flex: none;
    margin-left: auto;
  }
  .am-hide-mobile { display: none !important; }
  .am-header-row { padding-top: 12px !important; padding-bottom: 12px !important; flex-wrap: nowrap !important; }
  .am-panel-cta, a[style*="border-radius: 8px"][style*="background: #0E9F55"] { white-space: nowrap !important; }
}

.am-panel {
  font-family: Poppins, system-ui, sans-serif;
  position: fixed;
  inset: 0;
  background: #FFFFFF;
  z-index: 200;
  display: none;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.am-panel[data-open="true"] { display: flex; }
.am-panel-head {
  font-family: Poppins, system-ui, sans-serif;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-bottom: 1px solid #E6E8EB;
  position: sticky;
  top: 0;
  background: #FFFFFF;
}
.am-panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
  font-size: 16px;
  font-weight: 500;
  color: #111827;
  border-bottom: 1px solid #F1F3F4;
  min-height: 44px;
  box-sizing: border-box;
}
.am-panel a:hover { background: #F9FAFB; color: #0B7A42; }
.am-panel a[data-current="true"] { color: #0E9F55; font-weight: 600; }
.am-panel-label {
  padding: 20px 20px 8px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #9CA3AF;
}
.am-panel-cta {
  margin: 20px;
  padding: 14px 20px;
  background: #0E9F55;
  color: #FFFFFF;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  text-align: center;
  justify-content: center !important;
  border-bottom: none !important;
}
