body {
	margin: 0 auto;
	padding: 0 0.5rem;
	overflow-x: hidden;
}
article, aside, footer, header, nav, section {
    display: block;
}
#main-content {
	margin: 0 auto;
}
#sidebar {
	margin: 0 auto;
}
#page-wrapper > * {
	margin-bottom: 1rem;
}
#page-footer { margin-bottom: 0 }
#wpadminbar { margin: 0 }

/* メインビジュアル */
body.wide-visual #main-visual,
body.wide-visual #menu-wrap-header {
	width: 100vw;
	position: relative;
	left: 50%;
	margin-left: -50vw;
	max-width: none;
}
body.wide-visual #page-header .menu-header {
	margin: 0 auto;
	padding: 0 1rem;
}
#page-header,
#main-visual .swiper-iframe-wrapper {
	background-size: cover;
	background-position: center;
}
@media (max-width:416px) {
	body.wide-visual #main-visual {
		width: 100%;
		left: 0;
		min-width: 416px;
		margin-left: -8px;
	}
}

@media (min-width:1000px) {
	#page-body-wrapper {
		display: flex;
	}
	#main-content {
		flex: 2;
		margin-right: 1.5rem;
	}
	#sidebar {
		flex: 1;
	}
	body.framed-page:not(.wide-visual) #page-wrapper,
	body.framed-page.wide-visual #page-body-wrapper,
	body.framed-body #page-body-wrapper {
		padding: 0 1.2em;
		background-color: white;
		position: relative;
	}
	body.framed-page.wide-visual #page-body-wrapper,
	body.framed-body #page-body-wrapper {
		padding-top: 1.2em;
	}
	body.framed-page:not(.wide-visual) #page-wrapper::before,
	body.framed-page.wide-visual #page-body-wrapper::before,
	body.framed-body #page-body-wrapper::before {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: block;
		content: "";
		border: 1px solid currentColor;
		box-shadow: 0 0 10px currentColor;
		opacity: 0.2;
		pointer-events: none;
	}
}
@media (max-width:600px) {
	body {
		width: 400px;
		padding-left: 8px;
		padding-right: 8px;
	}
}

#main-content > *,
.sidebar > * {
	margin-bottom: 1rem;
}

.flex-wrapper {
	width: calc(100% + 1rem);
	margin-left: -0.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.flex-wrapper > * {
	margin: 0 0.5rem 1rem;
	box-sizing: border-box;
	flex-basis: 100%;
	max-width: 100%;
}
@media (min-width:601px) {
	.flex-wrapper > .flex-wide.min,
	.flex-wrapper > .flex-tall,
	.flex-wrapper > .flex-mix {
		flex-basis: calc(50% - 1rem);
		max-width: calc(50% - 1rem);
	}
	.flex-wrapper > .flex-tall.small {
		flex-basis: calc(100% / 3 - 1rem);
		max-width: calc(100% / 3 - 1rem);
	}
	.flex-wrapper > .flex-tall.thumb {
		flex-basis: calc(25% - 1rem);
		max-width: calc(25% - 1rem);
	}
	.sidebar .flex-wrapper > .flex-tall,
	.sidebar .flex-wrapper > .flex-mix,
	.sidebar .flex-wrapper > .flex-wide.min {
		flex-basis: 100%;
		max-width: 100%;
	}
	.sidebar .flex-wrapper > .flex-tall.thumb {
		flex-basis: calc(50% - 1rem);
		max-width: calc(50% - 1rem);
	}
}
@media (max-width:600px) {
	.flex-wrapper > .flex-tall,
	.flex-wrapper > .flex-mix {
		flex-basis: 100%;
		max-width: 100%;
	}
	.flex-wrapper > .flex-tall.thumb {
		flex-basis: calc(50% - 1rem);
		max-width: calc(50% - 1rem);
	}
}
/* メニュー構造部分 */
.menu-wrapper ul{margin:0;padding:0;list-style:none;}
.menu-wrapper .children{display:none;}
.menu-wrapper li{box-sizing:border-box;}
.menu-wrapper a{display:block;box-sizing:border-box;height:100%;}
/* ヘッドメニュー構造部分 */
#page-header .menu>li a{text-align:center;}
.menu>li a small{display:block;font-size:x-small;margin-top:2px;}
#page-header .menu{display:flex;flex-wrap:wrap;}
#page-header .menu li{position:relative;}
body:not(.auto-submenu) #page-header li:hover>.children{display:block;position:absolute;width: 12rem;}
#page-header .children{left:0;top:100%;z-index:1000;}
#page-header .children .children{left:100%;top:0;}
body.mi-aw-right #page-header .menu{justify-content:flex-end;}
body.mi-aw-full #page-header .menu>li{flex:1 0 auto;}
body.mi-eq-full #page-header .menu>li{flex:1;}
body.mi-eq-full:not(.auto-submenu) #page-header li:hover>.children{width:100%;}
/* サイドメニュー構造部分 */
#menu-wrap-clone{margin-bottom:0;}
#menu-wrap-clone .menu>li{display:none;}
#menu-wrap-clone .menu > li[class*="current"].menu-item-has-children{display:block;margin-bottom:1rem;}
#sidebar .menu > li a small{margin-left:1em;}
#sidebar li[class*="current"] > .children{display:block;margin-left:1rem;}
@media (min-width:1000px) {
	body:not(.auto-submenu) #menu-wrap-clone{display:none;}
}
@media (max-width:800px) {
	#page-header .menu{display:none;}
	#sidebar .menu > li{display:block;}
	#sidebar .menu > li[class*="current"].menu-item-has-children{margin-bottom:0;}
	#sidebar > #menu-wrap-clone{margin-bottom:1rem;}
}
/* フットメニュー */
.menu-footer{font-size:0.9em;}
.menu-footer li{display:inline-block;}
.menu-footer{padding:0 0.5em;text-align:center;}
.menu-footer a{padding:0 0.5em;}
.menu-footer li:not(:last-child):after{content:"|";}
