/**
 * Parallax Cinematic Hero — Frontend styles
 *
 * Namespace: .pch-wrapper
 * Breakpoints: tablet 980px, mobile 767px
 */

/* ==========================================================================
   Reset locale
   ========================================================================== */

.pch-wrapper,
.pch-wrapper *,
.pch-wrapper *::before,
.pch-wrapper *::after {
	box-sizing: border-box;
}

.pch-wrapper {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: visible;
	isolation: isolate;
}

.pch-wrapper img {
	display: block;
	max-width: 100%;
	height: auto;
	background: transparent;
	border: 0;
	outline: 0;
	box-shadow: none;
	filter: none;
}

.pch-wrapper h1,
.pch-wrapper h2,
.pch-wrapper h3,
.pch-wrapper p {
	margin: 0;
	padding: 0;
}

.pch-wrapper a {
	text-decoration: none;
}

/* ==========================================================================
   Wrapper & scroll track
   ========================================================================== */

.pch-wrapper {
	--pch-vh: 1vh;
	--pch-total-vh: 300;
	--pch-height-vh: 300;
	--pch-phase-count: 3;
	--pch-header-offset: 0px;
	--pch-sticky-top: 0px;
	--pch-stage-height: calc(var(--pch-vh) * 100);
	height: calc(var(--pch-vh) * var(--pch-total-vh, var(--pch-height-vh, 300)));
}

/* Header trasparente overlay: hero full viewport, contenuto spostato sotto header */
.pch-wrapper.pch-has-transparent-header {
	--pch-sticky-top: 0px;
}

.pch-wrapper.pch-has-transparent-header .pch-content {
	padding-top: var(--pch-header-offset, 0px);
}

.pch-sticky {
	position: sticky;
	top: var(--pch-sticky-top, 0px);
	width: 100%;
	height: calc(var(--pch-vh, 1vh) * 100);
	min-height: calc(var(--pch-vh, 1vh) * 100);
	overflow: hidden;
	z-index: 1;
}

/* Full viewport breakout (opzione admin) — solo sul wrapper, non tocca Divi globalmente */
.pch-wrapper--full-viewport {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Altezza sticky allineata a --pch-vh (impostata da JS) per coerenza col track scroll */

.pch-stage {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: inherit;
	overflow: hidden;
}

/* ==========================================================================
   Fasi sovrapposte — visibilità controllata da JS
   ========================================================================== */

.pch-phase {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: inherit;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 1;
	transform: translate3d(0, 0, 0) scale(1);
	transform-origin: center center;
	will-change: opacity, transform;
	backface-visibility: hidden;
}

.pch-phase.is-visible,
.pch-phase.active {
	visibility: visible;
}

.pch-phase.is-current,
.pch-phase.is-next,
.pch-phase.active {
	pointer-events: auto;
}

/* Fallback senza JS: prima fase sempre leggibile */
.pch-wrapper:not(.pch-wrapper--initialized) .pch-phase:first-child,
.pch-wrapper:not(.pch-wrapper--initialized) .pch-phase.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

/* Fallback senza CSS avanzato: contenuto leggibile */
.pch-no-js .pch-phase {
	opacity: 1 !important;
	visibility: visible !important;
	position: relative !important;
	transform: none !important;
}

.pch-wrapper--initialized .pch-phase {
	transition: none;
}

.pch-phase.active {
	z-index: 2;
}

.pch-phase.previous,
.pch-phase.next {
	pointer-events: none;
}

/* Layer sfondo */
.pch-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: #0f172a;
	background-size: var(--pch-bg-size, cover);
	background-position: var(--pch-bg-position, center center);
	background-repeat: var(--pch-bg-repeat, no-repeat);
}

