.wcaf-shop{
  background: var(--wcaf-bg);
  color: var(--wcaf-text);
  font-family: var(--wcaf-font-base);
}

.wcaf-shop *{ box-sizing: border-box; }

/* fix overflow su grid */
.wcaf-shop{ min-width: 0; }
.wcaf-results{ min-width: 0; }

.wcaf-shop{
  display:grid;
  grid-template-columns: 320px 1fr;
  gap: 20px;
}

@media (max-width: 1024px){
  .wcaf-shop{ grid-template-columns: 1fr; }
}

/* ---------------------------------------------------
   Helpers (safe vars)
   Nota: usiamo width/style fissi + color variabile,
   così se dal backend arriva solo un colore non rompi.
--------------------------------------------------- */
.wcaf-shop{
  --wcaf-border-w: 1px;
  --wcaf-border-style: solid;

  /* fallback generico (qui ci aspettiamo un COLORE, non uno shorthand) */
  --wcaf-border-color: var(--wcaf-border);

  /* colori safe per componenti */
  --wcaf-chip-border-color: var(--wcaf-border-color);
  --wcaf-clear-border-color: var(--wcaf-border-color);
  --wcaf-toggle-border-color: var(--wcaf-border-color);
  --wcaf-acc-border-color: var(--wcaf-border-color);
  --wcaf-acc-head-border-color: var(--wcaf-border-color);
  --wcaf-acc-body-border-color: var(--wcaf-border-color);
  --wcaf-acc-chev-border-color: var(--wcaf-border-color);
  --wcaf-pagination-border-color: var(--wcaf-border-color);
  --wcaf-sidebar-border-color: var(--wcaf-border-color);
  --wcaf-card-border-color: var(--wcaf-border-color);
  --wcaf-mobile-trigger-border-color: var(--wcaf-border-color);
  --wcaf-mobile-close-border-color: var(--wcaf-border-color);

  /* chips layout defaults */
  --wcaf-chips-gap: 8px;
  --wcaf-chips-mb: 12px;
}

/* ---------------------------
   Sidebar
---------------------------- */
.wcaf-sidebar{
  /* safe border + supporto shorthand completa */
  border: var(
    --wcaf-sidebar-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-sidebar-border-color, var(--wcaf-border-color))
  );

  border-radius: var(--wcaf-radius);
  padding: 16px;
  background: var(--wcaf-sidebar-bg, transparent);
  font-family: var(--wcaf-font-filters);
}

/* ---------------------------
   Generic focus
---------------------------- */
.wcaf-shop button:focus-visible,
.wcaf-shop a:focus-visible,
.wcaf-shop input:focus-visible,
.wcaf-shop select:focus-visible{
  outline: 2px solid var(--wcaf-focus, var(--wcaf-accent));
  outline-offset: 2px;
}

/* ---------------------------
   Chips (filtri attivi)
---------------------------- */
.wcaf-chips{
  display:flex;
  flex-wrap:wrap;
  gap: var(--wcaf-chips-gap, 8px);
  margin-bottom: var(--wcaf-chips-mb, 12px);
}

