@charset "utf-8";
/* CSS設計:だいたいBEM */


html {
    font-size: 62.5%;
    scroll-behavior: smooth;
}
body {
    font-family: "Sawarabi Mincho","游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", serif;
    color: #fff;
    background-color: #302E37;
    font-size: 1.6em;
    letter-spacing: .02em;
    line-height: 1.5;
}
.br {
    display: inline-block;
}

.img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.text-L {
    font-size: 1.2em;
}
.text-smaller {
    font-size: 0.7em;
}

/*== ボタン共通設定 */
.btn{
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
	overflow: hidden;
    /*ボタンの形状*/
	text-decoration: none;
	display: inline-block;
   	border: 1px solid #ffffffba;/* ボーダーの色と太さ */
    padding: 24px 30px;
    text-align: center;
    outline: none;
    /*アニメーションの指定*/   
    transition: ease .2s;
    background-color: #ffffffba;
    font-weight: 500;
    font-size: 2rem;
}
.btn--S {
    border: 1px solid #857674;/* ボーダーの色と太さ */
    padding: 3px 8px;
    background-color: #ffffff78;
    border-radius: 2px;
    font-size: 1.5rem;
}

/*ボタン内spanの形状*/
.btn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#26242C;
}
.btn--S span {
	color:#857674;
}

.btn:hover span{
	color:#26242C;
}
.btn--S:hover span{
	color:#26242C;
}
/*== 背景が流れる（左から右） */
.bgleft:before {
 	content: '';
    /*絶対配置で位置を指定*/
 	position: absolute;
 	top: 0;
 	left: 0;
 	z-index: 2;
    /*色や形状*/
 	background:#fff;/*背景色*/
 	width: 100%;
	height: 100%;
    /*アニメーション*/
 	transition: transform .4s cubic-bezier(0.8, 0, 0.2, 1) 0s;
 	transform: scale(0, 1);
	transform-origin: right top;
}
.btn--S.bgleft:before { 
    background-color: #857674;
}

/*hoverした際の形状*/
.bgleft:hover:before{
	transform-origin:left top;
	transform:scale(1, 1);
}






/*------------------
    op
------------------*/
#op-wrapper{
    
    position: fixed;
    
    width: 100%;
    height: 100%;
    z-index: 9999;
}
.op {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    width: 100%;
    height: 100%;
    background: #59393A fixed;
}

#op-img {
    width: 98%;
    max-width: 200px;
}


.pre {
    display: inline-block;
}

.header {
    background: #302E37;
    overflow: hidden;
}
.header__inner {
    position: relative;
    display: flex;
    max-width: 1440px;
    margin: 0 auto;
    min-height: 100vh;
    height: 100vh;
    max-height: 740px;
    justify-content: center;
    
}
.fv-bg {
    position: absolute;
    height: 100vh;
    transition: all 0.6s cubic-bezier(0.25, 1.5, 0.5, 1);

}
.fv-chara {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    bottom: -310px;
    width: 800px;
}
.manja-logos {
    position: absolute;
    left: 14%;
}
.manja-logo {
    position: absolute;
    top: 12px;
    transition: all 0.6s cubic-bezier(0.25, 1.5, 0.5, 1);
}
.manja-logo2 {
    position: absolute;
    left: 108px;
    top: 224px;
    transition: all 0.6s cubic-bezier(0.25, 1.5, 0.5, 1);
}
.fv-space {
    position: absolute;
    bottom: -4px;
    right: 13%;
    transition: all 0.6s cubic-bezier(0.25, 1.5, 0.5, 1);
}

.bg--color01 {
    background-color: #816162;
}
.bg--color02 {
    background-color: #59393A;
    background-image: url(../img/bg-pattern.png);
}



















.flash-sunlight-1 {animation: flash 2s linear infinite;}
.flash-sunlight-2 {animation: flash 2.5s linear infinite;}
.flash-sunlight-3 {animation: flash 6s linear infinite;}
.flash-shine {animation: flash 3s ease infinite;}
.flash-flower {animation: flash-2 1.5s ease infinite;}
.fade-in {animation: fade-in 1.1s ease-out;}
.fade-in-down {animation: fade-in-down 1.8s ease-out;}
.rotate {animation: rotate 5s cubic-bezier(.2,.38,.8,.61) infinite;}
.scale-up {animation: scale-up 0.5s ease-out;}

