/**
 * Layout CSS.
 */

.site-shell,
.site-header,
.site-hero,
.site-main,
.site-footer,
.content-area,
.sidebar,
.footer-widgets,
.site-info,
.site-navigation__menu,
.site-js-hooks,
.content-layout,
.header-utility,
.hero-widgets,
.footer-widgets__column {
	display: block;
}

.site-wrap {
	width: min(100% - (var(--site-gutter) * 2), var(--site-width));
	max-width: none;
	margin-right: auto;
	margin-left: auto;
}

.site-band--mode-constrained {
	width: min(100% - (var(--site-gutter) * 2), var(--site-width));
	max-width: none;
	margin-right: auto;
	margin-left: auto;
}

.site-band--mode-full-width {
	width: calc(100% - (var(--full-width-section-offset, 0px) * 2));
	max-width: calc(100% - (var(--full-width-section-offset, 0px) * 2));
	margin-right: var(--full-width-section-offset, 0px);
	margin-left: var(--full-width-section-offset, 0px);
}

.site-wrap--fill-region,
.site-wrap--fill-region.site-wrap--mode-constrained,
.site-wrap--fill-region.site-wrap--mode-full-width {
	width: 100%;
	max-width: none;
	margin-right: 0;
	margin-left: 0;
}

.site-header__inner,
.site-main__inner,
.site-footer__inner,
.site-branding,
.site-navigation,
.site-hero__inner,
.site-header__aside,
.footer-widgets {
	display: flex;
	gap: var(--site-grid-gap);
}

.site-header__inner,
.site-footer__inner,
.site-hero__inner {
	align-items: stretch;
}

.site-main__inner {
	align-items: stretch;
}

.content-layout {
	display: flex;
	gap: var(--site-grid-gap);
	align-items: flex-start;
	width: 100%;
}

.content-layout--sidebar-left {
	flex-direction: row-reverse;
}

.site-branding-wrap {
	flex: 0 1 auto;
}

.site-header__aside {
	flex: 1 1 auto;
	flex-direction: column;
	align-items: stretch;
}

.site-branding__text,
.site-header__aside,
.sidebar-primary__inner,
.hero-content,
.content-area,
.content-primary,
.site-info,
.footer-navigation,
.footer-widgets,
.woocommerce-content-area,
.header-utility,
.hero-widgets {
	width: 100%;
}

.content-area,
.content-primary {
	flex: 1 1 auto;
	min-width: 0;
}

.sidebar,
.content-sidebar {
	flex: 0 0 min(100%, 320px);
}

.site-navigation {
	justify-content: flex-end;
	align-items: center;
}

.sidebar-width-narrow.sidebar,
.sidebar-width-narrow.content-sidebar {
	flex: 0 0 min(100%, 260px);
}

.sidebar-width-standard.sidebar,
.sidebar-width-standard.content-sidebar {
	flex: 0 0 min(100%, 320px);
}

.sidebar-width-wide.sidebar,
.sidebar-width-wide.content-sidebar {
	flex: 0 0 min(100%, 380px);
}

.site-navigation__menu {
	width: 100%;
}

.footer-widgets {
	flex-wrap: wrap;
}

.footer-widgets__column,
.site-info,
.footer-navigation {
	flex: 1 1 100%;
	min-width: 0;
}

.header-utility,
.hero-widgets {
	min-width: 0;
}

.site-js-hooks {
	width: 0;
	height: 0;
	overflow: hidden;
}

@media (min-width: 980px) {
	.footer-widgets--columns-2 .footer-widgets__column {
		flex-basis: calc(50% - (var(--site-grid-gap) / 2));
	}

	.footer-widgets--columns-3 .footer-widgets__column {
		flex-basis: calc(33.333% - ((var(--site-grid-gap) * 2) / 3));
	}

	.footer-widgets--columns-4 .footer-widgets__column {
		flex-basis: calc(25% - ((var(--site-grid-gap) * 3) / 4));
	}

	.footer-widgets--columns-5 .footer-widgets__column,
	.footer-widgets--columns-6 .footer-widgets__column {
		flex-basis: calc(33.333% - ((var(--site-grid-gap) * 2) / 3));
	}
}

