/* ---------- WooCommerce conflict reset ---------- */
.woocommerce .product-gallery__image,
.woocommerce-page .product-gallery__image,
.woocommerce .product-gallery__thumb-image,
.woocommerce-page .product-gallery__thumb-image {
    height: 100% !important;
    max-width: 100% !important;
}

.woocommerce div.product {
    float: none !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
    float: none !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

.woocommerce .product-page button.product-cart-button.button,
.woocommerce-page .product-page button.product-cart-button.button,
.woocommerce .product-page button.product-cart-button.button.alt,
.woocommerce .product-page button.product-cart-button.button.single_add_to_cart_button {
    background: #e13122 !important;
    color: #ffffff !important;
    border: 1px solid #e13122 !important;
    border-radius: 0 !important;
    font-family: "Alumni Sans", sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    line-height: 1.2 !important;
    padding: 10px 20px !important;
    letter-spacing: 0.48px !important;
    font-size: 16px !important;
    margin: 0 !important;
    left: auto !important;
    text-decoration: none !important;
    overflow: visible !important;
    cursor: pointer !important;
    position: relative !important;
    display: inline-grid !important;
    box-shadow: none !important;
    text-shadow: none !important;
    background-image: none !important;
}

/* === FIX: mobile icon-only cart button was losing its icon/size
   because the woo-reset rule above has higher specificity and
   both use !important — this rule now matches it (5 classes + tag)
   so the mobile overrides actually win. === */
@media (max-width: 767px) {
    .woocommerce .product-page .product-purchase__actions button.product-cart-button.button,
    .woocommerce-page .product-page .product-purchase__actions button.product-cart-button.button,
    .woocommerce .product-page .product-sticky-buy button.product-cart-button.button,
    .woocommerce-page .product-page .product-sticky-buy button.product-cart-button.button {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        padding: 0 !important;
        font-size: 0 !important;
        background-color: transparent !important;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-position: center !important;
        background-size: 24px !important;
        border: none !important;
        box-shadow: none !important;
    }

    .woocommerce .product-page .product-purchase__actions .product-cart-button__text,
    .woocommerce-page .product-page .product-purchase__actions .product-cart-button__text,
    .woocommerce .product-page .product-sticky-buy .product-cart-button__text,
    .woocommerce-page .product-page .product-sticky-buy .product-cart-button__text {
        display: none !important;
    }
}

.woocommerce .product-favorite {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.woocommerce .product-gallery__image-button {
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.woocommerce .product-description,
.woocommerce-page .product-description,
.woocommerce-product-details__short-description,
.woocommerce .product-description *,
.woocommerce-page .product-description *,
.woocommerce-product-details__short-description * {
    color: var(--theme-text-soft) !important;
    font-family: 'Roboto', sans-serif !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

.woocommerce-product-gallery__trigger,
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery .flex-control-thumbs,
.woocommerce-product-gallery__wrapper {
    display: none !important;
}

/* === Product page styles (exact from product.html) === */
html.is-product-modal-open,
html.is-product-modal-open body {
    overflow: hidden;
}

.product-page {
    padding-top: 32px;
    padding-bottom: 100px;
    background: var(--theme-page-bg);
}

.product-layout {
    display: grid;
    gap: 32px;
}

.product-gallery {
    width: 100%;
    max-width: 590px;
    min-width: 0;
    margin-inline: auto;
}

.product-gallery__stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 480px);
    max-width: 480px;
    margin-inline: auto;
    overflow: hidden;
    aspect-ratio: 480 / 727;
    background: var(--theme-surface-bg);
}

.product-gallery__image-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

/* === FIX: main gallery image now fills the stage box completely
   (object-fit: cover) instead of leaving empty space with "contain" === */
.product-gallery__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    cursor: zoom-in;
}

.product-gallery__arrows {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    padding-inline: 12px;
    transform: translateY(-50%);
    pointer-events: none;
}

.product-gallery__arrow {
    pointer-events: auto;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-gallery__progress {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 3;
    display: flex;
    height: 4px;
    pointer-events: none;
}

.product-gallery__progress-item {
    flex: 1 1 0;
    min-width: 0;
    background: var(--theme-text-main);
}

.product-gallery__progress-item:nth-child(n + 3) {
    margin-left: 4px;
}

.product-gallery__progress-item.is-filled {
    background: var(--theme-accent);
}

.product-gallery__thumbs-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
    padding-top: 16px;
}

.product-gallery__thumbs {
    align-items: flex-start;
    display: flex;
    flex: 1 1 auto;
    gap: 10px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;   /* Firefox: hide scrollbar */
    -ms-overflow-style: none; /* IE/Edge legacy: hide scrollbar */
}

.product-gallery__thumbs::-webkit-scrollbar {
    display: none;   /* Chrome/Safari/Edge Chromium: hide scrollbar */
}

/* === FIX: thumb box now uses the same aspect-ratio as the main stage,
   so the image fills the whole box instead of floating in the middle === */
.product-gallery__thumb {
    position: relative;
    flex: 0 0 66px;
    width: 66px;
    aspect-ratio: 480 / 727;
    overflow: hidden;
    opacity: 0.55;
    transition: opacity var(--duration-main) var(--ease-main);
    border: none;
    background: var(--theme-surface-bg);
    padding: 0;
    cursor: pointer;
}

.product-gallery__thumb.is-active {
    opacity: 1;
}

/* === FIX: image now fills the thumb box with object-fit: cover
   instead of height: auto (which left empty space / "carpet" look) === */
.product-gallery__thumb-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.product-info {
    display: flex;
    flex-direction: column;
    gap: 32px;
    min-width: 0;
}

.product-info__title {
    color: var(--theme-text-main);
}

.product-details-buy {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 8px;
}

.product-purchase {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    box-sizing: border-box;
    padding: 10px var(--container-pad-mobile);
    overflow: hidden;
    background: #0e0c0c;
}

.product-purchase__prices {
    display: flex;
    align-items: center;
    gap: 20px;
}

.product-purchase__price-current {
    color: var(--theme-text-main);
}

.product-purchase__price-old {
    color: var(--theme-text-muted);
    text-decoration: line-through;
    text-decoration-thickness: 2px;
}

.product-purchase__line {
    flex: 0 0 1px;
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.14);
}

