@charset "utf-8";
/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
/* ------------------------------------------------
	変更履歴
	2018年第1回模試より全体のカラーを変更	「085148」 -> 「003399」	// 全体カラー
										「0d7366」 -> 「0f7ec5」	// お問い合わせの部分
										「39746d」 -> 「4765ac」	// お問い合わせの部分
------------------------------------------------ */
html {
 font-size: 62.5%;
}
body {
 background: #fff;
 font-size: 10px;
 font-size: 1rem;
 line-height: 1.8;
 color: #000;
 font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", Verdana, Arial, Helvetica, sans-serif;
 -webkit-text-size-adjust: 100%;
}
.ie body {
 font-family: "メイリオ", "Meiryo", Verdana, Arial, Helvetica, sans-serif;
}
table {
 border-collapse: collapse;
 border-spacing: 0;
 line-height: 1.8;
}
a {
 color: #003399;
 text-decoration: underline;
 -webkit-transition: color 0.15s, background 0.15s;
 -o-transition: color 0.15s, background 0.15s;
 transition: color 0.15s, background 0.15s;
}
a:hover {
 text-decoration: none;
}
a.a_reverse, .a_reverse a {
 text-decoration: none;
}
a.a_reverse:hover, .a_reverse a:hover {
 text-decoration: underline;
}
::selection {
 background: #003399;
 color: #fff;
}
::-moz-selection {
 background: #003399;
 color: #fff;
}
label {
 cursor: pointer;
}
input, select, textarea, button {
 margin: 0;
 vertical-align: middle;
 font-family: inherit;
 outline: none;
 font-size: 100%;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
button {
 cursor: pointer;
}
iframe {
 vertical-align: middle;
}
@media screen and (max-width: 768px) {
 * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
 }
 img {
  max-width: 100%;
  height: auto;
 }
 iframe {
  height: 200px;
 }
}
/* pc / sp
============================================================================================================ */
.sp, .sps {
 display: none !important;
}
@media screen and (max-width: 768px) {
 .pc {
  display: none !important;
 }
 .sp {
  display: block !important;
 }
 img.sp, span.sp, br.sp, em.sp, strong.sp {
  display: inline !important;
 }
 .sp_break {
  position: relative;
  display: block;
  height: 0;
  overflow: hidden;
 }
 .sp_min {
  font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  font-weight: normal;
 }
}
@media screen and (max-width: 370px) {
 .sps {
  display: block !important;
 }
 img.sps, spsan.sps, br.sps, em.sps, strong.sps {
  display: inline !important;
 }
}
/* sp
============================================================================================================ */
@media screen and (max-width: 768px) {
 *[data-label] img {
  display: none;
 }
 *[data-label]:before {
  content: attr(data-label);
 }
 *[data-label-r]:after {
  display: block;
  content: attr(data-label-r);
 }
}
/* visibility
============================================================================================================ */
.vh {
 visibility: hidden;
}
/* color
============================================================================================================ */
.c_red {
 color: #c5171f;
}
.c_blue {
 color: #003399;
}
/* font size
============================================================================================================ */
.fz_s {
 font-size: 13px;
 font-size: 1.3rem;
}
.fz_m {
 font-size: 15px;
 font-size: 1.5rem;
}
.fz_ml {
 font-size: 16px;
 font-size: 1.6rem;
}
.fz_l {
 font-size: 18px;
 font-size: 1.8rem;
 line-height: 1.6;
}
@media screen and (max-width: 768px) {
 .fz_l {
  font-size: 1.6rem;
 }
 .fz_m {
  font-size: 1.4rem;
 }
}
/* w
============================================================================================================ */
.w, .iw {
 position: relative;
 width: 1120px;
 margin: 0 auto;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
.iw {
 width: 1020px;
}
.iw:after, .w:after {
 content: "";
 display: table;
 clear: both;
}
.mw {
 min-width: 1160px;
 margin: auto;
}
@media screen and (max-width: 768px) {
 .w, .iw {
  width: auto;
  padding: 0 15px;
 }
 .mw {
  min-width: 0;
 }
}
/* hv_wh
============================================================================================================ */
a.hv_wh, button.hv_wh, a .hv_wh, .hv_wh a {
 position: relative;
 display: inline-block;
 /*overflow: hidden;*/
}
a.hv_wh:after, button.hv_wh:after, a .hv_wh:after, .hv_wh a:after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 top: 0;
 bottom: 0;
 background-color: rgba(255, 255, 255, 0);
 -webkit-transition: background 0.15s;
 -o-transition: background 0.15s;
 transition: background 0.15s;
 z-index: 3;
}
a[href].hv_wh:hover:after, button.hv_wh:hover:after, a[href]:hover .hv_wh:after, .hv_wh a[href]:hover:after {
 background-color: rgba(255, 255, 255, 0.3);
}
a[href].hv_wh.a20:hover:after, button.hv_wh.a20:hover:after, a[href]:hover .hv_wh.a20:after, .hv_wh a[href]:hover.a20:after {
 background-color: rgba(255, 255, 255, 0.2);
}
@media screen and (max-width: 768px) {
 a.hv_wh:after, button.hv_wh:after, a .hv_wh:after, .hv_wh a:after {
  content: none;
 }
}
/* target
============================================================================================================ */
.target {
 display: block;
 position: relative;
 width: 0;
 top: 0;
 z-index: -1;
}
@media screen and (max-width: 768px) {
 .target {
  top: -60px;
 }
}
/* header
============================================================================================================ */
#header {
 /*position: absolute;
 top: 0;
 right: 0;
 left: 0;
 padding: 18px 81px 18px 0;
 background-color: #fff;
 z-index: 1000;*/
	    position: fixed;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-width: 1100px;
    top: 0;
    padding-top: 15px;
    height: 90px;
    background: #fff;
    z-index: 9999;
}
#header h1 {
 float: left;
}
#header h1 a {
 display: block;
}
@media screen {
 #header {
  /*position: fixed;*/
 }
}
@media screen and (max-width: 768px) {
 #header {
  position: fixed;
  padding: 0;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  height: 50px;
 }
 #header .w {
  padding: 0;
 }
 #header h1 {
  position: relative;
  float: none;
  background-color: #fff;
 /* -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);*/
  z-index: 20;
 }
 #header h1 a {
  padding: 5px 10px !important;
 }
 #header h1 img {
  width: 205px;
 }
}
/* nav
------------------------------------------------------------- */
#header nav {}
#header .gnav {
 /*float: right;
 margin-right: -15px;
 font-size: 16px;
 font-size: 1.6rem;*/
	    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 3.8em 0 2em;
