/* ============================================================
   everpuzzleV2 — woocommerce.css
   ============================================================ */

/* ----------------------------------------------------------
   Hide default WP sidebar on all WC pages
   ---------------------------------------------------------- */

.woocommerce-page #sidebar,
.woocommerce-shop  #sidebar,
.single-product    #sidebar { display: none; }

/* ----------------------------------------------------------
   Base layout — single & archive share these
   ---------------------------------------------------------- */

.woocommerce-page .site-main,
.post-type-archive-product .site-main { padding-top: 0; }

/* ----------------------------------------------------------
   Breadcrumb
   ---------------------------------------------------------- */

.wc-breadcrumb-bar {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: calc(var(--nav-h) + var(--topbar-h) + .75rem) var(--pad) .75rem;
}

.wc-breadcrumb {
  max-width: var(--fw);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .84rem;
  color: var(--muted);
  flex-wrap: wrap;
}

.wc-breadcrumb-home {
  display: flex;
  align-items: center;
  gap: .35rem;
  color: var(--muted);
  text-decoration: none;
  transition: color var(--transition);
}
.wc-breadcrumb-home:hover { color: var(--pur); }
.wc-breadcrumb-home::before {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%2F%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%2F%3E%3C%2Fsvg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  flex-shrink: 0;
}

.wc-breadcrumb-link {
  color: var(--muted);
  text-decoration: none;
  transition: color var(--transition);
}
.wc-breadcrumb-link:hover { color: var(--pur); }

.wc-breadcrumb-sep   { opacity: .45; }
.wc-breadcrumb-current { color: var(--ink); font-weight: 600; }

/* Light variants for dark hero breadcrumb */
.wc-breadcrumb-home--light        { color: rgba(255,255,255,.65); }
.wc-breadcrumb-home--light:hover  { color: var(--white); }
.wc-breadcrumb-link--light        { color: rgba(255,255,255,.65); text-decoration: none; transition: color var(--transition); }
.wc-breadcrumb-link--light:hover  { color: var(--white); }
.wc-breadcrumb-sep--light         { color: rgba(255,255,255,.35); opacity: 1; }
.wc-breadcrumb-current--light     { color: var(--white); font-weight: 600; font-size: .84rem; }

/* Pill breadcrumb inside dark hero */
.wc-breadcrumb--hero {
  max-width: none;
  width: fit-content;
  margin-inline: 0;
  margin-bottom: var(--sp-md);
  padding: .45rem 1.1rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 2rem;
  backdrop-filter: blur(6px);
}

/* Product page breadcrumb bar — full-width strip below dark hero */
.wc-product-breadcrumb-bar {
  background: var(--cream, #f5f3ee);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.wc-product-breadcrumb-bar .section-inner {
  padding-block: .5rem;
}
.wc-product-breadcrumb-bar .wc-breadcrumb {
  max-width: none;
  margin-inline: 0;
  padding: 0;
}

/* ----------------------------------------------------------
   Shop body (cream background, wraps product grid)
   ---------------------------------------------------------- */

.wc-shop-body {
  background: var(--cream);
  padding-block: var(--sp-xl);
}

.wc-shop-body .section-inner { padding-block: 0; }

/* ----------------------------------------------------------
   Shop toolbar — result count + ordering
   ---------------------------------------------------------- */

.wc-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: var(--sp-lg);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}

.woocommerce-result-count {
  font-size: .84rem;
  color: var(--muted);
  margin: 0;
}

.woocommerce-ordering { margin: 0; }

.woocommerce-ordering select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234D4B63' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .65rem center / 16px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: .45rem 2.2rem .45rem .8rem;
  font-family: var(--font-sans);
  font-size: .84rem;
  color: var(--ink);
  cursor: pointer;
  transition: border-color var(--transition);
}

.woocommerce-ordering select:focus {
  outline: none;
  border-color: var(--pur);
}

/* ----------------------------------------------------------
   Product Grid
   ---------------------------------------------------------- */

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* WooCommerce clearfix pseudo-elements become grid items — suppress them */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
  content: none;
}

