/**
 * R40/R42 — Scheda prodotto (prodotto.php / prodotto-preview.js).
 * Terminologia: pagina prodotto / modale prodotto (footer sticky mobile).
 * Autorità token madre: wa-mother-base.css + override !important vs css_style_mod_editor.
 */

/* ── Pagina ─────────────────────────────────────────────────── */
body.wa-page-product.wa-client-app {
	background-color: var(--wa-product-page-bg, var(--wa-app-bg)) !important;
	color: var(--wa-product-page-color, var(--wa-app-color)) !important;
}

body.wa-page-product .wa-product-shell .fp-page {
	max-width: 1200px;
	margin: 0 auto;
	box-shadow: none !important;
	background: transparent !important;
}

body.wa-page-product .wa-product-shell .fp-body {
	background: transparent !important;
	box-shadow: none !important;
}

body.wa-page-product .wa-product-shell .fp-container {
	padding-left: var(--wa-product-scheda-content-padding, 1rem);
	padding-right: var(--wa-product-scheda-content-padding, 1rem);
}

/* ── Hero galleria ──────────────────────────────────────────── */
body.wa-page-product .wa-product-shell .fp-gallery {
	background: var(--wa-product-hero-bg, var(--wa-product-scheda-gallery-bg, var(--wa-surface-soft-bg))) !important;
	border-radius: var(--wa-product-hero-radius, var(--wa-product-scheda-gallery-radius, var(--wa-radius-input))) !important;
	overflow: hidden;
	box-shadow: var(--wa-product-hero-shadow, none);
}

