@charset "UTF-8";

/* !foundation */
/* --------------------------- */
html,body {
	font-family:'ヒラギノ角ゴ ProN','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
	-webkit-font-variant-ligatures:none;
	font-variant-ligatures:none;
}
body {
	color: #202020;
	background: #fff;
	max-width: 100%;
	overflow-x: hidden;
	position: relative;
	text-align: center;
}
* {
	box-sizing: border-box;
}
a,
a img {
	color: #202020;
	transition: all 0.4s ease;
}
a img {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
a:visited {
	color: #424242;
}
a:hover {
	text-decoration: none;	
}
a:hover img {
	opacity: 0.6;
}
a.noborder {
	text-decoration: none;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
hr {
	border: 0;
	height: 1px;
	background-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,0) 100%);
	margin: 8vh auto;
	clear: both;
}
.btn,
.btn:visited {
	font-size: 1.25em;
	min-width: 18em;
	display: inline-block;
	text-align: center;
	text-decoration: none;
	padding: 1em 1em;
	color: #000;
	background: #DEE4DF;
}
.btn:hover {
	background: #264E29;
	color: #fff;
}

/* material
--------------------------- */
.clearFloat {
	clear: both;
}
.alignleft {
	float: left;
	margin: 0.375em 1.75em 1.75em 0;
}
.alignright {
	float: right;
	margin: 0.375em 0 1.75em 1.75em;
}
.aligncenter {
	clear: both;
	display: block;
	margin: 0.375em auto;
	text-align: center!important;
}
.sp {
	display: none;
}
.flexCont {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
ul[class],ol[class] {
	list-style: none;
	margin: 0 auto;
	padding: 0;
}
.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}
.tate {
	-webkit-font-feature-settings: 'palt' 0;
	font-feature-settings: 'palt' 0;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
/* !font */
/* --------------------------- */
/* .wf-udshingoconde50-b {font-family:UDShinGoCOfizPr6N-Bol, 'UD新ゴ コンデンス50 B', 'UD Shin Go Conde50 B'; font-weight: normal;}
.wf-udshingo-l {font-family:UDShinGoPro-Light, 'UD新ゴ L JIS2004', 'UD Shin Go Light JIS2004'; font-weight: normal;}
.wf-udshingo-r, body {font-family:UDShinGoPro-Regular, 'UD新ゴ R JIS2004', 'UD Shin Go Regular JIS2004'; font-weight: normal;}
.wf-udshingo-m {font-family:UDShinGoPro-Medium, 'UD新ゴ M JIS2004', 'UD Shin Go Medium JIS2004'; font-weight: normal;}
.wf-udshingo-db, .courseDetail dt{font-family:UDShinGoPro-DeBold, 'UD新ゴ DB JIS2004', 'UD Shin Go DemiBold JIS2004'; font-weight: normal;}
.wf-udshingo-b, .contTitle, h1, h2, h3, h4, h5, h6, strong, b {font-family:UDShinGoPro-Bold, 'UD新ゴ B JIS2004', 'UD Shin Go Bold JIS2004'; font-weight: normal;}
.wf-udshingo-h {font-family:UDShinGoPro-Heavy, 'UD新ゴ H JIS2004', 'UD Shin Go Heavy JIS2004'; font-weight: normal;}
.wf-suzumushi, .topMainTitle, .topAboutTitle, .topAboutProfile dt, .topAboutPh, .courseListTitle, .infoListTitle, .missionTitle {font-family:SuzumushiStd-Medium, 'すずむし', 'Suzumushi'; font-weight: normal;} */
.wf-udshingoconde50-b {font-family: "FOT-UD角ゴC60 Pro B"; font-weight: normal;}
.wf-udshingo-l {font-family: "FOT-UD角ゴ_ラージ Pr6 L"; font-weight: normal;}
.wf-udshingo-r, body {font-family: "FOT-UD角ゴ_ラージ Pr6 R"; font-weight: normal;}
.wf-udshingo-m {font-family: "FOT-UD角ゴ_ラージ Pr6 M"; font-weight: normal;}
.wf-udshingo-db, .courseDetail dt{font-family: "FOT-UD角ゴ_ラージ Pr6 DB"; font-weight: normal;}
.wf-udshingo-b, h1, h2, h3, h4, h5, h6, strong, b {font-family: "FOT-UD角ゴ_ラージ Pr6 B"; font-weight: normal;}
.wf-udshingo-h {font-family: "FOT-UD角ゴ_ラージ Pr6 H"; font-weight: normal;}
.wf-suzumushi, .contTitle, .topMainTitle, .topAboutTitle, .topAboutProfile dt, .topAboutPh, .courseListTitle, .infoListTitle, .missionTitle {font-family: "FOT-つばめ Std R{t=0}"; letter-spacing: 0.075em; font-weight: normal;}

.txtSdw {
	text-shadow: 0 0 40px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.9),0 0 20px rgba(0,0,0,.9),0 0 10px rgba(0,0,0,.9);
}
.txtSdwMin {
	text-shadow: 0 0 20px rgba(0,0,0,.9),0 0 15px rgba(0,0,0,.9),0 0 10px rgba(0,0,0,.9),0 0 5px rgba(0,0,0,.9);
}
.capsS {
	font-size: 0.8em;
}