.woocommerce ul.products li.product {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition), transform var(--transition);
  margin: 0;
}

/* Override WC's column-width percentages */
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product {
  width: 100%;
  float: none;
}

.woocommerce ul.products li.product:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product a.woocommerce-loop-product__link {
  display: block;
  position: relative;
}

/* Fixed height prevents broken images from inflating the grid row */
.woocommerce ul.products li.product a img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: center;
  display: block;
  overflow: hidden;
  transition: transform .4s ease;
}

.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-serif);
  font-size: .95rem;
  font-weight: 700;
  color: var(--ink);
  padding: .85rem 1rem .4rem;
  margin: 0;
  line-height: 1.35;
}

.woocommerce ul.products li.product .price {
  font-size: .95rem;
  font-weight: 700;
  color: var(--pur);
  padding: 0 1rem .85rem;
  display: block;
  margin: 0;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
  display: block;
  margin: auto 1rem 1rem;
  padding: .5rem 1rem;
  background: var(--pur);
  color: var(--white);
  border-radius: var(--r);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: .82rem;
  text-align: center;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--transition);
}

.woocommerce ul.products li.product .button:hover { background: var(--pur-dk); color: var(--white); }

/* Result count bold */
.woocommerce-result-count { font-weight: 700; }

/* Short excerpt below title */
.wc-loop-excerpt {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.55;
  padding: 0 1rem .5rem;
  margin: 0;
}

/* External/affiliate product buy button */
.woocommerce ul.products li.product .button.product_type_external {
  font-size: .92rem;
  padding: .8rem 1rem;
}

/* ----------------------------------------------------------
   Pagination
   ---------------------------------------------------------- */

.woocommerce-pagination {
  margin-top: var(--sp-lg);
  display: flex;
  justify-content: center;
}

.woocommerce-pagination ul {
  display: flex;
  align-items: center;
  gap: .35rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-pagination ul li .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--r);
  border: 1px solid var(--border);
  background: var(--white);
  font-size: .85rem;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.woocommerce-pagination ul li .page-numbers:hover {
  background: var(--pur-lt);
  border-color: var(--pur);
  color: var(--pur-dk);
}

.woocommerce-pagination ul li .page-numbers.current {
  background: var(--pur);
  border-color: var(--pur);
  color: var(--white);
}

/* ----------------------------------------------------------
   Single product — dark hero
   ---------------------------------------------------------- */

.wc-single-main { padding-top: 0; }

.wc-product-hero {
  background:
    radial-gradient(ellipse 55% 70% at 100% 5%,  rgba(124,58,237,.22), transparent 65%),
    radial-gradient(ellipse 35% 50% at 5%  95%,  rgba(157,92,246,.12), transparent 55%),
    radial-gradient(rgba(255,255,255,.065) 1px, transparent 1px),
    var(--dark);
  background-size: auto, auto, 32px 32px, auto;
  padding: calc(var(--nav-h) + var(--topbar-h) + 2.5rem) var(--pad) 4rem;
  border-bottom: 3px solid var(--pur);
}

.wc-product-hero .section-inner { padding-block: 0; }

.wc-product-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--sp-2xl);
  align-items: start;
}

/* Image column: main image + thumbnail strip stacked */
.wc-product-hero-img-col {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.wc-product-hero-img {
  border-radius: var(--r-xl);
  overflow: hidden;
  aspect-ratio: 4/3;
}

.wc-product-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.wc-product-hero-img:hover img { transform: scale(1.03); }

/* Gallery thumbnail strip */
.wc-product-gallery-thumbs {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.wc-gallery-thumb {
  width: 72px;
  height: 72px;
  border-radius: var(--r);
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.15);
  cursor: pointer;
  background: none;
  padding: 0;
  flex-shrink: 0;
  transition: border-color var(--transition);
}

.wc-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wc-gallery-thumb:hover      { border-color: rgba(255,255,255,.55); }
.wc-gallery-thumb.is-active  { border-color: var(--pur); box-shadow: 0 0 0 1px var(--pur); }

/* Info column */
.wc-product-hero-body {
  display: flex;
  flex-direction: column;
}

.wc-product-hero-cat {
  display: inline-block;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--pur-mid);
  text-decoration: none;
  margin-bottom: .65rem;
  transition: color var(--transition);
}
.wc-product-hero-cat:hover { color: var(--pur-lt); }

