/* ページネーション整形 */
.wp-pagenavi {
    clear: both;
    text-align: center;
	margin: 30px 0;
}

.wp-pagenavi span.current {
    border-color: #0d5083;
}

.wp-pagenavi a:hover{
	border-color: #0d5083;
	background: #eaf7ff;
	transition: 0.3s;
}

.wp-pagenavi a,
.wp-pagenavi span {
	display: inline-block;
    font-size: 16px;
	color: #0d5083;
    border: 1px solid #52a7dd;
	padding: 8px 10px;
    margin: 2px;
	line-height: 16px;
}

.wp-pagenavi span.current {
    font-weight: bold;
	color: #fff;
    background: #52a7dd;
}

/* モーダルウィンドウの実装 */
a.js-modal-open.tel_none{
	display: block;
	color: #999;
    background-color: #eee;
}

.modal{
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
	left: 0;
    width: 100%;
	z-index: 10000;
}

.modal__bg{
    background: rgba(0,0,0,0.5);
    height: 100vh;
    position: absolute;
    width: 100%;
}

.modal__content{
    background: #fff;
	text-align: center;
    left: 50%;
    padding: 40px;
    position: absolute;
    top: 40%;
    transform: translate(-50%,-50%);
	max-width: 840px;
    width: 60%;
	max-height: 60%;
	border: 2px solid #2f7ac6;
}

@media screen and (max-width: 640px){
	.modal__content{
		width: 95%;
		padding: 20px;
		top: 40%;
	}
}

.modal__content p{
	font-size: 16px;
	text-align: center;
}

@media screen and (max-width: 640px){
	.modal__content p{
		font-size: 14px;
		margin: 0;
	}
}

.modal__content a.js-modal-close{
	display: inline-block;
	margin: 1rem auto 0;
	text-decoration: none;
	padding: 5px 30px;
	color: #fff;
	background: #0693e3;
	border: 1px solid;
	border-radius: 5px;
	transition: 0.3s;
}

.modal__content a.js-modal-close:hover{
	color: #0693e3;
	background: #fff;
	border: 1px solid;
    transition: 0.3s;
}

