/*
 * Pinex inner pages (Machic layout): breadcrumb, product page, shop / category pages.
 * Uses the variables from pinex.css (--pxm-accent, --pxm-ink, --pxm-line ...).
 */

/* ---------- Breadcrumb: one compact line (Machic), no tall grey band ---------- */
.pxm-crumbs { padding: 20px 0 0; background: #fff; }
.pxm-crumbs__links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 12px; line-height: 18px; color: #818EA0; }
.pxm-crumbs__links a { color: #818EA0; text-decoration: none; }
.pxm-crumbs__links a:hover { color: var(--pxm-accent); }
.pxm-crumbs__sep { color: #C3CAD3; }
.pxm-crumbs__current { color: var(--pxm-ink); }
.pxm-crumbs__title { margin: 12px 0 0; font-family: var(--pxm-font-heading); font-size: 26px; font-weight: 400; line-height: 1.3; color: var(--pxm-ink); letter-spacing: 0; text-transform: none; }
/* The theme's layout puts 80px above the page content; with the compact breadcrumb 24px is enough. */
main > .pxm-crumbs + .pt-80 { padding-top: 24px !important; }

/* ---------- Product page ---------- */
.pxm-product { font-family: var(--pxm-font); color: var(--pxm-ink); }
.pxm-product a { text-decoration: none; }
.pxm-product__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: start; }

/* Gallery: big square image in a thin frame, small square thumbnails underneath. */
.pxm-gallery.product-gallery { display: block; margin: 0; padding: 0; }
.pxm-gallery .product-gallery__wrapper { max-width: 100% !important; padding: 0 !important; border: 1px solid #E5E8EC; background: #fff; }
.pxm-gallery .product-gallery__wrapper a { display: flex !important; align-items: center; justify-content: center; aspect-ratio: 1 / 1; padding: 20px; }
.pxm-gallery .product-gallery__wrapper img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.pxm-gallery .product-gallery__wrapper .slick-arrow { display: none !important; }
.pxm-gallery .product-thumbnails { max-width: 342px !important; margin-top: 15px; padding: 0 !important; }
.pxm-gallery .product-thumbnails .slick-slide { padding-right: 5px; }
.pxm-gallery .product-thumbnails img { width: 52px !important; height: 52px; padding: 4px; object-fit: contain; border: 1px solid #DFE2E6; border-radius: 3px; cursor: pointer; background: #fff; }
.pxm-gallery .product-thumbnails .slick-current img { border-color: var(--pxm-ink); }
.pxm-gallery .product-thumbnails .slick-arrow { display: none !important; }
.pxm-gallery .product-thumbnails:not(.slick-initialized) { display: flex; gap: 5px; }

/* Summary */
.pxm-product__title { margin: 0 0 12px; font-family: var(--pxm-font-heading); font-size: 26px; font-weight: 400; line-height: 1.3; color: var(--pxm-ink); letter-spacing: 0; text-transform: none; }
.pxm-product__meta-top { display: flex; flex-wrap: wrap; gap: 0; font-size: 12px; font-weight: 500; color: #818EA0; }
.pxm-product__meta-top > span + span::before { content: '|'; margin: 0 10px; color: #C3CAD3; }
.pxm-product__meta-top a { color: var(--pxm-ink); }
.pxm-product__rating { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.pxm-product__reviews { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border: 1px solid var(--pxm-line); border-radius: 4px; font-size: 12px; color: var(--pxm-ink); }
.pxm-product__stock { display: inline-flex; align-items: center; gap: 6px; margin-top: 20px; padding: 6px 14px; border-radius: 4px; background: #F4FAF6; font-size: 13px; color: #00A046; }
.pxm-product__stock::before { content: '\f058'; font-family: 'Font Awesome 5 Pro'; font-weight: 300; }
.pxm-product__stock .text-success { color: #00A046 !important; }
.pxm-product__stock:has(.text-danger) { background: #FDF0F0; color: var(--pxm-red); }
.pxm-product__stock:has(.text-danger)::before { content: '\f057'; }
.pxm-product__stock .text-danger { color: var(--pxm-red) !important; }
.pxm-product__stock:empty { display: none; }

.pxm-product__price { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 20px; }
.pxm-product__price .bb-product-price, .pxm-product__price > div:first-child { display: flex; align-items: baseline; gap: 12px; margin: 0 !important; }
.pxm-product__price .product-price-sale { font-size: 30px; font-weight: 400; line-height: 1.4; color: var(--pxm-ink); }
.pxm-product__price .product-price-original { font-size: 17px; color: #9AA5B3 !important; }
.pxm-product__price:has(.product-price-original:not(.d-none)) .product-price-sale { color: var(--pxm-red); }
.pxm-product__tax { margin: 6px 0 0; font-size: 12px; color: #818EA0; }

.pxm-product__flash { margin-top: 20px; padding: 14px 20px; border-radius: 7px; background: #F2F3F5; font-size: 13px; }
.pxm-product__flash p { margin: 0 0 6px; }

/* Variation swatches (Botble markup restyled like Machic's buttons and colour squares) */
.pxm-product__swatches { margin-top: 20px; }
.pxm-product .attribute-swatches-wrapper { margin: 0 0 22px; }
.pxm-product .bb-product-attribute-swatch-title { margin: 0 0 8px; font-family: var(--pxm-font-heading); font-size: 13px; font-weight: 400; line-height: 1.2; color: var(--pxm-ink); text-transform: none; letter-spacing: 0; }
.pxm-product .bb-product-attribute-swatch-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pxm-product .bb-product-attribute-swatch-item { margin: 0 !important; }
.pxm-product .bb-product-attribute-swatch-item label { position: relative; display: flex; margin: 0; cursor: pointer; }
.pxm-product .bb-product-attribute-swatch-item input { position: absolute; opacity: 0; pointer-events: none; }
.pxm-product .text-swatch .bb-product-attribute-text-display { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; min-height: 35px; padding: 7px 14px; border: 1px solid #D9DDE3; background: #fff; font-size: 14px; line-height: 1.3; color: var(--pxm-ink); transition: border-color .15s ease, color .15s ease; }
.pxm-product .text-swatch .bb-product-attribute-swatch-item:hover .bb-product-attribute-text-display { border-color: var(--pxm-ink); }
.pxm-product .text-swatch input:checked + .bb-product-attribute-text-display { border-color: var(--pxm-accent); box-shadow: inset 0 0 0 1px var(--pxm-accent); color: var(--pxm-accent); }
.pxm-product .visual-swatch .bb-product-attribute-swatch-display { display: block; width: 26px; height: 26px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.pxm-product .visual-swatch input:checked + .bb-product-attribute-swatch-display { outline: 2px solid var(--pxm-accent); outline-offset: 2px; }
.pxm-product .bb-product-attribute-swatch-item.disabled { opacity: .4; }
.pxm-product .bb-product-attribute-swatch-item.disabled .bb-product-attribute-text-display { text-decoration: line-through; }
.pxm-product .bb-product-attribute-swatch-item-tooltip { display: none; }
.pxm-product .bb-product-attribute-swatch-item input + span::before, .pxm-product .bb-product-attribute-swatch-item input + span::after { display: none !important; }
.pxm-product .product-attributes select, .pxm-product .product-option select { height: 40px; padding: 0 30px 0 15px; border: 1px solid #D9DDE3; border-radius: 6px; font-size: 14px; }
.pxm-product .number-items-available { margin: -8px 0 12px; font-size: 13px; }

/* Buy box: quantity, add to cart, wishlist/compare; delivery line below */
.pxm-buybox { margin-top: 20px; border: 1px solid #E5E8EC; border-radius: 7px; }
.pxm-buybox__top { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 20px; }
.pxm-qty.tpproduct-details__quantity { display: inline-flex; align-items: center; width: 108px; height: 48px; padding: 0; border: 1px solid #DDE2E8; border-radius: 4px; }
.pxm-qty .cart-minus, .pxm-qty .cart-plus { flex: 0 0 32px; display: inline-flex; align-items: center; justify-content: center; height: 100%; color: #818EA0; cursor: pointer; font-size: 13px; }
.pxm-qty .cart-minus:hover, .pxm-qty .cart-plus:hover { color: var(--pxm-ink); }
.pxm-qty input { flex: 1 1 auto; width: 40px !important; height: 100%; border: 0; padding: 0; text-align: center; font-size: 15px; font-weight: 400; color: #000; background: transparent; outline: none; }
.pxm-buybox__cart, .pxm-buybox__buy { height: 46px; padding: 0 30px; border: 0; border-radius: 4px; background: var(--pxm-accent); color: #fff; font-size: 15px; font-weight: 500; transition: background-color .15s ease; }
.pxm-buybox__cart:hover { background: var(--pxm-accent-dark); color: #fff; }
.pxm-buybox__buy { background: var(--pxm-navy); }
.pxm-buybox__buy:hover { background: var(--pxm-ink); }
.pxm-buybox__cart:disabled, .pxm-buybox__buy:disabled { opacity: .45; cursor: not-allowed; }
.pxm-buybox__cart.loading, .pxm-buybox__cart.button-loading { opacity: .7; }
.pxm-buybox__links { display: flex; gap: 20px; margin-left: 8px; }
.pxm-buybox__links a { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: #818EA0; }
.pxm-buybox__links a:hover, .pxm-buybox__links a .fas { color: var(--pxm-accent); }
.pxm-buybox__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 18px 20px; border-top: 1px solid #E5E8EC; font-size: 13px; color: var(--pxm-ink); }
.pxm-buybox__bottom i { font-size: 16px; }
.pxm-buybox__bottom strong { font-weight: 700; }
.pxm-buybox__sep { color: #C3CAD3; margin: 0 4px; }

.pxm-product__meta { margin-top: 20px; font-size: 13px; }
.pxm-product__meta p { margin: 0 0 8px; font-size: 13px; line-height: 1.5; color: var(--pxm-ink); }
.pxm-product__meta a { color: var(--pxm-accent); }
.pxm-product__meta a:hover { text-decoration: underline; }
.pxm-product__share { margin-top: 24px; }
.pxm-product__share .bb-social-sharing { gap: 6px; }
.pxm-product__share .bb-social-sharing__item { width: 32px !important; height: 32px !important; line-height: 30px !important; border: 0 !important; background: #F2F3F5; }
.pxm-product__share .bb-social-sharing__item a, .pxm-product__share .bb-social-sharing__item button { color: var(--pxm-ink) !important; font-size: 13px; }
.pxm-product__share .bb-social-sharing__item:hover { background: var(--pxm-accent) !important; }
.pxm-product__share .bb-social-sharing__item:hover a, .pxm-product__share .bb-social-sharing__item:hover button { color: #fff !important; }
.pxm-product__short { margin-top: 30px; padding-top: 26px; border-top: 1px solid #E5E8EC; font-size: 13px; line-height: 1.6; color: var(--pxm-ink); }
.pxm-product__short p:last-child { margin-bottom: 0; }

/* Phones: buy bar fixed to the bottom (hidden on larger screens) */
.pxm-stickybuy { display: none; }

/* Tabs */
.pxm-tabs { margin-top: 70px; }
.pxm-tabs__nav { display: flex; flex-wrap: wrap; gap: 10px 30px; margin: 0 0 22px; padding: 0 0 15px; list-style: none; border-bottom: 1px solid #E5E8EC; }
.pxm-tabs__nav button { padding: 0; border: 0; background: none; font-family: var(--pxm-font-heading); font-size: 18px; font-weight: 500; line-height: 1.3; color: #818EA0; transition: color .15s ease; }
.pxm-tabs__nav button:hover, .pxm-tabs__nav button.active { color: var(--pxm-ink); }
.pxm-tabs__content { font-size: 15px; line-height: 1.65; color: var(--pxm-ink); }
.pxm-tabs__content .ck-content img { max-width: 100%; height: auto; }
.pxm-tabs__content table { width: 100%; max-width: 760px; border-collapse: collapse; font-size: 14px; }
.pxm-tabs__content table th, .pxm-tabs__content table td { padding: 10px 14px; border: 1px solid #E5E8EC; text-align: left; }
.pxm-tabs__content table th { width: 34%; background: var(--pxm-surface); font-weight: 500; }

/* Related / cross-sale products */
.pxm-product__related { margin-top: 60px; }
.pxm-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 30px 24px; }

/* ---------- Shop / category pages ---------- */
main > .pxm-crumbs.is-inline { padding: 0; }
main > .pxm-crumbs.is-inline + .pt-80 { padding-top: 20px !important; }
.pxm-shop { font-family: var(--pxm-font); color: var(--pxm-ink); }
.pxm-shop a { text-decoration: none; }

.pxm-shop__strip { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 66px; padding: 12px 18px 12px 30px; background: #F5F5F7; }
.pxm-shop__strip-title { margin: 0; font-family: var(--pxm-font-heading); font-size: 17px; font-weight: 300; line-height: 1.4; color: var(--pxm-ink); letter-spacing: 0; text-transform: none; }
.pxm-shop__strip-title strong { display: inline-block; margin: 0 4px; padding: 2px 12px; border-radius: 20px; background: var(--pxm-accent-soft); color: var(--pxm-accent); font-size: 14px; font-weight: 600; }
.pxm-shop__strip-side { display: flex; align-items: center; gap: 22px; }
.pxm-shop__strip-price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; max-width: 300px; font-size: 15px; font-weight: 500; text-align: right; }
.pxm-shop__strip-price > span:first-child { margin-right: 6px; }
.pxm-shop__strip-price b { font-size: 24px; font-weight: 600; color: var(--pxm-red); }
.pxm-shop__strip-price small { flex: 0 0 100%; font-size: 12px; font-weight: 400; color: #5C6574; }

.pxm-shop__banners { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: 20px; }
.pxm-shop-banner { position: relative; display: flex; align-items: stretch; height: 220px; overflow: hidden; background: #F7F8F9; color: var(--pxm-ink); }
.pxm-shop-banner:nth-child(2) { background: #EEF3F8; }
.pxm-shop-banner:nth-child(3) { background: #FBF0F6; }
.pxm-shop-banner__content { position: relative; z-index: 2; display: flex; flex-direction: column; width: 58%; padding: 26px 0 24px 30px; }
.pxm-shop-banner__label { font-size: 14px; font-weight: 300; color: var(--pxm-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pxm-shop-banner__title { margin: 4px 0 0; font-family: var(--pxm-font-heading); font-size: 20px; font-weight: 600; line-height: 1.25; color: var(--pxm-ink); letter-spacing: 0; text-transform: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pxm-shop-banner__note { margin-top: auto; font-size: 13px; color: #5C6574; }
.pxm-shop-banner__price { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
.pxm-shop-banner__price b { font-size: 20px; font-weight: 400; }
.pxm-shop-banner__price b.is-red { color: var(--pxm-red); }
.pxm-shop-banner__price del { font-size: 15px; color: #9AA5B3; }
.pxm-shop-banner__media { position: absolute; top: 0; right: 0; bottom: 0; width: 48%; display: flex; align-items: center; justify-content: center; padding: 18px 18px 18px 0; }
.pxm-shop-banner__media img { max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .4s ease; }
.pxm-shop-banner:hover .pxm-shop-banner__media img { transform: scale(1.05); }
.pxm-shop-banner:hover .pxm-shop-banner__title { color: var(--pxm-accent); }

.pxm-shop__crumbs { margin-top: 30px; }
.pxm-shop__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 30px 0 0 !important; padding: 0 0 10px; border-bottom: 1px solid #E5E8EC; }
.pxm-shop__count span { font-size: 13px; color: var(--pxm-ink); }
.pxm-shop__tools { display: flex; align-items: center; gap: 22px; }
.pxm-shop__select { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; color: #9AA5B3; }
.pxm-shop__select select { height: 30px; padding: 0 20px 0 4px; border: 0; background: transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'><path fill='%231C1A1E' d='M0 0l4 5 4-5z'/></svg>") no-repeat right 4px center; -webkit-appearance: none; appearance: none; font-size: 13px; font-weight: 500; color: var(--pxm-ink); cursor: pointer; outline: none; }
.pxm-shop__select .nice-select { display: none !important; }
.pxm-shop__select select { display: inline-block !important; }
.pxm-shop__layouts { display: flex; gap: 4px; }
.pxm-shop__layouts button { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 4px; background: none; color: #9AA5B3; font-size: 15px; }
.pxm-shop__layouts button.active, .pxm-shop__layouts button:hover { color: var(--pxm-ink); background: #F2F3F5; }
.pxm-shop__filter-btn { display: none; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border: 1px solid #E5E8EC; border-radius: 4px; background: #fff; font-size: 13px; font-weight: 500; color: var(--pxm-ink); }

.pxm-shop__body { display: flex; align-items: stretch; }
.pxm-shop__sidebar { flex: 0 0 293px; width: 293px; padding: 30px 30px 0 0; border-right: 1px solid #E5E8EC; }
.pxm-shop__sidebar .backdrop, .pxm-shop__sidebar .product-filter-mobile__header { display: none; }
.pxm-shop__main { flex: 1 1 auto; min-width: 0; padding: 30px 0 0 30px; }

/* Filter widgets (Botble ecommerce filter form restyled as Machic sidebar widgets) */
.pxm-shop .bb-shop-sidebar, .pxm-shop .product-sidebar, .pxm-shop .tpsidebar { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.pxm-shop .bb-product-filter { margin: 0 0 44px; padding: 0 !important; border: 0; border-radius: 0; background: none !important; }
.pxm-shop .bb-product-listing-page-description .bb-block__header { display: none; }
.pxm-shop .bb-product-listing-page-description:not(:has(.bb-block__content :is(p, div, ul):not(:empty))) { display: none; }
.pxm-shop .bb-product-listing-page-description { margin: 0 0 24px; font-size: 13px; color: #5C6574; }
.pxm-shop .bb-product-filter-title { margin: 0 -30px 18px 0 !important; padding: 0 0 15px !important; border: 0 !important; border-bottom: 1px solid #E5E8EC !important; font-family: var(--pxm-font); font-size: 15px; font-weight: 400; line-height: 1.2; color: var(--pxm-ink); letter-spacing: 0; text-transform: none; }
.pxm-shop .bb-product-filter-items { margin: 0; padding: 0; list-style: none; }
.pxm-shop .bb-product-filter-item { position: relative; margin: 0 0 8px; padding: 0; font-size: 13px; line-height: 20px; }
.pxm-shop .bb-product-filter-items .bb-product-filter-items { margin: 8px 0 0 16px; }
.pxm-shop .bb-product-filter-link { position: relative; display: flex; align-items: center; gap: 9px; padding: 0 22px 0 0; color: var(--pxm-ink); font-size: 13px; font-weight: 400; }
.pxm-shop .bb-product-filter-link::before { content: ''; flex: 0 0 14px; width: 14px; height: 14px; border: 1px solid #D9DDE3; border-radius: 2px; background: #fff; }
.pxm-shop .bb-product-filter-link.active { font-weight: 600; }
.pxm-shop .bb-product-filter-link.active::before { border-color: var(--pxm-ink); background: var(--pxm-ink) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>") no-repeat center; }
.pxm-shop .bb-product-filter-link:hover { color: var(--pxm-accent); }
.pxm-shop .bb-product-filter-link img, .pxm-shop .bb-product-filter-link svg, .pxm-shop .bb-product-filter-link > i { display: none; }
.pxm-shop [data-bb-toggle="toggle-product-categories-tree"] { position: absolute; top: 0; right: 0; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; border: 0; background: none; color: #9AA5B3; }
.pxm-shop [data-bb-toggle="toggle-product-categories-tree"] svg { display: inline-block; width: 13px; height: 13px; }
.pxm-shop .filter-checkbox .bb-product-filter-item, .pxm-shop .bb-product-filter-attribute-item li { display: flex; align-items: center; gap: 9px; }
.pxm-shop input[type="checkbox"] { width: 14px; height: 14px; margin: 0; accent-color: var(--pxm-ink); }
.pxm-shop .bb-product-filter label { margin: 0; font-size: 13px; color: var(--pxm-ink); cursor: pointer; }
.pxm-shop .bb-product-price-filter .price-slider { margin: 6px 6px 16px; }
.pxm-shop .bb-product-price-filter-info { font-size: 13px; color: #5C6574; }
.pxm-shop .bb-product-price-filter-info .input-range-label { font-weight: 500; color: var(--pxm-ink); }
.pxm-shop .ui-slider, .pxm-shop .noUi-target { height: 3px !important; border: 0 !important; border-radius: 3px; background: #E5E8EC !important; box-shadow: none !important; }
.pxm-shop .ui-slider .ui-slider-range, .pxm-shop .noUi-connect { background: var(--pxm-accent) !important; }
.pxm-shop .ui-slider .ui-slider-handle, .pxm-shop .noUi-handle { top: -6px !important; width: 14px !important; height: 14px !important; border: 0 !important; border-radius: 50% !important; background: var(--pxm-accent) !important; box-shadow: none !important; cursor: pointer; }
.pxm-shop .noUi-handle::before, .pxm-shop .noUi-handle::after { display: none; }
.pxm-shop .bb-product-filter-attributes .bb-product-filter-title { font-size: 15px; }
.pxm-shop .bb-product-filter-attributes .text-swatch, .pxm-shop .bb-product-filter-attributes .bb-product-filter-items { display: flex; flex-wrap: wrap; gap: 6px; }
.pxm-shop .bb-product-filter-attributes .bb-product-filter-item { margin: 0; }
.pxm-shop .bb-product-filter-attributes label span { display: inline-flex; padding: 3px 10px; border: 1px solid #D9DDE3; font-size: 12px; }
.pxm-shop .bb-product-filter-attributes input:checked + span { border-color: var(--pxm-accent); color: var(--pxm-accent); }

/* Products: 4 cards per row, list rows, pagination */
.pxm-grid--shop { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 24px; }
.pxm-list { display: flex; flex-direction: column; }
.pxm-list__item { display: grid; grid-template-columns: 180px minmax(0, 1fr) 170px; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid #EEF1F4; }
.pxm-list__item:first-child { padding-top: 0; }
.pxm-list__img { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; }
.pxm-list__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pxm-list__img .pxm-pill { position: absolute; top: 0; left: 0; }
.pxm-list__desc { margin: 8px 0 0; font-size: 13px; line-height: 1.55; color: #5C6574; }
.pxm-list__buy { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.pxm-empty { margin: 40px 0; font-size: 14px; color: #5C6574; }
.pxm-pagination { margin-top: 46px; }
.pxm-pagination .basic-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.pxm-pagination .basic-pagination li { margin: 0; }
.pxm-pagination .basic-pagination li > a, .pxm-pagination .basic-pagination li > span { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 6px; border: 1px solid #E5E8EC; border-radius: 3px; background: #fff; font-size: 13px; font-weight: 600; line-height: 1; color: var(--pxm-ink); }
.pxm-pagination .basic-pagination li > a:hover { border-color: var(--pxm-ink); }
.pxm-pagination .basic-pagination li > span.current { border-color: var(--pxm-accent); background: var(--pxm-accent); color: #fff; }
.pxm-pagination .basic-pagination li > span:not(.current) { color: #C3CAD3; }
.pxm-shop .loading-spinner { position: absolute; inset: 0; z-index: 5; background: rgba(255, 255, 255, .6); }

/* ---------- Heading & menu font (TBC Contractica CAPS) ----------
   Headings, product/card/category/banner/filter/footer titles and all menus. Body text, prices and form controls keep
   --pxm-font. The font has no Mtavruli letters, so these elements must not be uppercased (Georgian would turn into
   Mtavruli and fall back to another font). Only text elements are listed, so icon fonts keep their own font-family.
   Also applies to the checkout pages, which load this stylesheet too. */
:is(h1, h2, h3, h4, h5, h6),
.tpcategory__title,
.auth-card__header-title,
.tpcart__title,
.pxm-topbar__links a,
.pxm-menu__list a,
.pxm-dept__toggle > span,
.pxm-dept__list > li > a > span:not(.pxm-dept__tag),
.pxm-dept__sub-title,
.pxm-dept__sub li a,
.pxm-nav__promo-text b,
.pxm-tabs__nav button,
.pxm-shop .bb-product-filter-title,
.pxm-shop .bb-product-filter-link,
.pxm-footer__col li a,
.pxm-footer__tags a,
.mobile-menu-container .mobile-menu-nav ul li a,
.tpsideinfo__nabtab .nav-link,
.tpsideinfo__account-link a,
.tpsideinfo__wishlist-link a,
.tpsideinfo__close,
.tpsideinfo__search-title,
.navigation-bar .navigation-bar__list li a span {
    font-family: var(--pxm-font-heading) !important;
    font-synthesis: none;
    text-transform: none !important;
}

/* TBC is about 3% wider than Noto: keep long mobile menu items clear of their "+" button (they wrap instead). */
.mobile-menu-container .mobile-menu-nav ul li:has(> .mobile-menu-exapand) > a:not(.mobile-menu-exapand) {
    box-sizing: border-box;
    padding-right: 36px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
    .pxm-grid--6 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pxm-shop__sidebar { flex-basis: 250px; width: 250px; }
    .pxm-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pxm-shop-banner__title { font-size: 17px; }
}

@media (max-width: 991px) {
    .pxm-shop__banners { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .pxm-shop-banner { height: 190px; }
    .pxm-shop__filter-btn { display: inline-flex; }
    .pxm-shop__body { display: block; }
    .pxm-shop__main { padding: 24px 0 0; }
    .pxm-shop__sidebar { position: fixed; inset: 0; z-index: 1000; width: auto; padding: 0; border: 0; visibility: hidden; pointer-events: none; }
    .pxm-shop__sidebar.active { visibility: visible; pointer-events: auto; }
    .pxm-shop__sidebar .backdrop { display: block; position: absolute; inset: 0; background: rgba(17, 24, 39, .45); opacity: 0; transition: opacity .2s ease; }
    .pxm-shop__sidebar.active .backdrop { opacity: 1; }
    .pxm-shop__sidebar .product-filter-mobile__inner { position: absolute; top: 0; bottom: 0; left: 0; width: min(340px, 88vw); padding: 0 22px 30px; overflow-y: auto; background: #fff; transform: translateX(-100%); transition: transform .25s ease; }
    .pxm-shop__sidebar.active .product-filter-mobile__inner { transform: none; }
    .pxm-shop__sidebar .product-filter-mobile__header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin: 0 -22px 20px; padding: 16px 22px; border-bottom: 1px solid #E5E8EC; background: #fff; }
    .pxm-shop__sidebar .product-filter-mobile__header h5 { margin: 0; font-size: 16px; font-weight: 600; }
    .pxm-shop__sidebar .close-product-filter-mobile { border: 0; background: none; font-size: 20px; color: var(--pxm-ink); }
    .pxm-shop .bb-product-filter-title { margin-right: 0 !important; }
    .pxm-product__top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .pxm-gallery .product-gallery__wrapper a { max-height: 520px; }
    .pxm-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .pxm-crumbs { padding-top: 14px; }
    .pxm-crumbs__title { font-size: 22px; margin-top: 8px; }
    main > .pxm-crumbs + .pt-80 { padding-top: 16px !important; padding-bottom: 40px !important; }
    .pxm-product__title { font-size: 21px; }
    .pxm-product__price .product-price-sale { font-size: 26px; }
    .pxm-buybox__top { padding: 14px; }
    .pxm-buybox__cart { flex: 1 1 auto; padding: 0 16px; }
    .pxm-buybox__links { width: 100%; margin-left: 0; }
    .pxm-buybox__bottom { padding: 14px; }
    .pxm-tabs { margin-top: 40px; }
    .pxm-tabs__nav { gap: 8px 20px; }
    .pxm-tabs__nav button { font-size: 16px; }
    .pxm-product__related { margin-top: 40px; }
    .pxm-gallery .product-thumbnails { max-width: 100% !important; }
    .pxm-gallery .product-thumbnails img { width: 100% !important; height: auto; aspect-ratio: 1 / 1; }
    .pxm-stickybuy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 990; display: flex; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -4px 18px rgba(17, 24, 39, .08); }
    .pxm-stickybuy__qty.pxm-qty { flex: 0 0 116px; display: inline-flex; align-items: center; width: 116px; height: 48px; border: 1px solid #DDE2E8; border-radius: 4px; }
    .pxm-stickybuy__qty span { flex: 0 0 34px; display: inline-flex; align-items: center; justify-content: center; height: 100%; color: #818EA0; cursor: pointer; }
    .pxm-stickybuy__cart { flex: 1 1 auto; height: 48px; }
    body.pxm-has-stickybuy .navigation-bar { display: none !important; }
    body.pxm-has-stickybuy footer { padding-bottom: 70px; }
    .pxm-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
    .pxm-shop__strip { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px 16px; }
    .pxm-shop__strip-title { font-size: 15px; }
    .pxm-shop__strip-side { width: 100%; justify-content: space-between; }
    .pxm-shop__strip-price { flex-wrap: nowrap; white-space: nowrap; text-align: left; justify-content: flex-start; }
    .pxm-shop__strip-price b { font-size: 20px; }
    .pxm-shop__strip-price small { display: none; }
    .pxm-shop__banners { margin-top: 12px; }
    .pxm-shop-banner { height: 170px; }
    .pxm-shop-banner__content { padding: 18px 0 18px 18px; }
    .pxm-shop__crumbs { margin-top: 18px; }
    .pxm-shop__toolbar { flex-wrap: wrap; margin-top: 16px !important; }
    .pxm-shop__count { width: 100%; }
    .pxm-shop__tools { width: 100%; justify-content: space-between; gap: 8px; flex-wrap: nowrap; }
    .pxm-shop__select select { max-width: 150px; text-overflow: ellipsis; }
    .pxm-shop__select > span { display: none; }
    .pxm-shop__layouts { display: none; }
    .pxm-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 14px; }
    .pxm-list__item { grid-template-columns: 110px minmax(0, 1fr); }
    .pxm-list__buy { grid-column: 2; }
}
