@charset "UTF-8";
/* CSS Document */

body {
	margin: 0;
	padding: 0;
    background: #fef8ff;
	color: #dee9e8;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 62.5%;
    letter-spacing: 0.04em;
	line-height: 1.8;
    position: relative;
    
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "palt";
    
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
a {
	outline: none;
    text-decoration: none;
}
a img {
	border: none;
    outline: none;
}
section, div, span {
    box-sizing: border-box;
}
* img {
    width: 100%;
    height: auto;
    display: block;
}
.br_pc {
    display: inherit;
}
.br_sp {
    display: none;
}



/* --- L O A D I N G --- */

.BKwrap {
    width: 100vw;
    height: 100vh;
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
    pointer-events: none;
    background: #fef8ff;
    opacity: 0;
    
    transition: all 0.3s linear;
    -webkit-transition: all 0.3s linear;
}
.BKwrap.WRtppg {
    transition: all 0.3s linear 0.5s;
    -webkit-transition: all 0.3s linear 0.5s;
}

body.bd_fade .BKwrap {
    opacity: 1;
}

.loader {
	width: 300px;
	height: 140px;
    position: fixed;
	top: 50%;
	left: 50%;
    margin: -70px 0 0 -150px;
    background: url("../img/titlelogo.png") no-repeat center center;
    background-size: contain;
	z-index: 21;
}




/* --- H E A D E R --- */

header {
    width: 100%;
    height: 60px;
    margin: 0;
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    background: #fef8ff;
    z-index: 2;
    
    -webkit-box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.4);
    box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.4);
}
.hd-menu {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 30px 0 0;
    
    display: flex;
    display: -webkit-flex;
    
    flex-wrap: nowrap;
    -webkit-flex-wrap: nowrap;
    
    justify-content: flex-end;
    -webkit-box-pack: end;
    
    align-items: center;
    -webkit-box-align: center;
}
.hd-menu div {
    display: inline-block;
    margin:  0 4px 0 0;
    padding: 0 15px 0 0;
    position: relative;
    overflow: hidden;
}
.hd-menu div::after {
    content: "";
    display: block;
    width: 1px;
    height: 18px;
    background: #7382c3;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -9px;
    transform: rotate(25deg);
    transform-origin: right top;
    opacity: 0.7;
}
.hd-menu div:nth-last-of-type(1) {
    margin: 0;
    padding: 0 0 0 3px;
}
.hd-menu div:nth-last-of-type(1)::after {
    display: none;
}
.hd-menu div span {
    display: block;
    margin: 0;
    padding: 0.25em 0;
    position: relative;
    
    font-family: itc-avant-garde-gothic-pro, sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size: 0.94rem;
    letter-spacing: 0.04em;
    line-height: 1em;

    transition: all 0.18s ease-out;
    -webkit-transition: all 0.18s ease-out;
}
.hd-menu div a span {
    /*color: #ff9b96;*/
    color: rgba(0,0,0,0);
    background: linear-gradient(5deg, rgba(255,155,150,1) 0%, rgba(115,130,195,1) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hd-menu div span   { color: #6067b1; }

.hd-menu div span::after {
    content: attr(data-text);
    display: block;
    padding: 0.25em 0;
    position: absolute;
    top: calc(100% + 7px);
    left: -20px;
    
    color: rgba(0,0,0,0);
    background: #6067b1;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hd-menu div span i {
    font-size: 1.1em;
    display: inline-block;
    margin: 1px 0;
    
    color: rgba(0,0,0,0);
    background: #d971aa;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hd-menu div a:hover span {
    transform: translate(20px, calc(-100% - 7px)) ;
}
.hd-menu div:nth-last-of-type(-n+3) a:hover span {
    transform: translateY(0) scale(0.9);
}
#MnavBT, .Mmenu-nav, .Mmenu-wrap {
    display: none;
}





/* --- T O P --- */

.top-wrap {
    width: 100%;
    height: auto;
    margin: 0;
    
    display: flex;
    display: -webkit-flex;
    
    flex-wrap: nowrap;
    -webkit-flex-wrap: nowrap;
    
    background: #fef8ff;
}
.topCT-wrap {
    width: 400px;
    height: auto;
    margin: 0;
    display: block;
    position: relative;
    margin-top: 60px; /* header H */
    background: #faedfe;
}
.top-pic {
    width: calc(100% - 400px);
    height: auto;
    margin-top: 60px; /* header H */
    display: block;
    overflow: hidden;
    position: relative;
}
.top-pic::after {
    content: "";
    display: none;
    width: 100%;
    height: 5%;
    margin: 0;
    position: absolute;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(250,237,254,0) 0%, rgba(250,237,254,1) 100%);
    
    /* JS */
    will-change: opacity;
    opacity: 0;
    transition: all 1.5s linear 1.5s;
    -webkit-transition: all 1.5s linear 1.5s;
}
.top-pic.appr::after {
    opacity: 1;
}
.top-pic div {
    width: 100%;
    height: auto;
    margin: 0;
    display: block;
    background: url("../img/bg-top_1.jpg") no-repeat top left;
    background-size: 100% auto;
    position: relative;
    
    /* JS */
    will-change: transform;
    transform: scale(2.0);
    transition: all 3.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
    -webkit-transition: all 3.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
}
.top-pic div::after {
    content: "";
    display: block;
    padding-bottom: 133.3%;
}
.top-pic.appr div {
    transform: scale(1);
}
.top-pic article {
    width: 105%;
    height: auto;
    margin: 0;
    display: block;
    background: url("../img/tp-title.png") no-repeat top left;
    background-size: 100% auto;
    position: absolute;
    top: -2.4%;
    left: -2.5%;
    
    /* JS */
    will-change: transform;
    transform: translate(5%,20%);
    transition: all 4.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
    -webkit-transition: all 4.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
}
.top-pic article::after {
    content: "";
    display: block;
    padding-bottom: 59.8%;
}
.top-pic.appr article {
    transform: translate(0,0);
}
.top-pic span {
    width: 8%;
    height: auto;
    display: block;
    margin: 0;
    position: absolute;
    right: 4%;
    top: 35%;
    
    /* JS */
    will-change: transform, opacity;
    transform: translateY(-15%);
    opacity: 0;
    transition: all 3.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
    -webkit-transition: all 3.5s cubic-bezier(0.04, 0.68, 0.15, 1) 0.5s;
}
.top-pic.appr span {
    opacity: 1;
    transform: translateY(0);
}
.topCT {
    width: 100%;
    height: auto;
    margin: 0;
    display: block;
    position: sticky;
    top: 60px; /* header H */
    left: 0;
    background: #faedfe;
}
.tp-title {
    width: 100%;
    height: auto;
    display: block;
    margin: 0;
    padding: 0 0 20px 0;
}
.tp-title div {
    width: calc(100% - 70px);
    height: auto;
    display: block;
    margin: 30px auto 50px auto;
}
.tp-title span {
    width: calc(100% - 100px);
    height: auto;
    display: block;
    margin: 0 auto 30px auto;
}
.tp-movie {
    width: calc(100% - 30px);
    height: auto;
    display: block;
    margin: 0 auto;
    padding: 15px 0;
    position: relative;
}
.tp-movie::before, .tp-movie::after {
    content: "";
    display: block;
    margin: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, rgba(255,155,150,1) 0%, rgba(115,130,195,1) 100%);
    position: absolute;
    left: 0;
}
.tp-movie::before { top: 0; }
.tp-movie::after  { bottom: 0; }