/***** マップ検索用 *****/
.modal__content2{
    text-align: center;
    left: 50%;
    padding: 0;
    position: absolute;
    top: 40%;
    background: linear-gradient(45deg, #8ed1fc, #eaf7ff, #eaf7ff, #8ed1fc);
    transform: translate(-50%,-50%);
    max-width: 840px;
    width: 95%;
    min-height: 500px;
    border: 1px solid #9fb7cf;
    border-radius: 10px;
	box-shadow: 0 0 4px #fff, 0 0 6px #fff, 0 0 8px #fff, 0 0 10px #fff, 0 0 12px #fff, 0 0 14px #fff, 0 0 16px #fff, 0 0 18px #fff, 0 0 20px #fff;
	overflow: hidden;
}

@media screen and (max-width: 640px){
	.modal__content2{
		width: 95%;
		padding: 20px;
		top: 40%;
	}
}

.modal__content2 a.js-modal-close{
	display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    margin: 0 auto 10px;
    text-decoration: none;
    padding: 5px 30px;
    color: #fff;
    background: #0693e3;
    border-left: 1px solid #0693e3;
    border-bottom: 1px solid #0693e3;
    border-radius: 0 0 0 10px;
    transition: 0.3s;
    z-index: 1000;
}

.modal__content2 a.js-modal-close:hover{
	color: #0693e3;
	background: #fff;
    transition: 0.3s;
	border-left: 1px solid #9fb7cf;
    border-bottom: 1px solid #9fb7cf;
}

/***** モバイル検索用 *****/
header a.js-modal-open3.maplink{
	width: 50px;
    height: 39px;
    position: absolute;
    top: 0;
    right: 50px;
    cursor: pointer;
    text-align: center;
    transition: 0.3s;
    border-right: 1px solid #ccc;
    border-left: 1px solid #ccc;
	background: url(/img/sp_search3.svg);
    background-size: 40%;
    background-repeat: no-repeat;
    background-position: top 3px center;
}

@media screen and (min-width: 641px){
	header a.js-modal-open3.maplink{
		display: none;
	}
}

header a.js-modal-open3.maplink span {
    display: block;
    position: absolute;
    width: 100%;
    bottom: 3px;
    font-size: 9px;
    line-height: 9px;
    color: #0d5083;
}

.modal__content3{
    text-align: center;
    left: 50%;
    padding: 0;
    position: absolute;
    top: 20%;
    background: linear-gradient(45deg, #8ed1fc, #eaf7ff, #eaf7ff, #8ed1fc);
    transform: translate(-50%,-50%);
    width: 95%;
    padding: 10px;
    border: 1px solid #9fb7cf;
    border-radius: 5px;
	box-shadow: 0 0 2px #fff, 0 0 3px #fff, 0 0 4px #fff, 0 0 5px #fff;
    overflow: hidden;
}

.modal__content3 a.js-modal-close{
	display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    margin: 0 auto 10px;
    text-decoration: none;
	padding: 5px 16px;
    color: #fff;
    background: #0693e3;
    border-left: 1px solid #0693e3;
    border-bottom: 1px solid #0693e3;
    border-radius: 0 0 0 5px;
    transition: 0.3s;
    z-index: 1000;
}

.modal__content3 label {
    display: inline-block;
    font-size: 16px;
    color: #1f76e2;
	margin: 5px 0 20px;
    border-bottom: 1px solid #1f76e2;
}

.modal__content3 input[type="text"] {
    -webkit-appearance: none;
    display: inline-block;
    margin-right: 0;
    margin-bottom: 10px;
    padding: 10px;
    width: calc(100% - 86px);
    height: 40px;
    font-size: 16px;
    box-sizing: border-box;
    border-radius: 5px;
    border: 1px solid #ccc;
}

.modal__content3 input[type="submit"] {
    -webkit-appearance: none;
    display: inline-block;
    padding: 0 10px;
    color: #fff;
    width: 80px;
    height: 40px;
    font-size: 100%;
    vertical-align: top;
    border: none;
    border-radius: 5px;
    background: #1f76e2;
}

.modal__content3 p {
    font-size: 12px;
    color: #0d5083;
    margin: 5px 0;
}

.modal__content3 p span {
	font-weight: 600;
}

/* お気に入りボタン */
.favorite_button {
    display: block;
    width: 50%;
    text-align: center;
    position: relative;
    margin: 10px 0 0;
}

@media screen and (max-width: 900px){
	.favorite_button {
		float: left;
	}
}

.favorite_button.wide {
    display: block;
    width: 100%;
    text-align: center;
    position: relative;
    margin: 10px 0 0;
}

button.favorite_button_in {
    display: inline-block;
	width: 100%;
	height: 44px;
    padding: 12px 28px 12px 20px;
    box-shadow: 0 2px 4px -2px rgb(33 37 56 / 25%);
    cursor: pointer;
	border-radius: 10px;
    border-color: rgb(80,80,80,0.1);
    font-size: 16px;
    transition: 0.2s ease-in-out;
    background: #32ab7f;
    font-weight: 200;
}

@media screen and (max-width: 640px){
	button.favorite_button_in {
		font-size: 14px;
		padding: 12px 10px 12px 2px;
	}
}

button.favorite_button_in p {
	font-size: 16px;
    display: inline-block;
	font-weight: 600;
	margin: 0;
	line-height: 16px;
}

@media screen and (max-width: 640px){
	button.favorite_button_in p {
		font-size: 14px;
		line-height: 14px;
	}
}

button.favorite_button_in:hover {
    opacity: 0.8;
}

button.favorite_button_in i {
    color: #fff;
    font-size: 16px;
    margin-right: 8px;
    opacity: 0.8;
}

@media screen and (max-width: 640px){
	button.favorite_button_in i {
		font-size: 14px;
	}
}

.is-choosen .favorite_button_in {
    background: #999;
}

.is-choosen .favorite_button_in i {
    opacity: 1;
    color: #FFFF00;
}

.is-choosen .favorite_button_in p {
    font-size: 0;
    color: #FFFF00;
    font-weight: 600;
	line-height: 0;
}

.is-choosen .favorite_button_in p:before {
	font-size: 16px;
	content: "｢気になる｣追加済";
}

@media screen and (max-width: 640px){
	.is-choosen .favorite_button_in p:before {
		font-size: 14px;
	}
}

.school_list .favorite_button{
	float: none;
	width: auto;
	position: absolute;
    top: 0;
    right: 10px;
}

@media screen and (max-width: 640px){
	.school_list .favorite_button{
		right: 5px;
	}
}

.school_list button.favorite_button_in{
	padding: 5px;
    height: auto;
    background: none;
    border-radius: 3px;
    box-shadow: none;
}

.is-choosen .school_list .favorite_button_in p{
	color: #990000;
	font-weight: normal;
}

.is-choosen .school_list .favorite_button_in p:before {
	font-size: 16px;
	content: "削除";
}

@media screen and (max-width: 640px){
	.is-choosen .school_list .favorite_button_in p:before {
		font-size: 14px;
	}
}

.p-not_fav_items {
    padding: 20px 0;
}

header a.favorite{
	width: 50px;
    height: 39px;
    position: absolute;
    top: 0;
    right: 100px;
    cursor: pointer;
	text-align: center;
    transition: 0.3s;
    border-left: 1px solid #ccc;
    background: url(/img/sp_favorite.svg);
    background-size: 40%;
    background-repeat: no-repeat;
    background-position: top 3px center;
}

@media screen and (min-width: 641px){
	header a.favorite{
		display: none;
	}
}

header a.favorite span {
    display: block;
    position: absolute;
    width: 100%;
    bottom: 3px;
    font-size: 9px;
    line-height: 9px;
    color: #0d5083;
}

button#delete1 {
    display: block;
    font-size: 14px;
	color: #fff;
    background: #cd3b5e;
    margin: 0 0 20px auto;
    padding: 10px;
	border: 1px solid #cd3b5e;
    border-radius: 5px;
	transition: 0.3s;
}

@media screen and (max-width: 640px){
	button#delete1 {
		font-size: 12px;
		padding: 5px 10px;
	}
}

