}
/* ===========================================================
 * WooCommerce — Tilda-стиль для каталога и карточки товара
 * =========================================================== */

/* Базовый шрифт Onest подхватится из tilda-blocks-page57997723 (загружается главной).
 * Для надёжности — явно укажем семейство во всех WC-областях. */
body .jvis-wc-archive,
body .jvis-wc-single,
.woocommerce-page {
    font-family: 'Onest', 'OnestThin', Arial, sans-serif !important;
    color: #000;
}

/* Внутренний контейнер */
body .jvis-wc-archive__inner,
body .jvis-wc-single__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 40px;
}
@media (max-width: 640px) {
    .jvis-wc-archive__inner,
    .jvis-wc-single__inner {
        padding: 40px 20px;
    }
}

/* Заголовок страницы (Каталог/«Shop») */
body .jvis-wc-archive .woocommerce-products-header__title,
body .jvis-wc-archive h1.page-title {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 28px !important;
    letter-spacing: 0.5px;
    margin: 0 0 8px;
    color: #000;
    text-transform: none;
}

/* Результат "Отображение 1-12 из 41" */
body .jvis-wc-archive .woocommerce-result-count {
    font-weight: 300;
    font-size: 12px;
    color: #777;
    margin-bottom: 24px;
}

/* Селектор сортировки — Tilda style */
body .jvis-wc-archive .woocommerce-ordering select {
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    font-size: 13px;
    border: none;
    border-bottom: 1px solid #000;
    border-radius: 0;
    padding: 4px 18px 4px 0;
    background: transparent;
    color: #000;
}

/* Сетка товаров — 3 колонки на десктоп, 2 — на планшете, 1 — на мобиле */
body .jvis-wc-archive ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 24px;
    list-style: none;
    margin: 32px 0 0;
    padding: 0;
}
@media (max-width: 980px) {
    .jvis-wc-archive ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .jvis-wc-archive ul.products { grid-template-columns: 1fr; }
}
body .jvis-wc-archive ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    float: none !important;
}
body .jvis-wc-archive ul.products li.product::before,
body .jvis-wc-archive ul.products li.product::after { display: none; }

/* Картинка товара */
body .jvis-wc-archive ul.products li.product a img {
    width: 100%;
    height: auto;
    margin-bottom: 14px;
    display: block;
}

/* Название товара */
body .jvis-wc-archive ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    color: #000 !important;
    text-decoration: none !important;
    padding: 0 !important;
    margin: 0 0 4px !important;
    text-transform: none !important;
    line-height: 1.4;
}
body .jvis-wc-archive ul.products li.product a {
    text-decoration: none !important;
    color: #000 !important;
}

/* Цена */
body .jvis-wc-archive ul.products li.product .price {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    color: #000 !important;
    margin: 0 0 10px;
}
body .jvis-wc-archive .price ins,
body .jvis-wc-archive .price bdi {
    font-weight: 300 !important;
    text-decoration: none !important;
    color: #000;
}

/* Кнопка "Выберите параметры" / "В корзину" — Tilda style */
body .jvis-wc-archive ul.products li.product a.button {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 12px !important;
    letter-spacing: 0.5px;
    text-transform: none !important;
    color: #000 !important;
    background: transparent !important;
    border: 1px solid #000 !important;
    border-radius: 0 !important;
    padding: 10px 18px !important;
    display: inline-block;
    margin-top: 6px;
    transition: all 0.2s;
}
body .jvis-wc-archive ul.products li.product a.button:hover {
    background: #000 !important;
    color: #fff !important;
}

/* Пагинация */
body .jvis-wc-archive nav.woocommerce-pagination {
    margin-top: 60px;
    text-align: center;
}
body .jvis-wc-archive nav.woocommerce-pagination ul {
    border: none !important;
    display: inline-flex;
    gap: 6px;
}
body .jvis-wc-archive nav.woocommerce-pagination ul li {
    border: none !important;
}
body .jvis-wc-archive nav.woocommerce-pagination ul li a,
body .jvis-wc-archive nav.woocommerce-pagination ul li span {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    color: #000 !important;
    background: transparent !important;
    border: 1px solid #ddd !important;
    border-radius: 0 !important;
    padding: 8px 12px !important;
    min-width: auto !important;
    line-height: 1 !important;
}
body .jvis-wc-archive nav.woocommerce-pagination ul li span.current {
    border-color: #000 !important;
    background: #000 !important;
    color: #fff !important;
}

/* ============== Single product ============== */

/* Контейнер карточки — 2 колонки */
body .jvis-wc-single .product {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 768px) {
    .jvis-wc-single .product { grid-template-columns: 1fr; gap: 24px; }
}

