/* =========================================================
   BASE PAGE / LAYOUT
========================================================= */

.single-product-page {
    background: var(--color-background);
    color: #000000;
}

/* =========================================================
   SINGLE PRODUCT — MAIN LAYOUT
========================================================= */

.single-product-layout {
    width: 100%;
    max-width: 1440px;

    display: grid;
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(380px, 0.92fr);
    align-items: start;
    gap: 45px;

    margin: 0 auto;
    padding: 0 64px;

    box-sizing: border-box;
}

.single-product-gallery,
.single-product-summary {
    width: 100%;
    min-width: 0;
    min-height: 0;
}

.single-product-gallery {
    position: relative;
    top: auto;
    align-self: start;
}

.single-product-summary {
    display: block;
}

.single-product-summary-inner {
    width: 100%;
    max-width: 650px;
}


/* =========================================================
   PRODUCT GALLERY — RESET
========================================================= */

.single-product-gallery .woocommerce-product-gallery {
    position: relative;

    width: 100% !important;
    max-width: 100% !important;

    float: none !important;
    margin: 0 !important;

    box-sizing: border-box;
}

/* Прибираємо стандартні елементи WooCommerce */

.single-product-gallery
.woocommerce-product-gallery__trigger,
.single-product-gallery
.flex-direction-nav,
.single-product-gallery
.flex-prev,
.single-product-gallery
.flex-next {
    display: none !important;
}


/* =========================================================
   PRODUCT GALLERY — BADGE
========================================================= */

.single-product-gallery-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 30;

    width: max-content;
    max-width: calc(100% - 20px);

    padding: 8px 7px;

    background: #f7f4f0;
    color: #000000;

    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.42px;
    text-transform: uppercase;

    white-space: nowrap;
    box-sizing: border-box;
}


/* =========================================================
   PRODUCT GALLERY — MAIN IMAGE
========================================================= */

.single-product-gallery .flex-viewport {
    position: relative;

    width: 100%;
    min-width: 0;

    overflow: hidden !important;
    background: #e9e5df;
}

.single-product-gallery
.woocommerce-product-gallery__wrapper {
    margin: 0 !important;
}

.single-product-gallery
.woocommerce-product-gallery__image {
    margin: 0 !important;
    background: #e9e5df;
}

.single-product-gallery
.woocommerce-product-gallery__image a {
    width: 100%;
    display: block;
    background: #e9e5df;
}

.single-product-gallery
.woocommerce-product-gallery__image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: cover;
    object-position: center;
    background: #e9e5df;
    user-select: none;
    -webkit-user-drag: none;
}

/* =========================================================
   PRODUCT GALLERY — THUMBNAILS BASE
========================================================= */

.single-product-gallery
.single-product-thumbs-shell {
    display: none;
}

.single-product-gallery
.flex-control-thumbs {
    margin: 0 !important;
    padding: 0 !important;

    list-style: none;
    scrollbar-width: none;
}

.single-product-gallery
.flex-control-thumbs::-webkit-scrollbar {
    display: none;
}

.single-product-gallery
.flex-control-thumbs li {
    margin: 0 !important;
    padding: 0 !important;

    border: 0;
    background: transparent;

    box-sizing: border-box;
}

.single-product-gallery
.flex-control-thumbs img {
    width: 100% !important;
    height: 100% !important;

    display: block;

    padding: 0;
    border: 1px solid transparent !important;

    background: #e9e5df;

    object-fit: cover;
    object-position: center;

    opacity: 0.72;
    cursor: pointer;

    box-sizing: border-box;

    transition:
        opacity 0.2s ease,
        padding 0.2s ease,
        border-color 0.2s ease;
}

.single-product-gallery
.flex-control-thumbs img:hover {
    opacity: 1;
}

.single-product-gallery
.flex-control-thumbs img.flex-active {
    padding: 3px;

    border-color: #040D1A !important;
    opacity: 1;
}


/* =========================================================
   THUMBNAIL ARROWS
========================================================= */

.thumb-nav {
    display: none;

    align-items: center;
    justify-content: center;

    padding: 0;
    border: 0;

    background: transparent;
    color: #040D1A;

    cursor: pointer;
}

.thumb-nav svg {
    width: 12px;
    height: 8px;
    display: block;
}

.thumb-nav--up svg {
    transform: rotate(180deg);
}

.thumb-nav[disabled] {
    opacity: 0.25;
    cursor: default;
    pointer-events: none;
}


/* =========================================================
   TABLET + DESKTOP GALLERY
========================================================= */

@media (min-width: 768px) {

    .single-product-gallery {
        --thumb-width: 45px;
        --thumb-height: 56px;
        --thumb-gap: 10px;
        --gallery-gap: 28px;
        --thumb-list-height: 386px;
        --gallery-aspect: 5 / 7;
    }

    .single-product-gallery
    .woocommerce-product-gallery {
        display: grid;
        grid-template-columns:
            var(--thumb-width)
            minmax(0, 1fr);
        align-items: start;
        gap: var(--gallery-gap);
    }

	/* Головне фото та однакова висота всіх вертикальних слайдів */

.single-product-gallery
.flex-viewport {
    grid-column: 2;
    grid-row: 1;

    width: 100%;
    min-width: 0;
    height: auto !important;
    aspect-ratio: var(--gallery-aspect);

    overflow: hidden !important;
    background: #e9e5df;
}

/*
 * Кожен слайд має ту саму пропорцію,
 * що й видима область галереї.
 */
.single-product-gallery
.woocommerce-product-gallery__image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: var(--gallery-aspect);

    margin: 0 !important;
    overflow: hidden;

    background: #e9e5df;
    box-sizing: border-box;
}

.single-product-gallery
.woocommerce-product-gallery__image a {
    width: 100%;
    height: 100% !important;

    display: block;

    background: #e9e5df;
}

.single-product-gallery
.woocommerce-product-gallery__image img {
    width: 100% !important;
    height: 100% !important;

    display: block;

    object-fit: cover;
    object-position: center;

    background: #e9e5df;

    user-select: none;
    -webkit-user-drag: none;
}

    /* Вертикальні мініатюри */

    .single-product-gallery
    .single-product-thumbs-shell {
        grid-column: 1;
        grid-row: 1;

        width: var(--thumb-width);

        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;

        align-self: start;
    }

    .single-product-gallery
    .single-product-thumbs-shell
    .flex-control-thumbs {
        width: var(--thumb-width) !important;
        height: auto !important;
        max-height: var(--thumb-list-height) !important;

        display: flex !important;
        flex-direction: column !important;
        gap: var(--thumb-gap);

        overflow-x: hidden !important;
        overflow-y: auto !important;

        -webkit-overflow-scrolling: touch;
    }

    .single-product-gallery
    .single-product-thumbs-shell
    .flex-control-thumbs li {
        width: var(--thumb-width) !important;
        height: var(--thumb-height) !important;
        flex: 0 0 var(--thumb-height) !important;
    }

    .thumb-nav {
        width: var(--thumb-width);
        height: 24px;
        min-height: 24px;

        display: flex;
    }
}




/* =========================================================
   MOBILE PRODUCT LAYOUT
========================================================= */

@media (max-width: 767px) {

	.single-product-breadcrumbs {
		display: none;
	}

    .single-product-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;

        max-width: none;
        margin-bottom: 30px;
        padding: 0;
    }

    .single-product-gallery {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .single-product-summary {
        width: 100%;

        padding-right: 18px;
        padding-left: 18px;

        box-sizing: border-box;
    }

    .single-product-summary-inner {
        max-width: none;
    }
}


