@charset "UTF-8";

/*チェック用*/
/**,
*:after,
*:before{
        outline: 1px solid rgb(234,4,234);
        opacity: 1.0;
}*/
/*共通部分*/
html {
        font-size: 100%;
        height:100%;
}
body {
    font-family: "a-otf-ud-reimin-pr6n", serif;
    font-weight: 300;
    font-style: normal;
    line-height: 1.5;
    color: #705e5a;
        margin:0;
	height:100%;
}

a {
	text-decoration: none;

        color:#000;
}
a:hover {
    color: #BC83C5;
}
img {
        max-width: 100%;
        margin-top: 0px;
        -webkit-touch-callout:none;
	-webkit-user-select:none;
	-moz-touch-callout:none;
	-moz-user-select:none;
	touch-callout:none;
	user-select:none;
}
.wrapper {
    max-width: 1080px;
    margin: 0 auto;
    padding: 3% 4.25%;
}
.fadeup{
        opacity: 0;
    transition-duration: 1.1s;
    transform: translate(0, 100px);
}
.fadeleft{
	opacity: 0;
    transition-duration: 1.1s;
    transform: translate(-100px, 0);
}
.scroll-in{
	opacity: 1;
    transform: translate(0, 0);
}
.blur{
	transition: all 1.5s;
	filter: blur(10px);
}
.scroll-in{
	filter: blur(0);
}
.delay1{
	transition-delay: 0.25s;
}
.delay2{
	transition-delay: 0.5s;
}
.delay3{
	transition-delay: 0.75s;
}
.button{
        color:  #c1a470;
        display: inline-block;
        border: 1px solid #c1a470;
        /*background-color:#e9dacb;*/
        background-color: rgba(255,255,255,0.03);
        padding: 0.7rem 1.75rem;
        font-size: 1rem;
        letter-spacing: 0.1rem;
        transition: all 0.5s ease-out;
        white-space: nowrap;
        border-radius: 10px;
}
.on{
    background: linear-gradient(280deg, #c1a470, #c1a470, rgba(0,0,0,0), rgba(0,0,0,0));
    background-size: 300% 300%;
    background-position: 1% 50%;
}
.button:hover{
    color: #FFFFFF;
    background-position: 99% 50%;
        border: 1px solid #E1C3AE;
}
.button::after{
	content:">";
	margin-left: .5rem;
}

/*HEADER*/
header{
	width: 100%;
	height: 3.5rem;
	padding: 0;
	background-color: rgba(255,255,255,0.75);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10001;
}
.logo {
        height: 2rem;
	margin: 0.75rem 0;
        padding-left: 1rem;
	position: relative;
	z-index: 15000;
        
}
#main-nav{
        background-image: url("../images/navi-bg.jpg");
	background-size: cover;
	background-position: right bottom;
	width: 35%;
        min-width: 330px;
	height: 100vh;
        position: fixed;
        z-index: 10000;
        top: 0;
        right: -110%;
	transition: all 0.5s;
	overflow: auto;
	text-align: left;
	padding: 7% 0 0 5%;
}
#main-nav li{
	list-style: none;
}
#main-nav li a{
	color: #000;
	font-size: 1.25rem;
	line-height: 3rem;
}
#main-nav li a:hover{
	color: #FFC189;
}
.menu-btn{
	position: fixed;
        top: 0rem;
	right: 0rem;
	display: flex;
	height: 3.5rem;
	width: 3.5rem;
	justify-content: center;
	align-items: center;
	z-index: 10001;
        background-color: #F5D3D6;
}
.menu-btn span,
.menu-btn span::before,
.menu-btn span::after{
	content: '';
	display: block;
	height: 1.5px;
	width: 25px;
	border-radius: 3px;
	background-color: #662239;
	position: absolute;
}
.menu-btn span::before{
	bottom: 10px;
}
.menu-btn span::after{
	top: 10px;
}
#btn-menu-check:checked ~ .menu-btn span{
	background-color: rgba(0,0,0,0.00);
}
#btn-menu-check:checked ~ .menu-btn span::before{
	bottom: 0;
	transform: rotate(45deg);
}
#btn-menu-check:checked ~ .menu-btn span::after{
	top: 0;
	transform: rotate(-45deg);
}
#btn-menu-check{
	display: none;
}
#btn-menu-check:checked ~ #main-nav{
	right: 0;
}
.sns{
        display: flex;
}
.sns img{
       width:40px;
        height: auto;
        margin: 20px 20px 0 0; 
}
/*自動追尾メニュー*/
nav ul{
        display: none;
}
/* index内容*/
.parallax {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100vh;
min-height: 600px;
}
.parallax-inner {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  clip: rect(0, auto, auto, 0);
}
.parallax-image {
  position: fixed;
  z-index: -1;
  display: block;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
        
  background-size: cover;
  background-position: center center;
}
.hero-title {
        font-size: 1.5rem;
        font-weight: 500;
	position: absolute;
	padding: 2rem 1rem;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        writing-mode: vertical-rl;
        white-space: nowrap;
        letter-spacing: 0.35rem;
        line-height: 5rem;
        color:  #e9dacb;
        background-color: rgba(102,34,57,0.9);
}