body .jvis-wc-single .woocommerce-product-gallery {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    opacity: 1 !important;
}
body .jvis-wc-single .woocommerce-product-gallery img {
    width: 100% !important;
    height: auto;
}
body .jvis-wc-single .woocommerce-product-gallery__trigger {
    display: none !important;
}
body .jvis-wc-single .summary {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* Заголовок товара */
body .jvis-wc-single .product_title {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 24px !important;
    color: #000 !important;
    text-transform: none !important;
    margin: 0 0 16px !important;
    line-height: 1.3;
}

/* Цена */
body .jvis-wc-single .price {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 18px !important;
    color: #000 !important;
    margin: 0 0 24px !important;
}
body .jvis-wc-single .price ins,
body .jvis-wc-single .price bdi { color: #000 !important; text-decoration: none !important; }

/* Описание под ценой */
body .jvis-wc-single .woocommerce-product-details__short-description,
body .jvis-wc-single .product_meta {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    color: #333;
    line-height: 1.6;
}

/* Селект Размер */
body .jvis-wc-single table.variations {
    margin-bottom: 24px;
}
body .jvis-wc-single table.variations th,
body .jvis-wc-single table.variations td {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    padding: 8px 0 !important;
    border: none !important;
    background: transparent !important;
}
body .jvis-wc-single table.variations select {
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    font-size: 13px;
    border: none;
    border-bottom: 1px solid #000;
    border-radius: 0;
    padding: 4px 18px 4px 0;
    background: transparent;
    width: 100%;
    color: #000;
}

/* Кнопка В корзину */
body .jvis-wc-single .single_add_to_cart_button,
body .jvis-wc-single button.button.alt {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
    text-transform: none !important;
    color: #fff !important;
    background: #000 !important;
    border: 1px solid #000 !important;
    border-radius: 0 !important;
    padding: 12px 28px !important;
    box-shadow: none !important;
    transition: all 0.2s;
    height: 45px;
}
body .jvis-wc-single .single_add_to_cart_button:hover {
    background: #fff !important;
    color: #000 !important;
}
body .jvis-wc-single input.qty {
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    border: 1px solid #000 !important;
    border-radius: 0 !important;
    height: 45px;
    width: 60px;
    text-align: center;
}

/* Категория, артикул */
body .jvis-wc-single .product_meta {
    margin-top: 24px;
    border-top: 1px solid #eee;
    padding-top: 16px;
    font-size: 12px;
    color: #777;
}
body .jvis-wc-single .product_meta a {
    color: #000 !important;
    text-decoration: none !important;
    border-bottom: 1px solid #000;
}

/* Табы Описание/Детали/Отзывы */
body .jvis-wc-single .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 60px;
    border-top: 1px solid #eee;
    padding-top: 32px;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs {
    border: none !important;
    padding: 0 !important;
    margin: 0 0 24px !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs::before { display: none !important; }
body .jvis-wc-single .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 24px 0 0 !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li a {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    color: #777 !important;
    text-decoration: none !important;
    padding: 6px 0 !important;
    text-transform: none !important;
    border-bottom: 1px solid transparent !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li.active a,
body .jvis-wc-single .woocommerce-tabs ul.tabs li a:hover {
    color: #000 !important;
    border-bottom: 1px solid #C19099 !important;
}
body .jvis-wc-single .woocommerce-tabs .panel h2 {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 18px !important;
    margin: 0 0 16px !important;
}
body .jvis-wc-single .woocommerce-tabs .panel {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    line-height: 1.6;
    color: #333;
}

/* Похожие */
body .jvis-wc-single .related.products,
body .jvis-wc-single .upsells.products {
    grid-column: 1 / -1;
    margin-top: 60px;
}
body .jvis-wc-single .related.products h2,
body .jvis-wc-single .upsells.products h2 {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 18px !important;
    margin: 0 0 24px !important;
}
body .jvis-wc-single .related ul.products,
body .jvis-wc-single .upsells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}
@media (max-width: 980px) {
    .jvis-wc-single .related ul.products,
    .jvis-wc-single .upsells ul.products { grid-template-columns: repeat(2, 1fr); }
}
body .jvis-wc-single .related ul.products li.product,
body .jvis-wc-single .upsells ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    float: none !important;
}
body .jvis-wc-single .related li.product .woocommerce-loop-product__title,
body .jvis-wc-single .upsells li.product .woocommerce-loop-product__title {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    color: #000 !important;
    text-decoration: none !important;
    margin: 0 0 4px !important;
}
body .jvis-wc-single .related li.product .price,
body .jvis-wc-single .upsells li.product .price {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 12px !important;
    color: #000 !important;
    margin: 0 0 8px;
}
body .jvis-wc-single .related li.product a.button,
body .jvis-wc-single .upsells li.product a.button {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 11px !important;
    color: #000 !important;
    background: transparent !important;
    border: 1px solid #000 !important;
    border-radius: 0 !important;
    padding: 8px 14px !important;
    text-transform: none !important;
}
body .jvis-wc-single .related li.product a.button:hover,
body .jvis-wc-single .upsells li.product a.button:hover {
    background: #000 !important;
    color: #fff !important;
}
body .jvis-wc-single .related li.product a,
body .jvis-wc-single .upsells li.product a {
    text-decoration: none !important;
    color: #000 !important;
}


/* Дополнительные фиксы кнопки "В корзину" — WC ставит background-image gradient */
body .jvis-wc-single .single_add_to_cart_button,
body .jvis-wc-single button.button.alt {
    background-image: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
}
body .jvis-wc-single .single_add_to_cart_button:hover {
    background-image: none !important;
}

/* Внутренний padding у блока quantity */
body .jvis-wc-single .quantity {
    margin-right: 8px;
}

/* Заголовок "Похожие" по центру */
body .jvis-wc-single .related.products h2,
body .jvis-wc-single .upsells.products h2 {
    text-align: left;
}

/* Архив: если первый ряд пустоват — гарантируем 3 колонки */
body .jvis-wc-archive ul.products.columns-3,
body .jvis-wc-archive ul.products.columns-4 {
    grid-template-columns: repeat(3, 1fr) !important;
}

/* WC 10.x по умолчанию ставит li.product display:grid в related/upsells/shop.
 * Это рассыпает наши карточки — img/title/btn становятся grid items.
 * Принудительно делаем li.product блочным, чтобы внутренний контент шёл колонкой. */
body .jvis-wc-archive ul.products li.product,
body .jvis-wc-single ul.products li.product,
body .jvis-wc-single .related ul.products li.product,
body .jvis-wc-single .upsells ul.products li.product {
    display: block !important;
}

/* Кнопка В корзину — стиль для disabled state (когда вариант не выбран) */
body .jvis-wc-single .single_add_to_cart_button.disabled,
body .jvis-wc-single .single_add_to_cart_button.wc-variation-selection-needed,
body .jvis-wc-single .single_add_to_cart_button[disabled],
body .jvis-wc-single button.single_add_to_cart_button.disabled,
body .jvis-wc-single button.single_add_to_cart_button[disabled] {
    background: #999 !important;
    background-image: none !important;
    color: #fff !important;
    border-color: #999 !important;
    cursor: not-allowed;
    opacity: 1 !important;
}
body .jvis-wc-single .single_add_to_cart_button:not(.disabled):not(.wc-variation-selection-needed):not([disabled]) {
    background: #000 !important;
    background-image: none !important;
    color: #fff !important;
    border-color: #000 !important;
}

/* ===========================================================
 * Tilda-каталог 1:1 — горизонтальная навигация + edge-to-edge
 * =========================================================== */

/* Навигация по категориям — стилизована как меню категорий журнала
 * (Figma node 268:2) — лёгкий шрифт, без верхнего бордера, выровнено слева. */
body .jvis-cat-nav {
    width: 100%;
    background: #fff;
    margin-top: 36px; /* gap от крошек/заголовка */
}
body .jvis-cat-nav__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 56px;
    overflow-x: auto;
}
body .jvis-cat-nav__item {
    font-family: 'Onest', sans-serif !important;
    font-weight: 200 !important;
    font-size: 13px !important;
    color: #8c8888 !important;
    text-decoration: none !important;
    padding: 8px 0 !important;
    white-space: nowrap;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
    display: inline-block;
}
body .jvis-cat-nav__item:hover {
    color: #000 !important;
}
body .jvis-cat-nav__item.is-active {
    color: #000 !important;
    border-bottom-color: #000;
}
@media (max-width: 768px) {
    body .jvis-cat-nav__inner { padding: 0 20px; gap: 24px; }
}

/* Сетка edge-to-edge, без max-width */
body .jvis-wc-archive {
    padding: 0 !important;
}
body .jvis-wc-archive__inner {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Скрыть стандартный WC-заголовок "Shop" и счётчик + сортировка (Tilda их не имеет) */
body .jvis-wc-archive .woocommerce-products-header,
body .jvis-wc-archive .woocommerce-result-count,
body .jvis-wc-archive .woocommerce-ordering {
    display: none !important;
}

/* Сетка товаров — 3 колонки на десктоп, edge-to-edge, минимальный gap */
body .jvis-wc-archive ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2px !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (max-width: 980px) {
    body .jvis-wc-archive ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
    body .jvis-wc-archive ul.products { grid-template-columns: 1fr !important; }
}

/* Карточка товара в каталоге */
body .jvis-wc-archive ul.products li.product {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}
body .jvis-wc-archive ul.products li.product a img {
    width: 100% !important;
    height: auto !important;
    display: block;
    margin: 0 !important;
}

/* Под фото: только название, без цены и кнопки (как у Tilda) */
body .jvis-wc-archive ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    color: #000 !important;
    margin: 16px 0 30px !important;
    padding: 0 8px !important;
    text-align: left;
    line-height: 1.4;
}
/* Скрываем цену и кнопку в каталоге */
body .jvis-wc-archive ul.products li.product .price,
body .jvis-wc-archive ul.products li.product .button,
body .jvis-wc-archive ul.products li.product .added_to_cart {
    display: none !important;
}

/* Пагинация — центр, отступ снизу */
body .jvis-wc-archive nav.woocommerce-pagination {
    margin: 60px 0 80px;
    padding: 0 40px;
}

/* Скрыть h1.page-title на странице каталога — Tilda не показывает заголовок "Shop" */
body .jvis-wc-archive h1.page-title,
body .jvis-wc-archive .entry-title {
    display: none !important;
}

/* Сброс float/clear/margin для всех li — иначе .first из старого WC ломает grid */
body .jvis-wc-archive ul.products li.product,
body .jvis-wc-archive ul.products li.product.first,
body .jvis-wc-archive ul.products li.product.last {
    clear: none !important;
    float: none !important;
    margin: 0 !important;
    grid-column-start: auto !important;
}

/* WC default ставит ul.products::before и ::after как clearfix (display:table).
 * В grid эти псевдоэлементы занимают первые ячейки, сдвигая контент.
 * Полностью убираем. */
body .jvis-wc-archive ul.products::before,
body .jvis-wc-archive ul.products::after,
body .jvis-wc-single ul.products::before,
body .jvis-wc-single ul.products::after {
    display: none !important;
    content: none !important;
}

/* Цена под названием — показываем, как у Tilda */
body .jvis-wc-archive ul.products li.product .price {
    display: block !important;
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    color: #000 !important;
    margin: 0 0 30px !important;
    padding: 0 8px !important;
    text-align: left;
}
body .jvis-wc-archive ul.products li.product .price bdi,
body .jvis-wc-archive ul.products li.product .price ins,
body .jvis-wc-archive ul.products li.product .price .amount {
    font-weight: 300 !important;
    color: #000 !important;
    text-decoration: none !important;
}
/* Меньше отступ между названием и ценой */
body .jvis-wc-archive ul.products li.product .woocommerce-loop-product__title {
    margin: 16px 0 4px !important;
}

/* ===========================================================
 * Карточка товара 1:1 с Tilda: breadcrumbs + size кнопки
 * =========================================================== */

/* Breadcrumbs */
body .jvis-breadcrumbs {
    width: 100%;
    background: #fff;
    padding: 24px 40px 0;
    border: none;
}
body .jvis-breadcrumbs__inner {
    max-width: none;
    text-align: left;
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    font-size: 13px;
    color: #777;
}
body .jvis-breadcrumbs a {
    color: #000 !important;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}
body .jvis-breadcrumbs a:hover {
    color: #C19099 !important;
}
body .jvis-breadcrumbs__sep {
    color: #777;
    padding: 0 4px;
}

/* Контейнер single — раcширить до полной ширины как у Tilda */
body .jvis-wc-single__inner {
    max-width: none !important;
    padding: 40px !important;
}

/* Размер в виде кнопок */
body .jvis-size-buttons {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}
body .jvis-size-btn {
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    font-size: 13px;
    background: #fff;
    color: #000;
    border: 1px solid #ddd;
    border-radius: 0;
    padding: 8px 18px;
    cursor: pointer;
    transition: all 0.15s;
}
body .jvis-size-btn:hover {
    border-color: #000;
}
body .jvis-size-btn.is-active {
    border-color: #C19099;
    color: #C19099;
}

/* Скрыть стандартный селектор размера WC если js не отработал — лучше показать чем сломать */

/* Удалить ссылку "Очистить" под кнопками */
body .jvis-wc-single .reset_variations {
    display: none !important;
}

/* Содержимое вкладок */
body .jvis-tab-content {
    font-family: 'Onest', sans-serif;
    font-weight: 300;
    font-size: 14px;
    color: #333;
    line-height: 1.6;
}
body .jvis-tab-content p { margin: 0 0 12px; }
body .jvis-tab-content ul.jvis-care-list { list-style: none; padding: 0; margin: 0; }
body .jvis-tab-content ul.jvis-care-list li { padding: 2px 0; }

/* Обмеры — строки вида "XS/S: ..." с подчёркнутым лейблом */
body .jvis-tab-content .jvis-size-row {
    margin: 0 0 16px;
}
body .jvis-tab-content .jvis-size-row:last-child { margin-bottom: 0; }
body .jvis-size-label {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ===========================================================
 * Single product 1:1 с Tilda — финальные правки
 * =========================================================== */

/* Контейнер карточки центрирован, не edge-to-edge */
body .jvis-wc-single {
    padding: 0 !important;
}
body .jvis-wc-single__inner {
    max-width: 1200px !important;
    padding: 40px !important;
    margin: 0 auto !important;
}
body .jvis-breadcrumbs__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 0;
}
body .jvis-breadcrumbs {
    padding: 24px 40px 0;
}

/* Артикул под названием */
body .jvis-sku-line {
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    color: #777 !important;
    margin: -8px 0 16px !important;
}
body .jvis-sku-line .jvis-sku-value {
    color: #000;
}

/* Кнопка В корзину — на всю ширину правой колонки */
body .jvis-wc-single form.cart {
    display: flex !important;
    gap: 8px;
    align-items: stretch;
    margin-bottom: 32px;
}
body .jvis-wc-single form.cart .quantity {
    flex-shrink: 0;
}
body .jvis-wc-single .single_add_to_cart_button {
    flex: 1 1 auto;
    width: auto !important;
    min-height: 45px;
}

/* Табы — теперь внутри summary справа от фото */
body .jvis-wc-single .summary .woocommerce-tabs {
    grid-column: auto !important;
    margin-top: 8px !important;
    padding-top: 0 !important;
    border-top: none !important;
}

/* Сетка остаётся 2 колонки, табы и related — full-width внизу */
body .jvis-wc-single div.product {
    display: grid !important;
    grid-template-columns: 3fr 2fr !important;
    grid-template-areas:
        "gallery summary"
        "related related"
        "upsells upsells" !important;
    gap: 48px !important;
    align-items: start !important;
}
body .jvis-wc-single .woocommerce-product-gallery { grid-area: gallery !important; }
body .jvis-wc-single .summary { grid-area: summary !important; }
body .jvis-wc-single .related { grid-area: related !important; }
body .jvis-wc-single .upsells { grid-area: upsells !important; }

@media (max-width: 768px) {
    body .jvis-wc-single div.product {
        grid-template-columns: 1fr !important;
        grid-template-areas: "gallery" "summary" "related" "upsells" !important;
    }
}

/* Селектор размера: заголовок справа от кнопок (inline) */
body .jvis-wc-single table.variations {
    margin: 16px 0 8px;
    width: 100%;
}
body .jvis-wc-single table.variations tbody {
    display: flex;
    align-items: center;
    gap: 24px;
}
body .jvis-wc-single table.variations tr {
    display: contents;
}
body .jvis-wc-single table.variations th.label {
    width: auto !important;
    padding: 0 !important;
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    color: #000 !important;
}
body .jvis-wc-single table.variations td.value {
    padding: 0 !important;
}

/* Подсветка активного размера — розовая как у Tilda */
body .jvis-size-btn.is-active {
    border-color: transparent !important;
    border-bottom: 1px solid #C19099 !important;
    color: #C19099 !important;
    background: transparent !important;
    padding: 8px 12px !important;
}
body .jvis-size-btn {
    border: 1px solid transparent;
    border-bottom: 1px solid #ddd;
    padding: 8px 12px;
    background: transparent;
}
body .jvis-size-btn:hover {
    border-bottom-color: #000 !important;
}

/* Скрыть "X в наличии" — у Tilda этого нет */
body .jvis-wc-single .stock,
body .jvis-wc-single .availability {
    display: none !important;
}

/* Скрыть quantity input — Tilda не имеет qty, добавляет 1 шт */
body .jvis-wc-single form.cart .quantity {
    display: none !important;
}
/* Кнопка В корзину/Купить — белая с border, на всю ширину */
body .jvis-wc-single form.cart {
    display: block !important;
}
body .jvis-wc-single .single_add_to_cart_button,
body .jvis-wc-single button.single_add_to_cart_button:not(.disabled):not(.wc-variation-selection-needed):not([disabled]) {
    width: 100% !important;
    background: #fff !important;
    background-image: none !important;
    color: #000 !important;
    border: 1px solid #000 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    height: 48px;
    padding: 0 !important;
}
body .jvis-wc-single .single_add_to_cart_button:hover {
    background: #000 !important;
    color: #fff !important;
}
/* В disabled — серый бордер, но белый фон */
body .jvis-wc-single .single_add_to_cart_button.disabled,
body .jvis-wc-single .single_add_to_cart_button.wc-variation-selection-needed,
body .jvis-wc-single .single_add_to_cart_button[disabled] {
    width: 100% !important;
    background: #fff !important;
    color: #999 !important;
    border-color: #ddd !important;
}

/* Текст кнопки "Купить" вместо "В корзину" (как Tilda) */

/* Breadcrumbs теперь внутри summary — не full-width */
body .jvis-wc-single .summary .jvis-breadcrumbs {
    padding: 0 !important;
    margin: 0 0 16px !important;
    border: none !important;
    background: transparent !important;
}
body .jvis-wc-single .summary .jvis-breadcrumbs__inner {
    max-width: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
}

/* ===========================================================
 * Финальные правки совпадения с Tilda
 * =========================================================== */

/* Большой отступ между breadcrumbs и названием */
body .jvis-wc-single .summary .jvis-breadcrumbs {
    margin: 0 0 80px !important;
}

/* Размер: → с двоеточием */
body .jvis-wc-single table.variations th.label label::after {
    content: ':';
}
body .jvis-wc-single table.variations th.label {
    margin-right: 4px;
}

/* Скрыть подзаголовок "Описание" внутри таба — WC выводит <h2>Description</h2> */
body .jvis-wc-single .woocommerce-Tabs-panel--description h2,
body .jvis-wc-single .woocommerce-tabs .panel h2:first-child {
    display: none !important;
}

/* Табы — одна общая линия снизу + короткое подчёркивание под активной */
body .jvis-wc-single .woocommerce-tabs ul.tabs {
    display: flex !important;
    justify-content: space-between;
    border-bottom: 1px solid #ddd !important;
    padding: 0 0 0 !important;
    margin: 32px 0 32px !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li {
    flex: 1;
    text-align: center;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li a {
    display: inline-block;
    position: relative;
    padding: 12px 8px !important;
    border: none !important;
    color: #777 !important;
    font-weight: 300 !important;
    font-size: 14px !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li.active a {
    color: #C19099 !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li.active a::after {
    content: '';
    position: absolute;
    left: 30%;
    right: 30%;
    bottom: -1px;
    height: 1px;
    background: #C19099;
}

/* Большой отступ сверху у контента таба */
body .jvis-wc-single .woocommerce-tabs .panel {
    padding-top: 16px;
}

/* Жёсткий сброс border-bottom у всех табов — оставляем подчёркивание только через ::after */
body .jvis-wc-single .woocommerce-tabs ul.tabs li a,
body .jvis-wc-single .woocommerce-tabs ul.tabs li.active a,
body .jvis-wc-single .woocommerce-tabs ul.tabs li a:hover {
    border-bottom: none !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li:not(.active) a::after {
    display: none !important;
    content: none !important;
}
/* Активный таб — розовый текст и подчёркивание короткое снизу */
body .jvis-wc-single .woocommerce-tabs ul.tabs li.active a {
    color: #C19099 !important;
}
body .jvis-wc-single .woocommerce-tabs ul.tabs li:not(.active) a {
    color: #000 !important;
}

/* WC default ::before/::after на каждом <li class="*_tab"> создают 5x5 серые уголки.
 * Убираем полностью. */
body .jvis-wc-single .woocommerce-tabs ul.tabs li::before,
body .jvis-wc-single .woocommerce-tabs ul.tabs li::after {
    display: none !important;
    content: none !important;
    border: none !important;
}
/* и ::before/::after на ul tabs - убираем тоже */
body .jvis-wc-single .woocommerce-tabs ul.tabs::before,
body .jvis-wc-single .woocommerce-tabs ul.tabs::after {
    display: none !important;
    content: none !important;
    border: none !important;
}

/* Кнопка "Уведомить о наличии" — точно как "Купить" (Tilda стиль) */
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
    cursor: pointer !important;
    opacity: 1 !important;
}
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button:hover {
    background: #000 !important;
    color: #fff !important;
}

/* Скрыть сообщение "Этот товар недоступен" / "Sorry no products matched" под формой,
 * чтобы не дублировалось с кнопкой */
body .jvis-wc-single .stock.out-of-stock,
body .jvis-wc-single p.no-products {
    display: none !important;
}

/* Усиленная специфичность для notify button — перебивает .disabled */
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button.disabled,
body .jvis-wc-single button.single_add_to_cart_button.jvis-notify-button,
body .jvis-wc-single button.single_add_to_cart_button.jvis-notify-button.disabled,
body .jvis-wc-single button.single_add_to_cart_button.jvis-notify-button.wc-variation-is-unavailable {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button:hover {
    background: #000 !important;
    color: #fff !important;
}

/* Унификация размера кнопки во всех состояниях — иначе при out-of-stock кнопка прыгает */
body .jvis-wc-single .single_add_to_cart_button,
body .jvis-wc-single .single_add_to_cart_button.disabled,
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button,
body .jvis-wc-single .single_add_to_cart_button.jvis-notify-button.disabled,
body .jvis-wc-single button.single_add_to_cart_button {
    height: 48px !important;
    min-height: 48px !important;
    line-height: 46px !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
    border-width: 1px !important;
    font-size: 14px !important;
    font-weight: 300 !important;
}

/* Hover zoom отключён — фото не увеличиваются при наведении */
body .jvis-wc-single .woocommerce-product-gallery img {
    transform: none !important;
    transition: none !important;
}
body .jvis-wc-single .woocommerce-product-gallery:hover img {
    transform: none !important;
}

/* ===========================================================
 * Галерея товара: мини-thumbnails снизу + стрелки навигации
 * =========================================================== */

/* FlexSlider main image */
body .jvis-wc-single .woocommerce-product-gallery .flex-viewport {
    overflow: hidden;
    position: relative;
}

/* Стрелки prev/next поверх главного фото */
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 10;
    pointer-events: none;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav li {
    position: absolute;
    top: 0;
    margin: 0 !important;
    padding: 0 !important;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 16px; }
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav .flex-next { right: 16px; }
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,0.85);
    color: #000 !important;
    text-decoration: none !important;
    font-size: 0;
    opacity: 0;
    transition: opacity 0.2s, background 0.2s;
    pointer-events: auto;
    border-radius: 50%;
}
body .jvis-wc-single .woocommerce-product-gallery:hover .flex-direction-nav a {
    opacity: 1;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav a:hover {
    background: rgba(255,255,255,1);
}
body .jvis-wc-single .woocommerce-product-gallery .flex-prev::before {
    content: '';
    width: 10px;
    height: 10px;
    border-left: 1px solid #000;
    border-bottom: 1px solid #000;
    transform: rotate(45deg);
    margin-left: 4px;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-next::before {
    content: '';
    width: 10px;
    height: 10px;
    border-right: 1px solid #000;
    border-top: 1px solid #000;
    transform: rotate(45deg);
    margin-right: 4px;
}

/* Мини-галерея thumbnails снизу */
body .jvis-wc-single .woocommerce-product-gallery .flex-control-thumbs {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 12px 0 0 !important;
    padding: 0 !important;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-control-thumbs li {
    flex: 0 0 calc((100% - 8px * 5) / 6); /* 6 на ряд, компактнее */
    aspect-ratio: 1 / 1;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    background: #f5f5f5;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    object-position: center;
    display: block;
    opacity: 1 !important;
    cursor: pointer;
    transition: outline 0.2s;
    outline: 1px solid transparent;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-control-thumbs li img:hover,
body .jvis-wc-single .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    outline: 1px solid #C19099;
}

/* Убираем "наследие" hover-scale внутри slider — иначе при скольжении дёргается */
body .jvis-wc-single .woocommerce-product-gallery .flex-viewport img:hover {
    transform: none !important;
}

/* FlexSlider управляет видимостью слайдов сам — наш CSS не вмешивается */
body .jvis-wc-single .flexslider .woocommerce-product-gallery__wrapper {
    margin: 0;
    padding: 0;
    list-style: none;
}
/* slides внутри flexslider — float и width задаёт FlexSlider, не трогаем */

/* Стрелки навигации — теперь покажем (FlexSlider их генерит) */
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav {
    display: block !important;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    height: 0;
}
body .jvis-wc-single .woocommerce-product-gallery .flex-direction-nav li a {
    display: flex !important;
}

/* ===========================================================
 * Кастомные стрелки навигации галереи (всегда видимы)
 * =========================================================== */
body .jvis-wc-single .woocommerce-product-gallery {
    position: relative;
}
body .jvis-wc-single .jvis-gallery-nav {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}
body .jvis-wc-single .jvis-gallery-nav__btn {
    position: absolute;
    top: 50%;
    margin-top: -22px;
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,0.85);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    pointer-events: auto;
    padding: 0;
    transition: background 0.2s;
    font-family: Arial, sans-serif;
    font-size: 22px;
    line-height: 1;
    color: #000;
    text-align: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
body .jvis-wc-single .jvis-gallery-nav__btn:hover {
    background: #fff;
}
body .jvis-wc-single .jvis-gallery-nav__prev { left: 12px; }
body .jvis-wc-single .jvis-gallery-nav__next { right: 12px; }
body .jvis-wc-single .jvis-gallery-nav__btn span {
    display: inline;
    width: auto;
    height: auto;
    border: none !important;
    background: transparent !important;
    color: #000;
    font-size: 22px;
    font-weight: 300;
    line-height: 44px;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body .jvis-wc-single .jvis-gallery-nav__prev span::before { content: '‹'; }
body .jvis-wc-single .jvis-gallery-nav__next span::before { content: '›'; }

/* Каталог: каждая ячейка занимает свою высоту, не растягивается до соседних —
 * иначе у фото разной высоты название/цена прыгают и появляются "пустые поля". */
body .jvis-wc-archive ul.products li.product {
    align-self: start !important;
}

/* Каталог: все фото товаров одной высоты — пропорция 2:3 (cover, обрезка лишнего) */
body .jvis-wc-archive ul.products li.product a img {
    aspect-ratio: 2 / 3 !important;
    object-fit: cover !important;
    object-position: center top !important;
    height: auto !important;
    width: 100% !important;
}

/* Похожие/Upsells на карточке — те же правила что для каталога */
body .jvis-wc-single .related ul.products li.product a img,
body .jvis-wc-single .upsells ul.products li.product a img {
    aspect-ratio: 2 / 3 !important;
    object-fit: cover !important;
    object-position: center top !important;
    height: auto !important;
    width: 100% !important;
}
body .jvis-wc-single .related ul.products li.product,
body .jvis-wc-single .upsells ul.products li.product {
    align-self: start !important;
}
/* Скрыть кнопку "Выберите параметры" в Похожих — как в каталоге */
body .jvis-wc-single .related ul.products li.product a.button,
body .jvis-wc-single .upsells ul.products li.product a.button {
    display: none !important;
}

/* ============================================
 * Уведомления WooCommerce — Tilda-стиль
 * (на product/shop/cart страницах, везде где WC выводит messages)
 * ============================================ */
body .woocommerce-notices-wrapper .woocommerce-message,
body .woocommerce-notices-wrapper .woocommerce-info,
body .woocommerce-notices-wrapper .woocommerce-error,
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
    background: #fff !important;
    border: 1px solid #d9d9d9 !important;
    border-top: 1px solid #d9d9d9 !important;
    padding: 18px 24px !important;
    margin: 0 0 24px !important;
    font-family: 'Onest', sans-serif !important;
    font-weight: 200 !important;
    font-size: 14px !important;
    color: #000 !important;
    list-style: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    line-height: 1.4 !important;
    outline: none !important;
}
body .woocommerce-notices-wrapper .woocommerce-message:focus,
body .woocommerce-notices-wrapper .woocommerce-info:focus,
body .woocommerce-notices-wrapper .woocommerce-error:focus,
body .woocommerce-message:focus,
body .woocommerce-info:focus,
body .woocommerce-error:focus {
    outline: none !important;
    border-color: #000 !important;
}
/* Прячем дефолтные WC-иконки (восклицательный знак, галочки и т.д.) */
body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before,
body .woocommerce-notices-wrapper .woocommerce-message::before,
body .woocommerce-notices-wrapper .woocommerce-info::before,
body .woocommerce-notices-wrapper .woocommerce-error::before {
    display: none !important;
}
/* Кнопки внутри уведомления (например "Просмотр корзины") — прижимаем к правому краю */
body .woocommerce-message .button,
body .woocommerce-info .button,
body .woocommerce-error .button,
body .woocommerce-message a.wc-forward,
body .woocommerce-info a.wc-forward {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
    padding: 10px 24px !important;
    font-family: 'Onest', sans-serif !important;
    font-weight: 300 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: background 0.2s, border-color 0.2s !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-left: auto !important;
    flex-shrink: 0 !important;
}
body .woocommerce-message .button:hover,
body .woocommerce-info .button:hover,
body .woocommerce-error .button:hover,
body .woocommerce-message a.wc-forward:hover,
body .woocommerce-info a.wc-forward:hover {
    background: #d5b6bb !important;
    border-color: #d5b6bb !important;
    color: #000 !important;
}
/* Список ошибок */
body .woocommerce-error li {
    margin: 0 !important;
    list-style: none !important;
}
