.citizen-page-container {
	display: flex; // Should fix weird margin issues
	flex-direction: column;
	min-height: 100vh; // Ensure footer goes to the bottom of the page
	min-height: stretch; // for iOS, excludes safe areas
}

.mw-body,
.parsoid-body {
	min-height: 100vh; // avoid footer being in the middle of the page
}

.citizen-body-container {
	display: grid;
	grid-template-areas:
 'content'
		'footer';
	// Using auto as min value will cause overflow
	grid-template-columns: minmax( 0, var( --width-layout ) );
	gap: 0 var( --space-xl );
	justify-content: center;
	padding: 0 var( --padding-page );
	// Bottom margin is added because data-after-content cannot
	margin-bottom: var( --space-xl );
}

.citizen-body {
	z-index: @z-index-base; // Stop body content going over sticky header
	grid-area: content;
}

#mw-data-after-content:not( :empty ) {
	margin-top: var( --space-xl );
}

@media ( min-width: @min-width-breakpoint-desktop ) {
	.citizen-page-container {
		// Reserve space for header
		margin-left: var( --header-size );
	}

	.citizen-toc-enabled {
		.citizen-body-container {
			grid-template-areas:
 'content sidebar'
				'footer footer';
			grid-template-columns: minmax( 0, var( --width-layout ) ) var( --width-toc );
		}
	}

	.citizen-page-header-inner,
	.citizen-body-container {
		transition-timing-function: var( --transition-timing-function-ease );
		transition-duration: var( --transition-duration-medium );
	}

	.citizen-page-header-inner {
		transition-property: max-width;
	}

	.citizen-body-container {
		transition-property: grid;
	}
}

/* Wider page width for certain namespaces */
@media ( min-width: @min-width-breakpoint-desktop-wide ) {
	// 1 - Special, 6 - File, 14 - Category
	.ns {
		&--1,
		&-6,
		&-14 {
			--width-layout: var( --width-layout--extended );
		}
	}
}
