html {
  min-width: 1000px; /* viewport */
}
/*=============================================
 * body
 *=============================================*/
body {
  color: #582509;
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 15px;
  line-height: 36px;
  letter-spacing: 0.6px;
  background: url(../img/shared/bg.jpg) repeat center top;
  min-width: inherit;
  max-height: 100%;
}
@media screen and (min-width: 768px) {
  img{
    width: 100%;
    height: auto;
  }
}
@media screen and (max-width: 767px) {
  body {
	  font-size: 14px;
    line-height: 1.8;    
    letter-spacing: 1.5px;
    text-align: justify;
  }
}
/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.fnt-meiryo {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.fnt-gothic {
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}
/*=============================================
 * .fnt - customs
 *=============================================*/
.fnt-elina {
  font-family: elina, sans-serif;
}
.fnt-meiryo {}
.fnt-gothic {}
.fnt-garamond {}
/*=============================================
 * main
 *=============================================*/
main {
  clear: both;
  width: 100%;
  position: relative;
  overflow: hidden;
}
.wrap {
  width: 1000px;
}
/*=============================================
 * header
 *=============================================*/
#header {
  background: url(../img/access/header_bg.jpg)repeat-x center bottom;
  height: 818px;
}
#header .wrap{
  z-index: 1;
}
#header h1 {
  color: #d2c2ac;
  font-size: 13px;
  line-height: 35px;
  letter-spacing: 0.8px;
  padding: 36px 0 6px 19px
}
#header .logo {
  position: absolute;
  top: 32px;
}
#header .tel {
  position: absolute;
  top: 33px;
  right: 0;
}
#header ul.nav {
  padding-left: 327px;
  margin-right: -5px;
}
#header .nav li {
  float: left;
}
#header .nav-fixed {
  background: url(../img/shared/header_bg.jpg) center top repeat-x;
  top: -85px;
  width: 100%;  
  position: fixed;  
  left: 0;
  z-index: 1000;
}

#header .nav-fixed.fixed {
  top: 0;
}
#header .nav-fixed .tel {
  position: absolute;
  right: 0;
  top: -2px;
}
#header .nav-fixed ul.nav {
  padding-left: 0;
  margin-right: 0;  
}
#header .btn_fix {
  position: fixed;
	right: 0;
	top:120px;
}
@media screen and (max-width: 767px) {
  #header h1{
    width: 83%;
    text-align: left;
    line-height: 1.6;
    letter-spacing: 0;
    padding: 0;
    margin-bottom: 2vw;
    font-size: 3vw;
  }
  #header .wrap{
    padding-top: 5vw;
  }
  #header .logo{
    position: static;    
    width: 28%;
  }
}
/*=============================================
 * key
 *=============================================*/
#key {
  background-color: #000;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  height: 800px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 0;
}
#key .key_ttl {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  text-align: center;
}
#key .key_ttl img {
  width: auto;
  max-width: 100%;
}
#key ul {
  height: 800px;
}
#key li {
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  min-height: inherit;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
#key li.active{
  position: static;
}
@media screen and (max-width: 767px) {
  #header{
    height: auto;
    padding-bottom: 9px;
  }
  #header .wrap{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
  }
  #key{
    position: relative;
  }
  #key, #key ul{
    height: auto;
  }
}
/*=============================================
 * container
 *=============================================*/
#container {}
/*=============================================
 * #socialbuttons
 *=============================================*/
#socialbuttons {
  padding: 19px 0 30px;
  text-align: left;
}
#socialbuttons > * {
  vertical-align: top;
}
.cookies_link{
  margin-top: 5px;
}
.cookies_link a{
  color: #c09975;
  font-size: 14px;
}
.cookies_link a:hover,
.cookies_link a:active,
.cookies_link a:focus {
  text-decoration: underline;
}
/*=============================================
 * footer
 *=============================================*/
