/* ==========================================================================
   Blocco: Base full width (cbfw)
   - .cbfw-wrap  → fascia a tutta larghezza del viewport con colore e/o
                   immagine di fondo (style inline dalla view)
   - .cbfw-block → contenuto con le InnerBlocks: container centrato
                   (max-width 1200px) oppure tutta la larghezza
   Le spaziature verticali arrivano dalla view come variabili --cbfw-pt/pb.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Wrapper a tutta larghezza ("full bleed")
   -------------------------------------------------------------------------- */
.cbfw-wrap {
	--cbfw-pt: 80px;
	--cbfw-pb: 80px;

	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
}

/* 100vw include la scrollbar verticale su Windows/Linux: evita la scrollbar
   orizzontale. "clip" non crea un contesto di scroll e non rompe sticky. */
body:has(.cbfw-wrap) {
	overflow-x: clip;
}

/* --------------------------------------------------------------------------
   Contenuto
   -------------------------------------------------------------------------- */
.cbfw-block {
	width: 100%;
	margin: 0 auto;
	padding: var(--cbfw-pt) 2rem var(--cbfw-pb);
	box-sizing: border-box;
}
.cbfw-content-container .cbfw-block {
	max-width: 1200px;
}

/* Niente margini "in eccesso" ai bordi: lo spazio lo gestiscono i padding */
.cbfw-block > *:first-child {
	margin-top: 0;
}
.cbfw-block > *:last-child {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.cbfw-wrap {
		min-height: 0 !important;
	}
	.cbfw-block {
		padding: calc(var(--cbfw-pt) * 0.6) 1.5rem calc(var(--cbfw-pb) * 0.6);
	}
}
