@charset "utf-8";

/**
 * 共通設定
 * ------------------------------------ */

body {
	font-size: 14px;
	color: #333;
	font-family: 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	font-style: normal;
	line-height: 1.75;
	overflow: hidden;
	overflow-x: hidden;
	text-align: left;
	width: 100%;
	min-width: 1240px;
}

.site-box {
	width: 1080px;
	margin: 0 auto;
}

* {	word-break: break-all; }

@media screen and (max-width: 767px) {
	body {
		font-size: 12px;
		min-width: initial;
	}

	.site-box {
		width: 95%;
		margin: 0 auto;
	}
}

/**
 * ヘッダー
 * ------------------------------------ */

.site-heading {
	padding: 20px 0;
}

.site-heading h1 {
	float: left;
}

.site-sub-navigation {
	float: right;
	text-align: right;
	width: 60%;
	margin: 20px 0 0 0;
}

.site-sub-navigation ul li {
	color: #1D50A2;
	display: inline;
}

.site-sub-navigation ul li a {
	color: #1D50A2;
}

.site-sub-navigation ul li a:hover {
	text-decoration: underline;
}

.site-sub-navigation ul li:before {
	content: '▶';
	color: #1D50A2;
	margin: 0 5px 0 10px;
}

.site-main-navigation li {
	float: left;
	padding: 0 0 15px 0;
}

@media screen and (max-width: 767px) {
	.site-heading {
		padding: 2.5%;
		width: 95%;
	}

	.site-heading h1 img {
		height: 35px;
		width: auto;
	}

	img {
		height: auto;
		max-width:100%;
	}

	.site-main-navigation,
	.site-sub-navigation li:not(.sp-show) {
		display: none;
	}

	.site-sub-navigation {
		width: auto;
		margin-top: 10px;
		margin-right: 8px;
		font-size: 10px;
	}
}

@media screen and (max-width: 399px) {
	.site-heading h1 img {
		height: 25px;
	}
}

/**
 * モバイル用メニュー
 * ------------------------------------ */

.site-mobile-navigation {
	display: none;
}

@media screen and (max-width: 767px) {
	.site-mobile-navigation {
		display: inherit;
	}

	#modal h2 {
		color: #B70171;
		font-size: 18px;
		font-weight: bold;
		margin-bottom: 10px;
		text-align: center;
	}

	#modal {
		display: none;
	}

	#modal .mobile-primary-menu > li > a {
		background: #fff;
		border-left: 5px solid #B70171;
		color: #B70171;
		display: block;
		font-size: 12px;
		font-weight: bold;
		margin-bottom: 5px;
		padding: 5px 10px;
	}

	#modal .mobile-primary-menu ol > li > a {
		background: #FDEFF5;
		border-left: 5px solid #B70171;
		color: #B70171;
		display: block;
		font-size: 12px;
		margin-bottom: 5px;
		margin-left: 10px;
		padding: 5px 10px;
	}

	#modal .mobile-secondary-menu > li > a {
		background: #eee;
		border-left: 5px solid #6b2b5d;
		color: #6b2b5d;
		display: block;
		font-size: 12px;
		margin-bottom: 5px;
		padding: 5px 10px;
	}

	.open {
		display: block;
		width: 28px;
		height: 24px;
		margin: 5px 0 0 0;
		float: right;
	}

	#modal .close {
		background-color: #fff;
	}

	#modal .close a {
		background: url(../images/common/close-button.png) left 10px center no-repeat;
		border: 1px solid #eee;
		display: block;
		padding: 5px 10px;
		text-align: center !important;
		margin-bottom: 40px;
		-moz-border-radius: 5px;
		-webkit-border-radius: 5px;
		border-radius: 5px;
		behavior: url("./border-radius.htc");
	}

	#pageslide {
		background: url(../images/common/footer-bg.png) repeat;
		/* These styles MUST be included. Do not change. */
		display: none;
		position: absolute;
		position: fixed;
		top: 0;
		z-index: 999999;

		/* Specify the width of your pageslide here */
		width: 260px;
		padding: 20px;
		height: 100%;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/**
 * フッター
 * ------------------------------------ */

.site-pageup {
	text-align: right;
}

.site-pageup a {
	float: right;
	padding: 30px 0 10px 0;
}

.site-footer-area-01 {
	background: url(../images/common/footer-bg.png) repeat;
	font-weight: bold;
	padding: 30px 0;
}