.tp-movie div {
    width: 100%;
    height: auto;
    margin: 0;
    position: relative;
    background: url("../img/mv-thum.jpg") no-repeat center center;
    background-size: 100% auto;
    border-radius: 8px;
    overflow: hidden;
    
    display: flex;
    display: -webkit-flex;
    
    justify-content: center;
    -webkit-box-pack: center;
    
    align-items: center;
    -webkit-box-align: center;
}
.tp-movie div::before {
    content: "";
    display: block;
    padding-bottom: 55%;
}
.tp-movie div::after {
    content: "";
    display: block;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 3px solid #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -40px 0 0 -40px;
    box-sizing: border-box;
    opacity: 0.6;
}
.tp-movie span {
    width: 46px;
    height: 46px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -23px 0 0 -23px;
    z-index: 1;
    color: #fff;
    opacity: 0.6;
    
    display: flex;
    display: -webkit-flex;
    
    flex-wrap: nowrap;
    -webkit-flex-wrap: nowrap;
    
    justify-content: center;
    -webkit-box-pack: center;
    
    align-items: center;
    -webkit-box-align: center;
}
.tp-movie span::after {
    content: "\f04b";
    display: block;
    margin: 0 0 0 0.15em;
    font: var(--fa-font-solid);
    font-size: 2rem;
    letter-spacing: 0;
    line-height: 1em;
}
.tp-movie p {
    width: 100%;
    height: 100%;
    display: block;
    margin: 0;
    background: rgba(0,0,0,0.5);
    opacity: 0.25;
    
    position: absolute;
    top: 0;
    left: 0;
}
.tp-movie div, .tp-movie div::after, .tp-movie span, .tp-movie p {
    will-change: transform, opacity;
    -webkit-transition: all 0.5s cubic-bezier(0.37, 0.58, 0, 1);
    transition: all 0.5s cubic-bezier(0.37, 0.58, 0, 1);
}
.tp-movie:hover div {
    background-size: 110% auto;
}
.tp-movie:hover div::after {
    transform: scale(0.9);
    opacity: 1;
}
.tp-movie:hover span {
    transform: scale(1.2);
    color: #fff;
    opacity: 1;
}
.tp-movie:hover div p {
    opacity: 1;
}
.tp-title div, .tp-title span, .tp-billSP, .tp-movie, .tp-BN {
    /* JS */
    will-change: transform, opacity;
    transform: translateY(60px);
    opacity: 0;
    transition: all 3.2s cubic-bezier(0.04, 0.68, 0.15, 1);
    -webkit-transition: all 3.2s cubic-bezier(0.04, 0.68, 0.15, 1);
}
.tp-BN         { transition-delay: 0.5s }
.tp-title div  { transition-delay: 0.8s }
.tp-title span { transition-delay: 1.1s }
.tp-movie      { transition-delay: 1.4s }