body.wa-page-product .wa-product-shell .fp-gallery-main {
	min-height: 0 !important;
	max-height: var(--wa-product-hero-height-mobile, var(--wa-product-scheda-gallery-max-height-mobile, 190px)) !important;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

body.wa-page-product .wa-product-shell .fp-gallery-img,
body.wa-page-product .wa-product-shell .fp-gallery-main .wa-image-placeholder.fp-gallery-img {
	width: 100% !important;
	max-width: 100% !important;
	max-height: var(--wa-product-hero-height-mobile, var(--wa-product-scheda-gallery-max-height-mobile, 190px)) !important;
	height: auto !important;
	object-fit: var(--wa-product-scheda-gallery-fit, cover) !important;
	display: block;
	margin: 0 auto;
}

body.wa-page-product .wa-product-shell .fp-gallery-placeholder {
	color: var(--wa-muted-color, var(--wa-color-muted)) !important;
	padding: 1.25rem;
	font-size: 2rem;
}

body.wa-page-product .wa-product-shell .fp-gallery-thumbs {
	background: color-mix(in srgb, var(--wa-product-page-bg, var(--wa-app-bg)) 72%, transparent);
}

body.wa-page-product .wa-product-shell .fp-gallery-thumb {
	border-color: var(--wa-border-color, var(--wa-color-border)) !important;
}

body.wa-page-product .wa-product-shell .fp-gallery-thumb.is-active,
body.wa-page-product .wa-product-shell .fp-gallery-thumb:hover {
	border-color: var(--wa-accent-color, var(--wa-color-accent)) !important;
}

@media (min-width: 768px) {
	body.wa-page-product .wa-product-shell .fp-gallery-main,
	body.wa-page-product .wa-product-shell .fp-gallery-img,
	body.wa-page-product .wa-product-shell .fp-gallery-main .wa-image-placeholder.fp-gallery-img {
		max-height: var(--wa-product-hero-height-desktop, var(--wa-product-scheda-gallery-max-height-desktop, 320px)) !important;
	}
}

/* ── Card riepilogo (header prodotto) ───────────────────────── */
body.wa-page-product .wa-product-shell .fp-product-header {
	background: var(--wa-product-detail-card-bg, var(--wa-surface-bg)) !important;
	color: var(--wa-product-detail-card-color, var(--wa-app-color)) !important;
	border: 1px solid var(--wa-product-detail-card-border, var(--wa-border-color)) !important;
	border-radius: var(--wa-product-detail-card-radius, var(--wa-radius-card)) !important;
	box-shadow: var(--wa-product-detail-card-shadow, var(--wa-shadow-card)) !important;
	padding: var(--wa-product-detail-card-padding, 1rem) !important;
	margin: var(--wa-product-scheda-header-gap, 0.75rem) 0 0.875rem;
}

body.wa-page-product .wa-product-shell .fp-product-name {
	font-family: var(--wa-product-title-font-family, var(--wa-font-heading)) !important;
	font-weight: var(--wa-product-title-font-weight, var(--wa-heading-weight, 700)) !important;
	font-size: clamp(1.2rem, 4.5vw, 1.65rem) !important;
	color: var(--wa-product-title-color, var(--wa-heading-color, var(--wa-text-color))) !important;
	text-transform: none !important;
	letter-spacing: var(--wa-heading-letter-spacing, -0.02em) !important;
	margin: 0 0 0.35rem !important;
	line-height: 1.2 !important;
}

body.wa-page-product .wa-product-shell .fp-product-baseprice {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
	font-size: 0.9rem !important;
	margin-bottom: 0.35rem !important;
}

body.wa-page-product .wa-product-shell .fp-product-baseprice strong {
	color: var(--wa-price-color, var(--wa-color-accent)) !important;
	font-weight: var(--wa-price-weight, 800) !important;
	font-size: 1.05rem !important;
}

body.wa-page-product .wa-product-shell .fp-product-cat {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
	font-size: 0.75rem !important;
	margin-bottom: 0.5rem !important;
}

body.wa-page-product .wa-product-shell .fp-product-desc {
	color: var(--wa-product-description-color, var(--wa-muted-color)) !important;
	font-size: 0.9rem !important;
	line-height: 1.45 !important;
	margin: 0 0 0.65rem !important;
}

/* Allergeni = semantica danger (non CTA acquisto) — token adattivi al tema */
body.wa-page-product .wa-product-shell .fp-allergen-btn {
	background: var(--wa-allergen-btn-bg, var(--wa-color-danger-bg)) !important;
	color: var(--wa-allergen-btn-fg, var(--wa-color-danger-fg)) !important;
	border-color: var(--wa-allergen-btn-border, var(--wa-color-danger)) !important;
}

body.wa-page-product .wa-product-shell .fp-allergen-btn i,
body.wa-page-product .wa-product-shell .fp-allergen-btn .bi {
	color: currentColor !important;
}

body.wa-page-product .wa-product-shell .fp-allergen-btn:hover {
	background: var(--wa-allergen-btn-bg, var(--wa-color-danger-bg)) !important;
	border-color: var(--wa-allergen-accent, var(--wa-color-danger)) !important;
}

body.wa-page-product .wa-product-shell .fp-aller-count {
	background: var(--wa-allergen-count-bg, var(--wa-color-danger)) !important;
	color: var(--wa-allergen-count-fg, var(--wa-color-inverse)) !important;
}

/* ── Colonne mobile ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
	body.wa-page-product .wa-product-shell .fp-col {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		padding: 0.5rem 0 !important;
		margin-bottom: 0.5rem !important;
	}

	body.wa-page-product .wa-product-shell .fp-col--custom {
		background: var(--wa-product-section-bg, var(--wa-surface-bg)) !important;
		border: 1px solid var(--wa-product-section-border, var(--wa-border-color)) !important;
		border-radius: var(--wa-product-section-radius, var(--wa-radius-card)) !important;
		padding: var(--wa-product-section-padding, 0.75rem) !important;
	}
}

/* ── Personalizzazione / sezioni ────────────────────────────── */
body.wa-page-product .wa-product-shell .fp-custom-title {
	color: var(--wa-product-section-color, var(--wa-app-color)) !important;
	font-family: var(--wa-font-heading) !important;
	font-weight: var(--wa-heading-weight, 700) !important;
	font-size: 1.1rem !important;
	margin-bottom: 0.65rem !important;
}

body.wa-page-product .wa-product-shell .fp-sez {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--wa-product-section-border, var(--wa-border-color)) !important;
	padding: 0 0 0.75rem !important;
	margin-bottom: 0.75rem !important;
}