/* !header */
/* --------------------------- */
.gHeader {
	width: 100%;
	margin: 0 auto;
	padding: 2em 3em 4em;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	background: url('../imgs/top_main_bg.jpg') center -17.5vw no-repeat;
	background-size: cover;
}
.home .gHeader {
	background: none;
}
.siteTitle {
	font-size: 1em;
	line-height: 1;
	margin: 0 auto 0 0;
	max-width: 29vw;
}
.siteTitle a {
	display: flex;
	justify-content: flex-start;
	align-items: flex-end;
	flex-wrap: wrap;
}
.siteTitle a img:first-of-type {
	margin-right: 2.5%;
	flex-shrink: 0;
	width: 20%;
}
.siteTitle a img:last-of-type {
	width: 60%;
	filter: drop-shadow(0 0 8px rgba(0,0,0,0.7));
}
.en .siteTitle span {
	display: block;
	margin-top: 0.5rem;
	margin-left: auto;
	font-size: 0.875vw;
	white-space: nowrap;
	letter-spacing: 0.2em;
	text-indent: 0.2em;
	width: 77.5%;
}
.en .siteTitle a {
	color: #fff;
	text-decoration: none;
}
.headerNav {
	margin: 0 0 0 2vw;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	font-size: 1.125vw;
	line-height: 1;
}
.en .headerNav {
	font-size: 1.075vw;
}
ul.headerNavList {
	margin: 0 0 0 auto;
	text-align: left;
}
ul.headerNavList li {
	display: inline-block;
	white-space: nowrap;
	vertical-align: middle;
}
ul.headerNavList a,
ul.headerNavList a:visited {
	color: #fff;
	text-decoration: none;
	display: block;
	padding: 0.625em 1em;
	border-radius: 0.25em;
	text-shadow: 0 0 6px rgba(0,0,0,.75);
}
ul.headerNavList a:hover {
	background: rgba(0,0,0,.6);
}
.headerContact,
.headerContact:visited {
	display: block;
	border: solid 1px #fff;
	color: #fff;
	background: rgba(0,0,0,.6);
	text-decoration: none;
	padding: 0.5em 2.5em;
	margin-left: 1.5em;
	white-space: nowrap;
}
.headerContact:hover {
	background: #264E29;
}
#spNav, .spNav, .spNavBg {
	display: none;
}

/* !content */
/* --------------------------- */
main {
	background: #fff;
	padding-bottom: 8rem;
}
.home main {
	margin-top: calc( 100vh - 10vw );
}
/* !footer */
/* --------------------------- */
.gFooter {
	background: #264E29;
	color: #fff;
	padding: 5rem 1.25em 0;
}
.footerTitle {
	font-size: 1em;
	line-height: 1;
	margin: 0 auto 4.5em;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	padding: 0 1rem;
	max-width: 40vw;
}
.footerTitle img:first-of-type {
	width: 20%;
	margin-right: 0.5rem;
}
.footerTitle img:last-of-type {
	width: 60%;
}
.en .footerTitle span {
	display: block;
	font-size: 1.15vw;
	margin-top: 0.75rem;
	margin-left: auto;
	letter-spacing: 0.2em;
	text-indent: 0.2em;
	white-space: nowrap;
	width: 77.5%;
}
.en .footerTitle a,
.en .footerTitle a:visited {
	color: #fff;
	text-decoration: none;
}
.footerTxt {
	font-size: 1.25em;
	line-height: 1.25;
	margin: 0 auto 1em;
}
ul.footerNavList {
	font-size: 1.25em;
	line-height: 1.25;
	margin-bottom: 1.5rem;
}
ul.footerNavList li {
	display: inline-block;
	white-space: nowrap;
}
ul.footerNavList li a,
ul.footerNavList li a:visited {
	display: block;
	padding: 0.5em 1em;
	color: #fff;
	text-decoration: none;
	border-radius: 0.5em;
}
ul.footerNavList li a:hover {
	background: rgba(0,0,0,.25);
	color: #fff;
}
.footerContact,
.footerContact:visited {
	background: rgba(0,0,0,.5);
	color: #fff;
	margin-bottom: 1.5rem;
}
.footerContact:hover {
	background: rgba(0,0,0,.75);
}
.contactNotice {
	font-size: 0.75em;
	margin: -1em auto 1.5em;
}
.copyright {
	margin: 0 auto;
	padding: 0.5rem 0 1em;
}

