/*
 * Тема ventys.ru поверх Bagisto. Параметры — из макета Figma «ВентисФлекс» (sajt-ventys/figma/dizain-tokeny.md).
 * Классы темы начинаются с vt-, чтобы не пересекаться с классами Bagisto (Tailwind).
 */

/* ---------- Шрифт PT Sans (свой сервер, лицензия OFL) ---------- */
@font-face { font-family: "PT Sans"; font-style: normal; font-weight: 400; font-display: swap;
    src: url("fonts/pt-sans-cyrillic-400-normal.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Sans"; font-style: normal; font-weight: 400; font-display: swap;
    src: url("fonts/pt-sans-latin-400-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: "PT Sans"; font-style: normal; font-weight: 700; font-display: swap;
    src: url("fonts/pt-sans-cyrillic-700-normal.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Sans"; font-style: normal; font-weight: 700; font-display: swap;
    src: url("fonts/pt-sans-latin-700-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: "PT Sans"; font-style: italic; font-weight: 400; font-display: swap;
    src: url("fonts/pt-sans-cyrillic-400-italic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Sans"; font-style: italic; font-weight: 400; font-display: swap;
    src: url("fonts/pt-sans-latin-400-italic.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+2000-206F; }

/* ---------- Параметры макета ---------- */
:root {
    --vt-green: #8bc348;
    --vt-green-light: #9de14b;
    --vt-green-dark: #6fa531;
    --vt-text: #3a3a3a;
    --vt-muted: #969ba5;
    --vt-link: #005bad;
    --vt-bg: #f4f4f4;
    --vt-border: #e7e6e6;
    --vt-footer: #2c364a;
    --vt-blue: #6eafea;
    --vt-red: #dc1d00;
    --vt-radius: 4px;
    --vt-container: 1200px;
    --vt-font: "PT Sans", Arial, sans-serif;
}

/* Шрифт — на весь сайт, включая страницы Bagisto (корзина, оформление заказа).
   В CSS Bagisto стоит *{font-family:Poppins}, поэтому переопределяем тоже через *.
   Значки Bagisto ([class^=icon-] … !important) точнее по селектору и остаются своим шрифтом. */
* { font-family: var(--vt-font) !important; }
[class^="icon-"], [class*=" icon-"] { font-family: bagisto-shop !important; }
body { color: var(--vt-text); font-size: 14px; line-height: 1.5; }

.vt-container { max-width: var(--vt-container); margin: 0 auto; padding: 0 20px; box-sizing: content-box; }
.vt-dashed { border-bottom: 1px dashed currentColor; }

/* ---------- Кнопки (состояния «спокойное» и «ховер» из макета) ---------- */
.vt-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 54px; padding: 0 40px; border: 1px solid var(--vt-green); border-radius: var(--vt-radius);
    background: #fff; color: var(--vt-green); font-size: 16px; font-weight: 700; line-height: 1.2;
    text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.vt-btn:hover, .vt-btn:focus-visible { background: var(--vt-green); color: #fff; }
.vt-btn--solid { background: var(--vt-green); color: #fff; }
.vt-btn--solid:hover, .vt-btn--solid:focus-visible { background: var(--vt-green-dark); border-color: var(--vt-green-dark); }
.vt-btn--big { min-height: 70px; min-width: 250px; font-size: 18px; }

/* ---------- Шапка ---------- */
.vt-header { position: relative; z-index: 30; background: #fff; }
.vt-header__top { display: flex; align-items: center; gap: 32px; min-height: 100px; }
.vt-header__logo img { display: block; width: 160px; height: auto; }
.vt-header__slogan { flex: 1; max-width: 280px; margin: 0 0 0 auto; color: var(--vt-muted); font-size: 13px; line-height: 1.3; }
.vt-header__slogan b { color: #7a7f89; }
.vt-header__contacts { display: flex; flex-direction: column; gap: 8px; }
.vt-header__phone, .vt-header__mail { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.vt-header__phone { color: var(--vt-text); font-size: 20px; }
.vt-header__mail { color: var(--vt-link); font-size: 14px; font-weight: 700; }
.vt-round-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none;
    border-radius: 50%; background: var(--vt-green); color: #fff; }
.vt-btn-calc {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: var(--vt-radius);
    background: linear-gradient(#5fbd2e, #3f9a17); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .25); white-space: nowrap; transition: filter .2s;
}
.vt-btn-calc:hover { filter: brightness(1.08); }

.vt-nav { border-top: 1px solid var(--vt-border); background: #fff; }
.vt-nav__inner { display: flex; align-items: center; gap: 22px; min-height: 54px; }
.vt-nav__home { display: inline-flex; color: var(--vt-green); }
.vt-nav__list { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0; list-style: none; }
.vt-nav__item { position: relative; }
.vt-nav__item > a { display: inline-flex; align-items: center; gap: 4px; padding: 15px 0; color: var(--vt-text);
    font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.vt-nav__item.has-sub > a::after { content: ""; width: 6px; height: 6px; margin-left: 4px; border: solid currentColor;
    border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); }
.vt-nav__item > a:hover, .vt-nav__item.is-active > a { color: var(--vt-green); }
.vt-nav__sub { position: absolute; top: 100%; left: -16px; min-width: 260px; margin: 0; padding: 8px 0; list-style: none;
    background: #fff; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; }
.vt-nav__item:hover > .vt-nav__sub, .vt-nav__item:focus-within > .vt-nav__sub { opacity: 1; visibility: visible; transform: none; }
.vt-nav__sub a { display: block; padding: 7px 16px; color: var(--vt-text); font-size: 14px; text-decoration: none; }
.vt-nav__sub a:hover { background: var(--vt-bg); color: var(--vt-green); }
.vt-nav__cart { margin-left: auto; }
.vt-nav__cart .icon-cart { color: var(--vt-text); }
.vt-nav__cart .bg-navyBlue { background: var(--vt-green) !important; }
.vt-nav__mobile-contacts { display: none; }

.vt-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; margin-left: auto; cursor: pointer; }
.vt-burger span { display: block; height: 3px; border-radius: 2px; background: var(--vt-green); }

/* ---------- Подвал ---------- */
.vt-footer { margin-top: 0; padding: 50px 0 40px; background: var(--vt-footer); color: #fff; }
.vt-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.vt-footer__title { margin: 0 0 22px; color: #a9aebb; font-size: 24px; font-weight: 400; }
.vt-footer__col ul { margin: 0; padding: 0; list-style: none; }
.vt-footer__col li { margin: 0 0 8px; font-size: 12px; line-height: 16px; }
.vt-footer__col a { color: #fff; text-decoration: none; }
.vt-footer__col a::before { content: "— "; }
.vt-footer__col a:hover { color: var(--vt-green); }
.vt-footer__bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-top: 36px; }
.vt-footer__copy { margin: 0; color: var(--vt-muted); font-size: 12px; }
.vt-footer__contacts { display: flex; flex-direction: column; gap: 6px; }
.vt-footer__phone { color: #fff; font-size: 18px; text-decoration: none; }
.vt-footer__mail { color: var(--vt-link); font-size: 13px; text-decoration: none; filter: brightness(1.6); }
.vt-footer__tg { color: #fff; font-size: 13px; text-decoration: none; opacity: .85; }
.vt-footer__tg:hover, .vt-footer__phone:hover { color: var(--vt-green); }

/* ---------- Страницы материалов (статьи, новости, разделы) ---------- */
.vc { max-width: 1200px; margin: 0 auto; padding: 24px 60px 60px; line-height: 1.6; }
.vc-crumbs { font-size: 14px; color: #6b7280; margin-bottom: 16px; }
.vc-crumbs a { color: #6b7280; } .vc-crumbs a:hover { text-decoration: underline; }
.vc h1 { font-size: 32px; font-weight: 600; margin-bottom: 20px; line-height: 1.25; }
.vc-body h2 { font-size: 24px; font-weight: 600; margin: 24px 0 12px; }
.vc-body h3 { font-size: 20px; font-weight: 600; margin: 20px 0 10px; }
.vc-body h4 { font-size: 18px; font-weight: 600; margin: 16px 0 8px; }
.vc-body p { margin: 0 0 12px; }
.vc-body ul { list-style: disc; padding-left: 24px; margin: 0 0 12px; }
.vc-body ol { list-style: decimal; padding-left: 24px; margin: 0 0 12px; }
.vc-body a { color: #0c6cb3; text-decoration: underline; }
.vc-body img { max-width: 100%; height: auto; display: inline-block; }
.vc-body table { border-collapse: collapse; margin: 12px 0; }
.vc-body td, .vc-body th { border: 1px solid #e5e7eb; padding: 6px 10px; }
.vc-date { color: #6b7280; font-size: 14px; margin-bottom: 12px; }
.vc-main-img { max-width: 100%; height: auto; margin: 0 0 20px; border-radius: 8px; }
.vc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; margin-top: 24px; }
.vc-card { border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; background: #fff; }
.vc-card img { width: 100%; height: 180px; object-fit: cover; }
.vc-card-body { padding: 14px 16px; }
.vc-card-title { font-weight: 600; font-size: 17px; margin-bottom: 6px; display: block; }
.vc-card-title:hover { color: #0c6cb3; }
.vc-card-text { font-size: 14px; color: #4b5563; }
.vc-inline { display: flex; gap: 20px; padding: 20px 0; border-bottom: 1px solid #e5e7eb; }
.vc-body .vc-inline img { width: 200px; height: auto; object-fit: contain; flex: none; }
.vc-body .vc-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-top: 20px; }
.vc-body .vc-photos a { display: block; } .vc-body .vc-photos img { width: 100%; height: 170px; object-fit: cover; border-radius: 6px; }
.vc-props { margin: 16px 0; } .vc-props td { padding: 4px 16px 4px 0; vertical-align: top; }
.vc-pager { display: flex; gap: 8px; margin-top: 28px; } .vc-pager a, .vc-pager span { padding: 6px 12px; border: 1px solid #e5e7eb; border-radius: 6px; }
.vc-pager span { background: #0c6cb3; color: #fff; border-color: #0c6cb3; }
@media (max-width: 1024px) { .vc { padding: 16px 20px 40px; } .vc-inline { flex-direction: column; } .vc h1 { font-size: 26px; } }
    

/* ---------- Формы заявок ---------- */
.vt-form-wrap { max-width: 640px; }
.vt-form__title { margin: 0 0 12px; font-size: 24px; font-weight: 700; }
.vt-form__intro { margin: 0 0 24px; font-size: 16px; }
.vt-form__row { margin-bottom: 16px; }
.vt-form__row label { display: block; margin-bottom: 6px; font-weight: 700; }
.vt-form__row label span { color: var(--vt-red); }
.vt-form__row input[type=text], .vt-form__row input[type=tel], .vt-form__row input[type=email], .vt-form__row textarea {
    width: 100%; padding: 12px 14px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); font-size: 16px; background: #fff; }
.vt-form__row input:focus, .vt-form__row textarea:focus { outline: none; border-color: var(--vt-green); box-shadow: 0 0 0 3px rgba(139, 195, 72, .2); }
.vt-form__row small { display: block; margin-top: 4px; color: var(--vt-muted); }
.vt-form__row.has-error input, .vt-form__row.has-error textarea { border-color: var(--vt-red); }
.vt-form__error { margin: 4px 0 0; color: var(--vt-red); font-size: 13px; }
.vt-form__consent label { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
.vt-form__consent input { margin-top: 3px; }
.vt-form__consent a { color: var(--vt-link); text-decoration: underline; }
.vt-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vt-form__done { padding: 16px 20px; border-left: 4px solid var(--vt-green); background: var(--vt-bg); font-size: 16px; }
.vt-form-block { margin-top: 40px; padding: 30px; background: var(--vt-bg); border-radius: var(--vt-radius); }

/* ---------- Главная (макет Figma, узел 1:2) ---------- */
.vt-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.vt-hero { position: relative; height: 545px; overflow: hidden; background: #f7f7f7; }
.vt-hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.vt-hero__slide.is-active { opacity: 1; visibility: visible; }
.vt-hero__slide--2, .vt-hero__slide--3 { background: url("img/home/s2-bg.webp") center / cover no-repeat; }
.vt-hero__slide--3 { background-position: center 70%; background-size: 100% auto; background-color: #fff; }
.vt-hero__visual { position: absolute; inset: 0; pointer-events: none; }
.vt-hero__photo { position: absolute; left: calc(50% - 50px); top: 53px; width: 552px; height: auto; }
.vt-hero__blinds { position: absolute; left: calc(50% + 421px); top: 140px; width: 178px; height: auto; }
.vt-hero__product { position: absolute; left: calc(50% - 151px); top: 248px; width: 198px; height: auto; }
.vt-hero__circle { position: absolute; left: calc(50% + 75px); top: 150px; width: 157px; height: 157px; border: 12px solid var(--vt-green); border-radius: 50%; }
.vt-hero__brand { position: absolute; left: calc(50% + 138px); top: 385px; color: #fff; font-size: 100px; font-weight: 700; line-height: 1.17; letter-spacing: 2px; }
.vt-hero__brand small { position: absolute; left: 0; top: 12px; font-size: 14px; font-weight: 400; letter-spacing: 0; color: var(--vt-text); }
.vt-hero__slide--2 .vt-hero__brand, .vt-hero__slide--3 .vt-hero__brand { left: calc(50% + 154px); }
.vt-hero__text { position: relative; padding-top: 99px; }
.vt-hero__slide--2 .vt-hero__text { padding-top: 140px; }
.vt-hero__slide--3 .vt-hero__text { padding-top: 114px; }
.vt-hero__title { margin: 0; font-size: 40px; font-weight: 700; line-height: 52px; }
.vt-hero__sub { margin: 10px 0 0; font-size: 20px; line-height: 26px; }
.vt-hero__price { margin: 60px 0 50px; font-size: 18px; line-height: 23px; }
.vt-hero__slide--2 .vt-hero__price, .vt-hero__slide--3 .vt-hero__price { margin-top: 40px; }
.vt-hero__dots { position: absolute; left: 50%; bottom: 20px; display: flex; gap: 10px; transform: translateX(-50%); }
.vt-hero__dots button { width: 12px; height: 12px; padding: 0; border: 2px solid var(--vt-green); border-radius: 50%; background: #fff; cursor: pointer; }
.vt-hero__dots button.is-active { background: var(--vt-green); }

.vt-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding-top: 72px; padding-bottom: 70px; }
.vt-benefit { display: flex; flex-direction: column; border: 1px solid var(--vt-border); color: var(--vt-text); text-decoration: none; transition: box-shadow .2s; }
a.vt-benefit:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
.vt-benefit__top { position: relative; min-height: 210px; padding: 28px 30px; background: var(--vt-bg); }
.vt-benefit__bottom { padding: 24px 30px 30px; }
.vt-benefit__title { margin: 0; font-size: 24px; font-weight: 700; line-height: 31px; text-transform: uppercase; }
.vt-benefit__bottom .vt-benefit__title { font-size: 20px; line-height: 26px; }
.vt-benefit__sub { margin: 4px 0 0; font-size: 16px; text-transform: uppercase; }
.vt-benefit__text { margin: 10px 0 0; font-size: 16px; line-height: 23px; }
.vt-benefit__icon { position: absolute; right: 24px; bottom: 20px; width: 80px; height: 80px; }

.vt-banner { padding: 124px 0; background: var(--vt-bg); }
.vt-banner p { margin: 0 auto; font-size: 40px; line-height: 52px; text-align: center; }

.vt-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 70px; padding-bottom: 70px; }
.vt-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-height: 645px; padding: 40px 30px 80px; overflow: hidden;
    background: var(--vt-bg) var(--tile-bg, none) center / cover no-repeat; color: var(--vt-text); text-align: center; text-decoration: none; }
.vt-tile:hover .vt-btn { background: var(--vt-green); color: #fff; }
.vt-tile__img { position: absolute; top: 50px; left: 50%; width: 238px; height: auto; transform: translateX(-50%); transition: transform .4s; }
.vt-tile--razrez:hover .vt-tile__img { transform: translateX(-50%) scale(1.04); }
.vt-tile__title { margin: 0 0 40px; font-size: 30px; font-weight: 700; line-height: 39px; }
.vt-tile__text { max-width: 350px; margin: 0 0 50px; font-size: 18px; line-height: 23px; }
.vt-tiles__small { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.vt-tile--small { min-height: 312px; justify-content: space-between; padding: 30px 20px 30px; }
.vt-tile__big-title { margin: 0; color: var(--vt-green); font-size: 40px; font-weight: 700; line-height: 52px; }
.vt-tile__icon { height: 72px; width: auto; color: var(--vt-green); }
.vt-tile__news { display: flex; gap: 16px; align-items: center; max-width: 240px; font-size: 14px; text-align: left; }
.vt-tile__date { flex: none; padding-right: 16px; border-right: 1px solid var(--vt-text); font-size: 18px; font-weight: 700; line-height: 23px; }
.vt-tile--big .vt-btn { min-height: 70px; min-width: 250px; font-size: 18px; }
.vt-tile--small .vt-btn { min-height: 57px; min-width: 173px; padding: 0 30px; }

.vt-consult { padding: 80px 0; background: var(--vt-bg); }
.vt-consult__inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.vt-consult__title { margin: 0 0 20px; font-size: 30px; font-weight: 700; line-height: 39px; }
.vt-consult__text { max-width: 760px; margin: 0; font-size: 18px; line-height: 27px; }

@media (max-width: 1100px) {
    .vt-hero__photo, .vt-hero__blinds, .vt-hero__product, .vt-hero__circle { opacity: .35; }
    .vt-benefits { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
    .vt-hero { height: 480px; }
    .vt-hero__brand { left: auto !important; right: 20px; top: auto; bottom: 40px; font-size: 56px; }
    .vt-hero__title { font-size: 30px; line-height: 39px; }
    .vt-tiles { grid-template-columns: 1fr; }
    .vt-tile { min-height: 480px; }
    .vt-banner { padding: 60px 0; }
    .vt-banner p { font-size: 28px; line-height: 36px; }
    .vt-consult__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) {
    /* Телефон (макет 11:0): фото на весь первый экран, текст по центру, без надписи ventyflex */
    .vt-hero { height: 400px; }
    .vt-hero__slide { background: url("img/home/s2-bg.webp") 30% center / cover no-repeat !important; }
    .vt-hero__photo, .vt-hero__blinds, .vt-hero__product, .vt-hero__circle, .vt-hero__brand { display: none; }
    .vt-hero__text { padding-top: 70px !important; text-align: center; }
    .vt-hero__title { font-size: 26px; line-height: 34px; }
    .vt-hero__sub { font-weight: 700; font-size: 16px; }
    .vt-hero__price { margin: 30px 0; font-size: 16px; }
    .vt-hero .vt-btn--big { min-width: 0; width: auto; min-height: 54px; padding: 0 48px; }
    .vt-tile--razrez { min-height: 0; }
    .vt-tile--razrez .vt-tile__img { position: static; width: 200px; margin-bottom: 24px; transform: none !important; }
    .vt-tile--photo { min-height: 0; padding-top: 300px; background-size: 100% auto; background-position: center -40px; }
    .vt-tile__title { font-size: 26px; line-height: 34px; margin-bottom: 24px; }
    .vt-tile__text { margin-bottom: 32px; }
    .vt-tile--big .vt-btn { min-width: 0; width: 100%; }
    .vt-tile--small { min-height: 240px; gap: 20px; }
    .vt-benefits, .vt-tiles__small { grid-template-columns: 1fr; }
    .vt-benefit__title { font-size: 20px; line-height: 26px; }
    .vt-tile__big-title { font-size: 32px; }
}

/* ---------- Планшет и телефон ---------- */
@media (max-width: 1100px) {
    .vt-header__slogan { display: none; }
    .vt-nav__list { gap: 4px 16px; }
    .vt-nav__item > a { font-size: 14px; }
}

@media (max-width: 900px) {
    .vt-header__top { min-height: 64px; gap: 16px; }
    .vt-header__logo img { width: 120px; }
    .vt-header__contacts, .vt-btn-calc { display: none; }
    .vt-burger { display: inline-flex; }

    .vt-nav { display: none; border-top: 1px solid var(--vt-border); }
    .vt-nav-toggle:checked + .vt-nav { display: block; }
    .vt-nav__inner { flex-direction: column; align-items: stretch; gap: 0; padding-top: 8px; padding-bottom: 8px; }
    .vt-nav__home { display: none; }
    .vt-nav__list { flex-direction: column; gap: 0; }
    .vt-nav__item > a { padding: 10px 0; font-size: 16px; }
    .vt-nav__sub { position: static; min-width: 0; padding: 0 0 8px 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .vt-nav__cart { margin: 8px 0 0; }
    .vt-nav__mobile-contacts { display: flex; flex-direction: column; gap: 10px; padding-bottom: 20px; }
    .vt-nav__mobile-contacts a:not(.vt-btn) { color: var(--vt-text); font-size: 16px; text-decoration: none; }

    .vt-footer__cols { grid-template-columns: 1fr 1fr; }
    .vt-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 560px) {
    .vt-footer__cols { grid-template-columns: 1fr; text-align: center; }
    .vt-footer__col a::before { content: ""; }
    .vt-footer__bottom { align-items: center; text-align: center; }
    .vt-btn { width: 100%; padding: 0 20px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Карточка товара (Figma «Товар / Desktop» 82:116) ---------- */
.vp { padding-top: 20px; padding-bottom: 80px; color: var(--vt-text); }
.vp-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 0; margin-bottom: 40px; font-size: 14px; }
.vp-crumbs a { color: var(--vt-text); text-decoration: none; }
.vp-crumbs a:hover { color: var(--vt-green); }
.vp-crumbs a::after { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 16px 1px 14px;
    border-top: 1px solid var(--vt-green); border-right: 1px solid var(--vt-green); transform: rotate(45deg); }
.vp-crumbs span { color: var(--vt-muted); }

.vp-main { display: grid; grid-template-columns: 423px 1fr; gap: 96px; align-items: start; }
.vp-gallery__main { display: flex; align-items: center; justify-content: center; aspect-ratio: 423 / 463;
    border-radius: var(--vt-radius); background: #fff; overflow: hidden; }
.vp-gallery__main img { width: 100%; height: 100%; object-fit: contain; }
.vp-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 16px; margin-top: 30px; }
.vp-gallery__thumb { aspect-ratio: 154 / 167; padding: 6px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius);
    background: #fff; cursor: pointer; transition: border-color .2s; }
.vp-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.vp-gallery__thumb:hover, .vp-gallery__thumb.is-active { border-color: var(--vt-green); }

.vp-info__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.vp-badge { display: inline-block; padding: 1px 8px; border-radius: var(--vt-radius); background: #b0da7c; color: #fff; font-size: 14px; }
.vp-article { font-size: 14px; opacity: .8; }
.vp-title { margin: 20px 0 30px; font-size: 30px; font-weight: 700; line-height: 1.5; }
.vp-price { margin: 0 0 20px; font-size: 30px; font-weight: 700; line-height: 1.5; }

.vp-buy { display: flex; flex-wrap: wrap; gap: 70px; align-items: center; margin-bottom: 30px; }
.vp-buy__btn { min-width: 240px; min-height: 70px; font-size: 20px; }
.vp-buy__btn:disabled { opacity: .6; cursor: default; }
.vp-qty { display: flex; align-items: center; justify-content: space-between; width: 140px; height: 70px; padding: 0 20px;
    border: 1px solid var(--vt-bg) !important; border-radius: var(--vt-radius) !important; font-size: 20px; font-weight: 700; }
.vp-qty .icon-minus { color: var(--vt-muted); cursor: pointer; }
.vp-qty .icon-plus { color: var(--vt-green); cursor: pointer; }

.vp-h2 { margin: 0 0 20px; font-size: 30px; font-weight: 700; line-height: 1.5; }
.vp-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 40px; margin: 0 0 40px; }
.vp-specs__row { display: grid; grid-template-columns: minmax(100px, auto) 1fr; gap: 20px; align-items: baseline; }
.vp-specs dt { font-size: 18px; font-weight: 700; }
.vp-specs dd { margin: 0; font-size: 16px; }
.vp-desc { max-width: 600px; font-size: 16px; line-height: 1.5; }
.vp-desc p { margin: 0 0 12px; }
.vp-desc ul { margin: 0 0 12px; padding-left: 20px; list-style: disc; }
.vp-desc h3, .vp-desc h2 { margin: 16px 0 8px; font-size: 18px; font-weight: 700; }

.vp-bottom { margin-top: 80px; }
.vp-ask summary { list-style: none; min-width: 216px; font-size: 20px; }
.vp-ask summary::-webkit-details-marker { display: none; }
.vp-ask[open] summary { margin-bottom: 30px; }
.vp-ask .vt-form { max-width: 640px; padding: 30px; border-radius: var(--vt-radius); background: var(--vt-bg); }
.vp-back { display: inline-flex; align-items: center; gap: 14px; margin-top: 70px; color: var(--vt-link); font-size: 18px; text-decoration: none; }
.vp-back:hover { text-decoration: underline; }
.vp-back__icon { position: relative; width: 32px; height: 32px; border-radius: 50%; background: var(--vt-green); }
.vp-back__icon::before { content: ""; position: absolute; top: 12px; left: 13px; width: 8px; height: 8px;
    border-bottom: 1px solid #fff; border-left: 1px solid #fff; transform: rotate(45deg); }

@media (max-width: 1100px) {
    .vp-main { grid-template-columns: 360px 1fr; gap: 40px; }
    .vp-buy { gap: 24px; }
}
@media (max-width: 900px) {
    .vp-main { grid-template-columns: 1fr; }
    .vp-gallery { max-width: 480px; }
    .vp-specs { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .vp-crumbs { margin-bottom: 24px; }
    .vp-title { margin: 12px 0 16px; font-size: 22px; }
    .vp-price, .vp-h2 { font-size: 24px; }
    .vp-buy__btn { flex: 1; min-width: 0; }
    .vp-qty { width: 120px; }
    .vp-bottom { margin-top: 48px; }
    .vp-ask .vt-form { padding: 20px; }
    .vp-back { margin-top: 40px; }
}

/* ---------- Каталог /catalog/: все товары, группы через линии, по центру ---------- */
.vcat { padding-top: 20px; padding-bottom: 80px; color: var(--vt-text); }
.vcat__title { margin: 0 0 20px; font-size: 36px; font-weight: 700; text-align: center; }
.vcat__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin-bottom: 40px; }
.vcat__nav a { color: var(--vt-link); font-weight: 700; text-decoration: none; border-bottom: 1px dashed currentColor; }
.vcat__nav a:hover { color: var(--vt-green-dark); }
.vcat__group { padding: 48px 0; border-top: 1px solid var(--vt-border); scroll-margin-top: 20px; }
.vcat__group-title { margin: 0 0 32px; font-size: 26px; font-weight: 700; text-align: center; }
.vcat__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px 30px; }
.vcat__card { display: flex; flex-direction: column; gap: 10px; width: 270px; text-align: center; text-decoration: none; color: inherit; }
.vcat__img { display: block; aspect-ratio: 1 / 1; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); background: #fff; overflow: hidden; }
.vcat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.vcat__card:hover .vcat__img img { transform: scale(1.04); }
.vcat__name { font-size: 16px; line-height: 1.35; }
.vcat__card:hover .vcat__name { color: var(--vt-green-dark); }
.vcat__price { font-size: 20px; font-weight: 700; }
@media (max-width: 640px) {
    .vcat__title { font-size: 28px; }
    .vcat__group { padding: 32px 0; }
    .vcat__grid { gap: 28px 14px; }
    .vcat__card { width: calc(50% - 7px); }
    .vcat__name { font-size: 14px; }
    .vcat__price { font-size: 17px; }
}

/* ---------- «Вопросы и ответы» (/info/faq/) ---------- */
.vc-body h2 + h3 { margin-top: 8px; }
.vc-faq .vc-body h2 { margin: 40px 0 8px; font-size: 26px; }
.vc-faq .vc-body h3 { margin: 0; padding: 18px 0 6px; border-top: 1px solid var(--vt-border); font-size: 19px; }
.vc-faq .vc-body h3 + p, .vc-faq .vc-body h3 + p + ul, .vc-faq .vc-body h3 + p + ul + p { margin-bottom: 14px; }

/* ---------- Телефон: поле по длине номера «+7 (925) 731-71-63», а не на всю строку (phone.js форматирует ввод) ---------- */
input[type="tel"], input[name="phone"], input[name$=".phone"], input[name$="[phone]"], input[autocomplete="tel"] {
    width: 100%; max-width: 16.5em; font-variant-numeric: tabular-nums; letter-spacing: .01em;
}

/* ---------- Подсветка полей при вводе — на всём сайте как в форме расчёта (/raschet-proekta/) ----------
   Зелёная рамка и мягкое свечение. Перебивает фокус Bagisto/Tailwind (focus:border-gray-…, ring-…) в оформлении заказа, кабинете, поиске. */
html body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="range"]):not([type="color"]):focus,
html body textarea:focus,
html body select:focus {
    outline: none !important;
    border-color: var(--vt-green) !important;
    box-shadow: 0 0 0 3px rgba(139, 195, 72, .2) !important;
}
html body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]),
html body textarea,
html body select { transition: border-color .15s, box-shadow .15s; }

/* ---------- Партнёры (как на ventyflex.ru/part) ---------- */
.vc-body .vc-partner { align-items: flex-start; gap: 28px; padding: 28px 0; }
.vc-body .vc-partner img { width: 300px; border-radius: 12px; border: 1px solid #e5e7eb; background: #fff; }
.vc-body .vc-partner h2 { margin-top: 0; }
@media (max-width: 1024px) { .vc-body .vc-partner img { width: 100%; max-width: 360px; } }
.vc-body .vc-partner--logo img { box-sizing: border-box; padding: 60px 50px; object-fit: contain; }

/* ---------- Контакты (утверждённый макет maket/kontakty, 23.10.2026) ---------- */
.vc-contacts { --kt-green: #8bc348; --kt-green-dark: #6fa531; --kt-soft: #eef6e4; --kt-muted: #7a7f89; --kt-line: #e7e6e6; --kt-bg: #f6f7f5; --kt-head: #2b2f33; }
.vc-contacts .kt-lead { max-width: 720px; margin: -8px 0 0; font-size: 18px; color: var(--kt-muted); }
.vc-contacts .kt-sec { margin-top: clamp(44px, 6vw, 68px); }
.vc-contacts .kt-head { margin-bottom: 22px; }
.vc-contacts .kt-eyebrow { display: block; margin-bottom: 6px; color: var(--kt-green-dark); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vc-contacts h2 { margin: 0; font-size: clamp(24px, 3vw, 30px); font-weight: 700; line-height: 1.2; color: var(--kt-head); }
.vc-contacts h3 { margin: 0 0 14px; font-size: 20px; font-weight: 700; color: var(--kt-head); }
.vc-contacts .kt-sub { margin: 36px 0 18px; }
.vc-contacts .vc-body a, .vc-contacts .kt-form a { text-decoration: none; }
.vc-contacts .vc-body a:hover { text-decoration: underline; }
.vc-contacts .kt-grid { display: grid; gap: 20px; }
.vc-contacts .kt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vc-contacts .kt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vc-contacts .kt-card { padding: 24px; border: 1px solid var(--kt-line); border-radius: 14px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.vc-contacts .kt-card:hover { border-color: var(--kt-green); box-shadow: 0 10px 30px rgba(43, 47, 51, .07); transform: translateY(-2px); }
.vc-contacts .kt-card h3 a { color: var(--kt-head); }
.vc-contacts .kt-city { display: inline-block; margin-bottom: 12px; padding: 3px 10px; border-radius: 999px; background: var(--kt-soft); color: var(--kt-green-dark); font-size: 13px; font-weight: 700; }
.vc-contacts .kt-about { margin: -6px 0 14px; color: var(--kt-muted); font-size: 15px; }
.vc-contacts .vc-body .kt-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.vc-contacts .kt-list li, .vc-contacts .kt-hot__hours { display: flex; gap: 10px; align-items: flex-start; overflow-wrap: anywhere; }
.vc-contacts [class*="i-"]::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 1px; background: var(--kt-green); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.vc-contacts .kt-tel { color: #3a3a3a; font-size: 17px; font-weight: 700; white-space: nowrap; }
.vc-contacts .kt-more { margin: 18px 0 0; color: var(--kt-muted); font-size: 15px; }
.vc-contacts .kt-main { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: 20px; }
.vc-contacts .kt-hot { display: flex; flex-direction: column; gap: 8px; padding: 28px; border-radius: 14px; background: var(--kt-bg); }
.vc-contacts .kt-hot__tel { color: var(--kt-head); font-size: clamp(26px, 3vw, 32px); font-weight: 700; white-space: nowrap; }
.vc-contacts .kt-hot__mail { font-size: 18px; }
.vc-contacts .kt-hot__hours { margin-top: 12px; font-weight: 700; }
.vc-contacts .kt-hot__hours span { font-weight: 400; color: var(--kt-muted); }
.vc-contacts .kt-hot__more { margin: auto 0 0; padding-top: 18px; border-top: 1px solid var(--kt-line); font-size: 14px; }
.vc-contacts .kt-hot__more dt { margin-top: 8px; color: var(--kt-muted); }
.vc-contacts .kt-hot__more dd { margin: 0; }
.vc-contacts .kt-card--place { display: flex; flex-direction: column; }
.vc-contacts .kt-ico { display: block; width: 48px; height: 48px; margin-bottom: 14px; border-radius: 12px; background: var(--kt-soft) var(--i) center / 26px no-repeat; }
.vc-contacts .kt-map { margin-top: auto; padding-top: 16px; color: var(--kt-green-dark) !important; font-size: 15px; font-weight: 700; }
/* форма «Задать вопрос»: слева текст, справа поля в две колонки */
.vc-contacts .kt-form { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px; padding: clamp(24px, 4vw, 40px); border-radius: 14px; background: var(--kt-bg); }
.vc-contacts .kt-form__intro p { color: var(--kt-muted); }
.vc-contacts .kt-form form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.vc-contacts .kt-form .vt-form__row { grid-column: 1 / -1; }
.vc-contacts .kt-form .vt-form__row:has(> input[type=text], > input[type=tel], > input[type=email]) { grid-column: auto; }
.vc-contacts .kt-form .vt-form__row input[type=tel] { width: 100%; max-width: none; }
.vc-contacts .kt-form .vt-form__row label { font-size: 14px; }
.vc-contacts .kt-form button { justify-self: start; }
@media (max-width: 1024px) {
    .vc-contacts .kt-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vc-contacts .kt-main, .vc-contacts .kt-form { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .vc-contacts .kt-grid--3, .vc-contacts .kt-grid--2, .vc-contacts .kt-form form { grid-template-columns: minmax(0, 1fr); }
    .vc-contacts .kt-lead { font-size: 16px; }
}
.vc-contacts .i-pin { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21Z%22/%3E%3Ccircle cx=%2212%22 cy=%229.5%22 r=%222.5%22/%3E%3C/svg%3E"); }
.vc-contacts .i-phone { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h3.5l1.7 4.3-2.2 1.4a11 11 0 0 0 6.3 6.3l1.4-2.2L20 15.5V19a1.5 1.5 0 0 1-1.6 1.5A16.5 16.5 0 0 1 3.5 5.6 1.5 1.5 0 0 1 5 4Z%22/%3E%3C/svg%3E"); }
.vc-contacts .i-mail { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%225.5%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22m3.5 7 8.5 6 8.5-6%22/%3E%3C/svg%3E"); }
.vc-contacts .i-clock { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%228.5%22/%3E%3Cpath d=%22M12 7.5V12l3 2%22/%3E%3C/svg%3E"); }
.vc-contacts .i-globe { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%228.5%22/%3E%3Cpath d=%22M3.5 12h17M12 3.5c2.5 2.6 3.5 5.4 3.5 8.5s-1 5.9-3.5 8.5c-2.5-2.6-3.5-5.4-3.5-8.5s1-5.9 3.5-8.5Z%22/%3E%3C/svg%3E"); }
.vc-contacts .kt-ico--box { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%236fa531%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3.5 7.5 12 3l8.5 4.5v9L12 21l-8.5-4.5v-9Z%22/%3E%3Cpath d=%22M3.5 7.5 12 12l8.5-4.5M12 12v9%22/%3E%3C/svg%3E"); }
.vc-contacts .kt-ico--office { --i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%236fa531%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%223.5%22 width=%2214%22 height=%2217%22 rx=%221.5%22/%3E%3Cpath d=%22M9 7.5h2M13 7.5h2M9 11h2M13 11h2M9 14.5h2M13 14.5h2M10.5 20.5v-3h3v3%22/%3E%3C/svg%3E"); }
.vc-contacts .kt-form__intro h2 { margin-bottom: 12px; } .vc-contacts .kt-form__intro p { line-height: 1.6; }

/* ---------- Отзывы: кнопка «Написать отзыв» и форма ---------- */
.vc-review-btn { display: inline-flex !important; align-items: center; justify-content: center; margin: 0 0 24px; text-decoration: none !important; }
.vt-form-block--review { max-width: 760px; scroll-margin-top: 90px; }

/* Старые тексты Битрикса оформлены блоками <pre>: переносим строки, шрифт как у текста (иначе страница шире экрана) */
.vc-body pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; margin: 0 0 12px; }
