/* ==========================================================================
   KEYWEB FLATSOME KIT — catalogo
   Struttura e comportamento. L'aspetto del progetto va in
   tema-figlio/keyweb/progetto.css, che viene caricato dopo questo.
   ========================================================================== */

/* --- filtri --------------------------------------------------------------- */

.kw-site .kw-filtri {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 22px 30px;
	padding: 24px 0;
	border-top: 1px solid var(--kw-filetto);
	border-bottom: 1px solid var(--kw-filetto);
}

.kw-site .kw-filtri__titolo {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--kw-testo);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.kw-site .kw-filtro__nome {
	margin: 0 0 10px;
	font-family: var(--kw-serif);
	font-size: 1.05rem;
}

.kw-site .kw-filtro ul { margin: 0; padding: 0; list-style: none; }
.kw-site .kw-filtro li { margin-bottom: 7px; }

.kw-site .kw-filtro__voce {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	color: var(--kw-testo);
	font-size: .9rem;
	text-decoration: none;
	transition: color .25s var(--kw-curva);
}

.kw-site .kw-filtro__voce span {
	font-size: .72rem;
	opacity: .55;
}

.kw-site .kw-filtro__voce:hover { color: var(--kw-inchiostro); }

.kw-site .kw-filtro__voce.is-on {
	color: var(--kw-secondario-sc);
	font-weight: 700;
}

.kw-site .kw-filtro__voce.is-on::before {
	content: '×';
	font-weight: 400;
}

.kw-site .kw-filtri__pulisci {
	grid-column: 1 / -1;
	justify-self: start;
	color: var(--kw-secondario-sc);
	font-size: .8rem;
	font-weight: 700;
}

/* Durante l'aggiornamento la griglia resta al suo posto, solo attenuata:
   sostituirla con un indicatore farebbe saltare la pagina. */
.kw-site .products.is-loading {
	opacity: .35;
	pointer-events: none;
	transition: opacity .2s linear;
}

.kw-site .kw-vuoto {
	padding: 40px 0;
	color: var(--kw-testo);
}

/* --- lista campioni ------------------------------------------------------- */

.kw-site .kw-campioni-fab {
	position: fixed;
	right: clamp(16px, 2vw, 30px);
	bottom: clamp(16px, 2vw, 30px);
	z-index: 110;
	display: inline-flex;
	height: 54px;
	align-items: center;
	gap: 10px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--kw-raggio);
	background: var(--kw-scuro);
	box-shadow: var(--kw-ombra);
	color: #fff;
	cursor: pointer;
	font-family: var(--kw-sans);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.kw-site .kw-campioni-fab__n {
	display: grid;
	width: 24px;
	height: 24px;
	place-items: center;
	border-radius: 50%;
	background: var(--kw-secondario-sc);
	font-size: .74rem;
}

.kw-site .kw-campioni {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 210;
	display: flex;
	width: min(420px, 100%);
	height: min(80vh, 720px);
	flex-direction: column;
	padding: 26px;
	overflow-y: auto;
	background: #fff;
	box-shadow: -20px 0 60px rgba(0, 0, 0, .2);
	transform: translateX(100%);
	transition: transform .35s var(--kw-curva);
}

.kw-site .kw-campioni.is-open { transform: none; }

.kw-site .kw-campioni__testa {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 12px;
	background: #fff;
}

.kw-site .kw-campioni__testa h2 {
	margin: 0;
	font-family: var(--kw-serif);
	font-size: 1.5rem;
	font-weight: 400;
}

/* Il tema dà ai pulsanti altezze e spaziature proprie che spostano il segno
   fuori asse: qui si azzerano. */
.kw-site .kw-campioni__chiudi {
	display: grid;
	width: 40px;
	height: 40px;
	min-height: 0;
	padding: 0;
	margin: 0;
	place-items: center;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--kw-inchiostro);
	cursor: pointer;
	font-size: 1.7rem;
	line-height: 1;
	appearance: none;
}

.kw-site .kw-campioni__nota {
	margin: 0 0 18px;
	color: var(--kw-testo);
	font-size: .92rem;
}

.kw-site .kw-campioni__elenco {
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--kw-filetto);
}

.kw-site .kw-campioni__elenco li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--kw-filetto);
}

.kw-site .kw-campioni__elenco button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--kw-testo);
	cursor: pointer;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.kw-site .kw-campioni__azioni { padding-top: 20px; }
.kw-site .kw-campioni__azioni .kw-btn { width: 100%; justify-content: center; }

.kw-site .kw-campioni__svuota {
	margin-top: 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kw-testo);
	cursor: pointer;
	font-size: .78rem;
	text-decoration: underline;
}

/* Con il pannello aperto la pagina sotto non scorre e i pulsanti flottanti si
   tolgono di mezzo. */
body.kw-campioni-aperto { overflow: hidden; }
body.kw-campioni-aperto .kw-campioni-fab,
body.kw-campioni-aperto .kw-quick { opacity: 0; pointer-events: none; }

/* Pulsante di scelta sulla scheda e nella griglia. */
.kw-site [data-kw-campioni-stato] {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.kw-site [data-kw-campioni-stato].is-on { color: var(--kw-secondario-sc); }

.kw-site [data-kw-campioni-stato]::before {
	display: grid;
	width: 18px;
	height: 18px;
	place-items: center;
	border: 1px solid currentColor;
	content: '+';
	font-size: .8rem;
	line-height: 1;
}

.kw-site [data-kw-campioni-stato].is-on::before {
	background: var(--kw-secondario-sc);
	color: #fff;
	content: '✓';
}

/* L'elenco nella pagina della richiesta. */
.kw-site .kw-campioni-elenco__voci {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--kw-filetto);
}

.kw-site .kw-campioni-elenco__voci li {
	padding: 11px 0;
	border-bottom: 1px solid var(--kw-filetto);
}

@media (max-width: 600px) {
	.kw-site .kw-campioni { width: 100%; height: 88vh; padding: 20px 18px; }
}
