*,*::before,*::after{box-sizing:border-box;}
html{
  -webkit-text-size-adjust:100%;
  -moz-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h-mobile) + 8px);
}
@media(min-width:768px){
  html{scroll-padding-top:calc(var(--header-h) + 12px);}
}
html,body{overflow-x:hidden;max-width:100vw;}
body{
  margin:0;
  font-family:var(--ff-body);
  font-size:16px;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,video,iframe,svg{max-width:100%;}
img{height:auto;display:block;}

h1,h2,h3,h4{
  font-family:var(--ff-display);
  font-weight:500;
  line-height:1.15;
  color:var(--text);
  margin:0 0 .6em;
  letter-spacing:-.005em;
}
h1{font-size:clamp(2.1rem,5.2vw,3.6rem);line-height:1.05;font-weight:500;}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:500;}
h3{font-size:clamp(1.15rem,2vw,1.4rem);font-weight:500;}
h4{font-size:1.05rem;}

p{margin:0 0 1em;color:var(--text-2);}
a{color:var(--accent-ink);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--accent);}

::selection{background:var(--accent);color:#fff;}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

/* Scrollbar discrete */
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;}
*::-webkit-scrollbar-thumb:hover{background:var(--accent);}

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

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