/* 2s karta2 — задача 13 (25.09.2026) */
/* Колонки: фото 7/12 на десктопе; фото липкое с планшета */
@media (min-width:769px){ /* 768 = одна колонка в теме, липкое фото там наезжало на форму (27.09) */
	html body .single-product-page .product-images{position:sticky;top:90px;align-self:start} /* top уточняет скрипт: фото выше окна сначала докручивается до низа */
}
/* Одна рамка 3:4 постоянного размера для всех цветов: фото заполняет её (лишнее — по бокам, изделие в центре),
   поэтому при смене цвета ничего не прыгает. Исходники разной формы: 608×762, 1200×1107, 1199×1594. */
html body .woocommerce-product-gallery .wd-gallery-thumb{display:none!important}
html body .woocommerce-product-gallery .woocommerce-product-gallery__image{width:100%!important;height:auto!important;aspect-ratio:3/4!important;margin:0!important;overflow:hidden;background:#F2F0ED}
html body .woocommerce-product-gallery .woocommerce-product-gallery__image > a{display:block!important;width:100%!important;height:100%!important}
html body .woocommerce-product-gallery .woocommerce-product-gallery__image img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover;object-position:50% 35%;cursor:zoom-in}
@media (max-width:767px){
	html body .single-product-page .product-images{margin-left:-15px;margin-right:-15px}
}
@media (min-width:1025px){
	/* Плотная пара «фото + описание» по центру: рамка по высоте окна, описание до 620 px рядом */
	html body .single-product-page .product-image-summary-inner{--k2s-w:min(calc((100vh - 130px) * .75), 46vw, 780px);grid-template-columns:var(--k2s-w) minmax(0,620px)!important;justify-content:center;column-gap:56px!important}
	html body .single-product-page .product-images,html body .single-product-page .summary.entry-summary{grid-column:auto!important;width:auto!important;max-width:none!important}
	html body .single-product-page .woocommerce-product-gallery,html body .single-product-page .woocommerce-product-gallery .wd-carousel-container,html body .single-product-page .woocommerce-product-gallery .wd-carousel-inner{width:var(--k2s-w)!important;max-width:var(--k2s-w)!important}
	/* кнопка увеличения не нужна: клик по фото открывает просмотр */
	html body .single-product-page .product-additional-galleries{display:none!important}
}

