/**
 * Fix scrollbar verticale aggiuntiva al primo scroll (home / landing).
 *
 * Cause:
 * 1. main.fullstack-page-shell ha overflow-x: hidden → per spec CSS overflow-y diventa auto
 *    e main diventa un contenitore scrollabile annidato rispetto al documento.
 * 2. Le Fullstack Section full-bleed usano width: 100vw; con la scrollbar verticale attiva
 *    100vw > clientWidth → overflow orizzontale contenuto con overflow-x: clip su html/body.
 *    Il breakout full-bleed delle section resta quello del tema (left: 50% + margin -50vw).
 */

/* Un solo asse di scroll: il documento, non main */
main.fullstack-site-main.fullstack-page-shell {
	overflow-x: clip;
	overflow-y: visible;
}

/* Evita shift di layout quando la scrollbar compare */
html {
	scrollbar-gutter: stable;
	overflow-x: clip;
}

body {
	overflow-x: clip;
}
.page-template-no-title.fullstack-page-hide-header h1.wp-block-post-title,
.page-template-no-title.fullstack-page-hide-header h1.entry-title,
.page-template-no-title.fullstack-page-hide-header header{	
	display: none!important;	
}
/* Home landing: su mobile logo prima, testo intro dopo */
@media (max-width: 767px) {
	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		padding-top: 0 !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .wp-block-post-title {
		display: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .logo-block {
		order: 1;
		margin-block-start: 0 !important;
		padding-top: 0.5rem !important;
		padding-bottom: 0.25rem !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .logo-block figure.wp-block-post-featured-image {
		max-height: 130px;
		margin: 0 auto;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .logo-block figure.wp-block-post-featured-image img {
		max-height: 130px;
		width: auto !important;
		height: auto !important;
		object-fit: contain;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .intro-block {
		order: 2;
		margin-block-start: 0 !important;
		padding-top: 0 !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) > .fullstack-page-section:not(.intro-block):not(.logo-block) {
		order: 3;
	}

	/* Intro: colonne in stack, separatore ::after sulle prime due */
	.intro-block .wp-block-columns {
		flex-direction: column;
		flex-wrap: nowrap;
	}

	.intro-block .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.intro-block .wp-block-columns > .wp-block-column:nth-child(-n + 2) {
		border: none !important;
		padding-bottom: 0.25rem;
		margin-bottom: 1.25rem;
	}

	.intro-block .wp-block-columns > .wp-block-column:nth-child(-n + 2)::after {
		content: "";
		display: block;
		width: 100px;
		height: 2.72px;
		margin: 2.5rem auto 0;
		background-color: rgba(255, 255, 255, 0.16);
	}

	.intro-block .wp-block-column p:first-of-type {
		font-size: 1.125rem !important;
		font-weight: 700 !important;
		line-height: 1.25 !important;
		letter-spacing: 0.04em !important;
	}

	.intro-block .wp-block-column p:last-of-type {
		font-size: 0.875rem !important;
		line-height: 1.45 !important;
	}

	/* Tipografia landing */
	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) h1 {
		font-size: clamp(1.35rem, 5.2vw, 1.75rem) !important;
		line-height: 1.25 !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) h1 + p {
		font-size: 0.9375rem !important;
		line-height: 1.5 !important;
	}

	.fullstack-page-content-shell:has(.intro-block):has(.logo-block) h2 {
		font-size: clamp(2rem, 11vw, 3.25rem) !important;
		line-height: 1.05 !important;
		letter-spacing: 0.1em !important;
	}
}