.product-purchase__actions {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 183px) auto;
    align-items: center;
    justify-content: stretch;
    gap: 16px;
    width: 100%;
    min-width: 0;
}

.product-purchase__quantity {
    grid-column: 1;
    justify-self: start;
}

.product-purchase__actions .product-cart-button {
    grid-column: 3;
    justify-self: end;
    width: min(183px, 100%);
    max-width: 183px;
}

.product-purchase__favorite {
    grid-column: 4;
    justify-self: end;
}

.product-quantity {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: var(--theme-text-main);
}

.product-quantity__button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--theme-text-main);
    transition: color var(--duration-main) var(--ease-main), background-color var(--duration-main) var(--ease-main);
    flex-shrink: 0;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-cart-button {
    display: inline-grid;
    grid-template-areas: "label";
    place-items: center;
    box-sizing: border-box;
    width: max-content;
    max-width: 183px;
    min-width: 0;
    white-space: nowrap;
    flex: 0 0 auto;
    border: none;
    cursor: pointer;
}

.product-cart-button::before,
.product-cart-button::after,
.product-cart-button__text {
    grid-area: label;
    max-width: 100%;
}

.product-cart-button__text {
    overflow: hidden;
    text-overflow: ellipsis;
}

.product-cart-button::before,
.product-cart-button::after {
    visibility: hidden;
    pointer-events: none;
}

.product-cart-button::before {
    content: attr(data-cart-idle-label);
}

.product-cart-button::after {
    content: attr(data-cart-active-label);
}

.product-purchase .product-cart-button,
.product-sticky-buy .product-cart-button {
    width: min(183px, 100%);
    max-width: 183px;
    min-width: 0;
}

.product-favorite {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    color: var(--theme-text-main);
    transition: color var(--duration-main) var(--ease-main), background-color var(--duration-main) var(--ease-main);
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-favorite.is-active {
    color: var(--theme-accent);
}

.product-favorite__icon {
    display: block;
    width: 30px;
    height: 26px;
    background: currentColor;
    mask: url("../../images/icon-heart-outline.svg") center / contain no-repeat;
    -webkit-mask: url("../../images/icon-heart-outline.svg") center / contain no-repeat;
}

.product-favorite.is-active .product-favorite__icon {
    mask-image: url("../../images/icon-heart-filled.svg");
    -webkit-mask-image: url("../../images/icon-heart-filled.svg");
}

/* TI Wishlist integration */
.product-favorite .tinvwl_add_to_wishlist_button {
    position: absolute !important;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    z-index: 2;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    font-size: 0 !important;
}
.product-favorite .tinvwl_add_to_wishlist-text {
    display: none !important;
}

.product-bonus {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 8px;
    color: var(--theme-text-soft);
}

.product-bonus__icon,
.product-bonus__info {
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    background: transparent;
    border-radius: 0;
}

.product-bonus__icon {
    width: 40px;
    height: 40px;
}

.product-bonus__info {
    width: 24px;
    height: 24px;
    border: none;
    padding: 0;
    cursor: pointer;
}

.product-bonus__svg {
    display: block;
    flex: 0 0 auto;
}

.product-bonus__text,
.product-description {
    color: var(--theme-text-soft);
}

.product-bonus__points {
    color: var(--theme-text-main);
    font-weight: inherit;
}

.product-details {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.product-tabs {
    justify-content: flex-start;
}

.product-tabs__item {
    font-size: 20px;
    font-weight: var(--fw-black);
    line-height: var(--lh-base);
    text-transform: uppercase;
    border: none;
    background: none;
    padding: 0;
    color: var(--theme-text-muted);
    cursor: pointer;
}

.product-tabs__item.state-nav__item--active {
    color: var(--theme-text-main);
}

.product-panel {
    display: none;
}

.product-panel.is-active {
    display: block;
}

.product-specs {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 760px;
    margin-top: 0;
    gap: 8px;
    font-family: 'Roboto', sans-serif;
}

.product-specs__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
}

.product-specs__row:nth-child(even) {
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.05) 50%, rgba(255,255,255,0) 100%);
}

.product-specs__term {
    color: var(--theme-text-muted);
    font-family: 'Roboto', sans-serif;
}

.product-specs__value {
    margin: 0;
    color: var(--theme-text-main);
    font-family: 'Roboto', sans-serif;
}

