/* Shop Afterglow — base di compatibilità WooCommerce. Il rebuild approvato segue in fondo al file. */
body.msa-shop :is(.msa-shop-archive, .msa-single-product) { padding-block: clamp(7.5rem, 12vw, 10rem) clamp(5rem, 9vw, 8rem); }
body.msa-shop :is(.woocommerce-breadcrumb, .wp-block-woocommerce-store-notices) { inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1360px); margin-inline: auto; }
body.msa-shop .woocommerce-breadcrumb { margin-block-end: 2rem; color: var(--wp--preset--color--soft); font-size: var(--wp--preset--font-size--micro); }
body.msa-shop .woocommerce-breadcrumb a { color: var(--wp--preset--color--soft); }
body.msa-shop .woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--champagne); }

body.msa-shop .msa-shop-archive__intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .48fr); gap: 2rem clamp(3rem, 9vw, 10rem); align-items: end; padding-block-end: clamp(3rem, 6vw, 5rem); }
body.msa-shop .msa-shop-archive__intro > .msa-eyebrow { grid-column: 1; grid-row: 1; }
body.msa-shop .msa-shop-archive__intro h1 { max-inline-size: 9ch; margin: .8rem 0 0; font-size: clamp(4rem, 7.7vw, 7.3rem); }
body.msa-shop .msa-shop-archive__intro h1 { grid-column: 1; grid-row: 2; }
body.msa-shop .msa-shop-archive__intro > p:not(.msa-eyebrow) { grid-column: 2; grid-row: 1 / span 2; max-inline-size: 34ch; margin: 0; color: var(--wp--preset--color--soft); }
body.msa-shop .msa-shop-archive__tools { min-block-size: 78px; padding-block: 1.15rem; border-block: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--soft); font-size: var(--wp--preset--font-size--small); }
body.msa-shop .woocommerce-ordering select { min-block-size: 48px; padding: .55rem 2.25rem .55rem .75rem; border: 1px solid var(--wp--preset--color--line); border-radius: 0; background: var(--wp--preset--color--carbon); color: var(--wp--preset--color--ivory); font: inherit; }

body.msa-shop .msa-shop-grid { margin-block-start: 3rem; }
body.msa-shop .msa-shop-grid .wc-block-product-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; border-block-start: 1px solid var(--wp--preset--color--line); }
body.msa-shop .msa-shop-grid .wc-block-product-template > li { display: grid; align-content: start; min-inline-size: 0; margin: 0; padding: 1.25rem; border-block-end: 1px solid var(--wp--preset--color--line); }
body.msa-shop .msa-shop-grid .wc-block-product-template > li:not(:nth-child(3n + 1)) { border-inline-start: 1px solid var(--wp--preset--color--line); }
body.msa-shop .msa-shop-grid .wc-block-components-product-image { margin: 0; overflow: hidden; background: var(--wp--preset--color--carbon); }
body.msa-shop .msa-shop-grid .wc-block-components-product-image img { inline-size: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .35s ease; }
body.msa-shop .msa-shop-grid li:hover .wc-block-components-product-image img { transform: scale(1.025); }
body.msa-shop .msa-shop-grid__meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; align-items: start; padding-block-start: 1rem; }
body.msa-shop .msa-shop-grid__meta > :first-child { grid-column: 1 / -1; margin: 0 0 .6rem; color: var(--wp--preset--color--champagne); font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
body.msa-shop .msa-shop-grid__meta h2 { grid-column: 1; margin: 0; font-size: clamp(1.5rem, 2vw, 2rem); line-height: .98; }
body.msa-shop .msa-shop-grid__meta h2 a { color: var(--wp--preset--color--ivory); }
body.msa-shop .msa-shop-grid__meta .wp-block-woocommerce-product-price { grid-column: 2; grid-row: 2; margin: 0; color: var(--wp--preset--color--ivory); font-size: var(--wp--preset--font-size--small); font-weight: 700; text-align: end; white-space: nowrap; }
body.msa-shop .msa-shop-grid__meta .wp-block-woocommerce-product-button { grid-column: 1 / -1; margin: 1rem 0 0; }
body.msa-shop .msa-shop-grid__meta .wp-block-button__link { display: inline-flex; min-block-size: 44px; align-items: center; padding: .75rem 1rem; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; background: transparent; color: var(--wp--preset--color--ivory); font-size: var(--wp--preset--font-size--small); text-decoration: none; }
body.msa-shop .msa-shop-grid__meta .wp-block-button__link:hover { border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--champagne); }
body.msa-shop .msa-shop-grid .wp-block-query-pagination { margin-block: 3rem 0; }

