/* Beauty Touch — Shop page (WooCommerce archive) styles.
   Loaded only on the Shop page / product category / product tag
   archives — kept separate from the homepage's btpk-style.css. */

.btpk-shop-page{ font-family:var(--font-sans); color:var(--btpk-ink); background:var(--btpk-pink-tint); box-sizing:border-box; }
.btpk-shop-page *{ box-sizing:border-box; }
.btpk-shop-page a{ text-decoration:none; }
.btpk-shop-inner{ max-width:1280px; margin:0 auto; 
padding:0 clamp(16px, 4vw, 24px) clamp(48px, 8vw, 80px);
}

/* ---- Category banner (category/tag archives only) ---- */
.btpk-shop-banner{ width:100%; aspect-ratio:16/5; max-height:420px; background:var(--btpk-pink-tint2) center/cover no-repeat; display:flex; align-items:center; justify-content:center; }
.btpk-shop-banner-placeholder{ font-family:var(--font-serif); font-size:clamp(20px,3vw,30px); font-weight:700; color:var(--btpk-ink); }

/* ---- Category carousel (Shop page only) — bnb layout: category image only, 1 item per slide, infinite loop ---- */
.btpk-shop-carousel-section{ background:#FCEEF5; padding:40px 0 28px; }
.btpk-shop-carousel-wrap{ position:relative; max-width:1400px; margin:0 auto; padding:0 70px; }
.btpk-shop-carousel-arrow{ position:absolute; top:calc(50% - 22px); transform:translateY(-50%); z-index:3; width:54px; height:54px; border-radius:50%; border:none; background:#fff; color:var(--btpk-ink); cursor:pointer; font-size:22px; line-height:1; box-shadow:0 2px 10px rgba(0,0,0,.14); display:flex; align-items:center; justify-content:center; transition:background .2s,color .2s; }
.btpk-shop-carousel-arrow:hover{ background:var(--btpk-pink); color:#fff; }
.btpk-shop-carousel-prev{ left:6px; }
.btpk-shop-carousel-next{ right:6px; }
.btpk-shop-carousel-wrap.is-static .btpk-shop-carousel-arrow{ display:none; }
.btpk-shop-carousel-viewport{ overflow:hidden; }
.btpk-shop-carousel-track{ display:flex; transition:transform .5s ease; will-change:transform; }
.btpk-shop-carousel-item{ flex:0 0 20%; box-sizing:border-box; text-decoration:none; color:var(--btpk-ink); display:flex; flex-direction:column; align-items:center; text-align:center; }
.btpk-shop-carousel-media{ position:relative; display:block; width:72%; aspect-ratio:1/1; }
.btpk-shop-carousel-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; transition:transform .3s ease; }
.btpk-shop-carousel-item:hover .btpk-shop-carousel-img{ transform:translateY(-6px); }
.btpk-shop-carousel-label{ margin-top:14px; font-size:17px; font-weight:500; font-family:var(--font-sans); color:var(--btpk-ink); }

.btpk-shop-heading{ font-family:var(--font-sans); font-size:clamp(26px, 3vw, 38px); font-weight:600; letter-spacing:-.01em; color:var(--btpk-ink); margin:32px 0 28px; text-align:left; }
.btpk-shop-heading-mobile{ display:none; text-align:center; }
.btpk-shop-intro{ margin-bottom:8px; }
.btpk-shop-intro-text{ font-size:clamp(15.5px, 1.5vw, 17px); color:var(--btpk-gray); max-width:560px; }

/* ---- Toolbar: filter dropdown triggers (left), category title
   (center, category pages only), sort (right) ---- */
.btpk-shop-toolbar-wrap{ position:relative; margin:20px 0 16px; }
.btpk-shop-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:0; position:relative; }
.btpk-shop-toolbar-title{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font-family:var(--font-serif); font-size:26px; font-weight:700; color:var(--btpk-ink); white-space:nowrap; }

.btpk-shop-filter-toggle{ display:none; align-items:center; gap:8px; background:#fff; border:1px solid #E4E4E4; border-radius:6px; padding:10px 16px; font-size:13.5px; font-weight:700; color:var(--btpk-ink); font-family:var(--font-sans); cursor:pointer; }
.btpk-shop-dd-triggers{ display:flex; gap:14px; }
.btpk-shop-dd-trigger{ display:flex; align-items:center; justify-content:space-between; gap:14px; min-width:124px; background:#fff; border:1px solid #E4E4E4; border-radius:8px; padding:12px 18px; font-size:15px; font-weight:500; color:var(--btpk-ink); font-family:var(--font-sans); cursor:pointer; }
.btpk-shop-dd-trigger:hover, .btpk-shop-dd-trigger.is-open{ border-color:var(--btpk-pink); }
.btpk-shop-dd-caret{ font-size:11px; }

.btpk-shop-sort-wrap{ display:flex; align-items:center; gap:14px; margin-left:auto; }
.btpk-shop-sort-label{ font-size:15px; color:var(--btpk-gray); white-space:nowrap; }
.btpk-shop-sort{ min-width:175px; padding:12px 18px; border-radius:8px; border:1px solid #E4E4E4; font-size:15px; font-weight:500; font-family:var(--font-sans); background:#fff; color:var(--btpk-ink); cursor:pointer; }

.btpk-shop-count{ font-size:13px; color:var(--btpk-gray); margin:18px 0 16px; }
.btpk-shop-sidebar-backdrop{ display:none; }

/* ---- Sidebar / dropdown filter panel ---- */
.btpk-shop-sidebar{ display:none; position:absolute; top:calc(100% + 8px); left:0; width:280px; background:#fff; border:1px solid #EEE; border-radius:10px; box-shadow:0 12px 32px rgba(0,0,0,0.12); padding:20px; z-index:40; flex-direction:column; gap:24px; }
.btpk-shop-sidebar.is-open{ display:flex; }
.btpk-shop-sidebar[data-group="price"] .btpk-shop-filter-group-filters{ display:none; }
.btpk-shop-sidebar[data-group="filters"] .btpk-shop-filter-group-price{ display:none; }
.btpk-shop-sidebar-head, .btpk-shop-sidebar-footer, .btpk-shop-sidebar-close{ display:none; }
.btpk-shop-sidebar-scroll{ display:flex; flex-direction:column; gap:24px; }
.btpk-shop-filter-group{ display:flex; flex-direction:column; gap:24px; }

.btpk-shop-filter-title{ font-family:var(--font-serif); font-size:15px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; margin:0 0 14px; color:var(--btpk-ink); }
.btpk-shop-filter-list{ display:flex; flex-direction:column; gap:10px; }
.btpk-shop-checkbox{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--btpk-ink); cursor:pointer; }
.btpk-shop-checkbox input{ accent-color:var(--btpk-pink); width:15px; height:15px; }
.btpk-shop-filter-count{ margin-left:auto; color:var(--btpk-gray-light); font-size:12px; }

.btpk-price-slider{ position:relative; height:20px; margin-bottom:10px; }
.btpk-price-track{ position:absolute; top:9px; left:0; right:0; height:2px; background:var(--btpk-pink-tint2); border-radius:2px; }
.btpk-price-range{ position:absolute; top:0; bottom:0; background:var(--btpk-ink); border-radius:2px; }
.btpk-price-input{ position:absolute; top:0; left:0; width:100%; margin:0; appearance:none; background:none; pointer-events:none; height:20px; }
.btpk-price-input::-webkit-slider-thumb{ appearance:none; pointer-events:auto; width:16px; height:16px; border-radius:50%; background:#fff; border:2px solid var(--btpk-pink); cursor:pointer; margin-top:0; }
.btpk-price-input::-moz-range-thumb{ pointer-events:auto; width:16px; height:16px; border-radius:50%; background:#fff; border:2px solid var(--btpk-pink); cursor:pointer; }
.btpk-price-input::-webkit-slider-runnable-track{ background:transparent; }
.btpk-price-labels{ font-size:13px; color:var(--btpk-gray); }

.btpk-shop-filter-swatches{ display:flex; flex-direction:column; gap:10px; }
.btpk-shop-swatch{ display:flex; align-items:center; gap:8px; font-size:13.5px; cursor:pointer; }
.btpk-shop-swatch input{ accent-color:var(--btpk-pink); width:15px; height:15px; }

.btpk-shop-search{ display:flex; align-items:center; gap:10px; background:transparent; border:1px solid var(--btpk-pink-tint2); border-radius:8px; padding:10px 14px; color:var(--btpk-gray); }
.btpk-shop-search svg{ flex-shrink:0; }
.btpk-shop-search-input{ border:none; outline:none; background:none; font-size:13.5px; font-family:var(--font-sans); color:var(--btpk-ink); width:100%; }
.btpk-shop-search-input::placeholder{ color:var(--btpk-gray-light); }

.btpk-shop-rating-list{ gap:8px; }
.btpk-shop-rating-stars{ color:var(--btpk-gold); letter-spacing:1px; }

.btpk-shop-results[data-loading="1"] .btpk-shop-grid-wrap{ opacity:.45; pointer-events:none; transition:opacity .15s; }
.btpk-shop-empty{ font-size:14px; color:var(--btpk-gray); padding:40px 0; text-align:center; grid-column:1/-1; }

/* ---- Product cards: bordered whole-card, transparent bg (page's
   light pink shows through), off-white image tile, 4-up desktop /
   2-up mobile. ---- */
.btpk-shop-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px 24px; }
.btpk-shop-card{ position:relative; display:flex; flex-direction:column; height:100%; border:1px solid #E9CFDB; border-radius:12px; padding:16px; }
.btpk-shop-card-media{ display:block; aspect-ratio:1/1; background:#F2F0EE; border-radius:8px; overflow:hidden; margin-bottom:16px; position:relative; }
.btpk-shop-card-media > a{ display:block; width:100%; height:100%; }
.btpk-shop-card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.btpk-wishlist-icon{ position:absolute; top:10px; right:10px; z-index:2; }
.btpk-wishlist-fallback{ background:#fff; border:none; width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:15px; color:var(--btpk-pink); display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,0.12); }
.btpk-wishlist-fallback:hover{ transform:scale(1.08); }
.btpk-wishlist-fallback.is-active{ color:var(--btpk-pink); }
.btpk-shop-badges{ position:absolute; top:10px; left:10px; display:flex; flex-direction:column; gap:6px; z-index:2; }
.btpk-shop-badge{ font-size:11px; font-weight:800; letter-spacing:.02em; padding:4px 8px; border-radius:20px; color:#fff; white-space:nowrap; }
.btpk-shop-badge-sale{ background:var(--btpk-pink); }
.btpk-shop-badge-new{ background:var(--btpk-ink-dark); }
.btpk-shop-badge-featured{ background:var(--btpk-pink-tint2); color:var(--btpk-ink); }
.btpk-shop-badge-stock{ background:#4a4e44; }
.btpk-shop-card-title{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; text-overflow:ellipsis; font-family:var(--font-sans); font-size:16px; font-weight:800; color:var(--btpk-ink); margin-bottom:8px; line-height:1.3; min-height:calc(1.3em * 2); }
.btpk-shop-card-title:hover{ color:var(--btpk-pink); }
.btpk-shop-card-rating{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.btpk-shop-card-rating .star-rating{ font-size:13px; color:var(--btpk-gold); }
.btpk-shop-card-rating-num{ color:var(--btpk-pink); font-size:12.5px; font-weight:700; }
.btpk-shop-card-rating-count{ color:var(--btpk-gray); font-size:12.5px; text-decoration:underline; }
.btpk-shop-card-price{ font-size:15.5px; font-weight:800; color:var(--btpk-ink); margin-bottom:14px; }
.btpk-shop-card-price del{ color:#B7BAAC; font-weight:600; font-size:13px; margin-right:6px; }
.btpk-shop-card-price ins{ text-decoration:none; }
.btpk-shop-card-spacer{ flex:1; }
.btpk-shop-card-action a.button{ display:block; width:100%; text-align:center; background:var(--btpk-ink); color:#fff !important; padding:13px; border-radius:4px; font-size:13px; font-weight:700; white-space:nowrap; text-decoration:none; transition:background .15s; border:none; cursor:pointer; box-sizing:border-box; font-family:var(--font-sans); }
.btpk-shop-card-action a.button:hover{ background:var(--btpk-pink); }
.btpk-shop-card-action a.button.loading{ opacity:.6; pointer-events:none; }
.btpk-shop-card-action a.added_to_cart{ display:block; margin-top:6px; font-size:12px; color:var(--btpk-pink); text-decoration:underline; text-align:center; }

/* ---- Load More ---- */
.btpk-shop-loadmore-wrap{ display:flex; justify-content:center; padding:40px 0 0; }
.btpk-shop-loadmore{ display:inline-flex; align-items:center; gap:10px; background:var(--btpk-ink); color:#fff; border:none; border-radius:30px; padding:14px 34px; font-size:13.5px; font-weight:700; cursor:pointer; font-family:var(--font-sans); }
.btpk-shop-loadmore:hover{ background:var(--btpk-pink); }
.btpk-shop-loadmore.is-loading{ opacity:.85; cursor:default; }
.btpk-shop-loadmore-spinner{ width:15px; height:15px; border:2px solid rgba(255,255,255,0.4); border-top-color:#fff; border-radius:50%; display:none; animation:btpk-spin .7s linear infinite; }
.btpk-shop-loadmore.is-loading .btpk-shop-loadmore-spinner{ display:inline-block; }
@keyframes btpk-spin{ to{ transform:rotate(360deg); } }

/* ---- Responsive ---- */
@media (max-width: 1100px) and (min-width: 901px){
	.btpk-shop-grid{ grid-template-columns:repeat(3,1fr); gap:28px 20px; }
	.btpk-shop-carousel-item{ flex-basis:25%; }
	.btpk-shop-carousel-label{ font-size:15px; }
}
@media (max-width: 900px){
	.btpk-shop-heading{ font-size:26px; text-align:center; margin:18px 0 16px; }
	.btpk-shop-toolbar-title{ display:none; }
	.btpk-shop-toolbar{ flex-wrap:nowrap; gap:10px; }
	.btpk-shop-filter-toggle{ display:inline-flex; flex-shrink:0; }
	.btpk-shop-dd-triggers{ display:none; }
	.btpk-shop-sort-wrap{ flex-shrink:0; margin-left:auto; }
	.btpk-shop-sort{ padding:10px 12px; }
	.btpk-shop-grid{ grid-template-columns:repeat(2,1fr); gap:24px 14px; }
	.btpk-shop-card-title{ font-size:13.5px; }
	.btpk-shop-carousel-section{ padding:24px 0 18px; }
	.btpk-shop-carousel-wrap{ padding:0 36px; }
	.btpk-shop-carousel-arrow{ width:32px; height:32px; font-size:15px; top:calc(50% - 14px); }
	.btpk-shop-carousel-prev{ left:2px; }
	.btpk-shop-carousel-next{ right:2px; }
	.btpk-shop-carousel-item{ flex-basis:33.3333%; }
	.btpk-shop-carousel-media{ width:84%; }
	.btpk-shop-carousel-label{ margin-top:8px; font-size:12.5px; }

	.btpk-shop-sidebar-backdrop.is-open{ display:block; position:fixed; inset:0; background:rgba(24,19,26,.45); z-index:105; }
	.btpk-shop-sidebar{
		position:fixed; top:0; right:0; bottom:0; left:auto; z-index:110; width:min(340px,86vw); max-width:none;
		background:#fff; padding:0; margin:0; border-radius:0; border:none; box-shadow:0 0 40px rgba(0,0,0,.18);
		transform:translateX(100%); transition:transform .28s ease; display:flex; flex-direction:column; gap:0;
	}
	.btpk-shop-sidebar.is-open{ transform:translateX(0); display:flex; }
	.btpk-shop-sidebar[data-group] .btpk-shop-filter-group{ display:flex !important; }
	.btpk-shop-sidebar-head{ display:flex; align-items:center; justify-content:space-between; padding:20px; border-bottom:1px solid var(--btpk-pink-tint2); flex-shrink:0; }
	.btpk-shop-sidebar-head-title{ font-family:var(--font-serif); font-weight:700; font-size:18px; color:var(--btpk-ink); }
	.btpk-shop-sidebar-close{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:none; background:none; color:var(--btpk-ink); font-size:18px; cursor:pointer; }
	.btpk-shop-sidebar-scroll{ flex:1; overflow-y:auto; padding:20px; gap:24px; }
	.btpk-shop-sidebar-footer{ display:flex; border-top:1px solid var(--btpk-pink-tint2); flex-shrink:0; }
	.btpk-shop-clear-all{ flex:1; padding:16px; background:#fff; border:none; font-size:13.5px; font-weight:700; color:var(--btpk-ink); cursor:pointer; font-family:var(--font-sans); }
	.btpk-shop-apply{ flex:1; padding:16px; background:var(--btpk-ink); border:none; font-size:13.5px; font-weight:700; color:#fff; cursor:pointer; font-family:var(--font-sans); }
}
@media (max-width: 560px){
	.btpk-shop-sort-label{ display:none; }
}

/* ---- WooCommerce default product loops ([products] shortcode, search,
   upsells, cart cross-sells) — same grid + card as the Shop page.
   Cards come from woocommerce/content-product.php. ---- */
.woocommerce ul.products, ul.products{ display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px 24px; margin:0 0 32px !important; padding:0 !important; list-style:none !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after, ul.products::before, ul.products::after{ display:none !important; }
.woocommerce ul.products li.product, ul.products li.product{ width:auto !important; margin:0 !important; padding:0 !important; float:none !important; list-style:none; display:flex; }
.woocommerce ul.products li.product > .btpk-shop-card, ul.products li.product > .btpk-shop-card{ width:100%; }
@media (max-width: 1100px) and (min-width: 901px){
	.woocommerce ul.products, ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 20px; }
}
@media (max-width: 900px){
	.woocommerce ul.products, ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
}