button#delete1:hover {
	color: #cd3b5e;
	background: #fff;
	transition: 0.3s;
}

/* アコーディオン */
.accordion_area {}
.accordion_area .accordion_one .ac_header {
  	background-color: #ffffff;
  	padding: 10px 30px 10px 20px;
  	position: relative;
  	z-index: +1;
  	cursor: pointer;
  	transition: .2s;
}

.accordion_area .accordion_one .ac_header.open {
    background: #2f7ac6;
    color: #fff;
}

.accordion_area .accordion_one{
	border: 1px solid #ccc;
	border-radius: 5px;
    overflow: hidden;
}

.accordion_area .accordion_one .ac_header:not(.open):hover {
  	background-color: #f1f8ff;
}

.accordion_area .accordion_one:nth-child(odd) .ac_header:not(.open):hover {
  	background-color: #f1f8ff;
}

.accordion_area .accordion_one .ac_header .i_box {
  	position: absolute;
  	top: 50%;
  	right: 2rem;
  	width: 20px;
  	height: 20px;
  	margin-top: -10px;
}

.accordion_area .accordion_one .ac_header .i_box:before, .accordion_area .accordion_one .ac_header .i_box:after {
  	position: absolute;
  	content: "";
  	margin: auto;
  	box-sizing: border-box;
  	vertical-align: middle;
}

.accordion_area .accordion_one .ac_header .i_box:before {
  	border-top: 2px solid #014897;
  	width: 16px;
  	height: 0;
  	top: 0;
  	bottom: 0;
  	right: 0;
}

.accordion_area .accordion_one .ac_header.open .i_box:before {
	border-top: 2px solid #fff;
}

.accordion_area .accordion_one .ac_header .i_box:after {
  	border-left: 2px solid #014897;
  	width: 0;
  	height: 16px;
  	top: 0;
  	bottom: 0;
  	right: 7px;
  	transition: .3s;
}

.accordion_area .accordion_one .ac_header.open .i_box:after {
	border-left: 2px solid #fff;
}

.accordion_area .accordion_one .ac_header.open .i_box:after {
  	height: 0;
}

.accordion_area .accordion_one .ac_inner {
  	display: none;
  	padding: 10px 30px 10px 20px;
  	box-sizing: border-box;
  	background: #eaf7ff;
	border-top: solid 1px #ccc;
}

.gutter>*:not(:last-child) {
    margin-bottom: 10px;
}

@media screen and (max-width: 640px) {
  .gutter>*:not(:last-child) {
    margin-bottom: 5px;
  }
	
  .accordion_area .accordion_one .ac_header {
    padding: 10px 30px 10px 10px;
  }
  .accordion_area .accordion_one .ac_header .i_box {
    right: 0.8rem;
    width: 14px;
    height: 14px;
    margin-top: -7px;
  }
  .accordion_area .accordion_one .ac_header .i_box:before {
    width: 14px;
  }
  .accordion_area .accordion_one .ac_header .i_box:after {
    height: 14px;
    right: 6px;
  }
  .accordion_area .accordion_one .ac_inner {
    padding: 10px;
  }
}

