/* WCPS v2 — sidebar verticale + drawer mobile responsive.
 * Variabili CSS overridable via tema o widget Elementor v2.
 *
 * NOTA SPECIFICITY: tutti i selectors interni sono nidificati sotto .wcps2
 * (specificity 0,2,0 invece di 0,1,0) per battere i CSS aggressivi di temi
 * Elementor + WooCommerce che applicano stili a button/input/select.
 * Senza questa nidificazione, .wcps2-chip viene tipicamente sovrascritto
 * da .elementor-button-default o regole simili.
 */

.wcps2,
.wcps2 *,
.wcps2 *::before,
.wcps2 *::after { box-sizing: border-box; }

.wcps2 {
	/* Colori */
	--wcps-fg: #0E0E12;
	--wcps-bg: #ffffff;
	--wcps-muted: #6E6E6E;
	--wcps-border: #DADADA;
	--wcps-accent: #1A1A1A;
	--wcps-accent-fg: #ffffff;
	/* Geometria */
	--wcps-radius: 6px;
	--wcps-gap: 16px;
	--wcps-padding: 24px;
	--wcps-input-padding: 10px 12px;
	/* Tipografia */
	--wcps-font-size: 14px;
	--wcps-label-size: 13px;
	--wcps-label-weight: 600;
	--wcps-label-transform: uppercase;
	/* Granulari per ogni control type (override-able dal widget v2 Style tab) */
	--wcps-chip-padding: 8px 14px;
	--wcps-chip-radius: 99px;
	--wcps-swatch-size: 30px;
	--wcps-range-thumb-size: 18px;
	--wcps-range-track-height: 4px;
	--wcps-toggle-width: 44px;
	--wcps-toggle-height: 24px;
	/* Checkbox group */
	--wcps-checkbox-size: 16px;
	--wcps-checkbox-item-padding: 6px 10px;
	--wcps-checkbox-max-height: 240px;
	--wcps-checkbox-item-gap: 2px;
	/* Segmented */
	--wcps-segmented-padding: 8px 16px;
	--wcps-segmented-radius: 6px;
	/* Rating stars */
	--wcps-star-size: 22px;
	--wcps-star-gap: 4px;
	--wcps-star-color-off: var(--wcps-border);
	--wcps-star-color-on: var(--wcps-accent);
	/* Number buckets */
	--wcps-bucket-padding: 8px 14px;
	--wcps-bucket-radius: 99px;
	--wcps-bucket-min-width: 0px;
	--wcps-bucket-gap: 6px;

	font-family: inherit;
	font-size: var(--wcps-font-size);
	color: var(--wcps-fg);
	background: var(--wcps-bg);
}

/* Layout root */
.wcps2.wcps2-layout-sidebar_vertical { padding: var(--wcps-padding); border: 1px solid var(--wcps-border); border-radius: var(--wcps-radius); }
.wcps2.wcps2-layout-inline_topbar { display: flex; gap: var(--wcps-gap); align-items: flex-end; flex-wrap: wrap; }
.wcps2.wcps2-layout-inline_topbar .wcps2-filters { display: flex; flex-direction: row; gap: var(--wcps-gap); flex-wrap: wrap; flex: 1; align-items: flex-end; }
/* Ogni field ha un flex-basis definito: senza, un <select> con width:100%
   (via align-items:stretch di .wcps2-field) forza il field a occupare
   l'intera riga e li impila uno sotto l'altro invece di affiancarli. */
.wcps2.wcps2-layout-inline_topbar .wcps2-field { flex: 1 1 180px; max-width: 260px; }
.wcps2.wcps2-layout-inline_topbar .wcps2-actions { margin-top: 0; flex: 0 0 auto; }

.wcps2 .wcps2-filters { display: flex; flex-direction: column; gap: 20px; }
.wcps2 .wcps2-field { display: flex; flex-direction: column; gap: 6px; }
.wcps2 .wcps2-label { font-size: var(--wcps-label-size); font-weight: var(--wcps-label-weight); text-transform: var(--wcps-label-transform); letter-spacing: .5px; color: var(--wcps-muted); }

