/* ==========================================================================
   SHOP + PRODUCT PAGE STYLES — PrintForge3D
   ========================================================================== */

/* ── Shop Hero ───────────────────────────────────────────────────────────── */
.pf3d-shop-hero {
  background: var(--pf-bg-surface);
  border-bottom: 1px solid var(--pf-border);
  padding: var(--pf-space-16) 0 0;
  position: relative;
  overflow: hidden;
}
.pf3d-shop-hero__inner { position: relative; z-index: 1; padding-bottom: var(--pf-space-8); }
.pf3d-shop-hero__title { font-size: clamp(2rem,4vw,3rem); font-weight:800; color:var(--pf-text-primary); margin:var(--pf-space-4) 0 var(--pf-space-3); }
.pf3d-shop-hero__desc  { color:var(--pf-text-muted); font-size:var(--pf-text-lg); }
.pf3d-shop-hero__wave  { line-height:0; } .pf3d-shop-hero__wave svg { width:100%; height:50px; display:block; }

/* ── Shop Layout ─────────────────────────────────────────────────────────── */
.pf3d-shop-main { padding-top: var(--pf-space-8); }
.pf3d-shop-layout { display: grid; grid-template-columns: 280px 1fr; gap: var(--pf-space-8); align-items: start; }

/* Sidebar */
.pf3d-shop-sidebar {
  background: var(--pf-bg-card); border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius-xl); padding: var(--pf-space-6);
  position: sticky; top: calc(var(--pf-header-height) + var(--pf-space-4));
}
.pf3d-shop-sidebar__header { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--pf-space-5); }
.pf3d-shop-sidebar__header h3 { font-size:var(--pf-text-sm); font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--pf-text-primary); }
.pf3d-sidebar-close { display:none; background:transparent; border:none; color:var(--pf-text-muted); cursor:pointer; font-size:18px; }

/* WooCommerce sidebar widgets */
.pf3d-shop-sidebar .widget { margin-bottom:var(--pf-space-6); padding-bottom:var(--pf-space-6); border-bottom:1px solid var(--pf-border); }
.pf3d-shop-sidebar .widget:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.pf3d-shop-sidebar .widget-title { font-size:var(--pf-text-sm); font-weight:700; color:var(--pf-text-primary); text-transform:uppercase; letter-spacing:.08em; margin-bottom:var(--pf-space-4); }
.pf3d-shop-sidebar ul { list-style:none; padding:0; margin:0; }
.pf3d-shop-sidebar ul li { padding:4px 0; }
.pf3d-shop-sidebar ul li a { font-size:var(--pf-text-sm); color:var(--pf-text-muted); text-decoration:none; transition:color var(--pf-transition-fast); }
.pf3d-shop-sidebar ul li a:hover { color:var(--pf-primary); }
.pf3d-shop-sidebar ul li.current-cat > a { color:var(--pf-primary); font-weight:600; }
.pf3d-shop-sidebar .count { color:var(--pf-text-disabled); margin-left:4px; }

/* Price slider */
.pf3d-shop-sidebar .price_slider_wrapper { margin-top:var(--pf-space-3); }
.pf3d-shop-sidebar .price_slider { height:4px; background:var(--pf-border); border-radius:2px; margin:var(--pf-space-3) 0; }
.pf3d-shop-sidebar .ui-slider-range { background:var(--pf-primary); border-radius:2px; }
.pf3d-shop-sidebar .ui-slider-handle { width:16px; height:16px; background:var(--pf-primary); border-radius:50%; top:-6px; cursor:pointer; outline:none; border:none; box-shadow:0 0 0 3px var(--pf-primary-glow); }

