/* ==========================================================================
   ASK-IP — Adaptations aux écrans plus larges (approche mobile d'abord)
   25em ≈ 400px · 40em = 640px · 48em = 768px · 64em = 1024px · 74em = 1184px · 80em = 1280px
   ========================================================================== */

/* Très petits écrans (< 360px) : le sélecteur de langue passe dans le menu. */
@media (max-width: 22.49em) {
  .lang-switch--bar { display: none; }
  .site-nav__extras .lang-switch { display: flex; }
}

@media (min-width: 25em) {
  .brand__logo { height: 32px; }
}

@media (min-width: 40em) {
  :root { --gutter: 1.5rem; }

  .card-grid--services,
  .card-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .doc-list { grid-template-columns: repeat(2, 1fr); }
  .official-links__list { grid-template-columns: repeat(2, 1fr); }
  .form-grid { grid-template-columns: repeat(2, 1fr); }
  .field--full { grid-column: 1 / -1; }
  .values { grid-template-columns: repeat(2, 1fr); }
  .person { grid-template-columns: 8.5rem 1fr; }
  .person__monogram { font-size: 2.5rem; }
}

@media (min-width: 48em) {
  :root { --header-h: 4.75rem; }

  .brand__logo { height: 38px; }

  .banner--page { min-height: clamp(28rem, 68vh, 40rem); }
  .banner__content { padding-block: 4rem 3.25rem; }
  .banner__shade {
    background: linear-gradient(90deg, rgba(16, 41, 46, .92) 0%, rgba(16, 41, 46, .7) 38%, rgba(16, 41, 46, .15) 72%, rgba(16, 41, 46, 0) 100%);
  }
  [dir="rtl"] .banner__shade {
    background: linear-gradient(270deg, rgba(16, 41, 46, .92) 0%, rgba(16, 41, 46, .7) 38%, rgba(16, 41, 46, .15) 72%, rgba(16, 41, 46, 0) 100%);
  }
  .banner--page .brand-chevron { top: 50%; width: 2.75rem; height: 3.25rem; transform: translateY(-50%); }
  .banner--hero .brand-chevron { top: auto; bottom: 22%; width: 5rem; height: 6rem; }
  .hero__intro { font-size: 1.1875rem; }

  .steps { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
  .card-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .two-cols { grid-template-columns: repeat(2, 1fr); gap: 4rem; }
  .people { grid-template-columns: repeat(2, 1fr); }

  .service-index__item { grid-template-columns: 3rem 1fr auto; align-items: start; gap: 1.5rem 2rem; }
  .service-index__more { display: inline-flex; align-self: center; white-space: nowrap; }

  .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
  .notfound__links { grid-template-columns: repeat(3, max-content); gap: 1rem 2.5rem; }
}

@media (min-width: 64em) {
  :root { --gutter: 2rem; }

  .topbar { display: block; }

  .split--intro { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 5rem; align-items: start; }
  .split--media { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; align-items: center; }
  .split--faq { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; align-items: start; }
  .split--faq .section__head { position: sticky; top: calc(var(--header-h) + 2rem); }
  .split--media .official-links__list { grid-template-columns: 1fr; }

  .values { grid-template-columns: repeat(5, 1fr); gap: 2rem; }

  .service-layout { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 5rem; align-items: start; }
  .service-layout__aside { position: sticky; top: calc(var(--header-h) + 1.5rem); }

  .contact-layout { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 5rem; align-items: start; }

  .cta-band__inner { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: end; gap: 4rem; }

  .site-footer__grid { grid-template-columns: 1.5fr 1fr 1.3fr 1.3fr; gap: 3rem; }
}

/* Navigation complète à partir de 74em */
@media (min-width: 74em) {
  :root { --header-h: 5rem; }

  .brand__logo { height: 40px; }
  .brand { margin-inline-end: 0; }

  .nav-toggle,
  .lang-switch--bar { display: none; }

  .site-nav {
    position: static;
    inset: auto;
    flex-direction: row;
    align-items: center;
    gap: 1.25rem;
    margin-inline-start: auto;
    padding: 0;
    overflow: visible;
    border: 0;
    background: none;
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: none;
  }
  .site-nav__list { display: flex; align-items: center; }
  .site-nav__link {
    position: relative;
    padding: .5rem .45rem;
    border: 0;
    color: var(--grey-700);
    font-size: .9rem;
  }
  .site-nav__link::after {
    content: "";
    position: absolute;
    inset-inline: .45rem;
    bottom: -.15rem;
    height: 2px;
    background: var(--teal);
    transform: scaleX(0);
    transition: transform .2s var(--ease);
  }
  .site-nav__link:hover::after { transform: scaleX(1); }
  .site-nav__link[aria-current="page"] { color: var(--ink-strong); }
  .site-nav__link[aria-current="page"]::after { transform: scaleX(1); }

  .site-nav__extras { flex-direction: row; align-items: center; gap: 1rem; margin: 0; }
  .site-nav__extras .lang-switch { display: flex; font-size: .8125rem; }
  .site-nav__extras .lang-switch a:first-child { padding-inline-start: .5rem; }

  body.nav-open { overflow: auto; }
}

@media (min-width: 80em) {
  .card-grid--services { grid-template-columns: repeat(4, 1fr); }
  .card-grid--services .service-card { padding: 1.75rem 1.25rem; }
  .card-grid--services .service-card__title { font-size: 1.1875rem; }
}

/* Écrans peu hauts (portables en paysage) */
@media (max-height: 40em) and (min-width: 48em) {
  .banner--hero { min-height: 34rem; }
}
