/* Solris — shop and product archives. */

.woocommerce-products-header{padding-block:var(--sp-6) var(--sp-2)}
.woocommerce-products-header__title{font-size:var(--fs-4)}
.term-description{color:var(--ink-2);max-width:var(--measure);margin-block-start:var(--sp-3)}

/* ---------- layout: filter rail + results ---------- */
.shop-layout{display:grid;gap:var(--sp-8)}
@media (min-width:1024px){
  .shop-layout{grid-template-columns:248px minmax(0,1fr);gap:var(--sp-10);align-items:start}
}
.shop-main{min-width:0}

/* The rail is desktop-only; below that the same panel lives in the sheet. */
.shop-filters{display:none}
@media (min-width:1024px){
  .shop-filters{display:block;position:sticky;top:calc(var(--header-h) + var(--sp-4));
    max-height:calc(100dvh - var(--header-h) - var(--sp-8));overflow-y:auto;
    padding-inline-end:var(--sp-2);overscroll-behavior:contain}
}
.shop-filters__head{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--sp-3);margin-block-end:var(--sp-4)}
.shop-filters__head h2{font-size:var(--fs-1)}
.shop-filters__clear{font-size:var(--fs--1);color:var(--ink-3)}
.shop-filters__clear:hover{color:var(--danger)}

/* ---------- filter group ---------- */
.filter{border-block-start:1px solid var(--border)}
.filter summary{display:flex;align-items:center;gap:var(--sp-2);
  padding:var(--sp-4) 0;min-height:48px;cursor:pointer;list-style:none;
  font-size:var(--fs-0);font-weight:var(--fw-semibold)}
.filter summary::-webkit-details-marker{display:none}
.filter summary::after{content:"";margin-inline-start:auto;width:18px;height:18px;
  background:no-repeat center/contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235F7190' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  transition:transform .2s ease}
.filter[open] summary::after{transform:rotate(180deg)}
.filter summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}
.filter__badge{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:var(--r-pill);background:var(--navy-800);color:#fff;
  font-size:var(--fs--2);font-weight:var(--fw-bold)}
.filter__list{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:2px}
.filter__opt{display:flex;align-items:center;gap:var(--sp-3);min-height:40px;
  padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);
  text-decoration:none;font-size:var(--fs--1);color:var(--ink-2)}
.filter__opt:hover{background:var(--navy-50);color:var(--ink)}
.filter__box{flex:0 0 auto;width:18px;height:18px;border-radius:4px;
  border:1.5px solid var(--border-strong);background:var(--surface)}
.filter__opt.is-on{color:var(--ink);font-weight:var(--fw-medium)}
.filter__opt.is-on .filter__box{background:var(--navy-800);border-color:var(--navy-800);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m20 6-11 11-5-5'/%3E%3C/svg%3E");
  background-size:13px;background-position:center;background-repeat:no-repeat}
.filter__label{min-width:0}
.filter__count{margin-inline-start:auto;font-size:var(--fs--2);color:var(--ink-3);
  font-variant-numeric:tabular-nums}

/* ---------- toolbar ---------- */
.shop-toolbar{display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-3);flex-wrap:wrap;padding-block:var(--sp-4);
  border-block:1px solid var(--border);margin-block-end:var(--sp-6)}
.shop-toolbar__count{font-size:var(--fs--1);color:var(--ink-2);margin:0;
  font-variant-numeric:tabular-nums}
.shop-toolbar__actions{display:flex;align-items:center;gap:var(--sp-2);margin-inline-start:auto}
.shop-toolbar__filter{gap:var(--sp-2)}
@media (min-width:1024px){ .shop-toolbar__filter{display:none} }
.shop-toolbar__badge{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:var(--r-pill);background:var(--amber-400);color:var(--navy-800);
  font-size:11px;font-weight:var(--fw-bold)}

/* Woo's ordering select, restyled to sit beside the buttons rather than
   looking like a stray form control dropped on the page. */
.woocommerce-ordering{margin:0}
.woocommerce-ordering select{width:auto;min-width:184px;min-height:36px;
  padding:0 38px 0 12px;font-size:var(--fs--1);font-weight:var(--fw-medium);
  border-radius:var(--r-md);border:1.5px solid var(--border-strong);
  background-position:right 10px center;background-size:16px}
@media (max-width:479px){
  .shop-toolbar{gap:var(--sp-2)}
  .shop-toolbar__actions{width:100%}
  .woocommerce-ordering{flex:1}
  .woocommerce-ordering select{width:100%;min-width:0}
}

/* ---------- active filter chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;
  margin:0 0 var(--sp-5);padding:0}
.chip{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:32px;
  padding:0 var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--border-strong);
  font-size:var(--fs--1);text-decoration:none;color:var(--ink-2)}
.chip:hover{background:var(--navy-50);color:var(--ink)}
.chip span[aria-hidden]{font-size:var(--fs-0);line-height:1;color:var(--ink-3)}
.chip--clear{border-style:dashed;color:var(--ink-3)}

/* ---------- mobile filter sheet ---------- */
.sheet{border:0;padding:0;margin:0 0 0 auto;width:100vw;max-width:none;
  height:88dvh;max-height:88dvh;position:fixed;inset:auto 0 0 0;
  border-start-start-radius:var(--r-xl);border-start-end-radius:var(--r-xl);
  background:var(--surface);color:var(--ink);box-shadow:var(--sh-3);overflow:hidden}
.sheet:not([open]){display:none}
.sheet[open]{display:flex;flex-direction:column;animation:sheetIn .24s cubic-bezier(.2,.7,.3,1)}
.sheet::backdrop{background:var(--overlay)}
@keyframes sheetIn{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){ .sheet[open]{animation:none} }
@media (min-width:1024px){ .sheet{display:none!important} }
.sheet__head{display:flex;align-items:center;justify-content:space-between;
  padding:var(--sp-4);border-block-end:1px solid var(--border);flex:0 0 auto}
.sheet__head h2{font-size:var(--fs-2)}
.sheet__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--sp-4)}
.sheet__foot{flex:0 0 auto;display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);
  padding:var(--sp-4);padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));
  border-block-start:1px solid var(--border)}

/* ---------- third-party markup inside cards ---------- */
/* Judge.me injects its preview badge into the loop with no position of its
   own, so it lands on top of the product photo. Give it a slot in the card
   body instead of letting it float over the image. */
.product-card .jdgm-widget,
.product-card .jdgm-preview-badge{order:3;margin:0;min-height:0;position:static}
.product-card .jdgm-prev-badge{display:flex!important;align-items:center;gap:4px;
  padding:0!important;font-size:var(--fs--2)}
.product-card .jdgm-prev-badge__text{color:var(--ink-3);font-size:var(--fs--2)}
.product-card .jdgm-star{font-size:12px!important;color:var(--star)!important}
/* Stripe's "4 payments of $3.12" line on a $12 light is noise in a grid; it
   stays on the product page where the decision is actually made. */
.product-card .wc-stripe-bnpl-shop-message{display:none}

.woocommerce-no-products-found{text-align:center;padding-block:var(--sp-16)}
