@charset 'utf-8';

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

1400

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

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

	#home .news-box .illust-01 {
		top: -23rem;
		left: 6rem;
		transform: scale( .75 );
	}

	#home .news-box .illust-02 {
		top: -21.4rem;
		right: 6rem;
		transform: scale( .75 );
	}

	#wrapper > header .head-wrap {
		padding: 2.3rem 32rem 0;
		font-size: 1.3rem;
		height: 25rem;
	}

	#wrapper > header .desc br {
		display: block;
	}

	#wrapper > header .tel-wrap {
		width: 260px;
	}

	#wrapper > header .tel .num {
		font-size: 2.6rem;
	}

	#wrapper > header .btn a {
		background-size: 24px;
		padding: 15px 15px 15px 40px;
	}

}


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

1200

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

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

	#wrapper > header .head-wrap {
		padding: 2.3rem 35rem 0 2rem;
		justify-content: flex-start;
	}

	#wrapper > header h1 img {
		width: 48rem;
	}

	#menu-g-nav {
		padding: 0 1rem;
	}

	footer .footer-nav li:nth-child( 8 ) a {
		width: auto;
	}

	footer .footer-nav {
		margin-bottom: 0;
	}

	#home .news {
		width: calc( ( 100% - 6rem ) / 3 );
		margin: 0 3rem 4rem 0;
	}

	#home .about-box .east-west .box {
		width: calc( ( 100% - 3rem ) / 2 );
	}

	#home .about-box .east-west .box:nth-child( odd ) {
		margin-right: 3rem;
	}

	#home .about-box .vt .box {
		width: calc( ( 100% - 3rem ) / 2 );
	}

	#home .about-box .vt .box:nth-child( odd ) {
		margin-right: 3rem;
	}

	.btn-set .flex li {
		width: calc( ( 100% - 3rem ) / 2 );
	}

	.btn-set .flex li:nth-child( even ) {
		margin-left: 3rem;
	}

	.contact-bnr h2 {
		width: 100%;
		margin-bottom: 20px;
	}

	.contact-bnr h2 br {
		display: none;
	}

	.contact-bnr .tel,
	.contact-bnr .btn {
		width: 50%;
	}

	#facilities .facility-list > div {
		width: calc( ( 100% - 20px ) / 2 );
		padding: 0 20px;
	}

	#facilities .facility-list > div:nth-child(odd) {
		margin-right: 20px;
	}

	#flow .step-list .step:first-child .num::after,
	#flow .step-list .step:nth-child(2) .num::after {
		height: 220px;
	}

	#flow .price-box .price > p {
		width: calc( ( 100% - 20px ) / 2 );
	}

	footer .address .txt br.pc-none {
		display: inline;
	}

}


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

