/* ≤1100px */
@media (max-width: 1100px) {
  .container { max-width: 100vw; padding: 18px 2vw; }
  .header-content { padding: 14px 2vw 10px; }
  .presentation { gap: 24px; }
}

/* ≤900px */
@media (max-width: 900px) {
  .presentation { flex-direction: column; align-items: center; gap: 24px; }
  .carousel { max-width: 220px; aspect-ratio: 1080 / 2400; margin-bottom: 24px; }
  .carousel-track { width: calc(220px * 8); }
  .carousel-img { width: 220px; }
  .description { min-width: 0; max-width: 98vw; padding: 18px 10px; }
}

/* ≤700px : nav mobile + header + langues + footer */
@media (max-width: 700px) {

  .header-content { justify-content: flex-start; position: relative; }
  .hamburger { display: flex !important; margin-left: auto; }

  /* Nav mobile */
  .main-nav {
    display: none !important; position: absolute; top: 100%; right: 0; background: var(--card-bg);
    box-shadow: var(--shadow-main); border-radius: 0 0 18px 18px; min-width: 160px; flex-direction: column;
    align-items: flex-end; padding: 0 0 12px 0; z-index: 100; border: 1px solid #e3e8ee;
  }
  .main-nav.open { display: flex !important; }
  .main-nav ul { flex-direction: column; gap: 0; width: 100%; margin: 0; padding: 0; }
  .main-nav li { width: 100%; }
  .main-nav a {
    width: 100%; padding: 12px 18px; font-size: 1.08rem; border-radius: 0; text-align: left;
    border-bottom: 1px solid #e3e8ee; color: var(--text-color); background: none; transition: background .2s, color .2s;
  }
  .main-nav a:hover, .main-nav a:focus { background: rgba(33,150,243,.1); color: var(--secondary-color); }
  .main-nav a:last-child { border-bottom: none; }

  .main-header .subtitle {
    font-size: .75rem !important; margin-top: 2px; margin-bottom: 0; max-width: 140px; line-height: 1.2; white-space: normal;
  }

  .main-nav .nav-lang {
        display: flex !important;
        flex-direction: row;
        gap: 8px;
        justify-content: center;
        padding: 8px 12px;
  }
  .main-nav .nav-lang .lang-btn {
    flex: 1 1 auto;
    justify-content: center;
  }

  .footer-main { flex-direction: column; align-items: stretch; gap: 10px; padding: 0 10px; }
  .footer-sitemap { justify-content: center; gap: 18px; margin-bottom: 6px; }
  .footer-social { justify-content: center; gap: 14px; margin-top: 4px; }
  .lang-switch { display: none !important; }
}

/* ≥701px : forcer nav desktop */
@media (min-width: 701px) {
  .main-nav {
    display: flex !important; position: static; background: none; box-shadow: none;
    border-radius: 0; min-width: unset; flex-direction: row; align-items: center; padding: 0; border: none;
  }
  .hamburger { display: none !important; }
}

/* ≤600px */
@media (max-width: 600px) {
  .container { padding: 8px 0; border-radius: 0; box-shadow: none; }
  section, .container > section, .ia-warning, .web-version-announcement { padding-left: 15px !important; padding-right: 15px !important; }
  .header-content { flex-direction: row; gap: 10px; padding: 10px 2vw 8px; }
  .main-header h1 { font-size: 1.2rem; }
  .main-header .subtitle { font-size: .9rem; }
  .logo {
    width: 56px; height: 56px; border-radius: 12px; background: #e3e8ee; object-fit: cover;
    box-shadow: 0 2px 8px rgba(43,58,103,.08); margin-bottom: 18px;
  }
  .carousel-track { width: calc(180px * 8); }
  .carousel-img { width: 180px; }
  .description { padding: 16px 12px; margin-bottom: 18px; border-radius: 14px; }
  .description h2, .description h3, .description p, .description ul { margin-left: 0; margin-right: 0; }
  .web-version-announcement { padding: 16px 12px; margin-bottom: 18px; border-radius: 14px; }
  .footer { font-size: .95rem; padding: 10px 0; border-radius: 0; }
}