/*　FAQ */

.p-faq__headinner {
  	display: block;
  	padding-left: 35px;
  	position: relative;
  	line-height: 1.5;
}

.p-faq__headinner::before {
  	position: absolute;
  	left: 0;
  	content: "Q．";
  	color: #09357f;
  	font-size: 20px;
    line-height: 20px;
  	font-weight: bold;
}

.accordion_area .accordion_one .ac_header.open .p-faq__headinner::before{
	color: #fff;
}

.p-faq__headinner p.p-faq__q-txt {
  	font-size: 16px;
    line-height: 20px;
    margin: 0;
}
@media screen and (max-width: 640px) {
  .p-faq__headinner {
	  padding-left: 25px;
  }
  .p-faq__headinner::before {
	  font-size: 14px;
  }
  .p-faq__headinner p.p-faq__q-txt {
	  font-size: 14px;
  }
}

.p-faq__bodyinner {
	display: block;
  	padding-left: 35px;
  	position: relative;
  	line-height: 1.5;
}

.p-faq__bodyinner::before {
  	position: absolute;
  	left: 0;
  	content: "A．";
  	color: #de0000;
  	font-size: 20px;
	line-height: 20px;
  	font-weight: bold;
}

.p-faq__bodyinner p.p-faq__a-txt {
  	font-size: 14px;
	line-height: 20px;
	margin: 0;
}

@media screen and (max-width: 640px) {
  .p-faq__bodyinner {
	  padding-left: 25px;
  }
  .p-faq__bodyinner::before {
	  font-size: 14px;
  }
  .p-faq__bodyinner p.p-faq__a-txt {
	  font-size: 12px;
  }
}

/* ラジオボタン変更 */
input[type="radio"],
input[type="checkbox"]{
	display: none;
}

.mwform-checkbox-field.horizontal-item,
.mwform-radio-field.horizontal-item{
  display: block;
	
}

.mwform-checkbox-field label,
.mwform-radio-field label{
	line-height: 2;
	width: 100%;
    display: flex;
	position: relative;
	align-items: center;
	cursor: pointer;
}

.mwform-checkbox-field label span,
.mwform-radio-field label span{
	line-height: 2;
}

.radio-box,
.check-box {
	font-size: 16px;
}

@media screen and (max-width: 640px) {
	.radio-box,
	.check-box {
		font-size: 14px;
	}
}

@media screen and (min-width: 641px) {
	.shomei .radio-box {
		display: flex;
		flex-wrap: wrap;
	}
	
	.shomei .radio-box span.horizontal-item {
		width: 50%;
	}
}

.radio-box label::before,
.radio-box input + span::after,
.check-box label::before,
.check-box input + span::after{
	content: "";
    display: block;
}

@media screen and (max-width: 640px) {
	.radio-box label {
		margin: 0;
	}
}

.radio-box label::before,
.check-box label::before {
	width: 20px;
    height: 20px;
    border: 1px solid #999;
	margin-right: 6px;
	background: #fff;
}

.radio-box label::before {
    border-radius: 50%;
}

.check-box label::before {
    border-radius: 3px;
}

.radio-box input + span::after {
    position: absolute;
    top: 9px;
    left: 3px;
    width: 14px;
    height: 14px;
    background: #0c4691;
    border-radius: 50%;
	transition: 0.3s;
	opacity: 0;
}

@media screen and (max-width: 640px) {
	.radio-box input + span::after {
		top: 7px;
	}
}

.check-box input + span::after {
    font-family: "Font Awesome 5 Free";
    font-weight: bold;
    content: '\f00c';
    position: absolute;
    top: 8px;
    left: 3px;
    line-height: 1;
    color: #3259A3;
	transition: 0.3s;
	opacity: 0;
}

@media screen and (max-width: 640px) {
	.check-box input + span::after {
		top: 7px;
	}
}

.radio-box input:checked + span::after,
.check-box input:checked + span::after{
    opacity: 1;
    transition: 0.3s;
}

.plan_select {
    margin: 1rem 0;
    padding: 1rem;
    background: #eaf7ff;
    border: 1px solid #2f7ac6;
    border-radius: 10px;
}

.plan_select p.head {
	font-weight: bold;
	text-align: center;
	margin-bottom: 10px;
    padding-bottom: 10px;
	border-bottom: 1px solid #2f7ac6;
}

@media screen and (max-width: 640px) {
	.plan_select p.head {
		font-size: 14px;
		padding-bottom: 5px;
	}
}