padding-top: 30px;
}
#header .gnav li {
 float: left;
 margin: 0 0.9em;	
}
#header .gnav a {
position: relative;
 /* display: block;
 padding: 24px 15px;
 /*color: #003399;*/
 /*font-weight: bold;
 text-decoration: none;
	color: #00b7ce;*/
	color: #00b7ce;
    text-decoration: none;
    font-size: 1.6rem;
}
/*#header .gnav a:after {
 content: "";
 position: absolute;
 bottom: 16px;
 right: 15px;
 left: 15px;
 border-bottom: 2px solid #000;
 opacity: 0;
 -webkit-transition: all 0.2s;
 -o-transition: all 0.2s;
 transition: all 0.2s;
}**/
#header .gnav a:hover, #header .gnav a.current {
 /*color: #000;*/
	
	text-decoration:underline;
}
#header .gnav a:hover:after, #header .gnav a.current:after {
 opacity: 1;
 bottom: 18px;
}
#header .snav {
 position: fixed;
 top: 0;
 right: 0;
 width: 80px;
 bottom: 0;
 padding: 126px 10px 0;
 border-left: 1px solid #ededed;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
 background-color: #fff;
 z-index: 1000;
}
#header .snav li a {
 display: block;
 overflow: hidden;
 font-size: 14px;
 font-size: 1.4rem;
 line-height: 1.2;
 font-weight: bold;
 text-decoration: none;
 text-align: center;
 color: #fff;
}
#header .snav li a.application {
 background-color: #003399;
}
#header .snav li a.contact {
 background-color: #0f7ec5;
}
#header .snav li a > span {
 display: table;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
