/*=====================================

【PC】

=====================================*/


/*=====================================
初期設定
=====================================*/
html, body {
	margin: 0;
	padding: 0;
	height: 100%;
	width: 100%;
	color: #111;
	font-family: "Poppins", "Noto Sans JP", sans-serif;
    font-weight: 400;
    letter-spacing: .05em
}
html {
	font-size: 62.5%;
}
body * {
	box-sizing: border-box;
	word-wrap: break-word;
}
/* タグのリセット */
h1, h2, h3, h4, h5, h6, p, address, ul, li, dl, dt, dd, caption, img, form, blockquote, label {
	padding: 0;
	margin: 0;
	border: none;
	font-size: 100%;
	font-style: normal;
	font-weight: normal;
	line-height: 100%;
	list-style-type: none;
}
ol li {
	list-style-type: decimal !important;
}
table, th, td {
	/*	border: none;*/
	font-size: 100%;
	font-style: normal;
	font-weight: normal;
	line-height: 1.75;
	list-style-type: none;
}
/* テキストエリア内文字サイズのブラウザ間での統一 */
textarea {
	font-size: 100%;
}
/* 画像の下にできる隙間を除去 */
/* 画像綺麗に縮小 */
img {
	vertical-align: bottom;
	-ms-interpolation-mode: bicubic;
	-webkit-backface-visibility: hidden;
}
/* float解除 */
.clear {
	clear: both;
	font-size: 1%;
	line-height: 1%;
	width: 1%;
	overflow:hidden;
	display:block;
	visibility: hidden;
	height: 0;
	content : "";
}
/*IE8対応*/
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
	margin:0;
	padding:0;
}
/* フォントレンダリング設定: 1x解像度ではsubpixel、2x以上の解像度ではgrayscale */
body {
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: unset;
}
@media only screen and 
(-webkit-min-device-pixel-ratio: 2),
(min-resolution: 2dppx) {
	body {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}


/*=====================================
テキスト・カラー指定
=====================================*/
a {
	color: #111;
    text-decoration: none
}
a:hover {
    text-decoration: underline
}
/*ページ内アンカー*/
.anchor {
	margin-top: -15rem;
	padding-top: 15rem
}
/*ローディング*/
.loading {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100vw;
    height: 100vh;
    background: #fff;
    transition: 1s
}
.loaded {
    opacity: 0;
    visibility: hidden
}
/*タイピング*/
.typing {
    visibility: hidden
}
/*アニメーション*/
@keyframes fdin {
    0% {
        opacity: 0
    }
    100% {
        opacity: 1
    }
}
@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0
  }
  30% {
    transform: scale(1, 1);
    transform-origin: 0 0
  }
  70% {
    transform: scale(1, 1);
    transform-origin: 0 100%
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%
  }
}
@keyframes bgextend {
    0% {
        opacity: 1;
        transform: scale(1, 1);
        transform-origin: 0 0
    }
    80% {
        opacity: 1
    }
    100% {
        opacity: 0;
        transform: scale(0, 1);
        transform-origin: 0 0
    }
}


/*=====================================
ヘッダー／フッター
=====================================*/
/*ヘッダー*/
#top header {
z-index: 1;
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 auto;
padding: 0 3.5vw;
height: 18vh;
background: rgba(255 255 255 / 0);
transition: .3s
}
.logo {
    flex-shrink: 0;
	font-family: "FuturaStdBold","Futura", "Poppins", "Noto Sans JP", sans-serif;
    font-size: 1.8229vw;
    font-size: max(1.8229vw, 2.8rem);
    font-weight: 600;
    text-transform: uppercase;
}
.logo:hover {
    text-decoration: none
}
.clone-nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 60px;
    transition: .3s;
    transform: translateY(-100%)
}
.is-show {
    transform: translateY(0)
}
.is-hide {
    transform: translateY(-100%)
}

