/* IALEMANS — couche responsive corrective.
   Chargee apres le socle: aucun changement de charte, seulement des ajustements de mise en page. */

.exp-card,
.problem > *,
.sector,
.co-lead,
.co-panel,
.bp-card,
.pillar,
.footer-grid > *,
.legal-hero-main,
.legal-section,
.ia-blog-carte {
  min-width: 0;
}

.ia-blog-body a,
.legal-section a,
.footer-col a {
  overflow-wrap: anywhere;
}

.ia-blog-body img,
.ia-blog-body video,
.ia-blog-body iframe {
  max-width: 100%;
  height: auto;
}

.ia-blog-body pre,
.ia-blog-body table {
  max-width: 100%;
  overflow-x: auto;
}

@media (max-width: 1199px) {
  .topbar-center { display: none; }
  .header-inner > .nav { display: none; }
  .header-cta { display: none; }
  .mobile-menu { display: block; margin-left: auto; }
  .hero-side { display: none; }

  section,
  .legal-section {
    scroll-margin-top: 132px;
  }
}

@media (max-width: 767px) {
  section,
  .legal-section {
    scroll-margin-top: 145px;
  }

  .mobile-nav {
    max-height: calc(100dvh - 7rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: min(100%, 28rem);
  }

  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .expertises-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .exp-card,
  .exp-card:nth-child(2),
  .exp-card:nth-child(3),
  .exp-card:nth-child(4) {
    grid-column: 1;
    margin-top: 0;
  }

  .ia-blog-grille,
  .ia-blog-cartes {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 480px) {
  .container {
    width: calc(100% - 30px);
  }

  .topbar-inner {
    gap: .7rem;
  }

  .topbar-item {
    letter-spacing: .1em;
    line-height: 1.45;
  }

  .topbar-right {
    max-width: 54%;
    text-align: right;
    line-height: 1.4;
  }

  .section {
    padding-block: clamp(72px, 20vw, 88px);
  }

  .section-head {
    margin-bottom: 40px;
  }

  .kicker {
    gap: .7rem;
    font-size: .68rem;
    letter-spacing: .2em;
  }

  .section-title {
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  .section-intro {
    margin-top: 1.2rem;
    font-size: 1rem;
  }

  .hero-kicker {
    gap: .65rem;
    font-size: .7rem;
    letter-spacing: .18em;
    flex-wrap: wrap;
  }

  .hero-title {
    font-size: clamp(3.15rem, 15.5vw, 4.8rem);
  }

  .hero-sub {
    font-size: 1rem;
  }

  .hero-actions .btn {
    padding: 1rem 1.1rem;
    font-size: .82rem;
  }

  .stat {
    min-width: 0;
    padding-right: .65rem;
  }

  .stat-label {
    font-size: .6rem;
    letter-spacing: .14em;
  }

  .exp-card {
    padding: 1.65rem 1.35rem 1.55rem;
  }

  .exp-title {
    font-size: 1.3rem;
    overflow-wrap: anywhere;
  }

  .exp-text {
    font-size: .98rem;
  }

  .problem {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 1rem;
    padding: 1.4rem .75rem;
  }

  .p-title {
    font-size: 1rem;
  }

  .p-answer {
    font-size: .62rem;
    letter-spacing: .12em;
  }

  .sector-row,
  .sector-row-right {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .sector-row .sector,
  .sector-row-right .sector {
    padding: 1.35rem 1.1rem;
  }

  .sector-title {
    font-size: 1.35rem;
  }

  .vs {
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .75rem;
    padding: .9rem;
  }

  .panel-head,
  .bp-fig {
    flex-wrap: wrap;
    gap: .45rem .8rem;
  }

  .panel-head {
    letter-spacing: .14em;
  }

  .bp-card {
    padding: 1.65rem 1.35rem 1.55rem;
  }

  .bp-specs li {
    letter-spacing: .1em;
  }

  .pull-quote {
    padding-left: 1.25rem;
  }

  .footer-tagline,
  .footer-heading,
  .footer-bottom {
    letter-spacing: .14em;
  }

  .legal-title,
  .legal-section h2,
  .ia-blog-titre,
  .ia-blog-carte-titre {
    overflow-wrap: anywhere;
  }

  .legal-section {
    padding: 1.15rem 1rem 1.25rem;
  }

  .legal-status {
    white-space: normal;
  }

  .ia-form {
    padding: 1.25rem 1rem;
  }
}