/* Toolbar */
.pf3d-shop-toolbar { display:flex; align-items:center; gap:var(--pf-space-4); margin-bottom:var(--pf-space-6); }
.pf3d-shop-toolbar__count { font-size:var(--pf-text-sm); color:var(--pf-text-muted); flex:1; }
.pf3d-shop-toolbar__sort select { background:var(--pf-bg-card); border:1px solid var(--pf-border); color:var(--pf-text-secondary); border-radius:var(--pf-radius-md); padding:0.5rem var(--pf-space-4); font-size:var(--pf-text-sm); outline:none; cursor:pointer; }
.pf3d-shop-toolbar__sort select:focus { border-color:var(--pf-primary); }
.pf3d-filter-toggle { display:none; }

/* WC loop override */
.woocommerce ul.products { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--pf-space-5); margin:0; padding:0; list-style:none; }
.woocommerce ul.products li.product { margin:0; }

/* Pagination */
.pf3d-shop-pagination { margin-top:var(--pf-space-10); }
.woocommerce-pagination ul { display:flex; gap:var(--pf-space-2); list-style:none; padding:0; margin:0; justify-content:center; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--pf-radius-md); background:var(--pf-bg-card); border:1px solid var(--pf-border); color:var(--pf-text-muted); font-size:var(--pf-text-sm); font-weight:600; text-decoration:none; transition:all var(--pf-transition-fast); }
.woocommerce-pagination ul li a:hover { border-color:var(--pf-primary); color:var(--pf-primary); }
.woocommerce-pagination ul li span.current { background:var(--pf-gradient-primary); border-color:transparent; color:#fff; }

/* ── Single Product ───────────────────────────────────────────────────────── */
.pf3d-product-layout { display:grid; grid-template-columns:1fr 1fr; gap:var(--pf-space-12); align-items:start; margin-bottom:var(--pf-space-16); }

.pf3d-product-gallery { display:flex; flex-direction:column; gap:var(--pf-space-4); }
.pf3d-product-main-image { position:relative; border-radius:var(--pf-radius-xl); overflow:hidden; border:1px solid var(--pf-border); background:var(--pf-bg-card); aspect-ratio:1; }
.pf3d-product-main-image__img,.pf3d-product-main-image img { width:100%; height:100%; object-fit:cover; transition:transform var(--pf-transition-slow); }
.pf3d-product-main-image:hover .pf3d-product-main-image__img { transform:scale(1.03); }
.pf3d-product-no-image { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--pf-border-light); }
.pf3d-product-no-image svg { width:64px; height:64px; }

.pf3d-product-thumbs { display:flex; gap:var(--pf-space-3); flex-wrap:wrap; }
.pf3d-product-thumb { width:72px; height:72px; border:2px solid var(--pf-border); border-radius:var(--pf-radius-md); overflow:hidden; cursor:pointer; background:transparent; padding:0; transition:all var(--pf-transition-fast); }
.pf3d-product-thumb img { width:100%; height:100%; object-fit:cover; }
.pf3d-product-thumb.active,.pf3d-product-thumb:hover { border-color:var(--pf-primary); }

/* Product info */
.pf3d-product-info__cat { font-size:var(--pf-text-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--pf-primary); font-weight:700; text-decoration:none; margin-bottom:var(--pf-space-3); display:block; }
.pf3d-product-info__title { font-size:clamp(1.5rem,3vw,2.5rem); font-weight:800; color:var(--pf-text-primary); margin-bottom:var(--pf-space-3); line-height:1.2; }
.pf3d-product-info__rating { display:flex; align-items:center; gap:var(--pf-space-3); margin-bottom:var(--pf-space-4); }
.pf3d-product-info__review-count { font-size:var(--pf-text-sm); color:var(--pf-text-muted); text-decoration:underline; }
.pf3d-product-info__price { display:flex; align-items:center; gap:var(--pf-space-3); margin-bottom:var(--pf-space-5); }
.pf3d-product-info__price .price { font-family:var(--pf-font-heading); font-size:var(--pf-text-3xl); font-weight:800; color:var(--pf-text-primary); }
.pf3d-product-info__discount { background:rgba(76,175,80,.15); color:var(--pf-success); font-size:var(--pf-text-sm); font-weight:700; padding:4px 10px; border-radius:var(--pf-radius-full); }
.pf3d-product-info__short-desc { font-size:var(--pf-text-base); color:var(--pf-text-muted); line-height:var(--pf-leading-relaxed); margin-bottom:var(--pf-space-6); padding-bottom:var(--pf-space-6); border-bottom:1px solid var(--pf-border); }