.wcaf-chip{
  display:inline-flex;
  align-items:center;
  gap: 8px;

  padding: var(--wcaf-chip-padding-y, var(--wcaf-chip-pad-y, 6px))
           var(--wcaf-chip-padding-x, var(--wcaf-chip-pad-x, 10px));

  /* border safe + supporto shorthand completa */
  border: var(
    --wcaf-chip-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-chip-border-color, var(--wcaf-border-color))
  );

  border-radius: var(--wcaf-chip-radius, var(--wcaf-radius));
  background: var(--wcaf-chip-bg, rgba(0,0,0,0.06));
  color: var(--wcaf-chip-text, #111);

  cursor:pointer;

  font-family: var(--wcaf-chip-font, inherit);
  font-size: var(--wcaf-chip-fs, 14px);

  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.wcaf-chip:hover{
  background: var(--wcaf-chip-bg-hover, var(--wcaf-chip-bg, rgba(0,0,0,0.06)));
  color: var(--wcaf-chip-text-hover, var(--wcaf-chip-text, #111));
  border-color: var(--wcaf-chip-border-hover, currentColor);
}

.wcaf-chip:active{ transform: translateY(1px); }

.wcaf-chip__x{
  opacity:.8;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: var(--wcaf-chip-x-color, currentColor);
  line-height: 1;
}

.wcaf-chip__x img{
  width: var(--wcaf-x-size, 14px);
  height: var(--wcaf-x-size, 14px);
  display:block;
}

/* ---------------------------
   Filters
---------------------------- */
.wcaf-filter + .wcaf-filter{ margin-top: 14px; }
.wcaf-filter h3{ margin: 0 0 10px 0; font-size: var(--wcaf-fs-filters-title, 14px); }
.wcaf-filter__body{ display:flex; flex-direction:column; gap: 8px; }

.wcaf-check{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: calc(var(--wcaf-radius) - 4px);
  font-size: var(--wcaf-fs-filters-item, 14px);
}
.wcaf-check input{ margin:0; }

.wcaf-check input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width: var(--wcaf-catcb-size, 16px);
  height: var(--wcaf-catcb-size, 16px);
  border-radius: var(--wcaf-catcb-radius, 4px);
  border: 2px solid var(--wcaf-catcb-border, var(--wcaf-border-color));
  background: var(--wcaf-catcb-bg, transparent);
  display:inline-grid;
  place-content:center;
  cursor:pointer;
  flex: 0 0 auto;
}
.wcaf-check input[type="checkbox"]::before{
  content:'';
  width: calc(var(--wcaf-catcb-size, 16px) * 0.55);
  height: calc(var(--wcaf-catcb-size, 16px) * 0.55);
  transform: scale(0);
  transition: transform .12s ease;
  background: var(--wcaf-catcb-mark, #fff);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0, 43% 62%);
}
.wcaf-check input[type="checkbox"]:checked{
  background: var(--wcaf-catcb-bg-checked, var(--wcaf-accent));
  border-color: var(--wcaf-catcb-border-checked, var(--wcaf-accent));
}
.wcaf-check input[type="checkbox"]:checked::before{
  transform: scale(1);
}
.wcaf-check input[type="checkbox"]:focus-visible{
  outline: 2px solid var(--wcaf-catcb-focus, rgba(0,0,0,.25));
  outline-offset: 2px;
}

.wcaf-check__label{ flex:1; }
.wcaf-check__count{ font-variant-numeric: tabular-nums; opacity: .75; }

.wcaf-check.is-disabled{
  opacity: var(--wcaf-disabled-opacity);
  pointer-events: none;
}

/* ---------------------------
   Bottone "Rimuovi tutto"
---------------------------- */
.wcaf-clear{
  margin-top: 14px;
  width:100%;

  padding: var(--wcaf-clear-padding-y, 10px) var(--wcaf-clear-padding-x, 12px);
  border-radius: var(--wcaf-clear-radius, var(--wcaf-radius));

  /* border safe + supporto shorthand completa */
  border: var(
    --wcaf-clear-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-clear-border-color, var(--wcaf-border-color))
  );

  background: var(--wcaf-clear-bg, transparent);
  color: var(--wcaf-clear-text, inherit);

  cursor:pointer;

  font-family: var(--wcaf-clear-font, inherit);
  font-size: var(--wcaf-clear-fs, 14px);

  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.wcaf-clear:hover{
  background: var(--wcaf-clear-bg-hover, var(--wcaf-clear-bg, transparent));
  color: var(--wcaf-clear-text-hover, var(--wcaf-clear-text, inherit));
  border-color: var(--wcaf-clear-border-hover, currentColor);
}

.wcaf-clear:active{ transform: translateY(1px); }

/* ---------------------------
   Accordion (macro)
---------------------------- */
.wcaf-acc{
  border: var(
    --wcaf-acc-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-acc-border-color, var(--wcaf-border-color))
  );

  border-radius: calc(var(--wcaf-radius) - 2px);
  overflow:hidden;
  background: transparent;
}
.wcaf-acc + .wcaf-acc{ margin-top: 10px; }

.wcaf-acc__head{
  width:100%;

  /* se vuoi bordo solo sopra/sotto puoi passare uno shorthand completo */
  border: var(
    --wcaf-acc-head-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-acc-head-border-color, transparent)
  );

  background: var(--wcaf-acc-head-bg, transparent);
  color: var(--wcaf-acc-head-text, inherit);

  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;

  padding: var(--wcaf-acc-head-pad-y, 10px) var(--wcaf-acc-head-pad-x, 12px);
  cursor:pointer;
  font-weight: var(--wcaf-acc-head-fw, 700);

  font-family: var(--wcaf-acc-head-font, inherit);
  font-size: var(--wcaf-acc-head-fs, 14px);

  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.wcaf-acc__head:hover{
  background: var(--wcaf-acc-head-bg-hover, var(--wcaf-acc-head-bg, transparent));
  color: var(--wcaf-acc-head-text-hover, var(--wcaf-acc-head-text, inherit));
  border-color: var(--wcaf-acc-head-border-hover, var(--wcaf-acc-head-border-color, transparent));
}

.wcaf-acc__chev{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  color: var(--wcaf-acc-chev-color, currentColor);
  width: var(--wcaf-acc-chev-box, 28px);
  height: var(--wcaf-acc-chev-box, 28px);

  border: var(
    --wcaf-acc-chev-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-acc-chev-border-color, var(--wcaf-border-color))
  );

  background: var(--wcaf-acc-chev-bg, transparent);
  border-radius: var(--wcaf-acc-chev-radius, 0);

  transition: transform .18s ease, background .15s ease, border-color .15s ease, color .15s ease;
  opacity: .9;
}

.wcaf-acc__chev:hover{
  background: var(--wcaf-acc-chev-bg-hover, var(--wcaf-acc-chev-bg, transparent));
  color: var(--wcaf-acc-chev-color-hover, var(--wcaf-acc-chev-color, currentColor));
  border-color: var(--wcaf-acc-chev-border-hover, currentColor);
}

.wcaf-acc__chev .wcaf-ico,
.wcaf-acc__chev img{
  width: var(--wcaf-acc-chev-size, 14px);
  height: var(--wcaf-acc-chev-size, 14px);
  display:block;
}

.wcaf-acc[data-open="0"] .wcaf-acc__body{ display:none; }

/* Rotazione: SOLO sull’icona */
.wcaf-acc[data-open="0"] .wcaf-acc__chev .wcaf-ico,
.wcaf-acc[data-open="0"] .wcaf-acc__chev img{
  transform: rotate(var(--wcaf-acc-rot-closed, -90deg));
}
.wcaf-acc[data-open="1"] .wcaf-acc__chev .wcaf-ico,
.wcaf-acc[data-open="1"] .wcaf-acc__chev img{
  transform: rotate(var(--wcaf-acc-rot-open, 0deg));
}

.wcaf-acc__body{
  padding: 8px 8px 10px 8px;

  border-top: var(
    --wcaf-acc-body-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-acc-body-border-color, var(--wcaf-border-color))
  );

  display:flex;
  flex-direction:column;
  gap: 8px;
}
.wcaf-check--acc{ background: transparent; }

/* ---------------------------
   Nested category accordion
---------------------------- */
.wcaf-catnode{ border-radius: calc(var(--wcaf-radius) - 4px); }

.wcaf-catnode__row{
  display:flex;
  align-items:center;
  gap: 10px;
}

.wcaf-catnode__toggle{
  width: var(--wcaf-toggle-size, 28px);
  height: var(--wcaf-toggle-size, 28px);

  border: var(
    --wcaf-toggle-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-toggle-border-color, var(--wcaf-border-color))
  );

  border-radius: var(--wcaf-toggle-radius, calc(var(--wcaf-radius) - 6px));
  background: var(--wcaf-toggle-bg, transparent);
  color: var(--wcaf-toggle-text, inherit);

  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height: 1;

  transition: background .15s ease, color .15s ease, border-color .15s ease;
  opacity: .95;
}

.wcaf-catnode__toggle:hover{
  background: var(--wcaf-toggle-bg-hover, var(--wcaf-toggle-bg, transparent));
  color: var(--wcaf-toggle-text-hover, var(--wcaf-toggle-text, inherit));
  border-color: var(--wcaf-toggle-border-hover, currentColor);
}

.wcaf-catnode__toggle .wcaf-ico,
.wcaf-catnode__toggle img{
  width: var(--wcaf-toggle-icon-size, 14px);
  height: var(--wcaf-toggle-icon-size, 14px);
  display:block;
  transition: transform .18s ease;
}