body.msa-shop .msa-product-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: clamp(2.5rem, 7vw, 9rem); align-items: center; padding-block: 2rem clamp(5rem, 9vw, 8rem); }
body.msa-shop .msa-product-hero__media { min-inline-size: 0; }
body.msa-shop .woocommerce-product-gallery { margin: 0; }
body.msa-shop .woocommerce-product-gallery__wrapper { margin: 0; }
body.msa-shop .woocommerce-product-gallery__image { overflow: hidden; background: var(--wp--preset--color--carbon); }
body.msa-shop .woocommerce-product-gallery__image img { inline-size: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
body.msa-shop .msa-product-hero__summary { min-inline-size: 0; }
body.msa-shop .msa-product-hero__summary > .wp-block-post-terms { margin: 0 0 1rem; color: var(--wp--preset--color--champagne); font-size: var(--wp--preset--font-size--micro); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
body.msa-shop .msa-product-hero__summary h1 { max-inline-size: 10ch; margin: 0; font-size: clamp(3.5rem, 5.8vw, 6.5rem); }
body.msa-shop .msa-product-hero__summary > .wp-block-woocommerce-product-price { margin: 1.4rem 0 0; color: var(--wp--preset--color--champagne); font-size: clamp(1.25rem, 1.9vw, 1.65rem); font-weight: 700; }
body.msa-shop .msa-product-hero__summary > .wp-block-post-excerpt { margin: 1.35rem 0 0; color: var(--wp--preset--color--soft); }
body.msa-shop .msa-product-hero__summary .wc-block-add-to-cart-form { margin-block-start: 2rem; }
body.msa-shop .msa-product-hero__summary :is(select, input[type="number"]) { min-block-size: 48px; border: 1px solid var(--wp--preset--color--line); border-radius: 0; background: var(--wp--preset--color--carbon); color: var(--wp--preset--color--ivory); font: inherit; }
body.msa-shop .msa-product-hero__summary select { inline-size: 100%; padding: .75rem; }
body.msa-shop .msa-product-hero__summary .single_add_to_cart_button { min-block-size: 48px; padding: .9rem 1.35rem; border: 0; border-radius: 999px; background: var(--wp--custom--msa--metal); color: var(--wp--preset--color--ink); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: 700; }
body.msa-shop .msa-product-hero__summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
body.msa-shop .msa-product-hero__summary #pwgc-purchase-container { margin-block: 1.25rem .5rem; }
body.msa-shop .msa-product-hero__summary .pwgc-field-container { margin-block-end: 1rem; }
body.msa-shop .msa-product-hero__summary .pwgc-label { margin-block-end: .4rem; color: var(--wp--preset--color--ivory); font-size: var(--wp--preset--font-size--small); }
body.msa-shop .msa-product-hero__summary :is(.pwgc-input-text, #pwgc-message) { inline-size: 100% !important; min-block-size: 48px; padding: .75rem .9rem; border: 1px solid var(--wp--preset--color--line); border-radius: 0; background: var(--wp--preset--color--carbon); color: var(--wp--preset--color--ivory); font: inherit; }
body.msa-shop .msa-product-hero__summary #pwgc-message { min-block-size: 120px; resize: vertical; }
body.msa-shop .msa-product-hero__summary .pwgc-subtitle { margin-block-start: .35rem; color: var(--wp--preset--color--soft) !important; font-size: var(--wp--preset--font-size--micro); }
body.msa-shop .msa-product-hero__summary .wp-block-woocommerce-product-meta { margin-block-start: 1.75rem; padding-block-start: 1.25rem; border-block-start: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--soft); font-size: var(--wp--preset--font-size--small); }
body.msa-shop .msa-product-details { inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1080px); margin-inline: auto; padding-block: clamp(4rem, 8vw, 7rem); border-block-start: 1px solid var(--wp--preset--color--line); }
body.msa-shop .woocommerce-tabs .wc-tabs { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0 0 2.25rem; padding: 0; border-block-end: 1px solid var(--wp--preset--color--line); list-style: none; }
body.msa-shop .woocommerce-tabs .wc-tabs a { display: inline-flex; min-block-size: 44px; align-items: center; color: var(--wp--preset--color--soft); font-size: var(--wp--preset--font-size--small); }
body.msa-shop .woocommerce-tabs .wc-tabs .active a { color: var(--wp--preset--color--ivory); }
body.msa-shop .woocommerce-Tabs-panel { color: var(--wp--preset--color--soft); }
body.msa-shop .woocommerce-Tabs-panel h2 { margin: 0 0 1.5rem; color: var(--wp--preset--color--ivory); }
body.msa-shop .msa-related-products { padding-block-start: clamp(4rem, 8vw, 7rem); border-block-start: 1px solid var(--wp--preset--color--line); }
body.msa-shop .msa-related-products > h2 { inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1360px); margin: 0 auto 2rem; }
body.msa-shop .msa-related-products .wc-block-product-template { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1360px); margin: 0 auto; }

