@charset "UTF-8";
/**************************

下層共通CSS

**************************/
/**************************

#pankuzu

***/
body #pankuzu {
  background: #E6E6E6;
  padding: 0.3em;
  text-align: center;
  margin: 0;
  font-size: 20px;
  width: 100%;
  font-weight: 600;
}
body #pankuzu a {
  color: var(--main-txt-color);
  text-decoration: none;
  position: relative;
  padding-right: 2em;
}
body #pankuzu a::after { /*「＞」*/
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
  right: 0.7em;
  width: 0.5em;
  height: 0.5em;
  border-top: 2px solid #4694D1;
  border-right: 2px solid #4694D1;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  body #pankuzu {
    text-align: left;
    font-size: 12px !important;
  }
}
/**************************

#page_title

***/
body #page_title {
  background: url("../img/common/bg_page_title.jpg") center bottom / cover;
  padding: 4em 1em 3em;
  text-align: center;
  margin: 0 0 72px;
  box-shadow: inset 0px -14px 4em -14px rgba(0, 0, 0, 0.15);
}
body #page_title h2 {
  font-weight: 900;
  font-size: 50px;
  text-align: center;
  color: #4694d1;
}
body #page_title h2 .jpn {
  border-bottom: 4px solid #4694d1;
  padding-bottom: 0.25em;
}
body #page_title h2 .eng {
  font-size: 18px;
  display: block;
  padding-top: 1.7em;
  font-weight: 500;
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  body #contents {
    margin-top: 0;
  }
  body #page_title {
    margin: 57px 0 0;
    border: none;
    padding: 2em 1em 1.3em;
  }
  body #page_title h2 {
    font-weight: 800;
    font-size: 24px;
  }
  body #page_title h2 .jpn {
    border-width: 2px;
    padding-bottom: 0.25em;
  }
  body #page_title h2 .eng {
    font-size: 12px;
    padding-top: 1.0em;
    font-weight: 300;
  }
}
/*------------- 
小小表示
*/
@media screen and (max-width: 480px) {
  body #page_title h2 {
    font-size: 8vw;
  }
}
/***------------------------------ 

#contents
下層ページコンテンツ部分（ヘッダフッタ以外）

------------------------------*/
body #contents {
  background: #fff;
  padding-bottom: 5em;
  padding-top: 30px;
}
#contents a {
  color: #086ec9;
  text-decoration: underline;
}
body #contents a:hover {
  text-decoration: none;
  transition: 0.2s;
  color: #d56a1c;
}
#contents section {
  padding-top: 3em;
  padding-bottom: 3em;
}
body #contents p:first-child {
  margin-top: 30px; /*contents内で最初に見出しがない場合*/
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  body #contents {
    margin-top: 1em;
    padding: 0 2%;
  }
  #contents section {
    padding: 1em 2%;
  }
}
/**************************



***/
/**************************

Wordpress投稿内の要素

***/
/*---- ボタン ----*/
#contents .wp-block-button {
  font-size: 36px;
}
#contents a.wp-block-button__link {
  color: #fff !important;
  border-radius: 9999px;
  text-decoration: none !important;
  padding: 0.667em;
  font-weight: 700;
  background: linear-gradient(#545454 0%, #161515 100%);
  border: 0.08em solid #fff;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
  margin: 2em 0 1em;
  width: 620px;
  max-width: 100%;
}
#contents a.wp-block-button__link:hover {
  color: #272727 !important;
  background: linear-gradient(#f2efef 0%, #d5d5d5 100%);
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  #contents .wp-block-button {
    font-size: 22px;
  }
}
/*---- youtubeボタン ----*/
#contents .wp-block-buttons.youtube a.wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
}
#contents .wp-block-buttons.youtube a.wp-block-button__link::before {
  content: "";
  width: 1.8em;
  height: 1.5em;
  background: url("../img/common/icon_youtube.png") no-repeat center center/ contain;
  margin-right: 0.4em;
  display: inline-block;
}
/*---- 画像系 ----*/
#contents .wp-block-gallery {
  margin-bottom: 1.2em;
}
figcaption.wp-element-caption {
  background: #EEEEEE;
  padding: 1em;
  font-size: 95%;
  margin-top: 0;
}
.wp-block-embed__wrapper {
  background: #606060;
  /*padding: 1%*/ ;
  margin: 2em 0 1em;
}
.wp-block-image {
  margin-bottom: 1em;
}
/*---- youtube埋め込み ----*/
.wp-block-embed__wrapper .youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.wp-block-embed__wrapper .youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}
/*---- ファイル（common.cssの打消し含む） ----*/
body #contents .wp-block-file a.wp-block-file__button {
  color: #fff !important;
  text-decoration: none !important;
  padding: 0.6em 1.2em;
}
/*---- table ----*/
.wp-block-table thead {
  border-bottom: none;
}
#contents table {
  border-collapse: collapse;
  width: 100%;
}
#contents table th, #contents table td {
  border: #B7B7B7 solid 1px;
  padding: 0.5em;
}
#contents table th {
  color: #fff !important;
  background: #4694D1;
  font-weight: normal;
  white-space: nowrap;
}
#contents table.th_wrap th {
  white-space: pre-wrap;
}
/*- 白いtable.simple -*/
#contents table.simple th, #contents table.simple td {
  border: none;
}
#contents table.simple th {
  color: #333 !important;
  background: #fff;
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  #contents table th {
    white-space: pre-wrap;
  }
}
/*---- Instagram Feed (Smash Balloon Social Photo Feed)----*/
#sb_instagram {
  overflow: hidden !important;
  max-width: 1024px !important;
  margin: 0 auto 3em !important;
  display: block !important;
}
#sb_instagram #sbi_load a {
  color: #fff !important;
}
/*------------- 
パスワード制限
*/
form.post-password-form {
  position: absolute;
  z-index: 10;
  background: #fff;
  padding: 10%;
  display: flex;
  align-items: center;
  height: 100vh;
  justify-content: center;
  flex-direction: column;
  width: 100%;
}
/*---- kakomi ----*/
.kakomi01 {
  border-radius: 2em;
  background: #fff;
  border: 3px solid #4694d1;
  padding: 1em 3em 2em;
}
.kakomi01.green {
  border-color: #5EA71B;
}
.kakomi01 .heading {
  font-weight: bold;
  font-size: 20px;
  text-align: left;
  color: #4694d1;
}
.kakomi01.green .heading {
  color: #5ea71b;
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  .kakomi01 {
    padding: 0.5em 1.5em 1em;
  }
}
/*------------- 
リード文
*/
body .leader {
  font-weight: 500;
  font-size: 20px;
  line-height: 1.8;
  text-align: center;
  color: #4694d1;
  margin-top: -2em !important;
}
/*------------- 
ETC
*/
body .sign {
  font-weight: 800;
  font-size: 20px !important;
}
/*--- img-txt ---*/
body .img-txt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
}
body .img-txt.reverse {
  flex-direction: row-reverse;
}
body .img-txt .txt {
  flex: 1;
}
body .img-txt.img_10 figure {
  width: 10%;
}
body .img-txt.img_15 figure {
  width: 15%;
}
body .img-txt.img_20 figure {
  width: 20%;
}
body .img-txt.img_30 figure {
  width: 30%;
}
body .img-txt.img_40 figure {
  width: 40%;
}
body .img-txt.img_45 figure {
  width: 45%;
}
body .img-txt.img_50 figure {
  width: 50%;
}
body .img-txt.img_60 figure {
  width: 60%;
}
/*--- float_box ---*/
body .float_box figure {
  float: right;
}
body .float_box::after {
  content: "";
  display: block;
  clear: both;
}
/*--- width ---*/
body .w_100 {
  width: 100%;
}
body .w_90 {
  width: 90%;
}
body .w_80 {
  width: 80%;
}
body .w_70 {
  width: 70%;
}
body .w_60 {
  width: 60%;
}
body .w_50 {
  width: 50%;
}
body .w_40 {
  width: 40%;
}
body .w_30 {
  width: 30%;
}
body .w_20 {
  width: 20%;
}
/*--- font-size ---*/
.size_40 {
  font-size: 40px !important;
  font-weight: 800;
}
.size_38 {
  font-size: 38px !important;
  font-weight: 600;
}
.size_36 {
  font-size: 36px !important;
  font-weight: 800;
}
.size_34 {
  font-size: 34px !important;
  font-weight: 600;
}
.size_32 {
  font-size: 32px !important;
  font-weight: 600;
}
.size_30 {
  font-size: 30px !important;
  font-weight: 600;
}
.size_28 {
  font-size: 28px !important;
}
.size_26 {
  font-size: 26px !important;
  font-weight: 600;
}
.size_24 {
  font-size: 24px !important;
}
.size_22 {
  font-size: 22px !important;
}
.size_20 {
  font-size: 20px !important;
}
.size_s {
  font-size: 70% !important;
}
/*------------- 
responsive
*/
@media screen and (max-width: 780px) {
  .size_40 {
    font-size: 30px !important;
    font-weight: 800;
  }
  .size_38 {
    font-size: 28px !important;
    font-weight: 600;
  }
  .size_36 {
    font-size: 27px !important;
    font-weight: 800;
  }
  .size_34 {
    font-size: 25px !important;
    font-weight: 600;
  }
  .size_32 {
    font-size: 24px !important;
    font-weight: 600;
  }
  .size_30 {
    font-size: 22px !important;
    font-weight: 600;
  }
  .size_28 {
    font-size: 21px !important;
  }
  .size_26 {
    font-size: 20px !important;
    font-weight: 600;
  }
  .size_24 {
    font-size: 18px !important;
  }
  .size_22 {
    font-size: 17px !important;
  }
  .size_20 {
    font-size: 16px !important;
  }
  .size_s {
    font-size: 70% !important;
  }
}
@media screen and (max-width: 520px) {
  .size_40 {
    font-size: 25px !important;
    font-weight: 800;
  }
  .size_38 {
    font-size: 24px !important;
    font-weight: 600;
  }
  .size_36 {
    font-size: 22px !important;
    font-weight: 800;
  }
  .size_34 {
    font-size: 22px !important;
    font-weight: 600;
  }
  .size_32 {
    font-size: 20px !important;
    font-weight: 600;
  }
  .size_30 {
    font-size: 20px !important;
    font-weight: 600;
  }
  .size_28 {
    font-size: 20px !important;
  }
  .size_26 {
    font-size: 18px !important;
    font-weight: 600;
  }
  .size_24 {
    font-size: 17px !important;
  }
  .size_22 {
    font-size: 17px !important;
  }
  .size_20 {
    font-size: 16px !important;
  }
  .size_s {
    font-size: 80% !important;
  }
}
/*------*/
.weight_bold {
  font-weight: bold !important;
}
/*--- center ---*/
img.aligncenter {
  margin-right: auto;
  margin-left: auto;
  display: block;
}
.alignleft {
  text-align: left;
}
/*--
/*--- margin, padding ---*/
body #contents .mb_0 {
  margin-bottom: 0 !important;
}
body #contents .mb_05 {
  margin-bottom: 0.5em !important;
}
body #contents .mb_1em {
  margin-bottom: 1em !important;
}
body #contents .mb_2em {
  margin-bottom: 2em !important;
}
body #contents .mb_3em {
  margin-bottom: 3em !important;
}
body #contents .mb_5em {
  margin-bottom: 5em !important;
}
body #contents .mb_6em {
  margin-bottom: 6em !important;
}
body #contents .mb_7em {
  margin-bottom: 7em !important;
}
body #contents .mb_8em {
  margin-bottom: 8em !important;
}
body #contents .mb_9em {
  margin-bottom: 9em !important;
}
body #contents .mb_10em {
  margin-bottom: 10em !important;
}
body #contents .mt_0 {
  margin-top: 0 !important;
}
body #contents .mt_1em {
  margin-top: 1em !important;
}
body #contents .mt_2em {
  margin-top: 2em !important;
}
body #contents .mt_3em {
  margin-top: 3em !important;
}
body #contents .mt_4em {
  margin-top: 4em !important;
}
body #contents .mt_5em {
  margin-top: 5em !important;
}
body #contents .pt_0 {
  padding-top: 0 !important;
}
body #contents.pt_0 {
  padding-top: 0 !important;
}
/*--- flex ---*/
.flex_c {
  display: flex;
  justify-content: center;
  align-items: center;
}
.flex_1 {
  display: flex !important;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1em;
}
.flex_1.item2 > * {
  width: 49% !important;
  width: calc(50% - 0.6em) !important; /*（teacher半端域で）*/
}
.flex_1.item3 > * {
  width: 32% !important;
}
.flex_1.item4 > * {
  width: 24% !important;
}
.flex_1.item5 > * {
  width: 19% !important;
}
/*--- etc ---*/
body .color_0 {
  color: #333 !important
}
body .sub {
  font-size: 80%;
}
body .indent {
    margin-left: 1em;
    display: block;
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  body .leader {
    text-align: left;
    margin-top: 0;
    padding: 4em 2em 1em;
  }
  body .img-txt {
    display: block;
  }
  body .img-txt figure {
    width: 100% !important;
    text-align: center;
  }
  .flex_1.item2 > *, .flex_1.item3 > *, .flex_1.item4 > *, .flex_1.item5 > * {
    width: 100% !important;
  }
}
/*------------- 
見出し
*/
body #contents h3 {
  font-weight: 600;
  margin-top: 1.3em;
  position: relative;
  margin-bottom: 2em;
  font-size: 48px;
  text-align: center;
  color: #4694d1;
  line-height: 1.4;
}
body #contents h3::before {
  background-color: #4694D1; /* 線の色 */
  bottom: -0.3em; /* 線の位置 */
  content: "";
  height: 4px; /* 線の高さ */
  left: 0; /* 線の中央寄せ */
  margin-inline: auto; /* 線の中央寄せ */
  position: absolute;
  right: 0; /* 線の中央寄せ */
  width: 3em; /* 線の長さ */
}
body #contents h3.toru::before {
  content: none !important;
}
body #contents h3.alignleft {
  text-align: left !important;
}
body #contents h4 {
  font-weight: bold;
  font-size: 30px;
  text-align: left;
  color: #4694d1;
}
body #contents h4::before {
  content: none;
}
/*------------- 
小表示
*/
@media screen and (max-width: 780px) {
  body #contents h4 {
    font-size: 20px;
  }
}
/**************************

下層INDEX
<body id="normal" class="index">
***/
body.index .entrance {
  display: flex;
  /*flex-direction: column;*/
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 1%;
}
body.index #contents .entrance h3 {
  color: #4694d1;
  margin-top: 0.3em !important;
  text-align: left;
  font-size: 30px;
  margin-bottom: .4em;
}
body.index #contents .entrance h3::before {
  content: none;
}
body.index .entrance .single {
  display: flex;
  align-items: center;
  width: 100%;
  border: #C3C3C3 solid 1px;
  padding: 2.2em;
  box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.12);
  margin-bottom: 20px;
}
body.index .entrance.item2 .single {
  flex-direction: column;
}
body.index .entrance .single img {
  width: 400px;
  margin-right: 40px;
}
body.index .entrance .single .txt {
  flex: 1;
}
body.index .entrance.item2 .single .txt {
  width: 100%;
}
body.index .entrance .btn {
  width: 100%;
}
body.index .entrance .btn a {
  width: 100%;
}
/*-色-*/
body.index #contents .entrance .single.judo h3 {
  color: #54C3F1;
}
body.index #contents .entrance .single.judo .btn a {
  border-color: #54C3F1;
  color: #54C3F1 !important;
}
body.index #contents .entrance .single.judo .btn a:hover {
  background: #54C3F1 !important;
  color: #fff !important;
}
body.index #contents .entrance .single.judo .btn a::before {
  background: #54C3F1;
}
body.index #contents .entrance .single.shinkyu h3 {
  color: #ef9bbf;
}
body.index #contents .entrance .single.shinkyu .btn a {
  border-color: #ef9bbf;
  color: #ef9bbf !important;
}
body.index #contents .entrance .single.shinkyu .btn a:hover {
  background: #ef9bbf !important;
  color: #fff !important;
}
body.index #contents .entrance .single.shinkyu .btn a::before {
  background: #ef9bbf;
}
body.index #contents .entrance .single.touyou h3 {
  color: #F0917C;
}
body.index #contents .entrance .single.touyou .btn a {
  border-color: #F0917C;
  color: #F0917C !important;
}
body.index #contents .entrance .single.touyou .btn a:hover {
  background: #F0917C !important;
  color: #fff !important;
}
body.index #contents .entrance .single.touyou .btn a::before {
  background: #F0917C;
}
/*------------- 
小表示
*/
@media screen and (max-width: 1100px) {
  body.index .entrance .single img {
    width: 40%;
  }
}
@media screen and (max-width: 900px) {
  body.index .entrance {
    flex-direction: row;
  }
  body.index .entrance .single {
    width: 49%;
    flex-direction: column;
    padding: 1em;
  }
  body.index .entrance .single img {
    width: 100%;
    margin-right: 0px;
  }
  body.index .entrance .single .txt {
    position: relative;
    padding-bottom: 5em;
  }
  body.index .entrance .single .txt .btn {
    position: absolute;
    bottom: 0;
  }
}
@media screen and (max-width: 520px) {
  body.index .entrance .single {
    width: 100%;
  }
  body.index .entrance .single .txt {
    padding-bottom: 0;
  }
  body.index .entrance .single .txt .btn {
    position: relative;
  }
}
/**************************

FLEX
.flex_box.items_4
***/
body .flex_box {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
body .flex_box.align_bottom {
  align-items: flex-end;
}
body .flex_box {
  gap: 1%;
}
body .flex_box figure {
  width: 24%;
  margin-bottom: 2em;
}
body .flex_box figure img {
  width: 100%;
}
body .flex_box.items_2 figure {
  width: 48%;
}
body .flex_box.items_3 figure {
  width: 32%;
}
body .flex_box.items_4 figure {
  width: 24%;
}
body .flex_box.items_5 figure {
  width: 19%;
}
body .flex_box figure figcaption {
  font-size: 14px;
}
body .flex_box figure figcaption strong {
  display: block;
  font-weight: 700;
}
@media screen and (max-width: 520px) {
  body .flex_box.items_3 figure {
    width: 100%; /*DAIGAKUの3ポイント*/
  }
}