html,body {
    height: 100%;
}
body {
    margin: 0;
    padding: 0;
    font-family: sans-serif;
}
p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dt,dd,li,form,iframe,section,div,span,a {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
li {
    list-style-type: none;
}
a {
    text-decoration: none;
}
img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

.ld-overlay {
    position: fixed;
    color: #f6bed3;
    background: #000;
    font-size: 32px;
    letter-spacing: 0.4pt;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    z-index: 1000;
    overflow: hidden;
  }
.ld-overlay .loading {
    position: fixed;
    width: 150px;
    z-index: 1002;
    padding-bottom: 30px;
    transition: all 1s;
}
.ld-overlay::after {
    content: '';
    display: block;
    position: fixed;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1001;
    transition: all 0.5s 1s cubic-bezier(.49,.06,.57,.97);
}
.ld-overlay::before {
    content: '';
    display: block;
    position: fixed;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #FFF;
    z-index: 1000;
    transition: all 0.5s 1.4s cubic-bezier(.49,.06,.57,.97);
}
.ld-overlay.loaded .loading {
    opacity: 0;
}
.ld-overlay.loaded::after {
    left: 100%;
    width: 0%;
}
.ld-overlay.loaded::before {
    left: 70%;
    width: 30%;
}

body {
    background: #FFF;
}

.home-wrap {
    min-width: 1100px;
    display: flex;
    flex-direction: row-reverse;
    min-height: 700px;
    /*border: solid 10px #000;*/
}
.site-title {
    width: 43%;
}
.site-title img {
    width: 100%;
    height: auto;
    object-fit: cover;
}
.contents {
    width: 57%;
    display: flex;
    flex-direction: column;
    padding: 30px 0;
    /*height: 100%;*/
    background: #FFF;
}
.contents .btn-trailer {
    width: 71%;
    min-width: 420px;
    max-width: 520px;
    margin: auto auto 0;
}
.contents .btn-trailer a {
    transition: all 0.3s;
}
.contents .btn-trailer a:hover {
    opacity: 0.6;
}
.contents .billing {
    width: 71%;
    min-width: 420px;
    margin: 0 auto;
}
.contents .btn-theater {
    width: 56.5%;
    max-width: 410px;
    margin: 5% auto;
}
.contents .btn-theater a {
    display: block;
    border: solid 2px #000;
    border-radius: 50px;
    overflow: hidden;
    font-weight: 700;
    font-size: 25px;
    line-height: 1.2em;
    letter-spacing: 0.1em;
    padding: 0.6em;
    color: #000;
    text-align: center;
    transition: all 0.3s;
}
.contents .btn-theater a:hover {
    background: #000;
    color: #FFF;
}
.contents .bnr-official {
    width: 50%;
    max-width: 331px;
    margin: 30px auto auto;
}
.contents .bnr-official a {
    transition: all 0.2s;
}
.contents .bnr-official a:hover {
    opacity: 0.6;
}

@media screen and (min-width: 1600px) {
    .contents .btn-trailer {
        max-width: 640px;
    }
    .contents .btn-theater {
        width: 56.5%;
        max-width: 410px;
        margin: 5% auto;
    }
    .contents .btn-theater a {
        font-size: 28px;
        line-height: 1.2em;
        padding: 0.9em 0;
    }
}



@media screen and (max-width: 860px) {
    .home-wrap {
        width: 100%;
        min-width: auto;
        min-height: auto;
        display: block;
        height: auto;
        /*border: solid 3% #000;*/
    }
    .site-title {
        width: 100%;
    }
    .site-title img {
        width: 100%;
        height: auto;
        object-fit: inherit;
    }
    .contents {
        display: block;
        width: 100%;
        padding: 30px 0;
        height: auto;
    }
    .contents .btn-trailer,
    .contents .billing,
    .contents .btn-theater,
    .contents .bnr-official {
        width: 80%;
        margin: 0 auto 30px;
    }
    .contents .bnr-official {
        width: 80%;
        margin: 0 auto;
    }
    .contents .btn-trailer,
    .contents .billing {
        width: 80%;
        min-width: auto;
    }
    .contents .btn-trailer a:hover {
        opacity: 1;
    }
    .remodal iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 560/380!important;
    }
}


.site-title,
.btn-theater,
.btn-trailer,
.billing,
.koukai,
.bnr-official {
    opacity: 0;
}

.is_loaded .site-title {
    animation-name:fadeInAnime;
    animation-duration: 1s;
	animation-delay: 0s;
    animation-fill-mode:forwards;
}
.is_loaded .btn-trailer {
    animation-name:fadeInFromBottomAnime;
    animation-duration: 1s;
	animation-delay: 0.1s;
    animation-fill-mode:forwards;
}
.is_loaded .btn-theater {
    animation-name:fadeInFromBottomAnime;
    animation-duration: 1s;
	animation-delay: 0.2s;
    animation-fill-mode:forwards;
}
.is_loaded .billing {
    animation-name:fadeInFromBottomAnime;
    animation-duration: 1s;
	animation-delay: 0.3s;
    animation-fill-mode:forwards;
}
.is_loaded .bnr-official {
    animation-name:fadeInFromBottomAnime;
    animation-duration: 1s;
	animation-delay: 0.4s;
    animation-fill-mode:forwards;
}

/* アニメーション */
@keyframes fadeInAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
@keyframes fadeInFromBottomAnime {
    from {
        transform: translateY(10px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}
@keyframes zoomOutAnime {
    from {
        transform: scale(1.4);
        opacity: 0;
    }
    to {
        transform:scale(1);
        opacity: 1;
    }
}
@keyframes zoomOutBounceAnime {
    0%   { transform: scale(2.4); opacity: 0; }
    40%  { transform: scale(1.0, 1.0); opacity: 1; }
    50%  { transform: scale(1.1, 1.1); }
    100% { transform: scale(1.0, 1.0); opacity: 1; }
}
@keyframes fadeFromLeftAnime {
    0%   { transform: scale(1.2, 1.0) translateX(-600px); opacity: 0; }
    70%  { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
    76%  { transform: scale(0.9, 1.0) translateX(20px); opacity: 1; }
    100% { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
}
@keyframes fadeFromRightAnime {
    0%   { transform: scale(1.2, 1.0) translateX(600px); opacity: 0; }
    70%  { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
    88%  { transform: scale(0.9, 1.0) translateX(-20px); opacity: 1; }
    100% { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
}

@keyframes rotateFromRight30Anime {
    0%   { transform: rotateZ(20deg); opacity: 0; }
    30%  { transform: rotateZ(-4deg); opacity: 1; }
    40%  { transform: rotateZ(3deg); opacity: 1; }
    50%  { transform: rotateZ(1deg); opacity: 1; }
    60%  { transform: rotateZ(-1deg); opacity: 1; }
    80% { transform: rotateZ(0deg); opacity: 1; }
    100% { transform: rotateZ(0deg); opacity: 1; }
}