/* =========================================================================
 * ShopCraft Shopify Style — frontend stylesheet
 *
 * Layout: 2-col (gallery + info) above ~960px, stacked below.
 * Tutto scoped sotto .sc-product per non rompere il resto del tema.
 * ========================================================================= */

:root {
	--sc-primary: #B8902F;
	--sc-accent: #9E3B4E;
	--sc-discount-bg: #9E3B4E;
	--sc-sale-bg: #B8902F;
	--sc-text: #1f1f1f;
	--sc-muted: #6b6b6b;
	--sc-border: #e9e6e1;
	--sc-bg: #ffffff;
	--sc-bg-soft: #fafaf7;
	--sc-radius: 8px;
	--sc-radius-lg: 14px;
	--sc-heading-font: 'Playfair Display', Georgia, serif;
}

/* ==== Reset/scope ==== */
.sc-product, .sc-product * ,
.sc-cart-page, .sc-cart-page *,
.sc-checkout-page, .sc-checkout-page *,
.sc-archive, .sc-archive *,
.sc-account, .sc-account *,
.sc-thankyou, .sc-thankyou *,
.sc-side-cart, .sc-side-cart * {
	box-sizing: border-box;
}

/* Reset titoli dentro i nostri template — alcuni temi (Astra, Hello Elementor,
   Twenty-XX) hanno regole molto aggressive su h1-h6 con background, padding,
   border, text-transform che rompono il nostro layout. Resettiamo. */
.sc-product h1, .sc-product h2, .sc-product h3, .sc-product h4,
.sc-cart-page h1, .sc-cart-page h2, .sc-cart-page h3,
.sc-checkout-page h1, .sc-checkout-page h2, .sc-checkout-page h3,
.sc-archive h1, .sc-archive h2, .sc-archive h3,
.sc-account h1, .sc-account h2, .sc-account h3,
.sc-thankyou h1, .sc-thankyou h2, .sc-thankyou h3,
.sc-side-cart h2 {
	background: none !important;
	padding: 0 !important;
	border: none !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-align: inherit;
}

/* Force full-width container quando il tema impone max-width al wrapper.
   Tipico su Hello Elementor, Astra, GeneratePress, ecc.: il <main> o
   .entry-content è limitato a 1200px. Forziamo il "respira fino a 1500". */
.woocommerce-product .site-main,
.single-product .site-main,
.archive.woocommerce .site-main,
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main,
.woocommerce-order-received .site-main,
.single-product .entry-content,
.archive.woocommerce .entry-content,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content,
.woocommerce-order-received .entry-content,
.single-product .ast-container,
.archive.woocommerce .ast-container,
.single-product .elementor-section.elementor-section-boxed > .elementor-container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.sc-product {
	background: var(--sc-bg);
	color: var(--sc-text);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
	line-height: 1.55;
	padding: 20px 0 60px;
}

.sc-product__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

@media (max-width: 768px) {
	.sc-product__wrap {
		padding: 0 16px;
	}
}

/* ==== Breadcrumb ==== */
.sc-product__breadcrumb {
	margin-bottom: 18px;
	font-size: 13px;
	color: var(--sc-muted);
}

.sc-product__breadcrumb .sc-breadcrumb a,
.sc-product__breadcrumb a {
	color: var(--sc-muted);
	text-decoration: none;
}

.sc-product__breadcrumb a:hover {
	color: var(--sc-primary);
}

/* ==== Main grid ==== */
.sc-product__grid {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 40px !important;
}

@media (min-width: 960px) {
	.sc-product__grid {
		grid-template-columns: 1fr 1fr !important;
		gap: 50px !important;
		align-items: start !important;
	}
}

/* ==== CRITICAL: override WooCommerce default float+width ====
   WC applica per default:
     .woocommerce div.product .images  { float:left;  width:48%; }
     .woocommerce div.product .summary { float:right; width:48%; }
   Queste regole rovinano il nostro grid 1fr 1fr — la summary si
   restringe al 48% invece di occupare metà del grid. Le annulliamo. */
.sc-product .sc-product__grid .sc-product__gallery,
.sc-product .sc-product__grid .sc-product__info,
.woocommerce div.product.sc-product .sc-product__gallery,
.woocommerce div.product.sc-product .sc-product__info,
.woocommerce div.product.sc-product .summary,
.woocommerce div.product.sc-product .images {
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	clear: none !important;
	margin: 0 !important;
}

/* ==== Gallery (left) ==== */
.sc-product__gallery {
	position: relative;
	width: 100% !important;
}

.sc-product__gallery .woocommerce-product-gallery,
.sc-product__gallery .woocommerce-product-gallery__wrapper {
	width: 100% !important;
	margin: 0 !important;
}

.sc-product__gallery .woocommerce-product-gallery__image img {
	border-radius: var(--sc-radius-lg);
	width: 100%;
	height: auto;
	display: block;
}

.sc-product__gallery .flex-control-thumbs {
	margin-top: 14px !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(5, 1fr) !important;
	gap: 8px !important;
	list-style: none !important;
}

.sc-product__gallery .flex-control-thumbs li {
	width: 100% !important;
	margin: 0 !important;
}

.sc-product__gallery .flex-control-thumbs li img {
	border-radius: var(--sc-radius);
	width: 100%;
	height: auto;
	opacity: .7;
	transition: opacity .15s ease;
	cursor: pointer;
}

.sc-product__gallery .flex-control-thumbs li img:hover,
.sc-product__gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
}

/* Info column (right) */
.sc-product__info {
	width: 100% !important;
	min-width: 0; /* prevents grid overflow with long words */
}

/* Sticky on desktop so the info doesn't scroll past a tall gallery. */
@media (min-width: 960px) {
	.sc-product__info {
		position: sticky;
		top: 30px;
	}
}

/* ==== Badges ==== */
.sc-badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 4px;
	color: #fff;
	background: var(--sc-discount-bg);
}

.sc-badge--discount {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 2;
	font-size: 13px;
	padding: 6px 12px;
}

.sc-badge--inline {
	margin-left: 8px;
	vertical-align: middle;
	font-size: 11px;
}

/* ==== Info column ==== */
.sc-product__title,
.sc-product .sc-product__title {
	font-family: var(--sc-heading-font) !important;
	font-size: clamp(28px, 4vw, 38px) !important;
	line-height: 1.15 !important;
	margin: 0 0 10px !important;
	font-weight: 700 !important;
	color: var(--sc-primary) !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Rating line */
.sc-product__rating-line {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	font-size: 14px;
}

.sc-product__rating-line .sc-stars .star-rating {
	font-size: 15px;
}

.sc-reviews-link {
	color: var(--sc-muted);
	text-decoration: none;
	border-bottom: 1px dotted var(--sc-muted);
}

.sc-reviews-link:hover {
	color: var(--sc-primary);
}

/* Price */
.sc-product__price {
	font-size: 22px;
	margin: 8px 0 14px;
	color: var(--sc-text);
}

.sc-product__price .price {
	font-size: 24px;
	font-weight: 700;
}

.sc-product__price .price del {
	color: var(--sc-muted);
	font-weight: 400;
	margin-right: 6px;
}

.sc-product__price .price ins {
	text-decoration: none;
	color: var(--sc-discount-bg);
}

.sc-product__short-desc {
	color: var(--sc-text);
	font-size: 15px;
	line-height: 1.65;
	margin: 16px 0 14px;
	padding: 0;
	background: transparent;
	border-radius: 0;
	border-left: none;
}

.sc-product__short-desc p:first-child { margin-top: 0; }
.sc-product__short-desc p:last-child { margin-bottom: 0; }

/* === Accordion (Descrizione / Spedizione / Condividi) === */
.sc-accordion {
	margin-top: 22px;
	border-top: 1px solid var(--sc-border);
}

.sc-accordion__item {
	border-bottom: 1px solid var(--sc-border);
}

.sc-accordion__item[open] .sc-accordion__head::after {
	transform: rotate(180deg);
}

.sc-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 0;
	font-weight: 600;
	font-size: 15px;
	color: var(--sc-text);
	cursor: pointer;
	list-style: none;
	user-select: none;
	transition: color .15s;
}

.sc-accordion__head::-webkit-details-marker { display: none; }
.sc-accordion__head::marker { content: ''; }

.sc-accordion__head:hover {
	color: var(--sc-primary);
}

.sc-accordion__head::after {
	content: '▾';
	font-size: 14px;
	color: var(--sc-muted);
	transition: transform .25s ease;
	margin-left: 10px;
}

.sc-accordion__body {
	padding: 0 0 18px;
	color: var(--sc-text);
	font-size: 14px;
	line-height: 1.6;
}

.sc-accordion__body p:first-child { margin-top: 0; }
.sc-accordion__body p:last-child { margin-bottom: 0; }
.sc-accordion__body a {
	color: var(--sc-primary);
	text-decoration: none;
}
.sc-accordion__body a:hover { text-decoration: underline; }

.sc-product__weight {
	color: var(--sc-muted);
	font-size: 14px;
	margin-bottom: 14px;
}

/* Stock badge */
.sc-stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	margin: 6px 0 18px;
}

.sc-stock__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
}

.sc-stock--in {
	color: #00691f;
}

.sc-stock--in .sc-stock__dot {
	background: #00a32a;
	box-shadow: 0 0 0 4px rgba(0, 163, 42, .15);
}

.sc-stock--out {
	color: #a01818;
}

.sc-stock--out .sc-stock__dot {
	background: #d63638;
}

/* ATC form (WC native, restyled) */
.sc-product__atc {
	margin: 18px 0 10px;
}

.sc-product__atc form.cart {
	display: flex;
	align-items: stretch;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0;
}

/* ==== Quantity selector con pulsanti +/- (iniettati via JS) ==== */
.sc-product__atc .quantity,
.sc-cart-table .product-quantity .quantity,
.sc-checkout-page .quantity {
	display: inline-flex !important;
	align-items: stretch !important;
	border: 1px solid var(--sc-border) !important;
	border-radius: var(--sc-radius) !important;
	overflow: hidden !important;
	background: #fff !important;
	height: 52px;
}

.sc-product__atc .quantity input.qty,
.sc-cart-table .product-quantity .quantity input.qty,
.sc-checkout-page .quantity input.qty {
	width: 60px !important;
	border: none !important;
	border-left: 1px solid var(--sc-border) !important;
	border-right: 1px solid var(--sc-border) !important;
	text-align: center !important;
	height: 100% !important;
	font-size: 16px !important;
	background: transparent !important;
	font-weight: 600;
	color: var(--sc-text);
	-moz-appearance: textfield;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
}

/* Nasconde lo spinner nativo del browser sui campi number */
.sc-product__atc .quantity input.qty::-webkit-outer-spin-button,
.sc-product__atc .quantity input.qty::-webkit-inner-spin-button,
.sc-cart-table .product-quantity .quantity input.qty::-webkit-outer-spin-button,
.sc-cart-table .product-quantity .quantity input.qty::-webkit-inner-spin-button,
.sc-checkout-page .quantity input.qty::-webkit-outer-spin-button,
.sc-checkout-page .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

/* Pulsanti +/- custom */
.sc-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 44px;
	height: 100%;
	border: none;
	background: #fff;
	color: var(--sc-text);
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	margin: 0;
	user-select: none;
	transition: background .15s, color .15s;
	font-family: inherit;
}

.sc-qty-btn:hover {
	background: var(--sc-bg-soft);
	color: var(--sc-primary);
}

.sc-qty-btn:active {
	background: var(--sc-border);
}

.sc-qty-btn:focus {
	outline: none;
	background: var(--sc-bg-soft);
}

.sc-qty-btn--minus { padding-bottom: 2px; }
.sc-qty-btn--plus  { padding-bottom: 1px; }

/* ==== Variazioni WooCommerce (Peso, Taglia, Colore, ecc.) ==== */
.sc-product__atc form.variations_form {
	background: none !important;
	padding: 0 !important;
}

.sc-product__atc .variations {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 0 0 16px !important;
	background: none !important;
	border: none !important;
}

.sc-product__atc .variations tbody {
	display: block;
	width: 100%;
}

.sc-product__atc .variations tr {
	display: block;
	margin-bottom: 14px;
	padding: 0 !important;
	background: none !important;
	border: none !important;
}

.sc-product__atc .variations th,
.sc-product__atc .variations td {
	display: block !important;
	width: 100% !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	text-align: left !important;
	vertical-align: top !important;
}