@keyframes fade-in {
  0% {opacity: 0; }
  100% {opacity: 1;}
}
@keyframes fade-in-down {
  0% {opacity: 0; transform: translateY(-50px);}
  100% {opacity: 1; transform: translateY(0);}
}
@keyframes flash-2 {
    0% {opacity: 1;}
    50% {opacity: 0.6;}
}
@keyframes rotate {
    0% {transform:rotate(0);}
    100% {transform:rotate(360deg);}
}
@keyframes scale-up {
    0% {transform:scale(0);}
    50% {transform:scale(0.8);}
    100% {transform:scale(1);}
}

.fadeInToTop { animation: fadeInToTop 2.4s forwards ease; opacity: 0;}
@keyframes fadeInToTop {
    0% { opacity: 0; top: 40%; }
    30%   { opacity: 1; top: 40%; }
    50%   { opacity: 1; top: 40%; }
    100%   { opacity: 1; }
}
.fadeInDelayTrigger { opacity: 0; }
.fadeIn { animation: fadeIn 1s forwards ease-out; opacity: 0;}
@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.fadeInToRightTrigger{ opacity: 0; }


.fadeInToRight { animation: fadeInToRight 1s forwards ease-out; opacity: 0;}
@keyframes fadeInToRight {
    from { opacity: 0; transform: translate(-50px); }
    to   { opacity: 1; transform: translate(0); }
}
.fadeInToLeft { animation: fadeInToLeft 1s 2.6s forwards ease-out; opacity: 0;}
@keyframes fadeInToLeft {
    from { opacity: 0; transform: translate(50px); }
    to   { opacity: 1; transform: translate(0); }
}
.stampAnimation { animation: stampAnimation 1s 4s forwards ease; opacity: 0;}
@keyframes stampAnimation {
    0% { opacity: 0; transform: scale(1.1) rotate(-10deg); }
    35%   { opacity: 1; transform: scale(1.2)  rotate(-6deg); }
    65%   { opacity: 1; transform: scale(1.2)  rotate(-6deg); }
    100%   { opacity: 1; transform: scale(1.0)  rotate(-7deg); }
}
.fadeInToBottom { animation: fadeInToBottom 1.2s 3s forwards ease-out; opacity: 0;}
@keyframes fadeInToBottom {
    from { opacity: 0; transform: translate(0,-50px); }
    to   { opacity: 1; transform: translate(0); }
}
.fuwafuwa {
-webkit-animation:fuwafuwa 3s infinite ease-in-out alternate;
animation:fuwafuwa 3s infinite ease-in-out alternate;
}

@-webkit-keyframes fuwafuwa {
0% {-webkit-transform:translate(0, 0);}
50% {-webkit-transform:translate(0, -10px);}
100% {-webkit-transform:translate(0, 0);}
}

@keyframes fuwafuwa {
0% {transform:translate(0, 0);}
50% {transform:translate(0, -10px);}
100% {transform:translate(0, 0);}
}



.main {
    background: url(../img/paper_texture.jpg);
}

.sec {
    position: relative;
}
.sec-paddingsmall {
    padding: 4.8rem;
}
.sec__inner {
    position: relative;
    margin: 0 auto;
    padding: 8.8rem 2rem;
    max-width: 1024px;
}

.sec__content {
    margin: 2rem 0;
}
.sec__content--bg {
    padding: 2rem;
    background-color: #fff;
    border-radius: 5px;
}

.sec__description {
    font-size: 2rem;
}