.product-specs__link {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.product-authors {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.product-author-card {
    display: grid !important;
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    width: 100% !important;
    color: inherit;
    text-decoration: none;
    transition: background-color var(--duration-main) var(--ease-main), box-shadow var(--duration-main) var(--ease-main);
}

.product-author-card:focus-visible {
    background-color: var(--theme-border-subtle);
    box-shadow: 0 0 0 5px var(--theme-border-subtle);
    outline: none;
}

.product-author-card__media {
    width: 50px;
    height: 50px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--theme-surface-bg);
}

.product-author-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-author-card__body {
    display: flex;
    flex-direction: column;
}

.product-author-card__name {
    color: var(--theme-text-main);
    font-weight: var(--fw-regular);
}

.product-author-card__role {
    color: var(--theme-text-muted);
}

.product-recommendations {
    padding-top: 100px;
}

.product-recommendations__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
}

.product-recommendations__title {
    width: 100%;
}

.product-recommendations__body {
    width: min(100%, 335px);
    max-width: 335px;
    min-width: 0;
    margin-inline: auto;
    overflow: visible;
}

.product-recommendations__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: start;
    gap: 32px 16px;
    width: 100%;
    min-width: 0;
    list-style: none;
    padding: 0;
    margin: 0;
}

.product-recommendations__item {
    width: 100%;
    max-width: 213px;
    min-width: 0;
    margin-inline: auto;
}

