/* ═══════════════════════════════════════════════════════════════════
   responsive.css — tablet (768px) and mobile (375px) adjustments,
   plus prefers-reduced-motion overrides for animation-heavy elements.
   ═══════════════════════════════════════════════════════════════════ */

/* ─────── TABLET ─────── */
@media (max-width: 991px) {
  .nav-links {
    gap: 20px;
  }
  .nav-links > a:not(.btn) {
    font-size: var(--text-xs);
  }
  .hero { padding: 140px 0 96px; }
  .hero-orb { width: 520px; height: 520px; right: -260px; opacity: 0.35; }
  .stats-row { grid-template-columns: repeat(2, 1fr); }

  /* Homepage */
  .services-numbered .section-head-grid { grid-template-columns: 1fr; gap: 32px; }
  .services-list li { grid-template-columns: 60px 1fr auto; gap: 20px; }
  .services-list .desc {
    grid-column: 1 / -1;
    opacity: 1; transform: none;
    padding-top: 8px;
  }
  .sectors-grid { grid-template-columns: repeat(2, 1fr); }
  .team-grid, .equipe-grid { grid-template-columns: repeat(3, 1fr); }
  .actu-grid { grid-template-columns: 1fr 1fr; }
  .design-web .dw-grid { grid-template-columns: 1fr; gap: 32px; }
  .actu-masonry { columns: 2; }

  /* Inner pages */
  .adn-values-grid { grid-template-columns: 1fr; gap: 24px; }
  .adn-mission-grid { grid-template-columns: 1fr; gap: 24px; }
  .regional-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card { grid-template-columns: 1fr; gap: 32px; padding: 36px 28px; }
  .service-card:nth-child(even) .service-body { order: 0; }
  .service-visual { aspect-ratio: 16/9; }

  /* Footer */
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; gap: 32px; }
  .footer-offices { grid-template-columns: 1fr; gap: 20px; }

  /* CTA */
  .cta-offices { grid-template-columns: 1fr; gap: 24px; }
}

/* ─────── MOBILE ─────── */
@media (max-width: 767px) {
  :root { --section-py: clamp(56px, 14vw, 96px); }

  /* Hamburger menu */
  .nav-inner { height: 60px; }
  .nav-mobile-toggle { display: inline-flex; }
  .nav-links {
    display: none;
    position: absolute;
    top: 60px; left: 0; right: 0;
    background: rgba(0, 19, 29, 0.96);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    flex-direction: column;
    gap: 0;
    padding: 16px 24px 28px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .nav-links.is-open { display: flex; }
  .nav-links a:not(.btn) {
    padding: 14px 0;
    font-size: var(--text-base);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  .nav-links .btn { margin-top: 14px; width: 100%; justify-content: center; }

  .hero { padding: 120px 0 72px; min-height: auto; }
  .hero-orb { display: none; }
  .hero-beams { opacity: 0.5; }
  .hero h1 { font-size: clamp(2.75rem, 12vw, 4.5rem); }
  .hero-sub { font-size: var(--text-base); }
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas .btn { justify-content: center; width: 100%; }
  .stats-row { grid-template-columns: 1fr 1fr; }
  .stat-card { padding: 16px 18px; }
  .stat-value { font-size: var(--text-xl); }

  /* Home */
  .services-list li { grid-template-columns: 48px 1fr; gap: 16px; padding: 24px 0; }
  .services-list .arrow { display: none; }
  .services-list .name { font-size: var(--text-xl); }
  .sectors-grid { grid-template-columns: 1fr; }
  .formula-word { font-size: clamp(2.25rem, 14vw, 4rem); }
  .formula-plus { width: 36px; height: 36px; }
  .team-grid, .equipe-grid { grid-template-columns: repeat(2, 1fr); }
  .avatars-row .avatar { width: 64px; height: 64px; margin-left: -12px; }
  .actu-grid { grid-template-columns: 1fr; }
  .actu-masonry { columns: 1; }
  .cta-band { padding: 80px 0; }
  .cta-band h2 { font-size: clamp(2rem, 8vw, 2.75rem); }
  .design-web h2 { font-size: clamp(2.5rem, 12vw, 4rem); }

  /* Inner pages */
  .page-hero { padding: 120px 0 64px; }
  .page-hero h1 { font-size: clamp(2.25rem, 9vw, 3rem); }
  .regional-grid { grid-template-columns: 1fr; }
  .timeline-list::before { left: 80px; }
  .timeline-item { grid-template-columns: 80px 1fr; gap: 20px; }
  .timeline-year { font-size: var(--text-xl); }
  .timeline-year::after { right: -6px; width: 12px; height: 12px; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 10px; }

  .filter-chips { gap: 8px; }
  .filter-chip { padding: 8px 14px; font-size: var(--text-xs); }

  /* Service pillars single column on mobile */
  .service-pillars { grid-template-columns: 1fr; }
}

/* Extra-small (≤ 375px) */
@media (max-width: 375px) {
  .container { padding: 0 16px; }
  .hero h1 { font-size: clamp(2.25rem, 11vw, 3.25rem); }
  .stats-row { grid-template-columns: 1fr; }
  .team-grid, .equipe-grid { grid-template-columns: 1fr; }
}

/* ─────── REDUCED MOTION ─────── */
@media (prefers-reduced-motion: reduce) {
  /* Shimmer stays visual but does not animate */
  .btn-shimmer { animation: none !important; background-position: 0 0 !important; }
  .h1-gradient { animation: none !important; }
  .kicker::before { animation: none !important; }

  /* Disable heavy decorative animations */
  .hero::after { transition: none !important; }
  .meteor { display: none !important; }

  /* Keep hover transitions minimal */
  * { scroll-behavior: auto !important; }
}