/* =========================================================
   PRODUCT GALLERY — MOBILE
========================================================= */

.single-product-gallery-dots {
    display: none;
}

/* =========================================================
   PRODUCT GALLERY — MOBILE
========================================================= */

@media (max-width: 767px) {

    .single-product-gallery {
        position: relative;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        overflow: hidden;
    }

    .single-product-gallery .woocommerce-product-gallery {
        position: relative;
        display: block;

        width: 100% !important;
        max-width: 100% !important;

        float: none !important;
        margin: 0 !important;
    }

    .single-product-gallery .single-product-thumbs-shell,
    .single-product-gallery .flex-control-thumbs,
    .single-product-gallery .thumb-nav {
        display: none !important;
    }

    .single-product-gallery .flex-viewport {
        position: relative;

        width: 100% !important;
        height: clamp(500px, 132vw, 620px) !important;
        margin: 0;
        overflow: hidden !important;
        background: #e9e5df;
        touch-action: pan-y;
        overscroll-behavior-x: contain;
        -webkit-user-select: none;
        user-select: none;
    }

    .single-product-gallery
    .woocommerce-product-gallery__wrapper {
        height: 100% !important;
        margin: 0 !important;

        touch-action: pan-y;
        will-change: transform;
    }

    .single-product-gallery
    .woocommerce-product-gallery__image {
        height: 100% !important;
        margin: 0 !important;

        background: #e9e5df;
        touch-action: pan-y;
    }

    .single-product-gallery
    .woocommerce-product-gallery__image a {
        width: 100%;
        height: 100%;

        display: block;

        background: #e9e5df;
        touch-action: pan-y;
    }

    .single-product-gallery
    .woocommerce-product-gallery__image img {
        width: 100% !important;
        height: 100% !important;

        display: block;

        object-fit: cover;
        object-position: center;

        background: #e9e5df;

        pointer-events: none;
        user-select: none;
        -webkit-user-select: none;
        -webkit-user-drag: none;
    }

    /* Бейдж */

    .single-product-gallery-badge {
        position: absolute;
        top: 80px;
        right: 14px;
        left: auto;
        z-index: 35;
        width: max-content;
        max-width: calc(100% - 28px);
        padding: 6px 10px;
        background: #f7f4f0;
        color: #000000;
        font-size: 11px;
        white-space: nowrap;
        box-sizing: border-box;
    }

    /* Точки */

    .single-product-gallery-dots {
        position: absolute;
        left: 50%;
        bottom: 22px;
        z-index: 30;

        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;

        margin: 0;
        padding: 0;

        transform: translateX(-50%);
        pointer-events: auto;
    }

    .single-product-gallery-dot {
        width: 6px;
        height: 6px;
        flex: 0 0 6px;

        display: block;

        margin: 0;
        padding: 0;

        border: 1px solid #040D1A;
        border-radius: 50%;

        background: transparent;

        appearance: none;
        -webkit-appearance: none;

        cursor: pointer;
        box-sizing: border-box;
    }

    .single-product-gallery-dot.is-active {
        background: #040D1A;
    }
}

/* =========================================================
   SUMMARY / TITLE / PRICE / OPTIONS
========================================================= */

.single-product-summary {
    display: block;
}

.single-product-summary-inner {
    width: 100%;
    max-width: 650px;
}

.single-product-title {
    margin: 30px 0 16px;
    font-family: var(--font-decorative);
    font-size: 30px;
    font-weight: 300;
    line-height: 0.98;
    letter-spacing: -0.6px;
    color: #000000;
}

.single-product-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    margin: 0 0 40px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.42px;
    color: #000000;
}

.single-product-price .single-price-old,
.single-product-price del {
    color: #8a8175;
    opacity: 1;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.42px;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(4, 13, 26, 0.45);
}

.single-product-price .single-price-current,
.single-product-price .single-price-from,
.single-product-price ins {
    color: #000000;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.42px;
    text-decoration: none;
}

.single-product-price .amount,
.single-product-price bdi {
    color: inherit;
}

.single-product-metal {
    margin: 0 0 20px;
    font-family: var(--font-body);
    font-size: 14px;
    color: #000000;
}

.single-product-metal span {
    color: #6a6a6a;
}

.single-product-metal strong {
    font-weight: 500;
}

.single-product-option-label {
    margin-bottom: 12px;
    font-family: var(--font-body);
    font-size: 14px;
    color: #6a6a6a;
}


/* =========================================================
   PRODUCT PRICE + RATING
========================================================= */

.single-product-price-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 10px;
}

.single-product-price-meta .single-product-price {
    margin: 0;
}

.single-product-rating-link {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #040D1A;
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.single-product-rating-link:hover {
    opacity: 0.65;
}

.single-product-rating-stars {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    color: #d8d3cc;
    font-family: Arial, sans-serif;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 2px;
    white-space: nowrap;
}

.single-product-rating-stars-empty {
    display: block;
    color: #d8d3cc;
}

.single-product-rating-stars-filled {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    overflow: hidden;
    color: #040D1A;
    white-space: nowrap;
}

/* Кількість відгуків */
.single-product-rating-count {
    color: #040D1A;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.42px;
}

#ton618-product-reviews {
    scroll-margin-top: calc(var(--header-height, 80px) + 20px);
    margin-bottom: 20px;
}

html {
    scroll-behavior: smooth;
}

@media (max-width: 767px) {
    .single-product-price-meta {
        gap: 10px 14px;
        margin-bottom: 18px;
    }

    .single-product-rating-stars {
		font-size: 14px;
        letter-spacing: 0.42px;
        margin-top: -1px;
    }

    .single-product-rating-count {
        font-size: 12px;
    }
}


/* =========================================================
   PRODUCT COLOR SWATCHES
========================================================= */

.single-product-color-links {
    margin: 0;
    padding: 28px 0 30px;
    border-bottom: 1px solid rgba(184, 184, 184, 0.2);
}

.single-product-option-label {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-bottom: 20px;
    color: #040D1A;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
}

.single-product-option-label .color-value {
    color: #6a6259;
}

.single-product-color-links-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.single-product-color-link {
    position: relative;

    width: 35px;
    height: 35px;
    flex: 0 0 35px;
    margin: 0;
    padding: 2px;
    border: 1px solid transparent;
    background: transparent;
    box-sizing: border-box;
    transition: border-color 0.2s ease;
}

.single-product-color-link:hover {
    border-color: rgba(4, 13, 26, 0.35);
}

.single-product-color-link.is-active {
    border-color: #040D1A;
}

.single-product-color-swatch {
    position: relative;

    width: 100%;
    height: 100%;
    display: block;

    border: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;

    cursor: pointer;
    box-sizing: border-box;
}

.single-product-color-link.is-active
.single-product-color-swatch {
    cursor: default;
}

/* Tooltip */

.single-product-color-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 13px);
    z-index: 10;

    width: max-content;
    max-width: 180px;

    padding: 8px 12px;

    background: #ffffff;
    color: #040D1A;

    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
    white-space: nowrap;

    box-shadow:
        0 12px 28px rgba(4, 13, 26, 0.1);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform:
        translate(-50%, 4px);

    transition:
        opacity 0.18s ease,
        visibility 0.18s ease,
        transform 0.18s ease;
}

.single-product-color-tooltip::after {
    content: "";

    position: absolute;
    top: 100%;
    left: 50%;

    border-width: 6px 6px 0;
    border-style: solid;
    border-color:
        #ffffff
        transparent
        transparent;

    transform: translateX(-50%);
}

