/* =============================================================
   SHOP ARCHIVE · Amazon-style (sidebar + toolbar + rich cards)
   ============================================================= */

/* -----------------------------
 * HERO banner
 * --------------------------- */
.tc-shop-hero {
	padding: 48px 0 24px;
	background: var(--cream);
}
.tc-shop-hero .breadcrumb {
	margin-bottom: 20px;
}
.tc-shop-hero__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 32px;
	flex-wrap: wrap;
}
.tc-shop-hero__title {
	font-family: var(--serif);
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
	letter-spacing: -0.02em;
	margin: 0 0 14px;
	font-weight: 400;
}
.tc-shop-hero__title em {
	color: var(--salviaD);
	font-style: italic;
	font-weight: 400;
}
.tc-shop-hero__desc {
	font-size: 15px;
	line-height: 1.6;
	color: var(--ink-2);
	max-width: 60ch;
}
.tc-shop-hero__meta {
	text-align: right;
}
.tc-shop-hero__meta p {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--mute);
	margin: 0 0 4px;
	text-transform: uppercase;
}

/* -----------------------------
 * Category pills scroll
 * --------------------------- */
.tc-shop-cats {
	border-top: 1px dashed var(--line-soft);
	border-bottom: 1px dashed var(--line-soft);
	padding: 16px 0;
	background: var(--paper-2);
}
.tc-shop-cats__scroll {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding-bottom: 4px;
}
.tc-shop-cats__scroll::-webkit-scrollbar { display: none; }
.tc-shop-cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-2);
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
	transition: all 180ms;
}
.tc-shop-cat span { font-size: 14px; }
.tc-shop-cat small { color: var(--mute); font-size: 10px; }
.tc-shop-cat:hover { border-color: var(--ink); background: var(--paper-2); }
.tc-shop-cat.is-active {
	background: var(--ink);
	color: var(--cream);
	border-color: var(--ink);
}
.tc-shop-cat.is-active small { color: var(--gold); }

/* -----------------------------
 * Main layout (sidebar + content)
 * --------------------------- */
.tc-shop-main { padding: 32px 0 48px; }
.tc-shop-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 40px;
	align-items: start;
}

/* -----------------------------
 * SIDEBAR FILTRI
 * --------------------------- */
.tc-shop-sidebar {
	position: sticky;
	top: 100px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-md);
	padding: 24px 22px;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
}
.tc-shop-sidebar__close {
	display: none;
	position: absolute;
	top: 12px; right: 12px;
	width: 36px; height: 36px;
	border-radius: 50%;
	border: 0;
	background: var(--paper-2);
	font-size: 22px;
	cursor: pointer;
}
.tc-shop-sidebar__title {
	font-family: var(--serif);
	font-size: 22px;
	margin: 0 0 20px;
	font-weight: 400;
	letter-spacing: -0.01em;
	padding-bottom: 14px;
	border-bottom: 1px dashed var(--line-soft);
}

.tc-filter {
	margin-bottom: 24px;
}
.tc-filter:last-child { margin-bottom: 0; }
.tc-filter__title {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 12px;
	font-weight: 600;
}
.tc-filter__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tc-filter__list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 10px;
	border-radius: var(--r-sm);
	font-size: 14px;
	color: var(--ink-2);
	text-decoration: none;
	transition: background 160ms;
}
.tc-filter__list a:hover { background: var(--paper-2); color: var(--ink); }
.tc-filter__list a.is-active {
	background: var(--salviaD);
	color: var(--cream);
	font-weight: 500;
}
.tc-filter__list a.is-active .tc-filter__count { color: var(--gold); }
.tc-filter__count {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--mute);
	background: transparent;
}
.tc-filter__list label {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	font-size: 14px;
	cursor: pointer;
	color: var(--ink-2);
}
.tc-filter__list label input[type="checkbox"] {
	width: 16px; height: 16px;
	accent-color: var(--salviaD);
}

/* Price range */
.tc-price-range__inputs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 12px;
}
.tc-price-range__inputs label {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.tc-price-range__inputs span {
	font-family: var(--mono);
	font-size: 10px;
	color: var(--mute);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.tc-price-range__inputs input {
	padding: 10px 12px;
	border: 1px solid var(--line-soft);
	border-radius: var(--r-sm);
	background: var(--cream);
	font-family: var(--mono);
	font-size: 13px;
	width: 100%;
}
.tc-price-range__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.tc-price-range__quick a {
	font-family: var(--mono);
	font-size: 10px;
	padding: 5px 10px;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	color: var(--ink-2);
	text-decoration: none;
	letter-spacing: 0.06em;
	transition: all 160ms;
}
.tc-price-range__quick a:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }

.tc-filter__actions {
	display: flex;
	gap: 8px;
	padding-top: 16px;
	border-top: 1px dashed var(--line-soft);
	flex-wrap: wrap;
}
.tc-filter__apply {
	flex: 1;
	padding: 12px 18px;
	background: var(--ink);
	color: var(--cream);
	border: 0;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 160ms;
}
.tc-filter__apply:hover { background: var(--salviaD); }
.tc-filter__clear {
	padding: 12px 18px;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-2);
	text-decoration: none;
	transition: all 160ms;
}
.tc-filter__clear:hover { border-color: var(--ink); color: var(--ink); }

/* -----------------------------
 * TOOLBAR (count + sort + view)
 * --------------------------- */
.tc-shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 0 24px;
	gap: 16px;
	flex-wrap: wrap;
}
.tc-shop-toolbar__count {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--mute);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.tc-shop-toolbar__count strong { color: var(--ink); font-weight: 600; }
.tc-shop-toolbar__sort {
	display: flex;
	align-items: center;
	gap: 10px;
}
.tc-shop-toolbar__sort select {
	padding: 10px 36px 10px 16px;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	background: var(--cream) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%232C2A24' fill='none' stroke-width='1.5'/></svg>") no-repeat right 14px center;
	appearance: none;
	-webkit-appearance: none;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
	cursor: pointer;
	min-width: 200px;
}
.tc-shop-toolbar__view {
	display: flex;
	gap: 4px;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	padding: 3px;
}
.tc-view-btn {
	width: 36px; height: 36px;
	border: 0;
	background: transparent;
	border-radius: 999px;
	font-size: 16px;
	color: var(--mute);
	cursor: pointer;
	transition: all 160ms;
}
.tc-view-btn:hover { color: var(--ink); }
.tc-view-btn.is-active {
	background: var(--ink);
	color: var(--cream);
}
.tc-shop-toolbar__filter-toggle {
	display: none;
	padding: 10px 18px;
	background: var(--ink);
	color: var(--cream);
	border: 0;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	align-items: center;
	gap: 6px;
}

/* -----------------------------
 * PRODUCTS GRID
 * --------------------------- */
.tc-shop-content .products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
}
.tc-shop-content .products::before, .tc-shop-content .products::after { display: none !important; }

/* List view */
.tc-shop-content[data-view="list"] .products {
	grid-template-columns: 1fr !important;
	gap: 12px !important;
}
.tc-shop-content[data-view="list"] .tc-product-card {
	display: grid !important;
	grid-template-columns: 180px 1fr !important;
	gap: 20px !important;
}
.tc-shop-content[data-view="list"] .tc-product-card__photo {
	aspect-ratio: 1/1;
}
.tc-shop-content[data-view="list"] .tc-product-card__body {
	padding: 16px 20px 16px 0 !important;
}
.tc-shop-content[data-view="list"] .tc-product-card__badges {
	top: 10px; left: 10px;
}

/* -----------------------------
 * PRODUCT CARD (rich)
 * --------------------------- */
.tc-product-card {
	position: relative;
	background: var(--cream) !important;
	border: 1px solid var(--line-soft);
	border-radius: var(--r-md);
	overflow: hidden;
	display: flex !important;
	flex-direction: column !important;
	transition: transform 280ms, box-shadow 280ms, border-color 180ms;
	list-style: none !important;
	float: none !important;
	width: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	align-self: stretch !important;   /* la card riempie la riga → tutte uguali (no % height) */
}
.tc-product-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 24px 40px -24px rgba(44,42,36, 0.3);
	border-color: var(--ink);
}

/* Wishlist button */
.tc-product-card__wishlist {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px; height: 36px;
	background: rgba(253,251,247, 0.95);
	backdrop-filter: blur(6px);
	border: 1px solid var(--line-soft);
	border-radius: 50%;
	font-size: 18px;
	color: var(--ink);
	cursor: pointer;
	z-index: 4;
	transition: all 180ms;
	display: inline-flex; align-items: center; justify-content: center;
}
.tc-product-card__wishlist:hover { background: var(--ink); color: var(--cream); }
.tc-product-card__wishlist.is-active { background: #E74C3C; color: var(--cream); border-color: #E74C3C; }

/* Badges stack */
.tc-product-card__badges {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	z-index: 3;
}
.tc-badge {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
	font-weight: 600;
	line-height: 1.4;
	display: inline-block;
}
.tc-badge--sale { background: #B9452B; color: var(--cream); }
.tc-badge--featured { background: var(--gold); color: var(--ink); }
.tc-badge--new { background: var(--salviaD); color: var(--cream); }
.tc-badge--out { background: var(--mute); color: var(--cream); opacity: 0.85; }

/* Photo */
.tc-product-card__photo {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1/1;
	background: var(--paper-2);
}
.tc-product-card__photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	margin: 0 !important;
	transition: transform 500ms;
}
.tc-product-card:hover .tc-product-card__photo img {
	transform: scale(1.06);
}

/* Quick-add overlay */
/* RIMOSSO: .tc-product-card__quickadd · il nuovo template non lo usa */

/* CTA icon-only tondo elegante, a fianco del prezzo (no bottone invasivo) */
.tc-product-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0 !important;
	background: var(--salviaD);
	color: var(--cream);
	border-radius: 50%;
	text-decoration: none;
	border: 0 !important;
	cursor: pointer;
	transition: background 220ms cubic-bezier(.2,.7,.2,1), transform 220ms cubic-bezier(.2,.7,.2,1), box-shadow 220ms;
	flex-shrink: 0;
	line-height: 1;
	font-size: 0;
	box-shadow: 0 4px 12px -6px rgba(44,42,36, 0.35);
}
.tc-product-card__cta svg {
	display: block;
	transition: transform 220ms;
}
.tc-product-card__cta:hover {
	background: var(--ink);
	color: var(--cream);
	transform: scale(1.08);
	box-shadow: 0 6px 18px -6px rgba(44,42,36, 0.5);
}
.tc-product-card__cta--add:hover svg { transform: rotate(90deg); }
.tc-product-card__cta--variable:hover svg { transform: translateX(3px); }
.tc-product-card__cta.loading { opacity: 0.6; pointer-events: none; }
.tc-product-card__cta.added_to_cart,
.tc-product-card__cta.added {
	background: var(--salviaD);
	color: var(--cream);
}

/* OOS: label testuale piccola, zero invasività */
.tc-product-card__oos-txt {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mute);
	padding: 0 4px;
}

/* Body (meta sotto foto) */
.tc-product-card__body {
	padding: 14px 18px 16px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.tc-product-card__cat {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0;
}
.tc-product-card__title-link { text-decoration: none; color: var(--ink); }
.tc-product-card__title {
	font-family: var(--serif);
	font-size: 17px;
	line-height: 1.2;
	margin: 0;
	font-weight: 400;
	letter-spacing: -0.01em;
	min-height: 2.4em;   /* riserva 2 righe → titoli 1-riga e 2-righe occupano lo stesso spazio */
	display: flex;
	align-items: flex-start;
}
.tc-product-card__title-link:hover .tc-product-card__title { color: var(--salviaD); }
.tc-product-card__aging {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	color: var(--mute);
	margin: 0;
	text-transform: uppercase;
}
.tc-product-card__aging strong { color: var(--ink); font-weight: 500; }
.tc-product-card__rating {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 4px 0;
}
.tc-product-card__rating .star-rating { color: var(--gold); font-size: 13px; }
.tc-product-card__rating small { font-family: var(--mono); font-size: 10px; color: var(--mute); letter-spacing: 0.06em; }
.tc-product-card__footer {
	margin-top: auto;    /* spinge il footer sempre in fondo card */
	padding-top: 12px;
	border-top: 1px solid rgba(44,42,36, 0.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	min-height: 52px;    /* altezza minima per uniformità tra card */
}
.tc-product-card__price-na {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--salviaD);
	text-transform: uppercase;
	font-weight: 500;
}
/* "da" davanti al prezzo dei prodotti variabili */
.tc-product-card__price-from {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mute);
	font-weight: 600;
	margin-right: 2px;
}
/* Allineamento robusto: celle che si estendono + prezzo+CTA sempre su una riga */
.tc-shop-content .products { align-items: stretch !important; }
.tc-product-card__price { white-space: nowrap; }
.tc-product-card__footer { flex-wrap: nowrap; }
.tc-product-card__price {
	font-family: var(--serif);
	font-size: 20px;
	color: var(--ink);
	letter-spacing: -0.01em;
	line-height: 1.1;
	flex-shrink: 0;
}
.tc-product-card__price del {
	color: var(--mute);
	opacity: 0.6;
	margin-right: 6px;
	font-size: 15px;
}
.tc-product-card__price ins {
	background: transparent;
	color: var(--salviaD);
	text-decoration: none;
	font-weight: 600;
}

/* -----------------------------
 * TRUST BAR bottom
 * --------------------------- */
.tc-shop-trust {
	padding: 32px 0;
	background: var(--paper-2);
	border-top: 1px dashed var(--line-soft);
}
.tc-shop-trust__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.tc-shop-trust__item {
	display: flex;
	align-items: center;
	gap: 14px;
}
.tc-shop-trust__icon {
	width: 44px; height: 44px;
	background: var(--cream);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	flex-shrink: 0;
}
.tc-shop-trust__item strong {
	display: block;
	font-family: var(--serif);
	font-size: 15px;
	color: var(--ink);
	margin-bottom: 2px;
	font-weight: 400;
}
.tc-shop-trust__item small {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	color: var(--mute);
	text-transform: uppercase;
}

/* -----------------------------
 * Pagination WC
 * --------------------------- */
.woocommerce nav.woocommerce-pagination {
	margin: 40px 0 0;
	padding-top: 24px;
	border-top: 1px dashed var(--line-soft);
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0;
	border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	padding: 10px 14px !important;
	border-radius: 999px !important;
	background: transparent !important;
	border: 1px solid var(--line-soft) !important;
	font-family: var(--mono);
	font-size: 13px;
	min-width: 40px;
	color: var(--ink);
	text-decoration: none;
	transition: all 180ms;
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--ink); background: var(--paper-2) !important; }
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ink) !important;
	color: var(--cream);
	border-color: var(--ink) !important;
}

/* -----------------------------
 * RESPONSIVE
 * --------------------------- */
@media (max-width: 1100px) {
	.tc-shop-content .products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 900px) {
	.tc-shop-layout { grid-template-columns: 1fr; gap: 24px; }
	.tc-shop-sidebar {
		position: fixed;
		inset: 0;
		z-index: 9998;
		max-height: 100vh;
		border-radius: 0;
		transform: translateX(-100%);
		transition: transform 320ms cubic-bezier(.2,.7,.2,1);
		padding: 60px 24px 24px;
	}
	.tc-shop-sidebar.is-open { transform: translateX(0); }
	.tc-shop-sidebar__close { display: inline-flex; }
	.tc-shop-toolbar__filter-toggle { display: inline-flex; }
	.tc-shop-trust__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	/* === Shop mobile: compattare aggressivamente il "sopra-piega" ===
	 * Obiettivo: prima card prodotto visibile al primo viewport.
	 * Target layout: breadcrumb → title (più piccolo) → meta inline
	 * → chip scroll → toolbar → prima card. Totale ~520px dalla top.
	 */
	.tc-shop-hero { padding: 16px 0 8px; }
	.tc-shop-hero .breadcrumb { margin-bottom: 10px; font-size: 11px; }
	.tc-shop-hero__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	.tc-shop-hero__title {
		font-size: clamp(28px, 9vw, 36px);
		margin: 0 0 4px;
		line-height: 1.05;
	}
	.tc-shop-hero__desc { font-size: 14px; line-height: 1.5; margin: 0; }
	.tc-shop-hero__meta { text-align: left; margin: 0; }
	.tc-shop-hero__meta p { display: inline; margin: 0; font-size: 10px; line-height: 1.4; }
	.tc-shop-hero__meta p + p::before { content: ' · '; margin: 0 4px; color: var(--mute); }

	/* Chip categorie: padding verticale più basso */
	.tc-shop-cats { padding: 10px 0; }
	.tc-shop-cat { padding: 8px 14px; }

	/* Main: meno aria prima delle card */
	.tc-shop-main { padding: 12px 0 32px; }

	/* Toolbar: filtri+count+sort su riga compatta (non più column) */
	.tc-shop-toolbar {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px 10px;
		padding: 10px 0;
	}
	.tc-shop-toolbar__count { font-size: 11px; order: 2; flex: 1; min-width: 0; }
	.tc-shop-toolbar__filter-toggle { order: 1; }
	.tc-shop-toolbar__sort { order: 3; width: 100%; }
	.tc-shop-toolbar__sort select { width: 100%; }
	.tc-shop-toolbar__view { order: 4; }

	/* Griglia 2 colonne · più prodotti visibili al primo scroll */
	.tc-shop-content .products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 10px !important;
	}
	/* List view: torna a colonna singola con thumb piccola */
	.tc-shop-content[data-view="list"] .products {
		grid-template-columns: 1fr !important;
	}
	.tc-shop-content[data-view="list"] .tc-product-card {
		grid-template-columns: 110px 1fr !important;
		gap: 12px !important;
	}

	/* Card compatte (2 colonne ≈ 180-190px wide) */
	.tc-product-card { border-radius: 10px; }
	.tc-product-card__body { padding: 10px 12px 12px; gap: 3px; }
	.tc-product-card__cat { font-size: 9px; letter-spacing: 0.08em; }
	.tc-product-card__title { font-size: 14px; line-height: 1.25; }
	.tc-product-card__aging { font-size: 9px; letter-spacing: 0.06em; }
	.tc-product-card__rating { gap: 4px; margin: 2px 0; }
	.tc-product-card__rating .star-rating { font-size: 11px; }
	.tc-product-card__rating small { font-size: 9px; }
	.tc-product-card__footer { padding-top: 8px; gap: 6px; min-height: 40px; }
	.tc-product-card__price { font-size: 15px; line-height: 1.1; }
	.tc-product-card__price del { font-size: 11px; margin-right: 3px; }
	.tc-product-card__price-na { font-size: 10px; letter-spacing: 0.03em; }

	/* CTA tonda più piccola per stare accanto al prezzo */
	.tc-product-card__cta { width: 34px; height: 34px; }
	.tc-product-card__cta svg { width: 14px; height: 14px; }

	/* Wishlist + badges proporzionati alla card piccola */
	.tc-product-card__wishlist { top: 6px; right: 6px; width: 28px; height: 28px; font-size: 14px; }
	.tc-product-card__badges { top: 6px; left: 6px; gap: 3px; }
	.tc-product-card__badges .tc-badge { font-size: 8px; padding: 2px 6px; letter-spacing: 0.05em; }

	.tc-shop-trust__grid { grid-template-columns: 1fr; }
}