#header .snav li a > span > span {
 display: table-cell;
 height: 128px;
 padding: 0 20px;
 vertical-align: middle;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
#header .snav li a.application > span > span {
 padding-top: 10px;
}
#header .snav li a .now {
 position: absolute;
 top: 22px;
 right: -10px;
 width: 100px;
 padding: 2px 7px;
 background-color: #c5171f;
 font-size: 10px;
 font-size: 1rem;
 color: #fff;
 font-weight: normal;
 text-align: right;
 -webkit-transform-origin: 100% 0;
 -moz-transform-origin: 100% 0;
 -ms-transform-origin: 100% 0;
 -o-transform-origin: 100% 0;
 transform-origin: 100% 0;
 -webkit-transform: rotate(30deg);
 -ms-transform: rotate(30deg);
 -o-transform: rotate(30deg);
 transform: rotate(30deg);
}
#header .snav .tel {
 height: 350px;
 margin-top: 8px;
 background: url(../images/head/tel.png) no-repeat 50%;
}
#header .snav .tel a {
 display: none;
}
#header .fnav {
 position: fixed;
 right: -120px;
 top: 0;
 width: 190px;
 /*background-color: rgba(8,81,72,0.9);*/
 background-color: rgba(25, 62, 151, 0.9);
 border-left: 5px solid #003399;
 -webkit-transition: right 0.3s;
 -o-transition: right 0.3s;
 transition: right 0.3s;
 z-index: 500;
}
#header .fnav li {
 position: relative;
}
#header .fnav li + li:before {
 content: "";
 display: block;
 margin: 0 15px;
 border-top: 1px solid rgba(255, 255, 255, .2);
}
#header .fnav a {
 display: block;
 color: #fff;
 padding: 10px 0;
 text-align: center;
 text-decoration: none;
 font-size: 15px;
 font-size: 1.5rem;
}
#header .fnav a:hover {
 background-color: #003399;
 text-decoration: underline;
}
@media screen {
 #header nav.open .fnav {
  right: 80px;
 }
}
@media screen and (max-width: 768px) {
 #header nav {
  float: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 50px;
  width: auto;
  background-color: #fff;
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  -webkit-transform: translateY(-110%);
  -ms-transform: translateY(-110%);
  -o-transform: translateY(-110%);
  transform: translateY(-110%);
  -webkit-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
 }
 /* open */
 #header nav.open {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
 }
 /* showed */
 #header nav.showed {
  -webkit-transition: -webkit-transform 0.3s !important;
  -o-transition: -o-transform 0.3s !important;
  transition: transform 0.3s !important;
 }
 #header .gnav {
  float: none;
  margin-right: 0;
  font-size: 1.5rem;
  line-height: 1.4;
 }
 #header .gnav:after {
  content: "";
  display: table;
  clear: both;
 }
 #header .gnav li {
  width: 50%;
  border-bottom: 1px solid #ddd;
 }
 #header .gnav li:nth-child(2n) {
  border-left: 1px solid #ddd;
 }
 #header .gnav a {
  display: table;
  width: 100%;
  height: 68px;
  padding: 0;
  text-align: center;
  color: #003399 !important;
 }
 #header .gnav a:after {
  content: none;
 }
 #header .gnav a > span {
  display: table-cell;
  vertical-align: middle;
 }
 #header .snav {
  position: static;
  width: auto;
  padding: 0 0 15px !important;
  border-left: 0;
 }
 #header .snav ul {
  padding: 15px 5px !important;
 }
 #header .snav ul:after {
  content: "";
  display: table;
  clear: both;
 }
 #header .snav li {
  float: left;
  width: 50%;
 }
 #header .snav li a {
  margin: 0 5px;
  font-size: 1.4rem;
 }
 #header .snav li a > span {
  display: block;
 }
 #header .snav li a > span > span {
  display: block;
  height: auto !important;
  padding: 20px !important;
 }
 #header .snav .tel {
  height: auto;
  margin-top: 0;
  background: none;
 }
 #header .snav .tel a {
  display: block;
  margin: 0 10px;
  text-align: center;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.1rem;
  line-height: 1.3;
 }
 #header .snav .tel a span {
  display: inline-block;
  padding: 3px 0 3px 38px;
  background: url(../images/head/tel_sp.png) no-repeat 0;
  -webkit-background-size: 30px;
  background-size: 30px;
  font-size: 2.6rem;
 }
 #header .fnav {
  display: none;
 }
}
/* nav_btn
------------------------------------------------------------- */
#header .nav_btn {
 position: fixed;
 right: 0;
 top: 0;
 width: 80px;
 background-color: #003399;
 z-index: 1000;
}
#header .nav_btn a {
 position: relative;
 display: block;
 height: 116px;
 z-index: 3;
}
#header .nav_btn:before, #header .nav_btn a:before, #header .nav_btn a:after {
 content: "";
 position: absolute;
 left: 28px;
 right: 28px;
 top: 50%;
 height: 3px;
 margin-top: -1px;
 background-color: #fff;
 -webkit-transition: all 0.2s;
 -o-transition: all 0.2s;
 transition: all 0.2s;
}
#header .nav_btn a:before {
 -webkit-transform: translateY(-9px);
 -ms-transform: translateY(-9px);
 -o-transform: translateY(-9px);
 transform: translateY(-9px);
}
#header .nav_btn a:after {
 -webkit-transform: translateY(9px);
 -ms-transform: translateY(9px);
 -o-transform: translateY(9px);
 transform: translateY(9px);
}
/* open */
#header.open .nav_btn:before {
 opacity: 0;
}
#header.open .nav_btn a:before {
 -webkit-transform: translateY(0) rotate(45deg);
 -ms-transform: translateY(0) rotate(45deg);
 transform: translateY(0) rotate(45deg);
}
#header.open .nav_btn a:after {
 -webkit-transform: translateY(0) rotate(-45deg);
 -ms-transform: translateY(0) rotate(-45deg);
 transform: translateY(0) rotate(-45deg);
}
@media screen and (min-width: 769px) {
 #header .nav_btn {
  -webkit-transition: background 0.15s;
  -o-transition: background 0.15s;
  transition: background 0.15s;
 }
 #header .nav_btn:hover {
  background-color: #4765ac;
 }
}
@media screen and (max-width: 768px) {
 #header .nav_btn {
  width: 50px;
 }
 #header .nav_btn a {
  height: 50px !important;
 }
 #header .nav_btn:before, #header .nav_btn a:before, #header .nav_btn a:after {
  left: 10px;
  right: 10px;
 }
}
@media screen and (max-height: 810px) {
 #header .snav li a > span > span {
  height: 118px;
 }
}
@media screen and (max-height: 720px) {
 #header .nav_btn a {
  height: 90px;
 }
 #header .snav {
  padding-top: 100px;
 }
}
@media screen and (max-height: 700px) {
 #header .nav_btn a {
  height: 70px;
 }
 #header .snav {
  padding-top: 80px;
 }
}
/* pagetop
============================================================================================================ */
#pagetop {
 position: fixed;
 overflow: hidden;
 bottom: 10px;
 right: 0;
 width: 70px;
 height: 60px;
 z-index: 1001;
}
#pagetop a {
 overflow: hidden;
 position: absolute;
 right: -70px;
 width: 60px;
 height: 0;
 padding-top: 60px;
 background-color: #003399;
 -webkit-transition: right 0.3s;
 -o-transition: right 0.3s;
 transition: right 0.3s;
}
#pagetop.show a {
 right: 10px;
}
#pagetop a:before {
 content: "";
 position: absolute;
 top: 50%;
 left: 50%;
 width: 9px;
 height: 9px;
 margin: -3px 0 0 -6px;
 border-top: 3px solid #fff;
 border-left: 3px solid #fff;
 -webkit-transform: rotate(45deg);
 -ms-transform: rotate(45deg);
 -o-transform: rotate(45deg);
 transform: rotate(45deg);
}
#pagetop a:hover:before {
 margin-top: -4px;
}
@media screen and (max-height: 790px) {
 #pagetop {
  position: absolute;
  right: 75px;
  bottom: 5px;
 }
}
@media screen and (max-width: 768px) {
 #pagetop {
  position: static;
  width: auto;
  height: auto;
  margin-top: 30px;
 }
 #pagetop a {
  display: block;
  width: auto;
  position: relative;
  right: 0 !important;
  padding-top: 35px;
 }
}
/* footer
============================================================================================================ */
#footer {
 position: relative;
 margin-top: 60px;
 font-size: 14px;
 font-size: 1.4rem;
 background-color: #4d4d4d;
 color: #fff;
 z-index: 10;
}
#footer .w {
 padding: 45px 0 50px;
}
@media screen and (max-width: 768px) {
 #footer {
  margin-top: 0;
  font-size: 1.2rem;
 }
 #footer .w {
  padding: 15px 15px 22px;
 }
}
/* contact
------------------------------------------------------------- */
#footer .contact {
 float: right;
 width: 320px;
}
#footer .tel {
 height: 50px;
 background: url(../images/foot/tel.png) no-repeat;
}
#footer .tel a {
 display: none;
}
#footer .time {
 display: table;
 margin: 5px 0 12px;
 font-size: 13px;
 font-size: 1.3rem;
 line-height: 1.6;
 font-weight: bold;
 letter-spacing: 2px;
}
#footer .time > * {
 display: table-cell;
 vertical-align: top;
}
#footer .notes {
 position: relative;
 margin-bottom: 15px;
 padding-left: 1em;
 text-align: left;
 font-size: 11px;
 font-size: 1.1rem;
 line-height: 1.5;
}
#footer .notes > span {
 position: absolute;
 top: 0;
 left: 0;
}
#footer .mail a {
 display: block;
 padding: 8px;
 border: 3px solid #fff;
 color: #fff;
 text-align: center;
 text-decoration: none;
 font-size: 14px;
 font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
 #footer .contact {
  float: none;
  width: auto;
  margin-bottom: 20px;
 }
 #footer .tel {
  height: auto;
  background: none;
 }
 #footer .tel a {
  display: block;
  color: #fff;
  text-decoration: none;
  text-align: center;
  font-size: 2.8rem;
  line-height: 1.3;
  font-weight: bold;
 }
 #footer .tel a span {
  padding: 3px 0 3px 44px;
  background: url(../images/foot/freedial.png) no-repeat 0;
  -webkit-background-size: 40px;
  background-size: 40px;
 }
 #footer .tel a rt {
  font-size: 1rem;
  line-height: 1;
 }
 #footer .time {
  margin-right: auto;
  margin-left: auto;
  font-size: 1.2rem;
  letter-spacing: 1px;
  text-align: center;
 }
}
/* sponsorship
------------------------------------------------------------- */
#footer .sponsorship {
 float: left;
 display: table;
 font-size: 13px;
 font-size: 1.3rem;
 font-weight: bold;
}
#footer .sponsorship > * {
 display: table-row;
}
#footer .sponsorship > * > * {
 display: table-cell;
 padding-bottom: 8px;
 vertical-align: bottom;
}
#footer .sponsorship > * > dt {
 white-space: nowrap;
}
#footer .sponsorship > * > dt:after {
 content: "／";
}
#footer .sponsorship > * > dt span {
 display: inline-block;
 margin-right: -1em;
 letter-spacing: 1em;
}
#footer .sponsorship > * > dd {
 padding-left: 1em;
}
#footer .sponsorship > * > dd li {
 display: inline-block;
 margin-right: 0.8em;
}
#footer .sponsorship dd dl {
 display: table;
}
#footer .sponsorship dd dl > * {
 display: table-cell;
 padding-bottom: 3px;
 vertical-align: bottom;
}
#footer .sponsorship dd dl dt {
 font-size: 26px;
 font-size: 2.6rem;
 line-height: 1.2;
}
#footer .sponsorship dd dl dd {
 padding-left: 10px;
 font-size: 11px;
 font-size: 1.1rem;
 line-height: 1.3;
}
@media screen and (max-width: 768px) {
 #footer .sponsorship {
  float: none;
  display: block;
  font-size: 1.2rem;
  line-height: 1.5;
  text-align: center;
 }
 #footer .sponsorship > * {
  display: block;
  margin-top: 15px;
 }
 #footer .sponsorship > * > * {
  display: block;
  padding-bottom: 0;
 }
 #footer .sponsorship > * > dt {
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid #888;
 }
 #footer .sponsorship > * > dt:after {
  content: none;
 }
 #footer .sponsorship > * > dt span {
  margin-right: 0;
  letter-spacing: 0;
 }
 #footer .sponsorship > * > dd {
  padding-left: 0;
  font-size: 1.1rem;
 }
 #footer .sponsorship > * > dd li {
  margin: 0 0.3em;
 }
 #footer .sponsorship dd dl {
  display: block;
 }
 #footer .sponsorship dd dl > * {
  display: block;
  padding-bottom: 3px;
 }
 #footer .sponsorship dd dl dt {
  font-size: 1.8rem;
 }
 #footer .sponsorship dd dl dd {
  padding-left: 0;
  line-height: 1.5;
 }
}
/* copyright
------------------------------------------------------------- */
#footer small {
 display: block;
 background-color: #333333;
 padding: 24px 0;
 font-size: 12px;
 font-size: 1.2rem;
 text-align: center;
 letter-spacing: 1px;
}
@media screen and (max-width: 768px) {
 #footer small {
  padding: 10px 0;
  font-size: 1rem;
  letter-spacing: 0;
 }
}
/* container
============================================================================================================ */
#container {
 position: relative;
 padding-top: 116px;
 padding-right: 80px;
 font-size: 15px;
 font-size: 1.5rem;
}
@media screen and (max-width: 768px) {
 #container {
  padding-top: 50px;
  padding-right: 0;
  font-size: 1.3rem;
 }
}
/* pageTitle
============================================================================================================ */
#pageTitle {
 padding: 5px;
 background: url(../images/parts/title_bg.jpg?0120) no-repeat 50%;
 -webkit-background-size: cover;
 background-size: cover;
 text-align: center;
}
#pageTitle span {
 display: block;
 width: 620px;
 height: 170px;
 margin: auto;
 padding-top: 45px;
 /*background: url(../images/parts/title_img.png) no-repeat 50%;*/
 font-size: 30px;
 font-size: 3rem;
 color: #fff;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