body.wa-page-product .wa-product-shell .fp-sez-title {
	color: var(--wa-product-section-color, var(--wa-text-color)) !important;
	font-family: var(--wa-font-heading) !important;
	font-weight: var(--wa-heading-weight, 700) !important;
	font-size: 1rem !important;
}

body.wa-page-product .wa-product-shell .fp-sez-hint {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
	font-size: 0.75rem !important;
	margin-bottom: 0.5rem !important;
}

/* Badge «Più scelte» — contrasto su card/sezione (no info-bg quasi invisibile su dark) */
body.wa-page-product .wa-product-shell .fp-sez-badge--multi {
	background: var(--wa-product-badge-multi-bg, var(--wa-accent-color-soft, var(--wa-color-accent-soft))) !important;
	color: var(--wa-product-badge-multi-color, var(--wa-accent-color, var(--wa-color-accent))) !important;
	border: 1px solid var(--wa-product-badge-multi-border, var(--wa-accent-color, var(--wa-color-accent))) !important;
}

body.wa-page-product .wa-product-shell .fp-sez-badge--single {
	background: var(--wa-product-badge-single-bg, var(--wa-surface-soft-bg)) !important;
	color: var(--wa-product-badge-single-color, var(--wa-muted-color)) !important;
	border: 1px solid var(--wa-product-badge-single-border, var(--wa-border-color)) !important;
}

body.wa-page-product .wa-product-shell .fp-sez-badge--req {
	background: var(--wa-product-badge-req-bg, var(--wa-text-color)) !important;
	color: var(--wa-product-badge-req-color, var(--wa-app-bg, var(--wa-color-inverse))) !important;
	border-color: transparent !important;
}

body.wa-page-product .wa-product-shell .fp-included-title {
	color: var(--wa-product-section-color, var(--wa-text-color)) !important;
}

body.wa-page-product .wa-product-shell .fp-included-hint {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
}

/* Ingredienti inclusi rimossi — stato uniforme sulla riga (non solo .fp-included-name) */
body.wa-page-product .wa-product-shell .fp-included-item.is-removed {
	opacity: 1 !important;
	color: var(--wa-option-removed-color, var(--wa-color-danger-fg)) !important;
}

body.wa-page-product .wa-product-shell .fp-included-item.is-removed .fp-included-name,
body.wa-page-product .wa-product-shell .fp-included-item.is-removed > span:not(.fp-included-icon):not([class*='bi-']) {
	text-decoration-line: line-through !important;
	text-decoration-thickness: 1.5px !important;
	text-decoration-color: var(--wa-option-removed-decoration-color, currentColor) !important;
	color: var(--wa-option-removed-color, var(--wa-color-danger-fg)) !important;
}

body.wa-page-product .wa-product-shell .fp-included-item.is-removed .fp-included-icon,
body.wa-page-product .wa-product-shell .fp-included-item.is-removed > i {
	text-decoration: none !important;
	color: var(--wa-option-removed-icon-color, var(--wa-option-removed-color)) !important;
	background: var(--wa-option-removed-icon-bg, transparent);
	border-radius: 50%;
}

body.wa-page-product .wa-product-shell .fp-included-item:not(.is-removed) .fp-included-icon {
	color: var(--wa-color-success) !important;
}

/* Righe opzione — token (no beige #ffe6c7 editor); lista scorre con la pagina */
body.wa-page-product .wa-product-shell .fp-sez-option {
	background: var(--wa-option-row-bg, var(--wa-surface-soft-bg)) !important;
	color: var(--wa-option-row-color, var(--wa-text-color)) !important;
	border: 1px solid var(--wa-option-row-border, var(--wa-border-color)) !important;
	border-radius: var(--wa-radius-input, 8px) !important;
	padding: 0.5rem 0.65rem !important;
	gap: 0.4rem !important;
	margin: 0 !important;
}