.sc-product__atc .variations th.label,
.sc-product__atc .variations th label,
.sc-product__atc .variations label {
	display: block !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	color: var(--sc-text) !important;
	margin-bottom: 6px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.sc-product__atc .variations td.value {
	position: relative;
}

.sc-product__atc .variations select {
	width: 100% !important;
	padding: 13px 42px 13px 14px !important;
	border: 1px solid var(--sc-border) !important;
	border-radius: var(--sc-radius) !important;
	background: #fff !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%237a4a1f'><path d='M5.5 7.5l4.5 4.5 4.5-4.5z'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 20px !important;
	font-size: 14px !important;
	color: var(--sc-text) !important;
	font-family: inherit !important;
	cursor: pointer;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	height: auto !important;
	line-height: 1.4 !important;
	min-height: 50px;
	font-weight: 500;
}

.sc-product__atc .variations select:focus {
	outline: none !important;
	border-color: var(--sc-primary) !important;
	box-shadow: 0 0 0 3px rgba(122, 74, 31, .12) !important;
}

.sc-product__atc .variations select:hover {
	border-color: var(--sc-primary) !important;
}

.sc-product__atc .reset_variations {
	display: inline-block !important;
	margin-top: 8px !important;
	color: var(--sc-muted) !important;
	font-size: 12px !important;
	text-decoration: underline !important;
	visibility: visible !important;
}

.sc-product__atc .reset_variations:hover {
	color: var(--sc-primary) !important;
}

/* Visualizzazione del singolo prezzo della variazione selezionata */
.sc-product__atc .single_variation_wrap .woocommerce-variation-price {
	margin: 10px 0 14px;
	font-size: 22px;
	font-weight: 700;
	color: var(--sc-primary);
}

.sc-product__atc .single_variation_wrap .woocommerce-variation-availability {
	margin: 0 0 14px;
	color: var(--sc-muted);
	font-size: 14px;
}

.sc-product__atc .single_variation_wrap .woocommerce-variation-description {
	margin: 0 0 14px;
	color: var(--sc-text);
	font-size: 14px;
	line-height: 1.5;
}

/* Product gallery polish */
.sc-product__gallery .woocommerce-product-gallery {
	max-width: 100%;
}
.sc-product__gallery .woocommerce-product-gallery__image img {
	border-radius: var(--sc-radius-lg);
	display: block;
	width: 100%;
	height: auto;
}
.sc-product__gallery .flex-control-thumbs {
	display: flex !important;
	gap: 10px !important;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.sc-product__gallery .flex-control-thumbs li {
	width: calc(25% - 8px) !important;
	margin: 0 !important;
	flex: 0 0 auto;
}
.sc-product__gallery .flex-control-thumbs img {
	border-radius: var(--sc-radius);
	cursor: pointer;
	opacity: .65;
	transition: opacity .2s;
	border: 2px solid transparent;
}
.sc-product__gallery .flex-control-thumbs img:hover,
.sc-product__gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--sc-primary);
}

.sc-product__atc button.single_add_to_cart_button {
	flex: 1 1 200px;
	background: var(--sc-primary) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--sc-radius) !important;
	padding: 0 28px !important;
	height: 52px;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .04em;
	cursor: pointer;
	transition: filter .15s ease, transform .05s ease;
}

.sc-product__atc button.single_add_to_cart_button:hover {
	filter: brightness(0.92);
}

.sc-product__atc button.single_add_to_cart_button:active {
	transform: translateY(1px);
}

/* Variations */
.sc-product__atc table.variations {
	margin: 0 0 14px;
}

.sc-product__atc table.variations th,
.sc-product__atc table.variations td {
	padding: 6px 0;
}

.sc-product__atc table.variations select {
	min-width: 180px;
	padding: 10px 12px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background: #fff;
}

/* Buy Now button */
.sc-buy-now {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--sc-accent);
	color: #000;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	border-radius: var(--sc-radius);
	padding: 16px 24px;
	margin-top: 10px;
	text-decoration: none;
	transition: filter .15s ease;
}

.sc-buy-now:hover {
	filter: brightness(0.95);
	color: #000;
}

/* Klarna line */
.sc-klarna {
	margin: 12px 0 22px;
	padding: 12px 16px;
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius);
	color: var(--sc-text);
	font-size: 13px;
	text-align: center;
}

/* Accordion (uses native <details>) */
.sc-accordion {
	margin: 22px 0 16px;
	border-top: 1px solid var(--sc-border);
}

.sc-accordion__item {
	border-bottom: 1px solid var(--sc-border);
}

.sc-accordion__head {
	padding: 16px 0;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: var(--sc-text);
}

.sc-accordion__head::-webkit-details-marker {
	display: none;
}

.sc-accordion__head::after {
	content: '›';
	font-size: 22px;
	color: var(--sc-muted);
	transition: transform .2s ease;
	transform: rotate(90deg);
}

.sc-accordion__item[open] .sc-accordion__head::after {
	transform: rotate(-90deg);
}

.sc-accordion__body {
	padding: 0 0 18px;
	color: var(--sc-text);
	font-size: 14px;
	line-height: 1.65;
}

.sc-accordion__body p {
	margin: 0 0 10px;
}

/* Product meta */
.sc-product__meta {
	margin-top: 14px;
	font-size: 13px;
	color: var(--sc-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.sc-product__meta strong {
	color: var(--sc-text);
}

.sc-product__meta a {
	color: var(--sc-primary);
	text-decoration: none;
}

/* =========================================================================
 * REVIEWS section
 * ========================================================================= */

.sc-reviews {
	margin-top: 60px;
	padding: 40px 0 0;
	border-top: 1px solid var(--sc-border);
}

.sc-reviews__title {
	font-family: var(--sc-heading-font) !important;
	font-size: clamp(26px, 3vw, 32px) !important;
	color: var(--sc-primary) !important;
	margin: 0 0 24px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border: none !important;
	padding: 0 !important;
	background: none !important;
}

/* Nascondi il titolo h2 default di WC dentro #reviews
   ("X reviews for [Prodotto]") perché ne abbiamo già uno nostro sopra.
   Anche temi che aggiungono titoli enormi sono coperti da queste regole. */
.sc-reviews #reviews > h2,
.sc-reviews #reviews .woocommerce-Reviews-title,
.sc-reviews #comments > h2:first-child,
.sc-product #reviews > h2:first-of-type,
.sc-product .woocommerce-Reviews-title,
.sc-product .comments-title,
.sc-product #respond > h3#reply-title.h4-style {
	display: none !important;
}

.sc-reviews__header {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: start;
	margin-bottom: 40px;
	padding: 28px;
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
}

@media (min-width: 768px) {
	.sc-reviews__header {
		grid-template-columns: 1fr 2fr auto;
		align-items: center;
	}
}

.sc-reviews__summary {
	display: contents;
}

.sc-reviews__avg {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.sc-reviews__avg .star-rating {
	font-size: 18px;
}

.sc-reviews__count {
	color: var(--sc-muted);
	font-size: 13px;
}

/* Bars chart */
.sc-reviews__bars {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 280px;
}

.sc-bar-row {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: 10px;
	align-items: center;
	font-size: 13px;
}

.sc-bar-stars {
	display: inline-flex;
	gap: 1px;
	white-space: nowrap;
	font-size: 14px;
	line-height: 1;
}

.sc-bar-star {
	display: inline-block;
	color: #d4d4d4;
	width: 14px;
	text-align: center;
}

.sc-bar-star.is-full {
	color: var(--sc-accent);
}

.sc-bar-track {
	background: #ececec;
	height: 8px;
	border-radius: 4px;
	overflow: hidden;
	min-width: 100px;
}

.sc-bar-fill {
	background: var(--sc-accent);
	height: 100%;
	display: block;
	border-radius: 4px;
	transition: width .4s ease;
}

.sc-bar-pct {
	font-weight: 600;
	color: var(--sc-text);
	min-width: 36px;
	text-align: right;
}

.sc-bar-count {
	color: var(--sc-muted);
}

.sc-write-review {
	display: inline-block;
	border: 1px solid var(--sc-primary);
	color: var(--sc-primary);
	padding: 12px 22px;
	border-radius: var(--sc-radius);
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	background: #fff;
	transition: background .15s ease, color .15s ease;
	white-space: nowrap;
}

.sc-write-review:hover {
	background: var(--sc-primary);
	color: #fff;
}

/* Individual reviews list */
.sc-reviews__list .commentlist,
.sc-reviews__list ol.commentlist {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sc-reviews__list .comment,
.sc-reviews__list li.review {
	padding: 24px 0;
	border-bottom: 1px solid var(--sc-border);
}

.sc-reviews__list .comment img.avatar,
.sc-reviews__list li.review img.avatar {
	float: left;
	margin-right: 16px;
	border-radius: 50%;
	width: 48px;
	height: 48px;
}

.sc-reviews__list .comment-text .star-rating,
.sc-reviews__list .review .star-rating {
	margin-bottom: 6px;
}

.sc-reviews__list .meta {
	margin-bottom: 6px;
	color: var(--sc-muted);
	font-size: 13px;
}

.sc-reviews__list .meta strong {
	color: var(--sc-text);
}

/* Star color globally */
.sc-product .star-rating,
.sc-reviews .star-rating {
	color: var(--sc-accent);
}

/* =========================================================================
 * Side cart
 * ========================================================================= */

.sc-side-cart {
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	visibility: hidden;
	opacity: 0;
	transition: opacity .25s ease, visibility 0s linear .25s;
}

.sc-side-cart.is-open {
	pointer-events: auto;
	visibility: visible;
	opacity: 1;
	transition: opacity .25s ease;
}

.sc-side-cart__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
}

.sc-side-cart__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	width: min(420px, 100%);
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .2);
	transform: translateX(100%);
	transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}

.sc-side-cart--right .sc-side-cart__panel { right: 0; }
.sc-side-cart--left .sc-side-cart__panel  { left: 0; transform: translateX(-100%); }

.sc-side-cart.is-open .sc-side-cart__panel {
	transform: translateX(0);
}

.sc-side-cart__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid var(--sc-border);
}

.sc-side-cart .sc-side-cart__header h2,
.sc-side-cart__header h2 {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	font-family: var(--sc-heading-font) !important;
	color: var(--sc-primary) !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border: none !important;
	background: none !important;
}

.sc-side-cart__close {
	background: none;
	border: none;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: var(--sc-muted);
	padding: 0 4px;
}

.sc-side-cart__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 22px;
}

.sc-side-cart__empty {
	color: var(--sc-muted);
	text-align: center;
	margin-top: 40px;
}

.sc-side-cart__footer {
	padding: 18px 22px;
	border-top: 1px solid var(--sc-border);
	background: var(--sc-bg-soft);
}

.sc-side-cart__checkout {
	display: block;
	width: 100%;
	padding: 14px 18px;
	background: var(--sc-primary);
	color: #fff;
	text-align: center;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--sc-radius);
}

.sc-side-cart__checkout:hover { color: #fff; filter: brightness(.92); }

body.sc-cart-open { overflow: hidden; }

/* =========================================================================
 * SIDE CART — WooCommerce mini-cart styling
 * Targets WC's native .widget_shopping_cart_content markup
 * ========================================================================= */

#sc-side-cart .widget_shopping_cart_content {
	padding: 0;
}

#sc-side-cart ul.cart_list,
#sc-side-cart ul.product_list_widget {
	list-style: none;
	padding: 0;
	margin: 0;
}

#sc-side-cart ul.cart_list li,
#sc-side-cart ul.product_list_widget li {
	padding: 14px 22px;
	border-bottom: 1px solid var(--sc-border);
	display: flex;
	gap: 12px;
	align-items: flex-start;
	position: relative;
	background: #fff;
}

#sc-side-cart ul.cart_list li img,
#sc-side-cart ul.product_list_widget li img {
	width: 60px;
	height: 60px;
	object-fit: cover;
	border-radius: var(--sc-radius);
	border: 1px solid var(--sc-border);
	margin: 0;
	float: none;
	flex-shrink: 0;
}

#sc-side-cart ul.cart_list li a:not(.remove),
#sc-side-cart ul.product_list_widget li a:not(.remove) {
	color: var(--sc-text);
	font-weight: 600;
	text-decoration: none;
	display: block;
	font-size: 14px;
	line-height: 1.35;
	margin-bottom: 4px;
	padding-right: 22px;
}

#sc-side-cart ul.cart_list li a:hover:not(.remove) {
	color: var(--sc-primary);
}

#sc-side-cart ul.cart_list li .quantity,
#sc-side-cart ul.product_list_widget li .quantity {
	display: block;
	color: var(--sc-muted);
	font-size: 13px;
	margin-top: 2px;
}

#sc-side-cart ul.cart_list li .quantity .amount,
#sc-side-cart ul.product_list_widget li .quantity .amount {
	color: var(--sc-text);
	font-weight: 600;
}

#sc-side-cart ul.cart_list li a.remove,
#sc-side-cart ul.product_list_widget li a.remove {
	position: absolute;
	top: 14px;
	right: 22px;
	background: none;
	color: #b00020;
	font-size: 18px;
	width: 22px;
	height: 22px;
	line-height: 20px;
	text-align: center;
	border-radius: 50%;
	text-decoration: none;
	font-weight: 700;
}

#sc-side-cart ul.cart_list li a.remove:hover {
	background: #fee;
	color: #d00;
}