1000

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

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

	body {
		font-size: 1.6rem;
	}

	#wrapper > header {
		padding-bottom: 86px;
	}

	#wrapper > header .head-wrap {
		height: initial;
		padding: 2.2rem 1rem .8rem;
		font-size: 1.2rem;
	}

	#wrapper > header .head-wrap .ttl {
		text-align: left;
	}

	#wrapper > header {
		background-size: auto 8px;
		padding: 0;
	}

	#wrapper > header .head-wrap .ttl {
		text-align: center;
		font-size: 1.1rem;
	}

	#wrapper > header h1 {
		margin-bottom: 0;
	}

	#wrapper > header h1 img {
		width: 220px;
	}

	#g-nav {
		display: none;
		z-index: 99999;
	}

	header.active #g-nav {
		display: block;
	}

	#wrapper > header .tel-wrap {
		display: none;
	}

	#g-nav .flex {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		padding-bottom: 71px;
		flex-direction: column;
		align-items: center;
		border: none;
		background: #fff;
	}

	#g-nav li {
		width: 100% !important;
		border: none;
		border-bottom: dashed 1px #898989;
	}

	#g-nav li:first-child {
		 border-top: dashed 1px #898989;
		 border-bottom: dashed 1px #898989;
	}

	#g-nav a {
		font-size: 1.8rem;
		padding: 15px;
		color: #EF8100;
	}

	#g-nav a::after {
		display: none;
	}

	#sp-btn {
		display: block;
		z-index: 999999;
	}

	.footer-btn a {
		font-size: 1.4rem;
	}

	footer {
		background-size: auto .8rem;
	}

	footer .address .school .flex {
		flex-direction: column;
		justify-content: center;
	}

	footer .address .logo {
		width: 100%;
		margin-bottom: 10px;
	}

	footer .address .txt {
		width: 100%;
	}

	footer .address .txt br.pc-none {
		display: none;
	}

	.heading-01 span {
		font-size: 2.2rem;
	}

	.heading-02 {
		font-size: 2rem;
	}

	.heading-03 {
		font-size: 2rem;
	}

	.btn-01 a {
		font-size: 2rem;
	}

	#home .news-box h2 {
		font-size: 2.6rem;
	}

	#home .news-box .illust-01 {
		left: 2rem;
	}

	#home .news-box .illust-02 {
		right: 2rem;
	}

	#home .about-box .east-west .ttl .pc-none {
		display: block;
	}

	#home .about-box .vt {
		flex-direction: column-reverse;
	}

	#home .about-box .vt .box {
		width: 100%;
	}

	#home .about-box .vt .box.img {
		text-align: center;
	}

	#home .about-box .vt .box:nth-child( odd ) {
		margin: 0;
	}

	#home .about-box .pro {
		flex-direction: column-reverse;
	}

	#home .about-box .pro .img {
		width: 100%;
		text-align: center;
		line-height: .5;
		margin-bottom: 3rem;
	}

	#home .about-box .pro .read {
		width: 100%;
	}

	#home .about-box strong {
		font-size: 2rem;
	}

	.page #contents {
		padding-top: 0;
	}

	.price-btn h2 {
		font-size: 2rem;
		width: calc( ( 100% - 100px ) / 2 );
	}

	.price-btn .read {
		width: calc( ( 100% - 100px ) / 2 );
	}

	.price-btn .btn {
		width: 100px;
		padding: 0 20px;
	}

	.contact-bnr h2 {
		font-size: 2rem;
	}

	.contact-bnr .tel a {
		font-size: 3rem;
	}

	#facilities .facility-list > div {
		padding: 0 10px;
	}

	#facilities .facility-list figure {
		text-align: center;
		line-height: .5;
		margin-bottom: 0;
	}

	#flow .step-list .contact-bnr .tel a {
		font-size: 2.4rem;
	}

	.contact-bnr .tel a::before {
		width: 40px;
		height: 40px;
	}

	#flow .step-list .contact-bnr .btn a {
		font-size: 1.4rem;
	}

	.contact-bnr .btn a::before {
		width: 36px;
		height: 24px;
	}

	#flow .price-box .price > p {
		font-size: 3rem;
	}

	#main-contents {
		width: 100%;
	}

	#sidebar {
		width: 100%;
		padding: 0;
		margin-top: 40px;
	}

	#sidebar .side-wrap {
		position: static;
	}

	#school .info-box {
		font-size: 1.6rem;
	}

	#school .info-list dt {
		width: 10rem;
	}

	#school .info-list dd {
		width: calc( 100% - 10rem );
	}

	#sidebar li,
	#privacy-policy .pp-list dt {
		padding-left: 2.2rem;
	}

	#sidebar li::before,
	#privacy-policy .pp-list dt::before {
		width: 1.4rem;
		height: 1.4rem;
		top: .9rem;
	}

}


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