body.wa-page-product .wa-product-shell .fp-sez-option:hover {
	background: var(--wa-option-row-bg, var(--wa-surface-soft-bg)) !important;
	border-color: var(--wa-option-row-border, var(--wa-border-color)) !important;
}

body.wa-page-product .wa-product-shell .fp-sez-option.is-active {
	background: var(--wa-option-row-selected-bg, var(--wa-surface-soft-bg)) !important;
	color: var(--wa-option-row-selected-color, var(--wa-option-row-color)) !important;
	border-color: var(--wa-option-row-selected-border, var(--wa-accent-color)) !important;
	box-shadow: none !important;
}

body.wa-page-product .wa-product-shell .fp-sez-option-name {
	color: inherit !important;
	font-weight: 500;
	font-size: 0.9rem;
}

body.wa-page-product .wa-product-shell .fp-sez-option-price {
	color: var(--wa-option-extra-price-color, var(--wa-price-color)) !important;
	font-weight: var(--wa-price-weight, 700) !important;
	font-size: 0.85rem !important;
}

body.wa-page-product .wa-product-shell .fp-sez-select {
	background: var(--wa-input-bg, var(--wa-surface-bg)) !important;
	color: var(--wa-input-color, var(--wa-text-color)) !important;
	border: 1px solid var(--wa-input-border, var(--wa-border-color)) !important;
	border-radius: var(--wa-radius-input, 8px) !important;
	font-size: 0.9rem !important;
}

body.wa-page-product .wa-product-shell .fp-sez-select.is-active {
	border-color: var(--wa-option-row-selected-border, var(--wa-accent-color)) !important;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--wa-accent-color) 22%, transparent) !important;
}

body.wa-page-product .wa-product-shell .fp-acc-header {
	background: var(--wa-surface-soft-bg) !important;
	color: var(--wa-text-color) !important;
}

body.wa-page-product .wa-product-shell .fp-acc-body {
	background: var(--wa-product-section-bg, var(--wa-surface-bg)) !important;
}

body.wa-page-product .wa-product-shell .fp-acc-group {
	border-color: var(--wa-border-color) !important;
}

/* ── Note cucina / textarea ─────────────────────────────────── */
body.wa-page-product .wa-product-shell .fp-note-label {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
	font-size: 0.8rem !important;
}

body.wa-page-product .wa-product-shell .fp-note-input {
	background: var(--wa-input-bg, var(--wa-surface-bg)) !important;
	color: var(--wa-input-color, var(--wa-text-color)) !important;
	border: 1px solid var(--wa-input-border, var(--wa-border-color)) !important;
	border-radius: var(--wa-radius-input, 8px) !important;
	font-family: var(--wa-font-body) !important;
	font-size: 0.9rem !important;
}

body.wa-page-product .wa-product-shell .fp-note-input::placeholder {
	color: var(--wa-input-placeholder, var(--wa-muted-color)) !important;
	opacity: 1;
}

/* ── Riepilogo desktop ──────────────────────────────────────── */
body.wa-page-product .wa-product-shell .fp-summary-label {
	color: var(--wa-product-page-muted-color, var(--wa-muted-color)) !important;
}

body.wa-page-product .wa-product-shell .fp-summary-price {
	color: var(--wa-price-color, var(--wa-color-accent)) !important;
	font-weight: var(--wa-price-weight, 800) !important;
	font-size: 1.75rem !important;
}

/* CTA acquisto — primary token, mai rosso decorativo */
body.wa-page-product .wa-product-shell .fp-cart-btn,
body.wa-page-product .wa-product-shell .fp-mobile-footer-btn {
	background: var(--wa-product-cta-bg, var(--wa-button-primary-bg, var(--wa-primary-color))) !important;
	color: var(--wa-product-cta-color, var(--wa-button-primary-color, var(--wa-primary-contrast))) !important;
	border: 1px solid var(--wa-product-cta-border, var(--wa-product-cta-bg)) !important;
	border-radius: var(--wa-radius-button, 8px) !important;
	font-family: var(--wa-font-body) !important;
	font-weight: var(--wa-button-weight, 700) !important;
	box-shadow: var(--wa-shadow-button, none) !important;
	text-transform: none !important;
	min-height: var(--wa-control-height, 48px);
}