.product-recommendations__link {
    display: block;
    width: 100%;
    max-width: 213px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.product-recommendations__media {
    position: relative;
    width: 100%;
    max-width: 213px;
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 213 / 323;
    background: var(--theme-surface-bg);
}

.product-recommendations__image {
    display: block;
    width: 100%;
    max-width: 213px;
    height: 100%;
    object-fit: cover;
}

.product-recommendations__content {
    padding-top: 16px;
}

.product-recommendations__price {
    color: var(--theme-text-soft);
}

.product-recommendations__link:focus-visible {
    outline: none;
}

.product-sticky-buy {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 120;
    display: none;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 20px calc(10px + env(safe-area-inset-bottom));
    background: rgba(14, 12, 12, 0.96);
    transform: translateY(100%);
    transition: transform var(--duration-main) var(--ease-main);
}

.product-sticky-buy.is-visible {
    transform: translateY(0);
}

.product-toast {
    position: fixed;
    top: 60px;
    right: 20px;
    z-index: 220;
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 10px 10px 10px 20px;
    color: var(--theme-text-main);
    background: #0e0c0c;
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    transition: opacity var(--duration-main) var(--ease-main), transform var(--duration-main) var(--ease-main);
}

.product-toast__wrapper-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.product-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.product-toast__link {
    font: inherit;
    color: var(--theme-text-soft);
    text-decoration: underline;
}

.product-toast__close {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-modal {
    position: fixed;
    inset: 0;
    z-index: 210;
    display: none;
    background: rgba(0, 0, 0, 0.9);
}

.product-modal.is-open {
    display: block;
}

.product-modal__dialog {
    --product-modal-pad-x: 20px;
    --product-modal-pad-top: 64px;
    --product-modal-pad-bottom: 40px;
    position: relative;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: var(--product-modal-pad-top) var(--product-modal-pad-x) var(--product-modal-pad-bottom);
}

.product-modal__close {
    position: absolute;
    top: 13px;
    right: 20px;
    width: 24px;
    height: 24px;
    transition: background-color var(--duration-main) var(--ease-main);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-modal__close > svg {
    width: 100%;
    height: 100%;
}

.product-modal__media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 900px);
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/* NOTE: modal image intentionally keeps object-fit: contain — it's a
   full-screen lightbox and the whole image should be visible, unlike
   the gallery stage/thumbs which crop to fill their fixed boxes. */
.product-modal__image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
}

.product-modal__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.product-modal__arrow--prev {
    left: 20px;
}

.product-modal__arrow--next {
    right: 20px;
}

@media (hover: hover) and (pointer: fine) {
    .product-quantity__button:hover,
    .product-favorite:hover,
    .product-toast__close:hover,
    .product-modal__close:hover {
        background-color: rgba(255, 255, 255, 0.1);
    }

    .product-author-card:hover {
        background-color: var(--theme-border-subtle);
        box-shadow: 0 0 0 5px var(--theme-border-subtle);
    }

    .product-recommendations__link:hover ~ .product-card__hover-panel,
    .product-recommendations__link:focus-visible ~ .product-card__hover-panel {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .product-recommendations__link:hover ~ .product-card__line,
    .product-recommendations__link:focus-visible ~ .product-card__line {
        opacity: 1;
    }

    .product-recommendations__item:not(.is-favorite) .product-recommendations__link:hover ~ .product-card__line--favorite::before,
    .product-recommendations__item:not(.is-favorite) .product-recommendations__link:focus-visible ~ .product-card__line--favorite::before {
        width: 50%;
    }
}

@media (max-width: 767px) {
    .product-gallery__thumbs {
    align-items: flex-start;
        gap: 8px;
    }

    .product-gallery__thumb {
        flex: 0 0 calc(65.455px * 33 / 50);
        width: calc(65.455px * 33 / 50);
        height: 65.455px;
        
    }

    .product-sticky-buy {
        display: grid;
    }

    .product-modal__dialog {
        --product-modal-pad-x: 20px;
        --product-modal-pad-top: 50px;
        --product-modal-pad-bottom: 150px;
    }

    .product-modal__media {
        width: 100%;
        height: 100%;
    }

    .product-modal__arrow {
        top: auto;
        bottom: 98px;
        transform: none;
    }

    .product-modal__arrow--prev {
        right: auto;
        left: 50%;
        transform: translateX(calc(-100% - 5px));
    }

    .product-modal__arrow--next {
        right: auto;
        left: 50%;
        transform: translateX(5px);
    }

    .product-purchase__actions .product-cart-button {
        width: 48px;
        height: 48px;
        min-width: 48px;
        padding: 0;
        font-size: 0;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 24px;
    }
    .product-purchase__actions .product-cart-button__text {
        display: none;
    }
    .product-purchase__actions {
        gap: 12px;
    }
    .product-purchase__favorite {
        width: 48px;
        height: 48px;
    }
}

@media (min-width: 640px) and (max-width: 767px) {
    .product-recommendations__body {
        width: 100%;
        max-width: none;
    }

    .product-recommendations__list {
        grid-template-columns: repeat(3, minmax(0, 213px));
        justify-content: center;
    }
}

@media (min-width: 768px) {
    .product-page {
        padding-top: 50px;
        padding-bottom: 140px;
    }

    .product-recommendations {
        padding-top: 120px;
    }

    .product-recommendations__inner {
        gap: 40px;
    }

    .product-gallery {
        --product-gallery-thumb-width: 70px;
        display: grid;
        grid-template-columns: minmax(0, 480px) var(--product-gallery-thumb-width);
        justify-content: center;
        align-items: start;
        gap: 16px;
        max-width: 566px;
    }

    .product-gallery__stage {
        width: 100%;
        max-width: 480px;
        margin-inline: 0;
    }

    .product-gallery__progress {
        display: none;
    }

    .product-gallery__thumbs-wrap {
        width: var(--product-gallery-thumb-width);
        max-width: none;
        margin-inline: 0;
        padding-top: 0;
    }

    .product-gallery__thumbs {
    align-items: flex-start;
        flex-direction: column;
        max-height: 727px;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .product-gallery__thumb {
        flex: 0 0 auto;
        width: var(--product-gallery-thumb-width);
    }

    .product-modal__dialog {
        --product-modal-pad-x: 150px;
        --product-modal-pad-top: 20px;
        --product-modal-pad-bottom: 20px;
    }

    .product-modal__close {
        width: 32px;
        height: 32px;
    }

    .product-purchase {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        column-gap: 20px;
        width: 100%;
        max-width: 100%;
        margin-inline: 0;
        padding: 10px 20px;
    }

    .product-purchase__prices {
        grid-column: 1;
        min-width: 0;
        gap: 24px;
    }

    .product-purchase__line {
        display: none;
    }

    .product-purchase__actions {
        grid-column: 2;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) minmax(0, 183px) auto;
        align-items: center;
        justify-content: stretch;
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        gap: 20px;
    }

    .product-purchase__quantity {
        grid-column: 1;
    }

    .product-purchase__actions .product-cart-button {
        grid-column: 3;
        justify-self: end;
        width: min(183px, 100%);
        max-width: 183px;
    }

    .product-purchase__favorite {
        grid-column: 4;
        justify-self: end;
    }

    .product-sticky-buy {
        grid-template-columns: auto auto;
        justify-content: space-between;
    }

    .product-sticky-buy .product-cart-button {
        justify-self: end;
    }

    .product-recommendations__body {
        width: 100%;
        max-width: none;
        overflow: visible;
    }

    .product-recommendations__list {
        grid-template-columns: repeat(auto-fit, minmax(157px, 213px));
        justify-content: center;
        gap: 32px 20px;
    }
}

@media (min-width: 1025px) {
    .product-page {
        padding-top: 60px;
        padding-bottom: 180px;
    }

    .product-layout {
        grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);
        align-items: start;
        gap: clamp(36px, 4vw, 64px);
    }

    .product-gallery {
        --product-gallery-stage-width: clamp(300px, 31vw, 360px);
        display: block;
        width: 100%;
        max-width: 380px;
        margin-inline: 0;
    }

    .product-modal__close {
        top: 20px;
        width: 40px;
        height: 40px;
    }

    .product-gallery__stage {
        width: min(100%, var(--product-gallery-stage-width));
        max-width: var(--product-gallery-stage-width);
        margin-inline: auto;
    }

    .product-gallery__progress {
        display: flex;
    }

    .product-gallery__thumbs-wrap {
        width: min(100%, var(--product-gallery-stage-width));
        max-width: var(--product-gallery-stage-width);
        margin-inline: auto;
        padding-top: 16px;
    }

    .product-gallery__thumbs {
    align-items: flex-start;
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .product-gallery__thumb {
        flex: 0 0 66px;
        width: 66px;
    }

    .product-info {
        width: 100%;
        max-width: none;
        gap: 36px;
        margin-inline: 0;
    }

    .product-details-buy {
        gap: 10px;
    }

    .product-purchase {
        display: flex;
        flex-direction: row !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 16px;
        width: 100%;
        max-width: 100%;
        padding: 10px 20px;
    }

    .product-purchase__prices {
        flex: 0 0 auto;
        display: flex;
        flex-direction: row !important;
        flex-wrap: nowrap;
        align-items: center;
        gap: 16px;
    }

    .product-purchase__line {
        display: none !important;
    }

    .product-purchase__actions {
        flex: 1 1 auto;
        display: inline-flex !important;
        align-items: center;
        gap: 12px;
        justify-content: flex-end;
        margin-left: 0 !important;
        padding-left: 0 !important;
        width: auto;
    }

    .product-purchase__actions .product-cart-button {
        width: auto;
        min-width: 120px;
        max-width: 160px;
        font-size: 16px;
    }

    .product-purchase__favorite {
        flex-shrink: 0;
    }

    .product-purchase .product-cart-button,
    .product-sticky-buy .product-cart-button {
        width: min(160px, 100%);
        max-width: 160px;
    }

@media (min-width: 1400px) {
    .product-purchase {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        justify-content: flex-start;
        gap: 16px;
        width: 100%;
        max-width: 100%;
        padding: 10px 20px;
    }

    .product-purchase__prices {
        width: 100%;
        gap: 32px;
        justify-content: flex-start;
    }

    .product-purchase__line {
        display: block;
    }

    .product-purchase__actions {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) minmax(0, 183px) auto;
        align-items: center;
        justify-content: stretch;
        gap: 20px;
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }

    .product-purchase__quantity {
        grid-column: 1;
        justify-self: start;
    }

    .product-purchase__actions .product-cart-button {
        grid-column: 3;
        justify-self: end;
    }

    .product-purchase__favorite {
        grid-column: 4;
        justify-self: end;
    }

    .product-purchase__quantity,
    .product-purchase__favorite {
        display: inline-flex;
    }

    .product-purchase .product-cart-button,
    .product-sticky-buy .product-cart-button {
        width: min(183px, 100%);
        max-width: 183px;
    }
}

    .product-toast {
        top: 84px;
    }

    .product-bonus {
        gap: 10px;
    }

    .product-details {
        gap: 20px;
    }

    .product-authors {
        gap: 20px;
    }

    .product-tabs__item {
        font-size: 30px;
    }

    .product-specs__row {
        grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        padding-block: 0;
    }

    .product-recommendations {
        padding-top: 140px;
    }

    .product-recommendations__inner {
        gap: 50px;
    }

    .product-recommendations__body {
        width: min(100%, 1440px);
        max-width: 1440px;
        overflow: visible;
    }

    .product-recommendations__list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        justify-content: start;
        gap: 40px;
        width: 100%;
    }

    .product-recommendations__item {
        width: 100%;
        max-width: 330px;
        min-width: 0;
        margin-inline: 0;
    }

    .product-recommendations__link,
    .product-recommendations__media,
    .product-recommendations__image {
        width: 100%;
        max-width: 330px;
    }

    .product-recommendations__media {
        aspect-ratio: 330 / 499;
    }
}