/* Dropdown */
.wcps2 .wcps2-select {
	padding: var(--wcps-input-padding);
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-radius);
	background: var(--wcps-bg);
	color: var(--wcps-fg);
	font-size: var(--wcps-font-size);
	font-family: inherit;
	line-height: 1.4;
	box-shadow: none;
	text-transform: none;
}
.wcps2 .wcps2-select:focus { outline: 2px solid var(--wcps-accent); outline-offset: 1px; }

/* Search input */
.wcps2 .wcps2-search {
	padding: var(--wcps-input-padding);
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-radius);
	background: var(--wcps-bg);
	color: var(--wcps-fg);
	font-size: var(--wcps-font-size);
	font-family: inherit;
	line-height: 1.4;
	box-shadow: none;
}
.wcps2 .wcps2-search:focus { outline: 2px solid var(--wcps-accent); outline-offset: 1px; }

/* Checkbox group (wrapper + cascade mode + list + single item) */
.wcps2 .wcps2-checkboxes,
.wcps2 .wcps2-checkboxes-cascade {
	display: flex; flex-direction: column;
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-radius);
	background: var(--wcps-bg);
}
.wcps2 .wcps2-checkboxes-list {
	display: flex; flex-direction: column;
	gap: var(--wcps-checkbox-item-gap);
	max-height: var(--wcps-checkbox-max-height);
	overflow-y: auto;
	padding: 8px;
}
.wcps2 .wcps2-checkbox {
	display: flex; align-items: center; gap: 8px;
	padding: var(--wcps-checkbox-item-padding);
	border-radius: calc(var(--wcps-radius) - 2px);
	cursor: pointer;
	font-size: var(--wcps-font-size);
	color: var(--wcps-fg);
	font-weight: 400;
	margin: 0;
	transition: background .15s;
}
.wcps2 .wcps2-checkbox:hover { background: rgba(0,0,0,.05); }
.wcps2 .wcps2-checkbox input[type=checkbox] {
	width: var(--wcps-checkbox-size);
	height: var(--wcps-checkbox-size);
	accent-color: var(--wcps-accent);
	cursor: pointer;
	margin: 0;
	flex-shrink: 0;
	vertical-align: middle;
	-webkit-appearance: auto;
	   -moz-appearance: auto;
	        appearance: auto;
	background: var(--wcps-bg);
	border: 1px solid var(--wcps-border);
	border-radius: 3px;
}
.wcps2 .wcps2-checkbox span {
	color: inherit;
	font-size: inherit;
}
.wcps2 .wcps2-checkboxes-placeholder,
.wcps2 .wcps2-loading,
.wcps2 .wcps2-empty,
.wcps2 .wcps2-error {
	font-size: 13px;
	color: var(--wcps-muted);
	font-style: italic;
	padding: 12px 14px;
	text-align: center;
}
.wcps2 .wcps2-error { color: #c00; font-style: normal; }

/* Chips */
.wcps2 .wcps2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.wcps2 .wcps2-chip {
	display: inline-flex; align-items: center; gap: 6px;
	padding: var(--wcps-chip-padding);
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-chip-radius);
	background: transparent;
	color: var(--wcps-fg);
	cursor: pointer;
	font-size: var(--wcps-label-size);
	font-family: inherit;
	font-weight: 500;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	transition: .15s;
}
.wcps2 .wcps2-chip:hover { border-color: var(--wcps-accent); color: var(--wcps-fg); background: transparent; }
.wcps2 .wcps2-chip.wcps2-chip-active,
.wcps2 .wcps2-chip-active {
	background: var(--wcps-accent);
	color: var(--wcps-accent-fg);
	border-color: var(--wcps-accent);
}
.wcps2 .wcps2-chips-icon .wcps2-chip i { font-size: 18px; }