/* !top */
/* --------------------------- */
.home::before {
	content: "";
	display: block;
	width: 100vw;
	height: 100vh;
	background: url('../imgs/top_main_bg.jpg') center center no-repeat;
	background-size: cover;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
}
.topMainTitle {
	font-size: 2vw;
	line-height: 1.325;
	letter-spacing: 0.15em;
	width: 12em;
	height: 12em;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	color: #fff;
	margin: 0;
	padding-top: 2.5em;
	position: absolute;
	right: 1em;
	top: calc(100vh - 10.5em);
}
.topMainTitle::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: rgba(38,78,41,.6);
	z-index: 1;
	mix-blend-mode: multiply;
	border-radius: 50%;
}
.topMainTitle span {
	position: relative;
	z-index: 2;
}
.en .topMainTitle span {
	font-size: 0.75em;
	line-height: 1.125;
}
.snowflake {
	position: absolute;
	top: -2rem;
	color: white;
	user-select: none;
	pointer-events: none;
	z-index: 1000;
	font-size: 1rem;
	animation-name: fall;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	filter: blur(1px);
}

@keyframes fall {
	0% {
		transform: translateY(-100px) rotate(0deg);
		opacity: 1;
	}
	100% {
		transform: translateY(100vh) rotate(360deg);
		opacity: 0;
	}
}