/*メニュー*/
nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%
}
nav ul {
    display: flex;
    align-items: center;
    justify-content: center
}
nav ul li {
    margin-left: 3.125vw
}
nav ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 5px 0;
    color: #111;
    font-size: .91145vw;
    font-size: clamp(1.2rem, .91145vw, 1.4rem);
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    text-align: center;
    transition: .3s
}
nav ul li a:hover {
    text-decoration: none
}
nav ul li a::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0%;
	width: 0%;
	background: #111;
	transition: .3s
}
nav ul li a:hover::before,nav ul li a.now::before {
	width: 100%;
	height: 1px
}
#main-menu-state,
nav label,
[class^="main-menu-btn-"] {
    display: none!important;
    margin: 0;
    padding: 0;
}
/*フッター*/
footer {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 40px 9.1145vw;
    text-transform: uppercase;
}
footer p {
    font-size: 1.3rem;
    line-height: 1.75;
}
footer p a {
    margin-right: 25px
}


/*=====================================
メインヴィジュアル
=====================================*/
.mv {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 0 9.1145vw;
    width: 100%;
    height: calc( var(--vh) * 72.98 );
    min-height: 550px;
    margin-top:10%;
}
.mv h1 {
    padding: 5.545vh 0;
    font-size: 3.90625vw;
    font-size: max(3.90625vw, 4.8rem);
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1.5
}
.mv h1 span::before,
.mv h1 span::after {
font-weight: 400;
}
.mv h1 span::before {
content: "「";
margin-left: -1.953125vw;
}
.mv h1 span::after {
content: "」";
margin-right: -1.953125vw;
}

.mv p {
    font-size: 1.43229vw;
    font-size: max(1.43229vw, 1.8rem);
    font-weight: 400;
    line-height: 1.8
}
.mv p .en {
    font-size: 1.529947vw;
    font-size: max(1.529947vw, 2rem);
    font-style: normal;
    font-weight: 300;
    letter-spacing: .07em;
    line-height: 1.62;
    text-transform:uppercase;
}
.mv p br.clear {
    height: 1.7578vw
}
.mv span.scr {
    overflow: hidden;
    display: inline-block;
    position: absolute;
    right: 3.2552vw;
    bottom: 17.5%;
    padding: 10px 10px 19vh;
    font-size: 1.5rem;
    font-family: 'Poppins', sans-serif;
    letter-spacing: .01rem;
    line-height: 1;
    text-decoration: none;
    writing-mode: vertical-lr
}
.mv span.scr::after,
.mv span.scr::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 45%;
    width: 1px;
    height: 17.84558vh;
}
.mv span.scr::after {
    background: #111;
    animation: sdl 2s cubic-bezier(1, 0, 0, 1) infinite
}
.mv span.scr::before {
    background: #ddd
}
.mv .circle-box {
    display: inline-block;
}
.mv .circle-back {
    display: inline-block;
    padding: 4.5vw 5vw 5vw;
    background: url("../imgs/redcircle.png") no-repeat;
    background-size: contain;
}

/*=====================================
動画
=====================================*/
.top-movie {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-left: 9.1145vw;
    /*width: 90.8855vw;*/
    height: calc( var(--vh) * 60 )
}
#movie01-wrap {
    width: 100%;
    height: calc( var(--vh) * 60 );
position: relative;
}
#movie01-wrap video{
 position:absolute;
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
}
#wrapper_movie01 iframe {
    margin-top: -20%!important
}
@media (min-width: 1400px) {
    #wrapper_movie01 iframe {
        margin-top: -10%!important
    }
}

