@charset "utf-8";

/* -------------------
  common
------------------- */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
* > *:last-child {
	margin-bottom: 0;
}
address,em {
	font-style: normal;
}
html {
	overflow-x: hidden;
	overflow-y: scroll;
}
body,
input,
select,
textarea {
	font-family: Meiryo, 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Osaka, 'MS PGothic', arial, helvetica, sans-serif;
	
}
body{
	color: #000;
	background: #fff;
}
ul,
ol {
	list-style: none;
}
p {
	font-size: 15px;
	line-height: 1.8;
}
.lead p {
	font-size: 18px;
}
sup {
	vertical-align: top;
}
.flex-container {
	display : -webkit-box;
	display : -webkit-flex;
	display : -ms-flexbox;
	display : flex;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.flex-container.middle {
	-webkit-box-align: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
}
.flex-container.reverse {
	-ms-flex-direction:row-reverse;
	-webkit-flex-direction:row-reverse;
	flex-direction:row-reverse;
}
.clearfix:after{
	content: '';
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.column-2 {
	width: 50%;
}
.column-3 {
	width: 33.3333333%;
}
.column-4 {
	width: 25%;
}
.column-5 {
	width: 20%;
}
.table {
	display: table;
	width: 100%;
	height: 100%;
}
.cell {
	display: table-cell;
	vertical-align: middle;
}

/* anchor */
body a {
	text-decoration: none;
	outline: none;
	color: #000;
}
body a:hover,
body a:focus {
	text-decoration: none;
	color: currentColor;
	outline: none;
}
body a img {
	-webkit-transition: all 0.2s ease-in-out;
	-moz-transition: all 0.2s ease-in-out;
	-o-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}
body a:hover img {
	opacity: 0.85;
	filter: alpha(opacity=85);
}

/* Layout */
#main {
	position: relative;
}
.wrapper {
	width: 800px;
	margin: 0 auto;
}
.wrapper.wide {
	width: 950px;
}
.container {
	padding-left: 7.91667vw;
	padding-right: 7.91667vw;
}

/* -------------------
  heading
------------------- */
section h1 {
	line-height: 1.8;
	font-weight: bold;
	text-align: center;
	color: #1d2087;
	font-size: 28px;
	background: #b7e1f8;
	padding: 15px 0;
	margin-bottom: 50px;
}
section h1 sup,
section h2 sup {
	font-size: 60%;
}
section h2 {
	color: #009ee7;
	font-size: 27px;
	line-height: 1.8;
	font-weight: bold;
	background: url(../images/border-dot.png) repeat-x center bottom;
	margin: 50px 0 30px;
	padding-bottom: 15px;
}
section h3 {
	font-size: 18px;
	line-height: 1.8;
	font-weight: bold;
	text-align: center;
}

/* -------------------
  header
------------------- */
/* header */
#header {
	width: 100%;
	border-bottom: 3.5px solid #009ee7;
}
#header .inner {
	padding-right: 183px;
	position: relative;
	width: 950px;
	margin: 0 auto;
	-webkit-justify-content: space-between;
	-ms-justify-content: space-between;
	justify-content: space-between;
}
#header #logo {
	padding: 14px 0;
}
#header nav {
	height: 100%;
}
#header nav ul li {
	padding: 0 15px;
}
#header nav ul li a,
#ft-nav ul li a {
	display: block;
	font-size: 14px;
	font-weight: bold;
	padding: 10px;
	position: relative;
	-webkit-transition: all 0.2s ease-in-out;
	-moz-transition: all 0.2s ease-in-out;
	-o-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}


#header nav ul li a:hover::after,
#ft-nav ul li a:hover::after {
	width: 100%;
}
#header #header-contact {
	position: absolute;
	top: 0;
	right: 0;
}

/* -------------------
  kv
------------------- */
#kv {
	padding: 35px 0 20px;
}

/* -------------------
  scroll nav
------------------- */
#scroll-nav {
	padding-bottom: 95px;
}
#scroll-nav .flex-container {
	margin: 0 -10px;
}
#scroll-nav .column-3 {
	padding: 0 10px;
}

/* -------------------
  about
------------------- */
#about {
	padding-bottom: 125px;
}
#about .image {
	width: 270px;
}
#about .text {
	width: calc(100% - 270px);
}
#about h2 + .flex-container {
	margin: 0 -10px;
}
#about h2 {
	margin-bottom: 35px;
}
#about .column-3 {
	padding: 0 10px 0;
}
#about .column-3 h3 {
	margin-bottom: 15px;
	text-align: left;
	line-height: 1.3;
	height: 50px;
}
#about .column-3 h3 .cell:first-child {
	width: 60px;
}
#about .column-3 h3 .cell:last-child {
	width: calc(100% - 60px);
}

/* -------------------
  lecture
------------------- */
#lecture {
	padding-bottom: 140px; 
}
#lecture .lecture-box {
	margin: 50px 0 0;
	padding: 0 0 35px;
	border: solid #009ee7;
	border-width: 0 1px 1px;
}
#lecture .lecture-box h2 {
	font-size: 27px;
	color: #fff;
	text-align: center;
	padding: 20px 0 15px;
	margin: 0 0 25px;
	background: #009ee7;
}
#lecture .lecture-box p {
	text-align: center;
	font-size: 18px;
}
#lecture .lecture-box p + p {
	font-weight: bold;
	padding: 5px 0 10px;
}
#lecture .lecture-box div.flex-container {
	padding: 0 35px;
}
#lecture dl.flex-container {
	line-height: 1;
	font-size: 15px;
	font-weight: bold;
	margin: 20px 0 0;
}
#lecture dl dt {
	background: #808080;
	color: #fff;
	font-size: 12.7px;
	text-align: center;
	line-height: 1.2;
	padding: 7px 0;
	width: 150px;
}
#lecture dl dd {
	padding: 0 40px 0 10px;
}
#lecture .column-2 dl {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 0 10px;
}
#lecture .lecture-wrap {
	margin: 0 0 -40px;
}
#lecture .lecture-box + .lecture-wrap {
	margin: -25px 0 -40px;
}
#lecture .lecture-detail {
	padding: 45px 0 40px;
}

