@charset "utf-8";
/* CSS Document */

img{width: 100%;}
body{font-family:'Noto Sans JP';}
body p{font-size: 16px; line-height: 1.4em; font-weight: 300;}
a{transition: all .3s ease 0s;}
.wrapper .container {
	z-index: 1; position: relative;
    max-width: 1040px;
    margin: 0px auto;
    padding: 40px 0px;
	border-radius: 40px 40px 0 0;
}


/*--------------------------------------------------------------------

                         塾詳細ページ

---------------------------------------------------------------------*/

.juku-page {padding: 80px 0; position: relative;}
.juku-page:after{content: " "; position: absolute; background: url("../images/page/bg_img.png") no-repeat; height: 400px; width: 100%; left: 0; top: 0; background-size: cover; z-index: 0}

.juku-page article{padding: 0px 30px; }
.juku-page article p{margin: 0;line-height: 1.6em;}

.juku-page article table{
  width: 100%;
  margin: 0 auto;
  border-collapse: collapse;}
.juku-page article table tr:last-child{
  border-bottom: none;
}

@media screen and (max-width: 767px) {
	.juku-page{padding: 30px 0;}
	.juku-page article{padding: 0 10px;}
	
}

.page-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: solid 2px #b9b9b9;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.page-title h1{font-size: 32px; line-height: 1.6em;letter-spacing:2px;}