.scroll-down{
        position: absolute;
        bottom:5%;
        left:50%;
        animation: arrow 2s ease-in-out infinite;
}
@keyframes arrow{
        0%{
                bottom:5%;
        }
        50%{
                bottom:7%;
        }
        100%{
                bottom:5%;
        }
}
.scroll-down span{
        position: absolute;
        left:-1.25rem;
        bottom:0.9rem;
        color: #fff;
        font-size: 0.8rem;
        letter-spacing: 0.1rem;
        writing-mode:vertical-rl;
        font-weight:600;
}
.scroll-down:before{
        content: "";
        position: absolute;
        bottom:0.5rem;
        left:0.4rem;
        width: 2px;
        height: 1.25rem;
        background: #fff;
        transform: skewX(-31deg);
}
.scroll-down:after{
        content: "";
        position: absolute;
        bottom:0.5rem;
        left:0;
        width: 2px;
        height: 3.5rem;
        background: #fff;
}

/*セクション共通項目*/
.page-title{
	font-size: 2rem;
	color: #6A463F;
	font-weight: 450;
	text-align: center;
        line-height: 5rem;
        margin-bottom: 1.5rem;
}
.page-title2{
	font-size: 1.5rem;
	color: #6A463F;
	font-weight: 450;
	text-align: center;
}

/*about*/
#about{
        background: url("../images/about.jpg");
        object-fit: cover;
	background-size: cover;
        background-position: left center;
        background-color: rgba(248,248,248,0.91);
	background-blend-mode: screen;
}
#about h3{
        text-align: center;
        margin: 4rem 0 1rem;
        font-size: 1.5rem;
        line-height: 3.5rem;
        font-weight: 600;
        /*color:#D9B568;*/   
}
#about .list{
        display: flex;
        list-style: none;
        padding: 5% 0 3% 0;
}
#about .list li{
        margin:2% 3% 3%;
        position: relative;
        object-fit: cover;
}
#about .list li img{
        border: 2.25px solid #c1a470;
}
#about .list li p{
        margin:3% 0;
        white-space: nowrap;
        position: absolute;
        top:45%;
        left:50%;
        transform: translate(-50%,-50%);
}

#lesson{
        background-color: #e9dacb;
	padding: 4rem 0;
        text-align: center;
}
.beside-scroll {
	text-align: left;
	display: flex;
	margin: 2rem 0 3rem 5%;
	overflow-x: auto;
	scroll-snap-type: x proximity;
}
.beside-scroll h3 { 
	width: 100%;
	font-size: 1.25rem;
	color: #6A463F/;
	font-weight: 400;
	line-height: 2.5rem;
	text-align: center;
}
.beside-scroll .lesson {
	width: 30%;
        min-width: 310px;
	margin: 0.5rem;
	padding: 1rem 2.5% 0;
	flex-shrink: 0;
	list-style: none;
	background-color: rgba(248,243,238,0.40);
	scroll-snap-align: center;
        position: relative;
}
.beside-scroll::-webkit-scrollbar {
	height: 10px;
}
.beside-scroll::-webkit-scrollbar-thumb {
	background: #aaa;
	border-radius: 5px;
}
.beside-scroll::-webkit-scrollbar-track {
	background: #ddd;
	border-radius: 5px;
}
.beside-scroll p {
    padding: 1.5% 0;
}
.lesson ul{
        margin-bottom: 5rem;
}
.lesson li{
	list-style: none;
}
.lesson li img{
	display: inline-block;
	object-fit: cover;
}
.lesson .button{
        position: absolute;
        bottom:0;
        left:50%;
        transform: translate(-50%,-50%);
}
.m-box {
  z-index: 999;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 3.75rem 0.5rem;
  text-align: center
}

.m-box:not(:target) {
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s, visibility .5s;
}

.m-box:target {
  opacity: 1;
  visibility: visible;
  transition: opacity .5s, visibility .5s;
}

