*{box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth}
body{background:var(--bg-page);color:var(--text-body);font-family:var(--font-sans);margin:0;overflow-x:hidden;overflow-wrap:break-word}
a{color:var(--text-link);text-decoration:none;transition:color var(--duration-med) var(--ease-slow)}
a:hover{color:var(--text-link-hover)}
img{max-width:100%;display:block}
/* Empêche un enfant de grille/flexbox (ex: <select> avec une longue option) de forcer
   tout le conteneur à déborder — min-width:auto est la valeur par défaut du navigateur,
   ce qui bloque le rétrécissement des grilles/flex même quand l'espace manque. */
.grid-2 > *,.grid-3 > *,.contact-page-grid > *,.pro-form__row > *,.hero--split .hero__split > *,
.stack,.pro-form,.contact-info-card,.input-group,select,input,textarea{min-width:0}
.image-placeholder{
  width:100%;
  border-radius:var(--radius-lg);
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:var(--space-5);
  background-image:linear-gradient(155deg,var(--brown-800),var(--brown-950));
  border:1px solid var(--border-subtle);
}
.image-placeholder span{
  font-family:var(--font-sans);
  font-size:var(--text-small);
  letter-spacing:var(--tracking-wide);
  color:var(--text-body-dim);
  max-width:280px;
}
