@charset "utf-8";

/*---------------------------------------------
	初期化
  ---------------------------------------------*/
* { margin: 0; padding: 0; }
*,
*::before,
*::after { box-sizing: border-box; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
form label { cursor: pointer; }
a img { border: none; }
img { vertical-align: bottom; -ms-interpolation-mode: bicubic; image-rendering:auto; }
th { font-weight: normal; }

/*---------------------------------------------
	body
  ---------------------------------------------*/
body {
	color: #333333;
	font-size: 16px;
	line-height: 2;
	text-align: left;
	-webkit-text-size-adjust: none;
	overflow-x:hidden;
	background-color: #ffffff;
	animation: fadeIn 2.0s ease 0s 1 normal;
	-webkit-animation: fadeIn 2.0s ease 0s 1 normal;
}
/* chrome opera */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
    body {
        image-rendering: -webkit-optimize-contrast;
    }
}
@keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}

/*---------------------------------------------
	Text
  ---------------------------------------------*/
html {
    font-family: sans-serif;
    font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 10px;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
	overflow-x:hidden;
	scroll-behavior: smooth;
}
body {
	font-size: 16px; font-size: 1.6rem;
	font-weight: bold;
}

h2, h3, h4, h5, .text28 {
/*	color: #5A9AD6;*/
	font-family: "Gothic MB101 Bold";
	font-weight: 600;
	transform: rotate(0.03deg);
	line-height: 1.7;
}
h2 { font-size: 36px; font-size: 3.6rem; margin: 70px 0 30px; text-align: center; }
h3 { font-size: 30px; font-size: 3.0rem; margin: 70px 0 30px; }
h4 { font-size: 24px; font-size: 2.4rem; margin: 70px 0 30px; }
h5 { font-size: 20px; font-size: 2.0rem; margin: 30px 0 15px; }
p { font-size: 16px; font-size: 1.6rem; margin-top: 0.7em; }
.text12 { font-size: 12px; font-size: 1.2rem; }
.text13 { font-size: 13px; font-size: 1.3rem; }
.text14 { font-size: 14px; font-size: 1.4rem; }
.text16 { font-size: 16px; font-size: 1.6rem; }
.text18 { font-size: 18px; font-size: 1.8rem; }
.text21 { font-size: 21px; font-size: 2.1rem; }
.text24 { font-size: 24px; font-size: 2.4rem; }
.text28 { font-size: 28px; font-size: 2.8rem; }

@media (max-width: 520px) {
	h2 {
		font-size: 2.6rem;
		margin: 50px 0 40px;
	}
	h3 { font-size: 2.2rem; margin: 40px 0 30px; }
	h4 { font-size: 2.0rem; margin: 30px 0 30px; }
	p { font-size: 1.4rem; }
	.text18 { font-size: 1.6rem; }
	.text21 { font-size: 1.8rem; }
	.text24 { font-size: 2.1rem; }
	.text28 { font-size: 2.4rem; }

}

/*---------------------------------------------
	Anchor
  ---------------------------------------------*/