@media (min-width: 1400px) {
    .product-page {
        padding-top: 80px;
        padding-bottom: 220px;
    }

    .product-recommendations {
        padding-top: 160px;
    }

    .product-modal__close {
        width: 64px;
        height: 64px;
    }

    .product-layout {
        grid-template-columns: minmax(420px, 500px) minmax(0, 1fr);
        justify-content: center;
        align-items: start;
        gap: 60px;
    }

    .product-gallery {
        --product-gallery-stage-width: clamp(360px, 29vw, 400px);
        --product-gallery-thumb-width: 70px;
        display: grid;
        grid-template-columns: minmax(0, var(--product-gallery-stage-width)) var(--product-gallery-thumb-width);
        justify-content: start;
        align-items: start;
        gap: 16px;
        width: 100%;
        max-width: calc(var(--product-gallery-stage-width) + var(--product-gallery-thumb-width) + 16px);
        margin-inline: 0;
    }

    .product-gallery__stage {
        width: 100%;
        max-width: var(--product-gallery-stage-width);
        margin-inline: 0;
    }

    .product-gallery__progress {
        display: none;
    }

    .product-gallery__thumbs-wrap {
        width: var(--product-gallery-thumb-width);
        max-width: none;
        margin-inline: 0;
        padding-top: 0;
    }

    .product-gallery__thumbs {
    align-items: flex-start;
        flex-direction: column;
        max-height: clamp(545px, 44vw, 606px);
        overflow-x: hidden;
        overflow-y: auto;
    }

    .product-gallery__thumb {
        flex: 0 0 auto;
        width: var(--product-gallery-thumb-width);
    }

    .product-info {
        width: 100%;
        max-width: none;
        gap: 40px;
    }

    .product-purchase {
        display: flex;
        flex-flow: row wrap;
        align-items: center;
        justify-content: space-between;
        gap: 20px 24px;
        padding: 10px 20px;
    }

    .product-purchase__prices {
        width: auto;
        flex: 0 0 auto;
        gap: 32px;
    }

    .product-purchase__line {
        display: none;
    }

    .product-purchase__actions {
        display: inline-grid;
        grid-template-columns: auto max-content auto;
        align-items: center;
        justify-content: start;
        gap: 20px;
        width: max-content;
        max-width: 100%;
        margin-left: auto;
    }

    .product-purchase__quantity {
        grid-column: 1;
    }

    .product-purchase__actions .product-cart-button {
        grid-column: 2;
        justify-self: start;
        width: max-content;
        max-width: 183px;
    }

    .product-purchase__favorite {
        grid-column: 3;
        justify-self: end;
    }

    .product-tabs__item {
        font-size: 34px;
    }

    .product-recommendations__inner {
        gap: 60px;
    }

    .product-recommendations__content {
        padding-top: 20px;
    }
}