.single-product-color-swatch:hover
.single-product-color-tooltip,
.single-product-color-swatch:focus-visible
.single-product-color-tooltip,
.single-product-color-link.is-active:hover
.single-product-color-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.single-product-color-swatch:focus-visible {
    outline: 1px solid #040D1A;
    outline-offset: 2px;
}


/* =========================================================
   PRODUCT COLOR SWATCHES — MOBILE
========================================================= */

@media (max-width: 767px) {
    .single-product-color-links {
        padding: 22px 0 24px;
    }

    .single-product-option-label {
        margin-bottom: 12px;
        font-size: 13px;
    }

    .single-product-color-links-list {
        gap: 7px;
    }

    .single-product-color-link {
        width: 35px;
        height: 35px;
        flex-basis: 35px;
        padding: 2px;
    }

    .single-product-color-tooltip {
        display: none;
    }
}

/* =========================================================
   PURCHASE LAYOUT
========================================================= */

.single-product-purchase {
    width: 100%;
    margin: 0;
}

/*
 * Обгортка всіх параметрів товару та двох кнопок.
 */
.single-product-purchase-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
        "size size"
        "gift gift"
        "engraving engraving"
        "add oneclick";
    column-gap: 12px;
    row-gap: 18px;
}

/*
 * Прибираємо технічні обгортки WooCommerce з розкладки,
 * щоб їхні внутрішні елементи стали елементами grid.
 */
.single-product-purchase-actions .single-product-add-to-cart,
.single-product-purchase-actions form.cart,
.single-product-purchase-actions form.variations_form,
.single-product-purchase-actions .single_variation_wrap,
.single-product-purchase-actions .woocommerce-variation-add-to-cart {
    display: contents !important;
}

/* Варіації */
.single-product-purchase-actions table.variations {
    grid-area: size;
}

/* Подарункове пакування */
.single-product-purchase-actions .product-gift-packaging {
    grid-area: gift;
}

/* Гравіювання */
.single-product-purchase-actions .product-engraving {
    grid-area: engraving;
}

/* Додати в кошик */
.single-product-purchase-actions .single_add_to_cart_button {
    grid-area: add;
    width: 100% !important;
}

/* Купити в 1 клік */
.single-product-purchase-actions .single-product-one-click {
    grid-area: oneclick;
    width: 100%;
}

/* Якщо товару немає — одна кнопка на всю ширину */
.single-product-purchase-actions.is-out-of-stock {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "oneclick";
}

/* Статус наявності під кнопками */
.single-product-status {
    margin-top: 8px;
}

/* =========================================================
   VARIATIONS / SIZE BLOCK — ELEGANT DONOR STYLE
========================================================= */

.single-product-purchase table.variations {
    display: block;
    padding: 15px 0 15px;
    border: 0;
    border-bottom: 1px solid rgba(184, 184, 184, .2);
}

.single-product-purchase table.variations tbody,
.single-product-purchase table.variations tr,
.single-product-purchase table.variations th,
.single-product-purchase table.variations td {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
}

.single-product-purchase table.variations tr {
    position: relative;
}

.single-product-purchase table.variations th.label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 10px;
    text-align: left;
}

.single-product-purchase table.variations th.label label {
    display: block;
    margin: 0;
    color: #000000;
    font-family: var(--font-body);
	font-size: 12px;
    font-weight: 400;
}

.single-product-purchase table.variations td.value {
    position: relative;
}

.single-product-purchase table.variations select,
.single-product-purchase table.variations select.product-variation-select-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}

/* Список розмірів */
.product-variation-swatches {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

/* Кнопки розмірів */
.product-variation-swatch {
    position: relative;
    min-width: 0;
    height: auto;
    padding: 0 0 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #6c6c6c;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    cursor: pointer;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.product-variation-swatch:hover,
.product-variation-swatch.is-active {
    color: #000000;
    background: transparent;
    border: 0;
}

/* Тонка риска активного значення */
.product-variation-swatch::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #000000;
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.product-variation-swatch:hover::after,
.product-variation-swatch.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.product-variation-swatch:disabled {
    color: #b8b8b8;
    opacity: 1;
    cursor: not-allowed;
}

.product-variation-swatch:disabled::after {
    display: none;
}

.single-product-purchase .woocommerce-variation,
.single-product-purchase .woocommerce-variation-price,
.single-product-purchase .woocommerce-variation-availability,
.single-product-purchase .reset_variations {
    display: none !important;
}


/* =========================================================
   GIFT PACKAGING
========================================================= */

.product-gift-packaging {
    grid-area: gift;
    margin: 0;
    padding: 0 0 15px !important;
    border-bottom: 1px solid rgba(184, 184, 184, 0.2);
}

.product-gift-title {
    margin: 10px 0 10px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    color: #000000;
}

.product-gift-toggle {
    display: flex;
    align-items: center;
    gap: 20px;
}

.product-gift-toggle label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    color: #6c6c6c;
    cursor: pointer;
}

.product-gift-toggle input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #040D1A;
}