.m-box::after {
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  content: ""
}
.m-overlay {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, .8)
}

.m-window {
  box-sizing: border-box;
  display: inline-block;
  z-index: 100;
  position: relative;
        width: 80%;
        max-width:900px;
        max-height:80%;
  padding: 3%;
  border-radius: 0.25rem;
  background: #fff;
  box-shadow: 0 0 1.5rem rgba(0, 0, 0, .6);
  vertical-align: middle;
  /*max-height: 80vh;*/
  overflow: auto;
}
.m-close {
  z-index: 20;
  position: absolute;
  top: 0;
  right: 0;
  width: 2.25rem;
  color: #95979c;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 2rem;
  text-align: center;
}
.m-close:hover {
  color: #2b2e38 
}
.m-list{
        display: flex;
        justify-content: center;
        gap:max(5%,25px);
        margin-top: 3.5%;
}
.m-list img{
        max-height:50px;
}
#instructor{
        background-color: rgba(248,243,238,1.0);
	padding: 4rem 0 5rem 0;
}
.instructor{
	margin-bottom: 1.5rem;
}
.instructor h3{
        text-align: left;
}
.instructor ul{
	display: flex;
	justify-content: space-between;
}
.instructor li{
	list-style: none;
        padding:0 0.5rem;
}
.instructor .basis{
        flex-basis: 68%;
}
.instructor img{
        width:auto;
        height: 80%;
        max-height: 400px;
        object-fit: cover;
        display: inline-block;
}

#bland{
        background-image: url("../images/brand.jpg");
        object-fit: cover;
	background-size: cover;
        background-position: center;
        background-color: rgba(26,3,21,0.82);
	background-blend-mode: multiply;
        text-align: center;
        padding-bottom: 160px;
}
#bland h2{
        text-align: center;
        padding: 4rem 0 1rem;
        font-size: 2rem;
	font-weight: 450;
        line-height: 5rem;
        margin-bottom: 1.5rem;
        color:#e9dacb;
}
#bland p{
        line-height: 2.5rem;
        margin-bottom: 2.5rem;
        color: #fff;
}

/*contact,access共通bg*/
.wb{
        background-color: rgba(250,250,250,0.80);
        padding: 2rem 1%;
        width:80vw;
        max-width:1080px;
}

#contact{
	padding: 7rem 0 10rem;
        background-image: url("../images/contact.jpg");
        object-fit: cover;
	background-size: cover;
        background-position: center top;
        background-color: rgba(233,218,203,0.6);
	background-blend-mode: screen;
        -webkit-clip-path: polygon(0 0, 100% 70px, 100% 85%, 0 100%);
        clip-path: polygon(0 0, 100% 70px, 100% 85%, 0 100%);
        margin-top: -85px;
        position: relative;
        text-align: center;
}
#contact:after{
        content: "";
        position: absolute;
        left:0;
        bottom:-81.5%;
        z-index:-1;
        width:100%;
        height:100%;
        background: #D9B568;
        -webkit-clip-path: polygon(0 80px, 100% 0%, 100% 100%, 0 100%);
        clip-path: polygon(0 80px, 100% 0%, 100% 100%, 0 100%);
}
.contact{
        text-align: center;
        display: flex;
        justify-content: center;
        list-style: none;
}
.contact div{
        padding: 2.5%;
}
.contact img{
        width:40px;
        height: auto;
        margin: 20px;
}
.contact .button{
        background-color: #D9C0A8;
        color:#fff;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0 20px 0 10px; 
}

#access{
	padding: 10rem 0 6rem;
        background-image: url("../images/access.jpg");
        object-fit: cover;
	background-size: cover;
        background-position:center;
	background-color: rgba(233,218,203,0.6);
        background-blend-mode: screen;
        -webkit-clip-path: polygon(0 80px, 100% 0%, 100% 100%, 0 100%);
        clip-path: polygon(0 80px, 100% 0%, 100% 100%, 0 100%);
        margin-top: -100px;
}
.access{
        list-style: none;
        margin: 0 12.5%;
        width: 75%;
}
.access li{
        display: flex;
        padding: 0.75rem;
        border-bottom: 1px solid rgba(82,5,6,1.00);   
}
.title{
        margin-right: 2rem;
        width: 5rem;
        text-align: justify;
        text-align-last: justify;
}
.text span{
        font-size: 0.8rem;
}