@media (min-width: 1600px) {
    .product-layout {
        grid-template-columns: minmax(0, 590px) minmax(0, 1fr);
        gap: 80px;
    }

    .product-gallery {
        --product-gallery-thumb-width: 90px;
        display: grid;
        grid-template-columns: minmax(0, 480px) var(--product-gallery-thumb-width);
        justify-content: start;
        align-items: start;
        gap: 20px;
        max-width: 590px;
    }

    .product-gallery__stage {
        width: 100%;
        max-width: 480px;
        margin-inline: 0;
    }

    .product-gallery__progress {
        display: none;
    }

    .product-gallery__thumbs-wrap {
        width: var(--product-gallery-thumb-width);
        max-width: none;
        padding-top: 0;
    }

    .product-gallery__thumbs {
    align-items: flex-start;
        flex-direction: column;
        max-height: 727px;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .product-gallery__thumb {
        flex: 0 0 auto;
        width: var(--product-gallery-thumb-width);
    }
}
/* === Author modal === */
.product-author-modal {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: none;
    align-items: center;
    justify-content: center;
}

.product-author-modal.is-open {
    display: flex;
}

.product-author-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
    cursor: pointer;
}

.product-author-modal__panel {
    position: relative;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 0 20px 20px;
    color: var(--theme-text-main);
    background: var(--theme-page-bg);
    z-index: 1;
    scrollbar-width: thin;
}

.product-author-modal__panel::-webkit-scrollbar {
    width: 6px;
}

.product-author-modal__panel::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.2);
    border-radius: 3px;
}

.product-author-modal__head {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    height: 50px;
    margin-bottom: 0;
}

.product-author-modal__close {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: background-color var(--duration-main) var(--ease-main);
    -webkit-tap-highlight-color: transparent;
}

.product-author-modal__close::before,
.product-author-modal__close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 2px;
    background: var(--theme-text-main);
    transform-origin: center;
}

.product-author-modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.product-author-modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.product-author-modal__close:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    outline: none;
}

.product-author-modal__inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}

.product-author-modal__body {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}

.product-author-modal__image-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--theme-surface-bg);
    margin: 0 auto;
}

.product-author-modal__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.product-author-modal__intro {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    text-align: center;
}

.product-author-modal__title {
    color: var(--theme-text-main);
}

.product-author-modal__subtitle {
    color: var(--theme-text-muted);
}

.product-author-modal__text {
    color: var(--theme-text-soft);
    font-size: 16px;
    line-height: 1.6;
}