#sc-side-cart .variation {
	font-size: 12px;
	color: var(--sc-muted);
	margin: 4px 0;
}

#sc-side-cart .variation dt,
#sc-side-cart .variation dd {
	display: inline;
	margin: 0;
	padding: 0;
}

#sc-side-cart .total {
	padding: 16px 22px;
	background: var(--sc-bg-soft);
	font-size: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid var(--sc-border);
}

#sc-side-cart .total strong {
	color: var(--sc-text);
}

#sc-side-cart .total .amount,
#sc-side-cart .total .woocommerce-Price-amount {
	color: var(--sc-primary);
	font-weight: 700;
	font-size: 18px;
}

#sc-side-cart .buttons {
	padding: 14px 22px 22px;
	background: var(--sc-bg-soft);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

#sc-side-cart .buttons .button {
	display: block;
	width: 100%;
	padding: 13px 16px;
	border-radius: var(--sc-radius);
	text-align: center;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	border: 1px solid var(--sc-primary);
	transition: filter .15s, background .15s, color .15s;
}

#sc-side-cart .buttons .button.wc-forward:not(.checkout) {
	background: #fff;
	color: var(--sc-primary);
}

#sc-side-cart .buttons .button.wc-forward:not(.checkout):hover {
	background: var(--sc-primary);
	color: #fff;
}

#sc-side-cart .buttons .button.checkout {
	background: var(--sc-primary);
	color: #fff;
}

#sc-side-cart .buttons .button.checkout:hover {
	filter: brightness(.92);
}

#sc-side-cart .woocommerce-mini-cart__empty-message {
	padding: 60px 22px;
	text-align: center;
	color: var(--sc-muted);
	font-style: italic;
}

#sc-side-cart .woocommerce-mini-cart__empty-message::before {
	content: '🛒';
	display: block;
	font-size: 48px;
	margin-bottom: 12px;
	font-style: normal;
}

/* =========================================================================
 * FLOATING CART ICON (bottom-right circular button)
 * ========================================================================= */

.sc-floating-cart {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 997;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--sc-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
	transition: transform .2s ease, filter .15s ease;
}

.sc-floating-cart:hover {
	transform: scale(1.05);
	filter: brightness(1.05);
	color: #fff;
}

.sc-floating-cart:active {
	transform: scale(.96);
}

.sc-floating-cart.is-pulsing {
	animation: scCartPulse .6s ease-out;
}

@keyframes scCartPulse {
	0% { transform: scale(1); }
	30% { transform: scale(1.15); }
	60% { transform: scale(.95); }
	100% { transform: scale(1); }
}

.sc-floating-cart__icon {
	display: block;
}

.sc-floating-cart__count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: var(--sc-accent);
	color: #000;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #fff;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

/* Hide count when zero */
.sc-floating-cart__count:empty,
.sc-floating-cart__count[data-sc-cart-count="0"] {
	display: none;
}

@media (max-width: 640px) {
	.sc-floating-cart {
		right: 16px;
		bottom: 16px;
		width: 52px;
		height: 52px;
	}
}

/* Move floating cart up when sticky ATC bar is visible (product page) */
.sc-sticky-atc.is-visible ~ .sc-floating-cart,
body:has(.sc-sticky-atc.is-visible) .sc-floating-cart {
	bottom: 90px;
}

/* =========================================================================
 * ANCHOR SECTIONS (Elementor injection points)
 *
 * I contenitori sono trasparenti per default — il contenuto Elementor
 * porta il proprio styling. Aggiungiamo solo un margine verticale così
 * la sezione "respira" rispetto a quella sopra/sotto.
 * ========================================================================= */

.sc-anchor {
	width: 100%;
}

.sc-anchor--above_gallery,
.sc-anchor--below_reviews {
	margin: 24px 0;
}

.sc-anchor--above_title,
.sc-anchor--below_title,
.sc-anchor--below_rating,
.sc-anchor--below_price,
.sc-anchor--above_atc,
.sc-anchor--below_atc,
.sc-anchor--above_accordion,
.sc-anchor--below_accordion {
	margin: 14px 0;
}

.sc-anchor--above_reviews {
	margin: 30px 0;
}

/* =========================================================================
 * STICKY ADD-TO-CART BAR (single product, bottom of viewport)
 * ========================================================================= */

.sc-sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 998;
	background: #fff;
	border-top: 1px solid var(--sc-border);
	box-shadow: 0 -6px 20px rgba(0, 0, 0, .08);
	transform: translateY(100%);
	transition: transform .25s cubic-bezier(.4, 0, .2, 1);
}

.sc-sticky-atc.is-visible {
	transform: translateY(0);
}

.sc-sticky-atc__inner {
	max-width: 1240px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 16px;
}

.sc-sticky-atc__img {
	width: 50px;
	height: 50px;
	border-radius: var(--sc-radius);
	object-fit: cover;
	flex-shrink: 0;
}

.sc-sticky-atc__info {
	flex: 1 1 auto;
	min-width: 0;
}

.sc-sticky-atc__title {
	font-weight: 600;
	font-size: 14px;
	color: var(--sc-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sc-sticky-atc__price {
	font-size: 14px;
	color: var(--sc-muted);
}

.sc-sticky-atc__price .price { font-weight: 700; color: var(--sc-text); }
.sc-sticky-atc__price .price del { color: var(--sc-muted); font-weight: 400; }
.sc-sticky-atc__price .price ins { text-decoration: none; color: var(--sc-discount-bg); }

.sc-sticky-atc__btn {
	background: var(--sc-primary);
	color: #fff;
	padding: 12px 22px;
	border-radius: var(--sc-radius);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	font-size: 14px;
	transition: filter .15s;
}

.sc-sticky-atc__btn:hover { filter: brightness(.92); color: #fff; }

@media (max-width: 640px) {
	.sc-sticky-atc__title { font-size: 13px; }
	.sc-sticky-atc__btn { padding: 10px 14px; font-size: 13px; }
}

/* =========================================================================
 * REVIEW FORM
 * ========================================================================= */

.sc-product #review_form_wrapper,
.sc-reviews #review_form_wrapper {
	margin-top: 30px;
	padding: 28px;
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
}

.sc-reviews #review_form #reply-title,
.sc-product #review_form #reply-title {
	font-family: var(--sc-heading-font);
	font-size: 22px;
	color: var(--sc-primary);
	display: block;
	margin: 0 0 18px;
}

.sc-reviews .comment-form-rating label,
.sc-product .comment-form-rating label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.sc-reviews .comment-form-author label,
.sc-reviews .comment-form-email label,
.sc-reviews .comment-form-comment label,
.sc-product .comment-form-author label,
.sc-product .comment-form-email label,
.sc-product .comment-form-comment label {
	display: block;
	margin-bottom: 4px;
	font-weight: 500;
	font-size: 13px;
	color: var(--sc-text);
}

.sc-reviews .comment-form input[type="text"],
.sc-reviews .comment-form input[type="email"],
.sc-reviews .comment-form textarea,
.sc-product .comment-form input[type="text"],
.sc-product .comment-form input[type="email"],
.sc-product .comment-form textarea {
	width: 100%;
	max-width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	font-size: 14px;
	background: #fff;
	font-family: inherit;
}

.sc-reviews .comment-form input:focus,
.sc-reviews .comment-form textarea:focus,
.sc-product .comment-form input:focus,
.sc-product .comment-form textarea:focus {
	outline: none;
	border-color: var(--sc-primary);
	box-shadow: 0 0 0 3px rgba(122, 74, 31, .12);
}

.sc-reviews .comment-form .form-submit input,
.sc-reviews .comment-form .sc-review-submit,
.sc-product .comment-form .form-submit input,
.sc-product .comment-form .sc-review-submit {
	background: var(--sc-primary) !important;
	color: #fff !important;
	border: none !important;
	padding: 14px 28px !important;
	border-radius: var(--sc-radius) !important;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: .04em;
	transition: filter .15s;
}

.sc-reviews .comment-form .form-submit input:hover,
.sc-product .comment-form .form-submit input:hover { filter: brightness(.92); }

/* Star-rating selector in the review form */
.sc-reviews .comment-form-rating p.stars,
.sc-product .comment-form-rating p.stars {
	margin: 0 0 14px;
}

.sc-reviews .comment-form-rating p.stars a,
.sc-product .comment-form-rating p.stars a {
	color: #ccc;
	font-size: 22px;
}

.sc-reviews .comment-form-rating p.stars a:hover,
.sc-reviews .comment-form-rating p.stars.selected a.active,
.sc-product .comment-form-rating p.stars a:hover,
.sc-product .comment-form-rating p.stars.selected a.active {
	color: var(--sc-accent);
}

/* =========================================================================
 * GENERIC BUTTONS (used in cart/checkout)
 * ========================================================================= */

.sc-btn {
	display: inline-block;
	padding: 14px 22px;
	border-radius: var(--sc-radius);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	border: 1px solid transparent;
	transition: filter .15s, background .15s, color .15s;
	line-height: 1.2;
}

.sc-btn--primary {
	background: var(--sc-primary);
	color: #fff;
	border-color: var(--sc-primary);
}

.sc-btn--primary:hover { filter: brightness(.92); color: #fff; }

.sc-btn--ghost {
	background: #fff;
	color: var(--sc-primary);
	border-color: var(--sc-primary);
}

.sc-btn--ghost:hover { background: var(--sc-primary); color: #fff; }

.sc-btn--block {
	display: block;
	width: 100%;
}

.sc-link {
	color: var(--sc-primary);
	text-decoration: none;
	font-weight: 500;
}
.sc-link:hover { text-decoration: underline; }

/* =========================================================================
 * CART PAGE
 * ========================================================================= */

.sc-cart-page {
	background: var(--sc-bg);
	padding: 30px 0 60px;
	color: var(--sc-text);
}

.sc-cart-page__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sc-cart-page__title {
	font-family: var(--sc-heading-font);
	font-size: clamp(28px, 4vw, 38px);
	color: var(--sc-primary);
	margin: 0 0 30px;
}

.sc-cart-page__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
}

@media (min-width: 960px) {
	.sc-cart-page__grid {
		grid-template-columns: 2fr 1fr;
		gap: 50px;
		align-items: start;
	}
}

/* Cart table */
.sc-cart-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.sc-cart-table thead th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--sc-muted);
	padding: 12px 14px;
	border-bottom: 2px solid var(--sc-border);
	font-weight: 600;
}

.sc-cart-table tbody td {
	padding: 16px 14px;
	border-bottom: 1px solid var(--sc-border);
	vertical-align: top;
}

.sc-cart-table .product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--sc-radius);
	display: block;
}

.sc-cart-table .product-name a {
	color: var(--sc-text);
	font-weight: 600;
	text-decoration: none;
	display: block;
	margin-bottom: 4px;
}

.sc-cart-table .product-name a:hover { color: var(--sc-primary); }

.sc-cart-item__price {
	color: var(--sc-muted);
	font-size: 14px;
	margin: 4px 0;
}

.sc-cart-item__remove {
	color: #b00020;
	font-size: 13px;
	text-decoration: none;
}

.sc-cart-item__remove:hover { text-decoration: underline; }

.sc-cart-table .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	overflow: hidden;
	background: #fff;
}

.sc-cart-table .product-quantity input.qty {
	width: 56px;
	border: none;
	text-align: center;
	height: 42px;
	background: transparent;
	font-size: 14px;
}

.sc-cart-table .product-subtotal {
	font-weight: 700;
	color: var(--sc-text);
}

.sc-cart-actions td {
	padding-top: 20px !important;
}

.sc-cart-coupon {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	background: var(--sc-bg-soft);
	padding: 14px;
	border-radius: var(--sc-radius);
	margin-bottom: 14px;
}

.sc-cart-coupon label {
	font-size: 13px;
	color: var(--sc-muted);
	flex-basis: 100%;
}

.sc-cart-coupon input {
	flex: 1 1 200px;
	padding: 10px 12px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background: #fff;
}

.sc-cart-bottom-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	padding-top: 8px;
}

/* Cart summary card */
.sc-cart-summary-card {
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 24px;
	position: sticky;
	top: 30px;
}

.sc-cart-summary-card__title {
	font-family: var(--sc-heading-font);
	font-size: 22px;
	color: var(--sc-primary);
	margin: 0 0 16px;
}

.sc-cart-totals {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 16px;
}

.sc-cart-totals td {
	padding: 9px 0;
	border-bottom: 1px solid var(--sc-border);
	font-size: 14px;
}

.sc-cart-totals .text-right {
	text-align: right;
}

.sc-cart-totals .order-total td {
	border-bottom: none;
	padding-top: 14px;
	font-size: 16px;
}

.sc-cart-total-amount {
	color: var(--sc-primary);
	font-weight: 700;
	font-size: 20px;
}

.sc-cart-summary-card .sc-btn--block {
	margin-top: 14px;
}

