@charset "UTF-8";


/* ------------ */
/* 基本レイアウト */
/* ブレイクポイント_480px_800px */
/* ------------ */
html {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-size: 62.5%;
  overflow: scroll;
}
@media (max-width: 480px) {
  html {
    font-size: 2.4vw;
  }
}
body {
  margin: 0 auto;
  min-width: 320px;
  -webkit-text-size-adjust: 100%;
  animation: fadeIn 1.5s ease 0s 1 normal;
  color: #333;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.8em;
  line-height: 1.6;
  text-align: justify;
}
section {
  display: block;
}
.wrapper {
  margin: 0 auto;
  width: 100%;
  background: #fff;
  overflow: auto;
  position: relative;
}
.container {
  margin: 0 auto;
  max-width: 1000px;
  width: 90%;
  position: relative;
}
img{
  width: 100%;
  height: auto;
  object-fit: contain;
}
a {
  text-decoration: none;
}
h2, h3 {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}
ul, ol {
  list-style-type: none;
}
h3 + p {
  margin-top: 20px;
}
p + p {
  margin-top: 20px;
}
/* ------------ */
/* header */
/* ------------ */
.header {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.6rem;
  text-align: center;
  position: absolute;
  top: 20px;
  botom: 0;
  left: 0;
  right: 0;
  z-index: 3;
}
.header .container {
  padding: 20px 10px;
  background: #fff;
  border-radius: 70px;
}
/* サイトタイトル */
.site_title {
  font-size: 3.6rem;
  color: #130f40;
}
.site_title .bluegreen {
  color: #16a3a9;
}
.site_title .yellow {
  color: #f8b217;
}
.site_title .blue {
  color: #2a42a6;
}
.site_title_before {
  margin-right: 1rem;
  padding: 0.4rem 1.4rem;
  background: #ed7e3d;
  border-radius: 2rem;
  color: #fff;
  display: inline-block;
  font-size: 2.1rem;
  vertical-align: middle;
}
.site_title_machitanken, .site_title_mirainotane {
  margin-top: 1rem;
  color: #fff;
  display: inline-block;
  font-size: 2.4rem;
  line-height: 3.6rem;
}
.site_title_machitanken {
  margin-right: 2px;
  padding-left: 2rem;
  padding-right: 3rem;
  background: #6ab04c;
  border-radius: 2rem 2rem .7rem 2rem;
}
.site_title_mirainotane {
  margin-left: 2px;
  padding-left: 3rem;
  padding-right: 2rem;
  background: #eb4d4b;
  border-radius: 2rem 2rem 2rem .7rem;
}
@media (max-width: 800px) {
  .header .container {
    border-radius: 40px;
  }
  .site_title_before {
    margin: 0 auto;
    width: 25%;
    display: block;
  }
  .site_title_machitanken, .site_title_mirainotane {
    font-size: 2.1rem;
  }
}
/* ------------ */
/* メイン画像 */
/* ------------ */
.main_visual {
  width: 100%;
  height: 80vh;
  background: url("../images/top_image.jpg") no-repeat;
  background-position: 50% 0;
  background-size: cover;
  position: relative;
}
@media (max-width: 800px) {
  .main_visual {
    margin-top: 180px;
    height: 400px;
    background-position: 50% 50%;
  }
}
/* ビジュアル右下 */
.pop {
  padding: 20px 10px;
  width: 120px;
  height: 120px;
  background: #eedd33;
  border-radius: 50%;
  box-sizing: border-box;
  display: table;
  position: absolute;
  bottom: 10px;
  right: 20px;
  text-align: center;
}
.pop p {
  display: table-cell;
  line-height: 1.4;
  font-weight: bold;
  vertical-align: middle;
}
/* ------------ */
/* tieup_section */
/* ------------ */
.info_section {
  margin-top: 30px;
}
/* タイトル */
.tieup_ballon {
  margin: 0 auto;
  width: 280px;
  padding: 0.5rem 2rem;
  background: #2a42a6;
  border-radius: 3rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.1rem;
  text-align: center;
}
.info_title {
  margin: 30px 0;
  padding: 30px 0;
  background: url("../images/information_bg.png") 50% 50% no-repeat;
  background-size: contain;
  display: flex;
  font-size: 3.2rem;
  flex-wrap: wrap;
  justify-content: space-between;
}
.title_team-name, .title_tukimi {
  width: calc((100% - 204px) / 2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-basis: calc((100% - 204px) / 2);
  text-align: center;
}
.title_team-name {
  flex-direction: column;
}
.title_school_name {
  display: block;
  font-size: 2.4rem;
}
@media (max-width: 800px) {
  .info_title {
    padding: 0;
    flex-direction: column;
    background: url("../images/information_bg.png") 50% 73% no-repeat;
    background-size: 70px;
  }
  .title_team-name, .title_tukimi {
    width: 100%;
  }
  .title_team-name {
    margin-bottom: 80px;
  }
}
/* プロフィール紹介 */
.info_prof_items-r, .info_prof_items-l {
  margin-top: 30px;
  background: #f3f3f3;
  border-radius: 30px 0 30px 0;
  box-sizing: border-box;
  display: flex;
}
.info_prof_items-r {
}
.info_prof_items-l {
  flex-direction: row-reverse;
}
.info_prof_item_text {
  padding: 20px;
  width: 62%;
}
.info_prof_item_image {
  width: 38%;
}
.info_prof_item_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.info_prof_items-r img {
  border-radius: 0 0 30px 0;
}
.info_prof_items-l img {
  border-radius: 30px 0 0 0;
}
.info_prof_items-r .prof_title {
  border-bottom: 3px solid #eb4d4b;
}
.info_prof_items-l .prof_title {
  border-bottom: 3px solid #6ab04c;
}
@media (max-width: 800px) {
  .info_prof_items-r, .info_prof_items-l {
    display: flex;
    flex-direction: column;
    border-radius: 30px 0 0 0;
  }
  .info_prof_item_text, .info_prof_item_image {
    width: 100%;
    height: 50%;
    box-sizing: inherit;
  }
  .info_prof_items-r img, .info_prof_items-l img {
    border-radius: 0;
  }
}

/* ------------ */
/* lesson01 */
/* ------------ */
.lesson01_section {
  margin-top: 100px;
  position: relative;
}
/* 背景 */
.lesson01_bg {
  margin: 0 auto;
  width: 100%;
  height: auto;
  background-color: #ff7979;
  border-radius: 0 0 50px 0;
}
.lesson01_bg {
  background: linear-gradient(135deg, rgba(255, 121, 121, 0.8), rgba(255, 121, 121, 0.4)), url("../images/bg_lesson01.jpg") no-repeat;
  background-color: #ff7979;
  background-position: right center;
  background-size: auto 100%;
}
.lesson01_bg .container {
  padding: 30px 0;
}
/* タイトル */
/* messageタイトルと共通 */
.pink_title, .green_title {
  width: 90%;
  margin: 0 auto;
  font-size: 3.6rem;
  text-align: center;
}
.title_ballon {
  margin: 0 auto;
  width: 140px;
  border-radius: 3rem;
  color:#fff;
  display: block;
  font-size: 2.4rem;
  text-align: center;
}
.pink_title > .title_ballon {
  background: #eb4d4b;
}
.lesson01_outline {
  margin: 0 auto;
  padding: 30px 20px;
  width: 76%;
  background: #fff;
  border-radius: 30px;
}
/* ol設定 */
.outline_flow_items {
  counter-reset:number;
}
.outline_flow_items li {
  padding: 1.4rem 0 1.4rem 58px;
  position: relative;
}
.outline_flow_items li::before {
  width: 40px;
  height: 40px;
  background: #6ab04c;
  border-radius: 50%;
  color: #fff;
  content: counter(number);
  counter-increment: number;
  display:inline-block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.4rem;
  font-weight:bold;
  line-height: 40px;
  position: absolute;
  left: 0;
  top: 50%;
  text-align: center;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
.outline_text {
  margin-top: 30px;
  padding: .5rem 20px;
  background: #2a42a6;
  border-radius: 30px;
  color: #fff;
  text-align: center;
}
/* スケジュール */
/* lesson02_スケジュール共通 */
.schedule {
  margin-top: 30px;
  padding: 30px 20px;
  background: #f3f3f3;
  border-radius: 30px 0 30px 0;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
}
.schedule dt {
  clear: left;
  min-width: 180px;
}
.schedule dd {
  width: calc(100% - 180px);
}
.note {
  color: #B20002;
  display: block;
  font-size: 1.4rem;
}
@media (max-width: 800px) {
  /* lesson02_スケジュール共通 */
  .schedule dt {
    margin-top: 20px;
    width: 100%;
    border-top: 1px dashed #ccc;
    border-bottom: 1px dashed #ccc;
  }
  .schedule dt:first-child {
    margin-top: 0;
  }
  .schedule dd {
    width: 100%;
  }
}
/* イベントの意義 */
/* Message見出し共通 */
.pink_about_title {
  margin-top: 30px;
  padding: .5rem 30px .5rem 20px;
  background: #eb4d4b;
  border-radius: 10px 30px 30px 10px;
  color:#fff;
  display: inline-block;
  font-size: 2.4rem;
}
.lesson01_section h4 {
  margin-top: 20px;
  color: #eb4d4b;
}
/* 開催のお知らせをみるボタン設定 */
.btn_pink {
  margin: 30px auto 0;
  width: 300px;
  background: #eb4d4b;
  border-radius: 3rem;
  color: #fff;
  display: block;
  line-height: 2.5;
  text-align: center;
  transition: .4s;
}
.btn_pink:hover {
  opacity: .8;
}

/* ------------ */
/* lesson02 */
/* ------------ */
.lesson02_section {
  margin-top: 100px;
  position: relative;
}
/* 背景 */
.lesson02_bg {
  margin: 0 auto;
  width: 100%;
  height: auto;
  background: linear-gradient( 135deg, rgba(186, 220, 88, 0.4), rgba(186, 220, 88, 0.8)), url("../images/bg_lesson02.jpg") no-repeat;
  background-position: left center;
  background-size: auto 100%;
  background-color: #badc58;
  border-radius: 50px 0 0 0;
}
.lesson02_bg .container {
  padding: 30px 0;
}
/* タイトルCSSは.pink_titleと一緒に記述 */
/* グリーンバルーン_カラー設定 */
.green_title > .title_ballon {
  background: #6ab04c;
}
.lesson02_outline {
  margin: 0 auto;
  padding: 30px 20px;
  width: 76%;
  background: #fff;
  border-radius: 30px;
}
/* ul設定 */
.outline_list_items li {
  padding: 1.4rem 0 1.4rem 58px;
  position: relative;
}
.outline_list_items li::before {
  width: 40px;
  height: 40px;
  background: #eb4d4b;
  border-radius: 50%;
  color: #fff;
  content: '\f00c';
  display:inline-block;
  font-family: 'Font Awesome 5 Free';
  font-size: 2.4rem;
  font-weight:bold;
  line-height: 40px;
  position: absolute;
  left: 0;
  top: 50%;
  text-align: center;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
/* 保護者向けアイコン */
.adult:before {
  margin-right: .6rem;
  padding: .5rem 1.5rem;
  content: '保護者向け';
  background: #ed7e3d;
  border-radius: 2rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.4rem;
  line-height: 1.8;
}
/* スケジュールはlesson01と同じ */
/* イベントの意義 */
.green_about_title {
  margin-top: 30px;
  padding: .5rem 30px .5rem 20px;
  background: #6ab04c;
  border-radius: 10px 30px 30px 10px;
  color:#fff;
  display: inline-block;
  font-size: 2.4rem;
}
.lesson02_section h4 {
  margin-top: 20px;
  color: #6ab04c;
}

/* 開催のお知らせをみるボタン設定 */
.btn_green {
  margin: 30px auto 0;
  width: 300px;
  background: #6ab04c;
  border-radius: 3rem;
  color: #fff;
  display: block;
  line-height: 2.5;
  text-align: center;
  transition: .4s;
}
.btn_lesson02:hover {
  opacity: .8;
}
/* ------------ */
/* message */
/* ------------ */
.message_section {
  margin-top: 100px;
}
/* スキルチャート共通 */
.chart {
  padding-bottom: 30px;
}
.skill_chart_base ,.skill_chart_option {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.skill_chart_base li, .skill_chart_option li {
  margin-top: 30px;
  font-weight: bold;
  text-align: center;
  position: relative;
  box-sizing: border-box;
}
.skill_01 {
  margin-right: 30px;
}
.skill_02 {
  margin-right: 60px;
  margin-left: 30px;
}
/* スキルチャート１ */
.skill_chart_base .skill_01, .skill_chart_base .skill_02 {
  padding: 10px;
  min-width: 180px;
  background: #fde8d0;
  border-radius: 30px;
  line-height: 30px;
}
.skill_chart_base .skill_total {
  padding: 10px;
  background: #2a42a6;
  color: #fff;
  border-radius: 30px;
  line-height: 30px;
}
.skill_chart_base .skill_01::after {
  width: 50px;
  height: 50px;
  content: '';
  background: url("../images/skill_mp.png") 50% 50% repeat;
  position: absolute;
  top: 0;
  right: -55px;
}
.skill_chart_base .skill_02::after {
  width: 50px;
  height: 50px;
  content: '';
  background: url("../images/skill_equal.png") 50% 50% repeat;
  position: absolute;
  top: 0;
  right: -55px;
}
/* スキルチャート２ */
.skill_chart_option .skill_01, .skill_chart_option .skill_02 {
  min-width: 180px;
  height: 80px;
  background: #fde8d0;
  border-radius: 30px;
  line-height: 40px;
}
.skill_01 .lesson01 {
  padding: 0 10px;
  display: block;
  background: #6ab04c;
  border-radius: 30px 30px 0 0;
  color: #fff;
}
.skill_02 .lesson02 {
  padding: 0 10px;
  display: block;
  background: #eb4d4b;
  border-radius: 30px 30px 0 0;
  color: #fff;
}
.skill_chart_option .skill_total {
  padding: 0 10px;
  height: 80px;
  background: #2a42a6;
  border-radius: 30px;
  color:#fff;
  line-height: 40px;
}
.skill_chart_option .skill_01::after {
  width: 50px;
  height: 50px;
  content: '';
  background: url("../images/skill_mp.png") 50% 50% repeat;
  background-size: 100% auto;
  position: absolute;
  top: 15px;
  right: -55px;
}
.skill_chart_option .skill_02::after {
  width: 50px;
  height: 50px;
  content: '';
  background: url("../images/skill_equal.png") 50% 50% repeat;
  background-size: 100% auto;
  position: absolute;
  top: 15px;
  right: -55px;
}
@media (max-width:800px) {
  /* スキルチャート共通 */
  .skill_chart_base, .skill_chart_option {
    flex-direction: column;
  }
  .skill_chart_base li:not(.skill_01), .skill_chart_option li:not(.skill_01) {
    margin-top: 80px;
  }
  .skill_01 {
    margin: 30px 0 0 0;
    width: 100%;
  }
  .skill_02, .skill_total {
    margin: 0 auto;
    width: 100%;
  }
  /* スキルチャート１ */
  .skill_chart_base .skill_01::after {
    width: 60px;
    height: 60px;
    content: '';
    background: url("../images/skill_mp.png") 50% 50% repeat;
    position: absolute;
    top: 60px;
    right: calc(50% - 30px);
  }
  .skill_chart_base .skill_02::after {
    width: 60px;
    height: 60px;
    content: '';
    background: url("../images/skill_equal.png") 50% 50% repeat;
    position: absolute;
    top: 60px;
    right: calc(50% - 30px);
  }
  /* スキルチャート２ */
  .skill_chart_option .skill_01::after {
    width: 60px;
    height: 60px;
    content: '';
    background: url("../images/skill_mp.png") 50% 50% repeat;
    position: absolute;
    top: 90px;
    right: calc(50% - 30px);
  }
  .skill_chart_option .skill_02::after {
    width: 60px;
    height: 60px;
    content: '';
    background: url("../images/skill_equal.png") 50% 50% repeat;
    position: absolute;
    top: 90px;
    right: calc(50% - 30px);
  }
}
/* 参考文献 */
.references_items {
  margin-top: 30px;
  padding: 30px 20px;
  width: 100%;
  background: #f3f3f3;
  border-radius: 30px 0 30px 0;
  box-sizing: border-box;
  counter-reset:number;
  font-size: 1.4rem;
}
.references_items li {
  padding: .5rem 0 .5rem 30px;
  box-sizing: inherit;
  position: relative;
  text-align: left; /* iphone表示時のNoto文字化け対応 */
}
.references_items li::before {
  margin-left: -30px;
  padding-right: 10px;
  border-radius: 50%;
  content: '注' counter(number);
  counter-increment: number;
  text-align: center;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media (max-width: 480px) {
  .references_items li {
    font-size: 1.3rem;
  }
}
/* ------------ */
/* footer */
/* ------------ */
.footer {
  margin-top: 70px;
  padding: 0 auto;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  position: relative;
}

/* 背景 */
.footer::before {
  width: calc((100% - 1000px) / 2);
  height: 100%;
  content: '';
  background: #6ab04c;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
.footer::after {
  width: calc((100% - 1000px) / 2);
  height: 100%;
  content: '';
  background: #130f40;
  display: block;
  position: absolute;
  top: 40px;
  right: 0;
}
.footer_wrap {
  width: 100%;
  height: 100%;
  box-sizing: inherit;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.footer_info, .footer_oldinfo, .footer_info > .container, .footer_oldinfo > .container {
  box-sizing: inherit;
  display: flex;
}
.footer_info {
  width: 450px;
  min-height: 100px;
  background: #6ab04c;
  border-radius: 0 30px 0 0;
}
.footer_oldinfo {
  margin-top: 40px;
  padding-bottom: 40px;
  width: calc(100% - 450px);
  min-height: 100px;
  background: #130f40;
}
.footer_info > .container {
  width: 100%;
  height: 100%;
  padding: 20px 30px;
  flex-direction: column;
}
.footer_oldinfo > .container {
  width: 100%;
  height: 100%;
  padding: 20px 30px;
}
.footer_logo {
  width: 180px;
  height: auto;
}
@media (max-width: 800px) {
  .footer_wrap {
    width: 100%;
    flex-direction: column;
  }
  .footer_info {
    width: 450px;
    flex-basis: 80%;
  }
  .footer_oldinfo {
    width: 100%;
    flex-basis: 100%;
    margin: 0;
  }
}
/* 過去のpdfリンクボタン設定 */
.btn_white {
  margin: 30px auto 0;
  padding: 0 10px;
  background: #f3f3f3;
  border-radius: 3rem;
  color: #333;
  display: block;
  line-height: 2.5;
  text-align: center;
  transition: .4s;
}
.btn_white:hover {
  opacity: .8;
}
/* お問い合わせ */
.footer_address_title {
  margin-top: 20px;
  padding: .5rem 30px .5rem 20px;
  background: #fff;
  border-radius: 10px 30px 30px 10px;
  color:#6ab04c;
  display: inline-block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.4rem;
}
.footer_address dd {
  color: #130f40;
}
.footer_address_tel, .footer_address_fax {
  font-size: 3.6rem;
  font-weight: bold;
  line-height: 1.2;
}
.footer_address_tel a, .footer_address_fax a {
  color: #2a42a6;
  text-decoration: none;
}
/* ------------ */
/* topに戻る */
/* ------------ */
#back-to-top {
  background: #eb4d4b;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: none;
  color: #fff;
  font-size: 2rem;
  line-height: 60px;
  opacity: 0;
  position: fixed;
  right: 20px;
  bottom: 20px;
  text-align: center;
  z-index: 10;
}
#back-to-top.fade-in {
  opacity: 1;
  transition: opacity 1s;
}
#back-to-top:hover {
  cursor: pointer;
}