.topCT.appr .tp-title div, .topCT.appr .tp-title span, .topCT.appr .tp-billSP, .topCT.appr .tp-movie,
.topCT.appr .tp-BN {
    transform: translateY(0);
    opacity: 1;
}

.tp-billSP {
    display: none;
}
.YT {
    display: none;
}




/* --- B A N N E R --- */

.bn-wrap {
    width: calc(100% - 30px);
    height: auto;
    display: block;
    margin: 30px auto 0 auto;
    padding: 0 0 15px 0;
    position: relative;
}
.bn-wrap div {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 0 15px 0;
    
    /* JS */
    opacity: 0;
    transform: translateY(30px);
}
.tp-BN {
    width: calc(100% - 30px);
    height: auto;
    display: block;
    margin: 0 auto;
    padding: 15px 0;
}
.bn-wrap div span, .tp-BN span {
    width: 100%;
    height: auto;
    display: block;
    margin: 0;
    
    will-change: transform, opacity;
    transition: all 0.2s ease-out;
    -webkit-transition: all 0.2s ease-out;
}
.bn-wrap a:hover span, .tp-BN a:hover span {
    transform: scale(0.95);
}






/* --- F O O T E R --- */

footer {
    width: 100%;
    height: 200px;
    background: #fef8ff;
    margin: auto 0 0 0; /* 下端設置用 */
    z-index: 5;
    
    display: flex;
    display: -webkit-flex;
    
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    
    justify-content: center;
    -webkit-box-pack: center;
    
    align-content: center;
}
footer div {
    width: 160px;
    height: auto;
    margin: 0 auto;
    position: relative;
    background: url("../img/titlelogo.png") no-repeat center center;
    background-size: 100% auto;
}
footer div::after {
    content: "";
    display: block;
    padding-bottom: 45%;
}
footer p {
    width: 100%;
    height: auto;
    display: block;
    margin: 20px 0 15px 0;
    
    text-align: center;
    font-weight: 300;
    font-size: 0.7rem;
    letter-spacing: 0.02em;
    line-height: 1em;
    color: #d971aa; 
}
footer a {
    color: #d971aa !important; 
}