#footer {
  background: url(../img/shared/ft_belt.jpg) repeat-x center top, url(../img/shared/ft_bg.jpg) repeat center top;
  color: #fff;
  min-height: 846px;
  letter-spacing: 0.6px;
  z-index: 0;
  line-height: 21px;
  font-size: 14px;
}
#footer .wrap {
  position: relative;
}
#footer .logo {
  padding: 79px 0 21px;
  width: 322px;
  margin: auto;
}
#footer .tel {
  padding: 12px 0 27px;
  width: 510px;
  margin: auto;
}
#footer .ft_info {
  padding-top: 6px;
}
#footer dl {
  line-height: 21px;
  border-bottom: 1px solid #6c380a;
  padding: 9px 0;
  text-align: left;
}
#footer dl span {
  font-size: 13px
}
#footer dl dt {
  float: left;
  padding-right: 12px;
  width: 78px;
}
#footer dl dd {
  float: left;
  width: 435px;
}
#footer .nav {
  padding: 20px 0 59px;
}
#footer .nav li a {
  padding: 0 13px
}
#footer .nav li + li {}
#footer .nav li + li:before {}
#footer h3 {
  font-size: 16px;
  padding: 10px 0 13px 153px;
  font-weight: bold;
}
#footer .fr {
  width: 400px;
  height: 460px;
  background-color: #fff;
  position: absolute;
  right: 50px;
  top: 110px;
}
#footer .fl {
  padding-left: 44px;
}
#footer #gmap {
  width: 440px;
  height: 410px;
}

@media screen and (max-width: 767px) {
  #ft_info, #footer .tel, #footer dl dd, #footer #gmap{
    width: 100% !important;
  }
  #footer #gmap{
    height: 225px;
    margin-bottom: 8vw;
  }
  #footer{
    padding-bottom: 100px;
    position: relative;
    z-index: 1;
  }
  #footer .logo{
    width: 61%;
  }
  #footer dl dt {
    width: 100%;
}

}
iframe{
  width: 100%;
  height: 100%;
}

/*=============================================
 * copyright
 *=============================================*/
address {
  padding-bottom: 42px;
  color: #c09975;
  font-size: 14px
}
.text_center {
  text-align: center;
}
.text_right {
  text-align: right;
}
.w_500 {
  width: 500px;
}
.w_50pc {
  width: 50%;
}
.w_529 {
  width: 529px;
}
.w_453 {
  width: 453px;
}
.w_317 {
  width: 317px;
}
.w_441 {
  width: 441px;
}
.bx-wrapper {
  background: none;
  border: 0;
  box-shadow: none;
  left: 0;
}
.w_470 {
  width: 470px;
}
.w_470 > div {
  padding-bottom: 40px;
}

.menu_ttl {
  text-transform: uppercase;
  padding-left: 25px !important;
  font-size: 16px;
  font-weight: bold !important;
  line-height: 32px;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  position: relative;
  margin-bottom: 18px !important;
}
.menu_ttl:before {
  border-left: 6px solid #256f5d;
  height: 30px;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
}
.menu_ttl span {
  font-size: 23px;
  letter-spacing: 2.5px;
}
@media screen and (max-width: 767px) {
  .w_470 {
    width: 100%;
  }
  .w_470 > div {
    padding-bottom: 10vw;
  }
  .menu_ttl{
    margin-bottom: 5vw !important;
    font-size: 15px;
    line-height: 30px;
  }
  .menu_ttl span{
    font-size: 20px;
  }
}
.listmenu {
  line-height: 22px;
  padding: 11px 0 10px;
  border-top: 1px solid #c9aa79;
}
.listmenu:last-child {
  border-bottom: 1px solid #c9aa79;
}
.listmenu dt {
  float: left;
}
.listmenu dd {
  float: right;
  font-size: 16px;
  font-weight: bold;
  text-align: right;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
#menu h4 {
  background-color: #d7bc8e;
  text-transform: uppercase;
  font-size: 18px;
  line-height: 32px;
  font-weight: bold;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  margin-top: 15px !important;
}
.mt {
  margin-top: 50px;
}
.comingsoon {
  font-size: 22px;
  color: #fff;
  text-align: center;
  letter-spacing: 15px;
  padding-left: 8px;
  margin: 130px auto;
}

/*====================== ft_fixed ====================== */


#ft_fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden;
    font-size: 12px;
  color: #fff;
  background: url("../img/shared/ft_bg.jpg") repeat;  
  z-index: 100;
}
#ft_fixed li:nth-child(2){
  width: 14.33%;
}
#ft_fixed li:nth-child(1){
  width: 85.67%;
}
#ft_fixed a{
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  color: #feeccc;
  font-size: 24px;
}
#ft_fixed a i{
  display: block;
  margin-right: 10px;
  width: 30px;
}
#ft_fixed li:nth-child(1){
    padding: 10px 0;
}