#pageTitle span:before {
 content: "";
 display: block;
 width: 122px;
 height: 28px;
 margin: 0 auto;
 background: url(../images/parts/title_ico.png) no-repeat 50%;
}
@media screen and (max-width: 768px) {
 #pageTitle {
  padding: 5px;
 }
 #pageTitle span {
  width: auto;
  height: 80px;
  padding-top: 20px;
  -webkit-background-size: auto 80px;
  background-size: auto 80px;
  font-size: 2rem;
 }
 #pageTitle span:before {
  width: 61px;
  height: 14px;
  -webkit-background-size: cover;
  background-size: cover;
 }
}
/* topicpath
============================================================================================================ */
#topicpath {
 position: relative;
 overflow: hidden;
 margin-bottom: 50px;
 border-bottom: 1px solid #ededed;
 font-size: 13px;
 font-size: 1.3rem;
}
#topicpath a {
 position: relative;
 display: inline-block;
 margin-right: 10px;
 padding: 10px 20px 10px 0;
 text-decoration: none;
}
#topicpath a:hover {
 text-decoration: underline;
}
#topicpath a:after {
 content: "";
 position: absolute;
 right: -20px;
 top: 50%;
 width: 50px;
 height: 50px;
 margin-top: -28px;
 border-right: 6px solid #ededed;
 border-top: 6px solid #ededed;
 -webkit-transform: scale(0.3, 1) rotate(45deg);
 -ms-transform: scale(0.3, 1) rotate(45deg);
 -o-transform: scale(0.3, 1) rotate(45deg);
 transform: scale(0.3, 1) rotate(45deg);
}
@media screen and (max-width: 768px) {
 #topicpath {
  margin-bottom: 20px;
  font-size: 1.1rem;
 }
 #topicpath a {
  padding-top: 5px;
  padding-bottom: 5px;
 }
}
/* title
============================================================================================================ */
.title_l {
 margin-bottom: 40px;
 padding-bottom: 10px;
 border-bottom: 2px solid #003399;
 font-size: 30px;
 font-size: 3rem;
 color: #003399;
 line-height: 1.4;
}
@media screen and (max-width: 768px) {
 .title_l {
  margin-bottom: 20px;
  padding-bottom: 8px;
  font-size: 2rem;
 }
}
/* parts
============================================================================================================ */
.mmr {
 display: inline-block;
 margin-right: -0.4em;
}
.mml {
 display: inline-block;
 margin-left: -0.4em;
}
.indent {
 padding-left: 1em;
}
.mth {
 margin-top: 0.8em;
}
.point_li li {
 position: relative;
 padding-left: 1.5em;
}
.point_li li > span:first-child {
 position: absolute;
 top: 0;
 left: 0;
}
.dot_li li {
 position: relative;
 padding-left: 1em;
}
.dot_li li > span:first-child {
 position: absolute;
 top: 0;
 left: 0;
}
.notes_li > li {
 position: relative;
 padding-left: 1em;
}
.notes_li > li:before {
 content: "※";
 position: absolute;
 top: 0;
 left: 0;
}
.dl_table {
 display: table;
}
.dl_table > dl {
 display: table-row;
}
.dl_table > dl > * {
 display: table-cell;
 padding: 0.3em 0;
 vertical-align: top;
}
.dl_table > dl:first-child > * {
 padding-top: 0;
}
.dl_table > dl + dl > * {
 border-top: 1px solid #e5e5e5;
}
.dl_table > dl > dt {
 padding-right: 1em;
 white-space: nowrap;
}
.dl_table + .dl_table > dl:first-child > * {
 padding-top: 0.3em;
 border-top: 1px solid #e5e5e5;
}
a.application_btn {
 position: relative;
 display: inline-block;
 padding: 8px 30px 8px 10px;
 background-color: #c5171f;
 border: 3px solid #a90008;
 text-decoration: none;
 color: #fff;
 font-size: 13px;
 font-size: 1.3rem;
 line-height: 1.5;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
}
a.application_btn strong {
 display: inline-block;
 font-size: 18px;
 font-size: 1.8rem;
}
a.application_btn:after {
 top: -3px;
 right: -3px;
 bottom: -3px;
 left: -3px;
}
a.application_btn:before {
 content: "";
 position: absolute;
 top: 50%;
 right: 10px;
 width: 9px;
 height: 9px;
 margin-top: -6px;
 border-top: 3px solid #fff;
 border-right: 3px solid #fff;
 -webkit-transform: rotate(45deg);
 -ms-transform: rotate(45deg);
 -o-transform: rotate(45deg);
 transform: rotate(45deg);
}
a.application_btn:hover:before {
 right: 9px;
}
@media screen and (max-width: 768px) {
 a.application_btn {
  padding: 5px 30px 5px 10px;
  font-size: 1.1rem;
 }
 a.application_btn strong {
  font-size: 1.5rem;
 }
}