.product-author-modal__section {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.product-author-modal__section-title {
    color: var(--theme-text-main);
}

.product-author-modal__facts-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.product-author-modal__fact {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
}

.product-author-modal__fact-term {
    color: var(--theme-text-muted);
    font-size: 14px;
}

.product-author-modal__fact-value {
    font-weight: 700;
    color: var(--theme-text-main);
    font-size: 16px;
}

@media (hover: hover) and (pointer: fine) {
    .product-author-modal__close:hover {
        background: rgba(255, 255, 255, 0.1);
    }
}

/* === FIX: on mobile/tablet the avatar + name were still centered
   because the base (mobile-first) rules above center everything and
   only the >=1025px block switched to left alignment. This adds an
   explicit <1025px override so the photo sits flush left/top and the
   text is left-aligned, matching the mobile mock. === */
@media (max-width: 1024px) {
    .product-author-modal__panel {
        padding: 0 0 20px;
    }

    .product-author-modal__head {
        position: absolute;
        top: 0;
        right: 0;
        left: auto;
        width: auto;
        height: auto;
        margin: 0;
        padding: 12px;
        z-index: 10;
    }

    .product-author-modal__close {
        background: rgba(0, 0, 0, 0.35);
        border-radius: 50%;
    }

    .product-author-modal__image-wrapper {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        margin: 0;
        align-self: stretch;
    }

    .product-author-modal__intro {
        text-align: left;
        align-items: flex-start;
        padding-inline: 20px;
    }

    .product-author-modal__section {
        padding-inline: 20px;
    }
}

@media (min-width: 1025px) {
    .product-author-modal__panel {
        width: 423px;
        max-width: 423px;
        padding: 20px;
        margin-left: auto;
        margin-right: 0;
    }

    .product-author-modal__head {
        height: auto;
        margin-bottom: 0;
    }

    .product-author-modal__inner,
    .product-author-modal__body {
        gap: 40px;
    }

    .product-author-modal__image-wrapper {
        width: 200px;
        height: 200px;
        margin: 0;
    }

    .product-author-modal__intro {
        text-align: left;
    }

    .product-author-modal__title {
        font-size: var(--fs-xl-max, 55px);
    }

    .product-author-modal__subtitle,
    .product-author-modal__section-title {
        font-size: var(--fs-m-max, 21px);
    }

    .product-author-modal__text,
    .product-author-modal__fact-value {
        font-size: 16px;
    }

    .product-author-modal__section {
        gap: 20px;
    }

    .product-author-modal__facts-list {
        gap: 20px;
    }
}

/* Author card as button (modal trigger) */
.product-authors .product-author-card[type="button"] {
    appearance: none;
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
}
.product-authors .product-author-card[type="button"]:focus-visible {
    background-color: var(--theme-border-subtle);
    box-shadow: 0 0 0 5px var(--theme-border-subtle);
    outline: none;
}
@media (hover: hover) and (pointer: fine) {
    .product-authors .product-author-card[type="button"]:hover {
        background-color: var(--theme-border-subtle);
        box-shadow: 0 0 0 5px var(--theme-border-subtle);
    }
}
/* ===== Author hover: full width ===== */
.product-authors {
    justify-items: stretch;
}

.product-author-card,
.product-authors .product-author-card[type="button"] {
    display: grid !important;
    grid-template-columns: 50px minmax(0, 1fr);
    width: 100% !important;
    max-width: 100%;
}

/* Keep existing hover, but now it hugs the content */
@media (hover: hover) and (pointer: fine) {
    .product-author-card:hover,
    .product-authors .product-author-card[type="button"]:hover {
        background-color: var(--theme-border-subtle);
        box-shadow: 0 0 0 5px var(--theme-border-subtle);
    }
}
/* === Catalog look for related products === */
.product-recommendations__list.catalog-products__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}
@media (min-width: 640px) and (max-width: 1024px) {
    .product-recommendations__list.catalog-products__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 1025px) {
    .product-recommendations__list.catalog-products__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 40px;
    }
}
@media (min-width: 1400px) {
    .product-recommendations__list.catalog-products__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.catalog-product {
    width: 100%;
    min-width: 0;
}
.catalog-product__link {
    display: block;
    width: 100%;
    color: inherit;
    text-decoration: none;
}
.catalog-product__media {
    width: 100%;
    position: relative;
    overflow: hidden;
}
.catalog-product__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.product-card__content {
    padding-top: 5px;
}

/* Product card actions — 1:1 from catalog template */
.product-card {
    position: relative;
    container: product-card / inline-size;
    --product-card-media-height: 151.643cqw;
    --product-card-action-height: clamp(58px, 30.5cqw, 65px);
    --product-card-action-padding-x: 10px;
    --product-card-action-padding-y: 10px;
    --product-card-action-gap: clamp(12px, 9.4cqw, 20px);
    --product-card-action-bottom: var(--product-card-panel-line);
    --product-card-favorite-size: 45px;
    --product-card-icon-size: 29px;
    --product-card-cart-height: 45px;
    --product-card-cart-padding-x: clamp(12px, 6.5cqw, 20px);
    --product-card-cart-font-size: 21px;
    --product-card-line-gap: 2px;
    --product-card-line-split: 66.666%;
    --product-card-panel-bg: linear-gradient(
        90deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.3) 50%,
        rgba(0, 0, 0, 0) 100%
    );
    --product-card-panel-hover-bg: rgba(255, 255, 255, 0.14);
    --product-card-panel-line: 4px;
    --product-card-line-fill: 0%;
}
.product-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.product-card__media {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.product-card__image {
    display: block;
}
.product-card__hover-panel {
    position: absolute;
    top: calc(
        var(--product-card-media-height) - var(--product-card-action-bottom) -
        var(--product-card-action-height)
    );
    right: 0;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--product-card-action-gap);
    height: var(--product-card-action-height);
    padding: var(--product-card-action-padding-y)
        var(--product-card-action-padding-x);
    overflow: hidden;
    background: var(--product-card-panel-bg);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition:
        opacity 180ms ease,
        transform 180ms ease;
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}
.product-card__line {
    position: absolute;
    top: calc(var(--product-card-media-height) - var(--product-card-panel-line));
    z-index: 4;
    height: var(--product-card-panel-line);
    overflow: hidden;
    background: var(--theme-text-main);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}