a { outline: none; }
a:link { text-decoration: none; color: #0059af; }
a:visited { text-decoration: none; color: #0059af; }
a:hover { text-decoration: underline; color: #CD0710; }
a:active { text-decoration: underline; color: #CD0710; }
a img:hover {
	filter: alpha(opacity=90);
	-moz-opacity:0.9;
	opacity:0.9;
}

/*---------------------------------------------
	Table
  ---------------------------------------------*/
table {
	width:100%;
    border-collapse: collapse;
    border-spacing: 0;
	font-size:inherit;
}

/*---------------------------------------------
	全体設定
  ---------------------------------------------*/
img { max-width: 100%; height: auto; width: auto\9; /* ie8 */ }
img.full { width: 100%; }
img.border { border: 1px solid #cccccc; }
.zero-top {	margin-top: 0; padding-top: 0; }
.zero-bottom {	margin-bottom: 0; padding-bottom: 0; }
.round { border-radius: 20px; }
.circle { border-radius: 50%; }
.center { text-align:center; }
.left { text-align:left; }
.right { text-align:right; }
.space10 { margin-bottom: 10px; }
.space15 { margin-bottom: 15px; }
.space20 { margin-bottom: 20px; }
.space30 { margin-bottom: 30px; }
.space40 { margin-bottom: 40px; }
.space50 { margin-bottom: 50px; }
.space60 { margin-bottom: 60px; }
.space80 { margin-bottom: 80px; }
.space100 { margin-bottom: 100px; }
.underline { border-bottom: 1px solid #999999; margin-bottom: 20px; padding-bottom: 20px; }
.underline-dot { border-bottom: 1px dotted #999999; margin-bottom: 20px; padding-bottom: 20px; }
.float-right { float: right; position: relative; }
.float-left { float: left; position: relative; }
.caution { color:#cc0000; }
.gray { color:#333333; }
.bold { font-weight: 700; }
.mincho { font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif; }
.copy-guard { pointer-events: none; }
i { margin: 0 0.3em; }
.read span { display:inline-block }
.img-right { float: right; position: relative; margin-bottom: 20px; margin-left: 40px; margin-top: 10px; }
.img-left { float: left; position: relative; margin-bottom: 20px; margin-right: 40px; margin-top: 10px; }
.img-right.w140,
.img-left.w140 { width: 140px; }
.img-right.w160,
.img-left.w160 { width: 160px; }
.img-right.w180,
.img-left.w180 { width: 180px; }
.img-right.w210 { width: 210px; }
.img-right.w240 { width: 240px; }
.img-right.w280,
.img-left.w280 { width: 280px; margin-bottom: 20px; }
.img-right.w360,
.img-left.w360 { width: 360px; margin-bottom: 20px; }
@media (max-width: 599px) {
	.img-right { margin-bottom: 15px; margin-left: 30px; }
	.img-left { margin-bottom: 15px; margin-right: 30px; }
	.img-right.w280,
	.img-left.w280,
	.img-right.w360,
	.img-left.w360 { float: none; width: 100%; margin: 0 0 40px 0; }
	.img-right.w160,
	.img-left.w160 { width: 120px; }
	.img-right.w140,
	.img-left.w140 { width: 100px; }
}

/* ------ float clear ------ */
.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.clearfix { min-height: 1px; }
* html .clearfix {
	height: 1px;
	/*\*//*/
	height: auto;
	overflow: hidden;
	/**/
}

/*---------------------------------------------
	header
  ---------------------------------------------*/
#header {
	position: fixed;
	height: 100px;
	width: 100%;
	z-index: 1001;
}
#header .header-logo img {
	width: 280px;
	position: absolute;
	top: 30px;
	left: 30px;
}
#header a:link,
#header a:visited { color: #333333; text-decoration: none; }
#header a:hover { color: #ffffff; }

#header .pc-sub-menu01 {
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 16px; font-size: 1.6rem;
 }
#header .pc-sub-menu01 li {
	float: left;
	line-height: 40px;
	background-color: #f5f5f5;
}
#header .pc-sub-menu01 li a {
	display: block;
	line-height: 40px;
	padding: 0 15px;
}
#header .pc-sub-menu01 li a:first-child {
	padding-left: 25px;
}
#header .pc-sub-menu01 li:first-child {
	border-radius: 20px 0 0 20px;
}
#header .pc-sub-menu01 li:last-child {
	border-radius: 0 20px 20px 0;
}
#header .pc-sub-menu01 li a:last-child {
	padding-right: 25px;
}
#header .pc-sub-menu01 li:hover {
	background-color: #015AAB;
	color: #ffffff;
}
@media (max-width: 768px) {
	#header .pc-sub-menu01 { display: none; }
	#header {
		background-color: #ffffff;
		height: 70px;
		box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
	}
	#header .header-logo img { width: 150px; top: 25px; left: 18px; }
}




/*---------------------------------------------
	ハンバーガーメニュ
  ---------------------------------------------*/
.drawer-menu {
	padding: 30px 20px 20px 25px;
	line-height: 2.5rem;
}