/* Breakpoint smartphone piccoli (iPhone SE, Galaxy S8 ecc < 360px):
 * una sola colonna con card compatta, niente da comprimere ulteriormente. */
@media (max-width: 359px) {
	.tc-shop-content .products {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}
	.tc-product-card__title { font-size: 16px; }
	.tc-product-card__price { font-size: 17px; }
}

/* =============================================================
   CART · layout professionale (flat, niente gradiente, full-width)
   ============================================================= */

/* --- Reset container ereditato da page.php --- */
.tc-wc-page {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: inherit;
	line-height: inherit;
}
.tc-wc-page > section { margin: 0 !important; }
body.woocommerce-cart article.page-article,
body.woocommerce-checkout article.page-article,
body.woocommerce-account article.page-article {
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
}
.woocommerce-cart-form.tc-cart-form {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

/* Wrap più largo per il carrello, padding responsive */
body.woocommerce-cart .tc-cart-head > .wrap,
body.woocommerce-cart .tc-cart-main > .wrap,
body.woocommerce-cart .tc-cart-base > .wrap {
	max-width: 1820px;
	padding-left: clamp(20px, 3vw, 56px);
	padding-right: clamp(20px, 3vw, 56px);
}
body.woocommerce-cart .tc-cart-main .woocommerce-notices-wrapper {
	margin-bottom: 16px;
}
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	background: var(--paper-2);
	border-radius: 8px;
	padding: 12px 16px;
	font-size: 13px;
	border-left: 3px solid var(--salviaD);
	list-style: none;
	margin: 0 0 12px;
}

/* ============================
   HEAD · compatto, niente gradiente
   ============================ */
.tc-cart-head {
	background: var(--cream);
	padding: 20px 0 18px;
}
.tc-cart-head__bc {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	margin-bottom: 10px;
}
.tc-cart-head__bc .woocommerce-breadcrumb,
.tc-cart-head__bc nav, .tc-cart-head__bc { font-size: 11px; }
.tc-cart-head__bc a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.tc-cart-head__bc a:hover { color: var(--ink); border-bottom-color: var(--ink); }

.tc-cart-head__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	flex-wrap: wrap;
}
.tc-cart-head__title {
	font-family: var(--serif);
	font-size: clamp(28px, 3.6vw, 40px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
}
.tc-cart-head__title em { font-style: italic; color: var(--salviaD); }
.tc-cart-head__sub {
	font-size: 14px;
	color: var(--ink-2);
	margin: 6px 0 0;
	font-family: var(--sans);
}
.tc-cart-head__meta {
	text-align: right;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	display: flex;
	gap: 14px;
	align-items: center;
}
.tc-cart-head__meta span + span::before {
	content: '·';
	margin-right: 14px;
	color: var(--line-soft);
}

/* ============================
   MAIN · layout 2-col
   ============================ */
.tc-cart-main {
	padding: 28px 0 48px;
	background: var(--cream);
}
.tc-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 28px;
	align-items: flex-start;
}

/* Items column */
.tc-cart-items { min-width: 0; }

/* Freeship strip (sottile, non invasivo) */
.tc-cart-ship {
	background: var(--paper-2);
	border-radius: 10px;
	padding: 10px 16px;
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
}
.tc-cart-ship__ico {
	font-size: 18px;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--cream);
	border-radius: 50%;
}
.tc-cart-ship__body { flex: 1; min-width: 0; }
.tc-cart-ship__msg {
	font-size: 13px;
	color: var(--ink);
	margin: 0 0 6px;
}
.tc-cart-ship__msg strong { color: var(--salviaD); font-weight: 600; }
.tc-cart-ship.is-ok .tc-cart-ship__msg { color: var(--salviaD); font-weight: 500; }
.tc-cart-ship__track {
	height: 4px;
	background: var(--cream);
	border-radius: 999px;
	overflow: hidden;
}
.tc-cart-ship__fill {
	height: 100%;
	background: var(--salviaD);
	transition: width 400ms cubic-bezier(.2,.7,.2,1);
}

/* Items head bar */
.tc-cart-items__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 0 0 10px;
}
.tc-cart-items__count {
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
}
.tc-cart-items__subtotal {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--ink-2);
	letter-spacing: 0.04em;
}

.tc-cart-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* ============================
   CART CARD · flat pro layout
   3 colonne: thumb · body · prices (desktop)
   ============================ */
.tc-cart-card {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr) auto;
	grid-template-areas: "thumb body prices";
	gap: 20px;
	padding: 22px 0;
	border-bottom: 1px solid var(--line-soft);
	align-items: start;
}
.tc-cart-card:last-child { border-bottom: 0; padding-bottom: 16px; }

.tc-cart-card__thumb {
	grid-area: thumb;
	width: 88px;
	aspect-ratio: 1;
	background: var(--paper-2);
	border-radius: 8px;
	overflow: hidden;
}
.tc-cart-card__thumb img,
.tc-cart-card__thumb a { display: block; width: 100%; height: 100%; object-fit: cover; }

.tc-cart-card__body {
	grid-area: body;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.tc-cart-card__name {
	font-family: var(--serif);
	font-size: 17px;
	line-height: 1.3;
	margin: 0;
	font-weight: 400;
	color: var(--ink);
	overflow-wrap: break-word;
}
.tc-cart-card__name a { color: inherit; text-decoration: none; }
.tc-cart-card__name a:hover { color: var(--salviaD); }

.tc-cart-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 12px;
	color: var(--mute);
}
.tc-cart-card__sku {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.tc-cart-card__stock {
	font-size: 12px;
	margin: 0;
	color: var(--salviaD);
	font-weight: 500;
}
.tc-cart-card__stock.is-ko { color: #B54A3B; }
.tc-cart-card__vars { font-size: 12px; color: var(--mute); margin-top: 2px; }
.tc-cart-card__vars p, .tc-cart-card__vars dl { margin: 0; }

.tc-cart-card__controls {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 4px;
	flex-wrap: wrap;
}
.tc-cart-card__qty .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	overflow: hidden;
}
.tc-cart-card__qty .quantity input.qty {
	width: 52px;
	height: 36px;
	border: 0;
	background: transparent;
	font-family: var(--sans);
	font-size: 14px;
	text-align: center;
	color: var(--ink);
	appearance: textfield;
	-moz-appearance: textfield;
}
.tc-cart-card__qty .quantity input.qty::-webkit-outer-spin-button,
.tc-cart-card__qty .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.tc-cart-card__remove {
	font-size: 12px;
	color: var(--mute);
	text-decoration: none;
	padding: 6px 0;
	transition: color 180ms;
}
.tc-cart-card__remove:hover { color: #B54A3B; }

.tc-cart-card__prices {
	grid-area: prices;
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	min-width: 90px;
}
.tc-cart-card__subtotal {
	font-family: var(--serif);
	font-size: 20px;
	color: var(--ink);
	font-weight: 500;
	line-height: 1;
}
.tc-cart-card__subtotal bdi, .tc-cart-card__subtotal .amount { font-weight: inherit; }
.tc-cart-card__unit {
	font-size: 11px;
	color: var(--mute);
	font-family: var(--mono);
	letter-spacing: 0.04em;
}

/* Bottom bar: update + continue */
.tc-cart-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 18px 0 0;
	flex-wrap: wrap;
}
.tc-cart-actions__update {
	padding: 10px 20px;
	background: transparent;
	border: 1px solid var(--line-soft);
	color: var(--ink);
	border-radius: 6px;
	font-family: var(--sans);
	font-size: 13px;
	cursor: pointer;
	transition: border-color 180ms, background 180ms;
}
.tc-cart-actions__update:hover { border-color: var(--ink); background: var(--paper-2); }
.tc-cart-actions__continue {
	font-size: 13px;
	color: var(--salviaD);
	text-decoration: none;
	transition: color 180ms;
}
.tc-cart-actions__continue:hover { color: var(--ink); text-decoration: underline; }

/* ============================
   SUMMARY · sidebar sticky pulita
   ============================ */
.tc-cart-aside {
	position: sticky;
	top: 90px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-cart-summary {
	background: var(--paper-2);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.tc-cart-summary__title {
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: -0.01em;
	margin: 0 0 4px;
	color: var(--ink);
}
.tc-cart-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-size: 14px;
	color: var(--ink);
	line-height: 1.4;
}
.tc-cart-summary__row.is-discount { color: var(--salviaD); }
.tc-cart-summary__row.is-total {
	padding-top: 12px;
	border-top: 1px solid var(--line-soft);
	margin-top: 4px;
	font-family: var(--serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--ink);
}
.tc-cart-summary__ship {
	padding: 6px 0;
	font-size: 13px;
	color: var(--ink-2);
}
.tc-cart-summary__ship ul.woocommerce-shipping-methods {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 13px;
}
.tc-cart-summary__ship ul.woocommerce-shipping-methods li { padding: 4px 0; }
.tc-cart-summary__ship p.woocommerce-shipping-destination {
	font-size: 11px;
	color: var(--mute);
	margin: 4px 0 0;
	font-family: var(--mono);
}
.tc-cart-summary__ship .shipping-calculator-button {
	font-size: 12px;
	color: var(--salviaD);
	text-decoration: none;
	border-bottom: 1px dashed var(--salviaD);
}

.tc-cart-summary__checkout { margin-top: 4px; }
.tc-cart-summary__checkout .checkout-button,
.tc-cart-summary__checkout .wc-proceed-to-checkout .button,
.tc-cart-summary__checkout .button {
	display: block;
	width: 100%;
	text-align: center;
	padding: 14px 20px !important;
	background: var(--ink) !important;
	color: var(--cream) !important;
	border-radius: 8px !important;
	font-family: var(--sans) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-decoration: none !important;
	border: 0 !important;
	transition: background 180ms !important;
	cursor: pointer;
}
.tc-cart-summary__checkout .button:hover { background: var(--salviaD) !important; }

.tc-cart-summary__coupon summary {
	cursor: pointer;
	font-size: 12px;
	color: var(--salviaD);
	padding: 8px 0 0;
	list-style: none;
	user-select: none;
}
.tc-cart-summary__coupon summary::-webkit-details-marker { display: none; }
.tc-cart-summary__coupon summary::before {
	content: '+';
	margin-right: 6px;
	font-weight: 600;
	font-size: 14px;
}
.tc-cart-summary__coupon[open] summary::before { content: '−'; }
.tc-cart-coupon {
	display: flex;
	gap: 6px;
	padding: 10px 0 0;
}
.tc-cart-coupon input[type="text"] {
	flex: 1;
	padding: 9px 12px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	font-family: var(--sans);
	font-size: 13px;
	color: var(--ink);
}
.tc-cart-coupon input[type="text"]:focus { outline: 2px solid var(--salviaD); outline-offset: -1px; border-color: transparent; }
.tc-cart-coupon button {
	padding: 9px 16px;
	background: var(--cream);
	color: var(--ink);
	border: 1px solid var(--ink);
	border-radius: 6px;
	font-size: 12px;
	cursor: pointer;
	transition: background 180ms, color 180ms;
}
.tc-cart-coupon button:hover { background: var(--ink); color: var(--cream); }

.tc-cart-summary__pay {
	margin-top: 6px;
	padding-top: 12px;
	border-top: 1px solid var(--line-soft);
}
.tc-cart-summary__pay p.mono {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	margin: 0 0 8px;
}
.tc-cart-summary__pay-icons { display: flex; flex-wrap: wrap; gap: 5px; }
.tc-cart-summary__pay-icons span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	padding: 4px 9px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 4px;
	color: var(--ink);
	text-transform: uppercase;
}

/* Trust badges (nel lato sidebar) */
.tc-cart-aside__trust {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.tc-cart-aside__trust-item {
	display: flex;
	align-items: center;
	gap: 12px;
}
.tc-cart-aside__trust-item > span {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--paper-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}
.tc-cart-aside__trust-item strong {
	display: block;
	font-size: 13px;
	color: var(--ink);
	font-weight: 500;
}
.tc-cart-aside__trust-item small {
	display: block;
	font-size: 11px;
	color: var(--mute);
	font-family: var(--mono);
}

/* ============================
   EMPTY STATE
   ============================ */
.tc-cart-empty {
	text-align: center;
	padding: 60px 20px;
	max-width: 640px;
	margin: 0 auto;
}
.tc-cart-empty__icon { font-size: 64px; margin-bottom: 16px; }
.tc-cart-empty__title {
	font-family: var(--serif);
	font-size: clamp(28px, 3.5vw, 36px);
	font-weight: 400;
	margin: 0 0 10px;
	color: var(--ink);
}
.tc-cart-empty__text {
	font-size: 14px;
	color: var(--ink-2);
	max-width: 440px;
	margin: 0 auto 22px;
	line-height: 1.55;
}
.tc-cart-empty__cta {
	display: inline-block;
	padding: 12px 24px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 180ms;
}
.tc-cart-empty__cta:hover { background: var(--salviaD); }
.tc-cart-empty__suggest { margin-top: 50px; text-align: left; }
.tc-cart-empty__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}

/* ============================
   CROSS-SELL strip
   ============================ */
.tc-cart-xsell {
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--line-soft);
}
.tc-cart-xsell__head { margin-bottom: 16px; }
.tc-cart-xsell__tag {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0 0 4px;
}
.tc-cart-xsell__title {
	font-family: var(--serif);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 400;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--ink);
}
.tc-cart-xsell__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}

/* ============================
   BASE STRIP (fondo: trust + help)
   ============================ */
.tc-cart-base {
	background: var(--paper-2);
	padding: 28px 0;
	border-top: 1px solid var(--line-soft);
}
.tc-cart-base__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.tc-cart-base__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: var(--ink);
}
.tc-cart-base__item strong { display: block; font-size: 13px; font-weight: 500; color: var(--ink); }
.tc-cart-base__item small { display: block; font-size: 11px; color: var(--mute); font-family: var(--mono); }
.tc-cart-base__ico {
	width: 32px;
	height: 32px;
	background: var(--cream);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width: 1200px) {
	.tc-cart-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; }
}
@media (max-width: 1000px) {
	.tc-cart-layout { grid-template-columns: 1fr; gap: 20px; }
	.tc-cart-aside { position: static; }
	.tc-cart-base__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	/* === CART mobile: compattazione aggressiva ===
	 * Obiettivo: tutto nella prima schermata (item + prezzo + checkout).
	 * Nascondi tutto ciò che è ridondante con la sticky bar bottom.
	 */

	.tc-cart-head { padding: 12px 0 8px; }
	.tc-cart-head__row { flex-direction: column; align-items: flex-start; }
	.tc-cart-head__meta { text-align: left; justify-content: flex-start; }
	.tc-cart-head__title { font-size: clamp(22px, 6vw, 28px); }
	.tc-cart-head__sub { font-size: 12px; margin-top: 4px; }

	.tc-cart-main { padding: 12px 0 24px; }
	.tc-cart-ship { padding: 8px 14px; margin-bottom: 14px; gap: 10px; }
	.tc-cart-items__head { padding-bottom: 6px; }
	.tc-cart-items__count { font-size: 16px; }

	/* Card prodotto: layout piatto compatto · niente prezzo unit ridondante */
	.tc-cart-card {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas: "thumb body prices";
		gap: 12px;
		padding: 12px 0;
	}
	.tc-cart-card__thumb { width: 64px; aspect-ratio: 1; }
	.tc-cart-card__name { font-size: 14px; line-height: 1.2; }
	.tc-cart-card__meta { font-size: 11px; gap: 6px; }
	.tc-cart-card__sku, .tc-cart-card__stock { font-size: 10px; }
	.tc-cart-card__vars { font-size: 11px; }
	.tc-cart-card__prices {
		align-items: flex-end;
		flex-direction: column;
		text-align: right;
		padding-top: 0;
		border-top: 0;
		gap: 4px;
	}
	.tc-cart-card__unit { display: none; }   /* /pz ridondante con qty input */
	.tc-cart-card__subtotal { font-size: 14px; font-weight: 500; }
	/* Quantity + remove più piccoli ma ancora touch-friendly */
	.tc-cart-card__qty .quantity input.qty { width: 44px; height: 36px; font-size: 13px; }
	.tc-cart-card__remove { font-size: 12px; }

	/* Actions: bottoni piccoli su una riga · Aggiorna è un link discreto, non un blocco gigante */
	.tc-cart-actions {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		padding: 6px 0 0;
		gap: 12px;
		flex-wrap: wrap;
	}
	.tc-cart-actions__update {
		padding: 6px 12px !important;
		font-size: 11px !important;
		background: transparent !important;
		border: 1px solid var(--line-soft) !important;
		border-radius: 999px !important;
		color: var(--ink-2) !important;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		font-family: var(--mono);
	}
	.tc-cart-actions__continue { font-size: 12px; padding: 6px 0; }

	/* Riepilogo: niente subtotale ridondante con totale.
	 * Su mobile basta la riga TOTALE (la sticky bar in basso ha già il prezzo). */
	.tc-cart-aside { gap: 12px; margin-top: 12px; }
	.tc-cart-summary { padding: 16px; gap: 8px; }
	.tc-cart-summary__title { font-size: 16px; }
	.tc-cart-summary__row:not(.is-total):not(.is-discount) { font-size: 13px; opacity: 0.8; }
	.tc-cart-summary__row.is-total { font-size: 18px; padding-top: 8px; }

	/* Il bottone checkout del sidebar è ridondante con la sticky bar bottom:
	 * lo nascondo su mobile (la sticky è sempre visibile e più accessibile). */
	.tc-cart-summary__checkout { display: none; }

	/* Ship summary compatto */
	.tc-cart-summary__ship { font-size: 12px; padding: 4px 0 0; }

	.tc-cart-base__grid { grid-template-columns: 1fr; }
	.tc-cart-base { padding: 20px 0; }

	.tc-cart-xsell { margin-top: 24px; padding-top: 20px; }

	/* Ribbon laterale "Spedizione gratuita" è invadente su cart/checkout mobile */
	body.woocommerce-cart .tc-ribbon { display: none !important; }
}