.wc-product-hero-title {
  font-family: var(--font-serif);
  font-size: var(--hd-display);
  font-weight: 700;
  line-height: 1.15;
  color: var(--white);
  margin: 0 0 1rem;
}

.wc-product-hero-short-desc {
  font-size: 1rem;
  color: rgba(255,255,255,.7);
  line-height: 1.75;
  margin-bottom: 1.5rem;
}
.wc-product-hero-short-desc p { margin: 0 0 .5rem; }
.wc-product-hero-short-desc h2,
.wc-product-hero-short-desc h3,
.wc-product-hero-short-desc h4 { color: var(--white); font-family: var(--font-serif); }

/* Price in hero */
.wc-product-hero-price p.price,
.wc-product-hero-price span.price {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--white);
  margin-bottom: 1.25rem;
  display: block;
}
.wc-product-hero-price del span.woocommerce-Price-amount {
  opacity: .55;
  font-size: 1.1rem;
}

/* Add-to-cart form */
.wc-product-hero-cta form.cart {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.wc-product-hero-cta .quantity input {
  width: 72px;
  padding: .65rem .75rem;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--r);
  background: rgba(255,255,255,.08);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 1rem;
  text-align: center;
  appearance: none;
  -moz-appearance: textfield;
}
.wc-product-hero-cta .quantity label { display: none; }

.wc-product-hero-cta .single_add_to_cart_button,
.wc-product-hero-cta .button {
  background: var(--pur);
  color: var(--white);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: .95rem;
  padding: .75rem 1.75rem;
  border-radius: var(--r);
  border: none;
  cursor: pointer;
  transition: background var(--transition);
  display: inline-flex;
  align-items: center;
  line-height: 1;
  text-decoration: none;
}
.wc-product-hero-cta .single_add_to_cart_button:hover,
.wc-product-hero-cta .button:hover { background: var(--pur-dk); color: var(--white); }

/* Product meta (category, tags) */
.wc-product-hero-meta .product_meta {
  font-size: .82rem;
  color: rgba(255,255,255,.5);
  display: flex;
  flex-direction: column;
  gap: .3rem;
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 1rem;
}
.wc-product-hero-meta .product_meta a {
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color var(--transition);
}
.wc-product-hero-meta .product_meta a:hover { color: var(--white); }

/* ----------------------------------------------------------
   Single product — content area
   ---------------------------------------------------------- */

.wc-single-content {
  background: var(--white);
  padding-block: var(--sp-xl);
}
.wc-single-content .section-inner { padding-block: 0; }

/* ----------------------------------------------------------
   Description + Sidebar (main 1fr + sidebar 300px)
   ---------------------------------------------------------- */

.wc-section-title {
  font-family: var(--font-serif);
  font-size: var(--hd-panel);
  color: var(--ink);
  margin-bottom: 1rem;
}

.wc-single-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
  margin-bottom: var(--sp-xl);
  padding-bottom: var(--sp-xl);
  border-bottom: 1px solid var(--border);
}

.wc-main-col { min-width: 0; }