.drawer-menu a { display: block; }
.drawer-menu a:link,
.drawer-menu a:hover,
.drawer-menu a:visited { color: #333333; }
.drawer-menu ul.menu li {
	font-size: 16px; font-size: 1.6rem;
	margin-bottom: 15px;
}
@media (min-width: 769px) {
	button.drawer-toggle.drawer-hamburger { display: none; }
}


/*---------------------------------------------
	コンテンツ
  ---------------------------------------------*/

.main-visual {
	text-align: center;
}
.main-visual img {
	margin: 200px auto 100px;
	max-width: 800px;
}
@media (max-width: 840px) {
	.main-visual img {
		margin: 160px auto 70px;
		max-width: 90%;
	}
}
@media (max-width: 599px) {
	.main-visual img { margin: 120px auto 50px; }
}
@media (min-width: 769px) {
	.main-visual .forSP { display:none }
	.main-visual .forPC { display:block }
}
@media (max-width: 768px) {
	.main-visual .forPC { display:none }
	.main-visual .forSP { display:block }
}



#contents-container {
	max-width: 100%;
	margin-bottom: 50px;
}
.contents1200,
.contents1000,
.contents800,
.contents640,
.contents600,
.contents270 { margin: 0 auto; position: relative; padding: 0 25px; }
.contents1200 { max-width: 1250px; }
.contents1000 { max-width: 1050px; }
.contents800 { max-width: 850px; }
.contents640 { max-width: 690px; }
.contents600 { max-width: 600px; }
.contents270 { max-width: 330px; }


.catch-date,
.catch {
	font-family: "Gothic MB101 Bold";
	font-weight: 600;
	transform: rotate(0.03deg);
	line-height: 1.3;
}
.catch-date {
	font-size: 30px; font-size: 3.0rem;
	color: #005bac;
}
.catch {
	font-size: 45px; font-size: 4.5rem;
	margin-top: 0.3em;
	margin-bottom: 50px;
}

@media (max-width: 768px) {
	.contents270 { max-width: 300px; }
	.catch-date { font-size: 26px; font-size: 2.6rem; }
	.catch { font-size: 40px; font-size: 4.0rem; }
}
@media (max-width: 599px) {
	.contents270 { max-width: 280px; }
	.catch-date { font-size: 2.4rem; }
	.catch { font-size: 3.6rem; }
}



/* ------ トピックス ------ */
.info-topics {
	margin: 30px 0;
	background-color: #ffffff;
	padding: 30px 30px 20px;
}
dl.news {
	font-size: 16px; font-size: 1.6rem;
}
dl.news dd {
	padding-left : 8em;
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: 1px dotted #cccccc;
}
dl.news dd:last-child {
	border-bottom: none;
	margin-bottom: 0;
}
dl.news dt {
	font-size: 13px; font-size: 1.3rem;
	clear : both;
	float : left;
	width : 8em;
	padding-top: 5px;
}
@media (max-width: 599px) {
	dl.news dt { float : none; width : auto; }
	dl.news dd { padding-left : 0; font-size: 1.4rem; }
}

.outline {
	text-align: center;
}
.outline p {
	font-family: "I-OTF-UDゴ表示Pro B";
	font-size: 28px; font-size: 2.8rem;
}
@media (max-width: 599px) {
	.outline p {
		font-size: 2.0rem;
	}
}

.waku {
	border: 2px solid #444444;
	padding: 20px 30px 10px;
	margin: 50px 0;
	background-color: #ffffff;
	border-radius: 20px;
}
@media (max-width: 599px) {
	.waku {
		padding: 20px 20px 10px;
		margin: 30px 0 40px;
	}
}

/* ------ コラム ------ */
.column {
	flex-wrap: wrap;
	display: flex;
	margin-left: -40px;
	margin-bottom: 20px;
	position: relative;
}
.column section {
	flex: 1;
	margin: 15px 0 15px 50px;
}
.column section img {
	width: 100%;
}
.program section.photo {
	flex: 0.5;
}
.program section.photo2 {
	flex: 0.25;
}

.program h4 {
	margin-top: 0;
}
.program p i {
	margin-left: 0;
	color: #0059af;
	font-size: 120%;
}