.product-gift-boxes {
    display: none;
    gap: 16px;
    max-width: 100%;
    margin-top: 18px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.product-gift-boxes::-webkit-scrollbar {
    display: none;
}

.product-gift-boxes.is-active {
    display: flex;
}

.product-gift-box {
    position: relative;
    flex: 0 0 126px;
    width: 126px;
    cursor: pointer;
}

.product-gift-box input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.product-gift-box img {
    width: 126px;
    height: 126px;
    display: block;
    object-fit: cover;
    border: 1px solid transparent;
    background: #e9e5df;
    box-sizing: border-box;
}

.product-gift-box input:checked + img {
    border-color: #040D1A;
}


/* Назву коробки на картці не показуємо */

.product-gift-box > .product-gift-box-name {
    display: none !important;
}


/* Ціна коробки */

.product-gift-box > .product-gift-box-price {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;

    width: 100%;
    margin: 7px 0 0;
    padding: 0;

    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.3;

    color: #000000;
    text-align: center;
    white-space: nowrap;
}


/* Вкладені span з wc_price() */

.product-gift-box-price .woocommerce-Price-amount,
.product-gift-box-price .amount,
.product-gift-box-price bdi,
.product-gift-box-price .woocommerce-Price-currencySymbol {
    display: inline !important;

    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;

    color: inherit !important;
    white-space: nowrap !important;
}

/* =========================================================
   PRODUCT ENGRAVING FIELD
========================================================= */

.product-engraving {
    grid-area: engraving;
    padding: 15px 0px 30px;
    border-bottom: 1px solid rgba(184, 184, 184, 0.2);
    margin-bottom: 30px;
}

.product-engraving-input-wrap {
    position: relative;
    width: 100%;
    height: 50px;
    display: block;
    background: #f1eee8;
}

.product-engraving-label {
    position: absolute;
    top: 4px;
    left: 20px;
    z-index: 2;
    margin: 0;
    color: #6a6259;
    font-family: var(--font-body);
    font-size: 12px;
    letter-spacing: 0.36px;
    font-weight: 300;
    pointer-events: none;
}

.product-engraving-input {
    width: 100%;
    height: 100%;
    padding: 34px 190px 13px 20px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #040D1A;
    font-family: var(--font-body);
    font-size: 14px;
    letter-spacing: 0.36px;
    font-weight: 400;
    outline: none;
    box-shadow: none;
}

.product-engraving-input::placeholder {
    color: #6a6259;
    opacity: 1;
}

.product-engraving-limit {
    position: absolute;
    top: 50%;
    right: 20px;
    z-index: 2;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6a6259;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.36px;
    white-space: nowrap;
}

.product-engraving-input:focus {
    background: transparent;
}

.product-engraving-input-wrap:focus-within {
    box-shadow: inset 0 0 0 2px #040D1A;
}


/* =========================================================
   PRODUCT ENGRAVING FIELD — MOBILE
========================================================= */

@media (max-width: 767px) {
    .product-engraving {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .product-engraving-input-wrap {
        position: relative;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        height: 50px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .product-engraving-input {
        display: block;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        height: 50px;
        padding: 20px 120px 5px 20px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        outline: none;
        color: #040D1A;
        font-family: var(--font-body);
        font-size: 16px !important;
        font-weight: 400;
        line-height: 1.2;
        letter-spacing: 0.36px;

        box-sizing: border-box;
        appearance: none;
        -webkit-appearance: none;
    }

    .product-engraving-input:focus {
        font-size: 16px !important;
        background: transparent;
        transform: none;
        zoom: 1;
    }

    .product-engraving-label {
        top: 4px;
        left: 20px;
        font-size: 11px;
    }

    .product-engraving-limit {
        top: 50%;
        right: 14px;
        font-size: 11px;
        transform: translateY(-50%);
        white-space: nowrap;
    }

    .product-engraving-input-wrap:focus-within {
        box-shadow: inset 0 0 0 1px #040D1A;
    }
}

@media (max-width: 380px) {
    .product-engraving-input {
        padding-right: 104px;
        padding-left: 14px;
        font-size: 16px !important;
    }

    .product-engraving-label {
        left: 14px;
        font-size: 10px;
    }

    .product-engraving-limit {
        right: 10px;
        font-size: 10px;
    }
}

/* =========================================================
   SINGLE PRODUCT PURCHASE / STOCK / BUTTONS
========================================================= */

/* Варіації / розмір */
.single-product-purchase table.variations {
    grid-area: size;
    width: 100%;
    margin: 0 !important;
}

.single-product-purchase .quantity,
.single-product-purchase .qty-button,
.single-product-purchase input.qty {
    display: none !important;
}

/* Кнопка “Додати в кошик” */
.single-product-purchase .single_add_to_cart_button {
    grid-area: add;
    width: 100% !important;
    min-height: 58px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 28px !important;

    border: 1px solid #040D1A !important;
    border-radius: 0 !important;
    background: #040D1A !important;
    color: #ffffff !important;

    font-family: var(--font-body);
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1;
    letter-spacing: 0.48px;
    text-transform: uppercase;

    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease;
}

.single-product-purchase .single_add_to_cart_button:hover {
    background: transparent !important;
    color: #040D1A !important;
}

/* Кнопка “Купити в 1 клік” */
.single-product-one-click {
    grid-area: oneclick;
    width: 100%;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0 28px;

    border: 1px solid #040D1A;
    border-radius: 0;
    background: transparent;
    color: #040D1A;

    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.48px;
    text-transform: uppercase;

    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease;
}

.single-product-one-click:hover {
    background: #040D1A;
    color: #ffffff;
}

.single-product-purchase.is-out-of-stock
.single-product-one-click {
    grid-column: 1 / -1;
    width: 100%;
}

/* Статус наявності під кнопкою “Додати в кошик” */
.single-product-status {
    grid-area: status;
    width: fit-content;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    margin: 10px 0 0;
    color: #040D1A;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.42px;
    white-space: nowrap;
}

.single-product-status::before {
    content: "✓";
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2f8f5b;
    border-radius: 50%;
    background: transparent;
    color: #2f8f5b;
    font-size: 7px;
    font-weight: 500;
    line-height: 1;
}

.single-product-status.out-of-stock::before {
    content: "!";
    border-color: #b94a3a;
    color: #b94a3a;
}

.single-product-status.out-of-stock {
    color: #040D1A;
}


/* =========================================================
   PRODUCT TABS — DESKTOP
========================================================= */

.single-product-tabs {
    --tabs-count: 3;

    display: grid;
    grid-template-columns: repeat(var(--tabs-count), minmax(0, 1fr));
    margin-top: 16px;
}

.single-product-tab-item {
    display: contents;
}

.single-product-tab-button {
    grid-column: var(--tab-column);
    grid-row: 1;

    width: 100%;
    padding: 15px 5px;

    border: 0;
    border-bottom: 1px solid #ddd7ce;
    border-radius: 0;

    background: transparent;
    color: #666666;

    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.48px;
    text-align: center;
    text-transform: uppercase;

    cursor: pointer;
}

.single-product-tab-item.is-active .single-product-tab-button {
    color: #040D1A;
    border-bottom-color: #040D1A;
}

.single-product-tab-panel {
    grid-column: 1 / -1;
    grid-row: 2;

    display: none;
    padding-top: 20px;

    color: #000000;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.48px;
}

.single-product-tab-item.is-active .single-product-tab-panel {
    display: block;
}

.single-product-tab-panel p {
    margin: 0 0 16px;
}

.single-product-tab-panel p:last-child {
    margin-bottom: 0;
}

.single-product-spec-list {
    margin: 0;
    padding-left: 20px;
}

.single-product-spec-list li {
    margin-bottom: 6px;
}

.single-product-spec-list li:last-child {
    margin-bottom: 0;
}


/* =========================================================
   PRODUCT GLOBAL FEATURES
========================================================= */

.single-product-global-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-top: 30px;
    text-align: center;
}

.single-product-global-feature img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    margin: 0 auto 7px;
}

.single-product-global-feature span {
    display: block;
    font-family: var(--font-body);
    font-size: 12px;
    letter-spacing: 0.16px;
    color: #000000;
}


/* =========================================================
   SINGLE PRODUCT PAGE — TABLET / COMPACT DESKTOP
========================================================= */

@media (min-width: 768px) and (max-width: 1439px) {

    /*
     * Основна сітка.
     * Обидві колонки можуть реально звужуватися.
     */
    .single-product-layout {
        display: grid;
        grid-template-columns:
            minmax(0, 1fr)
            minmax(340px, 0.86fr);

        align-items: start;
        gap: clamp(20px, 2.5vw, 34px);

        width: 100%;
        max-width: none;

        margin: 0 auto;
        padding: 70px 20px 0;

        box-sizing: border-box;
    }

    .single-product-gallery,
    .single-product-summary,
    .single-product-summary-inner {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Галерея */

    .single-product-gallery {
        position: relative;
        top: auto;

        width: 100%;
        max-width: 100%;

        margin: 0;
        align-self: start;

        --thumb-width: 38px;
        --thumb-height: 48px;
        --thumb-gap: 8px;
        --gallery-gap: 14px;
        --thumb-list-height: 328px;
        --gallery-aspect: 5 / 7;
    }

    .single-product-gallery
    .woocommerce-product-gallery,
    .single-product-gallery
    .flex-viewport,
    .single-product-gallery
    .woocommerce-product-gallery__wrapper {
        width: 100% !important;
        min-width: 0;
        max-width: 100% !important;

        box-sizing: border-box;
    }

    .single-product-gallery
    .woocommerce-product-gallery {
        float: none !important;
        margin: 0 !important;
    }

    /*
     * Вертикальний жест залишається галереї,
     * горизонтальний — браузеру.
     */
    .single-product-gallery .flex-viewport,
    .single-product-gallery
    .woocommerce-product-gallery__wrapper,
    .single-product-gallery
    .woocommerce-product-gallery__image {
        touch-action: pan-x;
        overscroll-behavior: contain;
    }

    .single-product-gallery-badge {
        top: 8px;
        right: 8px;
        left: auto;

        max-width: calc(100% - 16px);
        padding: 6px 10px;

        font-size: 11px;
    }

    /* Права колонка */

    .single-product-summary {
        min-height: 0;
    }

    .single-product-summary-inner {
        margin: 0;
    }

    .single-product-breadcrumbs {
        margin-top: 0;
        font-size: 10px;
    }

    .single-product-title {
        margin: 20px 0 14px;

        font-size: clamp(22px, 2.4vw, 28px);
        line-height: 1.05;
        letter-spacing: -0.4px;

        overflow-wrap: anywhere;
    }

    .single-product-price-meta {
        gap: 8px 10px;
    }

    .single-product-color-links {
        padding: 24px 0;
    }

    /* Форма та кнопки */

    .single-product-purchase-actions {
        column-gap: 8px;
        row-gap: 14px;
    }

    .single-product-purchase
    .single_add_to_cart_button,
    .single-product-one-click {
        min-width: 0;
        min-height: 50px;

        padding-right: 10px !important;
        padding-left: 10px !important;

        font-size: 10px !important;
        line-height: 1.2;
        text-align: center;
    }

    /* Таби */

    .single-product-tabs {
        margin-top: 14px;
    }

    .single-product-tab-button {
        padding: 14px 3px;

        font-size: 10px;
        letter-spacing: 0.2px;
    }

    .single-product-tab-panel {
        padding-top: 18px;
        font-size: 12px;
    }

    /* Переваги */

    .single-product-global-features {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));

        gap: 6px;
        margin-top: 24px;
    }

    .single-product-global-feature {
        min-width: 0;
    }

    .single-product-global-feature img {
        width: 26px;
        height: 26px;
    }

    .single-product-global-feature span {
        font-size: 9px;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }
}