.wc-sidebar-col {
  position: sticky;
  top: calc(var(--nav-h) + var(--topbar-h) + 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-height: calc(100vh - var(--nav-h) - var(--topbar-h) - 3rem);
  overflow-y: auto;
}

.wc-product-desc p,
.wc-product-desc ul,
.wc-product-desc ol {
  font-size: .95rem;
  line-height: 1.8;
  color: var(--ink);
  margin-bottom: 1rem;
}

/* Keep desc headings aligned with entry-content */
.wc-product-desc h2 { font-size: var(--hd-2); margin-top: 2rem; margin-bottom: .65rem; }
.wc-product-desc h3 { font-size: var(--hd-3); margin-top: 1.5rem; margin-bottom: .5rem; }
.wc-product-desc h4 { font-size: var(--hd-4); margin-top: 1.25rem; margin-bottom: .4rem; }

/* Attributes table */
.wc-product-addinfo .woocommerce-product-attributes {
  width: 100%;
  border-collapse: collapse;
  font-size: .88rem;
}
.wc-product-addinfo .woocommerce-product-attributes th,
.wc-product-addinfo .woocommerce-product-attributes td {
  padding: .55rem .75rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
.wc-product-addinfo .woocommerce-product-attributes th {
  font-weight: 700;
  color: var(--ink);
  width: 45%;
  white-space: nowrap;
}
.wc-product-addinfo .woocommerce-product-attributes td { color: var(--muted); }

/* Fix WC default zeroing out td padding */
.wc-product-addinfo .woocommerce-product-attributes td.woocommerce-product-attributes-item__value {
  padding: .55rem .75rem;
  vertical-align: middle;
}

/* Icon inside th label */
.wc-product-addinfo .woocommerce-product-attributes-item__label {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.wc-product-addinfo .woocommerce-product-attributes-item__label i {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--pur);
  stroke-width: 2;
}

/* ----------------------------------------------------------
   "Produkt kaufen" button below attribute table
   ---------------------------------------------------------- */

.wc-buy-btn-wrap {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.wc-buy-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  width: 100%;
  justify-content: center;
  background: var(--pur);
  color: var(--white);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: .9rem;
  padding: .7rem 1.25rem;
  border-radius: var(--r);
  text-decoration: none;
  transition: background var(--transition);
}
.wc-buy-btn:hover { background: var(--pur-dk); color: var(--white); }
.wc-buy-btn i { width: 16px; height: 16px; flex-shrink: 0; }

/* ----------------------------------------------------------
   Related / Upsell products
   ---------------------------------------------------------- */

.wc-single-content .related.products,
.wc-single-content .upsells.products {
  margin-top: 0;
  padding-top: var(--sp-lg);
  border-top: none;
}

.related.products > h2,
.upsells.products > h2 {
  font-family: var(--font-serif);
  font-size: var(--hd-section);
  color: var(--ink);
  margin-bottom: var(--sp-lg);
}

/* 4-column related products (≥1200px) */
.related.products ul.products,
.upsells.products ul.products {
  grid-template-columns: repeat(4, 1fr);
}

/* ----------------------------------------------------------
   Reviews — styled like blog comment section
   ---------------------------------------------------------- */

.wc-reviews-section {
  padding-top: var(--sp-lg);
  border-top: 1px solid var(--border);
}

.woocommerce-Reviews {
  display: flex;
  flex-direction: column;
  gap: var(--sp-lg);
}

/* "Es gibt noch keine Rezensionen." — hide when no reviews, form below stays visible */
.woocommerce-noreviews { display: none; }

#reviews-title {
  font-family: var(--font-serif);
  font-size: var(--hd-section);
  color: var(--ink);
  margin: 0;
}

.woocommerce-Reviews .commentlist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.woocommerce-Reviews li.comment { padding: 0; margin: 0; }

.woocommerce-Reviews .comment_container {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 1.25rem;
  display: flex;
  gap: .75rem;
  align-items: flex-start;
}

.woocommerce-Reviews img.avatar {
  border-radius: 50%;
  width: 44px;
  height: 44px;
  object-fit: cover;
  flex-shrink: 0;
}

.woocommerce-Reviews .comment-text { flex: 1; min-width: 0; }

.woocommerce-Reviews .star-rating { margin-bottom: .45rem; }

.woocommerce-Reviews .meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem .65rem;
  margin-bottom: .65rem;
}

.woocommerce-review__author {
  font-weight: 700;
  font-size: .9rem;
  color: var(--ink);
}

.woocommerce-review__published-date {
  font-size: .8rem;
  color: var(--muted);
}