@media (max-width: 599px) {
	.column { margin-left: -30px; }
	.column section { flex: 100%; margin: 0 0 40px 30px; }
	.column.program section.photo { flex: 100%; margin: 0 0 20px 30px; }
	.column section.last { margin-bottom: 0px; }
	.divide { border-top: 3px dotted #aaaaaa; margin-bottom: 40px; }
}


/* ------ ティッカー ------ */
.item-ticker {
	margin: 100px 0 80px;
}
.ticker li img {
	width: 300px;
	border-radius: 10px;
	margin-right: 20px;
}
@media (max-width: 768px) {
	.item-ticker {
		margin: 60px 0 40px;
	}
	.ticker li img {
		width: 240px;
		margin-right: 15px;
	}
}
@media (max-width: 599px) {
	.item-ticker { margin: 40px 0 30px; }
	.ticker li img { width: 180px; }
}


/* ------ アンカーリンク位置調整 ------ */
#program1::before,
#program2::before,
#tours::before {
  content:'';
  display: block;
  padding-top: 100px;
  margin-top: -100px;
}

a.anchor {
    display: block;
    padding-top: 120px;
    margin-top: -120px;
}

/* ------ Table ------ */
.table_general {
	border: 1px solid #ccc;
	border-collapse:collapse;
	font-size: 14px; font-size: 1.4rem;
	line-height: 1.8;
}
.table_general p {
	font-size: 14px; font-size: 1.4rem;
}
.table_general td,.table_general th {
	border-collapse:collapse;
	padding: 10px;
}
.table_general th {
	border: 1px solid #fff;
	background-color:#5A9AD6;
	font-weight: bold;
	color: #FFF;
}
.table_general th.center {
	text-align: center;
}
.table_general td {
	border: 1px solid #bbb;
	vertical-align: middle;
}
.table_general td.lblue {
	background-color: rgba(0,89,175,0.1);
}

/* テーブル 横スクロール */
.table {
	overflow: auto;
	position: relative;
	border: none;
}
.table.memo-before { padding-top:2em; }
.table.memo-after { padding-bottom: 2em; }
.table.memo-before:before,
.table.memo-after:after {
	line-height:1;
	content: "※横スクロールで表全体を見ることが出来ます";
	position: absolute;
	left: 0;
	font-size: 80%;
}
.table.memo-before:before { top: 1em; }
.table.memo-after:after { bottom: 1em; }
@media (min-width: 769px) {
	.table.memo-before { padding-top: 0; }
	.table.memo-after { padding-top: 0; padding-bottom: 0; }
	.table.memo-before:before,
	.table.memo-after:after { padding-top: 0; content: ""; }
}

.table_color {
	font-size: 14px; font-size: 1.4rem;
}
.table_color th {
	vertical-align: middle;
	background-color: #f0f0f0;
	padding: 10px;
	border: 3px solid #fff;
	border-radius: 10px;
	-moz-background-clip: padding;
	-webkit-background-clip: padding-box;
	line-height: 1.3;
	text-align: center;
}
.table_color td {
	padding: 15px;
	border: 3px solid #fff;
	border-radius: 10px;
	-moz-background-clip: padding;
	-webkit-background-clip: padding-box;
	line-height: 1.6;
}
.table_color td.title {
	background-color: #C7DDF9;
	font-weight: 700;
	text-align: center;
}
.table_color td img {
	border-radius: 10px;
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-background-clip: padding;
	-webkit-background-clip: padding-box;
	margin-bottom: 10px;
}
.table_color td.catB {
	background-color: #E0F1FC;
	text-align: center;
	vertical-align: middle;
}
@media (max-width: 479px) {
	.table_color td img {
		border-radius: 5px;
		margin-bottom: 0;
		max-width: 120px;
	}
}

@media (max-width: 599px) {
.table_color {
	font-size: 13px; font-size: 1.3rem;
}
.table_color th {
	background-color: #f0f0f0;
	padding: 10px;
	border: 3px solid #fff;
	border-radius: 10px;
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-background-clip: padding;
	-webkit-background-clip: padding-box;
	line-height: 1.3;
	text-align: center;
}
}