.page-title .btn{display: flex;}
.page-title .btn a{display: flex; width: 160px; height: 60px; align-items: center; justify-content: center;font-size: 20px;letter-spacing:2px;font-weight: 400; line-height: 1.8em;}
.page-title .btn a.experience_btn{background: #417ab1; color: #FFFFFF; margin-right: 10px;}
.page-title .btn a.request_btn{background: #db7b00; color: #FFFFFF;}

.page-title .btn a.experience_btn:hover,.page-title .btn a.request_btn:hover{
	opacity: 0.7;
}


@media screen and (max-width: 767px) {
	.page-title{flex-wrap: wrap;justify-content: center;}
	.page-title h1{font-size: 20px; margin-bottom: 10px;}
	.page-title .btn a{height: 40px; font-size: 16px;}
	
}

/*塾概要*/
.page-about{display: flex; margin-bottom: 30px;
}
.page-about .data{width: 49%;margin-right: 1%; }

.page-about .data table{}
.page-about .data table th,.page-about .data table td{padding: 5px; vertical-align:middle;}
.page-about .data table th{width: 20%;}
.page-about .data table th span{border: solid 2px; border-radius: 2px; width: 90px; display: block; padding:5px;color: #417ab1; font-size: 15px;letter-spacing:1px; font-weight: 500;}
.page-about .data table td{width: 80%; font-size: 14px;}


.page-about .img{width: 50%;}
@media screen and (max-width: 767px) {
	.page-about{flex-wrap: wrap;}
	.page-about .data table{margin-bottom: 10px;}
	.page-about .data table th span{width: 70px;}
	.page-about .data,.page-about .img{width: 100%; margin-right: 0;}
	
	
	
}

/*おすすめポイント*/
.page-point{
    position: relative;
    padding: 35px 25px 20px 25px;
    background: #f4f4f4;
    border-radius: 2px;
	 background-image:  linear-gradient(#ebebeb 1px, transparent 1px), linear-gradient(to right, #ebebeb 1px, #f4f4f4 1px);
  background-size: 15px 15px;

}
.page-point span {
    position: absolute;
    background: #417ab1;
	border-radius: 2px;
    padding: 5px 10px;
    color: #fff;
	font-size: 16px;
    font-weight: 500;
	letter-spacing: 1.5px;
    left: 20px;
    top: -10px;
}
.page-point ul{list-style: none;margin-bottom: 0px;}
.page-point ul li{position: relative;margin-bottom: 10px; font-weight: 600;padding-left: 20px;letter-spacing: 1px;}
.page-point ul li:last-child{margin-bottom: 0px;}
.page-point ul li::after {
  content: '';
    display: block;
    position: absolute;
    top: 5px;
    left: -3px;
    width: 12px;
    height: 8px;
    border-left: 3px solid #417ab1;
    border-bottom: 3px solid #417ab1;
    transform: rotate(-45deg);
}

@media screen and (max-width: 767px) {
	
	.page-point{
	padding: 15px 15px 20px;
	}
	.page-point span {
    position: initial;
    display: block;
    margin-bottom: 15px;
	padding: 10px;
	text-align: center;
	}
	.page-point ul li{margin-bottom: 15px;}
	
}


/*cta*/
.cta a{
	display: block;
    background: #db7b00;
    border-radius: 2px;
    padding: 30px 10px 25px;
    margin: 50px 0 20px;
    position: relative;
	cursor: pointer;
    transition: all .3s ease 0s;
}

.cta a:hover{
	box-shadow: 0 3px 6px 0 rgb(0 0 0 / 25%);
    transform: translateY(-0.3em);
	 background: #ff9001;
}

.cta p {
    text-align: center;
    font-size: 14px;
    margin: 0px;
    color: #fff;
    padding: 0px;
}

.cta p.cta-txt{
	position: absolute;
	top: 0;
}

.cta p.cta-txt {
	letter-spacing: 1px;
    position: absolute;
    display: inline-block;
    margin: 0;
    padding: 8px 60px 10px;
    color: #db7b00;
    background: #FFF;
    border: solid 3px #db7b00;
    box-sizing: border-box;
    text-align: center;
    top: -30px;
    border-radius: 100px;
	font-size: 14px;
	font-weight: 600;
	 left: 50%;
   transform: translateX(-50%);
}

.cta p.cta-txt span{font-size: 20px; font-weight: 600;}

.cta p.cta-txt:before {
   content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.cta p.cta-txt:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #db7b00;
  z-index: 1;
}

.cta p.main-txt {
	position: relative;
    text-align: center;
    font-size: 32px;
    font-weight: 600;
    color: #fff;
	margin: 20px 0 0;
}

.cta p.main-txt:after{
	content: "　";
	background: url("../images/page/cta-arrow.png")no-repeat;
	background-size: 100%;
	background-position: center;
	width: 85px;
	height: 85px;
	margin-left: 5px;
}

@media screen and (max-width: 767px) {
	
	.cta p.cta-txt {
    width: 90%;
    padding: 6px 10px 10px;
	}
	.cta p.main-txt{font-size: 28px; line-height: 1.2em; margin-bottom: 5px;}
	.cta p{font-size: 12px;}
	
}


/*アンカー*/
ul.anchor {
    display: flex;
    justify-content:center;
    list-style: none;
	margin: 30px 0;
	border-bottom: solid 2px #d6d6d6;
}


ul.anchor li {
    width: 22%;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    border-top: #d6d6d6 solid 2px;
    border-left: #d6d6d6 solid 2px;
    padding: 12px 10px;
    border-radius: 4px 4px 0 0;
    letter-spacing: 5px;
}
ul.anchor li:last-child{border-right: #d6d6d6 solid 2px;}
ul.anchor li a{color: #333333; position: relative;}

ul.anchor li a:before{
	margin-right: 5px;
	content: "　";
	background: url("../images/page/ico-01.png")no-repeat 100%;
	background-size: 100%;
	background-position: center;
	margin-left: 5px;
}
ul.anchor li:nth-child(2) a:before{
	margin-right: 5px;
	content: "　";
	background: url("../images/page/ico-02.png")no-repeat 100%;
	background-size: 100%;
	background-position: center;
	margin-left: 5px;
}
ul.anchor li:nth-child(3) a:before{
	margin-right: 5px;
	content: "　";
	background: url("../images/page/ico-03.png")no-repeat 100%;
	background-size: 100%;
	background-position: center;
	margin-left: 5px;
}
ul.anchor li:nth-child(4) a:before{
	margin-right: 5px;
	content: "　";
	background: url("../images/page/ico-04.png")no-repeat 100%;
	background-size: 100%;
	background-position: center;
	margin-left: 5px;
}

ul.anchor li a:hover{
	color: #417ab1;
}
ul.anchor li a:hover:before{
	background: url("../images/page/ico-01-color.png")no-repeat;
	background-size: 100%;
	background-position: center;}
ul.anchor li:nth-child(2) a:hover:before{
	background: url("../images/page/ico-02-color.png")no-repeat;
	background-size: 100%;
	background-position: center;}
ul.anchor li:nth-child(3) a:hover:before{
	background: url("../images/page/ico-03-color.png")no-repeat;
	background-size: 100%;
	background-position: center;}
ul.anchor li:nth-child(4) a:hover:before{
	background: url("../images/page/ico-04-color.png")no-repeat;
	background-size: 100%;
	background-position: center;}

@media screen and (max-width: 767px) {
	ul.anchor{flex-wrap: wrap;}
	ul.anchor li{width: 42%;}
	ul.anchor li:nth-child(2){border-right: #d6d6d6 solid 2px;}
	ul.anchor li a{font-size: 16px;letter-spacing: 0px;}
}

/*ページスタイル*/
.juku-page section{margin-bottom: 30px;}
.juku-page h2{background: #f4f4f4; padding: 15px 10px; text-align: center; border-bottom: solid 3px #417ab1; margin: 10px 0 20px; color: #417ab1; font-size: 26px; line-height: 1.4em;}

.juku-page h3{
	position: relative;
	font-size: 20px;
	font-weight: 600;
	padding-left: 40px;
	line-height: 1.4em;
	margin-bottom: 10px;
}

.juku-page h3:after{
	position:absolute;
	content: '';
	width: 30px;
	height: 3px;
	left: 0;
	background-color: #417ab1;
	top: 50%;
   transform: translateY(-50%);
}

.flex-con{display: flex;margin-bottom: 20px;}
.flex-con.col2 {justify-content: space-between;}
.flex-con.col2 > div{width: 48.5%;}

.flex-con.col3 {justify-content: space-between;}
.flex-con.col3 > div{width: 32%;}

.flex-con .img{;margin-right: 10px;}
.flex-con .img img{width: 320px}

@media screen and (max-width: 767px) {
	.juku-page h2{font-size: 20px;}
	.juku-page h3{font-size: 18px;}
	.flex-con{flex-wrap: wrap;}
	.flex-con.col2 > div,.flex-con.col3 > div{width: 100%; margin-bottom: 10px;}
	.flex-con .img{margin-right: 0px; margin-bottom: 10px;}
	.flex-con .img img{width: 100%!important;}
	
}


/*概要*/
#about table {
    border-collapse: separate;  /* 表の線と線の間を空ける */
	border-spacing: 5px; 
}

#about table th,#about table td{padding:15px 10px;text-align: left; border-radius: 2px;}
#about table th{
	font-size: 16px;
	width: 250px;
	background: #417ab1;
	color: #FFFFFF;
    border: solid 1px;
	vertical-align:middle/* 枠線指定 */
}

#about table td {
    border: solid 1px #e5e5e5;
	vertical-align:middle;
	background: #f5f5f5;/* 枠線指定 */
}

#about table td ul{list-style: none; display: flex; flex-wrap: wrap;}
#about table td ul li{border: solid 1px; border-radius: 2px; padding:1px 7px; margin-right: 3px; margin-bottom: 3px;  font-size: 14px; color: #888888; }
 

#about table td ul.type li.check{background: #417ab1;border-radius: 2px;border: solid 1px #417ab1;color: #FFFFFF;}
#about table td ul.format li.check{background: #e67f2b;border-radius: 2px;border: solid 1px #e67f2b;color: #FFFFFF;}
#about table td ul.course li.check{background: #63aa47;border-radius: 2px;border: solid 1px #63aa47;color: #FFFFFF;}
#about table td ul.features li.check{background: #2b5c8b;border-radius: 2px;border: solid 1px #2b5c8b;color: #FFFFFF;}

@media screen and (max-width: 767px) {
	#about table tr{display: flex; flex-wrap: wrap;}
	#about table th,#about table td{width: 100%;padding: 10px; font-weight: 400;}
	#about table td{margin-bottom: 10px;}
	
}

#price ul{border: solid 2px #417ab1; border-style: dashed; border-radius: 4px; padding: 20px;list-style: none; margin-bottom: 20px;}
#price ul li{position: relative; margin-bottom: 10px;padding-left: 20px;font-weight: 500; color: #333333;}
#price ul li:before{content: "●";margin-right: 5px;position: absolute; left: 0;}
#price ul li:last-child{margin-bottom: 0;}

#price .title{background: #d9e6ee; color: #5e8cba; font-weight: 600; text-align: center; padding: 10px; border-radius: 2px 2px 0 0; margin-bottom: 10px;}
#price h4{ background:linear-gradient(transparent 60%, #fff43d 60%); display: inline-block; font-size: 18px;margin-bottom: 10px;}
#price table{width: 100%;}
#price table{border-collapse:  collapse;}
#price table th{background: #d9e6ee;}
#price table th,#price table td {border: solid 1px #cbcbcb; padding: 10px 15px; }
#price p{margin-bottom: 20px;}
@media screen and (max-width: 767px) {
	
}


#performance .title{background: #d9e6ee; color: #5e8cba; font-weight: 600; text-align: center; padding: 10px; border-radius: 2px 2px 0 0; margin-bottom: 5px;}
#performance .con{background: #f4f4f4;padding: 20px;  margin-bottom: 20px;}
#performance .con p{font-weight: 500; line-height: 1.6em;}

@media screen and (max-width: 767px) {
	
}


.faq p.faq_q,
.faq p.faq_a {
  position: relative;
}

.faq p.faq_q::before,
.faq p.faq_a::before {
  fon-weight: bold;
  position: absolute;
  left: 15px;
  top: 10px;
}

/* 質問文 */
.faq p.faq_q {
    position: relative;
    padding: 10px 10px 10px 40px;
	margin-bottom: 5px;
    background: #417ab1;
	font-weight: 600;
	color: #FFFFFF;
    border-radius: 4px 4px 0 0;
}

/* 回答文 */
.faq p.faq_a {
  margin-bottom: 20px;
	font-weight: 600;
  padding: 10px 10px 10px 40px;
  background: #f4f4f4;
	
}

.faq p.faq_q::before {
  content: 'Q.';
	font-weight: 600;
  color: #FFFFFF; /* 「Q」の文字色 */
}

.faq p.faq_a::before {
  content: 'A.';
  font-weight: 600;
  color: #cd2323; /* 「A」の文字色 */
}


/*他、塾紹介*/

.other .title{background: #666666; color: #FFFFFF; font-weight: 600; text-align: center; padding: 10px; border-radius: 4px 4px 0 0; margin-bottom: 5px;}
.other .con{border:solid #cbcbcb 1px;padding: 20px;  margin-bottom: 10px; border-radius: 2px;}
.other .con a{font-weight: 500; line-height: 1.6em;color: #417ab1;}
.other .con a:hover{text-decoration: underline;}


/*閲覧履歴*/
.juku-page section.history{margin-bottom: 80px;}
.history_item {border: solid 1px #666666; border-radius: 4px 4px 0 0; position: relative; padding-bottom: 20px;}
.history_item .title{background: #666666; text-align: center; padding:15px 10px; color: #FFFFFF; border-radius: 4px 4px 0 0; margin-bottom: 10px; font-weight: 600;}
.history_item table{width: 90%!important; margin: 10px;}
.history_item table tr{background: #f4f4f4; margin-bottom: 2px;display: flex;}
.history_item table th,.history_item table td{padding: 10px 5px;}
.history_item table th{width: 35%; font-weight: 600; font-size: 16px;}
.history_item table td{width: 75%;}

.history_item a {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    background: #000;
    padding: 9px 20px;
    display: inline-block;
    bottom: -25px;
	background: #db7b00;
	border-radius: 100px;
	color: #FFFFFF;
	font-weight: 600;
}
.history_item a:after{
	content: "　";
    background: url(../images/page/cta-arrow.png)no-repeat;
    background-size: 100%;
    background-position: center;
    width: 65px;
    height: 65px;
    margin-left: 3px;
	
}

.history_item a:hover{
	background: #ff9001;
}


@media screen and (max-width: 767px) {
	.history_item {margin-bottom: 30px!important;}
}




/*--------------------------------------------------------------------

                         一覧ページstyle

---------------------------------------------------------------------*/
.list-page {padding:20px 0px 50px; position: relative;}
.list-page:after{content: " "; position: absolute; background:#417ab1; height: 200px; width: 100%; left: 0; top: 0; background-size: cover; z-index: 0;}

.list-page h1{text-align: center; margin: 30px 0;font-size: 32px; color: #FFFFFF; position: relative; z-index: 2;    line-height: 1.6em;}

.list-page hr {
    background: #e6e6e6;
    width: 30%;
    height: 3px;
    margin: 30px auto;
    border-radius: 4px;}




.list-page article{padding: 0px 30px; }
.list-page article p{margin: 0;line-height: 1.6em;}

.list-page article table{
  width: 100%;
  margin: 0 auto;
  border-collapse: collapse;}
.list-page article table tr:last-child{
  border-bottom: none;
}

@media screen and (max-width: 767px) {
	.list-page{padding: 30px 0;}
	.list-page article{padding: 0 10px;}
	
}

.list-item {
    border: solid 1px #f2f2f2;
    padding: 20px;
    border-radius: 6px;
    box-shadow: 1px 2px 6px 0px rgb(212 212 212 / 32%);
}
.list-about {
    display: flex;
	justify-content: space-between;
    align-items: flex-start;
	margin-bottom: 20px;
}

.list-about .img{width: 29%;}
.list-about .img img{width: 100%;}
.list-about .list-data{width: 70%;}
.list-title{display: flex; justify-content: space-between;    border-bottom: solid 2px #b9b9b9;
    padding-bottom: 10px;margin-bottom: 10px; align-items: center;}

.list-title h2 {
    font-size: 20px;
    line-height: 1.6em;
    letter-spacing: 2px;}

.list-title .btn a{
    background: #db7b00;
    color: #FFFFFF;
	display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    letter-spacing: 1px;
    font-weight: 500;
    line-height: 1.8em;
	padding: 10px 15px;
}

.list-about .list-data table th,.list-about .list-data table td{padding: 5px; vertical-align:middle;}
.list-about .list-data table th{width: 13%;}
.list-about .list-data table th span {
    border: solid 2px;
    border-radius: 2px;
    width: 70px;
    display: block;
    padding: 0;
    color: #417ab1;
    font-size: 14px;
    letter-spacing: 1px;
    font-weight: 500;
}
.list-about .list-data table td{width: 80%; font-size: 14px;padding: 3px;}


@media screen and (max-width: 767px) {
	.list-title{flex-wrap: wrap; justify-content: center; font-size: 18px;}
	.list-title h2{margin-bottom: 10px;}
	.list-title .btn a{border-radius: 100px; font-size: 14px;}
	.list-about{flex-wrap: wrap; justify-content: center;}
	.list-about .img,.list-about .list-data{width: 100%;}
	
}

/*おすすめポイント*/
.list-point{
   position: relative;
    padding: 30px 25px 15px 25px;
    background: #f4f4f4;
    border-radius: 2px;
    background-size: 15px 15px;

}
.list-point span {
    position: absolute;
    background: #417ab1;
	border-radius: 2px;
    padding: 5px 10px;
    color: #fff;
	font-size: 14px;
    font-weight: 500;
	letter-spacing: 1.5px;
    left: 20px;
    top: -10px;
}
.list-point ul{list-style: none;margin-bottom: 0px;}
.list-point ul li{position: relative;
    margin-bottom: 3px;
    font-weight: 600;
    padding-left: 15px;
    letter-spacing: 1px;
    font-size: 14px;}
.list-point ul li:last-child{margin-bottom: 0px;}
.list-point ul li::after {
      content: '';
    display: block;
    position: absolute;
    top: 6px;
    left: -3px;
    width: 9px;
    height: 5px;
    border-left: 3px solid #417ab1;
    border-bottom: 3px solid #417ab1;
    transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
	
	.list-point{
	padding: 15px 15px 20px;
	}
	.list-point span {
    position: initial;
    display: block;
    margin-bottom: 15px;
	padding: 10px;
	text-align: center;
	}
	.list-point ul li{margin-bottom: 15px;}
	}

.price .title{background: #d9e6ee; color: #5e8cba; font-weight: 600; text-align: center; padding: 10px; border-radius: 2px 2px 0 0; margin-bottom: 10px;}
.price h4{ background:linear-gradient(transparent 60%, #fff43d 60%); display: inline-block; font-size: 18px;margin-bottom: 10px;}
.price table{width: 100%;}
.price table{border-collapse:  collapse;}
.price table th,.price table td {border: solid 1px #cbcbcb; padding: 5px; }
.price table th{background: #f3f3f3; font-size: 14px;}
.price table td{font-size: 12px;}
.price p{margin-bottom: 20px;}