/*=====================================
トップページ
=====================================*/
.future {
    display: flex;
    justify-content: center;
    flex-direction: column;
    margin: auto;
    width: 81.771vw;
    height: calc( var(--vh) * 70 )
}
.future:nth-child(odd) {
    align-items: flex-start;
}
.future:nth-child(even) {
    align-items: flex-end;
    text-align: right
}
.future h2 {
    display: flex;
    font-size: 3.2552vw;
    font-size: max(3.2552vw, 4rem);
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1.8
}
.future h2 div.cover {
    position: relative;
    display: flex;
    justify-content: flex-start;
    margin-right: .7vw;
    padding-left: 1.953125vw;
    width: 21.1588vw;
    min-width: 270px;
    height: 5.85vw
}
.future h2 div.cover.long {
    width: 24.414vw;
    min-width: 310px;
}
.future h2 div.cover::before,
.future h2 div.cover::after {
    position: absolute;
    font-size: 3.2552vw;
    font-size: max(3.2552vw, 4rem);
    font-weight: 400;
}
.future h2 div.cover::before {
    content: "「";
    top: 0;
    left: 0;
    margin-left: -1.953125vw;
    margin-right: .3vw
}
.future h2 div.cover::after {
    content: "」";
    bottom: 0;
    right: 0;
    margin-left: .3vw;
    margin-right: -1.953125vw;
}
@media (max-width: 960px) {
    .future h2,
    .future h2 div.cover {
        display: block;
        line-height: 1.6
    }
    .future h2 div.cover {
        height: 5.85936vw;
        min-height: 64px;
        text-align: center
    }
    .future h2 div.cover::before {
        margin-left: -2.8vw
    }
    .future h2 div.cover::after {
        margin-right: -2.8vw;
    }
}
.future h2 span.en {
    font-size: 3.6458vw;
    font-size: max(3.6458vw, 4.4rem);
    font-weight: 600;
    letter-spacing: .07em;
    line-height: 1.6;
    text-transform: uppercase;
}
.future p {
    margin-top: 3.2552vw;
    font-size: 1.43229vw;
    font-size: clamp(1.8rem, 1.43229vw, 2.4rem);
    font-weight: 400;
    line-height: 1.8
}
/*DIGITAL HOSPITALITY*/
.hospitality {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 1450px;
}
#movie02-wrap {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 1450px;
     	overflow: hidden;
}
#movie02-wrap video {
	position: absolute;
	top: 50%;
	left: 50%;
	object-fit: cover;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
}
#wrapper_movie02 iframe {
    margin-top: -25%!important
}
.hospitality__inner {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    height: 1450px;
}
.hospitality p {
    color: #fff;
    text-align: center
}
.hospitality p + p {
    margin-top: 1.9531vw
}
.hospitality p:not(.slogan) {
    font-size: 1.43229vw;
    font-size: clamp(1.8rem, 1.43229vw, 2.4rem);
    font-weight: 400;
    line-height: 1.8;
    text-transform: uppercase;
}
.hospitality p.slogan {
    margin-top: 30vh;
    font-size: 2.2135vw;
    font-size: max(2.2135vw, 2.8rem);
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
}
.hospitality p.slogan span.brackets::before,
.hospitality p.slogan span.brackets::after {
    font-weight: 400;
}
.hospitality p.slogan span.brackets::before {
    content: "「";
    margin-left: -1vw;
}
.hospitality p.slogan span.brackets::after {
    content: "」";
    margin-right: -1vw;
}
.hospitality p.slogan strong {
    display: block;
    margin-top: .5vw;
    font-size: 5.859375vw;
    font-size: clamp(6rem, 5.859375vw, 9rem);
    letter-spacing: .07em;
    line-height: 1.1;
    text-transform: uppercase;
}
.hospitality p.slogan small {
    font-size: 1.43229vw;
    font-size: max(1.43229vw, 2rem);
    font-weight: 400;
    letter-spacing: .3em
}
.hospitality p.slogan .slide-in.downAnime {
    display: block
}
/*エフェクト*/
.txt-eff {
    opacity: 0
}
.txt-eff.done {
    animation: blur 2s ease-in forwards
}
.txt-eff.done:nth-child(1) {
    animation-delay: .1s;
}
.txt-eff.done:nth-child(2) {
    animation-delay: .2s;
}
.txt-eff.done:nth-child(3) {
    animation-delay: .3s;
}
.txt-eff.done:nth-child(4) {
    animation-delay: .4s;
}
.txt-eff.done:nth-child(5) {
    animation-delay: .5s;
}
.txt-eff.done:nth-child(6) {
    animation-delay: .6s;
}
.txt-eff.done:nth-child(7) {
    animation-delay: .7s;
}
@keyframes blur {
  0%    {opacity:0}
  20%    {text-shadow:  0 0 100px #fff}
  40%    {text-shadow:  0 0 90px #fff}
  60%    {opacity: 1;}
  80%    {text-shadow:  0 0 0px #fff;}
  100%   {text-shadow:  0 0 0px #fff;opacity: 1;}
}
/*ページ内メニュー*/
.top-bnr ul {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: auto;
    padding: 3.2552vw 0;
    width: 81.771vw;
}
.top-bnr ul li {
    position: relative;
    padding: 1.1068vw 0;
    width: 49.2%
}
.top-bnr ul li:nth-child(1)::after,
.top-bnr ul li:nth-child(2)::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #ddd;
    font-size: 0
}
.top-bnr ul li:nth-child(even)::before {
    content: "";
    display: block;
    position: absolute;
    top: 8%;
    left: -1.7%;
    width: 1px;
    height: 84%;
    background: #ddd;
    font-size: 0
}
.top-bnr ul li a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 2.1484vw 4.2968vw 2.1484vw 2.1484vw;
    background: url("../imgs/icon-arrow-blk.svg") no-repeat right 2.1484vw center / 1.0416vw
}
.top-bnr ul li a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}
.top-bnr.done ul li a::after {
    background: #111;
    animation: bgextend .6s cubic-bezier(1,.3,.0,1) forwards
}
.top-bnr.done ul li:nth-child(1) a::after {
    animation-delay: .1s;
}
.top-bnr.done ul li:nth-child(2) a::after {
    animation-delay: .2s;
}
.top-bnr.done ul li:nth-child(3) a::after {
    animation-delay: .3s;
}
.top-bnr.done ul li:nth-child(4) a::after {
    animation-delay: .4s;
}
.top-bnr ul li a {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: 2.1484vw;
    font-size: 2.8033vw;
    font-size: max(2.8033vw, 2.2rem);
    font-weight: 700;
    line-height: 1.5
}
.top-bnr ul li a span.en {
    transition: .3s;
    text-transform: uppercase;
}
.top-bnr ul li a small {
    font-size: .9765vw;
    font-size: max(.9765vw, 1.5rem);
    font-weight: 300
}
.top-bnr ul li a:hover {
    text-decoration: none
}
.top-bnr ul li a:hover span.en {
    letter-spacing: .09em;
    text-transform: uppercase;
}
.contact {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    margin-left: 9.1145vw;
    padding: 4.55729vw;
    /*width: 90.8855vw;*/
    height: 400px;
    background: #111 url("../imgs/icon-arrow-wht.svg") no-repeat right 10.8723vw center / 1.9531vw;
    color: #fff;
    font-size: 4.2317vw;
    font-size: max(4.2317vw, 3rem);
    font-weight: 700;
    line-height: 1.2
}
.contact::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    width: 100%;
    height: 100%
}
.contact.done::after {
    background: #fff;
    animation: bgextend .6s cubic-bezier(1,.3,.0,1) forwards
}
.contact span {
    position: relative;
	transition: .6s
}
.contact span::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0%;
	width: 0%;
	background: #fff;
	transition: .6s
}
.contact:hover span {
    letter-spacing: .1em
}
.contact:hover span::before {
	width: 100%;
	height: 2px
}
.contact small {
    margin-top: .9765vw;
    font-size: .9765vw;
    font-size: max(.9765vw, 1.5rem);
    font-weight: 300
}
.contact:hover {
    text-decoration: none
}


/*=====================================
共通
=====================================*/
main img {
    max-width: 100%
}
.pcno {
    display: none!important
}
