/* Страница товара */

.page-product-full,
.product-view-full,
.product-full {
    --product-image-w: 270px;
    --product-image-h: 270px;
    --product-image-max: var(--product-image-w);
    --cart-control-h: 40px;
    --cart-btn-w: 125px;
    --product-actions-max: 420px;
}

/* DS 2col + teaser: общая раскладка фото + контент */
.page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid),
:is(.page-product-full, .product-view-full, .product-full) .product-teaser {
    display: flex;
    flex-wrap: nowrap;
    gap: 30px;
    align-items: flex-start;
}
:is(.page-product-full, .product-view-full, .product-full) .product-teaser { margin-bottom: 32px; }

.page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid) > .group-footer {
    flex: 0 0 100%;
    width: 100%;
}

/* Левая колонка: фото */
.page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid, .field--name-body, .product-teaser-info__text) > .group-left,
.page-product-full .group-left,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image {
    float: none !important;
    width: auto !important;
    max-width: var(--product-image-max);
    flex: 0 0 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image {
    width: var(--product-image-w);
    max-width: min(100%, var(--product-image-w));
}

/* Правая колонка: контент */
.page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid, .field--name-body, .product-teaser-info__text) > .group-right,
.page-product-full .group-right,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-info {
    float: none !important;
    width: auto !important;
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
}

/* Фото 270×270 */
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .current-slide,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .current-slide {
    width: var(--product-image-w);
    height: var(--product-image-h);
    max-width: min(100%, var(--product-image-w));
    max-height: min(100%, var(--product-image-h));
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--r-lg);
    background: var(--c-bg-soft);
    box-sizing: border-box;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery),
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) {
    width: var(--product-image-w);
    max-width: min(100%, var(--product-image-w));
    overflow: visible;
    background: transparent;
}

/* Blazy: сбросить навязанные min-width/width */
.page-product-full .group-left :is(.field[data-blazy], .field__item, .blazy, .media, .media--blazy, .media-wrapper--blazy),
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image :is(.field[data-blazy], .field--name-field-image-product-view, .field--name-field-variation-image, .field__item, .blazy, .media, .media--blazy, .media-wrapper--blazy) {
    display: block;
    min-width: 0 !important;
    width: 100% !important;
    max-width: var(--product-image-max);
    margin: 0;
    padding: 0;
}
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image :is(.field[data-blazy], .field--name-field-image-product-view, .field--name-field-variation-image, .field__item, .blazy, .media, .media--blazy, .media-wrapper--blazy) { max-width: 100%; }

.page-product-full .group-left .media.media--ratio,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image .media.media--ratio {
    width: 100% !important;
    max-width: 100%;
    height: 100% !important;
    padding-bottom: 0 !important;
    overflow: hidden;
}

.page-product-full .group-left .media--ratio :is(.media__element, img, picture),
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image .media--ratio :is(.media__element, img, picture) {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    object-fit: cover;
    object-position: center;
    border-radius: var(--r-lg) !important;
}

:is(.page-product-full, .product-view-full, .product-full) :is(.group-left, .product-teaser-image) :is(
    .product-gallery,
    [class*="field--name-field-image-product-view"],
    .field--name-field-variation-image
) :is(.current-slide, .current-slide .element, .current-slide a, .field__item, a, .media, .media--blazy, .blazy) {
    overflow: hidden !important;
    border-radius: var(--r-lg) !important;
}

:is(.page-product-full, .product-view-full, .product-full) :is(.group-left, .product-teaser-image) :is(
    .product-gallery,
    [class*="field--name-field-image-product-view"],
    .field--name-field-variation-image
) :is(img, .media__element, picture img) {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    object-fit: cover;
    object-position: center;
    border-radius: var(--r-lg) !important;
}

.page-product-full .group-left .current-slide img,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image .product-gallery :is(.current-slide, .current-slide .element, .current-slide a) {
    border-radius: var(--r-lg);
    overflow: hidden;
}
.page-product-full .group-left .current-slide img,
:is(.page-product-full, .product-view-full, .product-full) .product-teaser-image .current-slide img {
    display: block;
    width: 100% !important;
    max-width: none;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    border-radius: inherit;
}