/* Segmented (single-select pill bar) */
.wcps2 .wcps2-segmented {
	display: inline-flex;
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-segmented-radius);
	overflow: hidden;
	background: var(--wcps-bg);
}
.wcps2 .wcps2-segmented-item {
	flex: 1;
	padding: var(--wcps-segmented-padding);
	border: 0;
	border-right: 1px solid var(--wcps-border);
	background: transparent;
	color: var(--wcps-fg);
	cursor: pointer;
	font-size: var(--wcps-label-size);
	font-family: inherit;
	font-weight: 500;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	transition: .15s;
	white-space: nowrap;
}
.wcps2 .wcps2-segmented-item:last-child { border-right: 0; }
.wcps2 .wcps2-segmented-item:hover { background: rgba(0,0,0,.04); color: var(--wcps-fg); }
.wcps2 .wcps2-segmented-item.wcps2-segmented-active {
	background: var(--wcps-accent);
	color: var(--wcps-accent-fg);
}

/* Rating stars */
.wcps2 .wcps2-stars {
	display: flex; align-items: center; gap: var(--wcps-star-gap);
}
.wcps2 .wcps2-star {
	background: transparent;
	border: 0;
	padding: 2px 4px;
	color: var(--wcps-star-color-off);
	font-size: var(--wcps-star-size);
	line-height: 1;
	cursor: pointer;
	transition: color .15s;
	font-family: inherit;
}
.wcps2 .wcps2-star:hover,
.wcps2 .wcps2-star:hover ~ .wcps2-star { /* hover preview */
	color: var(--wcps-star-color-off);
}
.wcps2 .wcps2-stars:hover .wcps2-star { color: var(--wcps-star-color-on); }
.wcps2 .wcps2-stars:hover .wcps2-star:hover ~ .wcps2-star { color: var(--wcps-star-color-off); }
.wcps2 .wcps2-star.wcps2-star-on { color: var(--wcps-star-color-on); }
.wcps2 .wcps2-stars-label {
	margin-left: 8px;
	font-size: 12px;
	color: var(--wcps-muted);
}

/* Number buckets */
.wcps2 .wcps2-buckets {
	display: flex; flex-wrap: wrap; gap: var(--wcps-bucket-gap);
}
.wcps2 .wcps2-bucket {
	padding: var(--wcps-bucket-padding);
	min-width: var(--wcps-bucket-min-width);
	border: 1px solid var(--wcps-border);
	border-radius: var(--wcps-bucket-radius);
	background: transparent;
	color: var(--wcps-fg);
	cursor: pointer;
	font-size: var(--wcps-label-size);
	font-family: inherit;
	font-weight: 500;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	transition: .15s;
	white-space: nowrap;
	text-align: center;
}
.wcps2 .wcps2-bucket:hover { border-color: var(--wcps-accent); }
.wcps2 .wcps2-bucket.wcps2-bucket-active {
	background: var(--wcps-accent);
	color: var(--wcps-accent-fg);
	border-color: var(--wcps-accent);
}

/* Color swatches */
.wcps2 .wcps2-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.wcps2 .wcps2-swatch {
	width: var(--wcps-swatch-size);
	height: var(--wcps-swatch-size);
	border-radius: 50%;
	border: 2px solid var(--wcps-border);
	padding: 0;
	cursor: pointer;
	transition: .15s;
	box-shadow: none;
	background-clip: padding-box;
}
.wcps2 .wcps2-swatch:hover { border-color: var(--wcps-accent); }
.wcps2 .wcps2-swatch.wcps2-swatch-active,
.wcps2 .wcps2-swatch-active {
	border-color: var(--wcps-accent);
	box-shadow: 0 0 0 2px var(--wcps-accent) inset, 0 0 0 4px var(--wcps-bg) inset;
}