/* =============================================================
   CHECKOUT · Shopify-style conversion-optimized layout
   ============================================================= */

/* Wrap largo per il checkout */
body.woocommerce-checkout .tc-co-banner > .wrap,
body.woocommerce-checkout .tc-co-head > .wrap,
body.woocommerce-checkout .tc-co-main > .wrap {
	max-width: 1620px;
	padding-left: clamp(20px, 3vw, 56px);
	padding-right: clamp(20px, 3vw, 56px);
}

/* Top banner (da Customizer) */
.tc-co-banner {
	background: var(--ink);
	color: var(--cream);
	padding: 10px 0;
	text-align: center;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Head compatto */
.tc-co-head {
	background: var(--cream);
	padding: 20px 0 14px;
	border-bottom: 1px solid var(--line-soft);
}
.tc-co-head__bc {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	margin-bottom: 8px;
}
.tc-co-head__bc a { color: inherit; text-decoration: none; }
.tc-co-head__bc a:hover { color: var(--ink); }
.tc-co-head__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}
.tc-co-head__title {
	font-family: var(--serif);
	font-size: clamp(28px, 3.6vw, 40px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
}
.tc-co-head__sub {
	font-size: 13px;
	color: var(--ink-2);
	margin: 6px 0 0;
}
.tc-co-head__help {
	font-size: 13px;
	color: var(--salviaD);
	text-decoration: none;
	padding: 8px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	font-family: var(--sans);
	transition: border-color 180ms, color 180ms;
}
.tc-co-head__help:hover { border-color: var(--salviaD); color: var(--ink); }

/* Steps progress (Shopify-like) */
.tc-co-steps {
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex-wrap: wrap;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-transform: uppercase;
}
.tc-co-steps li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	position: relative;
}
.tc-co-steps li + li::before {
	content: '→';
	margin-right: 4px;
	color: var(--line-soft);
}
.tc-co-steps li span {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--paper-2);
	color: var(--mute);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 11px;
}
.tc-co-steps li.is-done span {
	background: var(--salviaD);
	color: var(--cream);
}
.tc-co-steps li.is-done { color: var(--salviaD); }
.tc-co-steps li.is-active span {
	background: var(--ink);
	color: var(--cream);
}
.tc-co-steps li.is-active { color: var(--ink); font-weight: 600; }

/* Main wrapper */
.tc-co-main {
	padding: 28px 0 48px;
	background: var(--cream);
}
.tc-co-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) 420px;
	gap: 36px;
	align-items: flex-start;
}

/* FORM col */
.tc-co-form__col { min-width: 0; }

/* Sezioni numerate del form */
.tc-co-section {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 20px 24px 24px;
	margin-bottom: 18px;
}
.tc-co-section__head {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-bottom: 4px;
	margin-bottom: 14px;
}
.tc-co-section__num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ink);
	color: var(--cream);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mono);
	font-size: 13px;
	font-weight: 600;
	flex-shrink: 0;
}
.tc-co-section__title {
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
	line-height: 1.15;
}
.tc-co-section__sub {
	font-size: 13px;
	color: var(--mute);
	margin: 4px 0 0;
}
.tc-co-section__body { padding: 0; }

/* Fix dei default WC headings dentro le sezioni */
.tc-co-section__body h3,
.tc-co-section__body #ship-to-different-address h3 {
	font-family: var(--sans) !important;
	font-size: 14px !important;
	color: var(--ink) !important;
	margin: 0 0 10px !important;
	font-weight: 500 !important;
	border: 0 !important;
	padding: 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Form fields row a 2-col */
.tc-co-form .form-row-first, .tc-co-form .form-row-first { width: 48.5% !important; float: left !important; }
.tc-co-form .form-row-last  { width: 48.5% !important; float: right !important; clear: none !important; }
.tc-co-form .form-row-wide  { width: 100% !important; clear: both; }
.tc-co-form #customer_details::after,
.tc-co-form .form-row::after { content: ""; display: table; clear: both; }

/* Disclaimer + trust sotto "Paga ora" */
.tc-co-disclaimer {
	font-size: 12px;
	color: var(--mute);
	margin: 16px 0 10px;
	padding: 12px 16px;
	background: var(--paper-2);
	border-radius: 8px;
	line-height: 1.5;
}
.tc-co-trust {
	list-style: none;
	padding: 0;
	margin: 10px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	font-size: 12px;
	color: var(--ink-2);
}
.tc-co-trust li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.tc-co-trust li span { font-size: 14px; color: var(--salviaD); }

/* SUMMARY col */
.tc-co-summary__col {
	position: sticky;
	top: 80px;
}
.tc-co-summary {
	background: var(--paper-2);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 22px;
}
.tc-co-summary__inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 8px;
}
.tc-co-summary__title {
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: default;
	list-style: none;
}
.tc-co-summary__title::-webkit-details-marker { display: none; }
.tc-co-summary__title > span:first-child { flex: 1; min-width: 0; }
.tc-co-summary__title-total,
.tc-co-summary__title-arrow {
	display: none;  /* visibili solo su mobile */
}
/* Su desktop il details è SEMPRE aperto come block normale, niente collapse UX */
@media (min-width: 961px) {
	details.tc-co-summary { /* forza open visivo */ }
	details.tc-co-summary > .tc-co-summary__inner { display: flex !important; }
}

/* Items list */
.tc-co-items {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-height: 360px;
	overflow-y: auto;
	padding-right: 6px;
	margin-right: -6px;
}
.tc-co-items::-webkit-scrollbar { width: 6px; }
.tc-co-items::-webkit-scrollbar-thumb { background: rgba(44,42,36,0.2); border-radius: 3px; }
.tc-co-items::-webkit-scrollbar-track { background: transparent; }

.tc-co-item {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
}
.tc-co-item__thumb {
	position: relative;
	width: 54px;
	height: 54px;
	background: var(--cream);
	border-radius: 6px;
	overflow: hidden;
	border: 1px solid var(--line-soft);
}
.tc-co-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tc-co-item__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--ink);
	color: var(--cream);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	min-width: 20px;
	height: 20px;
	border-radius: 10px;
	padding: 0 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.tc-co-item__body { min-width: 0; }
.tc-co-item__name {
	font-size: 13px;
	font-family: var(--sans);
	font-weight: 500;
	color: var(--ink);
	margin: 0;
	line-height: 1.3;
	overflow-wrap: break-word;
}
.tc-co-item__meta { font-size: 11px; color: var(--mute); margin-top: 2px; }
.tc-co-item__meta p, .tc-co-item__meta dl { margin: 0; }
.tc-co-item__price {
	font-family: var(--mono);
	font-size: 13px;
	color: var(--ink);
	white-space: nowrap;
}

/* Coupon inline nel sidebar */
.tc-co-coupon summary {
	cursor: pointer;
	font-size: 13px;
	color: var(--salviaD);
	list-style: none;
	user-select: none;
	padding: 8px 0;
	border-top: 1px solid var(--line-soft);
}
.tc-co-coupon summary::-webkit-details-marker { display: none; }
.tc-co-coupon summary::before {
	content: '+ ';
	font-weight: 600;
}
.tc-co-coupon[open] summary::before { content: '− '; }
.tc-co-coupon__form {
	display: flex;
	gap: 6px;
	padding: 8px 0 0;
}
.tc-co-coupon__form input[type="text"] {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	font-size: 13px;
	color: var(--ink);
}
.tc-co-coupon__form input[type="text"]:focus {
	outline: 2px solid var(--salviaD);
	outline-offset: -1px;
	border-color: transparent;
}
.tc-co-coupon__form button {
	padding: 10px 16px;
	background: var(--cream);
	border: 1px solid var(--ink);
	color: var(--ink);
	border-radius: 6px;
	font-size: 12px;
	cursor: pointer;
	transition: background 180ms, color 180ms;
}
.tc-co-coupon__form button:hover { background: var(--ink); color: var(--cream); }

/* REVIEW (totali + payment + place order) dentro il main form */
.tc-co-review { display: flex; flex-direction: column; gap: 16px; }
.tc-co-review__totals {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 18px;
	background: var(--paper-2);
	border-radius: 8px;
}
.tc-co-totals__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-size: 14px;
	color: var(--ink);
}
.tc-co-totals__row.is-discount { color: var(--salviaD); }
.tc-co-totals__row.is-total {
	padding-top: 10px;
	border-top: 1px solid var(--line-soft);
	margin-top: 4px;
	font-family: var(--serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--ink);
}
.tc-co-totals__ship {
	padding: 4px 0;
	font-size: 13px;
	color: var(--ink-2);
}
.tc-co-totals__ship ul.woocommerce-shipping-methods {
	list-style: none;
	padding: 0;
	margin: 0;
}
.tc-co-totals__ship ul.woocommerce-shipping-methods li {
	display: flex;
	gap: 8px;
	align-items: center;
	padding: 4px 0;
}
.tc-co-totals__ship p.woocommerce-shipping-destination {
	font-size: 11px;
	color: var(--mute);
	font-family: var(--mono);
	margin: 6px 0 0;
}

/* Security note nel sidebar */
.tc-co-secure {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 8px;
}
.tc-co-secure > span {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--paper-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	flex-shrink: 0;
}
.tc-co-secure strong {
	display: block;
	font-size: 13px;
	color: var(--ink);
	font-weight: 500;
}
.tc-co-secure small {
	display: block;
	font-size: 11px;
	color: var(--mute);
	font-family: var(--mono);
}

/* Overrides WC per fondersi col layout */
.tc-co-form #payment {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}
.tc-co-form #payment ul.payment_methods {
	padding: 0 !important;
	margin: 0 0 14px !important;
	background: transparent !important;
	border: 0 !important;
}
.tc-co-form #payment ul.payment_methods li {
	background: var(--cream) !important;
	border: 1px solid var(--line-soft) !important;
	border-radius: 8px !important;
	padding: 14px 18px !important;
	margin: 0 0 8px !important;
	list-style: none !important;
	transition: border-color 180ms;
}
.tc-co-form #payment ul.payment_methods li:hover { border-color: var(--salviaD) !important; }
.tc-co-form #payment ul.payment_methods li label {
	font-family: var(--sans) !important;
	font-size: 15px !important;
	color: var(--ink) !important;
	font-weight: 500 !important;
	cursor: pointer;
}
.tc-co-form #payment div.payment_box {
	background: var(--paper-2) !important;
	padding: 14px !important;
	margin-top: 10px !important;
	border-radius: 6px !important;
	font-size: 13px !important;
}
/* Place order button FULL-WIDTH, accent */
.tc-co-form #place_order,
.tc-co-form #payment #place_order {
	width: 100% !important;
	background: var(--ink) !important;
	color: var(--cream) !important;
	padding: 16px 24px !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: var(--sans) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	cursor: pointer;
	margin-top: 14px !important;
	min-height: 54px !important;
	transition: background 180ms !important;
	box-shadow: 0 6px 20px -8px rgba(44,42,36, 0.4);
}
.tc-co-form #place_order:hover { background: var(--salviaD) !important; }

/* Terms */
.tc-co-form .woocommerce-terms-and-conditions-wrapper {
	background: var(--cream);
	padding: 12px 14px;
	border-radius: 6px;
	margin: 14px 0 0 !important;
	font-size: 12px;
	border: 1px solid var(--line-soft);
}
.tc-co-form .woocommerce-terms-and-conditions-wrapper label { font-weight: 400 !important; color: var(--ink-2) !important; }

/* RESPONSIVE */
@media (max-width: 1100px) {
	.tc-co-layout { grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; }
}
@media (max-width: 960px) {
	.tc-co-layout { grid-template-columns: 1fr; gap: 24px; }
	.tc-co-summary__col { position: static; order: -1; }
	.tc-co-items { max-height: 260px; }
}
@media (max-width: 640px) {
	/* === CHECKOUT mobile: pagina più corta + meno ridondanze ===
	 * - Riepilogo ordine collapsato (totale visibile, dettagli on-demand)
	 * - Sezioni più piccole, padding ridotto
	 * - Step nascosti (ridondanti col titolo "Checkout")
	 * - Trust bar bottom solo nella sticky bar
	 */

	.tc-co-banner { padding: 8px 0; font-size: 11px; }
	.tc-co-head { padding: 12px 0 8px; }
	.tc-co-head__row { flex-direction: column; align-items: flex-start; gap: 6px; }
	.tc-co-head__title { font-size: clamp(22px, 6vw, 28px); }
	.tc-co-head__sub { font-size: 12px; margin: 2px 0 0; }
	.tc-co-head__help { font-size: 11px; }

	/* Step indicator: nascosto mobile (ridondante col titolo + sticky) */
	.tc-co-steps { display: none; }

	.tc-co-main { padding: 8px 0 24px; }
	.tc-co-layout { gap: 14px; }

	/* Sezioni form più compatte */
	.tc-co-section {
		padding: 14px;
		margin-bottom: 12px;
	}
	.tc-co-section__head { padding-bottom: 4px; margin-bottom: 10px; gap: 10px; }
	.tc-co-section__num { width: 24px; height: 24px; font-size: 11px; }
	.tc-co-section__title { font-size: 16px; }
	.tc-co-section__sub { font-size: 11px; margin-top: 2px; }

	/* Form a 1 colonna su mobile */
	.tc-co-form .form-row-first, .tc-co-form .form-row-last { width: 100% !important; float: none !important; }
	.tc-co-form .form-row { margin-bottom: 8px !important; }
	.tc-co-form label { font-size: 12px !important; }
	.tc-co-form input[type="text"],
	.tc-co-form input[type="email"],
	.tc-co-form input[type="tel"],
	.tc-co-form input[type="number"],
	.tc-co-form select,
	.tc-co-form textarea,
	.tc-co-form .select2-selection {
		font-size: 14px !important;
		padding: 10px 12px !important;
	}

	/* Riepilogo ordine: collapsable mobile (toggle in summary header) */
	.tc-co-summary { padding: 14px 16px; }
	.tc-co-summary__title {
		font-size: 14px;
		cursor: pointer;
		font-family: var(--sans);
		font-weight: 500;
		padding: 4px 0;
	}
	.tc-co-summary__title > span:first-child {
		font-family: var(--mono);
		font-size: 11px;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--ink-2);
	}
	.tc-co-summary__title-total {
		display: inline-block;
		font-family: var(--serif);
		font-size: 18px;
		font-weight: 500;
		color: var(--ink);
		margin-right: 6px;
	}
	.tc-co-summary__title-arrow {
		display: inline-block;
		transition: transform 220ms;
		color: var(--ink-2);
		font-size: 14px;
	}
	details.tc-co-summary[open] .tc-co-summary__title-arrow {
		transform: rotate(180deg);
	}
	.tc-co-summary__inner { gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
	.tc-co-items { max-height: 240px; }

	.tc-co-trust { gap: 8px 16px; font-size: 11px; padding-bottom: 80px; }  /* spazio per sticky bar */

	/* Disclaimer + trust footer compatti */
	.tc-co-disclaimer { font-size: 11px; padding: 10px 12px; margin: 12px 0 8px; }

	/* Ribbon laterale invasivo: nascondi su checkout mobile */
	body.woocommerce-checkout .tc-ribbon { display: none !important; }
}

/* Su tablet (961-1100px) il summary col va sopra → manteniamolo aperto */
@media (max-width: 960px) and (min-width: 641px) {
	details.tc-co-summary > .tc-co-summary__inner { display: flex; }
	.tc-co-summary__title-total,
	.tc-co-summary__title-arrow { display: none; }
}

/* =============================================================
   SINGLE PRODUCT · Shopify/Amazon-hybrid, conversion-optimized
   ============================================================= */

