/* =======================================================
   carcass.css
   Только геометрия и логика оболочки сайта
   Без цветов и декоративного оформления
======================================================= */

:root {
	--site-width: 1200px;
	--site-gutter: 16px;

	--header-height-mobile: 64px;
	--header-height-desktop: 72px;

	--footer-height: 72px;
	--footer-type-height: 32px;
}

html,
body {
	width: 100%;
	min-height: 100%;
	margin: 0;
	padding: 0;
}

body {
	min-height: 100vh;
}
html {
	scroll-behavior: smooth;
}

.carcass {
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100vh;
}


/* ===== HEADER / CONTENT / FOOTER WRAPPERS ===== */

.header,
.footer {
	width: 100%;
}

.header_menu-desktop_bgr,
.header_menu-mobile_bgr,
.content_bgr,
.footer_menu_bgr,
.footer_type_bgr {
	display: flex;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
}

.content_bgr {
	align-items: flex-start;
	flex: 1 0 auto;
}


/* ===== INNER SHELL WIDTH ===== */

.header_menu-desktop,
.header_menu-mobile,
.content,
.footer_menu,
.footer_type {
	width: 100%;
	max-width: var(--site-width);
	box-sizing: border-box;
	padding-left: var(--site-gutter);
	padding-right: var(--site-gutter);
}


/* ===== HEADER ===== */

.header_menu-desktop {
	display: none;
	align-items: stretch;
	min-height: var(--header-height-desktop);
}

.header_menu-mobile {
	display: flex;
	align-items: center;
	min-height: var(--header-height-mobile);
}


/* ===== CONTENT ===== */

.content {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	min-height: 1px;
}


/* ===== FOOTER ===== */

.footer {
	display: flex;
	flex-direction: column;
}

.footer_menu {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--footer-height);
}

.footer_type {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--footer-type-height);
	text-align: center;
}


/* ===== DESKTOP SWITCH ===== */

@media (min-width: 1000px) {
	:root {
		--site-gutter: 24px;
	}

	.header_menu-desktop {
		display: flex;
	}

	.header_menu-mobile {
		display: none;
	}
}


/* ===== DEBUG ===== */

.outline1px {
	outline: 1px dashed #f60;
}