.topScroll {
	position: absolute;
	top: 100vh;
	left: 50%;
	transform: translate(-50%, -120%);
	margin: 0;
	font-size: 1.25em;
	line-height: 1;
	color: #fff;
	z-index: 100;
}
.topScrollBar {
	display: block;
	width: 2px;
	height: 5vh;
	background: #fff;
	margin: 0.5em auto 0;
	animation: topScrollBar 2.5s cubic-bezier(1, 0, 0, 1) infinite;
	transform-origin: left;
	transition-property: transform;
}
@keyframes topScrollBar {
	0% {
	transform: scale(1, 0);
	transform-origin: 0 0;
	}
	35% {
	transform: scale(1, 1);
	transform-origin: 0 0;
	}
	35.1% {
	transform: scale(1, 1);
	transform-origin: 0 100%;
	}
	70%, 100% {
	transform: scale(1, 0);
	transform-origin: 0 100%;
	}
}
.topAbout {
	position: relative;
	z-index: 10;
	padding-top: 6.5rem;
	min-height: 60.4vw;
	margin: 0 auto 15rem;
}
.topAbout::before {
	content: "";
	display: block;
	width: 100vw;
	height: 60.4vw;
	background: url('../imgs/content_bg.svg') center top no-repeat;
	background-size: 100% auto;
	position: absolute;
	top: -4.5vh;
	left: 0;
	z-index: -1;
	pointer-events: none;
}
.topAboutWrap {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: row-reverse;
}
.topAboutWrap:last-of-type {
	flex-direction: row;
	margin-top: 6rem;
}
.topAboutTitle {
	font-size: 3vw;
	line-height: 1.333;
	text-align: left;
	margin: 0 auto 1em;
	padding: 0 0.625em 0.75em 0;
	color: #264E29;
	position: relative;
	background: url('../imgs/top_about_title_bg.svg') left bottom no-repeat;
	background-size: 100% auto;
	transform: rotate(-10deg) translate(0, -30%);
}
.topAboutTitle::before,
.topAboutTitle::after {
	content: "";
	display: block;
	position: absolute;
}
.topAboutTitle::before {
	background: url('../imgs/top_about_title_bg_top.svg') 0 0 no-repeat;
	background-size: cover;
	width: 21.25vw;
	height: 6.45vw;
	top: 0;
	left: 0;
	transform: translate(-25%, -80%);
}
.topAboutTitle::after {
	background: url('../imgs/top_about_title_bg_bottom.svg') 0 0 no-repeat;
	background-size: cover;
	width: 43.85vw;
	height: 4.48vw;
	bottom: 0;
	left: 0;
	transform: translate(-2.5%, 50%);
}
.topAboutProfile {
	margin: auto auto 0;
	max-width: 35.4vw;
}
.topAboutProfile dt {
	font-size: 4.25vw;
	line-height: 1;
	text-align: left;
	color: #264E29;
	margin: 0 0 0.5em;
}
.en .topAboutProfile dt {
	font-size: 3.75vw;
}
.topAboutProfile dd {
	font-size: 1.05vw;
	line-height: 2;
	text-align: justify;
	font-weight: bold;
	margin: 0;
}
.topAboutProfile dd p {
	font-size: 0.8125em;
	line-height: 1.5;
	text-indent: -1.75em;
	padding-left: 1.75em;
}
.topAboutProfile dd p:first-of-type {
	margin-top: 2rem;
}
.en .topAboutProfile dd {
	font-size: 1vw;
}
.topAboutPh {
	position: relative;
	width: 42.5%;
	max-width: 720px;
	margin: 0 5vw 0 0;
}
.topAboutPh img {
	width: 100%;
	border-radius: 50%;
	overflow: hidden;
}
.topAboutPh figcaption {
	font-size: 2.5vw;
	line-height: 1;
	letter-spacing: 0.2em;
	margin: 0 auto;
	transform: translateY(-25%) rotate(-10deg);
	white-space: nowrap;
}
.topAboutPh figcaption sup {
	font-size: 0.5em;
	margin: 0 -0.5em;
	vertical-align: 0.5em;
}
.topAboutPh figcaption rt {
	letter-spacing: 0;
}
.topAboutPh figcaption span {
	display: inline-block;
	background: #264E29;
	color: #fff;
	padding: 0.375em 1.25em;
	margin: 0.375em auto;
}
.en .topAboutPh figcaption span {
	font-size: 0.625em;
	letter-spacing: 0.05em;
}
.topAboutPh figcaption span:first-of-type {
	transform: translateX(-20%);
}
.en .topAboutPh figcaption span:first-of-type {
	transform: translateX(0);
	padding: 0.375em 0.75em;
}
.topAboutPh figcaption span:last-of-type {
	transform: translateX(10%);
}
.topAboutWrap:last-of-type .topAboutPh {
	max-width: 480px;
	margin: 0 0 0 5vw;
}

.content {
	position: relative;
	z-index: 10;
	margin: 0 auto 10rem;
}
.contTitle {
	font-size: 4.375em;
	line-height: 1;
	margin: 0 auto 0.625em;
	color: #264E29;
}

.mission .contTitle {
	font-size: 3em;
}
.missionTitle {
	color: #264E29;
	font-size: 2.5vw;
	line-height: 1.666;
	margin: 0 auto 1em;
}
ol.missionList {
	display: inline-block;
	font-size: 1.5vw;
	line-height: 1.5;
	text-align: left;
	margin: 0 auto 2em;
	max-width: 42rem;
}
ol.missionList li {
	margin-bottom: 0.5em;
	padding-left: 1em;
	text-indent: -1em;
}
.en ol.missionList li {
	padding-left: 1.75em;
	text-indent: -1.75em;
}
.missionCaution {
	font-size: 1em;
	line-height: 1.666;
	margin: 0 auto 7.5rem;
	max-width: 41rem;
	border: solid 2px #264E29;
	border-top: none;
	padding: 1em 0;
}
.missionCaution dt {
	margin: -1.75em auto 0.5em;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.missionCaution dt span {
	flex-shrink: 0;
	width: 5rem;
}
.missionCaution dt::before,
.missionCaution dt::after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background: #264E29;
}
.missionCaution dd {
	margin: 0;
	padding: 0 1.5em;
	text-align: justify;
}

