@charset "UTF-8";
html,body {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px;
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #333;
  background: none;
}


/* メイン */
#wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 160px 0 0;
}
@media screen and (max-width: 480px) {
  #wrapper {
    padding: 130px 0 0;
    }
}

section {
  padding: 40px 0;
}

/* 見出し */
.midashi,
.midashi_shiryo,
.midashi_taiken {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 28px;
	line-height: 1.2em;
  margin: 0 auto;
  padding: 10px 0;
  text-align: center;
  width: 50vw;
  position: relative;
  z-index: 9990;
}
.midashi {
  border: 2px solid #009245;
  background-color: #fff;
  color: #009245;
}
.shiryo {
  border: 2px solid #006EBE;
  background-color: #006EBE;
  color: #fff;
}
.taiken {
  border: 2px solid #F04848;
  background-color: #F04848;
  color: #fff;
}
.line,
.line_shiryo,
.line_taiken {
  position: relative;
  bottom: 30px;
  z-index: 1;
}
.line { border: 1px solid #009245; }
.line_shiryo{ border: 1px solid #006EBE; }
.line_taiken{ border: 1px solid #F04848; }
@media screen and (max-width: 480px) {
.midashi,
.midashi_shiryo,
.midashi_taiken{
  width: 90vw;
  }
}
.line2g{
  border: 1px solid #009245;
  position: relative;
  bottom: 45px;
  z-index: 1;
}

/* 文字 */
h1{
	font-weight: 500;
	font-style: normal;
	font-size: 35px;
	line-height: 1.2em;
  font-feature-settings: 'palt' on;
	margin: 20px auto 10px;
}
h2{
  font-size: 30px;
	line-height: 1.2em;
  font-feature-settings: 'palt' on;
  color: #009245;
  margin: 0 0 40px;
}
h3{
  font-size: 28px;
  line-height: 1.2em;
  color: #fff;
  font-feature-settings: 'palt' on;
  padding: 10px 0;
  margin: 0 0 30px 0;
  background-color: #009245;
}
h4{
  font-size: 22px;
	font-weight: 500;
  color: #009245;
  font-feature-settings: 'palt' on;
  line-height: 1.5em;
  margin: 0 auto;
}
h5{
  font-size: 25px;
	font-weight: 800;
  color: #333;
  font-feature-settings: 'palt' on;
  line-height: 1.3em;
  margin: 0 0 10px 0;
}
h6{
  font-size: 45px;
	font-weight: 800;
  color: #333;
  font-feature-settings: 'palt' on;
  line-height: 0.6em;
  margin: 30px 0 10px;
}
p{
  font-size: 20px;
	line-height: 1.7em;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
}

.ruby { font-size: 45%; }
.ruby80 { font-size: 80%; }
.bold { font-weight: 700; }
.text-right{ text-align: right; }
.text-center{ text-align: center; }
.text-red { color: #F04848;
}


.text_underline {
  text-underline-offset: -10px;
  text-decoration: underline 20px #B2DEC7;
  text-decoration-skip-ink: none;
}
.text_underline_red {
  font-weight: 700;
  font-size: 120%;
  text-underline-offset: -2px;
  text-decoration: underline 10px #FF9394;
  text-decoration-skip-ink: none;
}
hr {
	border: solid #006EBE;
  width: 100vw;
  border-width: 2px 0 0;
  clear: both;
  padding: 0;
}

a {
  color: #009245;
  text-decoration: underline;
}
a:hover {
	color: #006EBE;
  transition : all .7s;
}

/* 選択範囲の色変え */
::selection {
	color: #FFF;
	background-color: #009245;
}

/*PC・スマホ画像切り替え*/
.pc_area { display:inline!important; }
.sp_area { display:none!important; }
@media screen and (max-width: 480px) {
  .pc_area { display:none!important; }
  .sp_area { display:inline!important; }
}

/* 改行の有無 */
@media screen and (min-width: 821px){   
  .pc { display:block; }
  .tb { display:none; }
  .sp { display:none; }
}
@media screen and (max-width: 820px){   
  .pc { display:none; }
  .tb { display:block; }
  .sp { display:none; }
}
@media screen and (max-width: 480px){   
  .pc { display:none; }
  .tb { display:none; }
  .sp { display:block; }
}

/* 箇条書き */
.demical {
  list-style-type: decimal;
  font-size: 110%;
}

.textbox {
  width: 80vw;
	margin: 50px auto 0;
	text-align: justify;
}
@media screen and (max-width: 480px){   
.textbox {
  width: 90vw;
  }
}



/* 画像回り込み */
figure {
	float: right;
	margin: 0 0 30px 30px;
	width: 25%;
}
figure img {
	max-width: 100%;
}
@media screen and (max-width: 768px){   
figure {
	margin: 0 0 20px 20px;
	width: 40%;
  }
}

.img-responsive {
  width: 100vw;
  max-width: 100%;
  height: auto;
  margin: 0 auto 30px;
  padding: auto;
}

/* テーブル */
table {
  padding: 10px 0;
  font-size: 20px;
  line-height: 1.5em;
  width: 100%;
  table-layout: fixed;
  margin: 0 auto;
}
@media screen and (max-width: 480px) {
table {
  text-align: left;
  /* [disabled]max-width: 690px; */  
  margin: 20px auto;
  width: 100%;
  table-layout: fixed;
  margin-left: auto;
  margin-right: auto;
  }
  .last td:last-child {
  width: 100%;
  }
}

/* 新着情報 */  
.tbl-news {
  width: auto;
  max-width: 80vw;
  margin: 0 auto;
  padding: 30px 0 0;
  text-align: justify;
}
.tbl-news th {
  min-width: 20%;
  vertical-align: top;
  padding: 5px 0;
}
.tbl-news td {
  width: 80%;
  padding: 5px 0;
}
@media screen and (max-width: 480px) {
.tbl-news {
  width: 95vw;
  max-width: none;
}
.tbl-news tr {
  display: block;
  width: 100%;
  }
.tbl-news td {
  display: block;
  width: 90%;
  padding: 0 20px;
  }
.tbl-news td:first-child {
  width: 100%;
}
.tbl-news td:before {
  content: attr(data-label);
  float: left;
  white-space: pre;
  width: 50px;
  }
}


/* クラスメニューflex */
.flex-container_class {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: center;
  margin: 0 auto;
  gap: 0;
  padding: 50px 0 0;
  width: 100vw;
}
.flex-container-item_class {
  display: flex;
  flex-direction: column;
  width: 33.333%;
  text-align: center;
  margin: 0 auto;
}
.flex-container-item_class img{
  width: 80%;
  margin: 0 auto;
}
.flex-container-item_class:nth-child(1) {
  background-color: #FDD000; /* 背景色指定 */
  color: #333;               /* 文字色 */
}
.flex-container-item_class:nth-child(2) {
  background-color: #006EBE; /* 背景色指定 */
  color:  #fff;               /* 文字色 */
}
.flex-container-item_class:nth-child(3) {
  background-color: #009245; /* 背景色指定 */
  color:  #fff;               /* 文字色 */
}

@media screen and (max-width: 480px) {
.flex-container_class {
  display: block;
  margin: 0 auto 30px;
  }
.flex-container-item_class {
  width: 100%;
  padding: 0 20px;
  margin: 0 auto;
  text-align: center;
  }
}

/* 料金flex */
.flex-container_element {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: center;
  margin: 0 auto;
  gap: 0;
  padding: 20px 0;
  width: 100%;
}
.flex-container_item_element {
  display: flex;
  flex-direction: column;
  width: 33.333%;
  text-align: center;
  margin: 0 auto;
}
.flex-container_item_element_50 {
  display: flex;
  flex-direction: column;
  width: 50%;
  text-align: center;
  margin: 0 auto;
}
.flex-container_item_element,
.flex-container_item_element_50 p{
  font-size: 17px;
  line-height: 1.5em;
  margin: 0;
}
.flex-container_item_element,
.flex-container_item_element_50 {
  padding: 25px 0;
  color: #333;
}
.flex-container_item_element:nth-child(4n+1),
.flex-container_item_element_50:nth-child(4n+1) {
  background-color: #CECECE;
}
.flex-container_item_element:nth-child(4n+2),
.flex-container_item_element_50:nth-child(4n+2) {
  background-color: #F0F0F0;
}
.flex-container_item_element:nth-child(4n+3),
.flex-container_item_element_50:nth-child(4n+3) {
  background-color: #E5E5E5;
}
.flex-container_item_element:nth-child(4n),
.flex-container_item_element_50:nth-child(4n) {
  background-color: #D9D9D9;
}

@media screen and (max-width: 480px) {
.flex-container_item_element,
.flex-container_item_element_50 {
  display: block;
  margin: 0 auto 30px;
  }
.flex-container_item_element,
.flex-container_item_element_50 {
  width: 100%;
  max-width: 100%;
  height: 150px;
  margin: 0 auto;
  text-align: center;
  }
}

/* クラスメニューボタン */
.class_btn{
  width: 70%;
  padding: 10px;
  margin: 10px auto 40px;
  background: #fff;
  color: #333;
  border-radius: 15px;
  margin-top: auto;
}

/* クラスメイン写真 */
.class_main_ph {
  width: 80vw;
	margin: 0 auto;
  padding: 50px 0 0;
}
@media screen and (max-width: 480px){   
.class_main_ph {
  width: 100vw;
  }
}
/* クラス本文 */
.textbox_class{
  width: 72vw;
	margin: 0 auto;
  padding: 20px 0;
	text-align: justify;
}
@media screen and (max-width: 480px){   
.textbox_class{
  width: 90vw;
  }
}
/* クラス概要 */  
.element {
  border: 1px solid #333;
	margin: 0 auto 20px;
  padding: 20px;
	text-align: center;
}
.element_price {
  font-weight: 500;
  font-style: normal;
  font-size: 25px;
	line-height: 1.2em;
  border: 1px solid #333;
	margin: 0 auto 20px;
  padding: 10px;
	text-align: center;
}
.element hr {
	border:1px solid #000;
  width: 60%;
  border-width: 2px 0 0;
  clear: both;
  padding: 5px 0;
}
@media screen and (max-width: 480px){   
  .element{
    padding: 15px;
  }
}
.tbl-detail {
  width: auto;
  margin: 0 auto;
  padding: 0 0 30px 0;
  font-size: 110%;
  text-align: justify;
}
.tbl-detail th {
  min-width: 15%;
  vertical-align: top;
  padding: 5px 0;
}
.tbl-detail td {
  width: 85%;
  padding: 5px 0;
}
@media screen and (max-width: 480px) {
.tbl-detail {
  width: 100%;
  max-width: none;
}
.tbl-detail tr {
  display: block;
  width: 100%;
  }
.tbl-detail td {
  display: block;
  width: 100%;
  padding: 0;
  }
.tbl-detail td:first-child {
  width: 100%;
}
.tbl-detail td:before {
  content: attr(data-label);
  float: left;
  white-space: pre;
  width: 50px;
  }
}

/*トグル*/
.hidden_box {
  width: 100%;
  margin: 0 auto;
  padding: 0 0 20px 0;
  font-size: 18px;
  text-align: center;
  line-height: 1.2;
  text-decoration: none;
}
/*ボタン装飾*/
.hidden_box label {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  width: 100%;
  height: 70px;
  position: relative;
  box-sizing: border-box;
  padding: 0;
  transition-duration: 0.5s;
  border-top: 2px solid #333;
  font-weight: 600;
}
.class_1 label {
  color: #333;
  background-color: #FDD000;
}
.class_2 label {
  color: #fff;
  background-color: #006EBE;
}
.class_3 label {
  color: #fff;
  background-color: #009245;
}
.hidden_box label:before {
  content: '';
  width: 13px;
  height: 13px;
  border: 0;
  transform: rotate(135deg);
  transition-duration: 0.5s;
  position: absolute;
  top: 45%;
  right: 25px;
  margin-top: -7px;
}
.class_1 label:before {
  border-top: 2px solid #333;
  border-right: 2px solid #333;
}
.class_2 label:before,
.class_3 label:before {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
/*ボタンホバー時*/
.hidden_box label:hover {
  color: #333;
}
.class_1 label:hover { background-color: #FEF1B2; }
.class_2 label:hover { background-color: #B2D3EB; }
.class_3 label:hover { background-color: #B2DEC7; }

.hidden_box hover:before {
  border-top: 2px solid #333;
  border-right: 2px solid #333;
}
/*チェックは見えなくする*/
.hidden_box input {
  display: none;
}
/*中身を非表示にしておく*/
.hidden_show {
  height: 0;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  transition: 0.9s;
}
.hidden_show h5,
.hidden_show p {
  padding: 10px 0 0;
  text-align: justify;
}/*クリックで中身表示*/
.hidden_box input:checked ~ .hidden_show {
  width: 70vw;
  padding: 0;
  margin: 20px auto 0;
  height: auto;
  opacity: 1;
}
@media screen and (max-width: 480px) {
.hidden_box {
  max-width: 100%;
  margin: 0 auto;
  }
.hidden_box label {
	max-width: 100%;
  }
.hidden_box input:checked ~ .hidden_show {
  width: 90vw;
  }
}



/* 合格実績flex */
.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: center;
  margin: 0 auto 0;
  gap: 35px;
  padding: 50px 20px 0;
}
.flex-container-item {
  width: 30%;
  border: 2px solid #009245;
  text-align: center;
  padding: 0;
}
.flex-container-item img{
  width: 70%;
}
@media screen and (max-width: 820px) {
.flex-container {
  gap: 15px;
  padding: 30px 20px 0;
}
  .flex-container-item {
  width: 47%;
  border: 2px solid #009245;
  margin: 30px auto;
  text-align: center;
  }
}
@media screen and (max-width: 480px) {
.flex-container {
  display: block;
  }
.flex-container-item {
  width: 90%;
  border: 2px solid #009245;
  margin: 30px auto;
  text-align: center;
  }
}
/* 合格実績本文 */
.intext{
  border-top: 2px solid #009245;
  margin: 0 auto;
  padding: 20px;
}
.intext p{
  margin: 0;
}


/* 要素全体リンク */
.linkbox {
  position: relative;
  padding: 0;
  margin: 0 auto;
}
.linkbox a {
  text-decoration: none;
  color: inherit;
}

/* 箇条書き */
.textbox_class ul {
  list-style-type: none;
  padding: 0;
}

.textbox_class ul,
.textbox_class li{
  margin: 0;
}
.textbox_class li {
   text-indent: -3em;
   padding-left: 3em;
}

.banner {
  padding: 20px 0 0 0;
  margin: 0 auto;
  width: 350px;  
}
@media screen and (max-width: 820px) {
.banner {
  width: 70vw;
}
}