.sc-cart-summary-card__secure {
	margin-top: 12px;
	font-size: 12px;
	color: var(--sc-muted);
	text-align: center;
}

/* Empty cart state */
.sc-cart-empty {
	text-align: center;
	padding: 60px 20px;
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius-lg);
}

.sc-cart-empty__icon {
	font-size: 64px;
	margin-bottom: 14px;
}

.sc-cart-empty h2 {
	font-family: var(--sc-heading-font);
	color: var(--sc-primary);
	margin: 0 0 8px;
}

.sc-cart-empty p {
	color: var(--sc-muted);
	margin: 0 0 20px;
}

/* Free shipping progress bar */
.sc-free-shipping-bar {
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius);
	padding: 14px 16px;
	margin-bottom: 22px;
}

.sc-free-shipping-bar p {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--sc-text);
}

.sc-free-shipping-track {
	background: #ececec;
	height: 8px;
	border-radius: 4px;
	overflow: hidden;
}

.sc-free-shipping-fill {
	display: block;
	height: 100%;
	background: var(--sc-accent);
	border-radius: 4px;
	transition: width .4s ease;
}

/* =========================================================================
 * CHECKOUT PAGE
 * ========================================================================= */

.sc-checkout-page {
	background: var(--sc-bg);
	padding: 30px 0 60px;
}

.sc-checkout-page__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sc-checkout-page__title {
	font-family: var(--sc-heading-font);
	font-size: clamp(28px, 4vw, 38px);
	color: var(--sc-primary);
	margin: 0 0 24px;
}

.sc-express-checkout {
	margin-bottom: 30px;
	background: var(--sc-bg-soft);
	padding: 22px;
	border-radius: var(--sc-radius-lg);
	text-align: center;
}

.sc-express-checkout__label {
	margin: 0 0 12px;
	color: var(--sc-muted);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.sc-express-checkout__buttons {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.sc-express-checkout__buttons:empty + .sc-express-checkout__divider { display: none; }

.sc-express-checkout__divider {
	position: relative;
	height: 1px;
	background: var(--sc-border);
	margin: 12px 0 0;
}

.sc-express-checkout__divider span {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	background: var(--sc-bg-soft);
	padding: 0 14px;
	font-size: 12px;
	color: var(--sc-muted);
}

.sc-checkout-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
}

@media (min-width: 960px) {
	.sc-checkout-grid {
		grid-template-columns: 1.6fr 1fr;
		gap: 50px;
		align-items: start;
	}
}

.sc-checkout-section {
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 24px;
	margin-bottom: 22px;
}

.sc-checkout-section__title {
	font-family: var(--sc-heading-font);
	font-size: 18px;
	color: var(--sc-primary);
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--sc-border);
}

/* WC default checkout form: make inputs prettier */
.sc-checkout-form .form-row {
	margin-bottom: 14px;
}

.sc-checkout-form .form-row label {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	color: var(--sc-text);
	font-weight: 500;
}

.sc-checkout-form .form-row input.input-text,
.sc-checkout-form .form-row textarea,
.sc-checkout-form .form-row select,
.sc-checkout-form .select2-selection {
	width: 100% !important;
	padding: 11px 14px !important;
	border: 1px solid var(--sc-border) !important;
	border-radius: var(--sc-radius) !important;
	font-size: 14px;
	background: #fff;
	min-height: 44px !important;
	font-family: inherit;
}

.sc-checkout-form .select2-selection__rendered {
	line-height: 22px !important;
	padding-left: 0 !important;
}

.sc-checkout-form .select2-selection__arrow {
	height: 42px !important;
}

.sc-checkout-form .form-row input:focus,
.sc-checkout-form .form-row textarea:focus,
.sc-checkout-form .form-row select:focus {
	outline: none;
	border-color: var(--sc-primary) !important;
	box-shadow: 0 0 0 3px rgba(122, 74, 31, .12);
}

.sc-checkout-form #place_order,
.sc-checkout-form button#place_order {
	width: 100%;
	background: var(--sc-primary) !important;
	color: #fff !important;
	padding: 16px 22px !important;
	border-radius: var(--sc-radius) !important;
	font-size: 15px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	border: none !important;
	cursor: pointer;
	transition: filter .15s;
	margin-top: 14px;
}

.sc-checkout-form #place_order:hover { filter: brightness(.92); }

/* Payment methods */
.sc-checkout-form #payment {
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius);
	padding: 16px;
}

.sc-checkout-form #payment ul.payment_methods {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sc-checkout-form #payment ul.payment_methods li {
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	padding: 12px 14px;
	margin-bottom: 8px;
}

.sc-checkout-form #payment ul.payment_methods li label {
	font-weight: 600;
	cursor: pointer;
}

.sc-checkout-form #payment .payment_box {
	background: var(--sc-bg-soft);
	padding: 12px 14px;
	border-radius: var(--sc-radius);
	margin-top: 8px;
	font-size: 13px;
}

/* Right-side summary */
.sc-checkout-summary {
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 24px;
	position: sticky;
	top: 30px;
}

.sc-checkout-summary__title {
	font-family: var(--sc-heading-font);
	font-size: 20px;
	color: var(--sc-primary);
	margin: 0 0 16px;
}

.sc-checkout-items {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sc-checkout-item {
	display: flex;
	gap: 12px;
	align-items: center;
}

.sc-checkout-item__thumb {
	position: relative;
	width: 64px;
	height: 64px;
	flex-shrink: 0;
}

.sc-checkout-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--sc-radius);
	display: block;
	border: 1px solid var(--sc-border);
}

.sc-checkout-item__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--sc-primary);
	color: #fff;
	border-radius: 50%;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
}

.sc-checkout-item__info {
	flex: 1 1 auto;
	min-width: 0;
}

.sc-checkout-item__name {
	font-size: 14px;
	color: var(--sc-text);
	font-weight: 500;
}

.sc-checkout-item__price {
	font-size: 14px;
	color: var(--sc-text);
	font-weight: 600;
	white-space: nowrap;
}

.sc-checkout-coupon {
	margin-bottom: 14px;
}

.sc-checkout-coupon input {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background: #fff;
}

.sc-checkout-totals {
	width: 100%;
	margin-bottom: 14px;
	border-collapse: collapse;
}

.sc-checkout-totals td {
	padding: 8px 0;
	font-size: 14px;
	border-bottom: 1px solid var(--sc-border);
}

.sc-checkout-totals .text-right { text-align: right; }

.sc-checkout-total td {
	border-bottom: none;
	padding-top: 14px;
	font-size: 16px;
}

.sc-checkout-total td:last-child {
	color: var(--sc-primary);
	font-weight: 700;
	font-size: 20px;
}

/* Trust badges */
.sc-trust-badges {
	list-style: none;
	padding: 14px 0 0;
	margin: 14px 0 0;
	border-top: 1px solid var(--sc-border);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	font-size: 12px;
}

.sc-trust-badges li {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--sc-muted);
}

.sc-trust-badge__icon {
	font-size: 16px;
}

/* Mobile checkout adjustments */
@media (max-width: 768px) {
	.sc-checkout-form .col2-set .col-1,
	.sc-checkout-form .col2-set .col-2 {
		float: none;
		width: 100%;
	}
}

/* =========================================================================
 * SHOP / ARCHIVE / CATEGORY page
 * ========================================================================= */

.sc-archive {
	background: var(--sc-bg);
	padding: 30px 0 60px;
	color: var(--sc-text);
}

.sc-archive__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sc-archive__header {
	margin-bottom: 28px;
	text-align: center;
}

.sc-archive__title {
	font-family: var(--sc-heading-font);
	font-size: clamp(28px, 4vw, 42px);
	color: var(--sc-primary);
	margin: 0 0 10px;
}

.sc-archive__desc {
	color: var(--sc-muted);
	max-width: 720px;
	margin: 0 auto;
	font-size: 15px;
	line-height: 1.6;
}

.sc-archive__layout {
	display: grid;
	gap: 30px;
}

.sc-archive__layout.has-sidebar {
	grid-template-columns: 1fr;
}

@media (min-width: 960px) {
	.sc-archive__layout.has-sidebar {
		grid-template-columns: 240px 1fr;
		gap: 40px;
		align-items: start;
	}
}

/* Sidebar */
.sc-archive__sidebar {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.sc-filter-card {
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 18px;
}

.sc-filter-card__title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--sc-text);
}

.sc-filter-card select.orderby,
.sc-filter-card .woocommerce-ordering select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background: #fff;
	font-size: 13px;
}

.sc-cat-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sc-cat-list li {
	border-bottom: 1px solid var(--sc-border);
}

.sc-cat-list li:last-child {
	border-bottom: none;
}

.sc-cat-list a {
	display: flex;
	justify-content: space-between;
	padding: 8px 0;
	font-size: 14px;
	color: var(--sc-text);
	text-decoration: none;
}

.sc-cat-list a:hover {
	color: var(--sc-primary);
}

.sc-cat-list span {
	color: var(--sc-muted);
	font-size: 12px;
}

/* Main area */
.sc-archive__main {
	min-width: 0;
}

.sc-archive__results-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--sc-border);
	color: var(--sc-muted);
	font-size: 14px;
}

.sc-archive__ordering-inline select {
	padding: 8px 12px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background: #fff;
	font-size: 13px;
}

/* Product grid */
.sc-product-grid {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid !important;
	gap: 24px !important;
}

@media (max-width: 768px) {
	.sc-product-grid.sc-product-grid--3,
	.sc-product-grid.sc-product-grid--4,
	.sc-product-grid.sc-product-grid--5,
	.sc-product-grid.sc-product-grid--6 {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 480px) {
	.sc-product-grid {
		grid-template-columns: 1fr !important;
		gap: 18px !important;
	}
}

.sc-product-card {
	background: #fff;
	border-radius: var(--sc-radius-lg);
	overflow: hidden;
	position: relative;
	transition: transform .25s ease, box-shadow .25s ease;
	display: flex;
	flex-direction: column;
	border: 1px solid transparent;
}

.sc-product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .1);
	border-color: var(--sc-border);
}

.sc-product-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.sc-product-card__image {
	position: relative;
	background: var(--sc-bg-soft);
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.sc-product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}

.sc-product-card:hover .sc-product-card__image img {
	transform: scale(1.04);
}

.sc-product-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--sc-discount-bg);
	color: #fff;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	z-index: 2;
}

.sc-product-card__body {
	padding: 18px 18px 8px;
	text-align: center;
	flex: 1 1 auto;
}

.sc-product-card__title {
	font-family: var(--sc-heading-font);
	font-size: 17px;
	margin: 0 0 8px;
	color: var(--sc-text);
	line-height: 1.3;
	font-weight: 600;
}

.sc-product-card__rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin-bottom: 6px;
	font-size: 13px;
}

.sc-product-card__rating .star-rating {
	font-size: 13px;
}

.sc-product-card__rating-count {
	color: var(--sc-muted);
	font-size: 12px;
}

.sc-product-card__price {
	font-weight: 700;
	color: var(--sc-text);
	font-size: 16px;
	margin-top: 4px;
}

.sc-product-card__price del {
	color: var(--sc-muted);
	font-weight: 400;
	margin-right: 4px;
	font-size: 13px;
}

.sc-product-card__price ins {
	text-decoration: none;
	color: var(--sc-discount-bg);
}

.sc-product-card__actions {
	padding: 0 18px 18px;
	text-align: center;
}

.sc-product-card__actions .button,
.sc-product-card__actions .add_to_cart_button {
	display: inline-block;
	background: var(--sc-primary) !important;
	color: #fff !important;
	padding: 11px 22px !important;
	border-radius: var(--sc-radius) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	border: none !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	transition: filter .15s, transform .15s !important;
	text-decoration: none !important;
	line-height: 1.2 !important;
	width: 100%;
	max-width: 200px;
}

.sc-product-card__actions .button:hover,
.sc-product-card__actions .add_to_cart_button:hover {
	filter: brightness(.92);
	transform: scale(1.02);
}

.sc-product-card__actions .button:hover,
.sc-product-card__actions .add_to_cart_button:hover {
	filter: brightness(.92);
}

.sc-product-card__actions .added_to_cart {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--sc-primary);
}

/* Pagination */
.sc-archive__pagination {
	margin-top: 30px;
	display: flex;
	justify-content: center;
}

.sc-archive__pagination .page-numbers {
	display: inline-flex;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.sc-archive__pagination .page-numbers li a,
.sc-archive__pagination .page-numbers li span {
	display: inline-block;
	padding: 8px 14px;
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	color: var(--sc-text);
	text-decoration: none;
	font-size: 14px;
	min-width: 36px;
	text-align: center;
}

.sc-archive__pagination .page-numbers li span.current {
	background: var(--sc-primary);
	color: #fff;
	border-color: var(--sc-primary);
}

.sc-archive__pagination .page-numbers li a:hover {
	border-color: var(--sc-primary);
	color: var(--sc-primary);
}

/* Empty state */
.sc-empty-state {
	text-align: center;
	padding: 60px 20px;
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius-lg);
}