@media (max-width: 900px) {
  body.msa-shop .msa-shop-archive__intro, body.msa-shop .msa-product-hero { grid-template-columns: 1fr; }
  body.msa-shop .msa-shop-archive__intro > :is(.msa-eyebrow, h1, p:not(.msa-eyebrow)) { grid-column: auto; grid-row: auto; }
  body.msa-shop .msa-shop-archive__intro h1 { max-inline-size: 10ch; }
  body.msa-shop .msa-shop-grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.msa-shop .msa-shop-grid .wc-block-product-template > li:not(:nth-child(3n + 1)) { border-inline-start: 0; }
  body.msa-shop .msa-shop-grid .wc-block-product-template > li:nth-child(even) { border-inline-start: 1px solid var(--wp--preset--color--line); }
  body.msa-shop .msa-product-hero { padding-block-end: 5rem; }
  body.msa-shop .msa-product-hero__summary h1 { max-inline-size: 12ch; }
  body.msa-shop .msa-related-products .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  body.msa-shop :is(.msa-shop-archive, .msa-single-product) { padding-block: 6rem 4rem; }
  body.msa-shop .msa-shop-archive__tools { align-items: flex-start; min-block-size: 0; }
  body.msa-shop .msa-shop-grid { margin-block-start: 2rem; }
  body.msa-shop .msa-shop-grid .wc-block-product-template { grid-template-columns: 1fr; }
  body.msa-shop .msa-shop-grid .wc-block-product-template > li:nth-child(even) { border-inline-start: 0; }
  body.msa-shop .msa-shop-grid .wc-block-components-product-image img { aspect-ratio: 16 / 10; }
  body.msa-shop .msa-shop-grid__meta h2 { max-inline-size: 15ch; }
  body.msa-shop .msa-product-hero__summary h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
  body.msa-shop .msa-product-hero__summary .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: 1fr; }
  body.msa-shop .msa-product-hero__summary :is(.quantity, .single_add_to_cart_button) { inline-size: 100%; }
}