/* Wrap largo (come cart/checkout) */
body.single-product .tc-sp-head > .wrap,
body.single-product .tc-sp-hero > .wrap,
body.single-product .tc-sp-tabs > .wrap,
body.single-product .tc-sp-upsell > .wrap,
body.single-product .tc-sp-recent > .wrap,
body.single-product .tc-sp-sticky > .wrap {
	max-width: 1620px;
	padding-left: clamp(20px, 3vw, 56px);
	padding-right: clamp(20px, 3vw, 56px);
}

/* HEAD (breadcrumb only) */
.tc-sp-head {
	background: var(--cream);
	padding: 16px 0 8px;
}
.tc-sp-head .woocommerce-breadcrumb {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
}
.tc-sp-head .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.tc-sp-head .woocommerce-breadcrumb a:hover { color: var(--ink); border-bottom: 1px solid; }

/* HERO layout */
.tc-sp-hero {
	background: var(--cream);
	padding: 20px 0 28px;
	border-bottom: 1px solid var(--line-soft);
}
.tc-sp-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 40px;
	align-items: flex-start;
}

/* GALLERY */
.tc-sp-gallery {
	position: sticky;
	top: 80px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-sp-gallery__main {
	position: relative;
	background: var(--paper-2);
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 1;
	max-height: 680px;
}
.tc-sp-gallery__main img,
.tc-sp-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 400ms cubic-bezier(.2,.7,.2,1);
}
.tc-sp-gallery__main:hover .tc-sp-gallery__img { transform: scale(1.03); }

/* Badges overlay */
.tc-sp-badges {
	position: absolute;
	top: 16px;
	left: 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	z-index: 2;
}
.tc-sp-badge {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 5px 11px;
	border-radius: 4px;
	color: var(--cream);
	font-weight: 600;
	background: var(--ink);
}
.tc-sp-badge.is-sale { background: #B54A3B; }
.tc-sp-badge.is-feat { background: var(--gold); color: var(--ink); }
.tc-sp-badge.is-new  { background: var(--salviaD); }

/* Gallery thumbs row */
.tc-sp-gallery__thumbs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.tc-sp-thumb {
	width: 72px;
	height: 72px;
	border: 1px solid var(--line-soft);
	border-radius: 8px;
	overflow: hidden;
	cursor: pointer;
	padding: 0;
	background: var(--paper-2);
	transition: border-color 180ms, transform 180ms;
}
.tc-sp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-sp-thumb:hover { border-color: var(--ink); }
.tc-sp-thumb.is-active { border-color: var(--salviaD); border-width: 2px; }

/* INFO sticky */
.tc-sp-info {
	position: sticky;
	top: 80px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.tc-sp-info__cat {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0;
}
.tc-sp-info__cat a { color: inherit; text-decoration: none; }
.tc-sp-info__cat a:hover { color: var(--ink); }

.tc-sp-info__title {
	font-family: var(--serif);
	font-size: clamp(28px, 3.8vw, 44px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
}

.tc-sp-info__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--mute);
}
.tc-sp-info__rating.is-empty a { color: var(--salviaD); text-decoration: underline; }
.tc-sp-stars { color: var(--gold); font-size: 16px; letter-spacing: 1px; }
.tc-sp-info__rating-txt a { color: var(--salviaD); text-decoration: none; border-bottom: 1px dashed; }

/* PRICE */
.tc-sp-info__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin: 4px 0 0;
}
.tc-sp-price__now {
	font-family: var(--serif);
	font-size: 36px;
	color: var(--ink);
	font-weight: 500;
	line-height: 1;
}
.tc-sp-price__now .amount, .tc-sp-price__now ins { font-weight: inherit; text-decoration: none; }
.tc-sp-price__now del { display: none; }
.tc-sp-price__old {
	font-family: var(--mono);
	font-size: 16px;
	color: var(--mute);
	text-decoration: line-through;
}
.tc-sp-price__save {
	background: #FBE9E3;
	color: #B54A3B;
	padding: 4px 10px;
	border-radius: 4px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	font-weight: 600;
	text-transform: uppercase;
}
.tc-sp-info__tax {
	font-size: 12px;
	color: var(--mute);
	margin: -6px 0 0;
	font-family: var(--mono);
}

/* EXCERPT */
.tc-sp-info__excerpt {
	font-size: 15px;
	color: var(--ink-2);
	line-height: 1.55;
}
.tc-sp-info__excerpt p { margin: 0 0 10px; }

/* META compatta */
.tc-sp-info__meta {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	font-size: 13px;
	color: var(--ink);
	border-top: 1px dashed var(--line-soft);
	border-bottom: 1px dashed var(--line-soft);
	padding: 12px 0;
}
.tc-sp-info__meta li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.tc-sp-info__meta span { font-size: 14px; }
.tc-sp-info__meta strong { color: var(--ink); font-weight: 500; }

/* STOCK status */
.tc-sp-info__stock {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.tc-sp-info__stock.is-ok { color: var(--salviaD); }
.tc-sp-info__stock.is-back { color: var(--gold); }
.tc-sp-info__stock.is-ko { color: #B54A3B; }
.tc-sp-info__low {
	background: #FBE9E3;
	color: #B54A3B;
	padding: 4px 10px;
	border-radius: 999px;
	font-weight: 600;
	animation: tc-pulse 2s infinite;
}
@keyframes tc-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.7; }
}

/* CTA (add to cart) */
.tc-sp-info__cta {
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 6px 0;
}
/* Override WC form.cart */
.tc-sp-info__cta form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	width: 100%;
}
.tc-sp-info__cta form.cart .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line-soft);
	border-radius: 8px;
	overflow: hidden;
	background: var(--cream);
	flex-shrink: 0;
}
.tc-sp-info__cta form.cart .quantity input.qty {
	width: 60px;
	height: 52px;
	border: 0;
	background: transparent;
	font-family: var(--serif);
	font-size: 18px;
	text-align: center;
	color: var(--ink);
	appearance: textfield;
	-moz-appearance: textfield;
}
.tc-sp-info__cta form.cart .quantity input.qty::-webkit-outer-spin-button,
.tc-sp-info__cta form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.tc-sp-info__cta form.cart button.single_add_to_cart_button,
.tc-sp-info__cta form.cart button.alt,
.tc-sp-info__cta form.cart .button {
	flex: 1 1 200px;
	min-height: 52px;
	padding: 14px 24px !important;
	background: var(--ink) !important;
	color: var(--cream) !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: var(--sans) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background 180ms, transform 180ms !important;
	box-shadow: 0 6px 20px -8px rgba(44,42,36, 0.4);
}
.tc-sp-info__cta form.cart .button:hover {
	background: var(--salviaD) !important;
	transform: translateY(-1px);
}
/* Variations select */
.tc-sp-info__cta form.cart .variations {
	width: 100%;
	margin-bottom: 12px;
	border: 0;
}
.tc-sp-info__cta form.cart .variations th, .tc-sp-info__cta form.cart .variations td {
	padding: 6px 0;
	text-align: left;
	font-size: 13px;
}
.tc-sp-info__cta form.cart .variations select {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	font-size: 14px;
}
.tc-sp-info__cta .woocommerce-variation-price { margin: 10px 0; font-size: 18px; }

/* SHIP info box */
.tc-sp-info__ship {
	padding: 14px 16px;
	background: var(--paper-2);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
}
.tc-sp-info__ship-line {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--ink);
}
.tc-sp-info__ship-line span { font-size: 16px; color: var(--salviaD); }

/* TRUST badges info */
.tc-sp-info__trust {
	list-style: none;
	padding: 14px 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px 14px;
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-sp-info__trust li {
	font-size: 12px;
	color: var(--ink-2);
	display: flex;
	align-items: center;
	gap: 8px;
	line-height: 1.3;
}
.tc-sp-info__trust span {
	font-size: 16px;
	color: var(--salviaD);
	flex-shrink: 0;
}

/* SKU + share */
.tc-sp-info__utils {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 4px;
	padding-top: 6px;
}
.tc-sp-info__sku {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--mute);
	text-transform: uppercase;
}
.tc-sp-share {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
}
.tc-sp-share .mono {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mute);
}
.tc-sp-share a {
	color: var(--salviaD);
	text-decoration: none;
	font-family: var(--mono);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-bottom: 1px dashed var(--salviaD);
	padding-bottom: 1px;
}
.tc-sp-share a:hover { color: var(--ink); border-color: var(--ink); }

/* BUNDLE (spesso comprati insieme) */
.tc-sp-bundle {
	background: var(--paper-2);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
	padding: 40px 0;
}
.tc-sp-bundle__head {
	margin-bottom: 22px;
	text-align: center;
}
.tc-sp-bundle__tag {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0 0 6px;
}
.tc-sp-bundle__title {
	font-family: var(--serif);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 400;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--ink);
}
.tc-sp-bundle__title em { font-style: italic; color: var(--salviaD); }
.tc-sp-bundle__row {
	display: flex;
	align-items: stretch;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}
.tc-sp-bundle__card {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 14px;
	width: 180px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	position: relative;
}
.tc-sp-bundle__card.is-main { border-color: var(--ink); border-width: 2px; }
.tc-sp-bundle__card img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 6px;
}
.tc-sp-bundle__card h4 {
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ink);
	margin: 0;
	min-height: 34px;
}
.tc-sp-bundle__card .price {
	font-family: var(--mono);
	font-size: 13px;
	color: var(--ink);
}
.tc-sp-bundle__card label {
	font-size: 12px;
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--ink-2);
	cursor: pointer;
}
.tc-sp-bundle__plus {
	align-self: center;
	font-size: 24px;
	color: var(--mute);
	font-weight: 300;
}
.tc-sp-bundle__summary {
	margin-top: 24px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 18px 22px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	flex-wrap: wrap;
}
.tc-sp-bundle__totals {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tc-sp-bundle__totals-old {
	font-family: var(--mono);
	font-size: 13px;
	color: var(--mute);
	text-decoration: line-through;
}
.tc-sp-bundle__totals-new {
	font-family: var(--serif);
	font-size: 22px;
	color: var(--ink);
	font-weight: 500;
}
.tc-sp-bundle__save {
	background: #FBE9E3;
	color: #B54A3B;
	padding: 3px 9px;
	border-radius: 4px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	font-weight: 600;
	margin-left: 8px;
}
.tc-sp-bundle__cta {
	padding: 14px 26px;
	background: var(--salviaD);
	color: var(--cream);
	border: 0;
	border-radius: 8px;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 180ms;
	text-decoration: none;
}
.tc-sp-bundle__cta:hover { background: var(--ink); }

/* TABS */
.tc-sp-tabs {
	padding: 40px 0;
	background: var(--cream);
}
.tc-sp-tabs__bar {
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--line-soft);
	margin-bottom: 28px;
	flex-wrap: wrap;
}
.tc-sp-tabs__btn {
	background: transparent;
	border: 0;
	padding: 12px 20px;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--mute);
	cursor: pointer;
	border-bottom: 2px solid transparent;
	transition: color 180ms, border-color 180ms;
	margin-bottom: -1px;
}
.tc-sp-tabs__btn:hover { color: var(--ink); }
.tc-sp-tabs__btn.is-active {
	color: var(--ink);
	border-bottom-color: var(--salviaD);
}
.tc-sp-tabs__panel { display: none; max-width: 920px; }
.tc-sp-tabs__panel.is-active { display: block; }

.tc-sp-desc { font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.tc-sp-desc p { margin: 0 0 16px; }
.tc-sp-desc h2, .tc-sp-desc h3 { font-family: var(--serif); color: var(--ink); margin: 28px 0 10px; font-weight: 400; }
.tc-sp-desc h2 { font-size: 28px; }
.tc-sp-desc h3 { font-size: 22px; }
.tc-sp-desc ul, .tc-sp-desc ol { padding-left: 20px; margin: 0 0 16px; }
.tc-sp-desc li { margin-bottom: 6px; }

/* Specs */
.tc-sp-specs {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 0;
	margin: 0;
	max-width: 640px;
}
.tc-sp-specs dt {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	padding: 12px 0;
	border-bottom: 1px dashed var(--line-soft);
}
.tc-sp-specs dd {
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px dashed var(--line-soft);
	font-size: 14px;
	color: var(--ink);
}
.tc-sp-specs dd a { color: var(--salviaD); text-decoration: none; border-bottom: 1px solid; }

/* Ship tab */
.tc-sp-ship {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}
.tc-sp-ship__item {
	padding: 18px 20px;
	background: var(--paper-2);
	border-radius: 10px;
}
.tc-sp-ship__item h4 {
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.tc-sp-ship__item p {
	font-size: 13px;
	color: var(--ink-2);
	line-height: 1.5;
	margin: 0;
}

/* UPSELL */
.tc-sp-upsell {
	padding: 40px 0 48px;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
}
.tc-sp-upsell__head { margin-bottom: 20px; }
.tc-sp-upsell__tag {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0 0 4px;
}
.tc-sp-upsell__title {
	font-family: var(--serif);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 400;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--ink);
}
.tc-sp-upsell__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}

/* RECENT */
.tc-sp-recent {
	padding: 40px 0 60px;
	background: var(--paper-2);
}
.tc-sp-recent__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
}

/* STICKY add-to-cart bar (mobile / scroll) */
/* Sticky ATC bar · mobile always-visible + desktop scroll-reveal */
.tc-sp-sticky {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	box-shadow: 0 -12px 32px -14px rgba(44,42,36, 0.22);
	z-index: 90;
	padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 0px));
	transform: translateY(100%);
	opacity: 0;
	transition: transform 280ms cubic-bezier(.2,.7,.2,1), opacity 200ms;
	pointer-events: none;
}
.tc-sp-sticky.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.tc-sp-sticky .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.tc-sp-sticky__info {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	flex: 1;
}
.tc-sp-sticky__thumb {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 6px;
	flex-shrink: 0;
}
.tc-sp-sticky__meta { min-width: 0; }
.tc-sp-sticky__meta strong {
	display: block;
	font-size: 13px;
	color: var(--ink);
	line-height: 1.2;
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 220px;
}
.tc-sp-sticky__price {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--salviaD);
	font-weight: 600;
	display: block;
	margin-top: 2px;
}
.tc-sp-sticky__price ins, .tc-sp-sticky__price .amount { text-decoration: none; }
.tc-sp-sticky__price del { color: var(--mute); opacity: 0.7; margin-right: 6px; }

/* Qty stepper compatto */
.tc-sp-sticky__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line-soft);
	border-radius: 999px;
	background: var(--cream);
	overflow: hidden;
	flex-shrink: 0;
	height: 42px;
}
.tc-sp-sticky__qty-btn {
	width: 32px;
	height: 42px;
	border: 0;
	background: transparent;
	font-size: 18px;
	font-weight: 500;
	color: var(--ink);
	cursor: pointer;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.tc-sp-sticky__qty-btn:hover { background: var(--paper-2); }
.tc-sp-sticky__qty input {
	width: 32px;
	height: 42px;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: var(--serif);
	font-size: 15px;
	color: var(--ink);
	appearance: textfield;
	-moz-appearance: textfield;
	padding: 0;
}
.tc-sp-sticky__qty input::-webkit-outer-spin-button,
.tc-sp-sticky__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* CTA bottone */
.tc-sp-sticky__btn {
	padding: 0 18px;
	height: 42px;
	background: var(--salviaD);
	color: var(--cream);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	flex-shrink: 0;
	transition: background 180ms, transform 180ms;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 0;
	cursor: pointer;
	min-width: 120px;
}
.tc-sp-sticky__btn:hover { background: var(--ink); color: var(--cream); transform: translateY(-1px); }
.tc-sp-sticky__btn svg { flex-shrink: 0; }
.tc-sp-sticky__btn.is-loading { opacity: 0.6; pointer-events: none; }
.tc-sp-sticky__btn.is-added { background: var(--salviaD); }
.tc-sp-sticky__btn--variable {
	background: var(--salviaD);
	color: var(--cream);
}
.tc-sp-sticky__btn--variable:hover { background: var(--ink); color: var(--cream); }

.tc-sp-sticky__oos {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--mute);
	padding: 8px 14px;
	background: var(--paper-2);
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* Aggiungi padding-bottom al body così sticky non copre contenuto finale */
body.single-product { padding-bottom: 80px; }
@media (min-width: 901px) {
	body.single-product { padding-bottom: 0; }
}

/* Pulse animation per select variabili non selezionate */
@keyframes tc-pulse-anim {
	0%, 100% { box-shadow: 0 0 0 0 rgba(107,138,110, 0); border-color: var(--line-soft); }
	50% { box-shadow: 0 0 0 6px rgba(107,138,110, 0.2); border-color: var(--salviaD); }
}
.tc-pulse { animation: tc-pulse-anim 800ms ease-in-out 3; outline: 2px solid var(--salviaD); outline-offset: 2px; }

/* Reviews tab (WC default comments) */
.tc-sp-tabs__panel #reviews .commentlist {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}
.tc-sp-tabs__panel #reviews .commentlist li {
	padding: 18px 0;
	border-bottom: 1px dashed var(--line-soft);
}
.tc-sp-tabs__panel .comment_container { display: flex; gap: 14px; }
.tc-sp-tabs__panel .comment-text { flex: 1; }
.tc-sp-tabs__panel .comment-text .meta { font-size: 12px; color: var(--mute); font-family: var(--mono); margin-bottom: 6px; }
.tc-sp-tabs__panel .star-rating { color: var(--gold); font-size: 14px; margin-bottom: 6px; }
.tc-sp-tabs__panel .comment-form-rating .stars a { color: var(--gold); }

/* ========================================================
   QUICK BUY · CTA conversion sotto la galleria
   Visibile solo MOBILE (su desktop il sidebar fa il lavoro).
   ======================================================== */
