/*
  Correctif structurel — aucune couleur, police, image ou composition graphique n’est modifiée.
  Ces règles assurent uniquement une première vue complète et des blocs stables à toutes tailles.
*/

html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body.v60-page {
  min-height: 100svh;
  overflow-x: hidden;
}

.v60-page main {
  overflow-x: clip;
}

/* Le header conserve sa position et son apparence d’origine. */
.v60-header {
  width: 100%;
}

/* Header + hero remplissent exactement le premier écran. */
.v60-hero {
  height: calc(100svh - 116px);
  min-height: 0;
  overflow: clip;
}

.v60-hero-visual {
  min-height: 0;
}

.v60-hero-visual img {
  max-height: calc(100svh - 103px);
  object-fit: contain;
  object-position: right bottom;
  transform: translate(24px, 0);
}

/* La section suivante commence après le hero, sans chevaucher la première vue. */
.v60-stats {
  margin-top: 0;
}

/* Les images restent intégralement contenues dans leurs sections. */
.v60-how,
.v60-impact,
.v60-download,
.v60-faq,
.v60-assurances,
.v60-footer {
  position: relative;
}

.v60-footer {
  padding-bottom: 28px;
}

@media (max-width: 1060px) {
  .v60-hero {
    height: calc(100svh - 90px);
  }

  .v60-hero-visual img {
    max-height: calc(100svh - 77px);
    transform: translate(4px, 0);
  }
}

@media (max-width: 720px) {
  .v60-header {
    position: relative;
  }

  .v60-hero {
    height: auto;
    overflow: visible;
  }

  .v60-hero-visual img {
    max-height: none;
    transform: translate(4px, 0);
  }

  .v60-footer {
    padding-bottom: 24px;
  }
}