/* =========================================================
   SINGLE PRODUCT PAGE — DESKTOP
========================================================= */

@media (min-width: 1440px) {

    .single-product-layout {
        padding-top: 0;
    }

    .single-product-gallery {
        position: relative;
        top: auto;

        width: 100%;
        max-width: 693px;

        justify-self: start;
        align-self: start;
    }
}


/* =========================================================
   SINGLE PRODUCT PURCHASE — MOBILE
========================================================= */

@media (max-width: 767px) {

	.single-product-layout {
        width: 100%;
        max-width: none;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .single-product-gallery {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .single-product-gallery .woocommerce-product-gallery,
    .single-product-gallery .flex-viewport {
        width: 100% !important;
        max-width: none !important;
    }

    .single-product-summary {
        width: 100%;
        padding-left: 18px;
        padding-right: 18px;
        box-sizing: border-box;
    }
	
    .single-product-purchase {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        margin: 18px 0 30px;
    }
    
    /* Кнопки на мобільному одна під одною */
.single-product-purchase-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "size"
        "gift"
        "engraving"
        "add"
        "oneclick";
    gap: 10px;
}

.single-product-purchase-actions .single_add_to_cart_button {
    grid-area: add;
    width: 100% !important;
}

.single-product-purchase-actions .single-product-one-click {
    grid-area: oneclick;
    width: 100% !important;
}

    .single-product-purchase table.variations {
        padding-bottom: 20px;
    }

    .single-product-purchase table.variations th.label {
        margin-bottom: 12px;
    }

    .single-product-purchase table.variations th.label label {
        font-size: 14px;
    }

    .single-product-purchase .single_add_to_cart_button,
    .single-product-one-click {
        min-height: 50px;
        font-size: 14px !important;
    }

    .single-product-status {
        gap: 8px;
        margin-top: 10px;
        font-size: 14px;
        white-space: normal;
    }

    .single-product-status::before {
        width: 19px;
        height: 19px;
        flex-basis: 19px;
        font-size: 12px;
    }
    
        .single-product-title {
        font-size: 22px;
    }
    
    
}

/* =========================================================
   PRODUCT TABS — MOBILE ACCORDION
========================================================= */

@media (max-width: 767px) {
    .single-product-tabs {
        display: block;
        width: 100%;
        margin-top: 34px;
        border-top: 1px solid rgba(184, 184, 184, 0.22);
    }

    .single-product-tab-item {
        display: block;
        border-bottom: 1px solid rgba(184, 184, 184, 0.22);
    }

    .single-product-tab-button {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        width: 100%;
        min-height: 45px;
        padding: 20px 30px 20px 0;
        border: 0;
        background: transparent;
        color: #666666;
        font-family: var(--font-body);
        font-size: 12px;
        font-weight: 300;
        line-height: 1.25;
        letter-spacing: 0.28px;
        text-align: left;
        text-transform: uppercase;

        cursor: pointer;
    }

    /* Стрілка справа */
    .single-product-tab-button::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 4px;

        width: 7px;
        height: 7px;

        border-right: 1px solid #666666;
        border-bottom: 1px solid #666666;

        transform: translateY(-70%) rotate(45deg);
        transition: transform 0.25s ease;
    }

    .single-product-tab-item.is-open .single-product-tab-button {
        color: #040D1A;
    }

    .single-product-tab-item.is-open .single-product-tab-button::after {
        transform: translateY(-25%) rotate(-135deg);
    }

    .single-product-tab-item.is-active .single-product-tab-panel {
        display: none;
    }

    .single-product-tab-panel {
        display: none;
        padding: 0 24px 24px 0;

        color: #000000;
        font-size: 14px;
        line-height: 1.55;
        letter-spacing: 0.28px;
    }

    .single-product-tab-item.is-open .single-product-tab-panel {
        display: block;
    }

    .single-product-tab-panel p {
        margin: 0 0 14px;
    }

    .single-product-spec-list {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .single-product-spec-list li {
        display: flex;
        justify-content: space-between;
        gap: 20px;

        padding: 10px 0;
        border-bottom: 1px solid rgba(184, 184, 184, 0.18);
    }

    .single-product-spec-list li:last-child {
        border-bottom: 0;
    }

    .single-product-spec-list strong {
        font-weight: 400;
        color: #666666;
    }
}


/* =========================================================
   SINGLE PRODUCT — LARGE / ULTRA-WIDE FONTS
   1620px → стандартні розміри
   3875px → максимальні розміри
========================================================= */

@media (min-width: 1620px) {

    .single-product-page {
        /*
         * 30px → 60px
         */
        --single-font-title: clamp(
            30px,
            calc(8.45px + 1.33vw),
            60px
        );

        /*
         * 14px → 24px
         */
        --single-font-body: clamp(
            14px,
            calc(6.82px + 0.443vw),
            22px
        );

        /*
         * 12px → 24px
         */
        --single-font-label: clamp(
            12px,
            calc(3.38px + 0.532vw),
            22px
        );

        /*
         * 11px → 24px
         */
        --single-font-small: clamp(
            11px,
            calc(1.66px + 0.577vw),
            22px
        );

        /*
         * 7px → 14px
         */
        --single-font-icon: clamp(
            7px,
            calc(1.97px + 0.31vw),
            14px
        );
    }


    /* =====================================================
       BREADCRUMBS
    ===================================================== */

    .single-product-breadcrumbs,
    .single-product-breadcrumbs a,
    .single-product-breadcrumbs span {
        font-size: var(--single-font-label);
        line-height: 1.35;
    }


    /* =====================================================
       PRODUCT TITLE
    ===================================================== */

    .single-product-title {
        font-size: var(--single-font-title);
        line-height: 1;
        letter-spacing: -0.02em;
    }


    /* =====================================================
       GALLERY BADGE
    ===================================================== */

    .single-product-gallery-badge {
        font-size: var(--single-font-small);
    }


    /* =====================================================
       PRICE
    ===================================================== */

    .single-product-price,
    .single-product-price .single-price-old,
    .single-product-price .single-price-current,
    .single-product-price .single-price-from,
    .single-product-price del,
    .single-product-price ins {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       METAL / OPTIONS
    ===================================================== */

    .single-product-metal {
        font-size: var(--single-font-body);
    }

    .single-product-option-label,
    .single-product-option-label .color-value {
        font-size: var(--single-font-label);
    }
    
    .product-engraving-input-wrap {
    height: 100px;

    }
    
    /* =====================================================
       RATING
    ===================================================== */

    .single-product-rating-stars {
        font-size: var(--single-font-body);
    }

    .single-product-rating-count {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       COLOR TOOLTIP
    ===================================================== */

    .single-product-color-tooltip {
        font-size: var(--single-font-label);
    }


    /* =====================================================
       VARIATIONS / SIZE
    ===================================================== */

    .single-product-purchase
    table.variations
    th.label
    label {
        font-size: var(--single-font-label);
    }

    .product-variation-swatch {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       GIFT PACKAGING
    ===================================================== */

    .product-gift-title {
        font-size: var(--single-font-label);
    }

    .product-gift-toggle label {
        font-size: var(--single-font-body);
    }

    .product-gift-box
    > .product-gift-box-price {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       ENGRAVING
    ===================================================== */

    .product-engraving-label,
    .product-engraving-limit {
        font-size: var(--single-font-label);
    }

    .product-engraving-input {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       PURCHASE BUTTONS
    ===================================================== */

    .single-product-purchase
    .single_add_to_cart_button {
        font-size: var(--single-font-label) !important;
    }

    .single-product-one-click {
        font-size: var(--single-font-label);
    }


    /* =====================================================
       STOCK STATUS
    ===================================================== */

    .single-product-status {
        font-size: var(--single-font-body);
    }

    .single-product-status::before {
        font-size: var(--single-font-icon);
    }


    /* =====================================================
       PRODUCT TABS
    ===================================================== */

    .single-product-tab-button {
        font-size: var(--single-font-label);
    }

    .single-product-tab-panel,
    .single-product-tab-panel p,
    .single-product-spec-list,
    .single-product-spec-list li {
        font-size: var(--single-font-body);
    }


    /* =====================================================
       GLOBAL FEATURES
    ===================================================== */

    .single-product-global-feature span {
        font-size: var(--single-font-label);
        line-height: 1.3;
    }
}






/* =========================================================
   PRODUCT LIFESTYLE GALLERY
========================================================= */

.product-lifestyle-gallery {
    --lifestyle-side-space: clamp(64px, 1.5vw, 96px);
    --lifestyle-title-size: clamp(36px, calc(2.4px + 1.75vw), 100px);
    --lifestyle-card-width: max(418px, 20.67vw);
    --lifestyle-gap: clamp(3px, 0.08vw, 6px);
    --lifestyle-progress-top: clamp(30px, 1vw, 56px);
    --lifestyle-bottom-space: clamp(40px, 1.2vw, 70px);

    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0 0 var(--lifestyle-bottom-space);
    overflow: hidden;
    background: #f7f4f0;
    box-sizing: border-box;
}

.product-lifestyle-gallery__title {
    margin: 0;
    padding:
        0
        var(--lifestyle-side-space)
        clamp(32px, 1.2vw, 68px);

    color: #000000;
    font-family: var(--font-decorative);
    font-size: var(--lifestyle-title-size);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.02em;
}

/* =========================================================
   VIEWPORT / DRAG
========================================================= */

.product-lifestyle-gallery__viewport {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    cursor: grab;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

.product-lifestyle-gallery__viewport::-webkit-scrollbar {
    display: none;
}

.product-lifestyle-gallery__viewport.is-dragging {
    cursor: grabbing;
    user-select: none;
}

/* =========================================================
   TRACK
========================================================= */

.product-lifestyle-gallery__track {
    width: max-content;
    display: flex;
    align-items: stretch;
    gap: var(--lifestyle-gap);
    padding: 0 var(--lifestyle-side-space);
    box-sizing: border-box;
}

.product-lifestyle-gallery__item {
    width: var(--lifestyle-card-width);
    min-width: var(--lifestyle-card-width);
    max-width: none;

    aspect-ratio: 418 / 525;
    height: auto;
    min-height: 0;
    max-height: none;

    flex: 0 0 var(--lifestyle-card-width);
    margin: 0;
    padding: 0;

    overflow: hidden;
    background: #e9e5df;
    line-height: 0;
    pointer-events: none;
    box-sizing: border-box;
}

.product-lifestyle-gallery__item > picture,
.product-lifestyle-gallery__item > a {
    width: 100%;
    height: 100%;
    display: block;
}

.product-lifestyle-gallery__image,
.product-lifestyle-gallery__item img {
    width: 100% !important;
    min-width: 100%;
    max-width: 100%;

    height: 100% !important;
    min-height: 100%;
    max-height: 100%;

    display: block;
    margin: 0;
    padding: 0;

    object-fit: cover;
    object-position: center center;

    border: 0;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    box-sizing: border-box;
}

/* =========================================================
   PROGRESS
========================================================= */

.product-lifestyle-gallery__progress {
    position: relative;
    height: 1px;
    margin:
        var(--lifestyle-progress-top)
        var(--lifestyle-side-space)
        0;
    overflow: hidden;
    background: rgba(4, 13, 26, 0.22);
}

.product-lifestyle-gallery__progress[hidden] {
    display: none;
}

.product-lifestyle-gallery__progress span {
    display: block;
    width: 0%;
    height: 100%;
    background: #040D1A;
    transition: width 0.08s linear;
    will-change: width;
}

/* =========================================================
   PRODUCT LIFESTYLE GALLERY — MOBILE
========================================================= */

@media (max-width: 767px) {
    .product-lifestyle-gallery {
        padding-top: 15px;
        padding-bottom: 0;
    }

    .product-lifestyle-gallery__title {
        padding: 0 19px 20px;
        font-size: 28px;
        line-height: 1;
        letter-spacing: -0.5px;
    }

    .product-lifestyle-gallery__track {
        align-items: stretch;
        gap: 3px;
        padding: 0 18px;
    }

    .product-lifestyle-gallery__item {
        width: 172px;
        min-width: 172px;
        max-width: 172px;

        aspect-ratio: 172 / 241;
        height: auto;

        flex: 0 0 172px;
    }

    .product-lifestyle-gallery__image,
    .product-lifestyle-gallery__item img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
        object-position: center center;
    }

    .product-lifestyle-gallery__progress {
        margin: 28px 18px 0;
    }
}


/* =========================================================
   SINGLE PRODUCT FAQ
========================================================= */

.single-product-faq {
    padding: 0px 24px 18px;
    background: #f7f4f0;
}

.single-product-faq-inner {
    width: 100%;
    max-width: 625px;
    margin: 0 auto;
}

.single-product-faq-title {
    margin: 0 0 40px;
    font-family: var(--font-decorative);
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.72px;
    color: #000000;
}

.single-product-faq-item {
    border-bottom: 0.5px solid #d8d2c8;
}

.single-product-faq-item summary {
    list-style: none;
}

.single-product-faq-item summary::-webkit-details-marker {
    display: none;
}

.single-product-faq-question {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 0;
    cursor: pointer;
}

.single-product-faq-question-text {
font-family: var(--font-body);
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.18px;
    text-transform: uppercase;
    color: #000000;
    
}

.single-product-faq-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #6f6a62;
    transition: transform 0.3s ease;
}

.single-product-faq-icon svg {
    width: 10px;
    height: 6px;
    display: block;
}

.single-product-faq-item[open] .single-product-faq-icon {
    transform: rotate(180deg);
}


/* Answer animation */

.single-product-faq-answer {
    height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0 34px 0 0;
    box-sizing: border-box;

    color: #6a6259;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.12px;

    transition:
        height 0.35s ease,
        opacity 0.25s ease,
        padding-bottom 0.35s ease;
}

.single-product-faq-item[open] .single-product-faq-answer {
    opacity: 1;
    padding-bottom: 20px;
}

.single-product-faq-item[open]:not(.is-opening):not(.is-closing) .single-product-faq-answer {
    height: auto;
}

.single-product-faq-item.is-closing .single-product-faq-answer {
    opacity: 0;
    padding-bottom: 0;
}

.single-product-faq-answer p {
    margin: 0 0 5px;
}

.single-product-faq-answer p:last-child {
    margin-bottom: 0;
}

.single-product-faq-answer a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}


/* =========================================================
   SINGLE PRODUCT FAQ — MOBILE
========================================================= */

@media (max-width: 767px) {
    .single-product-faq {
        padding: 20px 18px 0px;
    }

    .single-product-faq-title {
        margin-bottom: 20px;
        font-size: 28px;
    }

    .single-product-faq-question {
        min-height: 54px;
        padding: 16px 0;
    }

    .single-product-faq-question-text {
        font-size: 12px;
    }

    .single-product-faq-answer {
        padding-right: 22px;
        font-size: 14px;
        line-height: 1.5;
    }

    .single-product-faq-item[open] .single-product-faq-answer {
        padding-bottom: 20px;
    }

    .single-product-faq-item.is-closing .single-product-faq-answer {
        padding-bottom: 0;
    }
}



/* =========================================================
   SINGLE PRODUCT FAQ — LARGE / ULTRA-WIDE
   1620px → стандартні розміри
   3875px → максимальні розміри
========================================================= */

@media (min-width: 1620px) {

    /*
     * Зовнішні відступи секції.
     * Горизонтальний padding не впливає на центрування.
     */

    .single-product-faq {
        padding:
            0
            clamp(
                24px,
                calc(6.75px + 1.065vw),
                48px
            )
            clamp(
                18px,
                calc(5.06px + 0.799vw),
                36px
            );
    }


    /*
     * 1620px → 625px
     * 3875px → 1040px
     *
     * Контейнер росте разом зі шрифтами,
     * щоб питання не ламалися на зайві рядки.
     */

    .single-product-faq-inner {
        max-width: clamp(
            625px,
            calc(326.89px + 18.402vw),
            1040px
        );
    }


    /*
     * Заголовок:
     * 1620px → 36px
     * 3875px → 60px
     */

    .single-product-faq-title {
        margin-bottom: clamp(
            40px,
            calc(13.41px + 1.641vw),
            77px
        );

        font-size: clamp(
            36px,
            calc(18.76px + 1.064vw),
            60px
        );

        letter-spacing: -0.02em;
    }


    /*
     * Рядок питання.
     */

    .single-product-faq-question {
        min-height: clamp(
            58px,
            calc(29.25px + 1.775vw),
            98px
        );

        gap: clamp(
            24px,
            calc(6.75px + 1.065vw),
            48px
        );

        padding:
            clamp(
                18px,
                calc(5.06px + 0.799vw),
                36px
            )
            0;
    }


    /*
     * Текст питання:
     * 1620px → 12px
     * 3875px → 24px
     */

    .single-product-faq-question-text {
        font-size: clamp(
            12px,
            calc(3.38px + 0.532vw),
            24px
        );

        line-height: 1.3;
        letter-spacing: 0.015em;
    }


    /*
     * Іконка питання.
     */

    .single-product-faq-icon {
        width: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );

        height: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );

        flex-basis: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );
    }

    .single-product-faq-icon svg {
        width: clamp(
            10px,
            calc(2.81px + 0.444vw),
            20px
        );

        height: clamp(
            6px,
            calc(1.69px + 0.266vw),
            12px
        );
    }


    /*
     * Текст відповіді:
     * 1620px → 14px
     * 3875px → 24px
     */

    .single-product-faq-answer {
        padding-right: clamp(
            34px,
            calc(9.56px + 1.508vw),
            68px
        );

        font-size: clamp(
            14px,
            calc(6.82px + 0.443vw),
            24px
        );

        line-height: 1.5;
        letter-spacing: 0.01em;
    }

    .single-product-faq-item[open]
    .single-product-faq-answer {
        padding-bottom: clamp(
            20px,
            calc(5.63px + 0.887vw),
            40px
        );
    }

    .single-product-faq-item.is-closing
    .single-product-faq-answer {
        padding-bottom: 0;
    }

    .single-product-faq-answer p {
        margin-bottom: clamp(
            5px,
            calc(1.41px + 0.222vw),
            10px
        );
    }

    .single-product-faq-answer a {
        text-underline-offset: clamp(
            3px,
            calc(0.84px + 0.133vw),
            6px
        );
    }
}





/* =========================================================
   ONE CLICK MODAL
========================================================= */
.one-click-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.25s ease,
        visibility 0.25s ease;
}