.sc-empty-state__icon {
	font-size: 56px;
	margin-bottom: 14px;
}

.sc-empty-state h2 {
	font-family: var(--sc-heading-font);
	color: var(--sc-primary);
	margin: 0 0 8px;
}

/* =========================================================================
 * MY ACCOUNT page
 * ========================================================================= */

.sc-account {
	background: var(--sc-bg);
	padding: 30px 0 60px;
	color: var(--sc-text);
}

.sc-account__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sc-account__title {
	font-family: var(--sc-heading-font);
	font-size: clamp(28px, 4vw, 38px);
	color: var(--sc-primary);
	margin: 0 0 24px;
}

.sc-account__subtitle {
	color: var(--sc-muted);
	margin: 0 0 24px;
}

/* Guest layout (login form) */
.sc-account__guest {
	max-width: 460px;
	margin: 0 auto;
	text-align: center;
}

.sc-account__guest .sc-account-card {
	text-align: left;
}

.sc-account__guest-grid {
	display: grid;
	gap: 20px;
}

/* Logged-in layout */
.sc-account__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 960px) {
	.sc-account__layout {
		grid-template-columns: 240px 1fr;
		gap: 40px;
		align-items: start;
	}
}

.sc-account__nav {
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 14px;
	position: sticky;
	top: 30px;
}

.sc-account-menu {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sc-account-menu__item a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	border-radius: var(--sc-radius);
	color: var(--sc-text);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	transition: background .15s;
}

.sc-account-menu__item a:hover {
	background: #fff;
}

.sc-account-menu__item.is-active a {
	background: var(--sc-primary);
	color: #fff;
}

.sc-account-menu__icon {
	font-size: 18px;
}

.sc-account__content {
	min-width: 0;
}

.sc-account-card {
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 28px;
}

.sc-account-card h2 {
	font-family: var(--sc-heading-font);
	font-size: 22px;
	color: var(--sc-primary);
	margin: 0 0 16px;
}

/* Style WC default forms inside the cards */
.sc-account-card .woocommerce-form,
.sc-account-card form.lost_reset_password,
.sc-account-card form.edit-account {
	max-width: 100%;
}

.sc-account-card .form-row,
.sc-account-card .woocommerce-form-row {
	margin-bottom: 14px;
}

.sc-account-card label {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	font-weight: 500;
}

.sc-account-card input.input-text,
.sc-account-card input[type="text"],
.sc-account-card input[type="email"],
.sc-account-card input[type="password"],
.sc-account-card input[type="tel"],
.sc-account-card textarea,
.sc-account-card select {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	font-size: 14px;
	background: #fff;
	min-height: 44px;
}

.sc-account-card input:focus,
.sc-account-card textarea:focus,
.sc-account-card select:focus {
	outline: none;
	border-color: var(--sc-primary);
	box-shadow: 0 0 0 3px rgba(122, 74, 31, .12);
}

.sc-account-card button,
.sc-account-card .button,
.sc-account-card input[type="submit"] {
	background: var(--sc-primary) !important;
	color: #fff !important;
	padding: 12px 22px !important;
	border-radius: var(--sc-radius) !important;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	border: none !important;
	cursor: pointer;
	transition: filter .15s;
}

.sc-account-card button:hover,
.sc-account-card .button:hover,
.sc-account-card input[type="submit"]:hover {
	filter: brightness(.92);
}

/* Orders table */
.sc-account-card .woocommerce-orders-table,
.sc-account-card .my_account_orders {
	width: 100%;
	border-collapse: collapse;
}

.sc-account-card .woocommerce-orders-table thead {
	background: var(--sc-bg-soft);
}

.sc-account-card .woocommerce-orders-table th,
.sc-account-card .woocommerce-orders-table td {
	padding: 12px 10px;
	text-align: left;
	border-bottom: 1px solid var(--sc-border);
	font-size: 14px;
}

.sc-account-card .woocommerce-orders-table .order-actions .button {
	padding: 8px 14px !important;
	font-size: 12px !important;
	margin-right: 4px;
}

/* Addresses */
.sc-account-card .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 720px) {
	.sc-account-card .col2-set {
		grid-template-columns: 1fr 1fr;
	}
}

.sc-account-card .woocommerce-Address {
	background: var(--sc-bg-soft);
	border-radius: var(--sc-radius);
	padding: 18px;
}

.sc-account-card .woocommerce-Address-title h3 {
	font-family: var(--sc-heading-font);
	font-size: 18px;
	color: var(--sc-primary);
	margin: 0 0 8px;
}

.sc-account-card .woocommerce-Address-title .edit {
	font-size: 12px;
	color: var(--sc-primary);
	text-decoration: none;
}

/* =========================================================================
 * THANK YOU / Order Received page
 * ========================================================================= */

.sc-thankyou {
	background: var(--sc-bg);
	padding: 40px 0 60px;
	color: var(--sc-text);
}

.sc-thankyou__wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sc-thankyou__hero {
	text-align: center;
	padding: 30px 20px 40px;
}

.sc-thankyou__check {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #00a32a;
	color: #fff;
	font-size: 40px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 18px;
	box-shadow: 0 0 0 8px rgba(0, 163, 42, .12);
	animation: scCheckPop .4s ease-out;
}

@keyframes scCheckPop {
	0% { transform: scale(0); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
}

.sc-thankyou__title {
	font-family: var(--sc-heading-font);
	font-size: clamp(28px, 4vw, 42px);
	color: var(--sc-primary);
	margin: 0 0 10px;
}

.sc-thankyou__sub {
	color: var(--sc-muted);
	font-size: 15px;
	margin: 0 0 6px;
}

.sc-thankyou__email {
	color: var(--sc-text);
	font-size: 14px;
	margin: 0;
}

.sc-thankyou__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 960px) {
	.sc-thankyou__grid {
		grid-template-columns: 1.6fr 1fr;
		gap: 32px;
		align-items: start;
	}
}

.sc-thankyou-card {
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-lg);
	padding: 24px;
	margin-bottom: 16px;
}

.sc-thankyou-card h2 {
	font-family: var(--sc-heading-font);
	font-size: 20px;
	color: var(--sc-primary);
	margin: 0 0 16px;
}

.sc-thankyou-card address {
	font-style: normal;
	color: var(--sc-text);
	line-height: 1.6;
}

.sc-thankyou-card--meta {
	padding: 18px 24px;
}

.sc-thankyou-meta-row {
	display: flex;
	justify-content: space-between;
	padding: 8px 0;
	border-bottom: 1px solid var(--sc-border);
	font-size: 14px;
}

.sc-thankyou-meta-row:last-child {
	border-bottom: none;
}

.sc-thankyou-meta-row span {
	color: var(--sc-muted);
}

/* Items list */
.sc-thankyou-items {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.sc-thankyou-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--sc-border);
}

.sc-thankyou-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.sc-thankyou-item__thumb {
	position: relative;
	width: 64px;
	height: 64px;
	flex-shrink: 0;
}

.sc-thankyou-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--sc-radius);
	border: 1px solid var(--sc-border);
}

.sc-thankyou-item__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--sc-primary);
	color: #fff;
	border-radius: 50%;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
}

.sc-thankyou-item__info {
	flex: 1 1 auto;
	min-width: 0;
}

.sc-thankyou-item__name {
	font-weight: 600;
	color: var(--sc-text);
	font-size: 14px;
}

.sc-thankyou-item__meta {
	color: var(--sc-muted);
	font-size: 12px;
	margin-top: 4px;
}

.sc-thankyou-item__price {
	font-weight: 600;
	white-space: nowrap;
	color: var(--sc-text);
}

.sc-thankyou-totals {
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
}

.sc-thankyou-totals td {
	padding: 8px 0;
	font-size: 14px;
	border-bottom: 1px solid var(--sc-border);
}

.sc-thankyou-totals .text-right {
	text-align: right;
}

.sc-thankyou-totals tr.is-grand td {
	border-bottom: none;
	padding-top: 14px;
	font-size: 16px;
	font-weight: 700;
}

.sc-thankyou-totals tr.is-grand td:last-child {
	color: var(--sc-primary);
	font-size: 20px;
}

/* =========================================================================
 * v3.9: AGGRESSIVE OVERRIDES (theme cleanup)
 *
 * Molti temi (Astra, Hello Elementor, GeneratePress, Storefront, Twenty XX)
 * applicano default rosa/viola ai pulsanti WooCommerce e fanno spazio zero
 * intorno al testo nei totali. Questo blocco va in fondo al file così la
 * specificità + ordine vincono sui temi.
 * ========================================================================= */

/* ---- Tutti i pulsanti dentro i nostri template usano --sc-primary ---- */
.sc-product .button,
.sc-product input[type="submit"],
.sc-product button[type="submit"],
.sc-cart-page .button,
.sc-cart-page input[type="submit"],
.sc-cart-page button[type="submit"],
.sc-cart-page button[name="apply_coupon"],
.sc-cart-page button[name="update_cart"],
.sc-checkout-page .button,
.sc-checkout-page input[type="submit"],
.sc-checkout-page button[type="submit"],
.sc-checkout-page button[name="apply_coupon"],
.sc-account .button,
.sc-account input[type="submit"],
.sc-account button[type="submit"],
.sc-thankyou .button {
	background-color: var(--sc-primary) !important;
	color: #fff !important;
	border: 1px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	padding: 12px 22px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	text-decoration: none !important;
	transition: filter .15s !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.sc-product .button:hover,
.sc-product input[type="submit"]:hover,
.sc-product button[type="submit"]:hover,
.sc-cart-page .button:hover,
.sc-cart-page button:hover,
.sc-checkout-page .button:hover,
.sc-checkout-page button:hover,
.sc-account .button:hover,
.sc-thankyou .button:hover {
	filter: brightness(.92) !important;
	background-color: var(--sc-primary) !important;
	color: #fff !important;
}

/* Variant "ghost" — bianco con bordo primary */
.sc-product .sc-btn--ghost,
.sc-cart-page .sc-btn--ghost,
.sc-checkout-page .sc-btn--ghost {
	background-color: #fff !important;
	color: var(--sc-primary) !important;
	border-color: var(--sc-primary) !important;
}

.sc-product .sc-btn--ghost:hover,
.sc-cart-page .sc-btn--ghost:hover,
.sc-checkout-page .sc-btn--ghost:hover {
	background-color: var(--sc-primary) !important;
	color: #fff !important;
}

/* Link "Continua lo shopping", "Rimuovi", ecc. */
.sc-cart-page .sc-link,
.sc-checkout-page .sc-link,
.sc-cart-page a:not(.button):not(.sc-btn):not(.remove),
.sc-product .sc-reviews-link {
	color: var(--sc-primary) !important;
}

.sc-cart-page .sc-link:hover {
	color: var(--sc-primary) !important;
	text-decoration: underline !important;
}

/* Pulsanti +/- quantity — riconferma colore neutro (no theme leakage) */
.sc-product .sc-qty-btn,
.sc-cart-page .sc-qty-btn,
.sc-checkout-page .sc-qty-btn {
	background-color: #fff !important;
	color: var(--sc-text) !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 0 !important;
	font-weight: 400 !important;
	font-size: 22px !important;
	width: 44px !important;
	height: auto !important;
	min-width: 44px !important;
}

.sc-product .sc-qty-btn:hover,
.sc-cart-page .sc-qty-btn:hover,
.sc-checkout-page .sc-qty-btn:hover {
	background-color: var(--sc-bg-soft) !important;
	color: var(--sc-primary) !important;
}

.sc-product .quantity,
.sc-cart-page .quantity,
.sc-checkout-page .quantity {
	border-color: var(--sc-border) !important;
}

/* ---- Padding celle totali (testo non più attaccato ai bordi) ---- */
.sc-cart-totals td,
.sc-checkout-totals td,
.sc-thankyou-totals td {
	padding: 12px 16px !important;
}

.sc-cart-totals .text-right,
.sc-checkout-totals .text-right,
.sc-thankyou-totals .text-right {
	padding-right: 16px !important;
}

/* ---- MINI CART: titolo non più attaccato alla foto, wrap multi-riga ---- */
#sc-side-cart ul.cart_list,
#sc-side-cart ul.product_list_widget {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

#sc-side-cart ul.cart_list li,
#sc-side-cart ul.product_list_widget li {
	display: block !important;
	padding: 16px 22px 16px 22px !important;
	border-bottom: 1px solid var(--sc-border) !important;
	background: none !important;
	margin: 0 !important;
	position: relative !important;
}

/* Il link <a> principale che contiene immagine + titolo diventa flex */
#sc-side-cart ul.cart_list li > a:not(.remove),
#sc-side-cart ul.product_list_widget li > a:not(.remove) {
	display: flex !important;
	align-items: flex-start !important;
	gap: 14px !important;
	text-decoration: none !important;
	color: var(--sc-text) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	padding-right: 30px !important;  /* spazio per la × in alto a destra */
	margin: 0 !important;
}

