/* Шрифты — локальные копии Google Fonts (см. docs/ASSETS.md) */
/* cyrillic-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/golos-text-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/golos-text-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/golos-text-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/golos-text-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/golos-text-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/golos-text-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/golos-text-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/golos-text-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/golos-text-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-greek.woff2) format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-vietnamese.woff2) format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-greek.woff2) format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-vietnamese.woff2) format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-greek.woff2) format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-vietnamese.woff2) format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-latin.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;
}
/* cyrillic-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic-ext.woff2) format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-greek.woff2) format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-vietnamese.woff2) format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-latin.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;
}

/* База — правила, одинаковые на всех страницах */
html,
body {
  margin: 0;
  padding: 0;
}
body {
  background: #fefaee;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
* {
  box-sizing: border-box;
}
img {
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.72;
}
:focus-visible {
  outline: 2px solid #3f4a28;
  outline-offset: 3px;
  border-radius: 4px;
}
[data-arrow] {
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
[data-btn]:hover [data-arrow] {
  transform: translateX(4px);
}
[data-btn] {
  transition:
    background-color 0.28s ease,
    border-color 0.28s ease,
    opacity 0.28s ease,
    box-shadow 0.28s ease;
}
[data-btn],
[data-nav] a,
[data-nav] span {
  white-space: nowrap;
}
header[data-scrolled="true"] [data-hdrline] {
  height: 73px !important;
}
header[data-scrolled="true"] img {
  height: 38px !important;
}
header[data-scrolled="true"] [data-nav] [data-btn] {
  height: 40px !important;
  padding: 0 24px !important;
  border-radius: 20px !important;
}
header[data-scrolled="true"] [data-burger] {
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
}
header[data-scrolled="true"] [data-hdrline] {
  border-bottom-color: transparent !important;
}

/* Скрытые состояния (меню, модалка, «запрос принят», пустая выдача).
   !important нужен потому, что у этих блоков display задан инлайном. */
[hidden] {
  display: none !important;
}

/* Шапка: два варианта — прозрачная над тёмным героем и сплошная тёмная.
   В исходнике различие было зашито в CSS каждой страницы, теперь им управляет
   класс на <body>, благодаря чему partials/header.html один на весь сайт. */
body.header-solid header {
  background: #1b2416;
}
body.header-solid header[data-scrolled="true"] {
  box-shadow: 0 2px 16px rgba(30, 35, 20, 0.16) !important;
}
body.header-transparent header[data-scrolled="true"] {
  background: #fff !important;
  box-shadow: 0 2px 16px rgba(30, 35, 20, 0.09) !important;
}
body.header-transparent header[data-scrolled="true"] img {
  filter: none !important;
}

/* На белой подложке светлый текст шапки не виден. Правила были в CSS каждой
   страницы с прозрачной шапкой — собраны сюда, чтобы не мешать страницам
   со сплошной шапкой. Ссылка второго языка — тег <a>, а не <span>, как было
   в экспорте: без неё переключатель сливался с фоном. */
body.header-transparent header[data-scrolled="true"] [data-nav] > a:not([data-btn]),
body.header-transparent header[data-scrolled="true"] [data-nav] > span {
  color: #21261a !important;
}
body.header-transparent header[data-scrolled="true"] [data-nav] > span span,
body.header-transparent header[data-scrolled="true"] [data-nav] > span a {
  color: rgba(33, 38, 26, 0.45) !important;
}
body.header-transparent header[data-scrolled="true"] [data-burger] {
  border-color: rgba(33, 38, 26, 0.22) !important;
  background: rgba(33, 38, 26, 0.05) !important;
}
body.header-transparent header[data-scrolled="true"] [data-burger] path {
  stroke: #21261a;
}

/* Подвал: тёмная подложка с фотографией общая для всех страниц.
   На главной внутри той же подложки сверху стоит CTA-блок, поэтому у подвала
   там своя отбивка и разделительная линия. */
.footer-shell {
  position: relative;
  background: #191b0c;
  overflow: hidden;
}
.site-footer {
  padding: 64px 0 62px;
}
body.page-home .site-footer {
  margin-top: 82px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
  padding: 37px 0 62px;
}

/* Мобильное меню: ниже 1220 px горизонтальные ссылки прячутся, вместо них
   бургер. Правило общее для всех страниц и живёт здесь, а не в постраничных
   файлах: разметка шапки вынесена в партиал, и очистка «правил без разметки»
   выбрасывала его со страниц, собранных вручную. */
@media (max-width: 1220px) {
  [data-nav] {
    display: none !important;
  }
  [data-burger] {
    display: inline-flex !important;
  }
}

/* Мессенджеры в подвале: значок покрупнее и подпись справа.
   Селектор из двух классов нужен, чтобы размер перебил базовый .social-btn,
   который собирается ниже вместе с остальными компонентами. */
.social-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  color: rgba(255, 255, 255, 0.62);
}
.social-row:hover {
  color: #fff;
}
.social-btn.social-btn--lg {
  width: 42px;
  height: 42px;
}

/* Фотография справа от заголовка — украшение: на узком экране она лезет
   под текст. Правило было в CSS тех страниц, где герой такой был изначально;
   собрано сюда, потому что теперь светлый герой и у «Клиентам», и у
   юридических страниц. */
@media (max-width: 900px) {
  [data-herodeco] {
    display: none !important;
  }
}

/* Абзац под заголовком первого экрана. На широком экране он занимает
   46% ширины, чтобы не заезжать на фотографию справа; на телефоне
   фотография скрыта, и ограничение оставляло узкий столбик. */
@media (max-width: 760px) {
  .hero-lead {
    max-width: 100% !important;
    font-size: 12px !important;
  }
}

/* На больших экранах текст подвала мельче основного — 14 px против 16.
   Заголовки колонок (.footer-title) не трогаем. !important нужен потому,
   что у абзацев размер задан инлайном; медиазапрос безопасен — селекторы
   подвала в постраничных файлах не встречаются, а те правила действуют
   ниже 1080 px. */
@media (min-width: 1081px) {
  .site-footer p,
  .footer-link,
  .legal-link,
  .social-row {
    font-size: 14px !important;
  }
}

/* Активный пункт меню. В теме это станет aria-current="page" из PHP —
   см. docs/MAPPING.md, раздел «Шапка». */
body.page-about [data-nav-key="about"],
body.page-catalog [data-nav-key="catalog"],
body.page-catalog-item [data-nav-key="catalog"],
body.page-quality [data-nav-key="quality"],
body.page-clients [data-nav-key="clients"],
body.page-blog [data-nav-key="blog"],
body.page-post [data-nav-key="blog"],
body.page-contacts [data-nav-key="contacts"] {
  font-weight: 600;
}

/* Место под полосу прокрутки резервируем всегда: иначе при открытии
   модалки или лупы прокрутка отключается, полоса исчезает и страница
   прыгает вбок на её ширину. Браузерам без поддержки свойства ширину
   компенсирует lockScroll() в main.js. */
html {
  scrollbar-gutter: stable;
}

/* Карусель сертификатов: лента прокручивается, но полосу прокрутки
   не показываем — листают кнопками, свайпом или колесом. Псевдоэлемент
   инлайном не задать, поэтому правило живёт здесь. */
[data-carousel-track] {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
[data-carousel-track]::-webkit-scrollbar {
  display: none;
}
[data-carousel-prev]:hover:not(:disabled),
[data-carousel-next]:hover:not(:disabled) {
  background: #e8eedc;
}
[data-carousel-prev],
[data-carousel-next] {
  transition:
    background-color 0.25s ease,
    opacity 0.25s ease;
}

/* Компоненты: вынесенные повторяющиеся инлайновые стили */
.site-shell {
  font-family: Manrope, system-ui, sans-serif;
  color: #21261a;
  background: #fefaee;
  overflow-x: hidden;
}
.container {
  width: calc(100% - 20px);
  max-width: 1600px;
  margin: 0 auto;
  padding: 0;
}
.container.container--overlay {
  position: relative;
  z-index: 2;
  width: calc(100% - 20px);
  max-width: 1600px;
  margin: 0 auto;
  padding: 0;
}
.header-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 121px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
.logo-link {
  display: block;
  flex: none;
}
.logo-img {
  height: 52px;
  width: auto;
  filter: brightness(0) invert(1);
}
.nav-link {
  font-size: 16px;
  font-weight: 500;
  color: #fff;
}
.menu-link.menu-link--first {
  padding: 12px 4px;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
}
.menu-link {
  padding: 12px 4px;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-title {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
}
.footer-list {
  margin-top: 19px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-link {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.62);
}
.legal-link {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.45);
}
.social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 33px;
  height: 33px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.13);
}
.section-title {
  margin: 0;
  font-family: "Golos Text", sans-serif;
  font-weight: 400;
  font-size: clamp(30px, 2.6vw, 42px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #21261a;
}
.cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cover.cover--abs {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.card-item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(33, 38, 26, 0.09);
  border-radius: 18px;
  overflow: hidden;
}
.card-item__media {
  position: relative;
  display: block;
  height: 150px;
  background: #e4e2d6;
  overflow: hidden;
}
.card-item__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px 20px;
}
.card-item__title {
  display: block;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: #21261a;
}
.card-item__cat {
  display: block;
  font-size: 15px;
  line-height: 1.35;
  color: #9c9c8e;
}