.one-click-modal.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* Overlay */
.one-click-modal-overlay {
    position: absolute;
    inset: 0;

    background: rgba(0, 0, 0, 0.45);
    cursor: pointer;
}

/* Modal window */
.one-click-modal-window {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;

    width: min(calc(100% - 32px), 520px);
    max-height: calc(100vh - 40px);

    padding: 30px;

    overflow-y: auto;

    background: var(--color-background);
    color: #000000;

    transform: translate(-50%, -50%);
    box-sizing: border-box;
}

/* Close button */
.one-click-modal-close {
    position: absolute;
    top: 20px;
    right: 22px;
    z-index: 5;

    width: 34px;
    height: 34px;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;
    color: #040D1A;

    font-size: 0;
    line-height: 0;

    cursor: pointer;
}

.one-click-modal-close::before,
.one-click-modal-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 1px;
    background: currentColor;
    transform-origin: center;
}

.one-click-modal-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.one-click-modal-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.one-click-modal-close:hover {
    opacity: 0.6;
}

/* Heading */
.one-click-modal-window h2 {
    margin: 0 45px 18px 0;
    font-family: var(--font-decorative);
    font-size: 36px;
    font-weight: 300;
    line-height: 1;
    color: #040D1A;
}

/* Description */
.one-click-modal-window p {
    margin: 0 0 24px;

    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.5;

    color: #040D1A;
}