.tc-sp-quickbuy {
	display: none;  /* nascosto su desktop */
	margin: 16px 0 24px;
	padding: 16px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 12px;
	box-shadow: 0 2px 8px -4px rgba(44,42,36, 0.08);
}
.tc-sp-quickbuy__cat {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0 0 6px;
}
.tc-sp-quickbuy__cat a { color: inherit; text-decoration: none; }
.tc-sp-quickbuy__title {
	font-family: var(--serif);
	font-size: clamp(22px, 5.6vw, 28px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0 0 12px;
	color: var(--ink);
}
.tc-sp-quickbuy__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 12px;
}
.tc-sp-quickbuy__price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
	font-family: var(--serif);
	color: var(--ink);
}
.tc-sp-quickbuy__old {
	font-size: 14px;
	color: var(--mute);
	opacity: 0.7;
	text-decoration: line-through;
}
.tc-sp-quickbuy__now {
	font-size: 24px;
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1;
}
.tc-sp-quickbuy__now .price ins,
.tc-sp-quickbuy__now ins { background: transparent; color: var(--salviaD); text-decoration: none; }
.tc-sp-quickbuy__stock {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--salviaD);
	flex-shrink: 0;
}

/* CTA: form ATC compatto, bottone full-width */
.tc-sp-quickbuy__cta form.cart {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
}
.tc-sp-quickbuy__cta .quantity {
	margin: 0;
}
.tc-sp-quickbuy__cta button.single_add_to_cart_button {
	width: 100%;
	padding: 14px 22px !important;
	background: var(--ink) !important;
	color: var(--cream) !important;
	border-radius: 10px !important;
	font-family: var(--sans) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	border: 0 !important;
	text-transform: none !important;
	transition: background 220ms !important;
}
.tc-sp-quickbuy__cta button.single_add_to_cart_button:hover {
	background: var(--salviaD) !important;
}
/* Variations dropdown nel quickbuy: stile pulito */
.tc-sp-quickbuy__cta table.variations {
	width: 100%;
	margin: 0 0 4px !important;
	border: 0;
}
.tc-sp-quickbuy__cta table.variations tbody { display: flex; flex-direction: column; gap: 6px; }
.tc-sp-quickbuy__cta table.variations tr { display: flex; flex-direction: column; gap: 4px; }
.tc-sp-quickbuy__cta table.variations td,
.tc-sp-quickbuy__cta table.variations th {
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.tc-sp-quickbuy__cta table.variations th.label label {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-2);
	font-weight: 500;
}
.tc-sp-quickbuy__cta table.variations td.value select {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 8px;
	background: var(--cream);
	font-family: var(--sans);
	font-size: 14px;
	color: var(--ink);
	cursor: pointer;
}
.tc-sp-quickbuy__cta .reset_variations { font-size: 11px; color: var(--salviaD); }
.tc-sp-quickbuy__cta .single_variation_wrap .woocommerce-variation-price {
	display: none; /* prezzo già nel __top */
}

.tc-sp-quickbuy__ship {
	margin: 12px 0 0;
	padding-top: 12px;
	border-top: 1px dashed var(--line-soft);
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.05em;
	color: var(--ink-2);
	line-height: 1.5;
}
.tc-sp-quickbuy__ship span { color: var(--mute); }

/* RESPONSIVE */
@media (max-width: 1100px) {
	.tc-sp-layout { grid-template-columns: 1fr; gap: 20px; }
	.tc-sp-gallery, .tc-sp-info { position: static; }
	.tc-sp-gallery__main { max-height: 560px; aspect-ratio: 1; }
	.tc-sp-quickbuy { display: block; }  /* mostra quickbuy quando layout collassa */
	/* Nascondi i duplicati nell'aside (titolo + cat + price + cta + tax sono già nel quickbuy) */
	.tc-sp-info__cat,
	.tc-sp-info__title,
	.tc-sp-info__price,
	.tc-sp-info__tax,
	.tc-sp-info__cta { display: none; }
	/* Riduci anche la rating section (ridondante sopra) */
	.tc-sp-info__rating { margin-top: 0; }
}
@media (max-width: 640px) {
	.tc-sp-hero { padding: 12px 0 22px; }
	.tc-sp-gallery__main { max-height: 420px; }
	.tc-sp-info__title { font-size: clamp(22px, 5.6vw, 28px); }
	.tc-sp-price__now { font-size: 26px; }
	.tc-sp-info__cta form.cart { flex-wrap: wrap; }
	.tc-sp-info__cta form.cart button.single_add_to_cart_button { flex: 1 1 100%; }
	.tc-sp-info__utils { flex-direction: column; align-items: flex-start; }
	.tc-sp-tabs__bar { overflow-x: auto; flex-wrap: nowrap; }
	.tc-sp-tabs__btn { white-space: nowrap; }
	.tc-sp-specs { grid-template-columns: 1fr; }
	.tc-sp-specs dt { padding: 10px 0 2px; border: 0; }
	.tc-sp-specs dd { padding: 0 0 10px; }
	.tc-sp-bundle__card { width: 140px; }
	.tc-sp-sticky__meta strong { max-width: 120px; font-size: 12px; }
	.tc-sp-sticky__thumb { width: 40px; height: 40px; }
	.tc-sp-sticky__btn { padding: 0 12px; min-width: 0; font-size: 12px; }
	.tc-sp-sticky__btn span { display: none; }   /* mobile: solo icona */
	.tc-sp-sticky__btn--variable span { display: inline; }  /* tranne per "Scegli opzioni" */
	.tc-sp-sticky__qty { height: 38px; }
	.tc-sp-sticky__qty-btn { width: 28px; height: 38px; }
	.tc-sp-sticky__qty input { width: 28px; height: 38px; font-size: 14px; }
}
@media (max-width: 420px) {
	.tc-sp-sticky__meta strong { max-width: 100px; }
	.tc-sp-sticky__qty { display: none; }  /* su schermi mini nascondi qty */
	.tc-sp-sticky__btn { padding: 0 10px; height: 38px; min-width: 44px; }
	.tc-sp-sticky__btn svg { width: 16px; height: 16px; }
}




/* =============================================================
   MARKETING TOOLS · wishlist, quick view, recently viewed,
   back-in-stock, volume discount table
   ============================================================= */

/* WISHLIST HEART su product card */
.tc-wishlist-heart {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 3;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 0;
	background: rgba(253,251,247, 0.95);
	color: var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	backdrop-filter: blur(4px);
	box-shadow: 0 2px 8px -4px rgba(44,42,36, 0.3);
	transition: background 180ms, color 180ms, transform 180ms;
}
.tc-wishlist-heart:hover {
	background: var(--cream);
	transform: scale(1.08);
}
.tc-wishlist-heart.is-on {
	background: var(--salviaD);
	color: var(--cream);
}
.tc-wishlist-heart.is-on svg {
	fill: currentColor;
}
/* Heart sul single product */
.tc-wishlist-heart.is-single {
	position: static;
	width: auto;
	height: auto;
	padding: 10px 18px;
	border-radius: 999px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	font-family: var(--sans);
	font-size: 13px;
	gap: 8px;
	box-shadow: none;
}
.tc-wishlist-heart.is-single:hover { border-color: var(--salviaD); }
.tc-wishlist-heart.is-single.is-on {
	background: color-mix(in oklch, var(--salviaD) 15%, var(--cream));
	color: var(--salviaD);
	border-color: var(--salviaD);
}
.tc-wishlist-heart__label { font-size: 13px; }

/* WISHLIST PAGE */
.tc-wishlist-hero {
	background: var(--cream);
	padding: 40px 0 20px;
	border-bottom: 1px solid var(--line-soft);
}
.tc-wishlist-hero__title {
	font-family: var(--serif);
	font-size: clamp(36px, 5vw, 52px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0;
	font-weight: 400;
}
.tc-wishlist-hero__title em { font-style: italic; color: var(--salviaD); }
.tc-wishlist-hero__sub {
	font-size: 14px;
	color: var(--ink-2);
	margin: 8px 0 0;
}
.tc-wishlist-main { padding: 32px 0 60px; background: var(--cream); }
.tc-wishlist-main .wrap { max-width: 1620px; padding: 0 clamp(20px, 3vw, 56px); }
.tc-wishlist-grid .products,
.tc-wishlist__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 18px;
}
.tc-wishlist-empty {
	text-align: center;
	padding: 60px 20px;
	max-width: 520px;
	margin: 0 auto;
}
.tc-wishlist-empty__icon { font-size: 54px; margin-bottom: 14px; }
.tc-wishlist-empty__title {
	font-family: var(--serif);
	font-size: clamp(26px, 3vw, 34px);
	margin: 0 0 10px;
	font-weight: 400;
	color: var(--ink);
}
.tc-wishlist-empty__text {
	font-size: 14px;
	color: var(--ink-2);
	margin: 0 0 22px;
	line-height: 1.55;
}
.tc-wishlist-empty__cta {
	display: inline-block;
	padding: 12px 24px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 180ms;
}
.tc-wishlist-empty__cta:hover { background: var(--salviaD); }
.tc-wishlist-loader { text-align: center; padding: 40px 20px; color: var(--mute); }
.tc-wishlist-loader__spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--paper-2);
	border-top-color: var(--salviaD);
	border-radius: 50%;
	margin: 0 auto 14px;
	animation: tc-spin 900ms linear infinite;
}
@keyframes tc-spin { to { transform: rotate(360deg); } }

/* QUICK VIEW button sulla card · icon+tag top-right della foto (no overlap) */
.tc-qv-trigger {
	position: absolute;
	top: 14px;
	right: 52px; /* lascia spazio al heart */
	padding: 7px 12px;
	background: rgba(253,251,247, 0.95);
	backdrop-filter: blur(6px);
	border: 0;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	opacity: 0;
	transform: translateX(8px);
	transition: opacity 180ms, transform 180ms, background 180ms;
	z-index: 3;
	box-shadow: 0 2px 8px -4px rgba(44,42,36, 0.3);
}
.tc-product-card:hover .tc-qv-trigger,
li.product:hover .tc-qv-trigger {
	opacity: 1;
	transform: translateX(0);
}
.tc-qv-trigger:hover { background: var(--ink); color: var(--cream); }
/* Quando card stretta (mobile), nascondi il testo, mantieni icona */
@media (max-width: 600px) {
	.tc-qv-trigger span { display: none; }
	.tc-qv-trigger { padding: 8px; }
}

/* QUICK VIEW MODAL */
.tc-qv-modal {
	position: fixed; inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 260ms ease;
}
.tc-qv-modal.is-open { opacity: 1; }
.tc-qv-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(44,42,36, 0.6);
	backdrop-filter: blur(4px);
	cursor: pointer;
}
.tc-qv-modal__card {
	position: relative;
	z-index: 1;
	background: var(--cream);
	border-radius: 14px;
	max-width: 860px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 40px 80px -30px rgba(44,42,36, 0.5);
	transform: scale(0.96) translateY(10px);
	transition: transform 260ms cubic-bezier(.2,.7,.2,1);
}
.tc-qv-modal.is-open .tc-qv-modal__card { transform: scale(1) translateY(0); }
.tc-qv-modal__close {
	position: absolute;
	top: 16px; right: 16px;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	color: var(--ink);
	font-size: 22px;
	cursor: pointer;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}