/* Specs strip */
.pf3d-product-specs { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--pf-space-3); margin-bottom:var(--pf-space-6); padding:var(--pf-space-4); background:var(--pf-bg-elevated); border-radius:var(--pf-radius-lg); border:1px solid var(--pf-border); }
.pf3d-spec-item { display:flex; align-items:center; gap:var(--pf-space-3); }
.pf3d-spec-icon { color:var(--pf-primary); flex-shrink:0; }
.pf3d-spec-label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--pf-text-muted); }
.pf3d-spec-value { display:block; font-size:var(--pf-text-sm); font-weight:600; color:var(--pf-text-primary); }
.pf3d-in-stock  { color:var(--pf-success)!important; }
.pf3d-out-stock { color:var(--pf-warning)!important; }

/* WC add to cart */
.pf3d-product-info .cart { display:flex; align-items:center; gap:var(--pf-space-4); margin:var(--pf-space-6) 0; flex-wrap:wrap; }
.pf3d-product-info .quantity { display:flex; align-items:center; border:1px solid var(--pf-border); border-radius:var(--pf-radius-md); overflow:hidden; }
.pf3d-product-info .quantity input[type="number"] { width:60px; height:48px; text-align:center; background:transparent; border:none; color:var(--pf-text-primary); font-size:var(--pf-text-base); font-weight:600; -moz-appearance:textfield; outline:none; }
.pf3d-product-info .quantity input::-webkit-inner-spin-button { display:none; }
.pf3d-product-info .single_add_to_cart_button { flex:1; height:52px; font-size:var(--pf-text-base)!important; font-weight:700!important; background:var(--pf-gradient-primary)!important; color:#fff!important; border:none!important; border-radius:var(--pf-radius-md)!important; cursor:pointer; font-family:var(--pf-font-heading)!important; text-transform:uppercase!important; letter-spacing:.06em!important; transition:all var(--pf-transition-base)!important; }
.pf3d-product-info .single_add_to_cart_button:hover { box-shadow:var(--pf-shadow-primary)!important; transform:translateY(-2px)!important; }

/* File upload field */
.pf3d-file-upload-field { margin-bottom:var(--pf-space-5); }
.pf3d-field-label { display:flex; align-items:center; gap:var(--pf-space-3); font-size:var(--pf-text-sm); font-weight:600; color:var(--pf-text-secondary); margin-bottom:var(--pf-space-3); }
.pf3d-field-optional { font-size:10px; background:var(--pf-bg-elevated); color:var(--pf-text-muted); padding:2px 8px; border-radius:var(--pf-radius-full); font-weight:400; }
.pf3d-file-upload-ui { display:flex; flex-direction:column; align-items:center; gap:var(--pf-space-2); color:var(--pf-text-muted); pointer-events:none; }
.pf3d-file-upload-ui svg { color:var(--pf-primary); opacity:.6; }
.pf3d-file-upload-ui p { font-size:var(--pf-text-sm); }
.pf3d-file-types { font-size:10px; color:var(--pf-text-disabled); }
.pf3d-file-selected { display:flex; align-items:center; gap:var(--pf-space-2); font-size:var(--pf-text-sm); color:var(--pf-text-secondary); margin-top:var(--pf-space-2); }

/* Trust badges */
.pf3d-product-trust { display:grid; grid-template-columns:1fr 1fr; gap:var(--pf-space-3); margin-top:var(--pf-space-6); padding:var(--pf-space-5); background:var(--pf-bg-elevated); border-radius:var(--pf-radius-lg); border:1px solid var(--pf-border); }
.pf3d-trust-badge { display:flex; align-items:center; gap:var(--pf-space-3); font-size:var(--pf-text-xs); color:var(--pf-text-muted); font-weight:500; }
.pf3d-trust-badge svg { color:var(--pf-primary); flex-shrink:0; }

/* Product tabs */
.pf3d-product-tabs { margin-bottom:var(--pf-space-16); }
.pf3d-product-tabs .woocommerce-tabs .tabs { display:flex; gap:0; list-style:none; padding:0; margin:0; border-bottom:1px solid var(--pf-border); }
.pf3d-product-tabs .woocommerce-tabs .tabs li a { display:block; padding:var(--pf-space-4) var(--pf-space-6); font-family:var(--pf-font-heading); font-size:var(--pf-text-sm); font-weight:700; color:var(--pf-text-muted); text-decoration:none; text-transform:uppercase; letter-spacing:.08em; border-bottom:2px solid transparent; margin-bottom:-1px; transition:all var(--pf-transition-fast); }
.pf3d-product-tabs .woocommerce-tabs .tabs li.active a { color:var(--pf-primary); border-bottom-color:var(--pf-primary); }
.pf3d-product-tabs .woocommerce-tabs .tabs li a:hover { color:var(--pf-text-primary); }
.pf3d-product-tabs .woocommerce-tabs .panel { padding:var(--pf-space-8) 0; color:var(--pf-text-secondary); line-height:var(--pf-leading-relaxed); }

/* 3D model viewer */
.pf3d-model-viewer-wrap { position:relative; border-radius:var(--pf-radius-xl); overflow:hidden; border:1px solid var(--pf-border); background:var(--pf-bg-elevated); height:400px; display:none; }
.pf3d-model-viewer-wrap.active { display:block; }
#pf3d-model-canvas { width:100%; height:100%; display:block; }
.pf3d-model-controls { position:absolute; bottom:var(--pf-space-4); left:50%; transform:translateX(-50%); background:rgba(13,14,26,.8); backdrop-filter:blur(8px); border:1px solid var(--pf-border); border-radius:var(--pf-radius-full); padding:6px var(--pf-space-4); font-size:11px; color:var(--pf-text-muted); display:flex; align-items:center; gap:var(--pf-space-2); }

/* ── Cart ────────────────────────────────────────────────────────────────── */
.woocommerce-cart-form { overflow-x:auto; }
.shop_table { width:100%; border-collapse:collapse; }
.shop_table thead th { padding:var(--pf-space-4) var(--pf-space-4); font-size:var(--pf-text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--pf-text-muted); border-bottom:1px solid var(--pf-border); text-align:left; }
.shop_table tbody td { padding:var(--pf-space-5) var(--pf-space-4); border-bottom:1px solid var(--pf-border); vertical-align:middle; }
.shop_table .product-thumbnail img { width:72px; height:72px; object-fit:cover; border-radius:var(--pf-radius-md); }
.shop_table .product-name a { color:var(--pf-text-primary); font-weight:600; text-decoration:none; }
.shop_table .product-name a:hover { color:var(--pf-primary); }
.shop_table .product-price,.shop_table .product-total { color:var(--pf-text-primary); font-weight:600; }
.shop_table a.remove { color:var(--pf-error)!important; font-size:20px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; transition:background var(--pf-transition-fast); }
.shop_table a.remove:hover { background:rgba(244,67,54,.15); }
.woocommerce .cart_totals,.woocommerce-cart .cart_totals { background:var(--pf-bg-card); border:1px solid var(--pf-border); border-radius:var(--pf-radius-xl); padding:var(--pf-space-8); }
.cart_totals h2 { font-size:var(--pf-text-xl); margin-bottom:var(--pf-space-5); color:var(--pf-text-primary); }
.cart_totals .shop_table th,.cart_totals .shop_table td { padding:var(--pf-space-3) 0; border-color:var(--pf-border); }
.wc-proceed-to-checkout .checkout-button { width:100%!important; padding:1rem!important; background:var(--pf-gradient-primary)!important; color:#fff!important; border:none!important; border-radius:var(--pf-radius-md)!important; font-size:var(--pf-text-base)!important; font-weight:700!important; font-family:var(--pf-font-heading)!important; text-transform:uppercase!important; letter-spacing:.06em!important; cursor:pointer; display:block!important; text-align:center; text-decoration:none!important; transition:all var(--pf-transition-base)!important; }
.wc-proceed-to-checkout .checkout-button:hover { box-shadow:var(--pf-shadow-primary)!important; transform:translateY(-2px)!important; }

/* ── Checkout ────────────────────────────────────────────────────────────── */
.pf3d-checkout-cols { display:grid; grid-template-columns:1fr 380px; gap:var(--pf-space-8); align-items:start; }
.pf3d-checkout-extra h3 { font-size:var(--pf-text-xl); color:var(--pf-text-primary); margin:var(--pf-space-8) 0 var(--pf-space-5); }
.woocommerce form.checkout h3 { font-size:var(--pf-text-xl); color:var(--pf-text-primary); margin-bottom:var(--pf-space-5); }
.woocommerce form .form-row { margin-bottom:var(--pf-space-4); }
.woocommerce form .form-row label { display:block; font-size:var(--pf-text-sm); font-weight:500; color:var(--pf-text-secondary); margin-bottom:var(--pf-space-2); }
.woocommerce form .form-row input,.woocommerce form .form-row textarea,.woocommerce form .form-row select { width:100%; background:var(--pf-bg-input); border:1px solid var(--pf-border); border-radius:var(--pf-radius-md); padding:.75rem 1rem; color:var(--pf-text-primary); font-size:var(--pf-text-base); outline:none; transition:border-color var(--pf-transition-fast); }
.woocommerce form .form-row input:focus,.woocommerce form .form-row textarea:focus,.woocommerce form .form-row select:focus { border-color:var(--pf-primary); box-shadow:0 0 0 3px var(--pf-primary-glow); }
.woocommerce form .form-row .required { color:var(--pf-primary); }
.woocommerce #order_review { background:var(--pf-bg-card); border:1px solid var(--pf-border); border-radius:var(--pf-radius-xl); padding:var(--pf-space-6); }
.woocommerce #place_order { width:100%; padding:1rem; background:var(--pf-gradient-primary); color:#fff; border:none; border-radius:var(--pf-radius-md); font-size:var(--pf-text-base); font-weight:700; font-family:var(--pf-font-heading); text-transform:uppercase; letter-spacing:.06em; cursor:pointer; transition:all var(--pf-transition-base); }
.woocommerce #place_order:hover { box-shadow:var(--pf-shadow-primary); transform:translateY(-2px); }

/* Payment methods */
.woocommerce-checkout #payment { background:var(--pf-bg-elevated); border:1px solid var(--pf-border); border-radius:var(--pf-radius-lg); padding:var(--pf-space-5); margin-bottom:var(--pf-space-5); }
.woocommerce-checkout #payment ul.payment_methods { list-style:none; padding:0; margin:0 0 var(--pf-space-4); }
.woocommerce-checkout #payment ul.payment_methods li { padding:var(--pf-space-4); border:1px solid var(--pf-border); border-radius:var(--pf-radius-md); margin-bottom:var(--pf-space-2); cursor:pointer; transition:border-color var(--pf-transition-fast); }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color:var(--pf-primary); background:var(--pf-primary-glow); }
.woocommerce-checkout #payment ul.payment_methods li label { cursor:pointer; font-weight:500; color:var(--pf-text-secondary); }

/* ── Order Received ──────────────────────────────────────────────────────── */
.woocommerce-order-received .woocommerce { padding:var(--pf-space-12) 0; }
.woocommerce-order-received .woocommerce-thankyou-section { text-align:center; padding:var(--pf-space-12) 0; }
.woocommerce-thankyou-order-received { font-size:var(--pf-text-2xl); font-weight:700; color:var(--pf-text-primary); margin-bottom:var(--pf-space-4); }
.woocommerce ul.order_details { list-style:none; padding:0; display:flex; gap:var(--pf-space-6); justify-content:center; flex-wrap:wrap; margin:var(--pf-space-6) 0; }
.woocommerce ul.order_details li { background:var(--pf-bg-card); border:1px solid var(--pf-border); border-radius:var(--pf-radius-lg); padding:var(--pf-space-4) var(--pf-space-6); text-align:center; }
.woocommerce ul.order_details li strong { display:block; font-size:var(--pf-text-lg); color:var(--pf-text-primary); }

/* ── My Account ──────────────────────────────────────────────────────────── */
.woocommerce-account .woocommerce { display:grid; grid-template-columns:240px 1fr; gap:var(--pf-space-8); }
.woocommerce-MyAccount-navigation { background:var(--pf-bg-card); border:1px solid var(--pf-border); border-radius:var(--pf-radius-xl); padding:var(--pf-space-4); height:fit-content; }
.woocommerce-MyAccount-navigation ul { list-style:none; padding:0; margin:0; }
.woocommerce-MyAccount-navigation ul li a { display:block; padding:var(--pf-space-3) var(--pf-space-4); font-size:var(--pf-text-sm); font-weight:600; color:var(--pf-text-muted); text-decoration:none; border-radius:var(--pf-radius-md); transition:all var(--pf-transition-fast); }
.woocommerce-MyAccount-navigation ul li a:hover,.woocommerce-MyAccount-navigation ul li.is-active a { background:var(--pf-primary-glow); color:var(--pf-primary); }
.woocommerce-MyAccount-content { background:var(--pf-bg-card); border:1px solid var(--pf-border); border-radius:var(--pf-radius-xl); padding:var(--pf-space-8); }

/* Toast notification */
#pf3d-toast { position:fixed; bottom:var(--pf-space-6); left:50%; transform:translateX(-50%) translateY(20px); background:var(--pf-bg-elevated); border:1px solid var(--pf-border); border-radius:var(--pf-radius-md); padding:var(--pf-space-4) var(--pf-space-6); font-size:var(--pf-text-sm); color:var(--pf-text-secondary); z-index:var(--pf-z-toast); opacity:0; transition:all var(--pf-transition-base); white-space:nowrap; }
#pf3d-toast.pf3d-toast--visible { opacity:1; transform:translateX(-50%) translateY(0); }
#pf3d-toast.pf3d-toast--success { border-color:var(--pf-success); color:var(--pf-success); }
#pf3d-toast.pf3d-toast--error   { border-color:var(--pf-error);   color:var(--pf-error); }

/* WC breadcrumb */
.pf3d-breadcrumb { margin-bottom:var(--pf-space-4); }
.pf3d-breadcrumb ol { display:flex; align-items:center; gap:var(--pf-space-2); list-style:none; padding:0; margin:0; flex-wrap:wrap; }
.pf3d-breadcrumb ol li { font-size:var(--pf-text-sm); color:var(--pf-text-muted); }
.pf3d-breadcrumb ol li a { color:var(--pf-text-muted); text-decoration:none; transition:color var(--pf-transition-fast); }
.pf3d-breadcrumb ol li a:hover { color:var(--pf-primary); }
.pf3d-bc-sep { color:var(--pf-text-disabled); margin:0 var(--pf-space-1); }

/* Cart bounce animation */
@keyframes pf3d-cart-bounce { 0%,100%{transform:scale(1)} 50%{transform:scale(1.2)} }
.pf3d-cart-bounce { animation: pf3d-cart-bounce .5s ease; }
