*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--font-sans);
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    linear-gradient(rgba(11,35,66,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,35,66,.025) 1px, transparent 1px);
  background-size:56px 56px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
input,select,textarea{font:inherit}

.mono{font-family:var(--font-mono)}

h1,h2,h3,h4{font-weight:800;letter-spacing:-.02em;line-height:1.1}
h2{font-size:clamp(1.9rem,3.8vw,2.85rem);font-weight:900;letter-spacing:-.03em}
h3{font-size:1.1rem}
p{color:var(--body)}

/* Typo utilitaire */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);
  font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--primary-2);
  padding-left:14px;position:relative;
}
.eyebrow::before{
  content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;background:var(--primary);
}

.lede{font-size:clamp(1.02rem,1.6vw,1.2rem);color:var(--body);line-height:1.65}

/* Accessibilité */
.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;
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
  border-radius:6px;
}

.skip-link{
  position:absolute;left:12px;top:-60px;
  background:var(--ink);color:#fff;
  padding:10px 16px;border-radius:var(--r-sm);
  z-index:1000;transition:top var(--dur-fast) var(--ease);
  font-weight:700;font-size:.9rem;
}
.skip-link:focus{top:12px}

::selection{background:var(--primary-light);color:var(--primary-2)}