.woocommerce-review__verified {
  font-size: .75rem;
  color: var(--muted);
  text-decoration: none;
  border: 1px solid var(--border);
  border-radius: 2rem;
  padding: .1rem .5rem;
}

.woocommerce-Reviews .description p {
  font-size: .9rem;
  color: var(--ink);
  line-height: 1.7;
  margin: 0;
}

/* Review form — dark hero card style */
#review_form_wrapper {
  background:
    radial-gradient(ellipse 55% 70% at 100% 5%,  rgba(124,58,237,.22), transparent 65%),
    radial-gradient(ellipse 35% 50% at 5%  95%,  rgba(157,92,246,.12), transparent 55%),
    var(--dark);
  border-radius: var(--r-xl);
  padding: var(--sp-xl) var(--sp-lg);
}

#reply-title,
#review_form_wrapper h3 {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  color: var(--white);
  margin-bottom: var(--sp-md);
}

#review_form_wrapper label {
  color: rgba(255,255,255,.75);
  font-size: .85rem;
  font-weight: 600;
  display: block;
  margin-bottom: .35rem;
}

#review_form_wrapper .comment-form-comment,
#review_form_wrapper .comment-form-author,
#review_form_wrapper .comment-form-email { margin-bottom: 1rem; }

#review_form_wrapper input[type="text"],
#review_form_wrapper input[type="email"],
#review_form_wrapper textarea {
  width: 100%;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--r);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: .9rem;
  padding: .65rem .85rem;
  box-sizing: border-box;
  transition: border-color var(--transition);
}

#review_form_wrapper input[type="text"]:focus,
#review_form_wrapper input[type="email"]:focus,
#review_form_wrapper textarea:focus {
  outline: none;
  border-color: var(--pur);
}

#review_form_wrapper input::placeholder,
#review_form_wrapper textarea::placeholder { color: rgba(255,255,255,.35); }

#review_form_wrapper .form-submit { margin: 0; }

/* High-specificity override of WooCommerce's #respond input#submit rule */
#review_form_wrapper #respond input#submit,
#review_form_wrapper input[type="submit"],
#review_form_wrapper button[type="submit"] {
  background: var(--pur);
  color: var(--white);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: .95rem;
  padding: .75rem 1.75rem;
  border: none;
  border-radius: var(--r);
  cursor: pointer;
  transition: background var(--transition);
}

#review_form_wrapper #respond input#submit:hover,
#review_form_wrapper input[type="submit"]:hover,
#review_form_wrapper button[type="submit"]:hover { background: var(--pur-dk); color: var(--white); }

/* ----------------------------------------------------------
   WC notices
   ---------------------------------------------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  padding: 1rem 1.25rem;
  border-radius: var(--r);
  margin-bottom: 1.25rem;
  font-size: .9rem;
  border-left: 4px solid var(--pur);
  background: var(--pur-pale);
  color: var(--ink);
  list-style: none;
}
.woocommerce-error { border-left-color: #dc2626; background: #fef2f2; }

/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */

/* ≤1200px: shop grid → 3 col; related → 2 col; sidebar → stacked */
@media (max-width: 1200px) {
  .woocommerce ul.products           { grid-template-columns: repeat(3, 1fr); }
  .related.products ul.products,
  .upsells.products ul.products      { grid-template-columns: repeat(2, 1fr); }
  .wc-single-layout                  { grid-template-columns: 1fr; }
  .wc-sidebar-col                    { position: static; max-height: none; overflow-y: visible; }
}

/* ≤900px: single product hero stacks */
@media (max-width: 900px) {
  .wc-product-hero-grid { grid-template-columns: 1fr; }
  .wc-product-hero-img  { aspect-ratio: 16/9; }
}