#sc-side-cart ul.cart_list li > a:not(.remove):hover,
#sc-side-cart ul.product_list_widget li > a:not(.remove):hover {
	color: var(--sc-primary) !important;
}

/* Immagine del prodotto dentro il link */
#sc-side-cart ul.cart_list li > a:not(.remove) img,
#sc-side-cart ul.product_list_widget li > a:not(.remove) img {
	width: 60px !important;
	height: 60px !important;
	flex-shrink: 0 !important;
	margin: 0 !important;
	float: none !important;
	object-fit: cover !important;
	border-radius: var(--sc-radius) !important;
	border: 1px solid var(--sc-border) !important;
}

/* Quantità "2 × 8,00 €" sotto il link */
#sc-side-cart ul.cart_list li .quantity,
#sc-side-cart ul.product_list_widget li .quantity {
	display: block !important;
	margin: 8px 0 0 74px !important;  /* 60 (img) + 14 (gap) = 74 → allineato col titolo */
	color: var(--sc-muted) !important;
	font-size: 13px !important;
	font-weight: 400 !important;
}

#sc-side-cart ul.cart_list li .quantity .amount,
#sc-side-cart ul.product_list_widget li .quantity .amount {
	color: var(--sc-text) !important;
	font-weight: 700 !important;
}

/* Pulsante "×" Rimuovi posizionato in alto a destra */
#sc-side-cart ul.cart_list li a.remove,
#sc-side-cart ul.product_list_widget li a.remove {
	position: absolute !important;
	top: 14px !important;
	right: 18px !important;
	background: none !important;
	border: none !important;
	color: #b00020 !important;
	font-size: 20px !important;
	width: 24px !important;
	height: 24px !important;
	line-height: 22px !important;
	text-align: center !important;
	border-radius: 50% !important;
	text-decoration: none !important;
	font-weight: 700 !important;
}

#sc-side-cart ul.cart_list li a.remove:hover,
#sc-side-cart ul.product_list_widget li a.remove:hover {
	background: #fee !important;
	color: #d00 !important;
}

/* ---- SHOP ARCHIVE: griglia stabile anche con pochi prodotti ---- */
.sc-archive .sc-product-grid {
	justify-content: start !important;
	justify-items: stretch !important;
	align-items: stretch !important;
}

.sc-archive .sc-product-card {
	min-width: 200px;
	width: 100% !important;
}

/* In caso il main column si "strozzi" forziamo il fr a riempire */
.sc-archive__main {
	width: 100% !important;
	min-width: 0 !important; /* permette al grid di restringersi senza overflow */
}

/* ---- "Categoria: Senza categoria" e altri meta — link non rosa ---- */
.sc-product__meta a,
.sc-product__breadcrumb a {
	color: var(--sc-primary) !important;
	text-decoration: none !important;
}

.sc-product__meta a:hover,
.sc-product__breadcrumb a:hover {
	text-decoration: underline !important;
}

/* =========================================================================
 * v3.10: COUPON LINKS, WC NOTICES, VARIATION PRICE
 * ========================================================================= */

/* ---- Link "Hai un codice promo? Fai clic qui..." ---- */
.sc-checkout-page .showcoupon,
.sc-cart-page .showcoupon,
.sc-checkout-page .woocommerce-form-coupon-toggle a,
.sc-checkout-page .checkout_coupon_toggle a,
.sc-checkout-page .woocommerce-info a:not(.button),
.sc-cart-page .woocommerce-info a:not(.button),
.woocommerce .showcoupon {
	color: var(--sc-primary) !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

.sc-checkout-page .showcoupon:hover,
.sc-cart-page .showcoupon:hover,
.woocommerce .showcoupon:hover {
	color: var(--sc-primary) !important;
	filter: brightness(.85);
}

/* ---- WooCommerce notices (success, info, error, warning) ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-message,
.wc-block-components-notice-banner {
	background: var(--sc-bg-soft) !important;
	border: 1px solid var(--sc-border) !important;
	border-left: 4px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	color: var(--sc-text) !important;
	padding: 16px 20px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .03) !important;
	margin: 0 0 20px !important;
	font-size: 14px !important;
	list-style: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
}

.woocommerce-error {
	border-left-color: #b00020 !important;
}

/* Icona ✓ a sinistra (lo fa già WC con uno pseudo) — rispettiamone lo spacing */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	color: var(--sc-primary) !important;
	font-size: 16px !important;
	margin-right: 8px !important;
}

.woocommerce-error::before {
	color: #b00020 !important;
}

/* Pulsante "Visualizza carrello" dentro la notice — brand colors */
.woocommerce-message .button,
.woocommerce-message a.button,
.woocommerce-message .wc-forward,
.woocommerce-info .button,
.woocommerce-info a.button {
	background: var(--sc-primary) !important;
	color: #fff !important;
	border: 1px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	padding: 10px 18px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	text-decoration: none !important;
	text-transform: none !important;
	transition: filter .15s !important;
	box-shadow: none !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce-message .button:hover,
.woocommerce-message a.button:hover,
.woocommerce-info .button:hover {
	background: var(--sc-primary) !important;
	color: #fff !important;
	filter: brightness(.92);
}

/* ---- PREZZO VARIAZIONE — uniformato al prezzo normale ---- */
/* Resetto i colori "creativi" del tema sui prezzi dentro la pagina prodotto */
.sc-product .sc-product__price,
.sc-product .sc-product__price *,
.sc-product .price,
.sc-product .price > *,
.sc-product .woocommerce-Price-amount,
.sc-product .woocommerce-Price-amount *,
.sc-product .woocommerce-variation-price,
.sc-product .woocommerce-variation-price *,
.sc-product .single_variation_wrap .woocommerce-variation-price .price,
.sc-product .single_variation .woocommerce-Price-amount,
.sc-product__atc .woocommerce-variation-price,
.sc-product__atc .woocommerce-variation-price * {
	color: var(--sc-text) !important;
	background: none !important;
}

/* Tipografia uniforme per il prezzo variazione = prezzo principale */
.sc-product__atc .single_variation_wrap .woocommerce-variation-price,
.sc-product__atc .single_variation_wrap .woocommerce-variation-price .price,
.sc-product__atc .single_variation .woocommerce-Price-amount {
	font-size: 28px !important;
	font-weight: 700 !important;
	font-family: inherit !important;
	line-height: 1.2 !important;
	margin: 10px 0 14px !important;
	display: block !important;
}

/* "Del" (prezzo barrato per sconto) — muted */
.sc-product .price del,
.sc-product .price del *,
.sc-product__price del,
.sc-product__price del * {
	color: var(--sc-muted) !important;
	font-weight: 400 !important;
	text-decoration: line-through !important;
	font-size: .75em !important;
	margin-right: 8px !important;
}

/* "Ins" (prezzo nuovo dopo sconto) — colore normale, non più highlight giallo/verde */
.sc-product .price ins,
.sc-product__price ins {
	text-decoration: none !important;
	background: none !important;
	color: var(--sc-text) !important;
	font-weight: 700 !important;
}

/* =========================================================================
 * v3.11: SHOP ARCHIVE ALIGNMENT + CHECKOUT OVERFLOW + WC ICONS
 * ========================================================================= */

/* ---- SHOP: prodotti allineati a SINISTRA, non a destra ----
   WC applica float:left+width:22.05% sui .product, oppure alcuni temi
   usano flex-end. Forziamo grid pulito left-aligned. */
.sc-archive ul.products,
.sc-archive .sc-product-grid {
	display: grid !important;
	grid-auto-flow: row !important;
	justify-content: start !important;
	justify-items: stretch !important;
	align-content: start !important;
	align-items: stretch !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	float: none !important;
	width: 100% !important;
}

.sc-archive ul.products > li,
.sc-archive ul.products > li.product,
.sc-archive .sc-product-grid > li {
	display: flex !important;
	flex-direction: column !important;
	float: none !important;
	clear: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	justify-self: stretch !important;
}

/* Card flex column con i pulsanti spinti in fondo (così sono allineati
   verticalmente tra card di altezze diverse). */
.sc-archive .sc-product-card {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
}

.sc-archive .sc-product-card__link {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
}

.sc-archive .sc-product-card__body {
	flex: 1 1 auto !important;
}

.sc-archive .sc-product-card__actions {
	margin-top: auto !important;  /* push actions to bottom */
	padding-top: 8px;
}

/* Tutti i pulsanti delle card hanno la stessa altezza (anche se il testo
   è di lunghezze diverse, es. "Aggiungi al carrello" vs "Scegli"). */
.sc-archive .sc-product-card__actions .button,
.sc-archive .sc-product-card__actions .add_to_cart_button,
.sc-archive .sc-product-card__actions a.button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 48px !important;
	max-width: 220px !important;
	width: 100% !important;
	text-align: center !important;
	line-height: 1.25 !important;
	white-space: normal !important;
	padding: 10px 16px !important;
	background: var(--sc-primary) !important;
	color: #fff !important;
	border: 1px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	text-transform: uppercase !important;
	letter-spacing: .03em !important;
}

/* ---- CHECKOUT: previeni overflow orizzontale ---- */
.sc-checkout-page,
.sc-checkout-page * {
	box-sizing: border-box !important;
}

.sc-checkout-page {
	overflow-x: hidden !important;
}

.sc-checkout-page__wrap {
	max-width: 1200px !important;
	width: 100% !important;
	overflow-x: hidden !important;
}

.sc-checkout-grid,
.sc-checkout-grid > * {
	min-width: 0 !important;
	max-width: 100% !important;
}

.sc-checkout-form,
.sc-checkout-form .form-row,
.sc-checkout-form .form-row input,
.sc-checkout-form .form-row select,
.sc-checkout-form .form-row textarea,
.sc-checkout-form .select2-container,
.sc-checkout-form .select2-selection {
	max-width: 100% !important;
	width: 100% !important;
}

.sc-checkout-form table,
.sc-checkout-summary table {
	max-width: 100% !important;
	width: 100% !important;
	table-layout: auto;
	word-wrap: break-word;
}

.sc-checkout-page img,
.sc-checkout-page iframe {
	max-width: 100% !important;
	height: auto !important;
}

/* ---- WC NOTICE/INFO: nascondi l'icona "□" del font WC ---- */
.sc-cart-page .woocommerce-info::before,
.sc-cart-page .woocommerce-message::before,
.sc-cart-page .woocommerce-error::before,
.sc-checkout-page .woocommerce-info::before,
.sc-checkout-page .woocommerce-message::before,
.sc-checkout-page .woocommerce-error::before,
.sc-product .woocommerce-info::before,
.sc-product .woocommerce-message::before,
.sc-product .woocommerce-error::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before {
	display: none !important;
	content: '' !important;
}

/* ---- PRIVACY TEXT al checkout: clean box ---- */
.sc-checkout-page .woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text {
	margin: 18px 0 !important;
	padding: 14px 18px !important;
	background: var(--sc-bg-soft) !important;
	border: 1px solid var(--sc-border) !important;
	border-left: 3px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	font-size: 13px !important;
	color: var(--sc-muted) !important;
	line-height: 1.5 !important;
	clear: both !important;
	overflow: hidden;
}

.sc-checkout-page .woocommerce-privacy-policy-text p,
.woocommerce-privacy-policy-text p {
	margin: 0 !important;
	color: inherit !important;
}