/* Rotazione: SOLO sull’icona */
.wcaf-catnode[data-open="0"] .wcaf-catnode__children{ display:none; }

.wcaf-catnode[data-open="0"] .wcaf-catnode__toggle .wcaf-ico,
.wcaf-catnode[data-open="0"] .wcaf-catnode__toggle img{
  transform: rotate(var(--wcaf-toggle-rot-closed, -90deg));
}
.wcaf-catnode[data-open="1"] .wcaf-catnode__toggle .wcaf-ico,
.wcaf-catnode[data-open="1"] .wcaf-catnode__toggle img{
  transform: rotate(var(--wcaf-toggle-rot-open, 0deg));
}

.wcaf-catnode__children{
  margin-left: 18px;
  padding-left: 10px;
  border-left: 1px solid var(--wcaf-border-color);
  display:flex;
  flex-direction:column;
  gap: 6px;
}

/* ---------------------------
   Results
---------------------------- */
.wcaf-toolbar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin: var(--wcaf-toolbar-m-desktop, 0 0 14px 0);
  padding: var(--wcaf-toolbar-p-desktop, 0);
  background: var(--wcaf-toolbar-bg);
  font-family: var(--wcaf-font-toolbar);
  font-size: var(--wcaf-fs-toolbar, 14px);
}

.wcaf-search{ position:relative; flex:1; max-width: 420px; }
.wcaf-search input{
  width:100%;
  padding: 10px 36px 10px 12px;
  border: 1px solid var(--wcaf-border-color);
  border-radius: var(--wcaf-radius);
  background: transparent;
  color: inherit;
  font-size: var(--wcaf-fs-search, 14px);
}

.wcaf-search__clear{
  position:absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border:0;
  background: transparent;
  cursor:pointer;
  padding: 6px 8px;
  opacity: .65;
}

.wcaf-search__clear img{
  width: var(--wcaf-x-size, 14px);
  height: var(--wcaf-x-size, 14px);
  display:block;
}

.wcaf-sort select{
  padding: 10px 12px;
  border: 1px solid var(--wcaf-border-color);
  border-radius: var(--wcaf-radius);
  background: transparent;
  color: inherit;
  font-size: var(--wcaf-fs-sort, 14px);
}


.wcaf-sortselect{
  position: relative;
  display: inline-block;
}

