/* ===========================================================
   GESTICARB — Site vitrine · 2. BASE
   Reset, typographie, utilitaires, accessibilité.
   =========================================================== */

*,*::before,*::after{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 12px); /* les ancres ne passent plus sous le header */
  -webkit-text-size-adjust:100%;                   /* pas de zoom auto du texte en paysage iOS */
}

body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;                                /* garde-fou anti-débordement horizontal */
}

h1,h2,h3,h4{
  font-family:'Outfit',system-ui,sans-serif;margin:0;line-height:1.15;
  letter-spacing:-.02em;text-wrap:balance;
}
p{margin:0;text-wrap:pretty}
a{color:var(--navy-3);text-decoration:none;transition:color .2s}
a:hover{color:var(--gold-2)}
img,canvas,svg,video{max-width:100%;display:block}
img{height:auto}                                    /* préserve le ratio quand la largeur est contrainte */
ul,ol{margin:0;padding:0;list-style:none}
button{font-family:inherit}

/* mots longs et URL : jamais de débordement sur petit écran */
h1,h2,h3,h4,p,li,span,b,small,a{overflow-wrap:break-word}

/* ---------- accessibilité ---------- */
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:8px}

.skip-link{
  position:absolute;left:12px;top:-64px;z-index:200;
  background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 12px 12px;
  font-weight:600;transition:top .2s;
}
.skip-link:focus{top:0;color:#fff}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- gabarit ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-y) 0;position:relative}
.section--tight{padding:calc(var(--section-y) * .73) 0}
.section--soft{background:var(--beige-2)}

/* ---------- titres de section ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:clamp(11.5px,1.6vw,12.5px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-ink);background:#fdf4de;border:1px solid #f2e0b4;padding:7px 14px;border-radius:999px;
}
.h2{font-size:clamp(26px,4vw,44px);font-weight:700;margin:18px 0 14px}
.lede{color:var(--ink-2);font-size:clamp(14.5px,1.4vw,18px);max-width:64ch}
.center{text-align:center}
.center .lede{margin-inline:auto}

/* ---------- apparition au défilement ---------- */
.reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-in{opacity:1;transform:none}

/* ---------- impression ---------- */
@media print{
  .header,.mobile-nav,.wa,#hero3d,#showcase3d,#footer3d,.burger{display:none!important}
  .reveal{opacity:1!important;transform:none!important}
  body{background:#fff}
  .section{padding:24px 0;break-inside:avoid}
}
