/* Altaïr — calque responsive.
   1180px : la barre desktop ne tient plus → menu burger.
   900px  : vraie mise en page mobile (colonne, rythme, typo).
   560px  : ajustements petits écrans.
   Le rendu desktop plein écran n'est jamais touché. */

/* ============================================================
   1180px — NAV BURGER
   ============================================================ */
@media (max-width: 1180px) {

  nav {
    position: sticky !important;
    padding: 8px 18px !important;
    flex-wrap: wrap !important;
  }
  nav img { height: 50px !important; width: 88px !important; }

  [data-mburger] { display: flex !important; }
  [data-mburger] > span {
    transition: transform .32s cubic-bezier(.22, 1, .36, 1), opacity .18s ease;
    transform-origin: center;
  }
  [data-mnav]:checked + [data-mburger] { border-color: rgba(58, 163, 154, .55) !important; }
  [data-mnav]:checked + [data-mburger] > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  [data-mnav]:checked + [data-mburger] > span:nth-child(2) { opacity: 0; transform: scaleX(.4); }
  [data-mnav]:checked + [data-mburger] > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  [data-mlinks] {
    display: flex !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    white-space: normal !important;
    background: #ffffff !important;
    border-top: 1px solid rgba(11, 34, 51, .08) !important;
    box-shadow: 0 20px 44px rgba(11, 34, 51, .14) !important;
    padding: 6px 0 18px !important;
    box-sizing: border-box !important;
    max-height: calc(100dvh - 66px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transform-origin: top center;
    transition: opacity .22s ease, transform .34s cubic-bezier(.22, 1, .36, 1), visibility .34s;
  }
  [data-mnav]:checked ~ [data-mlinks] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* apparition en cascade des liens */
  [data-mlinks] > a {
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity .2s ease, transform .3s cubic-bezier(.22, 1, .36, 1);
  }
  [data-mnav]:checked ~ [data-mlinks] > a { opacity: 1; transform: translateY(0); }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(1) { transition-delay: .05s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(2) { transition-delay: .085s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(3) { transition-delay: .12s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(4) { transition-delay: .155s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(5) { transition-delay: .19s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(6) { transition-delay: .225s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(7) { transition-delay: .26s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(8) { transition-delay: .295s; }
  [data-mnav]:checked ~ [data-mlinks] > a:nth-child(9) { transition-delay: .33s; }

  [data-mlinks] > a {
    font-size: 16.5px !important;
    font-weight: 600 !important;
    padding: 15px 22px !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(11, 34, 51, .06) !important;
    text-align: left !important;
    background: none !important;
    color: #0b2233 !important;
    letter-spacing: 0 !important;
  }
  [data-mlinks] > a:last-child {
    margin: 14px 22px 4px !important;
    padding: 16px 22px !important;
    border-radius: 999px !important;
    border-bottom: none !important;
    text-align: center !important;
    background: linear-gradient(135deg, #3aa39a, #1f7a72) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-mlinks], [data-mlinks] > a, [data-mburger] > span { transition-duration: .01ms !important; }
  }
}

/* ============================================================
   900px — MISE EN PAGE MOBILE
   ============================================================ */
@media (max-width: 900px) {

  /* ---- RYTHME VERTICAL : chaque section respire ---- */
  section {
    padding: 44px 20px !important;
  }
  header {
    padding: 34px 20px 30px !important;
    min-height: auto !important;
  }
  /* le hero de l'accueil porte son padding sur un enfant */
  header > div[style*="padding"] { padding: 6px 0 4px !important; }
  header canvas { opacity: .45 !important; }
  header > div, section > div, footer > div { max-width: 100% !important; }

  /* ---- TYPOGRAPHIE ---- */
  h1 { font-size: 33px !important; line-height: 1.1 !important; letter-spacing: -.015em !important; }
  h2 { font-size: 25px !important; line-height: 1.2 !important; letter-spacing: -.015em !important; }
  h3 { font-size: 18px !important; line-height: 1.3 !important; }
  header p, section > div > p { font-size: 15.5px !important; line-height: 1.65 !important; }
  blockquote { font-size: 17px !important; line-height: 1.55 !important; }
  p, blockquote, h1, h2, h3 { text-wrap: pretty; }
  /* marges resserrées */
  header h1 { margin-bottom: 16px !important; }
  section h2 { margin-bottom: 18px !important; }
  section > div > p[style*="margin"] { margin-bottom: 22px !important; }
  section > div > div[style*="margin-bottom: 4"] { margin-bottom: 18px !important; }
  /* surtitres */
  p[style*="letter-spacing: 0.22em"] { font-size: 11.5px !important; letter-spacing: .16em !important; margin-bottom: 10px !important; }

  /* ---- GRILLES : une colonne ---- */
  [style*="grid-template-columns"]:not([data-mtable]):not([data-mgrid2]):not([data-mstats]):not([data-mkeep]) {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 14px !important;
  }
  [data-mgrid2] { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
  [data-mtable] [style*="grid-template-columns"] {
    grid-template-columns: 74px 1.5fr 110px 1fr 1fr !important;
    gap: 0 !important;
  }

  /* ---- BANDEAU DE CHIFFRES : 2×2 propre ---- */
  [data-mstats] {
    grid-template-columns: 1fr 1fr !important;
    gap: 1px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    margin-top: 26px !important;
  }
  [data-mstats] > div { padding: 18px 16px !important; }
  [data-mstats] > div > div:first-child { font-size: 27px !important; }
  [data-mstats] > div > div:last-child { font-size: 10.5px !important; letter-spacing: .06em !important; line-height: 1.35 !important; }

  /* ---- CARTES ---- */
  section article,
  section > div > div[style*="border-radius"],
  section > div > div > div[style*="border-radius"] { border-radius: 16px !important; }
  section article { padding: 26px 22px !important; gap: 12px !important; }
  a[style*="border-radius: 24px"] { padding: 28px 22px !important; border-radius: 18px !important; }
  div[style*="border-radius: 24px"][style*="padding"] { padding: 28px 22px !important; border-radius: 18px !important; }
  div[style*="border-radius: 20px"][style*="padding"] { padding: 24px 20px !important; }
  div[style*="border-radius: 28px"] { border-radius: 20px !important; }

  /* ---- BOUTONS : pleine largeur, cible confortable ---- */
  section a[style*="border-radius: 999px"],
  header a[style*="border-radius: 999px"] {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
    padding: 16px 20px !important;
    font-size: 15.5px !important;
  }
  header > div[style*="padding"] > div[style*="display: flex"] { flex-direction: column !important; gap: 10px !important; }
  button { min-height: 50px !important; font-size: 15.5px !important; }

  /* les pastilles/badges restent en ligne */
  span[style*="border-radius: 999px"] { font-size: 12px !important; padding: 7px 14px !important; }
  header p[style*="border-radius: 999px"] { display: inline-flex !important; width: auto !important; font-size: 11px !important; padding: 7px 14px !important; }

  /* ordre de lecture : le bouton passe après le texte */
  [data-mflow] { display: flex !important; flex-direction: column !important; gap: 14px !important; }
  [data-mflow] > div:first-child { display: contents !important; }
  [data-mflow] > div:first-child > a { order: 3 !important; margin-top: 6px !important; }

  /* ---- MOSAÏQUES PHOTO ---- */
  figure[style*="grid-row"], figure[style*="position"] { grid-row: auto !important; }
  section figure[style*="overflow"] { height: 220px !important; border-radius: 14px !important; }
  section figure figcaption { font-size: 13px !important; padding: 36px 16px 14px !important; line-height: 1.45 !important; }

  /* ---- BLOC CTA SOMBRE ---- */
  div[style*="border-radius: 32px"] { border-radius: 20px !important; }
  div[style*="border-radius: 32px"] > div[style*="grid-template-columns"] { padding: 34px 22px !important; gap: 28px !important; }
  div[style*="border-radius: 32px"] h2 { font-size: 24px !important; }
  div[style*="border-radius: 32px"] div[style*="border-radius: 22px"] { padding: 24px 20px !important; border-radius: 16px !important; }
  div[style*="border-radius: 32px"] div[style*="font-size: 17px"] { font-size: 16px !important; }

  /* ---- LOGOS CLIENTS / PARTENAIRES ---- */
  [data-mpartners] { gap: 14px !important; }
  [data-mpartners] > div > div:first-child { height: 96px !important; padding: 14px !important; }
  [data-mpartners] > div > div:last-child { padding: 18px 18px 20px !important; gap: 8px !important; }
  [data-mpartners] span[style*="font-size: 17px"] { font-size: 16px !important; }
  [data-mpartners] div[style*="font-size: 14px"] { font-size: 13.5px !important; }
  [data-mpartners] a { font-size: 13px !important; display: inline !important; width: auto !important; padding: 6px 0 0 !important; text-align: left !important; }
  [data-mgrid2] > div { padding: 0 !important; gap: 12px !important; }
  [data-mgrid2] div[style*="height: 104px"],
  [data-mgrid2] div[style*="height: 120px"] { height: 86px !important; padding: 12px !important; border-radius: 14px !important; }
  div[role="img"] { width: 100% !important; height: 100% !important; }
  [data-mgrid2] div[style*="font-size: 15px"] { font-size: 13.5px !important; }
  [data-mgrid2] div[style*="font-size: 12.5px"] { font-size: 10.5px !important; }
  /* carrousel */
  div[style*="max-content"] { gap: 12px !important; }
  div[style*="max-content"] > div { width: 148px !important; height: 78px !important; padding: 12px !important; border-radius: 14px !important; }

  /* ---- TIMELINE (Notre histoire) : rail vertical ---- */
  [data-mtimeline] > div { padding: 0 0 26px 0 !important; }
  [data-mtimeline] > div > div:first-child { margin-bottom: 12px !important; }
  [data-mtimeline] > div > div:nth-child(2) { font-size: 32px !important; margin-bottom: 8px !important; }

  /* ---- BARRES DE RÉPARTITION ---- */
  [data-mbars] > div > div { flex-wrap: wrap !important; gap: 8px !important; }
  [data-mbars] span[style*="width: 170px"] { flex: 1 1 100% !important; min-width: 0 !important; }
  [data-mbars] p { margin-left: 0 !important; }

  /* ---- TABLEAU : défilement horizontal ---- */
  [data-mtable] { overflow-x: auto !important; -webkit-overflow-scrolling: touch; border-radius: 14px !important; }
  [data-mtable] > div { min-width: 700px !important; }
  [data-mtable] div[style*="padding: 16px 20px"],
  [data-mtable] div[style*="padding: 15px 20px"] { padding: 12px 14px !important; font-size: 12.5px !important; }

  /* ---- FORMULAIRE ---- */
  input, select, textarea { font-size: 16px !important; padding: 14px 16px !important; }
  iframe { min-height: 230px !important; }

  /* ---- FOOTER ---- */
  footer { padding: 36px 20px 28px !important; }
  footer > div:first-child { gap: 30px !important; }
  footer img { height: 50px !important; width: 88px !important; }
  footer p { font-size: 13.5px !important; line-height: 1.65 !important; }
  footer a, footer span[style*="font-size: 14.5px"] { font-size: 14.5px !important; }
  footer > div:last-child { margin-top: 26px !important; padding-top: 18px !important; font-size: 12px !important; line-height: 1.7 !important; }
  footer > div:last-child > span { margin-left: 0 !important; display: block !important; margin-top: 4px !important; }
}

/* ============================================================
   560px — PETITS ÉCRANS
   ============================================================ */
@media (max-width: 560px) {
  section { padding: 36px 16px !important; }
  header { padding: 28px 16px 24px !important; }
  footer { padding: 32px 16px 24px !important; }

  h1 { font-size: 29px !important; }
  h2 { font-size: 23px !important; }

  [data-mstats] { grid-template-columns: 1fr 1fr !important; }
  [data-mstats] > div { padding: 15px 13px !important; }
  [data-mstats] > div > div:first-child { font-size: 24px !important; }

  section figure[style*="overflow"] { height: 190px !important; }
  div[style*="border-radius: 32px"] > div[style*="grid-template-columns"] { padding: 28px 18px !important; }
  div[style*="border-radius: 32px"] h2 { font-size: 22px !important; }

  [data-mgrid2] { gap: 10px !important; }
  [data-mgrid2] div[style*="height: 104px"],
  [data-mgrid2] div[style*="height: 120px"] { height: 74px !important; padding: 10px !important; }
}