#ft_fixed2 {
    position: fixed;
    bottom: 58px;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden;
    font-size: 12px;
  color: #fff;
  background: url("../img/shared/ft_bg.jpg") repeat;  
  z-index: 100;
	border-bottom: 1px solid #feeccc;
	padding: 5px 0;
}
#ft_fixed2 li:nth-child(2){
  width: 50%;
}
#ft_fixed2 li:nth-child(1){
  width: 50%;
	border-right: 1px solid #feeccc;
}
#ft_fixed2 a{
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  color: #feeccc;
  font-size: 24px;
}
#ft_fixed2 a i{
  display: block;
  margin-right: 10px;
  width: 30px;
}
#ft_fixed2 li:nth-child(1){
    padding: 10px 0;
}

/* iPhone X */
@media only screen  and (min-device-width: 375px)  and (min-device-height: 812px)  and (-webkit-device-pixel-ratio: 3)  and (orientation: portrait) {
.has_nav #footer:after {
	background: url(../img/shared/ft_bg.jpg) repeat;
	content: '';
	position: fixed;
	bottom: 0px;
	left: 0;
	right: 0;
	height: 36px;
}
#ft_fixed {
	bottom: calc(env(safe-area-inset-bottom) - 0px);
}

}

/* iPhone XR */
@media only screen  and (min-device-width: 414px)  and (min-device-height: 896px)  and (-webkit-device-pixel-ratio: 2)  and (orientation: portrait) {
.has_nav #footer:after {
	background: url(../img/shared/ft_bg.jpg) repeat;
	content: '';
	position: fixed;
	bottom: 0px;
	left: 0;
	right: 0;
	height: 36px;
}
#ft_fixed {
	bottom: calc(env(safe-area-inset-bottom) - 0px);
}
}

/* iPhone 11 */

@media only screen 
    and (device-width: 414px) 
    and (device-height: 896px) 
    and (-webkit-device-pixel-ratio: 2) ,@media only screen 
    and (device-width: 375px) 
    and (device-height: 812px) 
    and (-webkit-device-pixel-ratio: 3),@media only screen 
    and (device-width: 414px) 
    and (device-height: 896px) 
    and (-webkit-device-pixel-ratio: 3) {

.has_nav #footer:after {
	background: url(../img/shared/ft_bg.jpg) repeat;
	content: '';
	position: fixed;
	bottom: 0px;
	left: 0;
	right: 0;
	height: 36px;
}
#ft_fixed {
	bottom: calc(env(safe-area-inset-bottom) - 0px);
}
}
.navOpen #ft_fixed {
  z-index: 0;
}
.has_nav #ft_fixed {
  opacity: 1;
  visibility: visible;
}
.navOpen #ft_fixed2 {
  z-index: 0;
}
.has_nav #ft_fixed2 {
  opacity: 1;
  visibility: visible;
}
.ft_fixed_shared {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-flow: row;
  text-align: center;
  width: 100%;
  z-index: 100;
}

/*=============================================
 * copyright
 *=============================================*/
@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
  .has_nav #footer:after {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
  #pagetop {
    width: 12.7%;
    max-width: 80px;
    bottom: 21vw;    
  }
  .menu_toggle .tel{
    position: static !important;  
    margin: 13vw auto 0;
    width: 91%;
    max-width: 345px;
  }
}
header .menu_toggle {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  width: 100% !important;
  top: 0px;
  right: 0;
  height: 100%;
  overflow-y: auto;  
  z-index: 99;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 8vw 10% 0;
  background: url("../img/shared/menu_toggle.jpg") no-repeat center top / cover;
  transition: all 0.5s ease 0s;
  -moz-transition: all 0.5s ease 0s;
  -webkit-transition: all 0.5s ease 0s;
  text-align: center;
}
header .menu_toggle ul {
  padding: 0;
  list-style-type: none;
  list-style-position: outside;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;  
}
header .menu_toggle li {
  position: relative;
  clear: both;
  transform: matrix(1, 0, 0, 1, 0, -20);
  transition: all ease 0.5s 0.3s;
  opacity: 0;
  display: flex;
  justify-content: center;
  width: 48%;
}
header .menu_toggle a {
  display: block;
  text-decoration: none;
}
.navOpen #menu_toggle {
  opacity: 1;
  visibility: visible;
  pointer-events: visible;
}
.navOpen #menu_toggle li {
  opacity: 1;
  transform: matrix(1, 0, 0, 1, 0, 0);
}
.hamburger {
    background: #b05600;
    position: fixed;
    top: 15px;
    z-index: 100;
    right: 4%;
}
.logo_sp {
  margin: auto;
  width: 37.6%;
  transform: translate(-2%, -12vw);
}
.dis_flex {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
}
button {
  border: none;
  cursor: pointer;
}
.slick-dots {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex !important;
  justify-content: center;
}
.slick-dots li {
  width: 12px;
  height: 12px;
  margin: 0 6px;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
}
.slick-dots li button {
  width: 12px;
  height: 12px;
  line-height: 0;
  font-size: 0;
  background: none; 
  box-sizing: border-box;
  border-radius: 50%;
  border: 1px solid #2a7e6b;
}
.slick-dots li.slick-active button {
  background: #2a7e6b;
}
.slick-slide > div{
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
}
@media only screen and (min-width: 768px) {
  .dis-flex-pc {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
  }
  #ft_info{
    margin-right: 31px;
  }
}
.txt-center {
  text-align: center;
}