.sc-checkout-page .woocommerce-privacy-policy-text a,
.woocommerce-privacy-policy-text a {
	color: var(--sc-primary) !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

/* ---- "Hai un codice promozionale?" info box pulito ---- */
.sc-checkout-page .woocommerce-info,
.sc-cart-page .woocommerce-info {
	background: var(--sc-bg-soft) !important;
	border: 1px solid var(--sc-border) !important;
	border-left: 3px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	padding: 14px 18px !important;
	margin: 0 0 18px !important;
	color: var(--sc-text) !important;
	font-size: 14px !important;
	box-shadow: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}

.sc-checkout-page .woocommerce-info a,
.sc-cart-page .woocommerce-info a {
	color: var(--sc-primary) !important;
	text-decoration: underline !important;
}

/* =========================================================================
 * v3.12: NUCLEAR OVERFLOW PROTECTION (checkout)
 *
 * Quando il browser mostra scrollbar orizzontale, c'è qualche figlio che
 * eccede la viewport. Blocchiamo l'overflow a livello body+wrapper così
 * non importa quale plugin/widget di pagamento inietta contenuto largo.
 * ========================================================================= */

body.woocommerce-checkout,
body.woocommerce-checkout #page,
body.woocommerce-checkout .site,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout main,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout #content,
body.woocommerce-checkout .ast-container,
body.woocommerce-checkout .elementor {
	overflow-x: hidden !important;
	max-width: 100% !important;
}

body.woocommerce-checkout {
	overflow-x: hidden !important;
}

/* Il wrapper del checkout */
.sc-checkout-page,
.sc-checkout-page__wrap {
	overflow-x: hidden !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Tutti i discendenti del checkout — forzati a non sforare */
.sc-checkout-page,
.sc-checkout-page *:not(svg):not(path):not(iframe) {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* iframe (es. Stripe / PayPal embed) — forziamo larghezza piena ma non oltre */
.sc-checkout-page iframe,
.sc-checkout-page embed,
.sc-checkout-page object {
	max-width: 100% !important;
	width: 100% !important;
}

/* ---- WC col2-set: SINGLE COLUMN stile Shopify (un campo sotto l'altro) ----
   Eliminato il 2-col split che lasciava buchi quando billing e shipping
   avevano numero diverso di campi. Adesso tutto stacked, full width. */
.sc-checkout-page .col2-set,
.sc-checkout-page #customer_details,
.sc-checkout-page #customer_details .col2-set {
	display: block !important;
	grid-template-columns: none !important;
	width: 100% !important;
}

.sc-checkout-page .col2-set .col-1,
.sc-checkout-page .col2-set .col-2,
.sc-checkout-page #customer_details .col-1,
.sc-checkout-page #customer_details .col-2 {
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
	display: block !important;
}

.sc-checkout-page .col2-set .col-2:last-child,
.sc-checkout-page #customer_details .col-2:last-child {
	margin-bottom: 0 !important;
}

/* Singoli form-row WC: niente float, larghezza piena */
.sc-checkout-page .form-row,
.sc-checkout-page p.form-row,
.sc-checkout-page .woocommerce-form-row {
	float: none !important;
	clear: none !important;
	width: 100% !important;
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Field wrapper (billing/shipping) come grid 2-col per coppie correlate.
   form-row-first / form-row-last → side-by-side (nome+cognome).
   form-row-wide → full width (indirizzo, email, ecc.).
   Su mobile <600px → tutto single column. */
.sc-checkout-page .woocommerce-billing-fields__field-wrapper,
.sc-checkout-page .woocommerce-shipping-fields__field-wrapper,
.sc-checkout-page .woocommerce-additional-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 0 16px !important;
	width: 100% !important;
}

.sc-checkout-page .form-row-wide,
.sc-checkout-page .woocommerce-billing-fields__field-wrapper > .form-row.notes,
.sc-checkout-page .form-row#order_comments_field,
.sc-checkout-page .form-row#shipping_address_2_field,
.sc-checkout-page .form-row#billing_address_2_field,
.sc-checkout-page .form-row#billing_address_1_field,
.sc-checkout-page .form-row#shipping_address_1_field,
.sc-checkout-page .form-row#billing_company_field,
.sc-checkout-page .form-row#shipping_company_field,
.sc-checkout-page .form-row#billing_country_field,
.sc-checkout-page .form-row#shipping_country_field,
.sc-checkout-page .form-row#billing_email_field,
.sc-checkout-page .form-row#billing_phone_field {
	grid-column: 1 / -1 !important;
}

.sc-checkout-page .form-row-first {
	grid-column: 1 !important;
}

.sc-checkout-page .form-row-last {
	grid-column: 2 !important;
}

/* Mobile: tutto in singola colonna */
@media (max-width: 600px) {
	.sc-checkout-page .woocommerce-billing-fields__field-wrapper,
	.sc-checkout-page .woocommerce-shipping-fields__field-wrapper,
	.sc-checkout-page .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: 1fr !important;
	}

	.sc-checkout-page .form-row-first,
	.sc-checkout-page .form-row-last {
		grid-column: 1 / -1 !important;
	}
}

/* Payment methods area */
.sc-checkout-page #payment,
.sc-checkout-page .woocommerce-checkout-payment,
.sc-checkout-page ul.payment_methods,
.sc-checkout-page ul.payment_methods li,
.sc-checkout-page .payment_box {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* "Il tuo ordine" right column — niente overflow */
.sc-checkout-summary,
.sc-checkout-summary * {
	max-width: 100% !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
}

/* Express checkout buttons wrap */
.sc-express-checkout__buttons {
	max-width: 100% !important;
}

.sc-express-checkout__buttons > * {
	max-width: 100% !important;
	flex-shrink: 1 !important;
}

/* Stesso trattamento per cart e my-account che potrebbero overflow */
body.woocommerce-cart,
body.woocommerce-cart #page,
body.woocommerce-cart .site-main,
body.woocommerce-cart .entry-content,
body.woocommerce-account,
body.woocommerce-account #page,
body.woocommerce-account .site-main,
body.woocommerce-account .entry-content {
	overflow-x: hidden !important;
	max-width: 100% !important;
}

.sc-cart-page,
.sc-cart-page *:not(svg):not(path):not(iframe),
.sc-account,
.sc-account *:not(svg):not(path):not(iframe) {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* =========================================================================
 * v3.13: LATERAL PADDING + WC H3 SIZE FIX
 * ========================================================================= */

/* ---- Padding laterale su tutti i wrap (respiro dai bordi viewport) ---- */
.sc-checkout-page__wrap,
.sc-cart-page__wrap,
.sc-account__wrap,
.sc-thankyou__wrap,
.sc-archive__wrap {
	padding-left: 40px !important;
	padding-right: 40px !important;
	margin: 0 auto !important;
}

@media (max-width: 768px) {
	.sc-checkout-page__wrap,
	.sc-cart-page__wrap,
	.sc-account__wrap,
	.sc-thankyou__wrap,
	.sc-archive__wrap {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* ---- WC h3 nel checkout — non più enormi ----
   I titoli "Dettagli di fatturazione", "Informazioni aggiuntive",
   "Spedire ad un diverso indirizzo?", "Il tuo ordine" ereditano
   dal tema font-size enormi (es. Playfair 40px). Forziamo dimensioni
   coerenti con i nostri titoli di sezione. */
.sc-checkout-page h3,
.sc-checkout-section h3,
.sc-checkout-form h3,
.sc-checkout-page #customer_details h3,
.sc-checkout-page #order_review_heading,
.sc-checkout-page .woocommerce-additional-fields h3,
.sc-checkout-page .woocommerce-billing-fields h3,
.sc-checkout-page .woocommerce-shipping-fields h3,
.sc-cart-page h3 {
	font-family: inherit !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	color: var(--sc-text) !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1.3 !important;
}

/* "Spedire ad un diverso indirizzo?" — checkbox toggle, ancora più piccolo */
.sc-checkout-page #ship-to-different-address {
	font-size: 14px !important;
	font-weight: 500 !important;
	margin: 18px 0 10px !important;
	color: var(--sc-muted) !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.sc-checkout-page #ship-to-different-address input[type="checkbox"] {
	margin: 0 !important;
	width: auto !important;
	min-height: 0 !important;
	flex-shrink: 0 !important;
}

/* ---- Notice box "Hai un codice promo" più compatto ---- */
.sc-checkout-page .woocommerce-form-coupon-toggle,
.sc-cart-page .woocommerce-form-coupon-toggle {
	margin: 0 0 22px !important;
}

.sc-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info,
.sc-cart-page .woocommerce-form-coupon-toggle .woocommerce-info {
	padding: 12px 18px !important;
	font-size: 13px !important;
}

/* ---- Form-row label più Shopify-like (più piccolo, più tight) ---- */
.sc-checkout-page .form-row label,
.sc-checkout-page .woocommerce-form-row label {
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--sc-text) !important;
	margin-bottom: 6px !important;
	display: block !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* "Note sull'ordine (facoltativo)" e simili textarea */
.sc-checkout-page textarea.input-text {
	min-height: 100px !important;
	padding: 11px 14px !important;
	resize: vertical;
}

/* ---- Card section: respiro interno aumentato ---- */
.sc-checkout-section {
	padding: 28px !important;
}

@media (max-width: 768px) {
	.sc-checkout-section {
		padding: 20px !important;
	}
}

/* =========================================================================
 * v3.15: RELATED PRODUCTS + RECENTLY VIEWED
 * ========================================================================= */

.sc-related-products,
.sc-recently-viewed {
	margin-top: 60px;
	padding: 40px 0 0;
	border-top: 1px solid var(--sc-border);
}

.sc-related-products__title,
.sc-recently-viewed__title {
	font-family: var(--sc-heading-font) !important;
	font-size: clamp(24px, 3vw, 30px) !important;
	color: var(--sc-primary) !important;
	margin: 0 0 30px !important;
	text-align: center;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border: none !important;
	padding: 0 !important;
	background: none !important;
}

.sc-related-products__grid,
.sc-recently-viewed__grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 24px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.sc-related-products__grid,
	.sc-recently-viewed__grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (max-width: 768px) {
	.sc-related-products__grid,
	.sc-recently-viewed__grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px !important;
	}
}

@media (max-width: 480px) {
	.sc-related-products__grid,
	.sc-recently-viewed__grid {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================================================
 * v3.16: PAYMENT SECTION (right column) + TRUST CARDS
 * ========================================================================= */

/* Nascondi la tabella prodotti/subtotale duplicata DENTRO #order_review.
   La nostra "Il tuo ordine" custom mostra già items+totali sopra. */
.sc-checkout-page #order_review > .shop_table,
.sc-checkout-page .woocommerce-checkout-review-order-table {
	display: none !important;
}

/* Sezione pagamento spostata a destra — adatta al box più stretto */
.sc-checkout-grid__right .sc-checkout-payment-section {
	padding: 22px !important;
	margin-top: 18px !important;
}

.sc-checkout-grid__right .sc-checkout-section__title {
	font-size: 18px !important;
	margin: 0 0 16px !important;
}

/* Payment methods (radio list) — più compatti per il box destro */
.sc-checkout-page #payment {
	background: var(--sc-bg-soft) !important;
	border-radius: var(--sc-radius) !important;
	padding: 14px !important;
	margin: 0 !important;
}

.sc-checkout-page #payment ul.payment_methods {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sc-checkout-page #payment ul.payment_methods li {
	background: #fff !important;
	border: 1px solid var(--sc-border) !important;
	border-radius: var(--sc-radius) !important;
	padding: 12px 14px !important;
	margin-bottom: 8px !important;
	list-style: none !important;
}

.sc-checkout-page #payment ul.payment_methods li:last-child {
	margin-bottom: 0 !important;
}

.sc-checkout-page #payment ul.payment_methods li label {
	font-weight: 600 !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 0 !important;
}

.sc-checkout-page #payment ul.payment_methods li input[type="radio"] {
	margin: 0 8px 0 0 !important;
	flex-shrink: 0 !important;
}

.sc-checkout-page #payment .payment_box {
	background: var(--sc-bg-soft) !important;
	padding: 12px 14px !important;
	border-radius: var(--sc-radius) !important;
	margin-top: 8px !important;
	font-size: 13px !important;
	color: var(--sc-muted) !important;
	border: 1px solid var(--sc-border) !important;
}

/* "Effettua ordine" button — già stilato altrove, qui rinforziamo */
.sc-checkout-page #place_order {
	width: 100% !important;
	margin-top: 16px !important;
	padding: 16px 20px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
}

/* "Messaggio nessun metodo di pagamento disponibile" più discreto */
.sc-checkout-page #payment .woocommerce-notice,
.sc-checkout-page #payment .woocommerce-NoticeGroup,
.sc-checkout-page #payment > .woocommerce-info {
	font-size: 13px !important;
	margin: 0 0 12px !important;
}

/* ---- Trust payment signals (lucchetto + carte) ---- */
.sc-payment-trust {
	margin-top: 14px;
	padding: 16px 18px;
	background: var(--sc-bg-soft);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	text-align: center;
}

.sc-payment-trust__secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 13px;
	color: var(--sc-text);
	font-weight: 500;
	margin-bottom: 12px;
}

.sc-payment-trust__lock {
	color: #00691f;
	flex-shrink: 0;
}

.sc-payment-trust__cards {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	align-items: center;
}

/* Singolo badge metodo di pagamento */
.sc-pm {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 26px;
	padding: 0 8px;
	background: #fff;
	border: 1px solid var(--sc-border);
	border-radius: 4px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .05em;
	color: var(--sc-text);
	text-transform: uppercase;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
	gap: 2px;
}