.wcaf-sortselect__icon{
  position: absolute;
  left: var(--wcaf-sortdesk-icon-left, 10px);
  top: 50%;
  transform: translateY(-50%);
  width: var(--wcaf-sortdesk-icon-size, 14px);
  height: var(--wcaf-sortdesk-icon-size, 14px);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.wcaf-sortselect__icon img,
.wcaf-sortselect__icon svg{
  width: 100%;
  height: 100%;
  display: block;
}

.wcaf-sortselect__arrow{
  position:absolute;
  right: var(--wcaf-sortdesk-arrow-right, 10px);
  top:50%;
  transform:translateY(-50%);
  width: var(--wcaf-sortdesk-arrow-size, 12px);
  height: var(--wcaf-sortdesk-arrow-size, 12px);
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.wcaf-sortselect__arrow img,
.wcaf-sortselect__arrow svg{
  width:100%;
  height:100%;
  display:block;
}

.wcaf-sortselect select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  /* evita frecce/icone del tema sul select */
  background-image: none !important;
  background-repeat: no-repeat;
  background-position: initial;
  background-size: initial;
  outline: none;
  /* padding base (backend) */
  padding: var(--wcaf-sort-d-padding, 8px 12px);
  padding-left: calc(var(--wcaf-sortdesk-icon-left, 10px) + var(--wcaf-sortdesk-icon-size, 14px) + var(--wcaf-sortdesk-icon-gap, 8px) + 4px);
  padding-right: calc(var(--wcaf-sortdesk-arrow-right, 10px) + var(--wcaf-sortdesk-arrow-size, 12px) + var(--wcaf-sortdesk-arrow-gap, 8px) + 4px);
  font-family: var(--wcaf-sort-d-font-family, inherit);
  font-weight: var(--wcaf-sort-d-font-weight, inherit);
  font-size: var(--wcaf-sort-d-font-size, var(--wcaf-fs-sort, 14px));
  color: var(--wcaf-sort-d-color, inherit);
  background: var(--wcaf-sort-d-bg, transparent);
  border: var(--wcaf-sort-d-border, 1px solid #d0d7de);
  border-radius: var(--wcaf-sort-d-radius, 0px);
}

/* IE/Edge legacy */
.wcaf-sortselect select::-ms-expand{ display:none; }

/* ---------------------------
   Grid
---------------------------- */
.wcaf-grid{
  display:grid;
  grid-template-columns: repeat(var(--wcaf-cols-desktop), minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 1024px){
  .wcaf-grid{ grid-template-columns: repeat(var(--wcaf-cols-tablet), minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .wcaf-grid{ grid-template-columns: repeat(var(--wcaf-cols-mobile), minmax(0, 1fr)); }
}

/* ---------------------------
   Card
---------------------------- */
.wcaf-card{
  border: var(
    --wcaf-card-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-card-border-color, var(--wcaf-border-color))
  );

  border-radius: var(--wcaf-radius);
  overflow:hidden;
  background: var(--wcaf-card-bg, transparent);
}

.wcaf-card__link{
  display:block;
  text-decoration:none;
  color: inherit;
  padding: 12px;
}

/* immagine centrata */
.wcaf-card__img{
  background: var(--wcaf-card-img-bg);
  border-radius: calc(var(--wcaf-radius) - 4px);
  overflow:hidden;
  aspect-ratio: var(--wcaf-card-img-ratio);
  display:flex;
  align-items:center;
  justify-content:center;
  position: relative;
}
.wcaf-card__img img,
.wcaf-card__img-el{
  display:block;
  max-width:100%;
  max-height:100%;
  height:auto;
  width:auto;
  margin: 0 auto;
}

/* ---------------------------
   Hover: 2a immagine (desktop)
   Mostra la prima immagine della gallery su hover.
   --------------------------- */
.wcaf-card__img--swap .wcaf-card__img-el{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: contain;
  transition: opacity .22s ease;
}
.wcaf-card__img--swap .wcaf-card__img-el--secondary{ opacity: 0; }

@media (hover:hover) and (pointer:fine) {
  .wcaf-card:hover .wcaf-card__img--swap .wcaf-card__img-el--primary{ opacity: 0; }
  .wcaf-card:hover .wcaf-card__img--swap .wcaf-card__img-el--secondary{ opacity: 1; }
}

.wcaf-card__title{
  margin: 10px 0 6px 0;
  font-size: var(--wcaf-fs-card-title, 14px);
  line-height: 1.25;
  font-family: var(--wcaf-font-card-title);
}

/* ---------------------------
   Badge "Esaurito"
---------------------------- */
.wcaf-soldout{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 6px;

  background: var(--wcaf-soldout-bg, #111);
  color: var(--wcaf-soldout-text, #fff);
  border: var(--wcaf-soldout-border, 0);
  border-radius: var(--wcaf-soldout-radius, 999px);
  padding: var(--wcaf-soldout-pad-y, 4px) var(--wcaf-soldout-pad-x, 8px);

  font-size: var(--wcaf-soldout-fs, 12px);
  font-family: var(--wcaf-soldout-font, inherit);
  font-weight: var(--wcaf-soldout-fw, 600);
  text-transform: var(--wcaf-soldout-transform, uppercase);
  line-height: 1;
  letter-spacing: .02em;
}

/* overlay on image */
.wcaf-card__img .wcaf-soldout{
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
}
.wcaf-card__img .wcaf-soldout.is-top-right{
  left: auto;
  right: 10px;
}

/* below title */
.wcaf-card__soldout-row{
  padding: 0 12px 8px 12px;
}

/* ---------------------------
   Badge "Sconto"
---------------------------- */
.wcaf-sale{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 6px;

  background: var(--wcaf-sale-bg, #b5873b);
  color: var(--wcaf-sale-text, #fff);
  border: var(--wcaf-sale-border, 0);
  border-radius: var(--wcaf-sale-radius, 999px);
  padding: var(--wcaf-sale-pad-y, 4px) var(--wcaf-sale-pad-x, 8px);

  font-size: var(--wcaf-sale-fs, 12px);
  font-family: var(--wcaf-sale-font, inherit);
  font-weight: var(--wcaf-sale-fw, 700);
  text-transform: var(--wcaf-sale-transform, uppercase);
  line-height: 1;
  letter-spacing: .02em;
}

/* overlay on image */
.wcaf-card__img .wcaf-sale{
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
}
.wcaf-card__img .wcaf-sale.is-top-right{
  left: auto;
  right: 10px;
}

/* below title */
.wcaf-card__sale-row{
  padding: 0 12px 8px 12px;
}

/* inline in price row */
.wcaf-card__sale-inline{
  display:inline-flex;
  align-items:center;
}

.wcaf-card__meta{ padding: var(--wcaf-card-meta-pad-desktop, 0 12px 12px 12px); }

.wcaf-card__weight{
  font-size: var(--wcaf-fs-card-meta, 12px);
  opacity: .75;
  margin-bottom: 8px;
  font-family: var(--wcaf-font-card-meta);
  background: var(--wcaf-weight-bg);
  color: var(--wcaf-weight-text);
}

.wcaf-card__buyrow{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
}

/* Quando la quantità è sotto al prezzo, vogliamo che il bottone carrello si allinei
   alla riga della quantità (non al centro tra prezzo + quantità). */
.wcaf-card__buyrow.has-qty-under-price{
  align-items:flex-end;
}

/* Mantieni eventuale badge sconto inline allineato alla riga prezzo */
.wcaf-card__buyrow.has-qty-under-price .wcaf-card__sale-inline{
  align-self:flex-start;
}

/* Colonna prezzo (per posizionare la quantità sotto al prezzo) */
.wcaf-card__pricecol{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap: 8px;
}

.wcaf-card__qty-below-title{
  margin: 6px 0 0;
}

.wcaf-card__price{
  font-weight: 600;
  font-family: var(--wcaf-font-card-price);
  font-size: var(--wcaf-fs-card-price, 14px);
}


.wcaf-card__actions{
  display:inline-flex;
  align-items:center;
  gap: 8px;
}

/* quantity selector in card */
.wcaf-qty{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  height: var(--wcaf-qty-h, 34px);
  width: var(--wcaf-qty-w, 110px);
  border: var(
    --wcaf-qty-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-border-color)
  );
  border-radius: var(--wcaf-qty-radius, calc(var(--wcaf-radius) - 2px));
  background: var(--wcaf-qty-bg, transparent);
  color: var(--wcaf-qty-text, inherit);
  overflow:hidden;
  flex: 0 0 auto;
}

.wcaf-qty__btn{
  width: var(--wcaf-qty-btn-w, var(--wcaf-qty-h, 34px));
  min-width: var(--wcaf-qty-btn-w, var(--wcaf-qty-h, 34px));
  height: var(--wcaf-qty-h, 34px);
  border: var(--wcaf-qty-btn-border, 0);
  background: var(--wcaf-qty-btn-bg, transparent);
  color: var(--wcaf-qty-btn-text, inherit);
  font-family: var(--wcaf-qty-font, inherit);
  font-size: var(--wcaf-qty-btn-fs, var(--wcaf-qty-fs, 14px));
  font-weight: var(--wcaf-qty-btn-fw, var(--wcaf-qty-fw, 600));
  cursor:pointer;
  line-height: 1;
  padding: 0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.wcaf-qty__input{
  flex: 1 1 auto;
  width: 100%;
  min-width: 36px;
  border: 0;
  outline: none;
  background: transparent;
  color: inherit;
  text-align: var(--wcaf-qty-align, center);
  font-family: var(--wcaf-qty-font, inherit);
  font-size: var(--wcaf-qty-input-fs, var(--wcaf-qty-fs, 14px));
  font-weight: var(--wcaf-qty-input-fw, var(--wcaf-qty-fw, 600));
  line-height: var(--wcaf-qty-lh, 1);
  padding: 0 var(--wcaf-qty-input-px, 0px);
  -moz-appearance: textfield;
}

.wcaf-qty__input::-webkit-outer-spin-button,
.wcaf-qty__input::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin:0;
}

/* qty select (dropdown) */
.wcaf-qty--select{
  justify-content:flex-start;
}
.wcaf-qty__select{
  width: 100%;
  height: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: inherit;
  text-align: var(--wcaf-qty-align, center);
  font-family: var(--wcaf-qty-font, inherit);
  font-size: var(--wcaf-qty-input-fs, var(--wcaf-qty-fs, 14px));
  font-weight: var(--wcaf-qty-input-fw, var(--wcaf-qty-fw, 600));
  line-height: var(--wcaf-qty-lh, 1);
  padding: 0 var(--wcaf-qty-input-px, 0px);
    /* dropdown chevron */
  background-image: var(--wcaf-qty-select-icon, none);
  background-repeat: no-repeat;
  background-position: right var(--wcaf-qty-select-icon-right, 10px) center;
  background-size: var(--wcaf-qty-select-icon-size, 12px) auto;
  padding-right: calc(var(--wcaf-sortdesk-arrow-right, 10px) + var(--wcaf-sortdesk-arrow-size, 12px) + var(--wcaf-sortdesk-arrow-gap, 8px) + 4px);
-webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.wcaf-qty__select::-ms-expand{ display:none; }

@media (min-width: 768px){
  .wcaf-qty.is-desktop-off{ display:none; }
}
@media (max-width: 767px){
  .wcaf-qty.is-mobile-off{ display:none; }
}

/* add to cart icon */
.wcaf-atc{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  width: var(--wcaf-atc-w, 34px);
  height: var(--wcaf-atc-h, 34px);

  background: var(--wcaf-atc-bg, transparent);
  color: var(--wcaf-atc-color, inherit);

  border: var(--wcaf-atc-border, 1px solid var(--wcaf-border-color));
  border-radius: var(--wcaf-atc-radius, calc(var(--wcaf-radius) - 2px));

  text-decoration:none;
  position: relative;
  gap: 8px;
  flex: 0 0 auto;
}
.wcaf-atc__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: var(--wcaf-atc-icon-fs, 18px);
  line-height: 1;
  color: var(--wcaf-atc-icon-color, currentColor);
}
.wcaf-atc__img{
  width: var(--wcaf-atc-icon-size, 18px);
  height: var(--wcaf-atc-icon-size, 18px);
  display:block;
}
.wcaf-atc__img--mobile{ display:none; }
@media (max-width: 767px){
  .wcaf-atc__img--desktop{ display:none; }
  .wcaf-atc__img--mobile{ display:block; }
}
@media (max-width: 767px){
  .wcaf-atc{
    width: var(--wcaf-atc-w-m, var(--wcaf-atc-w, 34px));
    height: var(--wcaf-atc-h-m, var(--wcaf-atc-h, 34px));
    background: var(--wcaf-atc-bg-m, var(--wcaf-atc-bg, transparent));
    color: var(--wcaf-atc-color-m, var(--wcaf-atc-color, inherit));
    border: var(--wcaf-atc-border-m, var(--wcaf-atc-border, 1px solid var(--wcaf-border-color)));
    border-radius: var(--wcaf-atc-radius-m, var(--wcaf-atc-radius, calc(var(--wcaf-radius) - 2px)));
  }
  .wcaf-atc__icon{
    font-size: var(--wcaf-atc-icon-fs-m, var(--wcaf-atc-icon-fs, 18px));
    color: var(--wcaf-atc-icon-color-m, var(--wcaf-atc-icon-color, currentColor));
  }
  .wcaf-atc__img{
    width: var(--wcaf-atc-icon-size-m, var(--wcaf-atc-icon-size, 18px));
    height: var(--wcaf-atc-icon-size-m, var(--wcaf-atc-icon-size, 18px));
  }
}


/* ---------------------------
   Pagination
---------------------------- */
.wcaf-pagination{
  display:flex;
  gap: 8px;
  flex-wrap:wrap;
  margin-top: 16px;
  font-family: var(--wcaf-font-pagination);
  font-size: var(--wcaf-fs-pagination, 14px);
}

.wcaf-page{
  border: var(
    --wcaf-pagination-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-pagination-border-color, var(--wcaf-border-color))
  );

  border-radius: var(--wcaf-radius);
  padding: 8px 10px;
  background: var(--wcaf-pagination-bg);
  color: var(--wcaf-pagination-text);
  cursor:pointer;
}

.wcaf-page.is-active{
  background: var(--wcaf-pagination-active-bg);
  border-color: var(--wcaf-pagination-active-bg);
  color: var(--wcaf-pagination-active-text);
}

.wcaf-ellipsis{ padding: 8px 6px; opacity:.6; }

/* ---------------------------
   Loading
---------------------------- */
.wcaf-products.is-loading{
  opacity: .55;
  pointer-events:none;
}

/* ---------------------------
   MOBILE MODAL
---------------------------- */
.wcaf-mobile-trigger-wrap{
  display:none;
  margin-bottom: var(--wcaf-mobile-trigger-wrap-mb, 12px);
}

.wcaf-mobile-trigger{
  width:100%;

  display:flex;
  align-items:center;
  gap: var(--wcaf-mobile-trigger-icon-gap, 10px);

  padding: var(--wcaf-mobile-controls-btn-p, var(--wcaf-mobile-trigger-pad-y, 12px) var(--wcaf-mobile-trigger-pad-x, 14px));
border-radius: var(--wcaf-mobile-trigger-radius, var(--wcaf-radius));

  border: var(
    --wcaf-mobile-trigger-border,
    var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-mobile-trigger-border-color, var(--wcaf-border-color))
  );

  background: var(--wcaf-mobile-trigger-bg, transparent);
  color: var(--wcaf-mobile-trigger-text, inherit);

  cursor:pointer;
  text-align:left;

  font-family: var(--wcaf-mobile-trigger-font, inherit);
  font-size: var(--wcaf-mobile-trigger-fs, inherit);

  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.wcaf-btnicon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: var(--wcaf-btnicon-size, 18px);
  height: var(--wcaf-btnicon-size, 18px);
  flex:0 0 auto;
}
.wcaf-btnicon img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.wcaf-mobile-trigger:hover{
  background: var(--wcaf-mobile-trigger-bg-hover, var(--wcaf-mobile-trigger-bg, transparent));
  color: var(--wcaf-mobile-trigger-text-hover, var(--wcaf-mobile-trigger-text, inherit));
  border-color: var(--wcaf-mobile-trigger-border-hover, currentColor);
}

.wcaf-mobile-trigger:active{ transform: translateY(1px); }

/* IMPORTANT: mobilebar NON deve vedersi su desktop */
.wcaf-mobilebar{ display:none; }

@media (max-width: 1024px){
  .wcaf-mobile-trigger-wrap{ display:block; }

  .wcaf-sidebar.is-mobile-modal{ display:none; }

  .wcaf-sidebar.is-mobile-modal.is-open{
    display:block;
    position: fixed;
    inset: 0;
    z-index: 99999;

    border-radius: 0;
    border: 0;
    padding: 14px;
    overflow:auto;

    background: var(--wcaf-modal-bg);
    font-family: var(--wcaf-font-modal);
  }

  .wcaf-toolbar{ gap: 10px; }
  .wcaf-search--mobile{ max-width: 100%; }

  .wcaf-mobilebar{
    display:flex;
    position: sticky;
    top: 0;
    background: var(--wcaf-modal-bg);
    z-index: 2;
    align-items:center;
    justify-content: space-between;
    padding: 6px 0 10px 0;
    border-bottom: 1px solid var(--wcaf-border-color);
  }

  .wcaf-mobilebar__title{
    font-weight: 700;
    font-size: var(--wcaf-fs-modal-title, 16px);
  }

  .wcaf-mobilebar__close{
    border: var(
      --wcaf-mobile-close-border,
      var(--wcaf-border-w) var(--wcaf-border-style) var(--wcaf-mobile-close-border-color, transparent)
    );

    background: var(--wcaf-mobile-close-bg, transparent);
    color: var(--wcaf-mobile-close-text, inherit);

    font-size: 28px;
    line-height: 1;
    cursor:pointer;
    padding: 6px 8px;
    border-radius: var(--wcaf-radius);
  }

  .wcaf-mobilebar__close img{
    width: var(--wcaf-x-size, 18px);
    height: var(--wcaf-x-size, 18px);
    display:block;
  }

  .wcaf-mobilebar__controls{
    display:flex;
    flex-direction:column;
    gap: 10px;
    padding: 10px 0 12px 0;
  }
}

/* ---------------------------
   Add to Cart micro animation
---------------------------- */
.wcaf-atc.is-loading {
  pointer-events: none;
  opacity: 0.75;
}

.wcaf-atc.is-loading .wcaf-atc__icon,
.wcaf-atc.is-loading .wcaf-atc__img {
  opacity: 0;
}

.wcaf-atc.is-loading::after {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  display: inline-block;
  animation: wcafSpin 0.65s linear infinite;
}

@keyframes wcafSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.wcaf-atc.is-added {
  transform: scale(1.06);
}

.wcaf-atc.is-added::before {
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-weight: 700;
}


/* (intentionally blank) */

.wcaf-card__actions.has-qty .wcaf-atc{ height: var(--wcaf-qty-h, 34px); }
@media (max-width: 767px){ .wcaf-card__actions.has-qty .wcaf-atc{ height: var(--wcaf-qty-h-m, var(--wcaf-qty-h, 34px)); } }


/* ---------------------------
   Spaziature responsive (NEW)
---------------------------- */
@media (max-width: 640px){
  .wcaf-toolbar{
    margin: var(--wcaf-toolbar-m-mobile, var(--wcaf-toolbar-m-desktop, 0 0 14px 0));
    padding: var(--wcaf-toolbar-p-mobile, var(--wcaf-toolbar-p-desktop, 0));
  }
  .wcaf-card__meta{
    padding: var(--wcaf-card-meta-pad-mobile, var(--wcaf-card-meta-pad-desktop, 0 12px 12px 12px));
  }
}
@media (min-width: 641px){
  .wcaf-card__meta{
    padding: var(--wcaf-card-meta-pad-desktop, 0 12px 12px 12px);
  }
}

.wcaf-mobile-trigger-wrap{
  margin: var(--wcaf-mobile-controls-wrap-m, 0 0 12px 0);
  padding: var(--wcaf-mobile-controls-wrap-p, 0);
}
.wcaf-mobile-trigger{
  margin: var(--wcaf-mobile-controls-btn-m, 0);
}


@media (max-width: 640px){
  .wcaf-results{
    margin: var(--wcaf-results-m-mobile, var(--wcaf-results-m-desktop, 14px 0 0 0));
    padding: var(--wcaf-results-p-mobile, var(--wcaf-results-p-desktop, 0));
  }
}


/* Results bar (count + sort) */
.wcaf-resultsbar{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:12px;
  margin: var(--wcaf-resultsbar-m-desktop, 0 0 12px 0);
  padding: var(--wcaf-resultsbar-p-desktop, var(--wcaf-results-p-desktop, 0));
}
.wcaf-resultsbar__right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.wcaf-resultsbar__count{
  font-family: var(--wcaf-results-count-font-family, inherit);
  font-weight: var(--wcaf-results-count-font-weight, inherit);
  font-size:var(--wcaf-results-count-font-size,14px);
  color:var(--wcaf-results-count-color,#111);
}
.wcaf-resultsbar__sort{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin: var(--wcaf-sort-d-margin, 0);
  gap: var(--wcaf-sort-d-gap, 8px);
}
.wcaf-sorticon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right: var(--wcaf-sort-d-icon-gap, 0);
}
.wcaf-sorticon__img,
.wcaf-sorticon__svg{
  width: var(--wcaf-sort-d-icon-size, 14px);
  height: var(--wcaf-sort-d-icon-size, 14px);
  display:block;
}
.wcaf-resultsbar__sort select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:none !important;
  background-repeat:no-repeat;

  font-size:var(--wcaf-sort-d-font-size,var(--wcaf-sort-font-size,14px));
  color:var(--wcaf-sort-d-color,var(--wcaf-sort-color,#111));
  background:var(--wcaf-sort-d-bg,var(--wcaf-sort-bg,#fff));
  border:var(--wcaf-sort-d-border,var(--wcaf-sort-border,1px solid #d0d7de));
  border-radius:var(--wcaf-sort-d-radius,var(--wcaf-sort-radius,999px));
  padding:var(--wcaf-sort-d-padding,var(--wcaf-sort-padding,8px 12px));
}
.wcaf-sortlabel{
  font-size:var(--wcaf-sort-d-label-font-size,var(--wcaf-sortlabel-font-size,12px));
  color:var(--wcaf-sort-d-label-color,var(--wcaf-sortlabel-color,#111));
}



/* -------------------------
   Mobile: mostra solo il count nella resultsbar
-------------------------- */
@media (max-width: 767px){
  .wcaf-resultsbar__sort{display:none !important;}
  .wcaf-resultsbar__right{align-items:flex-end;}
  .wcaf-resultsbar{margin: var(--wcaf-resultsbar-m-mobile, var(--wcaf-resultsbar-m-desktop, 0 0 12px 0)); padding: var(--wcaf-resultsbar-p-mobile, var(--wcaf-resultsbar-p-desktop, 0));}
}

/* -------------------------
   Mobile sort (bottoni nel modal filtri)
-------------------------- */
.wcaf-mobilesort{
  /* I bottoni sort mobile devono vivere solo nel modal filtri su mobile.
     Se il modal è abilitato, su desktop la sidebar rimane visibile: qui
     nascondiamo questa sezione per evitare duplicati/UX errata. */
}

@media (min-width: 768px){
  .wcaf-mobilesort{ display:none !important; }
}
.wcaf-mobilesort{
  margin: var(--wcaf-sort-m-margin, 10px 0 14px);
  padding: var(--wcaf-sort-m-wrap-padding, 0);
}
.wcaf-mobilesort__title{
  font-size: var(--wcaf-sort-m-title-font-size, 13px);
  color: var(--wcaf-sort-m-title-color, #111);
  margin: 0 0 10px;
}
.wcaf-mobilesort__btns{
  display:flex;
  align-items:center;
  gap: var(--wcaf-sort-m-gap, 10px);
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}
.wcaf-sortbtn{
  display:inline-flex;
  align-items:center;
  gap: var(--wcaf-sort-m-icon-gap, 8px);
  margin: var(--wcaf-sort-m-btn-margin, 0);
  appearance:none;
  border: var(--wcaf-sort-m-btn-border, 1px solid #d0d7de);
  background: var(--wcaf-sort-m-btn-bg, #fff);
  color: var(--wcaf-sort-m-btn-color, #111);
  border-radius: var(--wcaf-sort-m-btn-radius, 999px);
  padding: var(--wcaf-sort-m-btn-padding, 10px 12px);
  font-size: var(--wcaf-sort-m-btn-font-size, 13px);
  line-height: 1;
  white-space: nowrap;
  cursor:pointer;
}
.wcaf-sortbtn.is-active,
.wcaf-sortbtn[aria-pressed="true"]{
  border: var(--wcaf-sort-m-btn-border-active, var(--wcaf-sort-m-btn-border, 1px solid #111));
  background: var(--wcaf-sort-m-btn-bg-active, #111);
  color: var(--wcaf-sort-m-btn-color-active, #fff);
}


/* Mobile sort fonts */
.wcaf-mobilesort{
  font-family: var(--wcaf-sort-m-font-family, inherit);
}
.wcaf-mobilesort__title{
  font-family: var(--wcaf-sort-m-title-font-family, var(--wcaf-sort-m-font-family, inherit));
  font-weight: var(--wcaf-sort-m-title-font-weight, inherit);
}
.wcaf-sortbtn{
  font-family: var(--wcaf-sort-m-btn-font-family, var(--wcaf-sort-m-font-family, inherit));
  font-weight: var(--wcaf-sort-m-btn-font-weight, inherit);
}

/* -----------------------------
 * Fashion UI (buttons / swatch)
 * ----------------------------- */
.wcaf-tax{display:flex;flex-direction:column;gap:6px;}
.wcaf-tax--buttons{flex-direction:row;flex-wrap:wrap;gap:8px;}
.wcaf-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d0d7de;background:#fff;border-radius:999px;padding:8px 10px;cursor:pointer;user-select:none;}
.wcaf-pill input{margin:0;}
.wcaf-pill__label{font-size:13px;line-height:1;}
.wcaf-pill:has(input:checked){border-color:#111;background:#111;color:#fff;}

.wcaf-tax--swatch{flex-direction:row;flex-wrap:wrap;gap:10px;}
.wcaf-swatch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.wcaf-swatch input{margin:0;}
.wcaf-swatch__dot{display:inline-block;border:1px solid #d0d7de;}
.wcaf-swatch__label{font-size:13px;line-height:1;}
.wcaf-swatch:has(input:checked) .wcaf-swatch__dot{outline:2px solid #111;outline-offset:2px;}

/* a11y helper */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* -----------------------------
 * Fashion UI (buttons / swatch)
 * ----------------------------- */
.wcaf-tax{display:flex;flex-direction:column;gap:6px;}
.wcaf-tax--buttons{flex-direction:row;flex-wrap:wrap;gap:8px;}
.wcaf-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d0d7de;background:#fff;color:#111;border-radius:999px;padding:6px 10px;font-size:13px;line-height:1;cursor:pointer;user-select:none;}
.wcaf-pill input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-pill__label{white-space:nowrap;}
.wcaf-pill input:checked + .wcaf-pill__label{font-weight:600;}
.wcaf-pill:has(input:checked){border-color:#111;background:#111;color:#fff;}

.wcaf-tax--swatch{flex-direction:row;flex-wrap:wrap;gap:10px;}
.wcaf-swatch{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:999px;padding:4px 8px;cursor:pointer;user-select:none;}
.wcaf-swatch input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-swatch__dot{display:inline-block;flex:0 0 auto;border:1px solid #d0d7de;}
.wcaf-swatch__label{font-size:13px;line-height:1;}
.wcaf-swatch:has(input:checked){border-color:#111;}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* -----------------------------
 * Fashion UI (buttons / swatch)
 * ----------------------------- */
.wcaf-tax{display:flex;flex-direction:column;gap:6px;}
.wcaf-tax--buttons{flex-direction:row;flex-wrap:wrap;gap:8px;}
.wcaf-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d0d7de;background:#fff;color:#111;border-radius:999px;padding:6px 10px;font-size:13px;line-height:1.2;cursor:pointer;user-select:none;}
.wcaf-pill input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-pill__label{white-space:nowrap;}
.wcaf-pill input:checked + .wcaf-pill__label{font-weight:600;}

.wcaf-tax--swatch{flex-direction:row;flex-wrap:wrap;gap:10px;}
.wcaf-swatch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.wcaf-swatch input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-swatch__dot{box-sizing:border-box;border:1px solid #d0d7de;display:inline-block;}
.wcaf-swatch input:checked + .wcaf-swatch__dot{outline:2px solid #111;outline-offset:2px;}
.wcaf-swatch__label{font-size:13px;line-height:1.2;white-space:nowrap;}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* -----------------------------
 * Fashion UI (buttons / swatch)
 * ----------------------------- */
.wcaf-tax{display:flex;flex-direction:column;gap:6px;}
.wcaf-tax--buttons{flex-direction:row;flex-wrap:wrap;gap:8px;}
.wcaf-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d0d7de;background:#fff;color:#111;border-radius:999px;padding:6px 10px;font-size:13px;line-height:1.2;cursor:pointer;user-select:none;}
.wcaf-pill input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-pill:has(input:checked){border-color:#111;}
.wcaf-pill__label{white-space:nowrap;}

.wcaf-tax--swatch{flex-direction:row;flex-wrap:wrap;gap:10px;}
.wcaf-swatch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.wcaf-swatch input{position:absolute;opacity:0;pointer-events:none;}
.wcaf-swatch__dot{display:inline-block;border:1px solid #d0d7de;}
.wcaf-swatch:has(input:checked) .wcaf-swatch__dot{outline:2px solid #111;outline-offset:2px;}
.wcaf-swatch__label{font-size:13px;line-height:1.2;}

/* Swatch "solo testo" */
.wcaf-swatch--text{border:1px solid transparent;border-radius:999px;padding:6px 10px;}
.wcaf-swatch--text:has(input:checked){border-color:#111;}

/* ===========================
   Customizable Filters UI
   (Lists / Buttons / Swatches)
   =========================== */

/* Filter group gap */
.wcaf-filter__body{ gap: var(--wcaf-filter-row-gap, 8px); }

/* Lists (checkbox rows) */
.wcaf-check{
  gap: var(--wcaf-list-gap, 10px);
  padding: var(--wcaf-list-pad-y, 6px) var(--wcaf-list-pad-x, 8px);
  border-radius: var(--wcaf-list-radius, calc(var(--wcaf-radius) - 4px));
  color: var(--wcaf-list-text, inherit);
  background: var(--wcaf-list-bg, transparent);
  border: var(--wcaf-list-border, 0);
}
.wcaf-check:hover{
  color: var(--wcaf-list-text-hover, var(--wcaf-list-text, inherit));
  background: var(--wcaf-list-bg-hover, var(--wcaf-list-bg, transparent));
  border: var(--wcaf-list-border-hover, var(--wcaf-list-border, 0));
}
.wcaf-check:has(input:checked){
  color: var(--wcaf-list-text-active, var(--wcaf-list-text, inherit));
  background: var(--wcaf-list-bg-active, var(--wcaf-list-bg, transparent));
  border: var(--wcaf-list-border-active, var(--wcaf-list-border, 0));
}
.wcaf-check__count{
  color: var(--wcaf-list-count-color, inherit);
  background: var(--wcaf-list-count-bg, transparent);
  padding: var(--wcaf-list-count-pad-y, 0px) var(--wcaf-list-count-pad-x, 0px);
  border-radius: var(--wcaf-list-count-radius, 999px);
}

/* Buttons (pills) */
.wcaf-pill{
  gap: var(--wcaf-pill-gap, 8px);
  padding: var(--wcaf-pill-pad-y, 6px) var(--wcaf-pill-pad-x, 10px);
  border-radius: var(--wcaf-pill-radius, 999px);
  font-size: var(--wcaf-pill-fs, 13px);
  color: var(--wcaf-pill-text, #111);
  background: var(--wcaf-pill-bg, #fff);
  border: var(--wcaf-pill-border, 1px solid #d0d7de);
}
.wcaf-pill:hover{
  color: var(--wcaf-pill-text-hover, var(--wcaf-pill-text, #111));
  background: var(--wcaf-pill-bg-hover, var(--wcaf-pill-bg, #fff));
  border: var(--wcaf-pill-border-hover, var(--wcaf-pill-border, 1px solid #d0d7de));
}
.wcaf-pill:has(input:checked){
  color: var(--wcaf-pill-text-active, #fff);
  background: var(--wcaf-pill-bg-active, #111);
  border: var(--wcaf-pill-border-active, var(--wcaf-pill-border, 1px solid #111));
}
.wcaf-pill input:checked + .wcaf-pill__label{
  font-weight: var(--wcaf-pill-fw-active, 600);
}

/* Swatches */
.wcaf-tax--swatch{ gap: var(--wcaf-swatch-gap, 10px); }
.wcaf-swatch{
  gap: var(--wcaf-swatch-gap, 8px);
  padding: var(--wcaf-swatch-pad-y, 4px) var(--wcaf-swatch-pad-x, 8px);
  border-radius: var(--wcaf-swatch-radius, 999px);
  color: var(--wcaf-swatch-text, #111);
  background: var(--wcaf-swatch-bg, transparent);
  border: var(--wcaf-swatch-border, 1px solid transparent);
}
.wcaf-swatch:hover{
  color: var(--wcaf-swatch-text-hover, var(--wcaf-swatch-text, #111));
}
.wcaf-swatch__label{ font-size: var(--wcaf-swatch-fs, 13px); }
.wcaf-swatch__dot{
  width: var(--wcaf-swatch-dot, 18px);
  height: var(--wcaf-swatch-dot, 18px);
  border-radius: var(--wcaf-swatch-dot-radius, 999px);
  border: var(--wcaf-swatch-dot-border, 1px solid #d0d7de);
  overflow:hidden;
}
.wcaf-swatch__dot img{
  width:100%;height:100%;display:block;
  object-fit: var(--wcaf-swatch-img-fit, cover);
}
.wcaf-swatch:has(input:checked){
  color: var(--wcaf-swatch-text-active, var(--wcaf-swatch-text, #111));
  background: var(--wcaf-swatch-bg-active, var(--wcaf-swatch-bg, transparent));
  border: var(--wcaf-swatch-border-active, var(--wcaf-swatch-border, 1px solid transparent));
}
.wcaf-swatch:has(input:checked) .wcaf-swatch__label{ font-weight: var(--wcaf-swatch-fw-active, 600); }
.wcaf-swatch:has(input:checked) .wcaf-swatch__dot{
  outline: var(--wcaf-swatch-ring-width, 2px) solid var(--wcaf-swatch-ring-color, #111);
  outline-offset: var(--wcaf-swatch-ring-offset, 2px);
}
.wcaf-swatch.is-disabled{ opacity: var(--wcaf-swatch-disabled-opacity, var(--wcaf-disabled-opacity)); pointer-events:none; }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