.tc-qv-modal__close:hover { background: var(--paper-2); }
.tc-qv-modal__body { padding: 0; }
.tc-qv-modal__loader {
	width: 40px;
	height: 40px;
	border: 3px solid var(--paper-2);
	border-top-color: var(--salviaD);
	border-radius: 50%;
	margin: 60px auto;
	animation: tc-spin 900ms linear infinite;
}
/* Quick view content */
.tc-qv {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 0;
}
.tc-qv__img {
	position: relative;
	background: var(--paper-2);
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 14px 0 0 14px;
}
.tc-qv__img img { width: 100%; height: 100%; object-fit: cover; }
.tc-qv__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 5px 11px;
	background: #B54A3B;
	color: var(--cream);
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	border-radius: 4px;
}
.tc-qv__info {
	padding: 28px 32px 28px 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-qv__cat {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0;
}
.tc-qv__cat a { color: inherit; text-decoration: none; }
.tc-qv__title {
	font-family: var(--serif);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 400;
	margin: 0;
	line-height: 1.1;
	color: var(--ink);
}
.tc-qv__rating {
	font-size: 12px;
	color: var(--mute);
	margin: 0;
}
.tc-qv__stars {
	color: var(--gold);
	font-size: 14px;
	background: linear-gradient(90deg, var(--gold) var(--pct, 0%), rgba(181,161,100,0.2) var(--pct, 0%));
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
}
.tc-qv__price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
.tc-qv__price del { font-size: 14px; color: var(--mute); }
.tc-qv__price strong {
	font-family: var(--serif);
	font-size: 26px;
	font-weight: 500;
	color: var(--ink);
}
.tc-qv__desc { font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.tc-qv__desc p { margin: 0 0 8px; }
.tc-qv__cta {
	display: flex;
	gap: 10px;
	margin-top: 6px;
	flex-wrap: wrap;
}
.tc-qv__btn {
	flex: 1;
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	text-align: center;
	transition: background 180ms;
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.tc-qv__btn--add { background: var(--ink); color: var(--cream); }
.tc-qv__btn--add:hover { background: var(--salviaD); }
.tc-qv__btn--details {
	background: transparent;
	border: 1px solid var(--line-soft);
	color: var(--ink);
}
.tc-qv__btn--details:hover { border-color: var(--ink); }
.tc-qv__mini-trust {
	font-family: var(--mono);
	font-size: 10px;
	color: var(--mute);
	letter-spacing: 0.04em;
	margin: 10px 0 0;
	text-transform: uppercase;
}
.tc-qv__oos {
	background: var(--paper-2);
	padding: 14px 16px;
	border-radius: 8px;
	margin-top: 6px;
}
.tc-qv__oos p { margin: 0 0 8px; font-size: 13px; color: var(--ink); }

/* BACK-IN-STOCK FORM */
.tc-bis-form label {
	display: block;
	font-size: 12px;
	color: var(--ink-2);
	margin-bottom: 6px;
	font-family: var(--sans);
}
.tc-bis-form__row { display: flex; gap: 6px; }
.tc-bis-form input[type="email"] {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	font-family: var(--sans);
	font-size: 13px;
	color: var(--ink);
}
.tc-bis-form input[type="email"]:focus {
	outline: 2px solid var(--salviaD);
	outline-offset: -1px;
	border-color: transparent;
}
.tc-bis-form button {
	padding: 10px 16px;
	background: var(--ink);
	color: var(--cream);
	border: 0;
	border-radius: 6px;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: background 180ms;
}
.tc-bis-form button:hover { background: var(--salviaD); }
.tc-bis-form__ok {
	padding: 12px 14px;
	background: color-mix(in oklch, var(--salviaD) 20%, var(--cream));
	border-radius: 6px;
	color: var(--salviaD);
	font-size: 13px;
	margin: 0;
}

/* VOLUME DISCOUNT TABLE */
.tc-vd-table {
	background: var(--paper-2);
	border-radius: 10px;
	padding: 14px 16px;
	margin: 8px 0;
}
.tc-vd-table__title {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 10px;
	font-weight: 600;
}
.tc-vd-table__rows {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.tc-vd-table__rows li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 12px;
	background: var(--cream);
	border-radius: 6px;
	font-size: 13px;
}
.tc-vd-table__qty { color: var(--ink-2); }
.tc-vd-table__pct {
	font-family: var(--mono);
	font-weight: 600;
	color: var(--salviaD);
	background: color-mix(in oklch, var(--salviaD) 15%, var(--cream));
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
}

/* Responsive quick view */
@media (max-width: 720px) {
	.tc-qv { grid-template-columns: 1fr; }
	.tc-qv__img { aspect-ratio: 16/9; border-radius: 14px 14px 0 0; max-height: 280px; }
	.tc-qv__info { padding: 22px 20px; }
}

/* TOAST system (riusa il marketing.css se presente, altrimenti base) */
.tc-toast.is-info { border-left-color: var(--cielo); }
.tc-toast.is-ok   { border-left-color: var(--salviaD); }


/* =============================================================
   MARKETING PRO · CSS aggiuntiva
   ============================================================= */

/* SEARCH AUTOCOMPLETE dropdown */
.tc-ac {
	position: absolute;
	top: calc(100% + 6px);
	left: 0; right: 0;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	box-shadow: 0 12px 32px -12px rgba(44,42,36, 0.3);
	max-height: 400px;
	overflow-y: auto;
	z-index: 50;
	padding: 6px;
}
.tc-ac__empty { padding: 14px; text-align: center; color: var(--mute); font-size: 13px; }
.tc-ac__label {
	display: block;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
	padding: 8px 10px 6px;
}
.tc-ac__section + .tc-ac__section { border-top: 1px dashed var(--line-soft); margin-top: 4px; padding-top: 4px; }
.tc-ac__item, .tc-ac__cat {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: 6px;
	text-decoration: none;
	color: var(--ink);
	transition: background 140ms;
}
.tc-ac__item:hover, .tc-ac__cat:hover { background: var(--paper-2); }
.tc-ac__item img { width: 40px; height: 40px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }
.tc-ac__body { display: flex; flex-direction: column; min-width: 0; }
.tc-ac__body strong { font-size: 13px; font-weight: 500; line-height: 1.2; }
.tc-ac__body small { font-size: 11px; color: var(--mute); font-family: var(--mono); }
.tc-ac__cat {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--salviaD);
}
.tc-ac__cat small { color: var(--mute); margin-left: 4px; }

/* WHATSAPP FLOATING BUTTON */
.tc-chat-wa {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 9990;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	background: #25D366;
	color: #fff;
	border-radius: 999px;
	text-decoration: none;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	box-shadow: 0 8px 24px -8px rgba(37, 211, 102, 0.6);
	transition: transform 180ms, box-shadow 180ms;
}
.tc-chat-wa:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -8px rgba(37, 211, 102, 0.75);
	color: #fff;
}
.tc-chat-wa__label { display: inline; }
@media (max-width: 480px) {
	.tc-chat-wa { padding: 12px; }
	.tc-chat-wa__label { display: none; }
}

/* POST-PURCHASE UPSELL */
.tc-pp-upsell {
	margin: 32px 0;
	padding: 32px 0;
	background: var(--paper-2);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-pp-upsell__head { text-align: center; margin-bottom: 22px; position: relative; }
.tc-pp-upsell__badge {
	display: inline-block;
	background: #B54A3B;
	color: var(--cream);
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	padding: 5px 11px;
	border-radius: 4px;
	margin-bottom: 8px;
}
.tc-pp-upsell__head h2 {
	font-family: var(--serif);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 400;
	margin: 0 0 6px;
	color: var(--ink);
}
.tc-pp-upsell__head p {
	font-size: 14px;
	color: var(--ink-2);
	margin: 0 auto;
	max-width: 500px;
}
.tc-pp-upsell__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	max-width: 860px;
	margin: 0 auto;
}
.tc-pp-upsell__card {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 14px;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.tc-pp-upsell__card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; }
.tc-pp-upsell__card h4 {
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	margin: 0;
	line-height: 1.3;
	min-height: 34px;
}
.tc-pp-upsell__prices { display: flex; justify-content: center; gap: 8px; align-items: baseline; }
.tc-pp-upsell__prices del { font-size: 13px; color: var(--mute); }
.tc-pp-upsell__prices strong { font-size: 18px; color: #B54A3B; font-family: var(--serif); font-weight: 500; }
.tc-pp-upsell__btn {
	display: block;
	padding: 10px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 180ms;
}
.tc-pp-upsell__btn:hover { background: var(--salviaD); }

/* EXIT-INTENT POPUP */
.tc-exit {
	position: fixed; inset: 0;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 260ms ease;
}
.tc-exit.is-open { opacity: 1; }
.tc-exit__backdrop {
	position: absolute; inset: 0;
	background: rgba(44,42,36, 0.7);
	backdrop-filter: blur(4px);
	cursor: pointer;
}
.tc-exit__card {
	position: relative;
	z-index: 1;
	background: var(--cream);
	border-radius: 16px;
	padding: 40px 36px;
	max-width: 460px;
	width: 100%;
	text-align: center;
	box-shadow: 0 40px 80px -30px rgba(44,42,36, 0.5);
	transform: scale(0.9) translateY(20px);
	transition: transform 320ms cubic-bezier(.2,.7,.2,1);
}
.tc-exit.is-open .tc-exit__card { transform: scale(1) translateY(0); }
.tc-exit__close {
	position: absolute;
	top: 12px; right: 12px;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: var(--paper-2);
	border: 0;
	font-size: 20px;
	cursor: pointer;
	color: var(--ink);
}
.tc-exit__tag {
	display: inline-block;
	background: var(--gold);
	color: var(--ink);
	padding: 5px 12px;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 14px;
	font-weight: 600;
}
.tc-exit__title {
	font-family: var(--serif);
	font-size: clamp(28px, 3.6vw, 36px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
	line-height: 1.1;
}
.tc-exit__text {
	font-size: 14px;
	color: var(--ink-2);
	line-height: 1.5;
	margin: 0 0 18px;
}
.tc-exit__code {
	background: var(--paper-2);
	border: 2px dashed var(--salviaD);
	border-radius: 10px;
	padding: 14px;
	margin: 0 0 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}
.tc-exit__code-label {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mute);
}
.tc-exit__code strong {
	font-family: var(--serif);
	font-size: 24px;
	color: var(--salviaD);
	letter-spacing: 0.04em;
}
.tc-exit__copy {
	padding: 8px 14px;
	background: var(--ink);
	color: var(--cream);
	border: 0;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 10px;
	cursor: pointer;
}
.tc-exit__cta {
	display: inline-block;
	padding: 13px 28px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: background 180ms;
}
.tc-exit__cta:hover { background: var(--salviaD); }

/* GIFT CARD field checkout */
.tc-gc-field summary {
	cursor: pointer;
	font-size: 13px;
	color: var(--salviaD);
	padding: 8px 0;
	list-style: none;
}
.tc-gc-field summary::-webkit-details-marker { display: none; }
.tc-gc-field summary::before { content: '+ '; font-weight: 600; }
.tc-gc-field[open] summary::before { content: '− '; }
.tc-gc-field__row { display: flex; gap: 6px; padding: 6px 0; }
.tc-gc-field__row input {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	font-family: var(--mono);
	text-transform: uppercase;
}
.tc-gc-field__msg { font-size: 12px; color: var(--salviaD); margin: 6px 0 0; }

/* LOYALTY */
.tc-loy-summary {
	background: var(--paper-2);
	padding: 14px 18px;
	border-radius: 10px;
	margin-bottom: 22px;
	border-left: 4px solid var(--gold);
}
.tc-loy-summary strong { display: block; font-size: 15px; color: var(--ink); }
.tc-loy-summary small { display: block; font-size: 12px; color: var(--mute); margin-top: 4px; }
.tc-loy-earn {
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gold);
	margin: 0;
}

/* REFERRAL box */
.tc-ref-box {
	background: var(--paper-2);
	padding: 18px 22px;
	border-radius: 10px;
	margin-bottom: 22px;
}
.tc-ref-box h3 {
	font-family: var(--serif);
	font-size: 20px;
	margin: 0 0 8px;
	font-weight: 400;
}
.tc-ref-box p { font-size: 13px; color: var(--ink-2); margin: 0 0 12px; }
.tc-ref-box__row { display: flex; gap: 6px; }
.tc-ref-box__row input {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 6px;
	background: var(--cream);
	font-family: var(--mono);
	font-size: 12px;
	color: var(--ink);
}
.tc-ref-box__code { font-size: 12px; color: var(--mute); margin: 10px 0 0; }
.tc-ref-box__code strong {
	background: var(--cream);
	padding: 3px 10px;
	border-radius: 4px;
	font-family: var(--mono);
	color: var(--salviaD);
}

/* REVIEW photo upload */
.comment-form-tc-photo {
	margin: 14px 0;
}
.comment-form-tc-photo label {
	display: block;
	font-size: 12px;
	color: var(--ink-2);
	margin-bottom: 6px;
}
.comment-form-tc-photo input[type="file"] {
	font-size: 12px;
	color: var(--ink-2);
}
.tc-review-photo-wrap {
	margin-top: 10px;
}
.tc-review-photo {
	max-width: 220px;
	border-radius: 8px;
	display: block;
}
.tc-review-verified {
	display: inline-block;
	background: color-mix(in oklch, var(--salviaD) 18%, var(--cream));
	color: var(--salviaD);
	padding: 2px 8px;
	border-radius: 4px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	margin-left: 8px;
}

/* =============================================================
   PAGES · Agriturismo · Caseificio · HoReCa · Contatti
   Stile pro webmaster, tipografia ricca, sezioni strutturate.
   ============================================================= */

/* Wrap largo per tutte le nuove pagine */
body.page-template-page-agriturismo .wrap,
body.page-template-page-caseificio .wrap,
body.page-template-page-horeca .wrap,
body.page-template-page-contatti .wrap {
	max-width: 1520px;
	padding-left: clamp(20px, 3vw, 56px);
	padding-right: clamp(20px, 3vw, 56px);
}

/* LABEL mono comune */
.tc-agri-label {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--salvia-ink);
	margin: 0 0 10px;
}

/* H2 comune */
.tc-agri-h2 {
	font-family: var(--serif);
	font-size: clamp(32px, 4.2vw, 52px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0 0 14px;
	color: var(--ink);
}
.tc-agri-h2 em { font-style: italic; color: var(--salviaD); }

/* BUTTONS comuni */
.tc-agri-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 24px;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background 180ms, transform 180ms, border-color 180ms;
	border: 0;
	line-height: 1;
}
.tc-agri-btn--primary {
	background: var(--ink);
	color: var(--cream);
}
.tc-agri-btn--primary:hover { background: var(--salviaD); transform: translateY(-2px); }
.tc-agri-btn--ghost {
	background: transparent;
	color: var(--ink);
	border: 1px solid var(--line-soft);
}
.tc-agri-btn--ghost:hover { border-color: var(--ink); background: var(--paper-2); }
.tc-agri-btn--wa {
	background: #25D366;
	color: #fff;
}
.tc-agri-btn--wa:hover { background: #1DA851; color: #fff; }

/* ============================================================
   AGRITURISMO
   ============================================================ */

/* HERO */
.tc-agri-hero {
	background: var(--cream);
	padding: 40px 0 50px;
	border-bottom: 1px solid var(--line-soft);
}
.tc-agri-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}
.tc-agri-hero__text { min-width: 0; }
.tc-agri-hero__tag {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0 0 16px;
}
.tc-agri-hero__title {
	font-family: var(--serif);
	font-size: clamp(42px, 6.2vw, 80px);
	line-height: 0.98;
	letter-spacing: -0.035em;
	font-weight: 400;
	margin: 0 0 20px;
	color: var(--ink);
}
.tc-agri-hero__title em { font-style: italic; color: var(--salviaD); }
.tc-agri-hero__sub {
	font-size: 16px;
	line-height: 1.55;
	color: var(--ink-2);
	margin: 0 0 26px;
	max-width: 520px;
}
.tc-agri-hero__stats {
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
	padding: 18px 0;
	border-top: 1px dashed var(--line-soft);
	border-bottom: 1px dashed var(--line-soft);
	margin-bottom: 26px;
}
.tc-agri-hero__stats > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tc-agri-hero__stats strong {
	font-family: var(--serif);
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
	color: var(--ink);
}
.tc-agri-hero__stats small {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
}
.tc-agri-hero__ctas {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.tc-agri-hero__img {
	position: relative;
	aspect-ratio: 4/5;
	background: var(--paper-2);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 20px 50px -25px rgba(44,42,36, 0.35);
}
.tc-agri-hero__image {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.tc-agri-hero__placeholder {
	width: 100%; height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 120px;
	color: rgba(44,42,36,0.12);
}
.tc-agri-hero__caption {
	position: absolute;
	bottom: 16px;
	left: 16px;
	background: rgba(253,251,247, 0.94);
	backdrop-filter: blur(8px);
	padding: 8px 14px;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
}
.tc-agri-hero__caption span { color: var(--salviaD); margin-right: 6px; }

/* STORY */
.tc-agri-story {
	padding: 60px 0;
	background: var(--cream);
	border-bottom: 1px solid var(--line-soft);
}
.tc-agri-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}
.tc-agri-prose {
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink-2);
	margin-top: 8px;
}
.tc-agri-prose p { margin: 0 0 14px; }
.tc-agri-highlights {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: var(--paper-2);
	border-radius: 14px;
	padding: 22px 24px;
}
.tc-agri-highlights li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.tc-agri-highlights li > span {
	font-size: 22px;
	flex-shrink: 0;
	line-height: 1;
	padding-top: 2px;
}
.tc-agri-highlights strong {
	display: block;
	font-size: 14px;
	color: var(--ink);
	font-weight: 500;
	margin-bottom: 2px;
}
.tc-agri-highlights small {
	display: block;
	font-size: 12px;
	color: var(--mute);
	line-height: 1.4;
}

/* MENU */
.tc-agri-menu {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-agri-menu__head { text-align: center; margin-bottom: 34px; max-width: 640px; margin-left: auto; margin-right: auto; }
.tc-agri-menu__sub {
	font-size: 14px;
	color: var(--ink-2);
	margin: 6px auto 0;
	max-width: 520px;
}
.tc-agri-menu__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-agri-menu__item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 18px 22px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
}
.tc-agri-menu__item h3 {
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 400;
	margin: 0 0 4px;
	color: var(--ink);
}
.tc-agri-menu__item p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.4;
}
.tc-agri-menu__price {
	font-family: var(--serif);
	font-size: 20px;
	color: var(--salviaD);
	font-weight: 500;
	white-space: nowrap;
}
.tc-agri-menu__foot {
	text-align: center;
	margin-top: 28px;
}

/* ROOMS */
.tc-agri-rooms {
	padding: 60px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-agri-rooms__head { text-align: center; margin-bottom: 30px; }
.tc-agri-rooms__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-agri-room {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 24px 22px;
	text-align: center;
}
.tc-agri-room__ico { font-size: 38px; margin-bottom: 10px; display: block; }
.tc-agri-room h3 {
	font-family: var(--serif);
	font-size: 19px;
	font-weight: 400;
	margin: 0 0 8px;
	color: var(--ink);
}
.tc-agri-room p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0 0 14px;
	min-height: 38px;
}
.tc-agri-room__price {
	padding-top: 12px;
	border-top: 1px dashed var(--line-soft);
}
.tc-agri-room__price strong {
	font-family: var(--serif);
	font-size: 24px;
	color: var(--salviaD);
	font-weight: 500;
}
.tc-agri-room__price small {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--mute);
	letter-spacing: 0.06em;
}
.tc-agri-rooms__foot {
	text-align: center;
	margin-top: 30px;
}
.tc-agri-note {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--mute);
	letter-spacing: 0.04em;
	margin: 16px 0 0;
}

/* ACTIVITIES */
.tc-agri-activ {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-agri-activ__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-agri-activ__item {
	display: flex;
	gap: 14px;
	padding: 20px 22px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 12px;
	align-items: flex-start;
}
.tc-agri-activ__ico {
	font-size: 28px;
	flex-shrink: 0;
	line-height: 1;
	padding-top: 4px;
}
.tc-agri-activ__item h3 {
	font-family: var(--serif);
	font-size: 17px;
	font-weight: 400;
	margin: 0 0 4px;
	color: var(--ink);
}
.tc-agri-activ__item p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.4;
}

/* REVIEWS */
.tc-agri-reviews {
	padding: 60px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-agri-reviews__head { text-align: center; margin-bottom: 34px; }
.tc-agri-reviews__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-agri-review {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-agri-review__stars { color: var(--gold); font-size: 16px; letter-spacing: 1px; }
.tc-agri-review p {
	font-family: var(--serif);
	font-size: 17px;
	line-height: 1.45;
	color: var(--ink);
	margin: 0;
	font-style: italic;
}
.tc-agri-review footer {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 12px;
	border-top: 1px dashed var(--line-soft);
}
.tc-agri-review footer strong { font-size: 13px; color: var(--ink); }
.tc-agri-review footer small { font-size: 11px; color: var(--mute); font-family: var(--mono); }

/* FAQ */
.tc-agri-faq {
	padding: 60px 0;
	background: var(--cream);
}
.tc-agri-faq__head { text-align: center; margin-bottom: 30px; }
.tc-agri-faq__list {
	max-width: 840px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.tc-agri-faq__item {
	background: var(--paper-2);
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--line-soft);
}
.tc-agri-faq__item summary {
	padding: 16px 22px;
	cursor: pointer;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 500;
	color: var(--ink);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.tc-agri-faq__item summary::-webkit-details-marker { display: none; }
.tc-agri-faq__item summary::after {
	content: '+';
	font-size: 22px;
	color: var(--salviaD);
	transition: transform 200ms;
}
.tc-agri-faq__item[open] summary::after { content: '−'; }
.tc-agri-faq__item p {
	padding: 0 22px 16px;
	font-size: 14px;
	color: var(--ink-2);
	line-height: 1.55;
	margin: 0;
}

/* BOTTOM CTA */
.tc-agri-cta {
	padding: 70px 0;
	background: var(--paper-2);
	border-top: 1px solid var(--line-soft);
}
.tc-agri-cta__box {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
	background: var(--cream);
	border-radius: 18px;
	padding: 46px 38px;
	box-shadow: 0 20px 50px -30px rgba(44,42,36, 0.3);
}
.tc-agri-cta__box h2 {
	font-family: var(--serif);
	font-size: clamp(28px, 3.6vw, 38px);
	font-weight: 400;
	margin: 0 0 10px;
	color: var(--ink);
}
.tc-agri-cta__box p {
	font-size: 15px;
	color: var(--ink-2);
	margin: 0 0 20px;
}
.tc-agri-cta__buttons {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================================
   CASEIFICIO
   ============================================================ */

/* Riusa hero + story struct */
.tc-cas-hero {
	background: var(--cream);
	padding: 40px 0 50px;
	border-bottom: 1px solid var(--line-soft);
}
.tc-cas-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}
.tc-cas-hero__text { min-width: 0; }
.tc-cas-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	padding: 18px 0;
	border-top: 1px dashed var(--line-soft);
	border-bottom: 1px dashed var(--line-soft);
	margin: 22px 0;
}
.tc-cas-hero__stats > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tc-cas-hero__stats strong {
	font-family: var(--serif);
	font-size: 26px;
	font-weight: 500;
	line-height: 1;
	color: var(--ink);
}
.tc-cas-hero__stats small {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mute);
}

/* Process steps */
.tc-cas-process {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-cas-process__list {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 900px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-cas-process__step {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 20px;
	padding: 20px 24px;
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 12px;
	align-items: flex-start;
}
.tc-cas-process__num {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--ink);
	color: var(--cream);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--serif);
	font-size: 22px;
	font-weight: 500;
	flex-shrink: 0;
}
.tc-cas-process__body h3 {
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 400;
	margin: 0 0 6px;
	color: var(--ink);
}
.tc-cas-process__body p {
	font-size: 14px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.55;
}

/* Prodotti grid */
.tc-cas-products {
	padding: 60px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-cas-products__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-cas-product {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 26px 24px;
	text-align: center;
}
.tc-cas-product__ico {
	display: inline-block;
	font-size: 36px;
	margin-bottom: 10px;
}
.tc-cas-product h3 {
	font-family: var(--serif);
	font-size: 19px;
	font-weight: 400;
	margin: 0 0 8px;
	color: var(--ink);
}
.tc-cas-product p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.5;
}

/* Certs */
.tc-cas-certs {
	padding: 50px 0;
	background: var(--paper-2);
}
.tc-cas-certs__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-cas-cert {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 12px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-start;
}
.tc-cas-cert__badge {
	background: var(--salviaD);
	color: var(--cream);
	padding: 6px 14px;
	border-radius: 6px;
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.tc-cas-cert p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.5;
}

/* Tour */
.tc-cas-tour {
	padding: 60px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
}
.tc-cas-tour__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
}
.tc-cas-tour__schedule {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 28px 32px;
}
.tc-cas-tour__schedule h3 {
	font-family: var(--serif);
	font-size: 22px;
	font-weight: 400;
	margin: 0 0 16px;
	color: var(--ink);
	padding-bottom: 12px;
	border-bottom: 1px dashed var(--line-soft);
}
.tc-cas-tour__schedule ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-cas-tour__schedule li {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 10px 0;
	border-bottom: 1px dashed var(--line-soft);
}
.tc-cas-tour__schedule li:last-child { border-bottom: 0; }
.tc-cas-tour__schedule strong {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--salviaD);
}
.tc-cas-tour__schedule span {
	font-family: var(--serif);
	font-size: 18px;
	color: var(--ink);
	font-weight: 500;
}
.tc-cas-tour__schedule small {
	font-size: 12px;
	color: var(--mute);
}