/* Слайдер: миниатюры в group-left */
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .current-slide.slick-slider {
    margin: 0 0 10px;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .current-slide.slick-slider .element.slick-slide img {
    width: 100%;
    max-width: none;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider {
    position: relative;
    width: var(--product-image-w);
    max-width: min(100%, var(--product-image-w));
    margin-top: 0;
    padding: 0 28px;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide--static {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: var(--product-image-w);
    max-width: min(100%, var(--product-image-w));
    margin-top: 10px;
    padding: 0;
    overflow-x: auto;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider .slick-arrow,
.product-view-full .product-teaser-image :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider .slick-arrow {
    display: none !important;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide--static .element {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    margin: 0;
    cursor: pointer;
    opacity: .55;
    border-radius: var(--r-sm);
    overflow: hidden;
    transition: opacity .2s;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide--static .element.is-active {
    opacity: 1;
    box-shadow: 0 0 0 2px var(--c-accent);
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide--static .element img {
    display: block;
    width: 72px !important;
    height: 72px !important;
    max-width: none;
    object-fit: cover;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider .slick-list {
    margin: 0 -5px;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider .element.slick-slide {
    margin: 0 5px;
    width: 72px;
    height: 72px;
}
.page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .product-gallery) .nav-slide.slick-slider .element.slick-slide img {
    display: block;
    width: 72px !important;
    height: 72px !important;
    max-width: none;
    object-fit: cover;
    border-radius: var(--r-sm);
}

/* H1 страницы → отступ до блока товара */
.page-product-full .wr_content .container :is(#block-vesta-theme-page-title, .block-page-title-block) {
    margin-bottom: clamp(20px, 3vw, 32px);
}
.page-product-full .wr_content .container:has(:is(#block-vesta-theme-page-title, .block-page-title-block)) .product-teaser-info__head {
    display: none;
}

/* Заголовок + описание */
.product-teaser-info__head :is(h1, h2, .field--name-title) {
    margin: 0 0 16px;
    font-family: var(--ff-base);
    font-weight: 700;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.15;
    color: var(--c-text);
}
.product-teaser-info__text {
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 1.5;
    color: var(--c-text);
}
.product-teaser-info__text p:last-child { margin-bottom: 0; }

/* Цена */
:is(.page-product-full, .product-view-full, .product-full) .product-card__price {
    margin: 0 0 16px;
    font-family: var(--ff-base);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    color: var(--c-text);
}
.product-card__price .field--name-price { margin: 0; }

/* Контейнеры действий */
:is(.page-product-full, .product-view-full, .product-full) .product-card__actions,
.page-product-full .group-right :is(.field--name-variations, .product-purchase, form.commerce-order-item-add-to-cart-form) {
    max-width: var(--product-actions-max);
    width: 100%;
}

.page-product-full .group-right .product-card__price,
.page-product-full :is(.product-purchase, form.commerce-order-item-add-to-cart-form) > .product-card__price {
    margin: 0 0 12px;
    padding: 0;
    text-align: left;
}
.page-product-full .group-right .product-card__price .field--name-price { padding: 0; }

@media (max-width: 767px) {
    .page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid),
    :is(.page-product-full, .product-view-full, .product-full) .product-teaser {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 16px;
        align-items: stretch;
    }
    .page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid) > .group-left,
    .page-product-full .group-left,
    :is(.page-product-full, .product-view-full, .product-full) .product-teaser-image {
        width: var(--product-image-w) !important;
        max-width: min(100%, var(--product-image-w));
        flex: 0 0 auto;
        align-self: flex-start;
    }
    .page-product-full :is(.ds-2col-stacked, .ds-2col-fluid, .ds-2col, .ds-2col-stacked-fluid) > .group-right,
    .page-product-full .group-right,
    :is(.page-product-full, .product-view-full, .product-full) .product-teaser-info {
        width: 100% !important;
        max-width: 100%;
        flex: 0 0 auto;
    }
    .page-product-full .group-left :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .field--name-field-variation-image .current-slide),
    :is(.page-product-full, .product-view-full, .product-full) .product-teaser-image :is([class*="field--name-field-image-product-view"], .field--name-field-variation-image, .field--name-field-variation-image .current-slide) {
        width: min(100%, var(--product-image-w));
        height: min(100%, var(--product-image-h));
        max-width: min(100%, var(--product-image-w));
        max-height: min(100%, var(--product-image-h));
    }
    :is(.page-product-full, .product-view-full, .product-full) .product-card__actions {
        max-width: none;
    }
}

/* Форма «в корзину» — сетка quantity + submit */
:is(.page-product-full, .product-view-full, .product-full) form.commerce-order-item-add-to-cart-form {
    display: grid !important;
    grid-template-columns: 100px var(--cart-btn-w);
    column-gap: 10px;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
:is(.page-product-full, .product-view-full, .product-full) form.commerce-order-item-add-to-cart-form > .field--name-purchased-entity {
    display: none !important;
}

:is(.page-product-full, .product-view-full, .product-full) form.commerce-order-item-add-to-cart-form > :is(.field--name-quantity, .product-quantity-counter) {
    grid-column: 1;
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
    width: 100%;
}

:is(.page-product-full, .product-view-full, .product-full) :is(.field--name-quantity, .product-quantity-counter) :is(.form-item, .js-form-item) {
    box-sizing: border-box;
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
    gap: 2px;
    width: 100%;
    height: var(--cart-control-h);
    min-height: var(--cart-control-h);
    margin: 0 !important;
    padding: 0 8px;
    border: 1px solid var(--c-bg-soft);
    border-radius: var(--r-md);
    background: var(--c-bg);
}
:is(.page-product-full, .product-view-full, .product-full) :is(.field--name-quantity, .product-quantity-counter) label { display: none; }

:is(.page-product-full, .product-view-full, .product-full) :is(.field--name-quantity, .product-quantity-counter) input {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 1.25em;
    max-width: 2.5em !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-align: center;
    background: transparent !important;
    box-shadow: none !important;
    appearance: textfield;
    font-family: var(--ff-base);
    font-weight: 500;
    font-size: 16px;
    line-height: 1;
    color: var(--c-text);
}

:is(.page-product-full, .product-view-full, .product-full) :is(.field--name-quantity, .product-quantity-counter) :is(.btn-minus, .btn-plus) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    color: var(--c-text-muted);
    cursor: pointer;
}

:is(.page-product-full, .product-view-full, .product-full) form.commerce-order-item-add-to-cart-form > .form-actions,
.page-product-full :is(.group-right, .product-purchase, .commerce-order-item-add-to-cart-form) .form-actions {
    grid-column: 2;
    display: flex !important;
    align-items: stretch;
    width: var(--cart-btn-w) !important;
    max-width: var(--cart-btn-w);
    margin: 0 !important;
    padding: 0 !important;
}

/* Кнопка «Купить» */
:is(.page-product-full, .product-view-full, .product-full) .commerce-order-item-add-to-cart-form :is(.button--add-to-cart, .form-submit, .btn-primary, input[type="submit"], button[type="submit"]),
.page-product-full :is(.group-right, .product-purchase) :is(.button--add-to-cart, .form-submit, .btn-primary, input[type="submit"], button[type="submit"]) {
    width: var(--cart-btn-w) !important;
    max-width: var(--cart-btn-w) !important;
    height: var(--cart-control-h);
    min-height: var(--cart-control-h);
    margin: 0;
    padding: 0 14px;
    font-family: var(--ff-base);
    font-weight: 700;
    font-size: 14px;
    line-height: var(--cart-control-h);
    text-align: center;
    white-space: nowrap;
    color: var(--c-bg) !important;
    background: var(--c-buy) !important;
    border: 0 !important;
    border-radius: var(--r-md);
    box-shadow: none !important;
    cursor: pointer;
}

:is(.page-product-full, .product-view-full, .product-full) .commerce-order-item-add-to-cart-form :is(.button--add-to-cart, .form-submit, .btn-primary, input[type="submit"], button[type="submit"]):hover,
:is(.page-product-full, .product-view-full, .product-full) .commerce-order-item-add-to-cart-form :is(.button--add-to-cart, .form-submit, .btn-primary, input[type="submit"], button[type="submit"]):focus-visible,
.page-product-full :is(.group-right, .product-purchase) :is(.button--add-to-cart, .form-submit):hover,
.page-product-full :is(.group-right, .product-purchase) :is(.button--add-to-cart, .form-submit):focus-visible {
    background: var(--c-buy-hover) !important;
    outline: none;
    box-shadow: 0 0 0 2px var(--c-buy-ring);
}

/* Цена внутри grid-формы — на всю ширину */
:is(.page-product-full, .product-view-full, .product-full) form.commerce-order-item-add-to-cart-form > .product-card__price,
.page-product-full .product-purchase > .product-card__price {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0 0 12px;
}

/* PhotoSwipe: скругление как у превью */
.pswp__img {
    border-radius: var(--r-lg);
}