@keyframes mnAni1A {
    0%   { transform: translate(0,0); }
    25%  { transform: translate(0,11px); }
    50%  { transform: translate(0,11px); }
    80%  { transform: translate(0,11px) rotate(-45deg); }
    100% { transform: translate(0,11px) rotate(-45deg); }
}
@keyframes mnAni1B {
    0%   { transform: translate(0,11px) rotate(-45deg); }
    25%  { transform: translate(0,11px); }
    50%  { transform: translate(0,11px); }
    80%  { transform: translate(0,0); }
    100% { transform: translate(0,0); }
}
@keyframes mnAni2A {
    0%   { transform: scaleX(1); }
    25%  { transform: scaleX(1); }
    50%  { transform: scaleX(0); }
    100% { transform: scaleX(0); }
}
@keyframes mnAni2B {
    0%   { transform: scaleX(0); }
    50%  { transform: scaleX(0); }
    80%  { transform: scaleX(1); }
    100% { transform: scaleX(1); }
}
@keyframes mnAni3A {
    0%   { transform: translate(0,0); }
    25%  { transform: translate(0,-11px); }
    50%  { transform: translate(0,-11px); }
    80%  { transform: translate(0,-11px) rotate(45deg); }
    100% { transform: translate(0,-11px) rotate(45deg); }
}
@keyframes mnAni3B {
    0%   { transform: translate(0,-11px) rotate(45deg); }
    25%  { transform: translate(0,-11px); }
    50%  { transform: translate(0,-11px); }
    80%  { transform: translate(0,0); }
    100% { transform: translate(0,0); }
}









/* --------- < 1080px > --------- */

@media (max-width: 1080px) {

header {
    display: none;
}

#MnavBT {
    width: 56px;
    height: 56px;
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    background: transparent;
    cursor: pointer;
    z-index: 10;
}
.Mmenu-trigger,
.Mmenu-trigger span {
	display: block;
}
.Mmenu-trigger {
	position: absolute;
	width: 30px;
	height: 25px;
    top: 50%;
    left: 50%;
    margin: -12px 0 0 -15px;
}
.Mmenu-trigger span {
	position: absolute;
	width: 100%;
	height: 3px;
    border-radius: 4px;
	background-color: #d971aa;
    
    -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
    box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
}
.Mmenu-trigger span:nth-of-type(1) {
	top: 0;
    left: 0;
    animation: 0.5s mnAni1B ease-out forwards alternate;
}
.Mmenu-trigger span:nth-of-type(2) {
	top: 11px;
    left: 0;
    animation: 0.5s mnAni2B ease-out forwards alternate;
}
.Mmenu-trigger span:nth-of-type(3) {
	bottom: 0;
    right: 0;
    animation: 0.5s mnAni3B ease-out forwards alternate;
}