body.wa-page-product .wa-product-shell .fp-cart-btn:hover,
body.wa-page-product .wa-product-shell .fp-mobile-footer-btn:hover {
	background: var(--wa-product-cta-bg, var(--wa-button-primary-bg)) !important;
	color: var(--wa-product-cta-color, var(--wa-button-primary-color)) !important;
	border-color: var(--wa-product-cta-border) !important;
}

/* ── Sticky footer mobile ───────────────────────────────────── */
body.wa-page-product .wa-product-shell .fp-mobile-footer {
	background: var(--wa-product-stickybar-bg, var(--wa-surface-bg)) !important;
	color: var(--wa-product-stickybar-color, var(--wa-app-color)) !important;
	border-top: 1px solid var(--wa-product-stickybar-border, var(--wa-border-color)) !important;
	box-shadow: var(--wa-product-stickybar-shadow, var(--wa-shadow-panel)) !important;
	padding: 0.65rem 0.875rem !important;
	gap: 0.65rem !important;
}

body.wa-page-product .wa-product-shell .fp-mobile-footer-price {
	color: var(--wa-price-color, var(--wa-color-accent)) !important;
	font-weight: var(--wa-price-weight, 800) !important;
	font-size: 1.15rem !important;
}

body.wa-page-product .wa-product-shell .fp-mobile-footer-btn {
	flex: 1 1 auto;
	max-width: 14rem;
	padding: 0.65rem 1rem !important;
	font-size: 0.95rem !important;
}

/* ── Modal avviso scelta obbligatoria (min/max sezioni) ─────── */
.fp-section-alert-modal {
	position: fixed;
	inset: 0;
	z-index: 12000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.fp-section-alert-modal[hidden] {
	display: none !important;
}

body.fp-section-alert-modal-open {
	overflow: hidden;
}

.fp-section-alert-modal__backdrop {
	position: absolute;
	inset: 0;
	background: var(--wa-overlay-scrim, color-mix(in srgb, var(--wa-color-dark, #1f1a16) 72%, transparent));
	cursor: pointer;
}

.fp-section-alert-modal__sheet {
	position: relative;
	z-index: 1;
	width: min(100%, 22rem);
	background: var(--wa-modal-bg, var(--wa-surface-bg, var(--wa-color-surface, #fff)));
	color: var(--wa-modal-color, var(--wa-text-color, var(--wa-color-text, #1f1a16)));
	border: 1px solid var(--wa-modal-border, var(--wa-border-color, var(--wa-color-border, #ded2c3)));
	border-radius: var(--wa-radius-panel, var(--wa-radius-md, 14px));
	box-shadow: var(--wa-modal-shadow, var(--wa-shadow-panel, 0 12px 32px rgba(15, 23, 42, 0.14)));
	padding: 1.15rem 1.15rem 1rem;
	text-align: center;
}

.fp-section-alert-modal__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.65rem;
}

.fp-section-alert-modal__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--wa-warning-bg, rgba(234, 179, 8, 0.15));
	color: var(--wa-warning-text, #b45309);
	font-size: 1.45rem;
	line-height: 1;
}

.fp-section-alert-modal__title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.25;
	color: inherit;
}

.fp-section-alert-modal__message {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--wa-muted-color, var(--wa-color-muted, #6f6258));
}

.fp-section-alert-modal__footer {
	display: flex;
	justify-content: center;
}

.fp-section-alert-modal__ok {
	min-width: 7.5rem;
	padding: 0.55rem 1.25rem !important;
	font-weight: 700 !important;
	border-radius: var(--wa-radius-button, var(--wa-radius-pill, 999px)) !important;
}
