/* Critical CSS - Above the fold only */
/* Minimal styles pour stabiliser le layout initial et éviter le CLS */

/* Reset de base */
html {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden;
}

/* CSS Variable pour la hauteur du menu (mise à jour via ResizeObserver) */
:root {
  --menu-h: 70px;
}

/* Layout principal */
#page-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
/* Home uniquement : pas de margin-top (le hero gère son propre padding) */
body.home main#page-content {
  margin-top: 0;
}

/* Header / Menu - structure de base */
#menu {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
}
.menu-bar-transition {
  transition:
    border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hero - structure minimale */
#hero {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
/* Hero home : le background commence à 0px, seul le contenu est décalé */
body.home #hero .hero-content {
  padding-top: calc(var(--menu-h) + 2rem);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-bottom: 2rem;
}

/* Typographie de base - éviter FOUT */
body {
  font-family: Inter, sans-serif;
}