.Mmenu-trigger.active span:nth-of-type(1) {
	animation: 0.5s mnAni1A ease-out forwards alternate;
}
.Mmenu-trigger.active span:nth-of-type(2) {
    animation: 0.5s mnAni2A ease-out forwards alternate;
}
.Mmenu-trigger.active span:nth-of-type(3) {
    animation: 0.5s mnAni3A ease-out forwards alternate;
}
.Mmenu-trigger.bgDK span {
    background-color: #fff;
    
    -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.75);
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.75);
}
.Mmenu-trigger.active span {
    background-color: #fff;
    -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
}

.Mmenu-nav {
    width: 100%;
	height: 100vh;
    background: linear-gradient(45deg, rgba(253,151,151,0.95) 0%, rgba(115,130,195,0.95) 100%);
	margin: 0;
	padding: 0;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: none;
}
.Mmenu-wrap {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 30px 0;
    
    display: flex;
    display: -webkit-flex;
    
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    
    align-content: center;
    
    justify-content: center;
    -webkit-box-pack: center;
    
    align-items: center;
    -webkit-box-align: center;
}
.Mmenu-wrap div {
    width: 100%;
    height: auto;
    margin: 0;
    display: block;
    text-align: center;
}
.Mmenu-wrap div span {
    display: inline-block;
    margin: 11px 0;
    position: relative;
    
    font-family: itc-avant-garde-gothic-pro, sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size: 1.7rem;
    letter-spacing: 0.09em;
    line-height: 1em;
    color: #fff;
}
.Mmenu-wrap div span i {
    font-size: 1.5em;
    letter-spacing: 0;
}
.Mmenu-wrap div.snsBT {
    width: 80px;
    margin: 15px 0 0 0;
}

}





/* --------- < 800px > --------- */

@media (max-width: 800px) {

.top-wrap {
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    
    flex-direction: column-reverse;
    -webkit-box-orient: vertical;
  	-webkit-box-direction: reverse;
}
.topCT-wrap {
    width: 100%;
    margin-top: 0;
}
.top-pic {
    width: 100%;
    margin-top: 0;
}
.top-pic::after {
    display: block;
}
.top-pic span {
    width: 10%;
    right: 3%;
    top: 40%;
    transform: translateY(-20%);
}
.tp-title {
    height: 2px;
    padding: 0;
}
.tp-title div, .tp-title span {
    display: none;
}
.tp-billSP {
    width: 100%;
    height: auto;
    display: block;
    margin: 20px 0 40px 0;
    padding: 0 8%;
}
.tp-billSP { transition-delay: 0.5s }
.tp-movie  { transition-delay: 0.8s }


}







/* --------- < 500px > --------- */

@media (max-width: 500px) {

.br_pc {
    display: none;
}
.br_sp {
    display: inherit;
}
.loader {
	width: 200px;
	height: 94px;
    margin: -47px 0 0 -100px;
}
.Mmenu-wrap {
    padding: 30px 0;
}
.Mmenu-wrap div span {
    margin: 10px 0;
    font-size: 1.05rem;
    letter-spacing: 0.1em;
}
.Mmenu-wrap div span i {
    font-size: 1.3em;
    letter-spacing: 0;
}
.Mmenu-wrap div.snsBT {
    width: 45px;
    margin: 10px 0 0 0;
}

.top-pic div {
    /* JS */
    will-change: transform;
    transform: scale(3.0);
}
.top-pic article {
    /* JS */
    will-change: transform;
    transform: translate(10%,40%);
}

.tp-billSP {
    width: calc(100% - 30px);
    margin: 10px auto 20px auto;
    padding: 0;
}
footer {
    max-height: 120px;
    padding: 10px 0 0 0;
}
footer div {
    width: 90px;
}
footer p {
    margin: 10px 0;
    font-size: 0.6rem;
    line-height: 1.5em;
}

}


/* add 0930 */
.ds-pc-view {
  display: inline;
}
.ds-sp-view {
  display: none;
}
@media screen and (max-width: 768px) {
  .ds-pc-view {
    display: none;
  }
  .ds-sp-view {
    display: inline;
  }
}







