/* Xmas Season: shop, category and product pages */

/* Remove Blocksy's own archive hero on shop pages (our hero replaces it) */
.xs-shop-archive .hero-section { display: none !important; }
.xs-shop-archive .ct-container > .woo-listing-top, .xs-shop-archive .woo-listing-top { margin-top: 8px; }

/* Category hero: full-bleed banner */
.xs-cat-hero {
  position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: calc(var(--theme-content-vertical-spacing, 60px) * -1);
  min-height: 380px; display: flex; align-items: flex-end; justify-content: center; text-align: center;
  background: var(--xs-green); color: #fff; overflow: hidden; isolation: isolate;
}
.xs-cat-hero.has-img::before {
  content: ""; position: absolute; inset: 0; z-index: -2; background: var(--xs-hero-img) center / cover no-repeat;
  transform: scale(1.04); animation: xsHeroIn 1.4s cubic-bezier(.2,.7,.2,1) both;
}
.xs-cat-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,10,8,.25) 0%, rgba(26,6,7,.72) 100%); }
.xs-cat-hero:not(.has-img)::after { background: radial-gradient(ellipse at top, rgba(201,169,110,.18), transparent 60%); }
.xs-cat-hero__inner { width: min(860px, 100% - 40px); padding: 90px 0 54px; }
.xs-cat-hero__crumbs { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; font: 500 12px/1 var(--xs-sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.xs-cat-hero__crumbs a { color: rgba(255,255,255,.85); text-decoration: none; }
.xs-cat-hero__crumbs a:hover { color: var(--xs-gold); }
.xs-cat-hero__crumbs [aria-current] { color: var(--xs-gold); }
.xs-cat-hero__title { margin: 0; font: 400 clamp(36px, 5vw, 60px)/1.08 var(--xs-serif); color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.xs-cat-hero__desc { max-width: 560px; margin: 14px auto 0; font: 400 17px/1.6 var(--xs-sans); color: rgba(255,255,255,.88); }
.xs-cat-hero__desc p { margin: 0; }
.xs-cat-hero__count { margin: 16px 0 0; font: 600 12px/1 var(--xs-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--xs-gold); }
@keyframes xsHeroIn { from { transform: scale(1.1); opacity: .6; } to { transform: scale(1.04); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .xs-cat-hero.has-img::before { animation: none; } }
@media (max-width: 767px) { .xs-cat-hero { min-height: 300px; } .xs-cat-hero__inner { padding: 70px 0 38px; } .xs-cat-hero__desc { font-size: 15px; } }

/* Category chips */
.xs-chips { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 30px auto 34px; padding: 0 0 26px; border-bottom: 1px solid var(--xs-line); }
.xs-chip { padding: 11px 20px; border: 1px solid var(--xs-line); background: #fff; color: var(--xs-ink); text-decoration: none; font: 500 13px/1 var(--xs-sans); letter-spacing: .12em; text-transform: uppercase; transition: border-color .2s, background .2s, color .2s; }
.xs-chip:hover { border-color: var(--xs-green); color: var(--xs-green); }
.xs-chip.is-active { background: var(--xs-green); border-color: var(--xs-green); color: #fff; }
@media (max-width: 767px) {
  .xs-chips { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin: 20px -18px 24px; padding: 0 18px 18px; scrollbar-width: none; }
  .xs-chips::-webkit-scrollbar { display: none; }
  .xs-chip { flex: 0 0 auto; }
}

/* Toolbar: result count + sorting */
.xs-shop-archive .woocommerce-result-count { font: 400 14px/1 var(--xs-sans); color: #6A665C; }
.xs-shop-archive .woocommerce-ordering select { border: 1px solid var(--xs-line) !important; border-radius: 0 !important; font: 500 14px var(--xs-sans); min-height: 44px; background-color: #fff; }

/* Product cards */
[data-products] .product { position: relative; }
[data-products] .product figure, [data-products] .product .ct-media-container { overflow: hidden; background: var(--xs-cream); }
[data-products] .product .ct-media-container img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
[data-products] .product:hover .ct-media-container img { transform: scale(1.05); }
[data-products] .woocommerce-loop-product__title { margin-top: 14px !important; font: 400 17px/1.3 var(--xs-serif) !important; color: var(--xs-ink) !important; }
[data-products] .price { font: 500 15px/1 var(--xs-sans) !important; color: var(--xs-ink) !important; }
[data-products] .price ins { text-decoration: none; color: var(--xs-red); }
[data-products] .price del { color: #8A867C; font-weight: 400; }
[data-products] .ct-woo-card-actions .button, [data-products] .product .button {
  border-radius: 0 !important; background: var(--xs-ink) !important; color: #fff !important; font: 600 12px/1 var(--xs-sans) !important; letter-spacing: .14em; text-transform: uppercase; min-height: 44px;
}
[data-products] .product .button:hover { background: var(--xs-red) !important; }
@media (hover: hover) and (min-width: 1000px) {
  [data-products] .ct-woo-card-actions { opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
  [data-products] .product:hover .ct-woo-card-actions { opacity: 1; transform: none; }
}
[data-products] .onsale, .woocommerce span.onsale { top: 12px !important; left: 12px !important; right: auto !important; border-radius: 0 !important; background: var(--xs-red) !important; font: 600 11px/1 var(--xs-sans) !important; letter-spacing: .14em; text-transform: uppercase; padding: 7px 10px !important; min-height: 0 !important; }

/* Empty state */
.xs-empty { max-width: 620px; margin: 30px auto 80px; padding: 56px 32px; text-align: center; background: var(--xs-cream); border: 1px solid var(--xs-line); position: relative; }
.xs-empty::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(201,169,110,.5); pointer-events: none; }
.xs-empty__icon { width: 64px; height: 64px; color: var(--xs-red); margin: 0 auto 14px; display: block; }
.xs-empty__title { margin: 0 0 10px; font: 400 30px/1.2 var(--xs-serif); color: var(--xs-ink); }
.xs-empty__text { margin: 0 auto 24px; max-width: 460px; font: 400 16px/1.6 var(--xs-sans); color: #4A4A42; }
.xs-empty__actions { display: flex; gap: 18px; justify-content: center; align-items: center; flex-wrap: wrap; margin: 0; }
.xs-empty__actions .xs-nl-btn { padding: 0 30px; }
.xs-empty__link { font: 500 13px/1 var(--xs-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--xs-ink); border-bottom: 1px solid currentColor; padding-bottom: 3px; text-decoration: none; }
.xs-empty__link:hover { color: var(--xs-red); }

/* Single product */
.single-product .product_title { font: 400 clamp(28px, 3vw, 40px)/1.15 var(--xs-serif) !important; color: var(--xs-ink); }
.single-product .summary .price { font: 500 24px/1 var(--xs-sans) !important; color: var(--xs-ink) !important; margin: 10px 0 18px !important; }
.single-product .summary .price ins { text-decoration: none; color: var(--xs-red); }
.single-product .summary .woocommerce-product-details__short-description { font: 400 16px/1.7 var(--xs-sans); color: #4A4A42; }
.single-product .summary .single_add_to_cart_button { min-height: 54px; border-radius: 0 !important; background: var(--xs-red) !important; font: 600 13px/1 var(--xs-sans) !important; letter-spacing: .16em; text-transform: uppercase; flex: 1 1 auto; }
.single-product .summary .single_add_to_cart_button:hover { background: var(--xs-red-dark) !important; }
.single-product .summary .quantity { border-radius: 0 !important; }
.single-product .woocommerce-tabs .tabs li a { font: 500 13px/1 var(--xs-sans); letter-spacing: .14em; text-transform: uppercase; }
.single-product .related > h2, .single-product .up-sells > h2 { font: 400 32px/1.2 var(--xs-serif); text-align: center; margin-bottom: 30px; }
.single-product .flexy-pills [data-active] { outline: 1px solid var(--xs-ink); outline-offset: -1px; }
