/* Базовые стили элементов, якоря под капсулой навигации и утилиты (.wrap, .lbl, .ico, .u-link, .sr-only, .nw) */

p {
  text-wrap: pretty;
}

html {
  background: var(--bg);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html {
  scroll-padding-top: calc(var(--sp) + env(safe-area-inset-top,0px));
}

#caps,
#works,
#approach,
#contact {
  scroll-margin-top: calc(-1 * var(--sp));
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font: 400 16px/1.5 var(--f-b);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

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

:where(p,h1,h2,h3,ul,ol,fieldset,legend,figure) {
  margin: 0;
  padding: 0;
}

:where(ul,ol) {
  list-style: none;
}

fieldset {
  border: 0;
  min-width: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  display: block;
}

::selection {
  background: var(--acc);
  color: var(--ink);
}

:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}

.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;
}

.wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding-inline: var(--gut);
  position: relative;
}

.lbl {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  line-height: 1.2;
}

.ico {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

.u-link {
  background: linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat;
  transition: background-size .45s var(--e1);
}

@media (hover:hover) and (pointer:fine) {
  /* декоративные :hover — только при настоящем наведении: на тач-экранах они «залипают» после тапа */
  .u-link:hover {
    background-size: 0 1.5px;
    background-position: 100% 100%;
  }
}

.nw {
  white-space: nowrap;
}

/* контейнер SVG-спрайта иконок (<symbol>): в потоке не участвует */
.svg-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}