/* Чипы фильтра каталога (в исходнике собирались в JS) */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 15px;
  border-radius: 20px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  background: transparent;
  color: #21261a;
  border: 1px solid rgba(33, 38, 26, 0.18);
}
.chip.is-active {
  background: #3f4a28;
  color: #fff;
  border-color: #3f4a28;
}

/* Баннер cookie. Появляется снизу, выбор запоминается в localStorage.
   Единственное место в main.css с медиазапросами: селекторы баннера
   больше нигде не встречаются, поэтому перебить постраничный CSS они
   не могут, а дублировать их в каждый файл страницы незачем. */
[data-cookie] {
  transition:
    opacity 0.4s ease,
    transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
[data-cookie][data-hiding] {
  opacity: 0;
  transform: translateY(16px);
}
[data-cookie][data-showing] {
  opacity: 0;
  transform: translateY(16px);
}
[data-cookie-accept]:hover {
  background: #4a5730;
}
[data-cookiepanel] :focus-visible {
  outline: 2px solid #fefaee;
  outline-offset: 3px;
}
[data-cookie-reject]:hover {
  background: rgba(255, 255, 255, 0.08);
}
@media (max-width: 760px) {
  [data-cookiepanel] {
    padding: 20px !important;
    gap: 18px !important;
  }
  [data-cookiepanel] p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
  [data-cookiebtns] {
    width: 100% !important;
  }
  [data-cookiebtns] [data-btn] {
    flex: 1 !important;
    font-size: 15px !important;
    height: 44px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-cookie] {
    transition: none;
  }
}

/* Формы Contact Form 7 в оформлении вёрстки.
   CF7 оборачивает каждое поле в <span>, поэтому его надо распрямить,
   иначе поля перестанут занимать всю ширину. */
.wpcf7-form-control-wrap {
  display: block;
}
.wpcf7 form .wpcf7-response-output {
  margin: 22px 0 0;
  padding: 16px 20px;
  border: none;
  border-radius: 12px;
  background: #e8eedc;
  font-size: 16px;
  color: #21261a;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  background: #f6e7e4;
  color: #7a2e22;
}
.wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 14px;
  color: #b3372a;
}
.wpcf7-spinner {
  margin: 0 0 0 14px;
}

.viola-form--contacts input[type="text"],
.viola-form--contacts input[type="email"],
.viola-form--contacts input[type="tel"] {
  margin-top: 10px;
  width: 100%;
  height: 54px;
  padding: 0 20px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  color: #21261a;
}
.viola-form--contacts textarea {
  margin-top: 10px;
  width: 100%;
  padding: 16px 20px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  color: #21261a;
  resize: vertical;
}

.viola-form--docs input[type="text"],
.viola-form--docs input[type="email"],
.viola-form--docs input[type="tel"] {
  margin-top: 10px;
  width: 100%;
  height: 54px;
  padding: 0 20px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  color: #21261a;
}
.viola-form--docs textarea {
  margin-top: 10px;
  width: 100%;
  padding: 16px 20px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  color: #21261a;
  resize: vertical;
}

.viola-form--price input[type="text"],
.viola-form--price input[type="email"],
.viola-form--price input[type="tel"] {
  margin-top: 9px;
  width: 100%;
  height: 52px;
  padding: 0 18px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  color: #21261a;
}
.viola-form--price textarea {
  margin-top: 9px;
  width: 100%;
  padding: 15px 18px;
  border: 1px solid rgba(33, 38, 26, 0.14);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  color: #21261a;
  resize: vertical;
}