.site-footer-area-01 .parent {
	margin-bottom: 30px;
}

.site-footer-area-01 ul:last-child {
	margin-bottom: 0;
}

.site-footer-area-01 .parent li {
	line-height: 1.25;
	margin-bottom: 10px;
}

.site-footer-area-01 a {
	color: #1D50A2;
	font-size: 108%;
}

.site-footer-area-01 .children a {
	font-weight: normal;
	padding-left: 1em;
}

.site-footer-area-01 a:hover {
	text-decoration: underline;
}

.site-footer-area-01 .float-contents {
	float: left;
	width: 240px;
	margin-right: 30px;
}

.site-footer-area-01 .float-contents:last-child {
	margin-right: 0;
}

.site-footer-area-02 {
	background: #1D50A2;
	color: #fff;
}

.site-footer-area-02 .site-box {
	padding: 40px 0;
	width: 740px;
}

.site-footer-area-02 h2 {
	float: left;
}

.site-footer-area-02 dl {
	float: left;
	font-size: 126%;
	margin-left: 20px;
}

.site-footer-area-02 dd em {
	font-size: 150%;
	font-style: normal;
	font-weight: bold;
	margin-right: 20px;
}

.site-copyright {
	color: #6b2b5d;
	font-size: 86%;
	padding: 10px 0;
	text-align: center;
	text-transform: uppercase;
}

@media screen and (max-width: 767px) {
	.site-pageup {
		text-align: right;
	}

	.site-pageup a {
		float: right;
		padding: 20px 0 10px 0;
	}

	.site-pageup a img {
		height: 20px;
	}

	.site-footer-area-01 {
		padding: 20px 0;
	}

	.site-footer-area-01 .parent {
		margin: 0;
	}

	.site-footer-area-01 .parent > li {
		background: url(../images/common/mobile-navi_bg.png) center right 10px no-repeat;
		background-size: 12px 12px;
		border-bottom: 1px dashed #006abc;
		font-size: 115%;
		margin: 0;
		padding: 10px;
	}

	.site-footer-area-01 .float-contents:first-child ul:first-child li:first-child {
		border-bottom: 1px dashed #006abc;
	}

	.site-footer-area-01 a {
		font-size: 12px;
	}

	.site-footer-area-01 .float-contents {
		float: none;
		width: auto;
		margin-right: 0;
	}

	.site-footer-area-01 .children {
		display: none;
		margin: 0;
	}

	.site-footer-area-02 .site-box {
		padding: 20px 0;
		width: auto;
	}

	.site-footer-area-02 h2 {
		float: none;
		margin-bottom: 20px;
		text-align: center;
	}

	.site-footer-area-02 h2 img {
		height: 40px;
	}

	.site-footer-area-02 dl {
		float: none;
		font-size: 12px;
		margin-left: 0;
		text-align: center;
	}

	.site-footer-area-02 dd em {
		font-size: 14px;
		margin-right: 10px;
	}
}

/**
 * サイドバー
 * ------------------------------------ */

.site-page .site-sidebar {
	float: right;
	width: 200px;
}

.side-navigation li a {
	border-bottom: 1px solid #B4DBF7;
	border-right: 1px solid #B4DBF7;
	display: block;
	font-size: 13px;
	padding: 15px;
}

.side-navigation .children li a {
	font-size: 12px;
}

.side-navigation-01 > li:first-child > a {
	border-top: 1px solid #B4DBF7;
}

.side-navigation li a:hover {
	text-decoration: underline;
}

.side-navigation .children li a {
	padding-left: 25px;
}

.side-navigation-01 > li a {
	border-left: 10px solid #1D50A2;
}

.side-navigation-01 .children a {
	border-left: 10px solid #1D50A2;
}

.side-navigation-02 > li a {
	border-left: 10px solid #3FA9F5;
}

.side-navigation-02 .children a {
	background: url(../images/common/sidebar-icon.png) left 10px center no-repeat;
	border-left: 10px solid #B4DBF7;
}

@media screen and (max-width: 767px) {
	.site-page .site-sidebar {
		display: none;
		float: none;
		width: auto;
		margin-bottom: 20px;
	}

	.side-navigation li a br {
		display: none;
	}
}

/**
 * 下層ページ共通
 * ------------------------------------ */

.site-page {
	color: #333;
}

.site-page .site-content-area {
	float: left;
	width: 830px;
}

.page-visual {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	height: 200px;
}