.pch-bg--responsive {
	background: var(--pch-bg-desktop, #0f172a);
}

@media (max-width: 980px) {
	.pch-bg--responsive {
		background: var(--pch-bg-tablet, var(--pch-bg-desktop, #0f172a));
	}
}

@media (max-width: 767px) {
	.pch-bg--responsive {
		background: var(--pch-bg-mobile, var(--pch-bg-tablet, var(--pch-bg-desktop, #0f172a)));
	}
}

.pch-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: var(--pch-overlay-color, #000);
	opacity: var(--pch-overlay-opacity, 0);
	mix-blend-mode: var(--pch-overlay-blend, normal);
	pointer-events: none;
}

/* ==========================================================================
   Contenuto (testo + immagine sovrapponibili)
   ========================================================================== */

.pch-content {
	position: relative;
	z-index: 3;
	width: 100%;
	height: 100%;
	min-height: inherit;
	max-width: 100%;
	padding: clamp(1rem, 3vw, 2.5rem);
	overflow: hidden;
}

.pch-text {
	position: absolute;
	z-index: var(--pch-text-z-index, var(--pch-text-z, 4));
	width: min(100%, var(--pch-content-max-desktop, var(--pch-text-max-width, 600px)));
	max-width: 100%;
	margin: var(--pch-text-mt, 0) var(--pch-text-mr, 0) var(--pch-text-mb, 0) var(--pch-text-ml, 0);
	padding: 0;
}

.pch-image-wrap {
	position: absolute;
	display: block;
	z-index: var(--pch-img-z, var(--pch-image-z-index, 3));
	width: var(--pch-image-width-desktop, var(--pch-img-width-desktop, 45%));
	max-width: var(--pch-image-max-width-desktop, var(--pch-img-max-w-desktop, min(92vw, 100%)));
	margin: var(--pch-img-margin-desktop, 0);
	padding: var(--pch-img-padding-desktop, 0);
	opacity: 1;
	visibility: visible;
	pointer-events: none;
	transform: translate(var(--pch-image-offset-x, var(--pch-img-offset-x, 0)), var(--pch-image-offset-y, var(--pch-img-offset-y, 0)));
	background: transparent;
	border: 0;
	border-width: var(--pch-img-border-width, 0);
	border-style: var(--pch-img-border-style, solid);
	border-color: var(--pch-img-border-color, transparent);
	border-radius: var(--pch-img-radius, 0);
	box-shadow: none;
	outline: 0;
	filter: none;
	backdrop-filter: none;
}

/* Fallback posizione se classi posizione mancanti */
.pch-phase:not([class*="pch-img-pos-"]) .pch-image-wrap {
	left: 50%;
	top: 50%;
	transform: translate(calc(-50% + var(--pch-image-offset-x, var(--pch-img-offset-x, 0))), calc(-50% + var(--pch-image-offset-y, var(--pch-img-offset-y, 0))));
}

.pch-image-wrap::before,
.pch-image-wrap::after {
	content: none;
	display: none;
}

.pch-image-picture {
	display: block;
	width: 100%;
	background: transparent;
	border: 0;
	box-shadow: none;
	outline: 0;
	filter: none;
	backdrop-filter: none;
}

.pch-image-picture::before,
.pch-image-picture::after {
	content: none;
	display: none;
}

.pch-image-wrap img,
.pch-image-picture .pch-image,
.pch-image-picture .pch-phase-image,
.pch-phase-image,
.pch-image {
	display: block;
	width: 100%;
	max-width: var(--pch-img-max-w-desktop, none);
	height: var(--pch-img-height-desktop, auto);
	object-fit: var(--pch-img-object-fit, contain);
	opacity: 1;
	visibility: visible;
	background: transparent !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	filter: none !important;
	backdrop-filter: none !important;
	border-radius: inherit;
	padding: 0;
	margin: 0;
}

/* Posizione testo — orizzontale */
.pch-text-pos-left .pch-text {
	left: clamp(1rem, 4vw, 3rem);
	right: auto;
	text-align: left;
}

.pch-text-pos-center .pch-text {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	text-align: center;
}

.pch-text-pos-right .pch-text {
	left: auto;
	right: clamp(1rem, 4vw, 3rem);
	text-align: right;
}

/* Posizione testo — verticale */
.pch-text-valign-top .pch-text {
	top: clamp(1rem, 4vw, 3rem);
	bottom: auto;
}

.pch-text-valign-center .pch-text {
	top: 50%;
	bottom: auto;
}

.pch-text-valign-bottom .pch-text {
	top: auto;
	bottom: clamp(1rem, 4vw, 3rem);
}

.pch-text-valign-center.pch-text-pos-left .pch-text,
.pch-text-valign-center.pch-text-pos-right .pch-text {
	transform: translateY(-50%);
}

.pch-text-pos-center.pch-text-valign-center .pch-text {
	transform: translate(-50%, -50%);
}

.pch-text-pos-center.pch-text-valign-top .pch-text {
	transform: translateX(-50%);
}

.pch-text-pos-center.pch-text-valign-bottom .pch-text {
	transform: translateX(-50%);
}

/* Posizione immagine — orizzontale */
.pch-img-pos-left .pch-image-wrap {
	left: clamp(1rem, 4vw, 3rem);
	right: auto;
}

.pch-img-pos-center .pch-image-wrap {
	left: 50%;
	right: auto;
	transform: translate(calc(-50% + var(--pch-image-offset-x, var(--pch-img-offset-x, 0))), var(--pch-image-offset-y, var(--pch-img-offset-y, 0)));
}

.pch-img-pos-right .pch-image-wrap {
	left: auto;
	right: clamp(1rem, 4vw, 3rem);
}

/* Posizione immagine — verticale */
.pch-img-valign-top .pch-image-wrap {
	top: clamp(1rem, 4vw, 3rem);
	bottom: auto;
}

.pch-img-valign-center .pch-image-wrap {
	top: 50%;
	bottom: auto;
}

.pch-img-valign-bottom .pch-image-wrap {
	top: auto;
	bottom: clamp(1rem, 4vw, 3rem);
}

.pch-img-pos-left.pch-img-valign-center .pch-image-wrap,
.pch-img-pos-right.pch-img-valign-center .pch-image-wrap {
	transform: translate(var(--pch-image-offset-x, var(--pch-img-offset-x, 0)), calc(-50% + var(--pch-image-offset-y, var(--pch-img-offset-y, 0))));
}

.pch-img-pos-center.pch-img-valign-center .pch-image-wrap {
	transform: translate(calc(-50% + var(--pch-image-offset-x, var(--pch-img-offset-x, 0))), calc(-50% + var(--pch-image-offset-y, var(--pch-img-offset-y, 0))));
}

.pch-img-pos-center.pch-img-valign-top .pch-image-wrap,
.pch-img-pos-center.pch-img-valign-bottom .pch-image-wrap {
	transform: translate(calc(-50% + var(--pch-image-offset-x, var(--pch-img-offset-x, 0))), var(--pch-image-offset-y, var(--pch-img-offset-y, 0)));
}

/* ==========================================================================
   Tipografia
   ========================================================================== */

.pch-title {
	font-family: var(--pch-title-font-family, var(--pch-title-font, inherit));
	font-size: var(--pch-title-font-size-desktop, var(--pch-title-size-desktop, 48px));
	font-weight: var(--pch-title-font-weight, var(--pch-title-weight, 700));
	font-style: var(--pch-title-font-style, var(--pch-title-style, normal));
	text-transform: var(--pch-title-text-transform, var(--pch-title-transform, none));
	text-decoration: var(--pch-title-text-decoration, var(--pch-title-decoration, none));
	line-height: var(--pch-title-line-height-desktop, var(--pch-title-lh-desktop, var(--pch-title-line-height, 1.1)));
	color: var(--pch-title-color, #fff);
	letter-spacing: var(--pch-title-letter-spacing-desktop, var(--pch-title-ls-desktop, 0));
	text-align: var(--pch-title-align, inherit);
	text-shadow: var(--pch-title-shadow, none);
	margin: var(--pch-title-margin-desktop, 0);
	padding: var(--pch-title-padding-desktop, 0);
}

.pch-subtitle {
	margin: var(--pch-subtitle-margin-desktop, 0.75rem 0 0);
	padding: var(--pch-subtitle-padding-desktop, 0);
	font-family: var(--pch-subtitle-font-family, var(--pch-subtitle-font, inherit));
	font-size: var(--pch-subtitle-font-size-desktop, var(--pch-subtitle-size-desktop, 20px));
	font-weight: var(--pch-subtitle-font-weight, var(--pch-subtitle-weight, 400));
	font-style: var(--pch-subtitle-font-style, var(--pch-subtitle-style, normal));
	text-transform: var(--pch-subtitle-text-transform, var(--pch-subtitle-transform, none));
	text-decoration: var(--pch-subtitle-text-decoration, var(--pch-subtitle-decoration, none));
	line-height: var(--pch-subtitle-line-height-desktop, var(--pch-subtitle-lh-desktop, var(--pch-subtitle-line-height, 1.5)));
	color: var(--pch-subtitle-color, rgba(248, 250, 252, 0.85));
	letter-spacing: var(--pch-subtitle-letter-spacing-desktop, var(--pch-subtitle-ls-desktop, 0));
	text-align: var(--pch-subtitle-align, inherit);
	text-shadow: var(--pch-subtitle-shadow, none);
}

.pch-button {
	display: inline-block;
	width: var(--pch-btn-width, auto);
	min-width: var(--pch-btn-min-width, 0);
	max-width: var(--pch-btn-max-width, none);
	margin: var(--pch-button-margin-desktop, var(--pch-btn-margin, 1.5rem 0 0));
	padding: var(--pch-button-padding-desktop, var(--pch-btn-padding, 14px 28px));
	border-width: var(--pch-button-border-width, var(--pch-btn-border-width, 0));
	border-style: var(--pch-button-border-style, var(--pch-btn-border-style, solid));
	border-color: var(--pch-button-border-color, var(--pch-btn-border, transparent));
	border-radius: var(--pch-button-border-radius, var(--pch-btn-radius, 999px));
	background: var(--pch-button-background, var(--pch-btn-bg-effective, var(--pch-button-bg-color, var(--pch-btn-bg, #fff))));
	color: var(--pch-button-text-color, var(--pch-btn-color, #0f172a));
	font-family: var(--pch-button-font-family, var(--pch-btn-font, inherit));
	font-size: var(--pch-button-font-size-desktop, var(--pch-btn-size-desktop, 16px));
	font-weight: var(--pch-button-font-weight, var(--pch-btn-weight, 600));
	font-style: var(--pch-btn-style, normal);
	text-transform: var(--pch-btn-transform, none);
	line-height: var(--pch-btn-lh-desktop, 1.2);
	letter-spacing: var(--pch-btn-ls-desktop, 0);
	box-shadow: var(--pch-btn-shadow, none);
	transition: all var(--pch-button-transition-duration, var(--pch-btn-transition, 200ms)) ease;
	text-decoration: none;
}

.pch-text-pos-center .pch-button,
.pch-btn-align-center .pch-button {
	margin-left: auto;
	margin-right: auto;
}

.pch-text-pos-right .pch-button,
.pch-btn-align-right .pch-button {
	margin-left: auto;
	margin-right: 0;
}

.pch-button:hover,
.pch-button:focus-visible {
	color: var(--pch-button-text-color-hover, var(--pch-btn-color-hover, var(--pch-button-text-color, var(--pch-btn-color, #0f172a))));
	background: var(--pch-button-background-hover, var(--pch-btn-bg-hover-effective, var(--pch-button-background, var(--pch-button-bg-color-hover, var(--pch-btn-bg-hover, var(--pch-button-bg-color, var(--pch-btn-bg, #fff)))))));
	border-color: var(--pch-button-border-color-hover, var(--pch-btn-border-hover, var(--pch-button-border-color, var(--pch-btn-border, transparent))));
	box-shadow: var(--pch-btn-shadow-hover, var(--pch-btn-shadow, none));
}

/* ==========================================================================
   Classi transizione (hook per JS / stati futuri)
   ========================================================================== */

.pch-phase.transition-fade.active,
.pch-phase.transition-fade.previous,
.pch-phase.transition-fade.next {
	/* Crossfade gestito via opacity inline */
}

.pch-phase.transition-zoom.active,
.pch-phase.transition-zoom.previous,
.pch-phase.transition-zoom.next {
	transform-origin: center center;
}

.pch-phase.transition-slide-left.active,
.pch-phase.transition-slide-left.previous,
.pch-phase.transition-slide-left.next,
.pch-phase.transition-slide-right.active,
.pch-phase.transition-slide-right.previous,
.pch-phase.transition-slide-right.next {
	transform-origin: center center;
}

@media (prefers-reduced-motion: reduce) {
	.pch-wrapper--initialized .pch-phase {
		transform: none !important;
	}
}

/* ==========================================================================
   Debug panel
   ========================================================================== */

.pch-debug-panel {
	position: fixed;
	left: 12px;
	bottom: 12px;
	z-index: 99999;
	padding: 10px 12px;
	border-radius: 6px;
	background: rgba(0, 0, 0, 0.82);
	color: #f8fafc;
	font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	pointer-events: none;
	max-width: 220px;
}

/* ==========================================================================
   Tablet — max-width 980px
   ========================================================================== */

@media (max-width: 980px) {
	.pch-text {
		width: min(100%, var(--pch-content-max-tablet, var(--pch-content-max-desktop, var(--pch-text-max-width, 600px))));
	}

	.pch-title {
		font-size: var(--pch-title-font-size-tablet, var(--pch-title-size-tablet, var(--pch-title-font-size-desktop, 36px)));
		line-height: var(--pch-title-line-height-tablet, var(--pch-title-lh-tablet, var(--pch-title-line-height-desktop, 1.1)));
		letter-spacing: var(--pch-title-letter-spacing-tablet, var(--pch-title-ls-tablet, var(--pch-title-letter-spacing-desktop, 0)));
		margin: var(--pch-title-margin-tablet, var(--pch-title-margin-desktop, 0));
		padding: var(--pch-title-padding-tablet, var(--pch-title-padding-desktop, 0));
	}

	.pch-subtitle {
		font-size: var(--pch-subtitle-font-size-tablet, var(--pch-subtitle-size-tablet, var(--pch-subtitle-font-size-desktop, 18px)));
		line-height: var(--pch-subtitle-line-height-tablet, var(--pch-subtitle-lh-tablet, var(--pch-subtitle-line-height-desktop, 1.5)));
		letter-spacing: var(--pch-subtitle-letter-spacing-tablet, var(--pch-subtitle-ls-tablet, var(--pch-subtitle-letter-spacing-desktop, 0)));
		margin: var(--pch-subtitle-margin-tablet, var(--pch-subtitle-margin-desktop, 0.75rem 0 0));
		padding: var(--pch-subtitle-padding-tablet, var(--pch-subtitle-padding-desktop, 0));
	}

	.pch-button {
		font-size: var(--pch-button-font-size-tablet, var(--pch-btn-size-tablet, var(--pch-button-font-size-desktop, 16px)));
		line-height: var(--pch-btn-lh-tablet, var(--pch-btn-lh-desktop, 1.2));
		letter-spacing: var(--pch-btn-ls-tablet, var(--pch-btn-ls-desktop, 0));
		padding: var(--pch-button-padding-tablet, var(--pch-btn-padding-tablet, var(--pch-button-padding-desktop, 14px 28px)));
		margin: var(--pch-button-margin-tablet, var(--pch-btn-margin-tablet, var(--pch-button-margin-desktop, 1.5rem 0 0)));
	}

	.pch-image-wrap {
		width: var(--pch-image-width-tablet, var(--pch-img-width-tablet, var(--pch-image-width-desktop, 60%)));
		max-width: var(--pch-image-max-width-tablet, var(--pch-img-max-w-tablet, var(--pch-image-max-width-desktop, min(92vw, 100%))));
		transform: translate(var(--pch-img-offset-x-tablet, var(--pch-image-offset-x, 0)), var(--pch-img-offset-y-tablet, var(--pch-image-offset-y, 0)));
	}

	.pch-image-wrap img,
	.pch-phase-image,
	.pch-image {
		max-width: var(--pch-img-max-w-tablet, var(--pch-img-max-w-desktop, none));
		height: var(--pch-img-height-tablet, var(--pch-img-height-desktop, auto));
	}
}

/* ==========================================================================
   Mobile — max-width 767px
   ========================================================================== */

@media (max-width: 767px) {
	.pch-content {
		padding: 1.25rem;
	}

	.pch-wrapper.pch-has-transparent-header .pch-content {
		padding-top: var(--pch-header-offset, 0px);
		padding-left: 1.25rem;
		padding-right: 1.25rem;
		padding-bottom: 1.25rem;
	}

	.pch-text {
		width: min(100%, var(--pch-content-max-mobile, var(--pch-content-max-tablet, var(--pch-content-max-desktop, 100%))));
	}

	.pch-content {
		gap: var(--pch-layout-gap-mobile, var(--pch-layout-gap-tablet, 1.25rem));
	}

	.pch-title {
		font-size: var(--pch-title-font-size-mobile, var(--pch-title-size-mobile, var(--pch-title-font-size-tablet, 28px)));
		line-height: var(--pch-title-line-height-mobile, var(--pch-title-lh-mobile, var(--pch-title-line-height-tablet, 1.1)));
		letter-spacing: var(--pch-title-letter-spacing-mobile, var(--pch-title-ls-mobile, var(--pch-title-letter-spacing-tablet, 0)));
		margin: var(--pch-title-margin-mobile, var(--pch-title-margin-tablet, 0));
		padding: var(--pch-title-padding-mobile, var(--pch-title-padding-tablet, 0));
	}

	.pch-subtitle {
		font-size: var(--pch-subtitle-font-size-mobile, var(--pch-subtitle-size-mobile, var(--pch-subtitle-font-size-tablet, 16px)));
		line-height: var(--pch-subtitle-line-height-mobile, var(--pch-subtitle-lh-mobile, var(--pch-subtitle-line-height-tablet, 1.5)));
		letter-spacing: var(--pch-subtitle-letter-spacing-mobile, var(--pch-subtitle-ls-mobile, var(--pch-subtitle-letter-spacing-tablet, 0)));
		margin: var(--pch-subtitle-margin-mobile, var(--pch-subtitle-margin-tablet, 0.75rem 0 0));
		padding: var(--pch-subtitle-padding-mobile, var(--pch-subtitle-padding-tablet, 0));
	}

	.pch-button {
		font-size: var(--pch-button-font-size-mobile, var(--pch-btn-size-mobile, var(--pch-button-font-size-tablet, 16px)));
		line-height: var(--pch-btn-lh-mobile, var(--pch-btn-lh-tablet, 1.2));
		letter-spacing: var(--pch-btn-ls-mobile, var(--pch-btn-ls-tablet, 0));
		padding: var(--pch-button-padding-mobile, var(--pch-btn-padding-mobile, var(--pch-button-padding-tablet, 14px 28px)));
		margin: var(--pch-button-margin-mobile, var(--pch-btn-margin-mobile, var(--pch-button-margin-tablet, 1rem 0 0)));
	}

	.pch-image-wrap {
		width: var(--pch-image-width-mobile, var(--pch-img-width-mobile, var(--pch-image-width-tablet, var(--pch-image-width-desktop, 80%))));
		max-width: var(--pch-image-max-width-mobile, var(--pch-img-max-w-mobile, var(--pch-image-max-width-tablet, 100%)));
		transform: translate(var(--pch-img-offset-x-mobile, var(--pch-image-offset-x, 0)), var(--pch-img-offset-y-mobile, var(--pch-image-offset-y, 0)));
	}

	.pch-image-wrap img,
	.pch-phase-image,
	.pch-image {
		max-width: var(--pch-img-max-w-mobile, var(--pch-img-max-w-tablet, var(--pch-img-max-w-desktop, none)));
		height: var(--pch-img-height-mobile, var(--pch-img-height-tablet, auto));
	}

	.pch-text,
	.pch-image-wrap {
		position: relative;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;
		transform: none !important;
		margin-left: auto;
		margin-right: auto;
	}

	.pch-content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1.25rem;
		height: auto;
		min-height: inherit;
	}

	.pch-layout--testo-sopra .pch-text,
	.pch-layout--immagine-sopra .pch-image-wrap,
	.pch-layout--testo-sx .pch-text,
	.pch-layout--immagine-sx .pch-image-wrap {
		order: unset;
	}

	.pch-layout--testo-sopra .pch-text { order: 2; }
	.pch-layout--testo-sopra .pch-image-wrap { order: 1; }
	.pch-layout--immagine-sopra .pch-image-wrap { order: 1; }
	.pch-layout--immagine-sopra .pch-text { order: 2; }

	.pch-text {
		width: 100%;
		max-width: 100%;
		text-align: center !important;
		order: 2;
	}

	.pch-image-wrap {
		order: 1;
	}

	.pch-button {
		margin-top: 1rem;
	}
}

/* ==========================================================================
   Compatibilità Divi 5
   ========================================================================== */

.et_pb_section .pch-wrapper,
.et-l--post .pch-wrapper,
.et_pb_row .pch-wrapper,
.et_pb_code .pch-wrapper,
.et_pb_code_inner .pch-wrapper {
	overflow: visible;
	width: 100%;
}

.et_pb_section:has(.pch-wrapper),
.et_pb_row:has(.pch-wrapper),
.et_pb_code:has(.pch-wrapper),
.et_pb_code_inner:has(.pch-wrapper) {
	overflow: visible !important;
}

.et_pb_code_inner .pch-wrapper,
.et_pb_text_inner .pch-wrapper,
.et_pb_fullwidth_code .pch-wrapper {
	width: 100%;
}

/* Override Divi/tema su tipografia e pulsante hero */
.et_pb_section .pch-wrapper .pch-title,
.et_pb_code_inner .pch-wrapper .pch-title,
.et-l--post .pch-wrapper .pch-title {
	font-family: var(--pch-title-font-family, var(--pch-title-font, inherit)) !important;
	color: var(--pch-title-color, #fff) !important;
}

.et_pb_section .pch-wrapper .pch-subtitle,
.et_pb_code_inner .pch-wrapper .pch-subtitle,
.et-l--post .pch-wrapper .pch-subtitle {
	font-family: var(--pch-subtitle-font-family, var(--pch-subtitle-font, inherit)) !important;
	color: var(--pch-subtitle-color, rgba(248, 250, 252, 0.85)) !important;
}

.et_pb_section .pch-wrapper a.pch-button,
.et_pb_section .pch-wrapper .pch-button,
.et_pb_code_inner .pch-wrapper a.pch-button,
.et_pb_code_inner .pch-wrapper .pch-button,
.et-l--post .pch-wrapper a.pch-button,
.et-l--post .pch-wrapper .pch-button {
	font-family: var(--pch-button-font-family, var(--pch-btn-font, inherit)) !important;
	font-size: var(--pch-button-font-size-desktop, var(--pch-btn-size-desktop, 16px)) !important;
	font-weight: var(--pch-button-font-weight, var(--pch-btn-weight, 600)) !important;
	color: var(--pch-button-text-color, var(--pch-btn-color, #0f172a)) !important;
	background: var(--pch-button-background, var(--pch-btn-bg-effective, var(--pch-button-bg-color, var(--pch-btn-bg, #fff)))) !important;
	border-width: var(--pch-button-border-width, var(--pch-btn-border-width, 0)) !important;
	border-style: var(--pch-button-border-style, var(--pch-btn-border-style, solid)) !important;
	border-color: var(--pch-button-border-color, var(--pch-btn-border, transparent)) !important;
	border-radius: var(--pch-button-border-radius, var(--pch-btn-radius, 999px)) !important;
	padding: var(--pch-button-padding-desktop, var(--pch-btn-padding, 14px 28px)) !important;
}

/* Reset interferenze Divi/tema sulle immagini fase */
.et_pb_section .pch-image-wrap,
.et_pb_section .pch-image-picture,
.et_pb_section .pch-image-wrap img,
.et_pb_section .pch-phase-image,
.et-l--post .pch-image-wrap img,
.et_pb_code_inner .pch-image,
.et_pb_code_inner .pch-phase-image {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	outline: 0 !important;
	filter: none !important;
	backdrop-filter: none !important;
}