/* ------------------------------
    header
------------------------------ */
#header{
    position: fixed;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-width: 1100px;
    top: 0;
    padding-top: 5px;
    height: 90px;
    background: #fff;
	z-index: 9999;
}
#header h1 a{
    display: block;
}
#header .gl {
	display: flex;
    justify-content: center;
    align-items: center;
	margin: 0 3.8em 0 2em;
}
#header .gl li{
	margin: 0 1.4em;
}
#header .gl li a{
	color: #00b7ce;
	text-decoration: none;
	font-size: 1.6rem;
}
#header .gl li a:hover{
	text-decoration:underline;
}
.btn a{
	display: block;
	background: #fe570e url(../img/icon_email.png) no-repeat 20px center;
	text-align: center;
	color: #FFF;
	font-weight: bold;
	font-size: 2.0rem;
	padding: 0.8em 1.8em 0.8em 2.5em;
	line-height: 1;
	text-decoration: none;
	border-radius: 5px;
}

.contact_btn a{
	display: block;
	background: #00b7ce;
	text-align: center;
	color: #FFF;
	font-size: 1.8rem;
	padding: 0.8em 1.8em;
	line-height: 1;
	text-decoration: none;
	border-radius: 5px;
}
.flex {
    display: flex;
}

@media screen and (max-width: 1100px) {
	
	#header{
		min-width: auto;
		top: 0;
		justify-content: space-between;
	}
    #header h1{
        width: 35%;
        margin: 0 ;
 		margin-left: 10px;
   }
    #header h1 img{
        width: 100%;
        margin: 0 ;
		max-width: 330px;
    }
	#header .btn.pc {
		display: none;
	}
	#header .btn.sp {
		display: block;
		padding: 0 5% 5%;
		background: #eee;
	}
	#header .btn.sp a{
		font-size: 1.4rem;
	}
	#header .menu-trigger{
		display: block;
		position: absolute;
		top: 50%;
		right: 3%;
		width: 30%;
		height: 100%;
		margin-top: -20px;
		max-width: 40px;
		max-height: 40px;
		z-index: 999;
		background: #00b7ce;
		border-radius: 4px;
		cursor: pointer;
	}
	#header .menu-trigger span {
		display: inline-block;
		transition: all .4s;
		position: absolute;
		left: 15%;
		width: 70%;
		height: 2px;
		background-color: #fff;
	}
	#header .menu-trigger span:nth-of-type(1) {
		top: 25%;
	}
	#header .menu-trigger span:nth-of-type(2) {
		top: 50%;
		transform: translateY(-50%);
	}
	#header .menu-trigger span:nth-of-type(3) {
		bottom: 25%;
	}
	#header.navOpen .menu-trigger span:nth-of-type(1) {
		top: 50%;
		transform: translateY(-50%)rotate(-45deg);
	}
	#header.navOpen .menu-trigger span:nth-of-type(2) {
		opacity: 0;
	}
	#header.navOpen .menu-trigger span:nth-of-type(3) {
		bottom: 50%;
		transform: translateY(50%)rotate(45deg);
	}
	#header .gl_wrap {
		opacity: 0;
		width: 100%;
		padding: 0;
		position:absolute;
		left: 0;
		top: 100%;
		overflow-y: auto;
		max-height: calc(90vh - 60px);
		transform: translateY(-100%);
		transition: transform .3s, opacity 1s;
	}
	#header.navOpen .gl_wrap {
		opacity: 1;
		transform: translateY(0);
		transition: transform .3s, opacity 0s;
	}
	#header .gl {
		display: block;
		background: #eee;
		top: 0;
		left: 0;
		width: 100%;
		height: auto;
		position: relative;
		margin: 0;
		padding-bottom: 5%;
	}
	#header .gl > li{
		display: block;
		height: auto;
		position: relative;
		border-bottom:1px solid #ddd;
		margin: 0;
	}
	#header .gl > li+li{
		margin: 0;
	}
	#header .gl > li > a,
	#header .gl > li > p{
		background: transparent;
		display: block;
		font-size: 1.4rem;
		line-height: 1;
		padding: 5% 5%;
		position: relative;
	}
	#header .gl > li > a:after{
		content: "";
		display: block;
		position: absolute;
		right: 5%;
		top:50%;
		margin: -4px 0 0 0;
		width: 8px;
		height: 8px;
		border-top: 2px solid #00b7ce;
		border-right: 2px solid #00b7ce;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	#header_c .gl_wrap .gl li a:hover{
		font-weight: normal;
		color: #FFF;
		background: #00b7ce;
	}
	#header_c .gl_wrap .gl li a:hover:after{
		border-top: 2px solid #FFF;
		border-right: 2px solid #FFF;
	}
	#header .gl > li:last-of-type > a img{
		width: inherit;
	}
	#header .gl > li:last-of-type > a:hover img{
		filter: brightness(10.0);
		opacity: 1;
	}

	#overlay {
		display: block;
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.8);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.3s ease;
		z-index: 998;
	}
	#overlay.active {
		opacity: 1;
		pointer-events: auto;
	}
}
@media screen and (max-width: 767px) {
    #header{
        height: 60px;
        padding-top: 0;
    }
    #header h1 {
		max-height: 35px;
		text-align: left;
    }
    #header h1 img{
		width: auto;
		max-height: 35px;
    }
}