.page-visual h2 {
	font-size: 38px;
	line-height: 1.25;
	padding-left: 2.5em;
	padding-top: 70px;
}

#breadcrumbs-list {
	color: #1D50A2;
	font-size: 12px;
	padding: 20px;
}

#breadcrumbs-list a {
	color: #1D50A2;
	text-decoration: underline;
}

#breadcrumbs-list a:hover {
	text-decoration: none;
}

.site-footer-navigation {
	margin: 30px 0;
}

.site-footer-navigation li {
	float: left;
	margin-right: 10px;
}

.site-footer-navigation li img {
	width: 110px;
}

.button-more-read {
	text-align: right;
	margin: 5px 0;
}

.button-more-read:hover {
	cursor: pointer;
}

@media screen and (max-width: 767px) {
	.site-page .site-content-area {
		float: none;
		width: auto;
		margin-bottom: 30px;
	}

	.page-visual {
		background-position: center center;
		background-size: cover;
		height: auto;
		width: 100%;
	}

	.page-visual h2 {
		font-size: 18px;
		padding: 7.5% 0;
		padding-left: 0;
	}

	#breadcrumbs-list {
		font-size: 10px;
		padding: 10px;
	}

	.site-footer-navigation {
		margin: 10px 0;
	}

	.site-footer-navigation li {
		margin: 0 2% 2% 0;
		width: 32%;
	}

	.site-footer-navigation li:nth-of-type(3n) {
		margin-right: 0;
	}

	.site-footer-navigation li img {
		width: 100%;
	}
}

.headline-01 {
	background: url(../images/common/ico-headline.png) no-repeat left top;
	font-size: 38px;
	line-height: 1.5;
	margin: 30px 0;
	padding: 0 0 0 50px;
}

.headline-02 {
	background: url(../images/common/ico-headline.png) left top no-repeat;
	color: #1D50A2;
	font-size: 38px;
	min-height: 50px;
	line-height: 1.5;
	padding: 0 0 0 50px;
	margin: 30px 0;
}

.headline-03 {
	background: url(../images/open_school/icon-02.png) left top no-repeat;
	color: #555;
	font-size: 26px;
	min-height: 33px;
	line-height: 1.5;
	padding: 0 0 0 40px;
	margin: 20px 0 10px 0;
}

.headline-04 {
	background: url(../images/about/icon-02.png) left center no-repeat;
	color: #555;
	font-size: 28px;
	min-height: 50px;
	line-height: 1.5;
	padding: 10px 0 10px 60px;
	margin: 10px 0;
}

.headline-05 {
	background: url(../images/ex_lesson/icon-02.png) left center no-repeat;
	font-size: 34px;
	padding: 10px 0 10px 50px;
}

.headline-06 {
}

@media screen and (max-width: 767px) {
	.headline-01 {
		background-size: 21px 25px;
		font-size: 18px;
		min-height: 25px;
		margin: 20px 0;
		padding-left: 30px;
	}

	.headline-02 {
		background-size: 23px 25px;
		font-size: 18px;
		min-height: 25px;
		margin: 20px 0;
		padding-left: 30px;
	}

	.headline-03 {
		background-size: 16px 16px;
		font-size: 16px;
		min-height: 16px;
		margin: 15px 0 7px 0;
		padding-left: 20px;
	}

	.headline-04 {
		background-size: 16px 16px;
		font-size: 16px;
		min-height: 16px;
		margin: 15px 0 7px 0;
		padding-left: 20px;
	}

	.headline-05 {
		background-size: 23px 21px;
		font-size: 21px;
		margin: 10px 0;
		padding: 5px 0 5px 28px;
	}
}

/**
 * エレメント
 * ------------------------------------ */

/* Clearfix */
.clearfix:after {
    content: ".";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}

.clearfix {
    min-height: 1px;
}

* html .clearfix {
	height: 1px;
	/*¥*//*/
	height: auto;
	overflow: hidden;
	/**/
}

/* マウスオーバーで透過 */
a > img:hover {
    opacity: 0.7;
    filter: alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)";
}

/* 角丸 （IE対応） */
.radius {
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    behavior: url("./border-radius.htc");
}

/* Object Fit Images （IE対応） */
.object-fit-img {
    object-fit: cover;
    font-family: 'object-fit: cover ;'
}

/* Flex box */
.flex-box {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-box;
	display: -webkit-flexbox;
	display: -moz-flexbox;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: flex;
	-webkit-box-lines: multiple;
	-moz-box-lines: multiple;
	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