/* ------ リスト ------ */
ul.list li {
	margin: 8px 0;
	padding-left: 20px;
	background: url(../../image/icon-arrow.png) no-repeat top 11px left 3px / auto 10px;
}
ul.list-line {
	margin-bottom: 30px;
}
ul.list-line li {
	margin-bottom: 10px;
	border-bottom: 1px dotted #999999;
	padding-bottom: 10px;
}
ul.list-line li:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

/* ------ フェードアニメ ------ */
.img-fade {
  opacity: 0;
  -moz-transition: -moz-transform 0.8s linear;
  -webkit-transition: -webkit-transform 0.8s linear;
  -o-transition: -o-transform 0.8s linear;
  -ms-transition: -ms-transform 0.8s linear;
  transition: transform 0.8s linear;
  -webkit-animation-duration: 0.8s;
  animation-duration: 1.0s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}
.img-blur {
  -webkit-animation-name: imageBlur;
  animation-name: imageBlur;
  opacity: 1;
  transition: 1.0s;
}
@-webkit-keyframes imageBlur {
  from {
    opacity: 0;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -ms-filter: blur(15px);
    -o-filter: blur(15px);
    filter: blur(15px);
  }

  to {
    opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px);
  }
}
@keyframes imageBlur {
  from {
    opacity: 0;
    -webkit-filter: blur(10px);
    -moz-filter: blur(10px);
    -ms-filter: blur(10px);
    -o-filter: blur(10px);
    filter: blur(10px);
  }

  to {
      opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px);
  }
}
.btn a {
	position: relative;
	color: #0066AE;
	text-align: center;
	font-size: 16px; font-size: 1.6rem;
	font-weight: 600;
	line-height: 50px;
	padding: 0 20px;
	max-width: 360px;
	background-color: #ffffff;
	border-radius: 10px;
	border: 2px solid #3089C7;
	display: block;
	margin: 70px auto;
}
.btn.full a {
	max-width: 100%;
	margin: 0;
}
.btn a:hover {
	text-decoration: none;
	background-color: #EAF6FF;
	transition: 0.3s;
}
@media (max-width: 599px) {
	.btn a {
		font-size: 1.4rem;
		line-height: 45px;
		padding: 0 15px;
		max-width: 260px;
		margin: 60px auto 40px;
	}
	.column.btn section { margin: 0 0 15px 40px; }
}

.syo-pole img {
	max-width: 240px;
	margin: 50px auto 80px;
}
ul.sns {
	width: 132px;
	margin: 0 auto;
}
ul.sns li {
	width: 32px;
	float: left;
	margin: 0 6px;
}

@media (max-width: 599px) {
	.syo-pole img {
		max-width: 200px;
		margin: 40px auto 50px;
	}
}

.ninja_onebutton {
	width: 185px;
	margin: 100px auto 0px;
}
@media (max-width: 599px) {
	.ninja_onebutton { margin: 70px auto 0px; }
}

/*---------------------------------------------
	フッタ
  ---------------------------------------------*/
footer {
	max-width: 100%;
	text-align: center;
	line-height: 2;
	padding: 40px 20px 20px;
}
footer p { font-size: 13px; font-size: 1.3rem; }
@media (max-width: 599px) {
	footer {
		padding: 0px 20px 20px;
	}
}

/*---------------------------------------------
	ページの先頭へ
  ---------------------------------------------*/
#page-top { width:50px; height:50px; display:none; position:fixed; right:20px; bottom:20px; z-index: 101; }
#page-top p { margin: 0; padding: 0; text-align: center; background-color: #0059af; }
#page-top p:hover { background-color: rgba(0,89,175,0.8); transition: 0.4s; }
#move-page-top { color:#fff; line-height:50px; text-decoration:none; display:block; cursor:pointer; }
@media (max-width: 767px) {
	#page-top { width:40px; height:40px; right:15px; bottom:20px; }
	#move-page-top { line-height:40px; }
}

/*---------------------------------------------
	レスポンシブ
  ---------------------------------------------*/
@media (min-width: 600px) {
	.forSP { display:none }
	.forPC { display:block }
}
@media (max-width: 599px) {
	.forPC { display:none }
	.forSP { display:block }
}