/* Rebuild canonico approvato: override della preview I applicati alle URL commerciali. */
/* Archivio e categorie: composizione editoriale compatta, senza lo scaffale B. */
body.msa-shop.msa-shop-rebuild .msa-shop-archive {
	padding-block: clamp(5rem, 8vw, 7rem) clamp(4rem, 7vw, 6rem);
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro {
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1200px);
	margin-inline: auto;
	padding-block-end: clamp(2.5rem, 5vw, 4rem);
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro h1 {
	max-inline-size: 12ch;
	font-size: clamp(3.75rem, 5.8vw, 5.6rem);
	line-height: .94;
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro > p:not(.msa-eyebrow) {
	grid-column: 1;
	grid-row: 3;
	max-inline-size: 48ch;
	margin: 0;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.45;
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__tools {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem;
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1200px);
	min-block-size: 0;
	margin-inline: auto;
	padding-block: 1rem;
	/* Il filtro ha già il proprio separatore superiore. */
	border-block-start: 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter {
	grid-column: 1 / -1;
	display: grid;
	gap: .7rem;
	padding-block-end: 1rem;
	border-block-end: 1px solid var(--wp--preset--color--line);
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__label {
	color: var(--wp--preset--color--champagne);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__items {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__item {
	display: inline-flex;
	min-block-size: 40px;
	align-items: center;
	gap: .4rem;
	padding: .5rem .75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--soft);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-decoration: none;
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__item span {
	color: var(--wp--preset--color--champagne);
	font-size: var(--wp--preset--font-size--micro);
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__item:is(:hover, :focus-visible, .is-active) {
	border-color: var(--wp--preset--color--champagne);
	background: var(--wp--custom--msa--metal);
	color: var(--wp--preset--color--ink);
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter__item:is(:hover, :focus-visible, .is-active) span {
	color: currentColor;
}

body.msa-shop.msa-shop-rebuild .msa-shop-filter:is(.is-courses-active, .is-gift-card-active) .msa-shop-filter__group--areas {
	display: none;
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__tools .woocommerce-result-count {
	grid-column: 1;
	margin: 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-archive__tools .woocommerce-ordering {
	grid-column: 2;
	margin: 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid {
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1200px);
	margin: clamp(2rem, 4vw, 3.5rem) auto 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-product-template {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	border: 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-product-template > li,
body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-product-template > li:not(:nth-child(3n + 1)) {
	display: grid;
	align-content: start;
	min-inline-size: 0;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--carbon);
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-components-product-image {
	background: var(--wp--preset--color--ink);
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-components-product-image img {
	aspect-ratio: 1 / 1;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	padding: 1.25rem;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta > :first-child {
	grid-column: auto;
	margin-block: 0 .7rem;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta h2 {
	grid-column: auto;
	margin: 0;
	font-size: clamp(1.45rem, 2vw, 2rem);
	line-height: 1;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta .wp-block-woocommerce-product-price {
	grid-column: auto;
	grid-row: auto;
	margin-block: .85rem 0;
	font-size: var(--wp--preset--font-size--small);
	text-align: start;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta .wp-block-woocommerce-product-button {
	grid-column: auto;
	margin: .55rem 0 0;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta :is(.wp-block-button__link, button) {
	display: inline-flex;
	inline-size: fit-content;
	min-block-size: 44px;
	align-items: center;
	padding: .7rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--ivory);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-decoration: none;
}

body.msa-shop.msa-shop-rebuild .msa-shop-grid .wp-block-query-pagination {
	grid-column: 1 / -1;
	margin-block: 1.5rem 0;
}

@media (max-width: 900px) {
	body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro > :is(.msa-eyebrow, h1, p:not(.msa-eyebrow)) {
		grid-column: auto;
		grid-row: auto;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	body.msa-shop.msa-shop-rebuild .msa-shop-archive {
		padding-block: 5rem 4rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro h1 {
		font-size: clamp(3.35rem, 16vw, 4.25rem);
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-archive__intro > p:not(.msa-eyebrow) {
		font-size: var(--wp--preset--font-size--medium);
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-grid .wc-block-product-template {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-grid__meta {
		padding: 1.15rem;
	}
}

/* Scheda prodotto: immagine e acquisto hanno una gerarchia più compatta. */
body.msa-shop.msa-shop-rebuild .msa-single-product {
	padding-block: clamp(5rem, 8vw, 7rem) clamp(4rem, 7vw, 6rem);
}

body.msa-shop.msa-shop-rebuild .msa-product-hero {
	grid-template-columns: minmax(0, .88fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem);
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1200px);
	margin-inline: auto;
	padding-block: 1rem clamp(4rem, 7vw, 6rem);
	align-items: start;
}

body.msa-shop.msa-shop-rebuild .woocommerce-product-gallery__image {
	display: grid;
	place-items: center;
	min-block-size: 0;
}

body.msa-shop.msa-shop-rebuild .woocommerce-product-gallery__image img {
	inline-size: 100%;
	max-block-size: min(62svh, 560px);
	aspect-ratio: auto;
	object-fit: contain;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary {
	padding-block-start: .4rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary h1 {
	max-inline-size: 15ch;
	font-size: clamp(3.25rem, 4.8vw, 5rem);
	line-height: .94;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary > .wp-block-woocommerce-product-price {
	margin-block-start: 1.1rem;
	font-size: clamp(1.2rem, 1.7vw, 1.5rem);
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary > .wp-block-post-excerpt {
	max-inline-size: 47ch;
	margin-block-start: 1.1rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .wc-block-add-to-cart-form {
	max-inline-size: 34rem;
	margin-block-start: 1.5rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations {
	inline-size: 100%;
	margin: 0;
	border: 0;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations :is(tbody, tr, th, td) {
	display: block;
	padding: 0;
	text-align: start;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations tr + tr {
	margin-block-start: 1rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations .label {
	margin-block-end: .55rem;
	color: var(--wp--preset--color--ivory);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations select {
	inline-size: 100%;
	/* Il select nativo può ritagliare il testo con padding verticale e altezza fissa. */
	block-size: auto;
	min-block-size: 56px;
	box-sizing: border-box;
	padding: .875rem 2.75rem .875rem 1rem;
	line-height: 1.4;
	appearance: none;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations .value {
	position: relative;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .variations .value::after {
	content: "⌄";
	position: absolute;
	inset-inline-end: 1rem;
	inset-block-start: 1rem;
	color: var(--wp--preset--color--champagne);
	line-height: 1;
	pointer-events: none;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .single_variation_wrap {
	margin-block-start: 1rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .woocommerce-variation-add-to-cart,
body.msa-shop.msa-shop-rebuild .msa-product-hero__summary form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: stretch;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .quantity {
	inline-size: 4.5rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .quantity input {
	inline-size: 100%;
	padding-inline: .75rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .single_add_to_cart_button {
	min-block-size: 48px;
	padding: .9rem 1.35rem;
}

body.msa-shop.msa-shop-rebuild .msa-product-details {
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 960px);
	padding-block: clamp(3.5rem, 6vw, 5rem);
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel :is(.elementor-element, .elementor-widget-container) {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel .elementor-element + .elementor-element {
	margin-block-start: 1.5rem;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel .elementor-heading-title {
	color: var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel .elementor-icon-list-items {
	display: grid;
	gap: .65rem;
	margin: 1.25rem 0;
	padding-inline-start: 1.25rem;
	color: var(--wp--preset--color--soft);
}

/* Le descrizioni corso arrivano dal catalogo storico come testo lineare. Il
   progressive enhancement le raggruppa senza cambiare una sola informazione. */
body.msa-shop.msa-shop-rebuild.product_cat-corsi .msa-product-details {
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1240px);
}

body.msa-shop.msa-shop-rebuild .msa-course-description {
	display: block;
}

/* Il titolo «Descrizione» che WooCommerce ripete dentro la scheda resta solo per i lettori di schermo, su tutti i prodotti. */
body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--description > h2:first-child {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__intro {
	inline-size: min(100%, 980px);
	margin-inline: auto;
	padding: clamp(1rem, 2vw, 2rem) clamp(0rem, 3vw, 2rem) clamp(4rem, 7vw, 6.5rem);
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__intro > p:first-child {
	color: var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.9rem, 3.4vw, 3.25rem);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -.035em;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__intro > :is(p, ul, ol) {
	max-inline-size: 820px;
	margin-inline: auto;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__intro > p + p {
	margin-block-start: 1.15rem;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section {
	inline-size: min(100%, 980px);
	margin-inline: auto;
	min-inline-size: 0;
	padding: clamp(3.5rem, 6vw, 6rem) clamp(0rem, 3vw, 2rem);
	border-block-start: 1px solid var(--wp--preset--color--line);
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section h3 {
	max-inline-size: 24ch;
	margin: 0 auto clamp(2rem, 4vw, 3.25rem);
	color: var(--wp--preset--color--ivory);
	font-size: clamp(1.9rem, 3.4vw, 3.25rem);
	line-height: 1.02;
	text-align: center;
	overflow-wrap: anywhere;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section h4 {
	max-inline-size: 820px;
	margin: clamp(2.25rem, 4vw, 3.5rem) auto 1rem;
	color: var(--wp--preset--color--champagne);
	font-family: var(--wp--preset--font-family--body);
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section :is(p, li),
body.msa-shop.msa-shop-rebuild .msa-course-description__intro :is(p, li) {
	color: var(--wp--preset--color--soft);
	line-height: 1.7;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section > :is(p, ul, ol, div) {
	max-inline-size: 820px;
	margin-inline: auto;
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section > p + p {
	margin-block-start: 1rem;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section :is(ul, ol) {
	box-sizing: border-box;
	inline-size: min(100%, 820px);
	margin: 1.25rem auto 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__section li + li {
	margin-block-start: .55rem;
}

body.msa-shop.msa-shop-rebuild .msa-course-description .msa-course-description__checklist {
	box-sizing: border-box;
	inline-size: min(100%, 820px);
	margin: 1.25rem auto 0;
	padding: 0;
	list-style: none;
}

body.msa-shop.msa-shop-rebuild .msa-course-description .msa-course-description__centered-list {
	box-sizing: border-box;
	inline-size: min(100%, 820px);
	margin: 1.25rem auto 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__centered-list li {
	display: flex;
	justify-content: center;
	align-items: start;
	gap: .55rem;
	inline-size: 100%;
	max-inline-size: none;
	margin: 0;
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__row-marker {
	flex: 0 0 auto;
	color: var(--wp--preset--color--ivory);
	font-weight: 800;
	line-height: 1.7;
}

body.msa-shop.msa-shop-rebuild .msa-course-description__row-text {
	min-inline-size: 0;
	max-inline-size: calc(100% - 1.7rem);
	text-align: center;
}

body.msa-shop.msa-shop-rebuild .msa-course-description img.emoji:is([alt^="✔"], [alt^="✓"]) {
	filter: grayscale(1) brightness(0) invert(1);
}

body.msa-shop.msa-shop-rebuild .msa-course-description__bullet-group > p {
	margin-block-end: .65rem;
	color: var(--wp--preset--color--ivory);
	font-weight: 700;
}

/* Correlati: stesse proporzioni delle card archivio, senza regole flex residue. */
body.msa-shop.msa-shop-rebuild .msa-related-products {
	padding-block-start: clamp(3.5rem, 6vw, 5rem);
}

body.msa-shop.msa-shop-rebuild .msa-related-products:not(:has(*)) {
	display: none;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-woocommerce-product-collection {
	inline-size: min(100% - clamp(2rem, 5vw, 6rem), 1200px);
	margin-inline: auto;
}

body.msa-shop.msa-shop-rebuild .msa-related-products h2 {
	margin-block: 0 1.5rem;
	padding-inline-end: 7rem;
	font-size: clamp(2.35rem, 4vw, 3.75rem);
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-product-template {
	--msa-related-card-size: calc((100% - 3rem) / 3);
	grid-template-columns: repeat(var(--msa-related-card-count, 5), var(--msa-related-card-size));
	gap: clamp(1rem, 2vw, 1.5rem);
	inline-size: 100%;
	margin: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: inline mandatory;
	scrollbar-width: none;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-product-template::-webkit-scrollbar {
	display: none;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-product-template > li {
	display: grid;
	align-content: start;
	width: auto;
	inline-size: auto;
	max-inline-size: none;
	min-inline-size: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--carbon);
	scroll-snap-align: start;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-components-product-image {
	margin: 0;
	overflow: hidden;
	background: var(--wp--preset--color--ink);
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-components-product-image img {
	inline-size: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

body.msa-shop.msa-shop-rebuild .msa-related-products :is(.wp-block-post-title, .wp-block-woocommerce-product-price, .wp-block-woocommerce-product-button) {
	margin-inline: 1.1rem;
	text-align: start;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-post-title {
	min-block-size: 4.4rem;
	margin-block: 0 .8rem;
	padding-block-start: 1.45rem;
	font-size: clamp(1.25rem, 1.7vw, 1.6rem);
	line-height: 1.04;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-post-title a {
	color: var(--wp--preset--color--ivory);
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-woocommerce-product-price {
	margin-block: 0 1rem;
	color: var(--wp--preset--color--ivory);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-woocommerce-product-button {
	margin-block: auto 1.1rem;
}

body.msa-shop.msa-shop-rebuild .msa-related-products :is(.wp-block-button__link, button) {
	display: inline-flex;
	inline-size: fit-content;
	min-block-size: 44px;
	align-items: center;
	padding: .7rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--ivory);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-woocommerce-product-collection {
	position: relative;
}

body.msa-shop.msa-shop-rebuild .msa-related-products__controls {
	position: absolute;
	inset-block-start: 0;
	inset-inline-end: 0;
	display: flex;
	gap: .5rem;
}

body.msa-shop.msa-shop-rebuild .msa-related-products__arrow {
	display: inline-grid;
	inline-size: 44px;
	block-size: 44px;
	place-items: center;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--carbon);
	color: var(--wp--preset--color--ivory);
	font: inherit;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

body.msa-shop.msa-shop-rebuild .msa-related-products__arrow:not(:disabled):is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--champagne);
	color: var(--wp--preset--color--champagne);
}

body.msa-shop.msa-shop-rebuild .msa-related-products__arrow:disabled {
	opacity: .42;
	cursor: not-allowed;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information > h2 {
	display: none;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information .shop_attributes {
	inline-size: min(100%, 640px);
	margin: 0;
	border-collapse: collapse;
	border-block: 1px solid var(--wp--preset--color--line);
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information .shop_attributes tr {
	display: grid;
	grid-template-columns: minmax(10rem, .7fr) minmax(0, 1.3fr);
	gap: 1rem;
	padding-block: 1rem;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information :is(th, td) {
	padding: 0;
	border: 0;
	background: transparent;
	text-align: start;
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information th {
	color: var(--wp--preset--color--ivory);
	font-size: var(--wp--preset--font-size--small);
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information td {
	color: var(--wp--preset--color--soft);
}

body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information p {
	margin: 0;
}

@media (max-width: 900px) {
	body.msa-shop.msa-shop-rebuild .msa-product-hero {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-course-description__intro {
		min-inline-size: 0;
		overflow-wrap: anywhere;
	}

}

@media (max-width: 640px) {
	body.msa-shop.msa-shop-rebuild .msa-single-product {
		padding-block: 5rem 4rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-product-hero {
		padding-block: 0 4rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-product-hero__summary h1 {
		font-size: clamp(2.7rem, 11.5vw, 3.5rem);
	}

	body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .woocommerce-variation-add-to-cart,
	body.msa-shop.msa-shop-rebuild .msa-product-hero__summary form.cart:not(.variations_form) {
		display: grid;
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .quantity {
		inline-size: 100%;
	}

	body.msa-shop.msa-shop-rebuild .msa-product-hero__summary .single_add_to_cart_button {
		inline-size: 100%;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-archive__tools {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-archive__tools :is(.woocommerce-result-count, .woocommerce-ordering) {
		grid-column: auto;
	}

	body.msa-shop.msa-shop-rebuild .msa-shop-filter__item {
		min-block-size: 44px;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--a .msa-shop-filter__group {
		grid-template-columns: 1fr;
		gap: .6rem;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--b .msa-shop-filter__group--primary .msa-shop-filter__items {
		inline-size: 100%;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--b .msa-shop-filter__group--primary .msa-shop-filter__item {
		flex: 1 1 0;
		justify-content: center;
		padding-inline: .55rem;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--c .msa-shop-filter__group--primary .msa-shop-filter__item {
		padding-inline: .35rem;
		font-size: var(--wp--preset--font-size--micro);
	}

	body.msa-shop.msa-shop-rebuild .msa-related-products .wc-block-product-template {
		--msa-related-card-size: calc(100% - 3rem);
	}

	body.msa-shop.msa-shop-rebuild .msa-related-products .wp-block-post-title {
		min-block-size: 0;
		padding-block-start: 1.25rem;
	}

	body.msa-shop.msa-shop-rebuild .msa-related-products__controls {
		inset-block-start: .25rem;
	}

	body.msa-shop.msa-shop-rebuild .woocommerce-Tabs-panel--additional_information .shop_attributes tr {
		grid-template-columns: 1fr;
		gap: .35rem;
	}
}

/* Proposta I — etichette da archivio, con collezioni leggere e numeri in evidenza. */
body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter {
	display: grid;
	gap: 1rem;
	padding-block: 1.25rem;
	border-block: 1px solid var(--wp--preset--color--line);
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__group {
	display: grid;
	grid-template-columns: minmax(11rem, .34fr) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: baseline;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__group--areas {
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--wp--preset--color--line);
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__items {
	gap: 0;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item {
	display: inline-flex;
	min-block-size: 44px;
	align-items: baseline;
	gap: .4rem;
	padding: 0 1.2rem;
	border: 0;
	border-inline-start: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--soft);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item:first-child {
	padding-inline-start: 0;
	border-inline-start: 0;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item span {
	color: var(--wp--preset--color--champagne);
	font-size: var(--wp--preset--font-size--micro);
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item:is(:hover, :focus-visible, .is-active) {
	background: transparent;
	color: var(--wp--preset--color--ivory);
}
@media (max-width: 900px) {
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--g .msa-shop-filter__group--areas,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__group,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--j .msa-shop-filter {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--h .msa-shop-filter {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--h .msa-shop-filter__group--areas,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--j .msa-shop-filter__group--areas {
		padding-inline-start: 0;
		border-inline-start: 0;
	}
}

@media (max-width: 640px) {
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--g .msa-shop-filter__group--primary .msa-shop-filter__items,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--g .msa-shop-filter__group--areas .msa-shop-filter__items,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--j .msa-shop-filter__group--areas .msa-shop-filter__items {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--g .msa-shop-filter__group--primary .msa-shop-filter__item,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--g .msa-shop-filter__group--areas .msa-shop-filter__item,
	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--j .msa-shop-filter__group--areas .msa-shop-filter__item {
		border-inline-start: 0;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--h .msa-shop-filter__group--areas .msa-shop-filter__items {
		grid-template-columns: 1fr;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--h .msa-shop-filter__group--areas .msa-shop-filter__item {
		border-inline-start: 0;
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__group--areas .msa-shop-filter__items {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__group--areas .msa-shop-filter__item {
		min-inline-size: 0;
		justify-content: center;
	}
}
/* Revisione I: ogni scelta ha un perimetro; lo stato attivo diventa oro pieno. */
body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__items {
	gap: .6rem;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item,
body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item:first-child {
	min-block-size: 48px;
	align-items: center;
	padding: .55rem .85rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 3px;
	background: transparent;
	text-decoration: none;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--champagne);
	background: transparent;
	color: var(--wp--preset--color--ivory);
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item.is-active {
	border-color: var(--wp--preset--color--champagne);
	background: var(--wp--custom--msa--metal);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

body.msa-shop.msa-shop-rebuild.msa-shop-filter-layout--i .msa-shop-filter__item.is-active span {
	color: currentColor;
}

/* Schede commerciali: bordo oro e pulsante metallico condivisi da Shop e correlati. */
body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) .wc-block-product-template > li {
 transition: border-color .2s ease;
}
body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) .wc-block-product-template > li:is(:hover, :focus-within) {
 border-color: var(--wp--preset--color--gold);
}
body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) :is(.wp-block-button__link, button) {
 transition: border-color .2s ease, color .2s ease;
}
body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) .wc-block-product-template > li:is(:hover, :focus-within) :is(.wp-block-button__link, button) {
 border-color: var(--wp--preset--color--gold);
 background: var(--wp--custom--msa--metal);
 color: var(--wp--preset--color--ink);
}
/* Anche sul pulsante il gradiente resta visibile: cambia soltanto il contorno. */
body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) .wc-block-product-template > li :is(.wp-block-button__link, button):is(:hover, :focus-visible) {
 border-color: var(--wp--preset--color--champagne);
 background: var(--wp--custom--msa--metal);
 color: var(--wp--preset--color--ink);
}
@media (prefers-reduced-motion: reduce) {
 body.msa-shop.msa-shop-rebuild :is(.msa-shop-grid, .msa-related-products) :is(.wc-block-product-template > li, .wp-block-button__link, button) { transition: none; }
}