.product-card__line::before {
    content: "";
    position: absolute;
    inset: 0;
    width: var(--product-card-line-fill);
    background: var(--theme-accent);
    transition: width 260ms ease;
}
.product-card__line--favorite {
    left: 0;
    width: calc(var(--product-card-line-split) - var(--product-card-line-gap));
}
.product-card__line--cart {
    right: 0;
    width: calc(100% - var(--product-card-line-split));
}
.product-card.is-favorite .product-card__line--favorite::before {
    width: 100%;
}
.product-card.is-in-cart .product-card__line--cart::before {
    width: 100%;
}
.product-card__favorite {
    appearance: none;
    border: 0;
    flex: 0 0 var(--product-card-favorite-size);
    flex-shrink: 0;
    width: var(--product-card-favorite-size);
    min-width: var(--product-card-favorite-size);
    height: var(--product-card-favorite-size);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--theme-text-main);
    background: rgba(0, 0, 0, 0);
    cursor: pointer;
    font: inherit;
    transition: background-color 180ms ease;
}
.product-card__favorite-icon {
    flex: 0 0 var(--product-card-icon-size);
    width: var(--product-card-icon-size);
    height: var(--product-card-icon-size);
    background: url("/images/icon-heart-outline.svg") center / contain no-repeat;
}
.product-card__favorite.is-active,
.product-card.is-favorite .product-card__favorite,
.product-card--favorite .product-card__favorite {
    color: var(--theme-accent);
}
.product-card__favorite.is-active .product-card__favorite-icon,
.product-card.is-favorite .product-card__favorite-icon,
.product-card--favorite .product-card__favorite-icon {
    background-image: url("/images/icon-heart-filled.svg");
}
.product-card__cart {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: 100%;
    min-height: var(--product-card-cart-height);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px var(--product-card-cart-padding-x);
    font-size: var(--product-card-cart-font-size);
    white-space: nowrap;
}
@media screen and (min-width: 1025px) {
    .product-card {
        --product-card-action-height: clamp(65px, 30.5cqw, 76px);
        --product-card-favorite-size: 45px;
        --product-card-icon-size: clamp(29px, 10.3cqw, 34px);
        --product-card-cart-height: clamp(45px, 16.4cqw, 54px);
    }
    .product-card__cart {
        padding-inline: var(--product-card-cart-padding-x);
    }
}
@media (hover: hover) and (pointer: fine) {
    .product-card:not(.is-favorite):hover .product-card__line--favorite::before,
    .product-card:not(.is-favorite)
        .product-card__media:hover
        .product-card__line--favorite::before {
        width: 50%;
    }
    .product-card:hover .product-card__line {
        opacity: 1;
    }
    .product-card:hover .product-card__hover-panel {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    } 
    .product-card.is-favorite:hover .product-card__line--favorite::before {
        width: 100%;
    }
    .product-card.is-in-cart:hover .product-card__line--cart::before {
        width: 100%;
    }
    .product-card__favorite:hover,
    .product-card__favorite:focus-visible {
        background-color: var(--product-card-panel-hover-bg);
    }
}
@container product-card (min-width: 280px) {
    .product-card__hover-panel {
        --product-card-action-height: 85px;
        --product-card-action-padding-x: 20px;
        --product-card-action-padding-y: 10px;
        --product-card-action-gap: 20px;
        --product-card-action-bottom: 14px;
        --product-card-favorite-size: 45px;
        --product-card-icon-size: 34px;
        --product-card-cart-height: 45px;
        --product-card-cart-padding-x: 20px;
    }
}
@media (hover: hover) and (pointer: fine) {
    .product-card__favorite:hover,
    .product-card__favorite:focus-visible {
        background-color: transparent !important;
    }
    .product-card__favorite:hover .product-card__favorite-icon,
    .product-card__favorite:focus-visible .product-card__favorite-icon {
        opacity: 1;
        transform: scale(1.15);
        transition: opacity 180ms ease, transform 180ms ease;
    }
}

/* ============================================
   FORCE ROBOTO ON PRODUCT DESCRIPTION, SPECS & BONUS
   ============================================ */
.product-description,
.product-description p,
.product-description ul,
.product-description ol,
.product-description li,
.product-description span,
.product-description div,
.product-description table,
.product-description td,
.product-description th,
.product-description strong,
.product-description em,
.product-description b,
.product-description i,
.product-description a,
.product-description h1,
.product-description h2,
.product-description h3,
.product-description h4,
.product-description h5,
.product-description h6,
.woocommerce .product-description,
.woocommerce-page .product-description,
.woocommerce-product-details__short-description,
.woocommerce .product-description *,
.woocommerce-page .product-description *,
.woocommerce-product-details__short-description * {
    font-family: 'Roboto', sans-serif !important;
}

.product-specs,
.product-specs__term,
.product-specs__value,
.product-specs dl,
.product-specs dt,
.product-specs dd,
.product-specs div,
.product-specs span {
    font-family: 'Roboto', sans-serif !important;
}

/* === FIX: product-bonus text now uses Roboto too === */
.product-bonus,
.product-bonus__text,
.product-bonus__text strong,
.product-bonus__points {
    font-family: 'Roboto', sans-serif !important;
}

/* === FIX: restore bullet/number markers for lists inside product description
   (works correctly once product-description wrapper is a <div>, not a <p>) === */
.product-description ul {
    list-style: disc !important;
    padding-left: 20px !important;
    margin: 12px 0 !important;
}

.product-description ol {
    list-style: decimal !important;
    padding-left: 20px !important;
    margin: 12px 0 !important;
}

.product-description li {
    margin-bottom: 6px !important;
}

.product-description li::marker {
    color: var(--theme-accent);
}
@media (max-width: 767px) {
  .product-purchase {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding: 10px 16px;
    box-sizing: border-box;
  }

  /* Цена — больше, занимает доступное место, но не наезжает */
  .product-purchase__prices {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
  }

  .product-purchase__prices .text-upper-ll-bold {
    font-size: 22px !important;
    white-space: nowrap;
  }

  .product-purchase__prices .text-upper-ll-regular {
    font-size: 14px !important;
    white-space: nowrap;
  }

  .product-purchase__price-current,
  .product-purchase__price-old {
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }

  .product-purchase__line {
    display: none !important;
  }

  /* Действия — фиксированный размер, прижаты вправо, не сжимаются */
  .product-purchase__actions {
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: auto;
    margin-left: 0 !important;
    padding-left: 0 !important;
    grid-template-columns: none !important;
  }

  .product-quantity {
    gap: 6px !important;
  }

  .product-quantity__value {
    min-width: 16px;
    text-align: center;
    font-size: 16px;
  }

  .product-quantity__button {
    width: 22px;
    height: 22px;
  }

  /* Корзина — иконка 40×40 */
  .product-purchase__actions .product-cart-button {
    width: 40px;
    height: 40px;
    min-width: 40px;
    padding: 0;
    font-size: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px;
  }

  .product-purchase__actions .product-cart-button__text {
    display: none;
  }

  /* Сердечко 40×40 */
  .product-purchase__favorite {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
  }

  .product-favorite__icon {
    width: 24px;
    height: 22px;
  }
} 