@media (min-width: 1100px) {
	.footer-widgets--columns-5 .footer-widgets__column {
		flex-basis: calc(20% - ((var(--site-grid-gap) * 4) / 5));
	}

	.footer-widgets--columns-6 .footer-widgets__column {
		flex-basis: calc(16.666% - ((var(--site-grid-gap) * 5) / 6));
	}
}

@media (max-width: 979px) {
	.site-header__inner,
	.site-main__inner,
	.site-footer__inner,
	.site-branding,
	.site-navigation,
	.site-hero__inner,
	.content-layout,
	.footer-widgets {
		flex-direction: column;
	}

	.sidebar {
		flex-basis: auto;
	}
}


.site-band {
	max-width: none;
}

.content-layout--collection {
	align-items: start;
}

.content-layout--singular {
	align-items: stretch;
}


/**
 * Body-class-driven structural alignment.
 */
.hero-layout-disabled .site-hero {
	display: none;
}

.page-type-blank .site-main,
.content-layout-builder .site-main,
.content-layout-full .site-main {
	width: 100%;
}

.no-sidebar .content-layout {
	grid-template-columns: minmax(0, 1fr);
}


.site-branding__logo,
.site-branding__text,
.site-info__text,
.site-navigation__toggle,
.site-navigation__menu,
.footer-navigation__menu {
	min-width: 0;
}

.site-branding__logo,
.site-branding__text {
	display: block;
}

/**
 * Header feature-layer structural variants.
 */
.site-header.header-layout-balanced .site-header__inner {
	align-items: stretch;
}

.site-header.header-layout-stacked .site-header__inner {
	flex-direction: column;
}

.site-header.header-layout-stacked .site-branding-wrap,
.site-header.header-layout-stacked .site-header__aside {
	width: 100%;
}

.site-header.header-layout-split .site-header__inner {
	flex-wrap: wrap;
	align-items: stretch;
}

.site-header.header-layout-split .site-branding-wrap,
.site-header.header-layout-split .site-header__aside {
	flex: 1 1 100%;
	width: 100%;
}

.site-header.header-layout-split .site-header__aside {
	justify-content: flex-start;
}

.site-navigation.primary-navigation-align-start {
	justify-content: flex-start;
}

.site-navigation.primary-navigation-align-center {
	justify-content: center;
}

.site-navigation.primary-navigation-align-end {
	justify-content: flex-end;
}

@media (min-width: 980px) {
	.site-header.header-layout-balanced .site-branding-wrap {
		flex: 0 1 auto;
	}

	.site-header.header-layout-balanced .site-header__aside {
		flex: 1 1 auto;
	}

	.site-header.header-layout-stacked .site-header__aside,
	.site-header.header-layout-split .site-header__aside {
		align-items: stretch;
	}

	.site-header.header-layout-split .site-navigation__menu > ul,
	.site-header.header-layout-stacked .site-navigation__menu > ul {
		width: 100%;
	}

	.site-header.header-layout-split .site-navigation.primary-navigation-align-center .site-navigation__menu > ul {
		justify-content: center;
	}

	.site-header.header-layout-split .site-navigation.primary-navigation-align-end .site-navigation__menu > ul,
	.site-header.header-layout-stacked .site-navigation.primary-navigation-align-end .site-navigation__menu > ul {
		justify-content: flex-end;
	}

	.site-header.header-layout-split .site-navigation.primary-navigation-align-start .site-navigation__menu > ul,
	.site-header.header-layout-stacked .site-navigation.primary-navigation-align-start .site-navigation__menu > ul {
		justify-content: flex-start;
	}
}