/* ============================================================
   HORECA
   ============================================================ */

.tc-hrc-hero {
	background: var(--ink);
	color: var(--cream);
	padding: 56px 0 64px;
}
.tc-hrc-hero__tag {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--gold);
	text-transform: uppercase;
	margin: 0 0 16px;
}
.tc-hrc-hero__title {
	font-family: var(--serif);
	font-size: clamp(40px, 6vw, 76px);
	line-height: 0.98;
	letter-spacing: -0.03em;
	font-weight: 400;
	margin: 0 0 18px;
	color: var(--cream);
	max-width: 880px;
}
.tc-hrc-hero__title em { font-style: italic; color: var(--gold); }
.tc-hrc-hero__sub {
	font-size: 17px;
	line-height: 1.55;
	color: rgba(253,251,247, 0.85);
	margin: 0 0 28px;
	max-width: 680px;
}
.tc-hrc-hero__targets {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
	max-width: 1000px;
}
.tc-hrc-hero__targets li {
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 10px 14px;
	background: rgba(253,251,247, 0.08);
	border-radius: 8px;
	font-size: 13px;
	color: rgba(253,251,247, 0.9);
}
.tc-hrc-hero__targets span { font-size: 18px; }

.tc-hrc-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: all 180ms;
	border: 0;
}
.tc-hrc-btn--primary {
	background: var(--gold);
	color: var(--ink);
}
.tc-hrc-btn--primary:hover { background: var(--cream); transform: translateY(-2px); }
.tc-hrc-btn--ghost {
	background: transparent;
	color: var(--cream);
	border: 1px solid rgba(253,251,247, 0.3);
}
.tc-hrc-btn--ghost:hover { border-color: var(--cream); background: rgba(253,251,247, 0.08); }

/* Benefits grid */
.tc-hrc-benefits {
	padding: 60px 0;
	background: var(--cream);
}
.tc-hrc-benefits__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
	max-width: 1200px;
	margin: 0 auto;
}
.tc-hrc-benefit {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 26px 24px;
}
.tc-hrc-benefit__ico { font-size: 32px; margin-bottom: 12px; display: block; }
.tc-hrc-benefit h3 {
	font-family: var(--serif);
	font-size: 19px;
	font-weight: 400;
	margin: 0 0 8px;
	color: var(--ink);
}
.tc-hrc-benefit p {
	font-size: 14px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.55;
}

/* Process */
.tc-hrc-process {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-hrc-process__list {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 1100px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	counter-reset: none;
}
.tc-hrc-process__list li {
	background: var(--cream);
	padding: 28px 24px;
	border-radius: 14px;
	text-align: left;
	border: 1px solid var(--line-soft);
	position: relative;
}
.tc-hrc-process__num {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: var(--salviaD);
	color: var(--cream);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 14px;
}
.tc-hrc-process__list h3 {
	font-family: var(--serif);
	font-size: 17px;
	font-weight: 500;
	margin: 0 0 6px;
}
.tc-hrc-process__list p {
	font-size: 13px;
	color: var(--ink-2);
	margin: 0;
	line-height: 1.5;
}

/* Testimonial */
.tc-hrc-testimonial {
	padding: 60px 0;
	background: var(--cream);
}
.tc-hrc-testimonial__card {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	gap: 32px;
	padding: 38px 42px;
	background: var(--paper-2);
	border-radius: 18px;
	align-items: center;
}
.tc-hrc-testimonial__card.has-img {
	grid-template-columns: 140px minmax(0, 1fr);
}
.tc-hrc-testimonial__card.no-img {
	grid-template-columns: minmax(0, 1fr);
	text-align: center;
	padding: 44px 48px;
}
.tc-hrc-testimonial__card.no-img blockquote { max-width: 720px; margin: 0 auto 18px; }
.tc-hrc-testimonial__body { min-width: 0; }
.tc-hrc-testimonial__img {
	width: 140px;
	height: 140px;
}
.tc-hrc-testimonial__img img {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.tc-hrc-testimonial blockquote {
	font-family: var(--serif);
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.4;
	font-style: italic;
	color: var(--ink);
	margin: 0 0 18px;
}
.tc-hrc-testimonial footer strong {
	display: block;
	font-size: 14px;
	color: var(--ink);
	font-weight: 600;
}
.tc-hrc-testimonial footer small {
	font-size: 12px;
	color: var(--mute);
	font-family: var(--mono);
}

/* Form */
.tc-hrc-form {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-hrc-form__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 48px;
	max-width: 1200px;
	margin: 0 auto;
	align-items: start;
}
.tc-hrc-form__intro {
	font-size: 14px;
	color: var(--ink-2);
	margin: 12px 0 24px;
	line-height: 1.5;
}
.tc-hrc-form__direct {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-hrc-form__direct li {
	display: grid;
	grid-template-columns: 32px 1fr;
	gap: 10px;
	padding: 12px 14px;
	background: var(--cream);
	border-radius: 10px;
	font-size: 13px;
	align-items: center;
}
.tc-hrc-form__direct li span { font-size: 20px; grid-row: span 2; }
.tc-hrc-form__direct li strong { font-size: 12px; font-weight: 600; color: var(--mute); display: block; }
.tc-hrc-form__direct li a { font-family: var(--mono); color: var(--salviaD); text-decoration: none; }
.tc-hrc-form__direct li a:hover { color: var(--ink); text-decoration: underline; }

.tc-hrc-form__form {
	background: var(--cream);
	border-radius: 16px;
	padding: 28px 32px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-hrc-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.tc-hrc-form__form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	color: var(--ink-2);
}
.tc-hrc-form__form label span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-transform: uppercase;
}
.tc-hrc-form__form input,
.tc-hrc-form__form select,
.tc-hrc-form__form textarea {
	padding: 11px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 8px;
	background: var(--cream);
	font-family: var(--sans);
	font-size: 14px;
	color: var(--ink);
	width: 100%;
}
.tc-hrc-form__form input:focus,
.tc-hrc-form__form select:focus,
.tc-hrc-form__form textarea:focus {
	outline: 2px solid var(--salviaD);
	outline-offset: -1px;
	border-color: transparent;
}
.tc-hrc-form__checkbox {
	flex-direction: row !important;
	align-items: flex-start !important;
	font-size: 12px !important;
	color: var(--ink-2) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.tc-hrc-form__checkbox input { width: auto !important; margin: 0 !important; }
.tc-hrc-form__checkbox span { font-family: var(--sans) !important; font-size: 12px !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ink-2) !important; }
.tc-hrc-form__note {
	font-size: 12px;
	color: var(--mute);
	margin: 0;
	font-family: var(--mono);
}

/* ============================================================
   CONTATTI
   ============================================================ */

.tc-ctn-hero {
	background: var(--cream);
	padding: 50px 0 30px;
	border-bottom: 1px solid var(--line-soft);
	text-align: center;
}
.tc-ctn-hero__title {
	font-family: var(--serif);
	font-size: clamp(42px, 6vw, 74px);
	line-height: 1;
	letter-spacing: -0.03em;
	font-weight: 400;
	margin: 0 0 14px;
	color: var(--ink);
}
.tc-ctn-hero__title em { font-style: italic; color: var(--salviaD); }
.tc-ctn-hero__sub {
	font-size: 15px;
	color: var(--ink-2);
	max-width: 540px;
	margin: 0 auto;
}

/* Quick channels */
.tc-ctn-channels {
	padding: 36px 0;
	background: var(--cream);
	border-bottom: 1px solid var(--line-soft);
}
.tc-ctn-channels__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	max-width: 1100px;
	margin: 0 auto;
}
.tc-ctn-ch {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: center;
	padding: 16px 18px;
	background: var(--paper-2);
	border-radius: 12px;
	text-decoration: none;
	color: var(--ink);
	transition: background 180ms, transform 180ms;
	min-width: 0;
}
.tc-ctn-ch:hover {
	background: color-mix(in oklch, var(--paper-2) 80%, var(--salviaD));
	transform: translateY(-2px);
}
.tc-ctn-ch--wa { background: color-mix(in oklch, #25D366 18%, var(--cream)); }
.tc-ctn-ch__ico {
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
}
.tc-ctn-ch__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tc-ctn-ch__body strong {
	font-size: 14px;
	color: var(--ink);
	font-weight: 500;
	line-height: 1.2;
}
.tc-ctn-ch__body small {
	font-size: 12px;
	color: var(--mute);
	font-family: var(--mono);
	line-height: 1.3;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.tc-ctn-ch__go {
	font-size: 20px;
	color: var(--salviaD);
	flex-shrink: 0;
}

/* Info blocks */
.tc-ctn-info {
	padding: 40px 0;
	background: var(--cream);
}
.tc-ctn-info__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
	max-width: 1100px;
	margin: 0 auto 28px;
}
.tc-ctn-info__block {
	background: var(--paper-2);
	border-radius: 14px;
	padding: 22px 24px;
}
.tc-ctn-info__block h3 {
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 400;
	margin: 0 0 10px;
	color: var(--ink);
}
.tc-ctn-info__block p,
.tc-ctn-info__block address {
	font-size: 14px;
	color: var(--ink-2);
	margin: 0 0 10px;
	font-style: normal;
	line-height: 1.55;
}
.tc-ctn-info__block .mono { font-family: var(--mono); font-size: 12px; }
.tc-ctn-info__block a { color: var(--salviaD); text-decoration: none; border-bottom: 1px dashed; }

.tc-ctn-map {
	max-width: 1100px;
	margin: 0 auto;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 30px -18px rgba(44,42,36, 0.3);
}
.tc-ctn-map iframe { display: block; }

/* Form contatto */
.tc-ctn-form {
	padding: 60px 0;
	background: var(--paper-2);
}
.tc-ctn-form__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto;
	align-items: start;
}
.tc-ctn-form__form {
	background: var(--cream);
	border-radius: 16px;
	padding: 28px 32px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tc-ctn-form__form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	color: var(--ink-2);
}
.tc-ctn-form__form label span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-transform: uppercase;
}
.tc-ctn-form__form input,
.tc-ctn-form__form select,
.tc-ctn-form__form textarea {
	padding: 11px 14px;
	border: 1px solid var(--line-soft);
	border-radius: 8px;
	background: var(--cream);
	font-family: var(--sans);
	font-size: 14px;
	color: var(--ink);
	width: 100%;
}

/* ============================================================
   RESPONSIVE comune 4 pagine
   ============================================================ */
@media (max-width: 1000px) {
	.tc-agri-hero__grid,
	.tc-cas-hero__grid,
	.tc-agri-story__grid,
	.tc-cas-tour__grid,
	.tc-hrc-form__grid,
	.tc-ctn-form__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.tc-cas-hero__stats { grid-template-columns: repeat(2, 1fr); }
	.tc-hrc-testimonial__card { grid-template-columns: 1fr; text-align: center; }
	.tc-hrc-testimonial__img img { margin: 0 auto; }
	.tc-cas-process__step { grid-template-columns: 48px 1fr; }
}
@media (max-width: 640px) {
	.tc-agri-hero,
	.tc-cas-hero,
	.tc-hrc-hero,
	.tc-ctn-hero { padding: 30px 0; }
	.tc-agri-hero__stats,
	.tc-cas-hero__stats { gap: 14px; }
	.tc-hrc-form__row { grid-template-columns: 1fr; }
	.tc-agri-menu__item { flex-direction: column; align-items: flex-start; gap: 8px; }
	.tc-ctn-ch { grid-template-columns: 34px 1fr auto; padding: 14px 16px; }
}

/* =============================================================
   AGRI MENULINK (card unica per link menu PDF)
   ============================================================= */
.tc-agri-menulink {
	padding: 50px 0;
	background: var(--paper-2);
}
.tc-agri-menulink__card {
	max-width: 1000px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 32px;
	align-items: center;
	background: var(--cream);
	border-radius: 18px;
	padding: 36px 40px;
	box-shadow: 0 20px 50px -30px rgba(44,42,36, 0.25);
}
.tc-agri-menulink__card h2 { margin: 0 0 10px; }
.tc-agri-menulink__card p {
	font-size: 15px;
	color: var(--ink-2);
	margin: 0;
	max-width: 500px;
	line-height: 1.55;
}
@media (max-width: 720px) {
	.tc-agri-menulink__card { grid-template-columns: 1fr; text-align: center; padding: 28px 24px; }
}

/* =============================================================
   EVENTS · 3 templates (split, cards, banner)
   ============================================================= */

/* SHARED */
.tc-events {
	padding: 60px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-events__head {
	text-align: center;
	margin-bottom: 36px;
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
}
.tc-events__tag {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--salviaD);
	text-transform: uppercase;
	margin: 0 0 8px;
}
.tc-events__title {
	font-family: var(--serif);
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
	margin: 0 0 10px;
	color: var(--ink);
}
.tc-events__sub {
	font-size: 15px;
	color: var(--ink-2);
	margin: 0 auto;
	max-width: 520px;
	line-height: 1.55;
}

.tc-events__h3 {
	font-family: var(--serif);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 400;
	margin: 6px 0 8px;
	color: var(--ink);
	line-height: 1.2;
}
.tc-events__date {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0 0 4px;
}
.tc-events__subtitle {
	font-size: 15px;
	color: var(--ink-2);
	margin: 0 0 12px;
	line-height: 1.5;
}
.tc-events__text {
	font-size: 14px;
	color: var(--ink-2);
	line-height: 1.55;
	margin-bottom: 14px;
}
.tc-events__text p:last-child { margin-bottom: 0; }
.tc-events__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 24px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 999px;
	text-decoration: none;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	transition: background 180ms, transform 180ms;
}
.tc-events__cta:hover {
	background: var(--salviaD);
	transform: translateY(-2px);
	color: var(--cream);
}
.tc-events__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 80px;
	color: rgba(44,42,36, 0.15);
	background: var(--paper-2);
}

/* TEMPLATE 1 · split alternato */
.tc-events__splits {
	display: flex;
	flex-direction: column;
	gap: 48px;
	max-width: 1200px;
	margin: 0 auto;
}
.tc-events__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 44px;
	align-items: center;
}
.tc-events__split.is-flip .tc-events__split-img { order: 2; }
.tc-events__split.is-flip .tc-events__split-body { order: 1; }
.tc-events__split-img {
	aspect-ratio: 4/3;
	background: var(--paper-2);
	border-radius: 14px;
	overflow: hidden;
}
.tc-events__split-img img,
.tc-events__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* TEMPLATE 2 · card grid */
.tc-events__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	max-width: 1200px;
	margin: 0 auto;
}
.tc-events__card {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 14px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 220ms, box-shadow 220ms;
}
.tc-events__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -20px rgba(44,42,36, 0.3);
}
.tc-events__card-img {
	position: relative;
	aspect-ratio: 16/10;
	background: var(--paper-2);
	overflow: hidden;
}
.tc-events__card-img img { width: 100%; height: 100%; object-fit: cover; }
.tc-events__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(253,251,247, 0.95);
	backdrop-filter: blur(6px);
	padding: 6px 12px;
	border-radius: 999px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--ink);
	font-weight: 600;
}
.tc-events__card-body {
	padding: 22px 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.tc-events__card-body .tc-events__cta { align-self: flex-start; margin-top: auto; }

/* TEMPLATE 3 · banner full-width */
.tc-events__banners {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 1200px;
	margin: 0 auto;
}
.tc-events__banner {
	background: var(--ink);
	background-size: cover;
	background-position: center;
	border-radius: 18px;
	overflow: hidden;
	min-height: 300px;
	display: flex;
	align-items: center;
	padding: 48px 56px;
}
.tc-events__banner-body {
	color: var(--cream);
	max-width: 600px;
}
.tc-events__banner-body .tc-events__date { color: var(--gold); }
.tc-events__banner-body .tc-events__h3 { color: var(--cream); }
.tc-events__banner-body .tc-events__subtitle { color: rgba(253,251,247, 0.85); }
.tc-events__banner-body .tc-events__cta { background: var(--gold); color: var(--ink); }
.tc-events__banner-body .tc-events__cta:hover { background: var(--cream); color: var(--ink); }

/* Responsive */
@media (max-width: 900px) {
	.tc-events__split { grid-template-columns: 1fr; gap: 24px; }
	.tc-events__split.is-flip .tc-events__split-img { order: 1; }
	.tc-events__split.is-flip .tc-events__split-body { order: 2; }
	.tc-events__banner { padding: 32px 28px; min-height: 240px; }
}

/* =============================================================
   TROVARCI · sezione home "come trovarci" pulita
   ============================================================= */
.tc-trovarci-sec {
	padding: 70px 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	border-bottom: 1px solid var(--line-soft);
}
.tc-trovarci-sec .wrap {
	max-width: 1620px !important;
	width: 100%;
	padding-left: clamp(20px, 3vw, 56px) !important;
	padding-right: clamp(20px, 3vw, 56px) !important;
	margin: 0 auto;
}
.tc-trovarci-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 32px;
	padding-bottom: 18px;
	border-bottom: 1px dashed var(--line-soft);
}
.tc-trovarci-label {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0 0 8px;
}
.tc-trovarci-title {
	font-family: var(--serif);
	font-size: clamp(36px, 5vw, 58px);
	line-height: 1;
	letter-spacing: -0.025em;
	font-weight: 400;
	margin: 0;
	color: var(--ink);
}
.tc-trovarci-title em { font-style: italic; color: var(--salviaD); }
.tc-trovarci-meta {
	text-align: right;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--mute);
	text-transform: uppercase;
}
.tc-trovarci-meta span { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; }