750

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

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

	html[lang=ja] #wpadminbar {
		display: none;
	}

	body {
		font-size: 1.4rem;
	}

	.wrap {
		padding: 0 2rem;
	}

	.heading-01 {
		line-height: 1.5;
		padding: 0 4rem;
		background-size: 5rem 100%;
		margin-bottom: 20px;
	}

	.heading-01 span {
		padding: .8rem 0;
		font-size: 1.7rem;
	}

	.heading-02 {
		font-size: 1.8rem;
		margin: 20px 0;
		line-height: 1.5;
		padding: 1rem 1rem .8rem;
		background-size: 1.4rem;
	}

	.heading-02 span {
		font-size: 1.4rem;
		display: block;
	}

	.heading-03 {
		font-size: 1.7rem;
		padding-left: 1rem;
		margin-bottom: 1.5rem;
		border-width: 4px !important;
	}

	.heading-04 {
		font-size: 1.6rem;
		padding-left: 2rem;
		margin-bottom: 1.5rem;
	}

	.heading-04::before {
		width: 1.4rem;
		height: 1.4rem;
		top: .5rem;
	}

	.btn-01 {
		margin-top: 1.5rem;
	}

	.btn-01 a {
		font-size: 1.6rem;
		padding: .8rem;
	}

	.btn-02 a {
		font-size: 1.5rem;
		padding: 1.4rem 1rem 1.8rem
	}

	.btn-02 a::after {
		top: 4px;
		right: 4px;
		bottom: 4px;
		left: 4px;
	}

	.btn-02.bg-color a {
		font-size: 1.6rem;
	}

	.btn-set {
		padding: 3rem 0;
	}

	.btn-set .flex li {
		width: calc( ( 100% - 1rem ) / 2 );
	}

	.btn-set .flex li:nth-child( even ) {
		margin-left: 1rem;
	}

	.bg {
		padding: 3rem 0;
		margin-bottom: 3rem;
	}

	.pc-none {
		display: block;
	}

	.sp-none {
		display: none;
	}

	#wrapper > header .tel-wrap {
		-js-display: flex;
		display: -ms-flex;
		display: -webkit-flex;
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		width: auto;
		padding: 0;
		background: #fff;
		z-index: 999999;
	}

	#wrapper > header .tel-wrap .txt {
		display:  none;
	}

	#wrapper > header .tel-wrap > * {
		width: calc( ( 100% - 10px ) / 2 );
	}

	#wrapper > header .tel-wrap .txt-wrap {
		padding: 1rem;
	}

	#wrapper > header .tel a {
		display: inline-block;
		margin: 0;
		background-size: 2.2rem;
		padding-left: 3rem;
	}

	#wrapper > header .tel .num {
		font-size: 1.8rem;
	}

	#wrapper > header .tel .note {
		font-size: 1rem;
	}

	#wrapper > header .btn a {
		padding: 5px 10px 5px 40px;
		margin: 0;
		font-size: 1.2rem;
	}

	#contents {
		padding: 0;
	}

	#home .main-img img {
		width: 100%;
		object-fit: cover;
	}

	#home .news-box {
		padding-bottom: 0;
		margin-bottom: 2rem;
	}

	#home .news-box h2 {
		font-size: 1.6rem;
		margin-bottom: 20px;
	}

	#home .news-box h2 span {
		padding: 10px 0 10px 30px;
		background-size: 2.4rem;
	}

	#home .news-box .illust-01 {
		top: -12.2rem;
		left: 0;
		transform: scale( .4 ) translateX( -80% );
	}

	#home .news-box .illust-02 {
		top: -11.2rem;
		right: 0;
		transform: scale( .4 ) translateX( 80% );
	}

	#home .news-list {
		flex-direction: column;
		margin: 0 2rem 1rem;
		position: relative;
		z-index: 99;
	}

	#home .news h3 {
		font-size: 1.7rem;
		margin: 2px 0 4px;
	}

	#home .news .desc {
		font-size: 1.3rem;
	}

	#home .news {
		width: 100%;
		margin: 0 0 2rem;
	}

	#home .news figure {
		max-width: 100%;
		margin: 0 auto;
	}

	#home .news figure img {
		width: 100%;
	}

	#home .news .txt {
		padding: 1.5rem;
		font-size: 1.2rem;
	}

	#home .about-box strong {
		font-size: 1.5rem;
		text-align: left;
		margin-bottom: 20px;
	}

	#home .about-box .cont {
		margin-bottom: 30px;
	}

	#home .about-box .east-west {
		flex-direction: column;
	}

	#home .about-box .east-west .box {
		width: 100%;
	}

	#home .about-box .east-west .box:nth-child( odd ) {
		margin-right: 0;
	}

	#home .about-box .east-west .box + .box {
		margin-top: 3rem;
	}

	#home .about-box .east-west .ttl {
		font-size: 1.4rem;
		padding: 1rem 1.5rem 1.5rem;
		margin-bottom: 1.5rem;
	}

	#home .about-box .east-west .ttl h3 {
		font-size: 2.4rem;
	}

	#home .about-box .east-west .ttl .pc-none {
		display: none;
	}

	#home .about-box .pro {
		font-size: 1.4rem;
	}

	#home .about-box .pro .img {
		margin-bottom: 1.5rem;
	}

	#home .about-box .pro .img img {
		width: 18rem;
	}

	#home .about-box .pro strong {
		text-align: center;
		margin-bottom: 1rem;
	}

	.footer-btn {
		padding: 20px 0 10px;
	}

	.footer-btn li {
		width: calc( ( 100% - 10px ) / 2 );
		margin-bottom: 10px;
	}

	#school .info-box .img {
		line-height: .5;
		margin-bottom: 0;
	}

	#school .info-box .address-wrap {
		margin-bottom: 2rem;
	}

	.address-wrap .sec {
		padding: 1.5em 0;
	}

	.address-wrap .address {
		flex-direction: column;
	}

	.address-wrap .address .logo {
		width: 100%;
		padding: 0;
		margin-bottom: 1.5rem;
		text-align: center;
	}

	.address-wrap .address .txt {
		width: 100%;
		font-size: 1.3rem;
	}

	.address-box .group {
		flex-direction: column;
	}

	.address-box .group .address + .address {
		margin-top: 2rem;
	}

	.address-box .group .txt-wrap {
		width: 100%;
		padding: 0;
		text-align: center;
	}

	.address-box .group .btn {
		width: 100%;
		margin-top: 2rem;
	}

	footer {
		padding: 20px 0;
	}

	footer .footer-nav {
		margin-bottom: 1rem;
	}

	footer .footer-nav li {
		width: 50%;
		text-align: left;
	}

	footer .footer-nav li:last-child {
		width: 100%;
	}

	footer .footer-nav a {
		margin-right: 1rem;
		padding: .5rem 0 .5rem 2.2rem;
		background-size: 1.5rem;
		font-size: 1.3rem;
	}

	footer .address .flex {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

	footer .address .school {
		width: 100%;
		margin-bottom: 30px;
	}

	.copyright {
		padding: 20px 20px 90px;
		font-size: 1.1rem;
	}

	#page-top {
		display: none !important;
	}

	#curriculum .info figure {
		width: 100%;
		padding: 0 !important;
		text-align: center;
		margin-bottom: 15px;

	}

	#curriculum .info figure img {
		width: 20rem;
		line-height: .5;
		margin-bottom: 1.5rem;
	}

	#curriculum .info .txt {
		width: 100%;
	}

	#curriculum h5 {
		margin: 20px 0 10px;
	}

	#curriculum .course-01 {
		margin-bottom: 40px;
	}

	#curriculum .course .flow {
		margin: 0;
	}

	#curriculum .course .flow > div {
		width: 100%;
		padding: 0 !important;
		border: none !important;
		margin-top: 20px;
	}

	#curriculum .course .flow > div h5 {
		margin: 0 0 10px;
	}

	#curriculum h5 span {
		font-size: 1.6rem;
	}

	.price-pdf {
		margin: 20px 0;
	}

	.price-btn {
		padding: 10px 20px 15px;
		border-radius: 1rem;
	}

	.price-btn h2 {
		width: 100%;
		font-size: 1.6rem;
		margin-bottom: 5px;
	}

	.price-btn .read {
		width: calc( 100% - 100px );
		border: none;
		padding: 0;
		font-size: 1.3rem;
	}

	.contact-bnr {
		padding: 15px 20px;
		margin-bottom: 3rem;
		border-radius: 1rem;
	}

	.contact-bnr h2 {
		font-size: 1.6rem !important;
		margin-bottom: 0;
	}

	.contact-bnr h2 br {
		display: block;
	}

	.contact-bnr .tel,
	.contact-bnr .btn {
		width: 100%;
		margin-top: 10px;
	}

	.contact-bnr .tel a {
		font-size: 2.8rem;
	}

	.contact-bnr .tel a::before {
		width: 30px;
		height: 30px;
	}

	.contact-bnr .btn a::before {
		width: 28px;
		height: 18px;
	}

	#facilities .facility-list > div {
		width: 100%;
		padding: 0;
		margin-right: 0 !important;
	}

	#facilities .facility-list .ttl {
		font-size: 1.7rem;
		padding-left: 1rem;
		border-width: 4px !important;
		margin-bottom: 15px;
	}

	#facilities .facility-list > div {
		margin-bottom: 20px;
	}

	#flow .step-list .step {
		position: relative;
		padding-bottom: 45px;
		margin-bottom: 5px;
		background: url( ../../assets/img/common/arrow.png ) center bottom / 18px no-repeat;
	}

	#flow .step-list .step:last-child {
		padding-bottom: 0;
		margin-bottom: 15px;
		background: none;
	}

	#flow .step-list .num {
		position: absolute;
		left: 0;
		top: 0;
	}

	#flow .step-list .num > p {
		width: 60px;
		height: 60px;
		padding: 10px;
	}

	#flow .step-list .num > p span {
		font-size: 2.2rem;
	}

	#flow .step-list .txt {
		width: 100%;
	}

	#flow .step-list .txt h4 {
		font-size: 2rem;
		line-height: 1.4;
		padding: 16px 0 16px 75px;
		margin: 0 0 15px;
	}

	#flow .step-list .txt > p {
		min-height: auto;
	}

	#flow .step-list .num::after {
		display: none;
	}

	#flow .step-list .contact-bnr {
		margin: 15px 0 0;
	}

	#flow .price-box {
		margin-bottom: 30px;
	}

	#flow .price-box .price {
		margin: 0 0 15px;
	}

	#flow .price-box .price > p {
		width: 100%;
		margin-top: 15px;
		font-size: 2.4rem;
		border-radius: 15px;
	}

	#flow .price-box .note {
		font-size: 1.2rem;
	}

	#main-contents .photo {
		width: 100%;
	}

	#main-contents .photo a {
		width: 280px;
		max-width: 100%;
		margin: 0 auto 10px;
	}

	.post-list .post {
		margin-bottom: 30px;
	}

	.post-list .post > figure + .txt {
		width: 100%;
		padding: 0;
	}

	#main-contents .post-list .post h2 {
		margin: 2px 0 4px;
	}

	#main-contents .post-list .post h2 a {
		font-size: 1.8rem;
		line-height: 1.5;
	}

	.post-list .more {
		text-align: center;
		margin-top: 15px;
	}

	#sidebar {
		margin-top: 30px;
	}

	#sidebar h2 {
		font-size: 1.8rem;
	}

	#sidebar ul {
		margin-bottom: 20px;
	}

	#sidebar li {
		padding-left: 2rem;
	}

	#main-contents .post-header {
		padding-bottom: 15px;
		margin-bottom: 20px;
	}

	#main-contents .post-header h1 {
		font-size: 2rem;
		margin-top: 10px;
	}

	.post-contents p {
		margin-bottom: 15px;
	}

	.post-contents ul,
	.post-contents ol {
		margin-bottom: 20px;
	}

	.post-contents h2,
	.post-contents h3,
	.post-contents h4 {
		font-size: 1.8rem;
		margin-bottom: 10px;
	}

	.post-contents h3 {
		padding-left: 1rem;
		border-width: 4px !important;
	}

	#main-contents .cat-list li a {
		font-size: 1.2rem;
	}

	#main-contents time {
		font-size: 1.2rem;
	}

	.post-nav {
		margin-top: 20px;
		padding-top: 20px;
	}

	.post-nav .prev,
	.post-nav .next {
		width: 25%;
	}

	.post-nav .back {
		width: 50%;
	}

	#school .info-box {
		font-size: 1.3rem;
		margin-bottom: 1.5rem;
	}

	#school .info {
		flex-direction: column-reverse;
		margin-bottom: 20px;
	}

	#school .info > figure {
		width: 100%;
		margin-bottom: 15px;
	}

	#school .info > .txt {
		width: 100%;
		padding: 0;
	}

	#school .info .logo {
		text-align: center;
		margin-bottom: 15px;
	}

	#school .info .logo img {
		width: 240px;
	}

	#school .info-list dt {
		width: 100%;
		font-size: 1.5rem;
		text-align-last: left;
	}

	#school .info-list dd {
		width: 100%;
		padding: 0;
		margin-bottom: 15px;
	}

	#school .info-02 {
		margin-top: 40px;
	}

	#faq .faq-list {
		margin: 20px 0;
	}

	#faq .faq-list dt {
		font-size: 1.6rem;
		line-height: 1.5;
		padding: .6rem 0 .6rem 4.5rem;
		margin-bottom: 1.5rem;
	}

	#faq .faq-list dd {
		padding-left: 4.5rem;
		margin-bottom: 20px;
	}

	#faq .faq-list dt::before,
	#faq .faq-list dd::before {
		width: 3rem;
		height: 3rem;
		line-height: 3rem;
		font-size: 1.6rem;
	}

	#faq .faq-list dd::before {
		top: -3px;
	}

	#faq .taiken-box {
		margin: 40px 0;
	}

	#faq .taiken-box .flex figure {
		width: 100%;
		text-align: center;
		margin-bottom: 10px;
	}

	#faq .taiken-box .flex figure img {
		width: 20rem;
		max-width: 100%;
	}

	#faq .taiken-box .flex .txt {
		width: 100%;
		padding: 0;
	}

	#trial .info-box .read {
		margin-bottom: 40px;
	}

	#contact .info {
		margin-bottom: 20px;
	}

	#contact .form-box th {
		width: 100%;
		padding: 20px 0 10px 20px;
	}

	#contact .form-box td {
		width: 100%;
		padding: 0 0 20px;
	}

	#contact .form-box .name.flex > p {
		width: 100%;
		margin-top: 10px;
	}

	#contact .form-box .name.flex > p:first-child {
		margin-top: 0;
	}

	#contact .form-box td .name.flex input {
		width: calc( 100% - 5rem );
	}

	input[type=email],
	input[type=tel], input.l {
		width: 100%;
	}

	#contact .form-box td #zip {
		margin: 0 0 10px 15px;
	}

	#contact .form-box td .note {
		font-size: 1.3rem;
	}

	#contact .form-box .submit {
		margin: 20px 0 0;
	}

	#contact .form-box .submit .submit-btn {
		display: block;
		width: 100%;
		padding: 15px;
		font-size: 2rem;
	}

	#contact .form-box td.pp .check,
	#contact .form-box td.pp .btn {
		margin-bottom: 10px;
	}

	#contact div.wpcf7-response-output {
		margin: 0;
	}

	#privacy-policy .pp-list dd {
		font-size: 1.3rem;
		margin-bottom: 20px;
	}

	#sidebar li,
	#privacy-policy .pp-list dt {
		padding-left: 2rem;
	}

	#sidebar li::before,
	#privacy-policy .pp-list dt::before {
		width: 1.2rem;
		height: 1.2rem;
		top: .8rem;
	}

}