/* Product name */
.one-click-modal-product {
    margin: 0 0 22px;

    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;

    color: #040D1A;
}


/* Contact Form 7 */
.one-click-modal-form label {
    display: block;
    margin: 0 0 18px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    color: #040D1A;
}

.one-click-modal-form .wpcf7-form-control-wrap {
    display: block;
}

.one-click-modal-form input[type="text"],
.one-click-modal-form input[type="tel"],
.one-click-modal-form input[type="email"] {
    display: block;

    width: 100%;
    height: auto;
    margin: 8px 0 0;
    padding: 15px 0;
    border: 0;
    border-bottom: 1px solid rgba(184, 184, 184, 0.35);
    border-radius: 0;
    background: transparent;
    color: #040D1A;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.4;
    outline: none;
    box-shadow: none;
    box-sizing: border-box;
}

.one-click-modal-form input[type="text"]:focus,
.one-click-modal-form input[type="tel"]:focus,
.one-click-modal-form input[type="email"]:focus {
    border-bottom-color: #040D1A;
}

.one-click-modal-form input::placeholder {
    color: #8a8a8a;
    opacity: 1;
}

/* Validation */
.one-click-modal-form .wpcf7-not-valid-tip {
    display: block;

    margin-top: 6px;

    font-size: 12px;
    line-height: 1.4;
}