/* フッター */
footer{
	/*position: sticky;
	top: 100vh;*/
	width: 100%;
	background-color: #E1C3AE;
	text-align: center;
	padding: 3% 10% 0;
}
footer img{
	width: 30vw;
	max-width: 200px;
	min-width: 150px;
	margin-bottom: 0.5rem;
}
.footer-box {
	display: flex;
	justify-content: center;
	list-style: none;
	margin: 2%;
}
.footer-box  li {
	 padding: 0 1.5%;
        min-width:8rem;
}

/*子ページ共通設定*/
.content{
	background-color: #fff;
	padding: 7.375rem 0;
}

/*legal*/
#legal{
	text-align: center;
        padding: 5.375rem 3%;
}
.legal{
	display: inline-block;
	text-align: left;
}
.legal ul{
	list-style: "・";
}
.legal li{
	font-size: 0.85rem;
	margin: 0 0 0.5rem 6rem;
}
.legal h3 {
	margin-top: 1.5rem;
        font-weight: 300;
	font-size: 1.15rem;
	line-height: 2.5rem;
	color: #28285a;
}
.legal h4 {
	line-height: 1.5rem;
	margin: 0.5rem 1.5rem 0 3rem;
	font-weight: 300;
	font-size: 0.9rem;
}
.legal p {
	margin-left: 3.5rem;
	font-size: 0.85rem;
}
.legal ol li{
	font-size: 0.85rem;
	margin: 0 0 0rem 6rem;
}
#policy{
        margin-top:-3.5rem;
        padding-top:3.5rem;
}
.date{
	text-align: left;
	font-size: 0.8rem;
	margin-top: 2rem;
}
/*contact*/
#contact2{
	text-align: center;
        padding: 5.375rem 3%;	
}
.contact2{
	text-align: left;
}
#contact2 p {
	line-height: 1.75rem;
	margin-bottom: 2.5rem;
}
#contact2 a:hover{
	color: #fff;
}

/*タブレット縦、スマホ横等スマホ版デザイン、540～960px用*/
@media (max-width:960px){
html {
	font-size: 80%;
} 
#about .list li p{
        font-size: 0.9rem;      
        }
.instructor img{
        width:180px;
        height: auto;
        object-fit: cover;
        display: inline-block;
}
.wb{
        min-width: 520px;
        padding: 2rem 0;
}
#contact:after{
        bottom:-76.75%;
}
.contact div{
        padding: 1% 0.5%;
}
.contact .button{
        padding: 0 20px 0 0;
        letter-spacing: 0; 
}
.access{
        margin: 0 7.5%;
        width: 85%;
        }
}

/*スマホ縦用スマホ版デザイン、360～539px以下用
-------------------------------------*/
@media (max-width:539px){
html {
	font-size: 65%;
}
.wrapper {
    padding: 3% 3.75%;
}
#main-nav{
       width: 100vw;
        padding: 7rem 0 0 4.5rem;
        }
#main-nav li a{
        font-size: 1.5rem;
        line-height: 3.5rem;
}
/*自動追尾メニュー*/
nav{
        opacity: 0;
            transition: all 0.65s;
}
nav ul{
            display: flex;
            position: fixed;
            bottom: 0;
            margin: 0;
            width: 100%;
        height:100px;
        list-style: none;
        z-index:1;
        background: url("../images/menu_bg.jpg");
	    background-position: right bottom;
        background-size: cover ;
        }
nav li {
       width:33.3%;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
}
nav li a{
        color: #6a463f;
        white-space: nowrap;
        text-align: center;
}

nav li img{
        width:40px;
        height: auto;
        margin: 20px;
        object-fit: cover;
}
.isActive {
            opacity: 1;
            transition: all 0.65s;
        }
nav li::before{
    content: "";
    display: block;
    height: 100%;
    border-right: 1.25px solid #fff;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
}
nav li:first-of-type::before{
    content: none;
}
footer{
        padding-bottom: 100px;
        }
#about .list{
        gap: 0 0.35rem;
        }
        
#about .list li{
        margin:2% 0 3% 0;
}
#about .list li img{
        border: 1.5px solid #D9B568;
}

.instructor ul{
	display: block;
}
.instructor li{
	width:100%;
}
.instructor img{
        width: auto;
        height: 30vh;
        display: block;
        margin: auto;
}
.instructor .basis{
        margin-top: 3rem;
}      
.wb{
        min-width: 0;
}
#contact{
        padding: 9rem 0 12rem;
}
        
        
#contact:after{
        bottom:-79.65%;
}
.contact{
        display: block;
}
.contact div{
        padding: 2.5%;
}
#access{
        padding: 9.5rem 0 3rem;
}
.access{
        margin: 0 2.5%;
        width: 95%;
}
.access .text{
                width: 70%;
}
}