/* Подписи над вариантами: «Kolor: biały/niebieski», «Rozmiar: 80E»; строка Model скрыта (модель — в заголовке) */
html body .single-product-page .variations,html body .single-product-page .variations tbody,html body .single-product-page .variations tr,html body .single-product-page .variations th,html body .single-product-page .variations td{display:block!important;width:auto!important;padding:0!important;text-align:left!important}
html body .single-product-page .variations tr{margin:0 0 18px!important}
html body .single-product-page .variations th.label{margin:0 0 10px!important;font-size:16px!important;line-height:1.4!important}
html body .single-product-page .variations th.label label{font-weight:600!important}
html body .single-product-page .variations tr:has(#pa_model){display:none!important}
html body .single-product-page .variations .wd2s-kolor-name,.k2s-val{display:inline!important;position:static!important;margin:0 0 0 6px!important;font-size:16px!important;font-weight:400!important;color:var(--2s-text,#464646)!important;text-transform:none!important}

/* Круглые кружки цветов 40 px, выбранный — кольцо */
html body .wd-swatches-product[data-id="pa_kolor"]{display:flex;flex-wrap:wrap;gap:12px}
html body .wd-swatches-product[data-id="pa_kolor"] .wd-swatch{width:40px!important;height:40px!important;min-width:40px!important;border-radius:50%!important;padding:3px!important;border:1px solid transparent!important;background:none!important;box-shadow:none!important}
html body .wd-swatches-product[data-id="pa_kolor"] .wd-swatch .wd-swatch-bg{width:100%!important;height:100%!important;border-radius:50%!important;border:1px solid #d9d2cc;background-size:cover!important;background-position:center!important}
html body .wd-swatches-product[data-id="pa_kolor"] .wd-swatch.wd-active{border-color:var(--2s-ink,#2B2522)!important}
html body .wd-swatches-product[data-id="pa_kolor"] .wd-swatch:hover{border-color:#948c88!important}
html body .wd-swatches-product[data-id="pa_kolor"] .wd-swatch-text{display:none!important}

/* под «Rozmiar:» без лишнего отступа (2s-karta давал подписи min-height 44 px в старой раскладке) */
html body.single-product .variations tr.s2-has-sg>th.label>label{min-height:0!important;display:inline!important}

/* Липкая кнопка: подсветка раздела, к которому ведём; «Przejdź do kasy» — зелёная */
@keyframes k2sPulse{0%{box-shadow:0 0 0 0 rgba(157,43,43,.45)}100%{box-shadow:0 0 0 14px rgba(157,43,43,0)}}
.k2s-pulse{border-radius:10px;animation:k2sPulse 1s ease-out 2}
html body .wd-sticky-btn .wd-sticky-add-to-cart.k2s-go{background:var(--2s-ok,#2F6B4F)!important;border-color:var(--2s-ok,#2F6B4F)!important;color:#fff!important}

/* Задача 14: крупный образец ткани над кружком цвета (вместо чёрной подсказки темы) */
.k2s-tip{position:absolute;z-index:1000;pointer-events:none;background:var(--2s-paper,#fff);border:1px solid #BDB2AB;box-shadow:0 8px 24px rgba(43,37,34,.22);padding:8px 8px 10px;text-align:center;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.k2s-tip.on{opacity:1;transform:none}
.k2s-tip:not(.on){transition-duration:.6s;transition-timing-function:ease-out} /* появляется быстро, гаснет плавно (28.09) */
.k2s-tip.on.k2s-pin{pointer-events:auto;cursor:pointer} /* закреплённое превью ловит тап на себя, под ним ничего не нажимается */
.k2s-tip i{display:block;width:120px;height:120px;border-radius:6px;background-size:cover;background-position:center}
.k2s-tip b{display:block;margin-top:8px;font:500 15px/1.25 var(--2s-font,"DM Sans",Arial,sans-serif);color:var(--2s-ink,#2B2522)}
.k2s-tip s{display:block;margin-top:2px;font:14px var(--2s-font,"DM Sans",Arial,sans-serif);color:var(--2s-muted,#5C5450);text-decoration:none}
.k2s-tip s:empty{display:none}
.k2s-tip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-6px;width:10px;height:10px;background:var(--2s-paper,#fff);border-right:1px solid #BDB2AB;border-bottom:1px solid #BDB2AB;transform:translateX(-50%) rotate(45deg)}
/* Окно у верхнего края — под кружком, хвостик сверху */
.k2s-tip.k2s-below::after{bottom:auto;top:-6px;transform:translateX(-50%) rotate(225deg)}
.wd-swatches-product[data-id="pa_kolor"] .wd-swatch.k2s-notip::before,.wd-swatches-product[data-id="pa_kolor"] .wd-swatch.k2s-notip .wd-tooltip-label{display:none!important}
@media (prefers-reduced-motion:reduce){.k2s-tip{transition:none}}

/* Размер, которого нет ни в одном цвете — зачёркнут сразу, как недоступный (UX-прогулка 27.09) */
.wd-swatches-product[data-id="pa_rozmiar"] .wd-swatch.k2s-none{position:relative;opacity:.45}
.wd-swatches-product[data-id="pa_rozmiar"] .wd-swatch.k2s-none::after{content:"";position:absolute;left:12%;right:12%;top:50%;border-top:1px solid rgba(0,0,0,.55);transform:rotate(-12deg)}

/* 22 Мелочи карточки (27.09.2026) */
.k2s-tip i{box-shadow:inset 0 0 0 1px #D9D2CC}
/* Недоступный цвет не зачёркиваем и не гасим — пусть смотрят фото (п.4 заказчика, 28.09); «wyprzedany» — в превью ткани */
html body.single-product .wd-swatches-product[data-id="pa_kolor"] .wd-swatch.wd-disabled{opacity:1}
html body.single-product .wd-swatches-product[data-id="pa_kolor"] .wd-swatch.wd-disabled::after{display:none}
html body.single-product .wd-swatches-product[data-id="pa_kolor"] .wd-swatch.wd-active{box-shadow:inset 0 0 0 1px var(--2s-ink,#2B2522)!important} /* !important: выше по файлу у всех кружков box-shadow:none!important */
@media (max-width:768px){html body.single-product .summary-inner .single_add_to_cart_button{max-width:none}}
html body.single-product form.variations_form .wd2s-statusrow{margin-top:0!important;min-height:32px} /* form.: 2s-tokens (грузится позже) ставит 16px!important на ≥1025 */
html body.single-product .wd2s-statusrow .wd2s-hint{font-size:16px;color:var(--2s-ink,#2B2522)}

/* 24 Скачок вёрстки (27.09.2026): строку «наличие / подсказка» вставляет скрипт после загрузки — до этого держим под неё место (37,4 + 12 px) */
html body.single-product form.variations_form:not(:has(.wd2s-statusrow)) table.variations{margin-bottom:calc(20px + 49.4px)}

/* п.9 Увеличение фото (28.09.2026) */
.woocommerce-product-gallery__image{position:relative}
.k2s-lens{position:absolute;inset:0;z-index:2;pointer-events:none;background-color:var(--2s-paper,#fff);background-repeat:no-repeat;opacity:0;transition:opacity .2s}
.k2s-lens.on{opacity:1}
/* «+» в просмотре и на телефоне; крупнее и заметнее */
.pswp--zoom-allowed .pswp__button--zoom,.pswp--touch .pswp__button--zoom{display:block!important} /* PhotoSwipe прячет «+» на сенсорных — показываем */
.k2s-zhint{position:absolute;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));transform:translate(-50%,8px);z-index:1600;background:rgba(0,0,0,.72);color:var(--2s-on-brand,#fff);font:500 16px/1.35 var(--2s-font,"DM Sans",Arial,sans-serif);padding:10px 16px;border-radius:22px;width:max-content;max-width:calc(100% - 32px);text-align:center;opacity:0;transition:opacity .35s,transform .35s;pointer-events:none}
.k2s-zhint.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.k2s-lens,.k2s-zhint{transition:none}}

/* === 31 (29.09): распроданная модель и строка подсказки === */
/* До JS «Зоны покупки»: кнопка серая, как .wd2s-off (custom-css.css). После JS правит .wd2s-off; маркер «JS отработал» — .wd2s-kolor-name */
html body.wd2s-dead-ssr form.variations_form:not(:has(.wd2s-kolor-name)) .single_add_to_cart_button{background-color:#d8d0cc!important;border-color:#d8d0cc!important;color:#8a817d!important;cursor:not-allowed!important;box-shadow:none!important;pointer-events:none}
/* Пустой блок остатка + gap 8 px сдвигал подсказку вправо */
html body.single-product .wd2s-statusrow .wd2s-stock:not(:has(*)){display:none}
/* У распроданной «Wyczyść» невидима (opacity 0), но занимала 105 px и сжимала текст */
html body.single-product form.wd2s-dead .wd2s-statusrow .wd-reset-var{display:none}