/* ≤800px: shop grid → 2 col */
@media (max-width: 800px) {
  .woocommerce ul.products      { grid-template-columns: repeat(2, 1fr); }
  .related.products ul.products,
  .upsells.products ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* ≤480px: shop grid → 1 col; related → 1 col */
@media (max-width: 480px) {
  .woocommerce ul.products      { grid-template-columns: 1fr; }
  .related.products ul.products,
  .upsells.products ul.products { grid-template-columns: 1fr; }
  #review_form_wrapper          { padding: var(--sp-lg) 1rem; }
}

/* =============================================================
   FILTER CARD + INFINITE SCROLL
   ============================================================= */

/* Full-width dark card that spans all grid columns */
.woocommerce ul.products li.product.wc-filter-card {
  grid-column: 1 / -1;
  background:
    radial-gradient(ellipse 55% 70% at 100% 5%,  rgba(124,58,237,.22), transparent 65%),
    radial-gradient(ellipse 35% 50% at 5%  95%,  rgba(157,92,246,.12), transparent 55%),
    radial-gradient(rgba(255,255,255,.065) 1px, transparent 1px),
    var(--dark);
  background-size: auto, auto, 28px 28px, auto;
  border: none;
  border-radius: var(--r-xl);
  overflow: visible;
  display: block;
  padding: 1.25rem 1.5rem;
  margin-bottom: .25rem;
  transition: none;
}
.woocommerce ul.products li.product.wc-filter-card:hover {
  box-shadow: none;
  transform: none;
}

/* Sticky state — docked below fixed nav, full viewport width */
.woocommerce ul.products li.product.wc-filter-card.is-sticky {
  position: fixed;
  top: calc(var(--nav-h, 70px) + var(--topbar-h, 36px));
  left: 0;
  right: 0;
  width: 100%;
  border-radius: 0;
  z-index: 200;
  margin: 0;
  padding: .85rem var(--section-pad, 2rem);
  box-shadow: 0 4px 20px rgba(0,0,0,.35);
}

/* Placeholder keeps grid height when card is fixed */
li.wc-filter-placeholder {
  grid-column: 1 / -1;
  pointer-events: none;
}

.wc-filter-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-end;
}

.wc-filter-group {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  flex: 1 1 160px;
  min-width: 130px;
}

.wc-filter-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(255, 255, 255, .55);
}

.wc-filter-select-wrap {
  position: relative;
}

.wc-filter-select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--r-md, 8px);
  color: var(--white);
  font-size: .88rem;
  padding: .55rem 2rem .55rem .8rem;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  line-height: 1.4;
}
.wc-filter-select:focus {
  outline: none;
  border-color: rgba(255, 255, 255, .45);
  background: rgba(255, 255, 255, .13);
}
.wc-filter-select option {
  background: #16103a;
  color: #fff;
}

/* Chevron arrow */
.wc-filter-select-wrap::after {
  content: '';
  position: absolute;
  right: .65rem;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  background-color: rgba(255, 255, 255, .55);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  pointer-events: none;
}

/* Clear button — hidden by default, shown via JS when filter is active */
.wc-filter-clear {
  display: none;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1rem;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--r-md, 8px);
  color: var(--white);
  font-size: .82rem;
  cursor: pointer;
  white-space: nowrap;
  align-self: flex-end;
  transition: background .2s;
}
.wc-filter-clear.is-visible { display: flex; }
.wc-filter-clear:hover       { background: rgba(255, 255, 255, .16); }
.wc-filter-clear svg         { width: 14px; height: 14px; flex-shrink: 0; }

/* Grid loading state */
.wc-shop-grid.is-loading {
  opacity: .55;
  pointer-events: none;
  transition: opacity .15s;
}

/* Sentinel — invisible trigger for IntersectionObserver */
.shop-sentinel {
  height: 1px;
  visibility: hidden;
}

/* Breadcrumb hidden when JS is active (category archive pages) */
.js .js-breadcrumb { display: none; }

/* Responsive: stack filter groups on narrow screens */
@media (max-width: 640px) {
  .wc-filter-inner   { flex-direction: column; gap: .75rem; }
  .wc-filter-group   { flex: 1 1 100%; }
  .wc-filter-clear   { align-self: flex-start; }
}