/* Range slider dual-handle */
.wcps2 .wcps2-range { position: relative; padding: 8px 0; }
.wcps2 .wcps2-range input[type=range] {
	position: absolute; left: 0; right: 0; width: 100%;
	pointer-events: none;
	-webkit-appearance: none; appearance: none;
	height: var(--wcps-range-track-height);
	background: transparent;
	margin: 0;
}
.wcps2 .wcps2-range input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none; appearance: none;
	pointer-events: auto;
	width: var(--wcps-range-thumb-size); height: var(--wcps-range-thumb-size);
	border-radius: 50%;
	background: var(--wcps-accent);
	cursor: pointer;
	border: 2px solid var(--wcps-bg);
	box-shadow: 0 0 0 1px var(--wcps-border);
}
.wcps2 .wcps2-range input[type=range]::-moz-range-thumb {
	pointer-events: auto;
	width: var(--wcps-range-thumb-size); height: var(--wcps-range-thumb-size);
	border-radius: 50%;
	background: var(--wcps-accent);
	cursor: pointer;
	border: 2px solid var(--wcps-bg);
}
.wcps2 .wcps2-range::before {
	content: '';
	position: absolute; left: 0; right: 0; top: 50%;
	height: var(--wcps-range-track-height);
	background: var(--wcps-border);
	border-radius: 2px;
	transform: translateY(-50%);
}
.wcps2 .wcps2-range-values {
	display: flex; justify-content: space-between;
	margin-top: 24px;
	font-size: var(--wcps-label-size);
	color: var(--wcps-muted);
}

/* Toggle */
.wcps2 .wcps2-toggle {
	position: relative;
	display: inline-block;
	width: var(--wcps-toggle-width);
	height: var(--wcps-toggle-height);
	cursor: pointer;
	margin: 0;
	padding: 0;
}
.wcps2 .wcps2-toggle input { opacity: 0; width: 0; height: 0; position: absolute; margin: 0; }
.wcps2 .wcps2-toggle-track { position: absolute; inset: 0; background: var(--wcps-border); border-radius: 99px; transition: .2s; }
.wcps2 .wcps2-toggle-track::before {
	content: '';
	position: absolute; left: 3px; top: 3px;
	width: calc(var(--wcps-toggle-height) - 6px);
	height: calc(var(--wcps-toggle-height) - 6px);
	background: var(--wcps-bg);
	border-radius: 50%;
	transition: .2s;
}
.wcps2 .wcps2-toggle input:checked + .wcps2-toggle-track { background: var(--wcps-accent); }
.wcps2 .wcps2-toggle input:checked + .wcps2-toggle-track::before { transform: translateX(calc(var(--wcps-toggle-width) - var(--wcps-toggle-height))); }

/* Actions */
.wcps2 .wcps2-actions { display: flex; gap: 8px; margin-top: 24px; }
.wcps2 .wcps2-submit,
.wcps2 .wcps2-reset {
	padding: 10px 20px;
	border-radius: var(--wcps-radius);
	border: 1px solid var(--wcps-border);
	background: transparent;
	color: var(--wcps-fg);
	cursor: pointer;
	font-size: var(--wcps-font-size);
	font-family: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	transition: .15s;
}
.wcps2 .wcps2-submit {
	background: var(--wcps-accent);
	color: var(--wcps-accent-fg);
	border-color: var(--wcps-accent);
	flex: 1;
}
.wcps2 .wcps2-submit:hover { filter: brightness(.95); background: var(--wcps-accent); color: var(--wcps-accent-fg); }
.wcps2 .wcps2-reset { color: var(--wcps-muted); }
.wcps2 .wcps2-reset:hover { color: var(--wcps-fg); border-color: var(--wcps-fg); background: transparent; }

/* Mobile responsive: sidebar diventa drawer collapsible */
@media (max-width: 768px) {
	.wcps2.wcps2-layout-sidebar_vertical { padding: 16px; }
	.wcps2.wcps2-layout-inline_topbar { flex-direction: column; align-items: stretch; }
	.wcps2.wcps2-layout-inline_topbar .wcps2-filters { flex-direction: column; align-items: stretch; }
	.wcps2.wcps2-layout-inline_topbar .wcps2-field { max-width: none; flex-basis: auto; }
	.wcps2.wcps2-layout-inline_topbar .wcps2-actions { margin-top: 24px; }
}

/* ============================================================
   WCPS Sort Widget — select "Ordina per" autonomo (v2.3.0+)
   ============================================================ */
.wcps-sort {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0;
}
.wcps-sort-label {
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	margin: 0;
}
.wcps-sort-select {
	font-family: inherit;
	font-size: 14px;
	padding: 8px 32px 8px 12px;
	border: 1px solid #d0d0d0;
	border-radius: 6px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23666' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 10px 6px;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	line-height: 1.2;
}
.wcps-sort-select:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