.btn_link{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;  
  box-sizing: border-box;  
  color: #fff;
  background: #ba1b0b;
  letter-spacing: 3px;
  transition: ease 0.3s;
}
.btn_link:before{
  content:"";
  position: absolute;
  right: 0;
  top: 50%;
  height: 1px;  
  background: #fff;
}
.btn_link:hover{
  text-decoration: none;
  opacity: 0.8;
}
@media screen and (max-width: 767px) {
  .btn_link{
    font-size: 16px;
    height: 65px;
    letter-spacing: 0.25em;
  }  
  .btn_link:before{
    width: 11.88%;
  }
}
@media screen and (min-width: 768px) {
  .btn_link{
    font-size: 17px;
    height: 60px;
  }
  .btn_link:before{
    width: 45px;
  }
  .txt-vertical-pc{
    cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
  }
}


.bg_parallax2 {
  position: relative;
  padding-top: 80%;
  z-index: 0;
}
.img_parallax {
  clip: rect(0, auto, auto, 0);
  margin-bottom: 0;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
}
.img_parallax img {
  width: 100% !important;
  height: 100vh !important;
  position: fixed;
  bottom: 0;
  left: 0;
  padding: 0;
  margin: 0;
  object-fit: cover;
  z-index: 0;
  transform: translateZ(0);
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {	
	.img_parallax img {
    height: auto;
    object-fit: unset;
    top: 50%;
    transform: translateY(-50%) !important;     
  }
}
.ttl {
  font-size: 35px;
  line-height: 1.28;
}
.ttl .fz28 {
  font-size: 28px;
  line-height: 1.8;
}
.ttl .fz24 {
  font-size: 24px;
  line-height: 1.8;
}
.ttl .icon_dot {
  width: 52px;
  height: 10px;
  margin-bottom: 48px !important;
  margin-top: 19px !important;
  line-height: 1;
  display: block;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .ttl {
    font-size: 7vw;
    line-height: 1.68;
  }
  .ttl .fz28 {
    font-size: 5vw;
  }
	.ttl .fz24 {
    font-size: 4vw;
  }
  .ttl .icon_dot {
    width: 26px;
    margin-bottom: 5vw !important;
    margin-top: 0 !important;
  }
}

.course_ttl {
  text-align: center;
  color: #6d4123;
  font-weight: bold !important;
  font-size: 39px;
  line-height: 1.54;
  padding-bottom: 20px !important;
  position: relative;
  letter-spacing: 0.1em;
}
.course_ttl:before {
  content: "";
  bottom: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  height: 5px;
  width: 47px;
  background: #277360;
}
.course_ttl span {
  display: inline-block;
  background: url("../img/course/course_ttl_deco1.png") no-repeat top left/auto 100%, url("../img/course/course_ttl_deco2.png") no-repeat top right/auto 100%;
  padding: 0 55px;
  letter-spacing: 0.2em;
}
.course_ttl em {
  font-style: normal;
  display: block;
  font-weight: normal;
  font-size: 20px;
  line-height: 2.25;
}
@media screen and (max-width: 767px) {
  .course_ttl {
    font-size: 7vw;
    padding-bottom: 3vw !important;
  }
  .course_ttl:before {
    height: 3px;
  }
  .course_ttl span {
    padding: 0 10%;
    letter-spacing: 0.1em;
  }
  .course_ttl em {
    font-size: 4vw;
    letter-spacing: 0.1em;
  }
}
.txt-price {
  font-size: 20px;
  letter-spacing: .6px;
  color: #267360;
}
.txt-price span {
  font-size: 30px;
}