.one-click-modal-form .wpcf7-response-output {
    margin: 18px 0 0 !important;
    padding: 12px 14px !important;

    font-size: 13px;
    line-height: 1.4;
}

/* Submit */

.one-click-modal-form input[type="submit"] {
    display: block;

    width: 100%;
    min-height: 50px;

    margin: 12px 0 0;
    padding: 13px 20px;

    border: 1px solid #040D1A;
    border-radius: 0;

    background: #040D1A;
    color: #ffffff;

    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;

    text-transform: uppercase;

    cursor: pointer;
    box-sizing: border-box;

    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.one-click-modal-form input[type="submit"]:hover {
    background: transparent;
    color: #040D1A;
}

.one-click-modal-form input[type="submit"]:disabled {
    opacity: 0.6;
    cursor: wait;
}


.one-click-modal-form .wpcf7-spinner {
    display: block;
    margin: 12px auto 0;
}


body.one-click-open {
    overflow: hidden;
}


@media (max-width: 575px) {
    .one-click-modal-window {
        width: calc(100% - 24px);
        max-height: calc(100vh - 24px);

        padding: 26px 20px;
    }

    .one-click-modal-close {
        top: 14px;
        right: 14px;
    }

    .one-click-modal-window h2 {
        margin-right: 40px;
        font-size: 30px;
    }
}


/* =========================================================
   PRODUCT STICKY CTA — BASE
========================================================= */

.product-sticky-cta {
    display: none;
}


/* =========================================================
   PRODUCT STICKY CTA — MOBILE
========================================================= */

@media (max-width: 767px) {
    .product-sticky-cta {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9500;

        display: block;
        width: 100%;

        padding:
            12px
            14px
            calc(12px + env(safe-area-inset-bottom));

        border-top: 1px solid rgba(4, 13, 26, 0.16);
        background: #f7f4f0;
        color: #040D1A;

        box-shadow:
            0 -10px 28px rgba(4, 13, 26, 0.08);

        box-sizing: border-box;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform: translateY(calc(100% + 2px));

        transition:
            transform 0.28s ease,
            opacity 0.22s ease,
            visibility 0.28s ease;
    }

    .product-sticky-cta.is-visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .product-sticky-cta__inner {
        width: 100%;
        display: grid;
        gap: 10px;
    }

    /* Назва та ціна */

    .product-sticky-cta__header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;

        width: 100%;
        min-width: 0;
    }

    .product-sticky-cta__title {
        min-width: 0;
        margin: 0;

        color: #040D1A;
        font-family: var(--font-decorative);
        font-size: 17px;
        font-weight: 400;
        font-style: normal;
        line-height: 1.1;
        letter-spacing: -0.3px;

        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .product-sticky-cta__price {
        flex: 0 0 auto;

        color: #040D1A;
        font-family: var(--font-body);
        font-size: 12px;
        font-weight: 400;
        line-height: 1.2;
        white-space: nowrap;
    }

    .product-sticky-cta__price .single-price-old {
        margin-right: 6px;
        color: #777777;
        text-decoration: line-through;
    }

    .product-sticky-cta__price .single-price-current,
    .product-sticky-cta__price .single-price-from {
        color: #040D1A;
    }

    /* Кнопка */

    .product-sticky-cta__button {
        width: 100%;
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;

        margin: 0;
        padding: 0 20px;

        border: 1px solid #040D1A;
        border-radius: 0;

        background: #040D1A;
        color: #ffffff;

        font-family: var(--font-body);
        font-size: 12px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.48px;
        text-align: center;
        text-transform: uppercase;

        cursor: pointer;
        box-sizing: border-box;

        transition:
            background-color 0.2s ease,
            color 0.2s ease,
            opacity 0.2s ease;
    }

    .product-sticky-cta__button:disabled {
        opacity: 0.42;
        cursor: not-allowed;
    }

    .product-sticky-cta__button:not(:disabled):active {
        background: transparent;
        color: #040D1A;
    }
}


/* =========================================================
   SINGLE PRODUCT FAQ — LARGE / ULTRA-WIDE
   1620px → стандартні розміри
   3875px → максимальні розміри
========================================================= */

@media (min-width: 1620px) {

    /*
     * Зовнішні відступи секції.
     * Горизонтальний padding не впливає на центрування.
     */

    .single-product-faq {
        padding:
            0
            clamp(
                24px,
                calc(6.75px + 1.065vw),
                48px
            )
            clamp(
                18px,
                calc(5.06px + 0.799vw),
                36px
            );
    }


    /*
     * 1620px → 625px
     * 3875px → 1040px
     *
     * Контейнер росте разом зі шрифтами,
     * щоб питання не ламалися на зайві рядки.
     */

    .single-product-faq-inner {
        max-width: clamp(
            625px,
            calc(326.89px + 18.402vw),
            1040px
        );
    }


    /*
     * Заголовок:
     * 1620px → 36px
     * 3875px → 60px
     */

    .single-product-faq-title {
        margin-bottom: clamp(
            40px,
            calc(13.41px + 1.641vw),
            77px
        );

        font-size: clamp(
            36px,
            calc(18.76px + 1.064vw),
            60px
        );

        letter-spacing: -0.02em;
    }


    /*
     * Рядок питання.
     */

    .single-product-faq-question {
        min-height: clamp(
            58px,
            calc(29.25px + 1.775vw),
            98px
        );

        gap: clamp(
            24px,
            calc(6.75px + 1.065vw),
            48px
        );

        padding:
            clamp(
                18px,
                calc(5.06px + 0.799vw),
                36px
            )
            0;
    }


    /*
     * Текст питання:
     * 1620px → 12px
     * 3875px → 24px
     */

    .single-product-faq-question-text {
        font-size: clamp(
            12px,
            calc(3.38px + 0.532vw),
            24px
        );

        line-height: 1.3;
        letter-spacing: 0.015em;
    }


    /*
     * Іконка питання.
     */

    .single-product-faq-icon {
        width: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );

        height: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );

        flex-basis: clamp(
            14px,
            calc(3.94px + 0.621vw),
            28px
        );
    }

    .single-product-faq-icon svg {
        width: clamp(
            10px,
            calc(2.81px + 0.444vw),
            20px
        );

        height: clamp(
            6px,
            calc(1.69px + 0.266vw),
            12px
        );
    }


    /*
     * Текст відповіді:
     * 1620px → 14px
     * 3875px → 24px
     */

    .single-product-faq-answer {
        padding-right: clamp(
            34px,
            calc(9.56px + 1.508vw),
            68px
        );

        font-size: clamp(
            14px,
            calc(6.82px + 0.443vw),
            24px
        );

        line-height: 1.5;
        letter-spacing: 0.01em;
    }

    .single-product-faq-item[open]
    .single-product-faq-answer {
        padding-bottom: clamp(
            20px,
            calc(5.63px + 0.887vw),
            40px
        );
    }

    .single-product-faq-item.is-closing
    .single-product-faq-answer {
        padding-bottom: 0;
    }

    .single-product-faq-answer p {
        margin-bottom: clamp(
            5px,
            calc(1.41px + 0.222vw),
            10px
        );
    }

    .single-product-faq-answer a {
        text-underline-offset: clamp(
            3px,
            calc(0.84px + 0.133vw),
            6px
        );
    }
}