.sc-pm--visa     { color: #1a1f71; font-family: Arial, sans-serif; font-style: italic; font-weight: 900; }
.sc-pm--amex     { color: #2e77bb; }
.sc-pm--paypal   { color: #003087; font-style: italic; }
.sc-pm--klarna   { color: #000; background: #ffa8cd; border-color: #ffa8cd; }
.sc-pm--apple    { color: #000; }
.sc-pm--gpay     { color: #5f6368; }
.sc-pm--apple::before { content: ''; display: inline-block; }

/* Mastercard: due cerchi sovrapposti */
.sc-pm--mc {
	padding: 0 10px;
}

.sc-pm__circle {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
}

.sc-pm__circle--red    { background: #eb001b; }
.sc-pm__circle--yellow { background: #f79e1b; margin-left: -6px; mix-blend-mode: multiply; }

/* Su mobile, la sezione payment va sotto la summary ma deve restare leggibile */
@media (max-width: 960px) {
	.sc-checkout-grid__right .sc-checkout-payment-section {
		padding: 18px !important;
	}
}

/* =========================================================================
 * v3.20: DEFENSIVE STYLES — bottoni e riepilogo sempre brand
 *
 * Selettori ad altissima specificità per blindare il colore brand sul
 * pulsante "Effettua ordine" e sulla card "Il tuo ordine", a prescindere
 * dal tema attivo o da plugin terzi che provano a sovrascrivere.
 * ========================================================================= */

body.woocommerce-checkout .sc-checkout-page #place_order,
body.woocommerce-checkout .sc-checkout-page button#place_order,
body.woocommerce-checkout .sc-checkout-page button[name="woocommerce_checkout_place_order"],
body.woocommerce .sc-checkout-page #place_order {
	background-color: var(--sc-primary) !important;
	color: #fff !important;
	border: 1px solid var(--sc-primary) !important;
	border-radius: var(--sc-radius) !important;
	padding: 16px 22px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	width: 100% !important;
	margin-top: 16px !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	font-family: inherit !important;
}

body.woocommerce-checkout .sc-checkout-page #place_order:hover,
body.woocommerce .sc-checkout-page #place_order:hover {
	filter: brightness(.92) !important;
	background-color: var(--sc-primary) !important;
	color: #fff !important;
}

/* Riepilogo "Il tuo ordine" — sfondo crema brand sempre */
body.woocommerce-checkout .sc-checkout-page .sc-checkout-summary,
body.woocommerce .sc-checkout-page .sc-checkout-summary {
	background: var(--sc-bg-soft) !important;
	border: 1px solid var(--sc-border) !important;
	border-radius: var(--sc-radius-lg) !important;
	padding: 24px !important;
	position: sticky;
	top: 30px;
}

body.woocommerce-checkout .sc-checkout-summary__title,
body.woocommerce-checkout .sc-checkout-grid__right h2.sc-checkout-summary__title {
	font-family: var(--sc-heading-font) !important;
	font-size: 20px !important;
	color: var(--sc-primary) !important;
	margin: 0 0 16px !important;
	font-weight: 700 !important;
	background: none !important;
	padding: 0 !important;
	border: none !important;
}

/* Totale finale colore primary forte */
body.woocommerce-checkout .sc-checkout-totals .sc-checkout-total td:last-child,
body.woocommerce-checkout .sc-checkout-page .sc-checkout-total td:last-child {
	color: var(--sc-primary) !important;
	font-weight: 700 !important;
	font-size: 20px !important;
}

/* =========================================================================
 * v3.21: BULLETPROOF SHORTCODE WRAPPER
 *
 * Quando lo shortcode [shopcraft_checkout] è incluso DENTRO una pagina
 * Elementor, il container del widget shortcode di Elementor può iniettare
 * padding, max-width, background diversi dal nostro template. Forziamo
 * il wrapper .sc-checkout-page ad essere auto-sufficiente: stesso aspetto
 * ovunque venga renderizzato (template diretto OR shortcode in Elementor).
 * ========================================================================= */

/* Reset Elementor container constraints around our shortcode */
.elementor .sc-checkout-page,
.elementor-widget-shortcode .sc-checkout-page,
.elementor-widget-container .sc-checkout-page,
.e-con-inner .sc-checkout-page,
.elementor .sc-cart-page,
.elementor-widget-shortcode .sc-cart-page,
.elementor-widget-container .sc-cart-page,
.e-con-inner .sc-cart-page {
	background: var(--sc-bg, #ffffff) !important;
	color: var(--sc-text, #1f1f1f) !important;
	padding: 30px 0 60px !important;
	margin: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
	line-height: 1.55 !important;
	box-sizing: border-box !important;
}

.elementor .sc-checkout-page__wrap,
.elementor-widget-shortcode .sc-checkout-page__wrap,
.e-con-inner .sc-checkout-page__wrap,
.elementor .sc-cart-page__wrap,
.elementor-widget-shortcode .sc-cart-page__wrap,
.e-con-inner .sc-cart-page__wrap {
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 0 40px !important;
}

@media (max-width: 768px) {
	.elementor .sc-checkout-page__wrap,
	.elementor-widget-shortcode .sc-checkout-page__wrap,
	.elementor .sc-cart-page__wrap,
	.elementor-widget-shortcode .sc-cart-page__wrap {
		padding: 0 16px !important;
	}
}

/* Bottoni dentro Elementor — riconferma brand */
.elementor .sc-checkout-page #place_order,
.elementor-widget-shortcode .sc-checkout-page #place_order,
.e-con-inner .sc-checkout-page #place_order {
	background: var(--sc-primary, #B8902F) !important;
	color: #fff !important;
	border: 1px solid var(--sc-primary, #B8902F) !important;
	border-radius: var(--sc-radius, 8px) !important;
	padding: 16px 22px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .04em !important;
	width: 100% !important;
	margin-top: 16px !important;
}

/* Summary card dentro Elementor — sempre brand */
.elementor .sc-checkout-page .sc-checkout-summary,
.elementor-widget-shortcode .sc-checkout-page .sc-checkout-summary,
.e-con-inner .sc-checkout-page .sc-checkout-summary {
	background: var(--sc-bg-soft, #fafaf7) !important;
	border: 1px solid var(--sc-border, #e9e6e1) !important;
	border-radius: var(--sc-radius-lg, 14px) !important;
	padding: 24px !important;
}

/* Heading "Checkout" — Playfair primary anche in Elementor */
.elementor .sc-checkout-page__title,
.elementor-widget-shortcode .sc-checkout-page__title,
.e-con-inner .sc-checkout-page__title,
.elementor .sc-cart-page__title,
.elementor-widget-shortcode .sc-cart-page__title,
.e-con-inner .sc-cart-page__title,
.elementor .sc-account__title,
.elementor-widget-shortcode .sc-account__title,
.e-con-inner .sc-account__title,
.elementor .sc-thankyou__title,
.elementor-widget-shortcode .sc-thankyou__title,
.e-con-inner .sc-thankyou__title {
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: clamp(28px, 4vw, 38px) !important;
	color: var(--sc-primary, #B8902F) !important;
	margin: 0 0 24px !important;
	font-weight: 700 !important;
	background: none !important;
	padding: 0 !important;
	border: none !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Estensione bulletproof per account + thankyou dentro Elementor */
.elementor .sc-account,
.elementor-widget-shortcode .sc-account,
.elementor-widget-container .sc-account,
.e-con-inner .sc-account,
.elementor .sc-thankyou,
.elementor-widget-shortcode .sc-thankyou,
.elementor-widget-container .sc-thankyou,
.e-con-inner .sc-thankyou {
	background: var(--sc-bg, #ffffff) !important;
	color: var(--sc-text, #1f1f1f) !important;
	padding: 30px 0 60px !important;
	margin: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
	box-sizing: border-box !important;
}

.elementor .sc-account__wrap,
.elementor-widget-shortcode .sc-account__wrap,
.e-con-inner .sc-account__wrap,
.elementor .sc-thankyou__wrap,
.elementor-widget-shortcode .sc-thankyou__wrap,
.e-con-inner .sc-thankyou__wrap {
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 0 40px !important;
}

@media (max-width: 768px) {
	.elementor .sc-account__wrap,
	.elementor-widget-shortcode .sc-account__wrap,
	.elementor .sc-thankyou__wrap,
	.elementor-widget-shortcode .sc-thankyou__wrap {
		padding: 0 16px !important;
	}
}

/* =========================================================================
 * ShopCraft Product Slider (Swiper)
 * ========================================================================= */

.sc-product-slider {
	position: relative;
	width: 100%;
	padding: 8px 0 48px;
	overflow: hidden;
}

.sc-product-slider .swiper-wrapper {
	align-items: stretch;
}

.sc-product-slider .swiper-slide {
	height: auto;
	display: flex;
}

.sc-product-slider .swiper-slide > * {
	width: 100%;
}

.sc-product-slider .sc-product-card {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
}

/* Arrows */
.sc-product-slider .swiper-button-prev,
.sc-product-slider .swiper-button-next {
	width: 44px;
	height: 44px;
	background: #fff;
	border: 1px solid var(--sc-border, #e9e6e1);
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
	color: var(--sc-primary, #B8902F);
	transition: all .2s;
}

.sc-product-slider .swiper-button-prev:hover,
.sc-product-slider .swiper-button-next:hover {
	background: var(--sc-primary, #B8902F);
	color: #fff;
	border-color: var(--sc-primary, #B8902F);
}

.sc-product-slider .swiper-button-prev::after,
.sc-product-slider .swiper-button-next::after {
	font-size: 16px;
	font-weight: 700;
}

/* Pagination dots */
.sc-product-slider .swiper-pagination {
	bottom: 8px;
}

.sc-product-slider .swiper-pagination-bullet {
	background: var(--sc-border, #e9e6e1);
	opacity: 1;
	width: 8px;
	height: 8px;
	transition: all .2s;
}

.sc-product-slider .swiper-pagination-bullet-active {
	background: var(--sc-primary, #B8902F);
	width: 24px;
	border-radius: 4px;
}

/* =========================================================================
 * Open Cart button widget
 * ========================================================================= */

.sc-open-cart-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	background: var(--sc-primary, #B8902F);
	color: #fff;
	border-radius: 999px;
	font-weight: 600;
	text-decoration: none;
	transition: transform .15s, box-shadow .15s;
	box-shadow: 0 2px 8px rgba(0,0,0,.1);
	font-size: 15px;
}

.sc-open-cart-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 14px rgba(0,0,0,.15);
	color: #fff;
	text-decoration: none;
}

.sc-open-cart-btn .sc-floating-cart__count {
	position: static;
	width: auto;
	min-width: 24px;
	height: 24px;
	padding: 0 8px;
	border-radius: 12px;
	background: var(--sc-accent, #9E3B4E);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* =========================================================================
 * Elementor editor placeholder (also rendered on frontend if missing data)
 * ========================================================================= */

.sc-elementor-placeholder {
	padding: 28px 22px;
	border: 2px dashed var(--sc-primary, #B8902F);
	border-radius: 12px;
	background: linear-gradient(135deg, rgba(184,144,47,.08), rgba(158,59,78,.08));
	text-align: center;
}

.sc-elementor-placeholder__icon {
	font-size: 42px;
	margin-bottom: 8px;
}

.sc-elementor-placeholder__title {
	font-weight: 700;
	font-size: 18px;
	color: var(--sc-accent, #9E3B4E);
	margin-bottom: 6px;
}

.sc-elementor-placeholder__desc {
	font-size: 13px;
	color: #666;
	line-height: 1.5;
}

/* =========================================================================
 * ShopCraft Product Grid (Elementor widget — responsive)
 * ========================================================================= */

.sc-product-grid-wrap {
	width: 100%;
}

.sc-product-grid--responsive {
	display: grid !important;
	grid-template-columns: repeat(var(--sc-grid-cols-m, 1), 1fr) !important;
	gap: 24px;
	padding: 0;
	margin: 0 0 24px;
	list-style: none !important;
}

@media (min-width: 768px) {
	.sc-product-grid--responsive {
		grid-template-columns: repeat(var(--sc-grid-cols-t, 2), 1fr) !important;
	}
}

@media (min-width: 1024px) {
	.sc-product-grid--responsive {
		grid-template-columns: repeat(var(--sc-grid-cols-d, 3), 1fr) !important;
	}
}

.sc-product-grid--responsive > li {
	list-style: none;
	margin: 0;
	padding: 0;
	background: none !important;
}

.sc-product-grid--responsive > li::before { content: none !important; }

.sc-product-grid-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin: 0 0 20px;
	flex-wrap: wrap;
}

.sc-product-grid-bar__count {
	font-size: 14px;
	color: #666;
}

.sc-product-grid-bar__ordering select {
	padding: 8px 14px;
	border: 1px solid var(--sc-border, #e9e6e1);
	border-radius: 6px;
	font-size: 14px;
	background: #fff;
}

.sc-product-grid__pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 28px 0 0;
	flex-wrap: wrap;
}

.sc-product-grid__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border: 1px solid var(--sc-border, #e9e6e1);
	border-radius: 6px;
	font-size: 14px;
	color: #1d1d1d;
	text-decoration: none;
	background: #fff;
	transition: all .15s;
}

.sc-product-grid__pagination .page-numbers:hover,
.sc-product-grid__pagination .page-numbers.current {
	background: var(--sc-primary, #B8902F);
	color: #fff;
	border-color: var(--sc-primary, #B8902F);
}

.sc-product-grid__pagination .page-numbers.dots {
	border: none;
	background: none;
}