.tc-trovarci-body {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 48px;
	align-items: stretch;
}
.tc-trovarci-map {
	background: var(--paper-2);
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 16/11;
	position: relative;
}
.tc-trovarci-map > * { width: 100%; height: 100%; display: block; }
.tc-trovarci-map iframe, .tc-trovarci-map img {
	border-radius: 16px;
	width: 100%; height: 100%;
}

.tc-trovarci-info {
	display: flex;
	flex-direction: column;
	gap: 22px;
	justify-content: center;
}
.tc-trovarci-block {}
.tc-trovarci-h3 {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--salviaD);
	margin: 0 0 10px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.tc-trovarci-addr {
	font-style: normal;
	font-family: var(--serif);
	font-size: 20px;
	line-height: 1.4;
	color: var(--ink);
	margin: 0;
}
.tc-trovarci-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.tc-trovarci-list li {
	padding: 10px 14px;
	background: var(--paper-2);
	border-radius: 8px;
	font-size: 14px;
	color: var(--ink-2);
	line-height: 1.5;
}
.tc-trovarci-cta {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 4px;
}
.tc-trovarci-btn {
	padding: 12px 22px;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid var(--line-soft);
	color: var(--ink);
	background: var(--cream);
	transition: background 180ms, border-color 180ms, transform 180ms;
}
.tc-trovarci-btn:hover { border-color: var(--ink); background: var(--paper-2); transform: translateY(-2px); }
.tc-trovarci-btn--primary {
	background: var(--ink);
	color: var(--cream);
	border-color: var(--ink);
}
.tc-trovarci-btn--primary:hover { background: var(--salviaD); border-color: var(--salviaD); color: var(--cream); }

@media (max-width: 900px) {
	.tc-trovarci-body { grid-template-columns: 1fr; gap: 24px; }
	.tc-trovarci-head { flex-direction: column; align-items: flex-start; }
	.tc-trovarci-meta { text-align: left; }
}

/* Product card responsive: su viewport stretti, CTA leggermente più piccolo */
@media (max-width: 500px) {
	.tc-product-card__cta { width: 36px; height: 36px; }
}
/* Fix wishlist + qv-trigger NON clickable as <a> parent event propagation */
.tc-product-card__photo { position: relative; display: block; }
.tc-product-card .tc-wishlist-heart,
.tc-product-card .tc-qv-trigger { pointer-events: auto; }

/* =============================================================
   CART · STICKY MOBILE BAR (conversione) + micro-opt
   ============================================================= */
.tc-cart-stickybar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	box-shadow: 0 -14px 36px -18px rgba(44,42,36, 0.28);
	z-index: 90;
	padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 0px));
	display: none;  /* visibile solo mobile via media query */
	box-sizing: border-box;
	max-width: 100vw;
	overflow: hidden;
}
.tc-cart-stickybar .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	max-width: 1820px;
	padding-left: 12px;
	padding-right: 12px;
	box-sizing: border-box;
	width: 100%;
	margin: 0 auto;
	min-width: 0;
}
.tc-cart-stickybar__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.tc-cart-stickybar__count {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mute);
}
.tc-cart-stickybar__total {
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 500;
	color: var(--ink);
	line-height: 1;
}
.tc-cart-stickybar__total .amount { font-weight: inherit; color: inherit; }
.tc-cart-stickybar__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 22px;
	height: 48px;
	background: var(--ink);
	color: var(--cream) !important;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background 180ms, transform 180ms;
	flex-shrink: 0;
	min-width: 150px;
	box-shadow: 0 6px 18px -6px rgba(44,42,36, 0.4);
}
.tc-cart-stickybar__btn:hover { background: var(--salviaD); transform: translateY(-1px); }
.tc-cart-stickybar__trust {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-align: center;
	margin: 6px 0 0;
	padding: 0 16px;
}
body.woocommerce-cart { padding-bottom: 0; }

/* MOBILE: attiva sticky bar + padding bottom body */
@media (max-width: 1000px) {
	.tc-cart-stickybar { display: block; }
	body.woocommerce-cart { padding-bottom: 110px; }
}
@media (max-width: 500px) {
	.tc-cart-stickybar__btn { min-width: 0; padding: 0 16px; font-size: 14px; }
	.tc-cart-stickybar__trust { font-size: 9px; letter-spacing: 0.04em; }
}

/* =============================================================
   CHECKOUT · STICKY MOBILE BAR (conversione)
   ============================================================= */
.tc-co-stickybar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--cream);
	border-top: 1px solid var(--line-soft);
	box-shadow: 0 -14px 36px -18px rgba(44,42,36, 0.28);
	z-index: 90;
	padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 0px));
	display: none;
	box-sizing: border-box;
	max-width: 100vw;
	overflow: hidden;
}
.tc-co-stickybar .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	max-width: 1620px;
	padding-left: 12px;
	padding-right: 12px;
	box-sizing: border-box;
	width: 100%;
	margin: 0 auto;
	min-width: 0;
}
.tc-co-stickybar__summary {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--paper-2);
	border: 0;
	padding: 8px 14px;
	border-radius: 999px;
	cursor: pointer;
	min-width: 0;
	flex: 1;
	max-width: 60%;
	color: var(--ink);
	transition: background 180ms;
}
.tc-co-stickybar__summary:hover { background: color-mix(in oklch, var(--paper-2) 80%, var(--salviaD)); }
.tc-co-stickybar__ico { font-size: 16px; flex-shrink: 0; }
.tc-co-stickybar__info {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
	text-align: left;
}
.tc-co-stickybar__info strong {
	font-family: var(--serif);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink);
	line-height: 1;
	white-space: nowrap;
}
.tc-co-stickybar__info strong .amount, .tc-co-stickybar__info strong bdi { font-weight: inherit; color: inherit; }
.tc-co-stickybar__info small {
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.tc-co-stickybar__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 22px;
	height: 48px;
	background: var(--ink);
	color: var(--cream) !important;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	border: 0;
	cursor: pointer;
	transition: background 180ms, transform 180ms;
	flex-shrink: 0;
	min-width: 130px;
	box-shadow: 0 6px 18px -6px rgba(44,42,36, 0.4);
}
.tc-co-stickybar__btn:hover { background: var(--salviaD); transform: translateY(-1px); }
.tc-co-stickybar__trust {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--mute);
	text-align: center;
	margin: 6px 0 0;
	padding: 0 16px;
}

/* MOBILE: attiva + padding-bottom al body */
@media (max-width: 1000px) {
	.tc-co-stickybar { display: block; }
	body.woocommerce-checkout { padding-bottom: 120px; }
}
@media (max-width: 500px) {
	.tc-co-stickybar__summary { max-width: 50%; padding: 6px 10px; }
	.tc-co-stickybar__info strong { font-size: 15px; }
	.tc-co-stickybar__btn { min-width: 0; padding: 0 16px; font-size: 14px; }
	.tc-co-stickybar__btn span { display: inline; }
}
@media (max-width: 380px) {
	.tc-co-stickybar__summary small { display: none; }
	.tc-co-stickybar__btn span { display: none; }
	.tc-co-stickybar__btn { padding: 0 14px; min-width: 48px; }
}

/* =============================================================
   CHECKOUT · micro-opt conversione desktop + mobile
   ============================================================= */

/* Desktop: totale + CTA sempre visibili nella sidebar sticky */
@media (min-width: 1001px) {
	.tc-co-summary__col .tc-co-summary { position: sticky; top: 80px; }
}

/* Mobile: sezione pagamento (con #order_review) più visibile */
@media (max-width: 1000px) {
	.tc-co-summary__col { order: -1; }  /* summary sopra il form */
	.tc-co-summary__col .tc-co-summary {
		position: static;
		margin-bottom: 16px;
	}
	/* Items compatti su mobile */
	.tc-co-items { max-height: 220px; }
	.tc-co-item__name { font-size: 13px; }
}

/* Hide le 2 bar contemporaneamente se sidebar aperta via toggle */
.tc-co-stickybar.is-hidden { transform: translateY(110%); pointer-events: none; }

/* Focus visibile più accessible per form checkout */
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus {
	outline: 2px solid var(--salviaD) !important;
	outline-offset: 2px;
}

/* Cart: items mobile anche sotto 1000 per compattezza */
@media (max-width: 640px) {
	.tc-cart-items__head { padding: 8px 0 10px; }
	.tc-cart-items__count { font-size: 16px; }
}

/* Cart sidebar collassa a desktop solo: su mobile nasconde duplicazione (ha già lo stickybar) */
@media (max-width: 1000px) {
	/* Il summary già si sposta in cima al layout */
	.tc-cart-summary .tc-cart-summary__checkout { display: none; }  /* sticky ATC prende il posto */
	.tc-cart-aside__trust { display: none; }  /* trust è nella sticky bar */
}

/* Desktop: trust row sotto il bottone "Procedi al checkout" */
@media (min-width: 1001px) {
	.tc-cart-summary__checkout::after {
		content: '🔒 Pagamento sicuro · ❄ Refrigerata 48h · ↺ Sostituzione garantita';
		display: block;
		font-family: var(--mono);
		font-size: 10px;
		letter-spacing: 0.06em;
		color: var(--mute);
		text-align: center;
		margin-top: 10px;
		line-height: 1.5;
	}
}

/* =============================================================
   GATEWAY COMPATIBILITY · Express payment + BNPL slots
   ============================================================= */

/* EXPRESS PAYMENTS slot sopra form checkout (Apple/Google Pay, PayPal, Shop Pay) */
.tc-co-express {
	max-width: 1620px;
	margin: 0 auto 20px;
	padding: 0 clamp(20px, 3vw, 56px);
}
.tc-co-express:empty { display: none; }
.tc-co-express > *:not(:empty) {
	background: var(--cream);
	border: 1px solid var(--line-soft);
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 8px;
}
/* I bottoni Apple/Google Pay e simili vogliono altezza minima e largo */
.tc-co-express button,
.tc-co-express .apple-pay-button,
.tc-co-express .gpay-button,
.tc-co-express .stripe-express-checkout-element {
	min-height: 48px !important;
	width: 100% !important;
	margin-bottom: 8px;
}
.tc-co-express::before {
	content: 'Pagamento rapido';
	display: block;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mute);
	margin-bottom: 8px;
	text-align: center;
}
.tc-co-express:empty::before { display: none; }

/* BNPL messaging slot sul single product (sotto prezzo/CTA) */
.tc-sp-info__bnpl {
	min-height: 0;
}
.tc-sp-info__bnpl:empty { display: none; }
.tc-sp-info__bnpl > *:not(:empty) {
	padding: 10px 14px;
	background: color-mix(in oklch, var(--salviaD) 8%, var(--cream));
	border: 1px dashed var(--salviaD);
	border-radius: 8px;
	font-size: 13px;
	color: var(--ink);
	margin-top: 4px;
}

/* Cart · express payment slot sotto "Procedi al checkout" */
.tc-cart-express-gateway-slot:empty { display: none; }
.tc-cart-express-gateway-slot {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--line-soft);
}
.tc-cart-express-gateway-slot > *:not(:empty) {
	min-height: 44px !important;
	width: 100% !important;
}

/* Sticky bar nascosta quando un gateway modal è attivo (overlap prevention) */
.tc-cart-stickybar.is-hidden,
.tc-co-stickybar.is-hidden {
	transform: translateY(110%);
	pointer-events: none;
	transition: transform 280ms cubic-bezier(.2,.7,.2,1);
}

/* Z-index safe: sticky bars sotto modal gateway (che di solito hanno z>=99999) */
.tc-cart-stickybar, .tc-co-stickybar, .tc-sp-sticky { z-index: 90; }

/* =============================================================
   CART/CHECKOUT MOBILE · semplifica header (solo marquee essenziale)
   ============================================================= */
@media (max-width: 1000px) {
	/* Nascondi in cart/checkout mobile: announcement bar + checkout banner top */
	body.woocommerce-cart .tc-announce,
	body.woocommerce-checkout .tc-announce,
	body.woocommerce-checkout .tc-co-banner {
		display: none !important;
	}
}
/* DESKTOP: nasconde la marquee in cart/checkout (rumore visivo) */
@media (min-width: 1001px) {
	body.woocommerce-cart .marquee,
	body.woocommerce-checkout .marquee {
		display: none;
	}
}

/* ============================================================
   HORECA · SUPER MOBILE FRIENDLY
   (override finale: ultime regole tc-hrc del file → vincono la cascade)
   ============================================================ */
@media (max-width: 768px) {
	/* HERO */
	.tc-hrc-hero { padding: 40px 0 44px; }
	.tc-hrc-hero__title { font-size: clamp(32px, 8.5vw, 54px); line-height: 1.03; }
	.tc-hrc-hero__sub { font-size: 15px; margin-bottom: 22px; }
	.tc-hrc-hero__targets { gap: 8px; margin-bottom: 22px; }

	/* CTA hero: bottoni impilati a tutta larghezza, tap-target ampio */
	.tc-hrc-hero .tc-agri-hero__ctas {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.tc-hrc-hero .tc-hrc-btn,
	.tc-hrc-b2bcta .tc-hrc-btn,
	.tc-hrc-form .tc-hrc-btn {
		width: 100%;
		justify-content: center;
		min-height: 52px;
		padding: 15px 20px;
		font-size: 15px;
		word-break: break-word;
	}

	/* SEZIONI: meno padding verticale */
	.tc-hrc-benefits,
	.tc-hrc-process,
	.tc-hrc-testimonial,
	.tc-hrc-form { padding: 42px 0; }
	.tc-hrc-benefit { padding: 22px 20px; }
	.tc-hrc-process__list li { padding: 22px 20px; }

	/* FORM: input >=16px = niente zoom automatico iOS al focus */
	.tc-hrc-form__form { padding: 22px 20px; gap: 12px; }
	.tc-hrc-form__form input,
	.tc-hrc-form__form select,
	.tc-hrc-form__form textarea {
		font-size: 16px;
		padding: 13px 14px;
		min-height: 48px;
	}
	.tc-hrc-form__form textarea { min-height: 92px; }

	/* CTA band Portale B2B: testo + bottone impilati (override inline flex) */
	.tc-hrc-b2bcta { padding: 38px 0 !important; }
	.tc-hrc-b2bcta > .wrap > div { flex-direction: column; align-items: stretch !important; }
	.tc-hrc-b2bcta > .wrap > div > div { max-width: 100% !important; }
}

@media (max-width: 480px) {
	.tc-hrc-hero { padding: 30px 0 34px; }
	.tc-hrc-hero__tag { font-size: 10px; margin-bottom: 12px; }
	.tc-hrc-hero__title { font-size: clamp(27px, 9vw, 40px); }
	.tc-hrc-hero__sub { font-size: 14px; }
	.tc-hrc-hero__targets li { font-size: 13px; padding: 11px 13px; }

	/* email/PDF nei CTA: nessun overflow orizzontale su schermi stretti */
	.tc-hrc-hero .tc-hrc-btn { font-size: 14px; padding: 14px 16px; overflow-wrap: anywhere; }

	.tc-hrc-benefits,
	.tc-hrc-process,
	.tc-hrc-testimonial,
	.tc-hrc-form { padding: 34px 0; }
	.tc-hrc-benefit__ico { font-size: 28px; }
	.tc-hrc-benefit h3 { font-size: 18px; }
	.tc-hrc-process__num { width: 38px; height: 38px; font-size: 18px; }

	.tc-hrc-testimonial__card { padding: 26px 22px !important; }
	.tc-hrc-form__form { padding: 20px 16px; }

	/* contatti diretti: email/whatsapp lunghi vanno a capo */
	.tc-hrc-form__direct li { grid-template-columns: 26px 1fr; padding: 11px 12px; }
	.tc-hrc-form__direct li a { overflow-wrap: anywhere; word-break: break-word; }

	/* CTA band: titolo più contenuto */
	.tc-hrc-b2bcta .tc-agri-h2 { font-size: clamp(24px, 7vw, 32px); }
}
/* MOBILE: la marquee resta visibile SOLO in cart/checkout, nelle altre pagine è come sempre */
/* (non serve nulla, la marquee è visibile di default ovunque — lasciamo così) */
