/*
 * База v2: шрифт, сброс, типографика, фокус, cookie-баннер.
 * Всё — внутри .v2 (body_class), значения — только из tokens.css.
 */

/* ===== Nunito Sans, локально (OFL 1.1, fonts/OFL.txt), вариативный 200–1000 ===== */
@font-face{
  font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;
  src:url(../fonts/nunito-sans-cyrillic-wght-normal.woff2) format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;
  src:url(../fonts/nunito-sans-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Nunito Sans";font-style:italic;font-weight:200 1000;font-display:swap;
  src:url(../fonts/nunito-sans-cyrillic-wght-italic.woff2) format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:"Nunito Sans";font-style:italic;font-weight:200 1000;font-display:swap;
  src:url(../fonts/nunito-sans-latin-wght-italic.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ===== сброс и основа ===== */
/* color-scheme — только на страницах v2 (body.v2), чтобы не перекрашивать админку, где подключаются превью блоков */
html:has(body.v2){color-scheme:dark;-webkit-text-size-adjust:100%;}
html[data-theme="light"]:has(body.v2){color-scheme:light;}

body.v2{
  margin:0;
  min-height:100vh;
  background:var(--bg-page);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  font-weight:var(--fw-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  transition:background-color .45s var(--ease-standard),color .45s var(--ease-standard);
}
/* Сторонние виджеты, которые вставляют разметку в <body> (кнопка и чат amoCRM из опции scripts), — без сбросов v2:
   иначе .v2 svg{display:block} показывал крестик закрытия поверх иконки чата (09.10.2026). Вес селекторов для элементов сайта прежний. */
.v2 *:not(:where(.amo-button-holder *,.amo-livechat *)),.v2 *:not(:where(.amo-button-holder *,.amo-livechat *))::before,.v2 *:not(:where(.amo-button-holder *,.amo-livechat *))::after{box-sizing:border-box;}
.v2 img:not(:where(.amo-button-holder *,.amo-livechat *)),.v2 svg:not(:where(.amo-button-holder *,.amo-livechat *)),.v2 video:not(:where(.amo-button-holder *,.amo-livechat *)){display:block;max-width:100%;}
/* Фрейм чата amoCRM светлый: при color-scheme:dark у страницы Chrome рисует фрейму непрозрачный белый фон. */
.v2 .amo-button-holder,.v2 .amo-livechat{color-scheme:normal;}
.v2 :where(h1,h2,h3,h4,p,ul,ol,figure){margin:0;}
.v2 :where(ul,ol)[role="list"]{list-style:none;padding:0;}
.v2 :where(button,input,select,textarea){font:inherit;color:inherit;}
.v2 :where(button){cursor:pointer;}
.v2 a:not(:where(.amo-button-holder *,.amo-livechat *)){color:inherit;text-decoration:none;}

.v2 h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-h1);}
.v2 h2{font-size:var(--fs-h2);line-height:var(--lh-h2);font-weight:var(--fw-h2);}

/* видимый фокус для клавиатуры */
.v2 :focus-visible{outline:2px solid var(--orange-1);outline-offset:2px;border-radius:var(--radius-xs);}

.v2 .wx-container{width:100%;max-width:calc(var(--container-width) + 2 * var(--space-4));margin-inline:auto;padding-inline:var(--space-4);}

.v2 .wx-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;}
.v2 .wx-skip{position:absolute;left:var(--space-4);top:-100px;z-index:100;padding:var(--space-2) var(--space-4);background:var(--bg-popup);color:var(--text-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-card-border);}
.v2 .wx-skip:focus{top:var(--space-4);}

/* ===== cookie-баннер (footer-v2.php, site.js) ===== */
.v2 .wx-cookie{
  position:fixed;z-index:90;
  left:var(--space-4);right:var(--space-4);bottom:var(--space-4);
  max-width:560px;margin-inline:auto;
  display:flex;align-items:flex-start;gap:var(--space-4);
  padding:var(--space-5) var(--space-6);
  background:var(--bg-cookie);
  -webkit-backdrop-filter:var(--blur-cookie);backdrop-filter:var(--blur-cookie);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card-border);
  font-size:var(--fs-small);line-height:var(--lh-small);color:var(--text-secondary);
}
.v2 .wx-cookie[hidden]{display:none;}
html[data-theme="light"] .v2 .wx-cookie{background:var(--bg-popup);}
.v2 .wx-cookie__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);}
.v2 .wx-cookie__accept{
  padding:var(--space-2) var(--space-5);border:0;border-radius:var(--radius-pill);
  background:var(--accent-gradient);color:var(--white);
  font-size:var(--fs-button-sm);line-height:var(--lh-button-sm);
}
.v2 .wx-cookie__accept:hover{background:var(--accent-gradient-hover);}
.v2 .wx-cookie__close{flex:none;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);}
.v2 .wx-cookie__close:hover{color:var(--text-primary);}

@media (prefers-reduced-motion:reduce){
  body.v2{transition:none;}
}
.v2 [tabindex="-1"]:focus{outline:none;} /* цель якоря получает фокус программно (site.js) — без рамки */