ul.galleryList {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 0 1.25em;
	margin-bottom: 4.5rem;
}
ul.galleryList li {
	width: 33%;
	margin: 0 auto 1.5rem;
}
ul.galleryList li a {
	display: block;
	border-radius: 1em;
	overflow: hidden;
	z-index: 1;
	position: relative;
	margin-bottom: 0.5em;
}
ul.galleryList li a:hover img {
	display: block;
	transform: scale(1.1);
	opacity: 1;
}

.topCourse {
	padding-top: 8rem;
}
.topCourse::before {
	content: "";
	display: block;
	width: 100vw;
	height: 60.4vw;
	background: url('../imgs/content_bg.svg') center top no-repeat;
	background-size: 100% auto;
	position: absolute;
	top: -4.5vh;
	left: 0;
	z-index: -1;
	pointer-events: none;
	opacity: .5;
}
.courseListWrap {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	margin: 0 auto 15rem;
}
.courseListBox {
	width: 100%;
	max-width: 520px;
	margin: 0 1.5vw;
	background: #fff;
	border-radius: 1.25em;
	position: relative;
}
.courseListBox.new {
	position: relative;
}
.courseListBox.new::before {
	content: "NEW";
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	font-size: 1em;
	line-height: 1;
	font-weight: bold;
	width: 3.6em;
	height: 3.6em;
	background: #264E29;
	color: #fff;
	border-radius: 50%;
	z-index: 1000;
	transform: translate(-33%, -33%) rotate(-10deg);
}
.courseListThumb {
	border-radius: 1.25em;
	overflow: hidden;
	margin-bottom: 2.625rem;
	z-index: 1;
	position: relative;
}
.courseListThumb a:hover img {
	display: block;
	transform: scale(1.1);
	opacity: 1;
}
.courseListTitle {
	font-size: 2.25em;
	line-height: 1.25;
	text-align: left;
	color: #264E29;
	margin: 0 auto 0.75em;
	padding: 0 2.75rem;
}
.courseListBody {
	padding: 0 2.75rem 2.75rem;
}
.courseListBody p {
	font-size: 1em;
	line-height: 1.65;
	text-align: justify;
	margin: 0;
}
.courseListBox .btn,
.infoListBox .btn {
	position: absolute;
	right: 0;
	bottom: 0;
	min-width: 10em;
	transform: translate(1em, 50%);
}
.infoListWrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.infoListBox {
	width: 42.18%;
	max-width: 810px;
	margin: 0 1.5vw 3vw;
	padding: 2.5em;
	background: #EEF4DB;
	border-radius: 1.25em;
	position: relative;
}
div.infoListBox {
	background: none;
}
.infoListThumb {
	border-radius: 1.25em;
	overflow: hidden;
	margin-bottom: 2rem;
	position: relative;
	z-index: 1;
}
.infoListThumb a:hover img {
	display: block;
	transform: scale(1.05);
	opacity: 1;
}
.infoListTitle {
	font-size: 2.25em;
	line-height: 1.25;
	text-align: left;
	color: #264E29;
	margin: 0 auto 0.5em;
}
.infoListBody {
	margin-bottom: 0.5rem;
}
.infoListBody p {
	font-size: 1.25em;
	line-height: 1.65;
	text-align: justify;
	margin: 0;
}
.accessWrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.accessInfo {
	width: 40%;
}
.accessTitle {
	font-size: 1em;
	line-height: 1;
	margin: 0 auto 4.5rem;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	padding: 0 1rem;
	flex-wrap: wrap;
}
.accessTitle img:first-of-type {
	margin-right: 2.5%;
	width: 20%;
}
.accessTitle img:last-of-type {
	width: 60%;
}
.accessTitle span {
	display: block;
	width: 77.5%;
	margin-top: 0.5rem;
	margin-left: auto;
	letter-spacing: 0.2em;
	text-indent: 0.2em;
	white-space: nowrap;
	font-size: 1.125vw; 
}
.accessTxt {
	font-size: 1vw;
	line-height: 1.65;
	text-align: left;
	margin: 0 auto 1em;
	max-width: 29.5em;
}
.accessMap {
	width: 60%;
	max-width: 1160px;
}
.accessMap iframe {
	max-width: 100%;
}

/* !animation */
/* --------------------------- */
.invisible {
	opacity: 0;
}
.visible {
	transition: all 1.0s ease;
	opacity: 1;
}

.pageBody {
	position: relative;
	padding-top: 8rem;
}
.pageBody::before {
	content: "";
	display: block;
	width: 100vw;
	height: 60.4vw;
	background: url('../imgs/content_bg.svg') center top no-repeat;
	background-size: 100% auto;
	position: absolute;
	top: -4.5vh;
	left: 0;
	pointer-events: none;
}

