/* Reset + base */
*,*::before,*::after{ box-sizing: border-box; }
html,body{ margin:0; padding:0; }
html{
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 8px);
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  /* PIEGE PROD #11 : laisser overscroll-behavior:auto, ne JAMAIS le mettre a none ici */
}
body{
  font-family: var(--ff-body);
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: clip; /* PIEGE PROD #11 : clip (pas hidden) pour ne pas creer de conteneur de scroll Y */
  min-height: 100vh;
}

/* PIEGE PROD #5 : reset figure (sinon margin UA 0 40px casse les photo-frames width:100%) */
figure{ margin: 0; }
ul,ol{ margin: 0; padding: 0; list-style: none; }
p{ margin: 0; }
img,svg,video,iframe{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
button{ font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
input,select,textarea{ font: inherit; color: inherit; }
h1,h2,h3,h4,h5,h6{ margin: 0; font-family: var(--ff-display); font-weight: 500; line-height: 1.15; color: var(--text); letter-spacing: -0.005em; }

/* PIEGE PROD #8 : force display:none sur [hidden] */
[hidden]{ display: none !important; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
}

/* Container */
.container{ width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
@media (min-width: 768px){ .container{ padding: 0 32px; } }

/* Sections : padding 48px mobile / 80px desktop */
section{ padding: 48px 0; position: relative; }
@media (min-width: 768px){ section{ padding: 80px 0; } }

/* Section alt fond doux */
.section--alt{ background: var(--bg-alt); }
.section--dark{ background: var(--surface-dark); color: #F3EBD6; }
.section--dark :where(h1,h2,h3,h4,h5,h6){ color: #F8EFDA; }
.section--dark :where(p,li,span,a,strong){ color: #ECE0C8; }
.section--dark :where(p,li){ color: rgba(248,239,218,0.82); }

/* Eyebrow uniform */
.eyebrow{
  display: inline-flex; align-items: center; gap: 10px;
  text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.74rem;
  color: var(--accent); font-family: var(--ff-ui); font-weight: 500;
}
.eyebrow::before{ content:""; width: 28px; height: 1px; background: var(--accent); }
.eyebrow--inverse{ color: var(--accent-on-dark); }
.eyebrow--inverse::before{ background: var(--accent-on-dark); }

/* Headings fluides */
.section-title{
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin-top: 14px;
}
.section-title em{ font-style: italic; color: var(--accent); }
.section-lead{
  margin-top: 16px;
  font-size: clamp(1rem, 1.3vw, 1.08rem);
  color: var(--text-2);
  max-width: 60ch;
}

.section-head{ margin-bottom: clamp(28px, 4vw, 44px); }