#lecture .lecture-wrap .lecture-detail:nth-child(2) {
	background: url(../images/arr.png) no-repeat center top;
}
#lecture .lecture-detail h3 {
	font-size: 22px;
	border-left: 10px solid #009ee7;
	line-height: 40px;
	text-align: left;
	margin-bottom: 20px;
	padding-left: 15px;
}
#lecture .lecture-detail dl {
	margin-top: 20px;
}

/* -------------------
  news
------------------- */
#news {
	padding-bottom: 120px;
}
#news .wrapper {
	margin: -25px auto 0;
}
#news dl {
	font-size: 15px;
	line-height: 1.8;
	border-bottom: 1px dashed #989898;
}
#news dl dt {
	width: 170px;
	padding: 25px;
	font-size: 13px;
	font-weight: bold;
}
#news dl dd {
	width: calc(100% - 170px);
	padding: 25px 25px 25px 0;
}
#news dl a {
	color: #0e80e5;
	text-decoration: underline;
}

/* -------------------
  contact
------------------- */
#contact {
	padding-bottom: 100px;
}
#contact h1 {
	background: #f9eaef;
	color: #ed5681;
}
#contact h1 + p {
	text-align: center;
	line-height: 1;
	padding: 0 0 40px;
}
table.mailform {
	border-spacing: 0;
	width: 100%;
	border-top: 1px solid #989898;
}
table.mailform th,
table.mailform td {
	border-bottom: 1px solid #989898;
}
table.mailform th {
	text-align: left;
	padding: 30px;
	background: #f4f3f2;
	width: 270px;
	vertical-align: top;
}
table.mailform th.must:after {
	content: '必須';
	color: #fff;
	font-weight: normal;
	font-size: 12px;
	background: #fa566c;
	border-radius: 3px;
	padding: 5px 7px;
	float: right;
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
}
table.mailform td {
	width: calc(100% - 270px);
	padding: 23px 150px 23px 30px;
}
table tr.no-broder th,
table tr.no-border td {
	border: none;
	padding: 25px 0 0;
}
table tr.no-border td {
	text-align: center;
}
table .clr-pink {
	color: #f21055;
	text-decoration: underline;
	font-size: 15px;
}
table.mailform p {
	font-size: 12px;
	margin-top: 5px;
}
#contact .policy-wrap {
	margin-top: 30px;
	border: 1px solid #595757;
	height: 210px;
	overflow: auto;
}
.checkbox {
	opacity: 0;
	width: 18px;
	height: 18px;
	position: absolute;
}
.checkbox + .checkbox-icon {
	position: relative;
	vertical-align: middle;
}
.checkbox + .mfp_element_hidden + .mfp_ok + .checkbox-icon:before {
	content: '';
	width: 18px;
	height: 18px;
	display: inline-block;
	vertical-align: middle;
	border: 1px solid #f21055;
	cursor: pointer;
	margin-right: 7px;
}
.checkbox:checked + .mfp_element_hidden + .mfp_ok + .checkbox-icon:before {
	content: '';
	background: #f21055;
}
.policy-wrap .inner {
	padding: 10px 30px 40px;
}
.policy-wrap::-webkit-scrollbar {
	width: 17px;
	
}
.policy-wrap::-webkit-scrollbar-track {
	border-radius: 0;
	background: #fff;
	padding-right: 30px;
}
.policy-wrap::-webkit-scrollbar-thumb {
	border-radius: 0;
	width: 17px;
	height: 65px;
	background: #e5e5e5;
}
.policy-wrap .inner {
	padding: 10px 30px 40px;
}
#contact .policy-wrap h4 {
	margin: 25px 0 0;
	font-weight: normal;
	font-size: 15px;
}
#contact .pp-info {
	margin: 25px 0 0;
}

/* -------------------
  footer
------------------- */
#ft-nav {
	border: solid #e5e5e5;
	border-width: 1px 0;
	padding: 30px 0 20px;
}
#ft-nav ul {
	text-align: center;
}
#ft-nav ul li {
	display: inline-block;
	text-align: center;
	position: relative;
	padding: 0 15px;
}
#ft-nav ul li a {
	color: #333;
}
#footer {
	padding: 50px 0 0;
}
#footer #ft-title img {
	display: block;
	margin: 0 auto;
}
#footer #ft-link {
	padding: 50px 0;
}
#footer #ft-link ul {
	text-align: center;
	font-size: 15px;
	color: #595757;
}
#footer #ft-link ul li {
	display: inline-block;
	text-align: center;
	padding: 0 20px;
}
#footer #ft-link ul li a {
	color: #0e80e5;
	text-decoration: underline;
}
#footer #ft-copy {
	background: #666;
	text-align: center;
	font-size: 12px;
	color: #fff;
	line-height: 1;
	padding: 15px 0;
}

/* -------------------
  page top
------------------- */
#page-top {
	position: fixed;
	right: 65px;
	bottom: 145px;
	width: 58px;
	height: 58px;
	color: transparent;
	background: url(../images/go_top.png) no-repeat center center;
	cursor: pointer;
}