/* ==========================================================================
   NUOVA SALTINI — catalogo                                      v1.0.0
   Si carica: negozio, categorie, scheda prodotto (per i correlati).
   Sezioni sopra e sotto i prodotti, filtri, schede della griglia.
   ========================================================================== */

/* Sezioni sopra e sotto i prodotti: i colori di fondo sono nei blocchi. */
.ns-site .ns-campo--testo > :last-child { margin-bottom: 0; }

.ns-site .ns-campo--testo :is(h2, h3) {
	color: var(--kw-titolo-scuro);
	font-family: var(--kw-serif);
	font-weight: 600;
	letter-spacing: -.015em;
	line-height: 1.15;
}

.ns-site .ns-campo--testo h2 { font-size: var(--kw-h2); }
.ns-site .ns-campo--testo h3 { font-size: var(--kw-h3); }
.ns-site .ns-campo--foto { margin: 0; }

.ns-site .ns-campo--foto img {
	width: 100%;
	border-radius: var(--kw-raggio);
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Filtri nella colonna laterale: un gruppo sotto l'altro. */
.ns-site .ns-filtri {
	grid-template-columns: 1fr;
	gap: 0;
	padding: 0;
	border: 0;
}

.ns-site .ns-filtri .kw-filtri__titolo {
	padding-bottom: 14px;
	color: var(--kw-inchiostro);
	font-size: .95rem;
	letter-spacing: 0;
	text-transform: none;
}

.ns-site .ns-filtri .kw-filtro { padding: 16px 0; border-top: 1px solid var(--kw-filetto); }

.ns-site .ns-filtri .kw-filtro__nome {
	font-family: var(--kw-sans);
	font-size: .9rem;
	font-weight: 600;
}

.ns-site .ns-filtri .kw-filtro__voce { display: flex; width: 100%; justify-content: space-between; }
.ns-site .ns-filtri .kw-filtro__voce.is-on { color: var(--kw-primario-sc); }

/* Schede della griglia. */
.ns-site .products .product-small.box {
	position: relative;
	display: flex;
	height: 100%;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--kw-filetto);
	border-radius: var(--kw-raggio);
	background: #fff;
	transition: border-color var(--kw-durata) var(--kw-curva);
}

.ns-site .products .product-small.box:hover,
.ns-site .products .product-small.box:focus-within { border-color: var(--kw-primario); }

.ns-site .products .product-small .box-image img { aspect-ratio: 4 / 3; object-fit: cover; }

.ns-site .products .product-small .box-text {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 18px 14px;
	text-align: left;
}

.ns-site .products .product-small .product-cat {
	margin-bottom: 4px;
	color: var(--kw-primario-sc);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .02em;
	opacity: 1;
	text-transform: none;
}

.ns-site .products .product-small .product-title { margin-bottom: 6px; font-size: 1.02rem; font-weight: 600; line-height: 1.3; }
.ns-site .products .product-small .product-title a { color: var(--kw-inchiostro); }

/* Tutta la scheda porta al prodotto: si allarga il collegamento del nome. */
.ns-site .products .product-small .product-title a::after { position: absolute; inset: 0; z-index: 1; content: ''; }

.ns-site .products .product-small .price-wrapper { display: flex; flex: 1; flex-direction: column; }

.ns-site .ns-griglia-dati {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .2rem .8rem;
	margin: .3rem 0 1rem;
	font-size: .8rem;
}

.ns-site .ns-griglia-dati dt { margin: 0; color: var(--ns-muto); font-weight: 400; }
.ns-site .ns-griglia-dati dd { margin: 0; color: var(--kw-inchiostro); font-weight: 500; }

.ns-site .ns-griglia-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: .8rem;
	border-top: 1px solid var(--kw-filetto);
	color: var(--kw-primario-sc);
	font-size: .8rem;
	font-weight: 600;
}

.ns-site .ns-griglia-link::after {
	width: 15px;
	height: 15px;
	background: currentColor;
	content: '';
	-webkit-mask: var(--ns-i-freccia) center / contain no-repeat;
	mask: var(--ns-i-freccia) center / contain no-repeat;
	transition: transform var(--kw-durata) var(--kw-curva);
}

.ns-site .product-small.box:hover .ns-griglia-link::after { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
	.ns-site .ns-griglia-link::after { transition: none; }
}
