@charset "utf-8";
body {
  font-family: 'Noto Sans JP', sans-serif, "游ゴシック Medium", YuGothic, YuGothicM, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
}
em {
  font-weight: inherit;
}
body:first-of-type h3, h3 {
  font-size: 34px;
  text-align: center;
  color: #1f91b3;
  margin-bottom: 60px;
  font-weight: 300;
  line-height: 1.4;
}
h3 span {
  font-weight: 300;
  display: inline-block;
}
section {
  position: relative;
}
@media screen and (min-width: 801px) {
  .site_navi {
    display: none;
  }
  .float_navi.site_navi {
    display: block;
  }
}
@media screen and (max-width: 800px) {
  #breadCrumbSection, #headerArea, .content_headnav {
    display: none;
  }
}
@media screen and (min-width: 801px) {
  /*.site_navi:not(.float_navi){
		display: none;
	}*/
}
.mainvisual {
  background-color: #1f91b3;
  padding: 60px 3vw;
  padding-top: 40px;
}
.mainvisual .inner {
  max-width: 1050px;
  margin: auto;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
}
.mainvisual h1 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  margin-bottom: min(3.5vw, 34px);
}
.mainvisual h1 span {
  display: block;
  color: #fff;
  font-size: min(calc(44vw / 22), 24px);
}
.mainvisual h1 span.underline {
  background: rgba(0, 0, 0, 0.00);
  background: -webkit-linear-gradient(rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.00) 70%, rgba(255, 240, 0, 0.50) 70%, rgba(255, 240, 0, 0.50) 90%, rgba(0, 0, 0, 0.00) 90%, rgba(0, 0, 0, 0.00) 100%);
  background: linear-gradien(rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.00) 70%, rgba(255, 240, 0, 0.50) 70%, rgba(255, 240, 0, 0.50) 90%, rgba(0, 0, 0, 0.00) 90%, rgba(0, 0, 0, 0.00) 100%);
  font-size: min(calc(44vw / 14), 38px);
  font-weight: 700;
  line-height: 1.4;
}
.mainvisual h2 {
  width: min(60%, 270px);
  margin-bottom: min(3.5vw, 34px);
}
.btn_area {
  max-width: 460px;
  flex-shrink: 0;
  width: 43vw;
  display: flex;
  justify-content: flex-start;
  color: #1f91b3;
}
#mainSection .icon_btn, .icon_btn {
  width: min(19vw, 210px);
  height: min(5vw, 48px);
  margin-right: min(3vw, 20px);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #ffff00;
  border-radius: 10px;
  font-size: min(1.6vw, 16px);
  transition: 0.5s;
}
#mainSection .icon_btn:hover, .icon_btn:hover {
  background-color: #00b6ac;
}
#mainSection .icon_btn p, .icon_btn p {
  font-weight: 500;
  transition: 0.5s;
}
#mainSection .icon_btn:hover p, .icon_btn:hover p {
  color: #fff;
}
.icon_btn span {
  display: block;
  width: min(2vw, 26px);
  margin-right: min(1vw, 10px);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.icon_btn span.img1 {
  background-image: url("../images/top/icon_book1w.svg");
}
.icon_btn span.img2 {
  background-image: url("../images/top/icon_mail1w.svg");
}
.icon_btn span img {
  transition: 0.5s;
}
.icon_btn:hover span img {
  opacity: 0;
}
.mainvisual .left {
  max-width: 500px;
  flex-shrink: 0;
  width: 44vw;
  position: relative;
  z-index: 5;
}
.mainvisual .right {
  position: relative;
  width: 66vw;
  display: block;
  z-index: 1;
}
.mainvisual .right img {
  max-width: 700px;
  width: 115%;
  position: absolute;
  bottom: 0;
  top: 7%;
  margin: auto;
  right: 0;
}
@media screen and (max-width: 800px) {
  .mainvisual {
    padding: 40px 3vw;
    padding-top: 40px;
  }
  .mainvisual .inner {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
  .mainvisual h1 {
    margin-bottom: min(3.5vw, 34px);
  }
  .mainvisual h1 span {
    font-size: 4.2vw;
  }
  .mainvisual h1 span.underline {
    font-size: 6.4vw;
  }
  .mainvisual h2 {
    width: 45vw;
    margin-bottom: 40vw;
  }
  .btn_area {
    width: 85vw;
    max-width: none;
    justify-content: space-between;
  }
  #mainSection .icon_btn, .icon_btn {
    width: 41vw;
    height: 8vw;
    margin-right: 0;
    border-radius: 10px;
    font-size: 3.6vw;
  }
  .icon_btn span {
    width: 4vw;
    margin-right: 1vw;
  }
  .mainvisual .left {
    width: 85vw;
    max-width: none;
    z-index: 5;
    position: relative;
  }
  .mainvisual .right {
    width: 85vw;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: calc(29vw + 40px);
    z-index: 1;
  }
  .mainvisual .right img {
    width: 100%;
    max-width: none;
    top: 0;
    right: 0;
    position: relative;
  }
}
.btn_gra {
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn_gra a {
  border-radius: 10px;
  max-width: 340px;
  width: 100%;
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1f91b3+0,79bdd1+100 */
  background: #1f91b3; /* Old browsers */
  background: -moz-linear-gradient(left, #1f91b3 0%, #79bdd1 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #1f91b3 0%, #79bdd1 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #1f91b3 0%, #79bdd1 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1f91b3', endColorstr='#79bdd1', GradientType=1); /* IE6-9 */
  position: relative;
  overflow: hidden;
  /*border: solid 0px rgba(31,145,179,0);
	border: solid 0px rgba(0,0,0,0);
	box-sizing: border-box;*/
}
.btn_gra a span {
  font-size: inherit;
  color: inherit;
  font-weight: inherit;
  position: relative;
  z-index: 5;
}
#mainSection .btn_gra a:hover, .btn_gra a:hover {
  color: #fff;
  /*border: solid 2px rgba(31,145,179,1);
	border: solid 2px rgba(0,0,0,1);*/
}
#mainSection .btn_gra a:hover span {
  color: #1f91b3;
}
.btn_gra a:before {
  content: "";
  left: 0;
  top: 0;
  height: 100%;
  position: absolute;
  background-color: #ffff00;
  z-index: 1;
  width: 0;
  transition: 0.3s;
}
.btn_gra a:hover:before {
  width: 100%;
}

.top_about {
  background-color: #e9f4f7;
  padding: 60px 40px;
  background-image: url("../images/bg_square.svg");
  background-position: left bottom;
  background-size: 330px auto;
  background-repeat: no-repeat;
}
body:first-of-type .top_about h3, .top_about h3 {
  text-align: left;
  margin-bottom: 20px;
}
.top_about .inner {
  margin: auto;
  max-width: 1050px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 30px;
}
.top_about .inner .left {
  margin-right: 30px;
  max-width: 550px;
  flex-shrink: 0;
  width: 100%;
}
.top_about .inner .right {}
.top_about .inner .right img {
  margin: auto;
}
@media screen and (max-width: 1000px) {
  .top_about .inner {
    flex-direction: column;
  }
  .top_about .inner .left {
    max-width: none;
    width: 100%;
    margin: auto;
    margin-bottom: 20px;
  }
  .top_about .inner .right {
    width: 90%;
    padding-left: 8%;
  }
  body:first-of-type .top_about h3, .top_about h3 {
    text-align: center;
  }
}
.banner_area .inner {
  display: flex;
  justify-content: space-between;
  margin: auto;
  max-width: 1000px;
}
.banner_area .inner > div {
  max-width: 480px;
  width: calc(50% - 20px);
}
@media screen and (max-width: 600px) {
  .banner_area .inner {
    justify-content: flex-end;
    flex-direction: column;
    align-items: center;
  }
  .banner_area .inner > div {
    max-width: 700px;
    width: 100%;
  }
  .banner_area .inner > div :first-child {
    margin-bottom: 20px;
  }
}
.top_navi {
  background-color: #fff;
  padding: 10px 20px;
  padding-right: 35px;
  position: relative;
}
.top_navi nav {
  margin: auto;
  display: flex;
  justify-content: space-between;
  max-width: 1130px;
  width: 100%;
}
.top_navi nav a {
  padding-left: 15px;
  margin-left: 0px;
  margin-right: 0px;
  position: relative;
  display: block;
  font-size: 16px;
}
.top_navi nav a:not(.open_subnavi):before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  bottom: 0;
  top: 0;
  left: 0px;
  margin: auto;
  border-left: 7px solid #00b6ab;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 0px solid transparent;
}
.top_navi nav a:not(.open_subnavi):hover:before {
  border-left: 7px solid #1f91b3;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 0px solid transparent;
}
.top_navi nav a.open_subnavi:after, .top_navi nav a.open_subnavi:before {
  content: "";
  position: absolute;
  display: block;
  width: 10px;
  height: 2px;
  bottom: 0;
  top: 0;
  left: 0px;
  margin: auto;
  background-color: #00b6ab;
}
.top_navi nav a.open_subnavi:after {
  left: 4px;
  width: 2px;
  height: 10px;
  transition: 0.5s;
}
.top_navi nav a.open_subnavi:hover:after, .top_navi nav a.open_subnavi:hover:before {
  background-color: #1f91b3;
}
.top_navi nav a.open_subnavi.opened:after {
  height: 0;
}
@media screen and (max-width: 1000px) {
  .top_navi {
    display: none;
  }
}
.banner_area {
  padding: 60px 40px;
}
.banner_area a {
  transition: 0.5s;
  display: block;
}
.banner_area a:hover {
  opacity: 0.5;
}
.top_function {
  background-color: #e9f4f7;
  padding: 60px 40px;
  background-image: url("../images/bg_square.svg");
  background-position: left bottom;
  background-size: 330px auto;
  background-repeat: no-repeat;
}
.function {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  max-width: 1040px;
  width: 100%;
  margin: auto;
  margin-bottom: 40px;
}
.function li {
  width: calc(33.33% - 40px / 3);
  margin-right: 20px;
  margin-bottom: 20px;
  display: flex;
  align-items: stretch;
}
.function li a {
  box-sizing: border-box;
  padding: 20px;
  border-radius: 10px;
  background-color: #fff;
  padding-bottom: 75px;
  position: relative;
  display: block;
  width: 100%;
  transition: 0.5s;
}
.function li a:hover {
  opacity: 0.8;
}
.function li img {
  display: block;
  margin: auto;
  width: 60%;
}
.function li h4 {
  font-size: 22px;
  text-align: center;
  color: #146e94;
  margin: 10px auto;
  font-weight: 700;
}
.function li .btn {
  position: absolute;
  left: 0;
  right: 0;
  padding: 0 20px;
  margin: auto;
  bottom: 20px;
}
@media screen and (min-width: 1001px) {
  .function li:nth-child(3n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 1000px) {}
@media screen and (max-width: 500px) {}

.top_kadai {
  padding: 60px 40px;
}
.top_kadai .readtext {
  text-align: center;
  font-size: 20px;
  margin-bottom: 40px;
}
.top_kadai ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: auto;
  max-width: 1050px;
  margin-bottom: 40px;
}
.top_kadai ul li {
  width: calc(50% - 10px);
  margin-bottom: 20px;
  margin-right: 20px;
  background-color: #e9f4f7;
  box-sizing: border-box;
}
.top_kadai ul li:nth-child(2n) {
  margin-right: 0px;
}
.top_kadai ul li a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition: 0.5s;
}
.top_kadai ul li a:hover {
  opacity: 0.8;
}
.top_kadai ul li .left {
  display: block;
  background-color: #1f91b3;
  width: 150px;
  flex-shrink: 0;
}
.top_kadai ul li .left img {}
.top_kadai ul li .right {
  padding: 5px 10px;
}
.top_kadai ul li .right p {
  color: #1f91b3;
  font-size: 16px;
  font-weight: 700;
}
.top_jirei {
  background-color: #e9f4f7;
  padding: 60px 40px;
  background-image: url("../images/bg_square.svg");
  background-position: left bottom;
  background-size: 330px auto;
  background-repeat: no-repeat;
}
.top_jirei_list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1050px;
  margin: auto;
  margin-bottom: 40px;
}
.top_jirei_item {
  width: calc(50% - 20px);
  margin-right: 20px;
  margin-bottom: 20px;
  display: flex;
  align-items: stretch;
}
.top_jirei_item a {
  background-color: #fff;
  position: relative;
  padding: 20px;
  box-sizing: border-box;
  padding-bottom: 75px;
  display: block;
  width: 100%;
  transition: 0.5s;
}
.top_jirei_item a:hover {
  opacity: 0.8;
}
.top_jirei_item:nth-child(2n) {
  margin-right: 0px;
}
.top_jirei_item p {
  font-size: 16px;
}
.jire_corp {
  min-height: 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 15px;
  margin-bottom: 10px;
  border-bottom: solid 1px #1f91b3;
}
.jire_corp .right {
  margin: 0;
  margin-left: 15px;
  flex-shrink: 1;
}
.jire_corp .right p {
  font-size: 14px;
}
body:first-of-type .top_jirei_item h4, .top_jirei_item h4 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  margin-bottom: 10px;
}
body:first-of-type .top_jirei_item h4 span, .top_jirei_item h4 span {
  color: #1f91b3;
  font-size: 18px;
  font-weight: 700;
  display: block;
}
.top_jirei_item .btn {
  position: absolute;
  bottom: 20px;
  left: 0;
  right: 0;
  margin: auto;
  width: calc(100% - 40px);
}
.top_flow {
  padding: 60px 40px;
}
.top_flow .inner {
  margin: auto;
  max-width: 1000px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 60px;
}
.top_flow .inner .left {
  margin-right: 30px;
  max-width: 550px;
  flex-shrink: 0;
  width: 100%;
}
.top_flow .inner .right {
  width: 100%;
}
.top_flow .inner .right img {
  margin-top: -13%;
}
.top_column {
  /*background-color: #e9f4f7;    	background-image: url("../images/bg_square.svg");
	background-position: left bottom;
	background-size:  330px auto;
	background-repeat: no-repeat;*/
  padding: 60px 40px;
}
.list_blue a {
  background-color: #e9f4f7;
}
.taglist {
  display: flex;
  align-items: center;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
}
.taglist .inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.taglist a {
  display: flex;
  min-height: 35px;
  border-radius: 100px;
  background-color: #fff;
  padding: 5px 15px;
  align-items: center;
  justify-content: center;
  width: 150px;
  text-align: center;
  margin: 0 10px;
  margin-bottom: 20px;
  box-shadow: 3px 3px 0px 0px #00b6ac;
}
.taglist a span {
  position: relative;
  display: block;
  padding-left: 15px;
}
.taglist a span:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  bottom: 0;
  top: 0;
  left: 0;
  margin: auto;
  border-left: 7px solid #00b6ac;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 0px solid transparent;
}
.columnlist {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  max-width: 1050px;
  margin: auto;
  margin-bottom: 60px;
  align-items: stretch;
}
.columnlist li {
  margin-right: 20px;
  width: calc(33.33% - 40px / 3);
  display: flex;
  align-items: stretch;
}
.columnlist li:nth-child(3n) {
  margin-right: 0;
}
.columnlist_item {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  background-color: #fff;
  padding: 15px;
  width: 100%;
  box-sizing: border-box;
}
.columnlist_item img {
  margin-bottom: 10px;
  width: 100%;
}
.columnlist_item:hover img {
  opacity: 0.7;
}
.columnlist_item .tag {
  font-size: 12px;
  line-height: 1;
  padding: 5px;
  background-color: #00b6ac;
  color: #fff;
  margin: 0;
  margin-bottom: 10px;
}
.top_event {
  padding: 60px 40px;
  background-color: #e9f4f7;
  padding: 60px 40px;
  background-image: url("../images/bg_square.svg");
  background-position: left bottom;
  background-size: 330px auto;
  background-repeat: no-repeat;
}
.side_title {
  position: absolute;
  left: 10px;
  right: auto;
  top: 0;
  bottom: 0;
  margin: auto 0;
  display: flex;
  max-height: 480px;
  width: 18px;
  height: calc(100% - 80px);
  justify-content: center;
  flex-direction: column;
  z-index: 5;
  color: #1f91b3;
}
.side_title:before, .side_title:after {
  content: "";
  height: calc(50% - 2em - 10px);
  background-color: #1f91b3;
  width: 1px;
  flex-shrink: 1;
  margin: 0;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
}
.side_title:before {
  top: 0;
}
.side_title:after {
  bottom: 0;
}
.side_title p {
  position: relative;
  text-align: center;
  flex-shrink: 0;
  transform: rotate(-90deg);
  height: calc(4em + 20px);
  width: calc(4em + 20px);
  line-height: 1;
  box-sizing: border-box;
  font-weight: 300;
}
.side_title.size3:before, .side_title.size3:after {
  height: calc(50% - 1.5em - 10px);
}
.side_title.size3 p {
  height: calc(3em + 20px);
  width: calc(3em + 20px);
}
.side_title.size5:before, .side_title.size5:after {
  height: calc(50% - 2.5em - 10px);
}
.side_title.size5 p {
  height: calc(5em + 20px);
  width: calc(5em + 20px);
}
.side_title.size7 p {
  height: calc(7em + 20px);
  width: calc(7em + 20px);
}
.side_title.size7:before, .side_title.size7:after {
  height: calc(50% - 3.5em - 10px);
}
.side_title.size11 p {
  height: calc(11em + 20px);
  width: calc(11em + 20px);
}
.side_title.size11:before, .side_title.size11:after {
  height: calc(50% - 5.5em - 10px);
}
@media screen and (max-width: 1000px) {
  .function li h4 {
    font-size: 18px;
  }
  .function li {
    width: calc(50% - 10px);
    margin: 0;
    margin-bottom: 20px;
    margin-right: 20px;
  }
  @media screen and (min-width: 601px) {
    .function li:nth-child(2n) {
      margin-right: 0;
    }
  }
  @media screen and (max-width: 600px) {
    .function li {
      width: 100%;
      margin-right: 0;
      margin: 0 auto;
      margin-bottom: 20px;
      max-width: 700px;
    }
    .function li a {
      width: 100%;
      min-width: 0;
    }
    .function li img {
      display: block;
      margin: auto;
      width: 27%;
    }
  }
  /*.function li:nth-child(2n){
		margin-right: 0;
	}*/
  .top_kadai ul li {
    width: 100%;
    margin-bottom: 20px;
    margin-right: 0px;
  }
  .top_jirei_item {
    width: 100%;
    margin-right: 0px;
    margin-bottom: 20px;
  }
  body:first-of-type .top_jirei_item h4, .top_jirei_item h4 {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .top_flow .inner {
    flex-direction: column;
  }
  .top_flow .inner .left {
    max-width: none;
    margin-right: 0;
    margin-bottom: 20px;
  }
  .top_flow .inner .right {
    width: 100%;
    margin: 0;
  }
  .top_flow .inner .right img {
    width: 80%;
    margin: auto;
    margin-top: 0;
  }
  .columnlist {
    flex-direction: column;
    width: 100%;
  }
  .columnlist li {
    margin-right: 0px;
    width: 100%;
    margin-bottom: 20px;
  }
  .columnlist li:last-child {
    margin-bottom: 0;
  }
}
@media screen and (max-width: 500px) {
  body:first-of-type h3, h3 {
    font-size: 22px;
    margin-bottom: 40px;
  }
  .top_about, .banner_area, .top_function, .top_kadai, .top_jirei, .top_column, .top_flow, .top_event, .cvarea {
    padding: 40px 30px;
  }
  .side_title {
    position: absolute;
    left: 9px;
    width: 13px;
    height: calc(100% - 80px);
    font-size: 12px;
  }
  .side_title {
    max-height: 400px;
  }
  /*
.function li {
    margin-right: 20px;
	padding: 15px;
    padding-bottom: 56px;
	}
.function li .btn {
    position: absolute;
    left: 0;
    right: 0;
	padding: 0 15px;
	}
.function li .btn a {
    width: 190px;
    max-width: calc(100% - 0px);
    min-width: 0;
    font-size: 12px;
    min-height: 26px;
    display: flex;
    padding: 0px 10px;
	}*/
  .top_kadai .readtext {
    font-size: 16px;
    margin-bottom: 40px;
  }
  .top_kadai ul li .left {
    width: 110px;
  }
  .top_kadai ul li .right p {
    font-size: 16px;
    height: 3em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  @media screen and (max-width: 400px) {
    .top_kadai ul li .right p {
      font-size: 14px;
    }
  }
  .jire_corp {
    flex-direction: column;
  }
  .jire_corp .left {
    margin-bottom: 10px;
  }
  body:first-of-type .top_jirei_item h4 span, .top_jirei_item h4 span {
    color: #1f91b3;
    font-size: 18px;
  }
  .top_jirei_item p {
    font-size: 14px;
  }
  .taglist a {
    min-height: 30px;
    padding: 2px 15px;
    min-width: 130px;
    margin: 0 5px;
    margin-bottom: 10px;
    box-shadow: 2px 2px 0px 0px #00b6ac;
    font-size: 12px;
  }
  .taglist a span {}
}