.courseDetailBox {
	max-width: 800px;
	background: #fff;
	margin: 0 auto;
	padding: 1.5rem;
	border-radius: 1.5em;
}
.courseDetailBox .courseListTitle {
	text-align: center;
}
.courseDetail {
	margin: 0 auto 1rem;
}
.courseDetail dt {
	font-size: 1em;
	line-height: 1;
	color: #264E29;
	display: inline-block;
	border: solid 2px #264E29;
	padding: 0.5em 1.5em;
	min-width: 8em;
	margin: 0 auto 1em;
	border-radius: 0.25em;
}
.courseDetail dd {
	font-size: 1.25em;
	line-height: 1.5;
	margin: 0 auto 1.5em;
}
.courseDetail dd b {
	font-size: 1.25em;
	color: #264E29;
}
.courseDetail dd img {
	margin-bottom: 0.5rem;
	border-radius: 0.5em;
	overflow: hidden;
	z-index: 1;
	position: relative;
}
.courseDetail dd p {
	font-size: 0.75em;
	text-align: justify;
	margin: 0 0 1em;
	padding-left: 1em;
	text-indent: -1em;
}
.courseDetail dd p::before {
	content: "";
	width: 1em;
	height: 1em;
	border-radius: 50%;
	display: inline-block;
	background: #264E29;
	transform: scale(0.7);
	text-indent: 0;
	vertical-align: -0.125em;
}
.courseDetail dd a {
	word-break: break-all;
}
.courseDetail dd.fin {
	position: relative;
}
.courseDetail .finBnr {
	display: block;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, 10%) rotate(-10deg);
	background: red;
	color: #fff;
	font-size: 0.875em;
	line-height: 1.5;
	padding: 0.25em 0.75em;
}
.feesTitle {
	font-size: 2.25em;
	margin: 1em auto 0.5em;
	padding-bottom: 0.5em;
	border-bottom: solid 1px #264E29;
	color: #264E29;
}
.feesCatch {
	font-size: 1.5em;
	margin: 1em auto 0.5em;
}
.feesTxt {
	font-size: 0.875em;
	margin: 0 auto 1em;
	letter-spacing: 0.1em;
	text-indent: 0.1em;
}
ul.feesList {
	font-size: 1.25em;
	line-height: 1.375;
	margin: 0 auto 1em;
	display: inline-block;
}
ul.feesList li {
	text-align: left;
	padding: 0.75em;
	border-bottom: dashed 1px #264E29;
}
ul.feesList li span {
	display: block;
	text-align: center;
	color: #666;
	margin-top: 0.25em;
}
.feesTable {
	width: 100%;
	margin: 0 auto 0.5em;
	font-size: 1em;
	line-height: 1.375;
	border-collapse: collapse;
}
.feesTable th,
.feesTable td {
	padding: 1em 0.5em;
	border-bottom: solid 1px #264E29;
}
.facilityListWrap {
	position: relative;
}
.facilityListWrap img {
	position: absolute;
	right: 0;
	bottom: 0.5rem;
}
.en .facilityListWrap img {
	bottom: -0.5rem;
}
ul.facilityList {
	font-size: 1.125em;
	line-height: 1.5;
	text-align: left;
	padding: 0 1em;
	margin: 0 auto 1em;
}
ul.facilityList li {
	margin: 0 0 0.5em;
	padding-left: 1em;
	text-indent: -1em;
}
ul.facilityList li::before {
	content: "●";
	color: #264E29;
	display: inline-block;
	transform: scale(0.5);
	width: 1em;
	text-indent: 0;
}
ul.facilityList li .colored {
	background: yellow;
}