.sec__head {
    margin-bottom: 4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.head {
    font-weight: 500;
    text-align: center;
}
.head--bg {
    padding: 0.3em 0;
    background-image: url(../img/rose_fabric.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center; 
}

.head__elem {
}
.head__img {
    height: 6.4rem;
}
.head__subtitle {
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.head__title {
    font-size: clamp(3.2rem, 5vw, 4rem);
}


.headSub {
    margin-bottom: 1rem;
    font-size: 2rem;
}

.headSub--3 {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    height: 4.6em;
}
.headSub--3.head--bg {
    padding: 1em 0;
    background-image: url(../img/star.png);
    background-size: 5em;
}









    
/*------------------
  about
 ------------------*/

.about {
    display: flex;
   flex-direction: column;
   align-items: center;
    gap: 2.4rem;
  }
  .about__catchcopy {
    height: 3.9rem;
  }
.about__img {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 38rem;
    
}

.about__description {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.4rem;
    font-size: 2.4rem;
    text-align: center;
}









/*------------------
  tracklist
 ------------------*/
 .tracklist {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4.8rem;
 }
.tracklist__set-img {
    max-width: 562px;
}

.tracklist__cd-list {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 641px;
    width: 100%;
    background-color: #EFE0D4;
    border-radius: 4px;
}
.tracklist__fukidashi {
    position: absolute;
    right: 40px;
    top: -40px;
}

.tracklist__title {
    display: flex;
    justify-content: center;
    padding: .4rem;
    background-color: #7E7F3B;
    border-radius: 4px 4px 0 0 ;
    width: 100%;
}

.tracklist__title-text {
    text-align: center;
    font-size: 3.2rem;
}

.tracklist__contents {
    display: flex;
    gap: 1.2rem;
    padding: 1.2rem;
    color: #4C4D09;
        width: 100%;
    max-width: 550px;
}
.tracklist__content {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    flex: 1;
}

.tracklist__content-list {
display: flex;
flex-direction: column;
list-style-type: decimal;
padding: revert;
}
.tracklist__content-title {
    padding:  .4rem 1.6rem;
    border: 1px solid #4C4D09;
    font-size: 2rem;
    text-align: center;
}







/*------------------
  price
 ------------------*/

.price {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
}
.price__title {
    font-size: 2.4rem;
}
.price__content {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}
.price__decoration-img {
    width: 2.0rem;
}

.price__decoration-img--reverse {
    transform: scaleX(-1);
}
.price__text {
    font-size: 4.8rem;
}








/*------------------
  staff
 ------------------*/
 .bg-ellipse-parent {
        display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
 }
 .bg-ellipse {
    position: absolute;

    width: 818px;
    height: 818px;
 }
.staffs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3.2rem;
}
.staff {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
}
.staff__work {
    position: relative;
    display: flex;
    justify-content: center;
    font-size: 1.8rem;
}
.staff__work::after {
    position: absolute;
    bottom: 0;
    content: "";
    border-bottom: 1px solid #fff;
    width: 28px;
}

.staff__name {
    font-size: 2.4rem;
}

.staff__links {
    display: flex;
    gap: .4rem;
}
.staff__link {
    display: block;
    padding: .2rem .8rem;
    border: 1px solid #fff;
    border-radius: .2rem;
    font-size: 1.4rem;
    transition: .2s;
}

.staff__link:hover {
    cursor: pointer;
    color: #58542E;
    background-color: #fff;
}




/*------------------
  youtube
 ------------------*/
.youtube {
margin: 0 auto;
    width: 100%;
}
.youtube--L { max-width: 600px; }
.youtube--S { max-width: 400px; }

.youtube__inner {
    position: relative;
    margin: 24px auto;
    padding-top: 56.25%;
}
.youtube__inner iframe,
.youtube__inner img{
	position: absolute;
	top: 0;
	left: 0;
    width: 100%;
    height: 100%;
}




/*------------------
  banner
 ------------------*/
 .bn-img-wrapper{
    margin:  0 auto;
    padding: 5px;
    max-width: 510px;
    text-align: center;
}
.bn-img{
    display: block;
    padding: 10px 0;
}
.bn-200{width: 200px;}
.bn-400{width: 400px;}
.bn-500{width: 500px;}




/*------------------
  footer
 ------------------*/
.footer {

}

.footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.4rem;
    padding: 1.6rem;
}
.footer__logo {
    width: 12rem;
    
}
.copyright {
    font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
    .fv-chara {
        margin-left: 50%;
    }
}
@media screen and (max-width: 600px){
    
    html{ font-size: 54.6875%;}
    
}
@media screen and (max-width: 500px){
    .sec__inner {
        padding: 6rem .8rem;
    }
    .fv-bg {
        height: 60vh;
    }
    .fv-chara {
        bottom: -220px;
    width: 710px;
    }
    .manja-logos {
        left: 7%;
    }
    .manja-logo {
        width:calc(138px * 0.8);
    }
    .manja-logo2 {
        width:calc(96px * 0.8);
            left: -48px;
    }
    .fv-space {
        left: 3%;
    }
    .header__inner {
        min-height: unset;
    }
    .about__description {
        font-size: 1.6rem;
    }
    .tracklist__content-list {
        padding-left: 2rem;
    }

    .mobile-br {
        display: block;
    }
    
}