/* !sp */
/* --------------------------- */
@media screen and (max-width:767px) {
	/* !sp common */
	/* --------------------------- */
	.floatLeft,
	.floatRight,
	.alignleft,
	.alignright {
		display: block;
		text-align: center;
		float: none;
		margin: 16px auto;
	}
	.nosp {
		display: none;
	}
	.sp {
		display: block;
	}
	.flexCont {
		display: block;
	}
	/* !sp layout */
	/* --------------------------- */
	body {
		font-size: 3.75vw;
	}
	/* !sp header */
	/* --------------------------- */
	.gHeader {
		padding: 0 0 0 1rem;
		height: 10rem;
		align-items: center;
	}
	.home .gHeader {
		height: auto;
		padding-top: 1rem;
	}
	.siteTitle {
		max-width: 60vw;
	}
	.home .siteTitle {
		max-width: 75vw;
	}
	.en .siteTitle span {
		font-size: 2.25vw;
	}
	.headerNav {
		position: fixed;
		top: 0;
		right: 0;
		width: 81vw;
		height: 100%;
		overflow: auto;
		background: #264E29;
		font-size: 1.25rem;
		flex-direction: column;
		justify-content: flex-start;
		padding: 3.5rem;
		transform: translateX(100%);
		transition: all 0.4s ease;
		z-index: 800;
	}
	.en .headerNav {
		font-size: 1.25rem;
	}
	#spNav:checked ~ .gHeader .headerNav {
		transform: translateX(0);
	}
	ul.headerNavList {
		width: 100%;
		border-top: solid 1px rgba(255,255,255,.5);
		margin-bottom: 1.5rem;
		line-height: 1.375;
	}
	ul.headerNavList li {
		display: block;
		border-bottom: solid 1px rgba(255,255,255,.5);
		white-space: normal;
	}
	ul.headerNavList li.nosp {
		display: none;
	}
	ul.headerNavList a,
	ul.headerNavList a:visited {
		padding: 1em 0;
	}
	.headerContact {
		margin: 0 auto;
		padding: 1.25em 0;
		width: 100%;
	}
	.contactNotice {
		color: #fff;
		font-size: 0.675em;
		line-height: 1.375;
		margin: 0.5em auto 0;
		text-align: left;
		text-indent: -1em;
		padding-left: 1em;
	}
	.spNav {
		display: block;
		width: 3.5rem;
		height: 3.5rem;
		position: fixed;
		top: 0;
		right: 0;
		background: #264E29;
		z-index: 900;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}
	.bar {
		display: block;
		width: 24px;
		height: 3px;
		border-radius: 2px;
		background: #fff;
		margin: 3px auto;
		transition: all 0.6s cubic-bezier(.71,-0.56,.39,1.52);
	}
	#spNav:checked ~ .gHeader .bar:nth-of-type(1) {
		transform: translateY(9px) rotate(315deg);
	}
	#spNav:checked ~ .gHeader .bar:nth-of-type(2) {
		opacity: 0;
		transform: rotate(-720deg);
	}
	#spNav:checked ~ .gHeader .bar:nth-of-type(3) {
		transform: translateY(-9px) rotate(-315deg);
	}
	.spNavBg {
		display: block;
		width: 100vw;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		background: rgba(0,0,0,0);
		z-index: 100;
		pointer-events: none;
		transition: all 0.4s ease;
	}
	#spNav:checked ~ .gHeader .spNavBg {
		background: rgba(0,0,0,.875);
		pointer-events: auto;
	}
	.instagram {
		position: fixed;
		top: 4rem;
		right: 0.5rem;
		width: 2.5rem;
		height: auto;
		z-index: 50;
	}
	.btn {
		min-width: 50%;
	}
	/* !sp content */
	/* --------------------------- */
	main {
		width: 100vw;
	}
	.home::before {
		height: 160vw;
		z-index: -100;
		background-position: right -45vw center;
	}
	.home main {
		margin-top: 140vw;
		padding-bottom: 0;
	}
	.topMainTitle {
		font-size: 0.875em;
		top: 38em;
		right: 0.5em;
	}
	.topScroll {
		display: none;
	}
	.mission .contTitle {
		font-size: 2em;
	}
	.missionTitle {
		font-size: 1.375em;
	}
	ol.missionList {
		font-size: 1em;
		max-width: 90%;
	}
	.missionCaution {
		font-size: 0.875em;
		max-width: 90%;
	}
	.topAbout {
		padding-top: 3rem;
		margin-bottom: 7.5rem;
	}
	.topAbout::before {
		height: 200vw;
		background-size: 200% auto;
		top: -2rem;
	}
	.topAboutWrap {
		flex-direction: column-reverse;
	}
	.topAboutWrap:last-of-type {
		flex-direction: column-reverse;
		margin-top: 3rem;
	}
	.topAboutBody {
	}
	.topAboutTitle {
		font-size: 1.125em;
		position: absolute;
		top: 40vw;
		right: 0.5em;
		z-index: 100;
	}
	.en .topAboutTitle {
		font-size: 0.9375em;
	}
	.topAboutPh {
		width: 60%;
		margin: 0 auto 1rem 0;
	}
	.topAboutPh img {
		transform: translateX(-25%);
	}
	.topAboutPh figcaption {
		font-size: 1em;
	}
	.en .topAboutPh figcaption {
		white-space: nowrap;
	}
	.topAboutProfile {
		max-width: 81%;
		margin-top: 0;
	}
	.topAboutWrap:last-of-type .topAboutBody {
		padding-top: 1.5rem;
	}
	.topAboutProfile dt {
		font-size: 1.5em;
	}
	.topAboutProfile dd {
		font-size: 0.8125em;
	}
	.en .topAboutProfile dt {
		font-size: 2em;
	}
	.en .topAboutProfile dd {
		font-size: 0.8125em;
	}
	.content {
		margin-bottom: 7.5rem;
	}
	.contTitle {
		font-size: 3em;
	}
	ul.galleryList {
		display: block;
		margin-bottom: 1.5rem;
		padding: 0 3rem;
	}
	ul.galleryList li {
		width: 100%;
		margin: 0 auto 1.5rem;
	}
	.topCourse::before {
		height: 100%;
		background-size: auto 100%;
	}
	.courseListWrap {
		display: block;
		margin-bottom: 1.5rem;
		padding: 0 3rem;
	}
	.courseListBox {
		margin: 0 auto 4.5rem;
	}
	.courseListThumb {
		margin-bottom: 1rem;
	}
	.courseListTitle {
		font-size: 1.75em;
		padding: 0 1rem;
		margin-bottom: 0.5em;
	}
	.courseListBody {
		padding: 0 1rem 2rem;
	}
	.courseListBody p {
		font-size: 0.875em;
	}
	.courseListBox .btn,
	.infoListBox .btn {
		font-size: 0.875em;
	}
	.infoListWrap {
		display: block;
		margin-bottom: 1.5rem;
		padding: 0 3rem;
	}
	.infoListBox {
		width: 100%;
		margin: 0 auto 4.5rem;
		padding: 1rem 1rem 2rem;
	}
	.infoListThumb {
		margin-bottom: 1rem;
	}
	.infoListTitle {
		font-size: 1.75em;
		margin-bottom: 0.25em;
	}
	.infoListBody p {
		font-size: 0.875em;
	}
	.accessWrap {
		display: block;
	}
	.accessInfo {
		width: 100%;
		margin: 0 auto 1.5rem;
	}
	.accessTitle {
		max-width: 90%;
		margin-bottom: 1.5em;
	}
	.accessTitle span {
		font-size: 2.425vw;
	}
	.accessTxt {
		font-size: 0.75em;
	}
	.accessMap {
		width: 100%;
		margin-bottom: 0;
	}
	.accessMap iframe {
		margin-bottom: -0.5rem;
	}
	#access {
		margin-bottom: 0;
	}
	/* !sp footer */
	/* --------------------------- */
	.footerTitle {
		margin-bottom: 2rem;
		max-width: 100%;
	}
	.en .footerTitle span {
		font-size: 2.5vw;
	}
	.footerTxt {
		font-size: 0.875em;
	}
	ul.footerNavList li {
		display: block;
	}
	ul.footerNavList li a,
	ul.footerNavList li a:visited {
		padding: 1em;
	}
	/* !sp course */
	/* --------------------------- */
	.pageBody {
		padding-top: 0rem;
	}
	.pageBody::before {
		height: 200vw;
		background-size: 200% auto;
	}
	.courseDetailBox {
		margin: 0 1rem;
		padding: 1rem;
	}
	.courseDetail dt {
		font-size: 0.875em;
	}
	.courseDetail dd {
		font-size: 1em;
	}
	.en .topAboutProfile dd,
	.en .courseListBody p,
	.en .infoListBody p,
	.en .courseDetail dd p {
		text-align: left;
	}
	.feesTitle {
		font-size: 1.75em;
	}
	ul.feesList li {
		text-align: center;
	}
	.en ul.feesList {
		font-size: 1.125em;
	}
	.tableWrap {
		width: 100%;
		overflow-x: auto;
	}
	.feesTable {
		white-space: nowrap;
	}
	.facilityListWrap img {
		position: relative;
		right: auto;
		bottom: auto;
		margin: 0 auto 2rem;
	}
}
