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

【SMP】

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


/*=====================================
初期設定
=====================================*/
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.8;
	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;
}

.annotation{
	text-align: right;
	font-size: 1rem;
}

/* フォントレンダリング設定: 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
}
/*ページ内アンカー*/
.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: calc(var(--vh) * 100);
    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: 40;
        display: flex;
        justify-content: justify;
        align-items: center;
        position: fixed;
        top: 0;
        left: 0;
        height: 6rem;
        background-color: transparent;
    }
.logo {
	position: relative;
	z-index: 100;
    flex-shrink: 0;
	font-family: "FuturaStdBold", "Futura", "Poppins", "Noto Sans JP", sans-serif;
    font-size: 7.4667vw;
    font-size: max(7.4667vw, 2.4rem);
    font-weight: 600;
    text-transform: uppercase;
}
header .logo {
    margin-left: 1.4rem;
    text-transform: uppercase;
}
header.clone-nav {
    display: none
}
/*メニュー*/
nav.globalmenu {
	z-index: 39;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 60px;
	background: rgba(255 255 255 / 1);
	text-align: right
}

/*フッター*/
footer {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5vw 6vw calc(env(safe-area-inset-left) + 5vw);
    text-transform: uppercase;
}
footer .logo {
    font-size: 5.3333vw;
    font-size: max(5.3333vw, 1.8rem);
    text-transform: uppercase;
}
footer p {
    font-size: 1rem;
    line-height: 1.75;
}
footer p a {
    margin-right: 2.5vw
}


/*=====================================
メインヴィジュアル
=====================================*/
.mv {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 0 10vw 0 5vw;
    width: 100%;
    min-height: calc( (var(--vh) * 90) - 60px );
    height: 568px
}
.mv h1 {
    padding: 8vh 0 8vh;
    font-size: 10.1333vw;
    font-size: max(10.1333vw, 3.6rem);
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1.5
}
.mv p {
    font-size: 4.8vw;
    font-size: clamp(1.4rem, 4.8vw, 1.6rem);
    font-weight: 400;
    line-height: 1.8
}
.mv p .en {
    font-size: 5.3333vw;
    font-size: clamp(1.6rem, 5.3333vw, 1.8rem);
    font-style: normal;
    font-weight: 400;
    letter-spacing: .07em;
    line-height: 1.6;
    text-transform:uppercase;
}
.mv p br.clear {
    height: 1.7578vw
}
.mv span.scr {
    overflow: hidden;
    display: inline-block;
    position: absolute;
    right: 3.2552vw;
    bottom: 0;
    padding: 10px 10px 19vh;
    font-size: 1.3rem;
    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: block;
}
.mv .circle-back {
    display: inline-block;
    padding: 4vw 5vw 5vw;
    background: url("../imgs/redcircle.png") no-repeat;
    background-size: contain;
}
.mv .circle-msg {
    padding: 5vw;
}

/*=====================================
動画
=====================================*/
.top-movie {
    overflow: hidden;
    width: 100vw;
    height: 56.25vw
}
#movie01-wrap {
    position: relative;
    width: 100%;
    height: 56.25vw;
}
#movie01-wrap video{
 position:absolute;
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
}
#wrapper_movie01 iframe {
    margin-top: -16%!important
}


/*=====================================
トップページ
=====================================*/
.future {
    display: flex;
    justify-content: center;
    flex-direction: column;
    margin: auto;
    padding: 20vw 0;
    width: 82vw;
}
.future h2 {
    min-height: 40.95984vw;
    font-size: 8vw;
    font-size: max(8vw, 2.6rem);
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1.6
}
.future h2 div.cover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-right: .7vw;
    padding-left: 4.9333vw;
    width: 52.92vw;
    height: 13.65328vw
}
.future h2 div.cover.long {
    width: 61.48vw
}
.future h2 div.cover::before,
.future h2 div.cover::after {
    position: absolute;
    font-weight: 400;
}
.future h2 div.cover::before {
    content: "「";
    top: 0;
    left: 0;
    margin-left: -4.9333vw;
    margin-right: .3vw
}
.future h2 div.cover::after {
    content: "」";
    bottom: 0;
    right: 0;
    margin-left: .3vw;
    margin-right: -4.9333vw;
}
.future h2 span.en {
    font-size: 9vw;
    font-size: max(9vw, 3rem);
    font-weight: 600;
    letter-spacing: .07em;
    line-height: 1.4933;
    text-transform: uppercase;
}
.future p {
    margin-top: 3.2552vw;
    font-size: 4vw;
    font-size: max(4vw, 1.2rem);
    font-weight: 400;
    line-height: 1.8
}
@media (max-width: 360px) {
    .future {
        width: 88vw
    }
}
/*DIGITAL HOSPITALITY*/
.hospitality {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 900px;
}
#movie02-wrap {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 900px
}
#movie02-wrap video{
   object-fit: cover;  /* ラッパーにに収まるように拡大縮小 */
  object-position: 50% 50%;  /* 動画の位置の調整 */
 height: 900px
}
#wrapper_movie02 iframe {
    margin-top: -50%!important
}
.hospitality__inner {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 6vw;
    width: 100%;
    height: 800px;
}
.hospitality p {
    color: #fff;
    text-align: center
}
.hospitality p + p {
    margin-top: 4vw
}
.hospitality p:not(.slogan) {
    font-size: 4vw;
    font-size: max(4vw, 1.2rem);
    font-weight: 400;
    line-height: 1.8
}
.hospitality p.slogan {
    margin-top: 20vh;
    font-size: 4vw;
    font-size: max(4vw, 1.4rem);
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.6
}
.hospitality p.slogan span.brackets::before,
.hospitality p.slogan span.brackets::after {
    font-weight: 400;
}
.hospitality p.slogan span.brackets::before {
    content: "「";
    margin-left: -2vw;
}
.hospitality p.slogan span.brackets::after {
    content: "」";
    margin-right: -2vw;
}
.hospitality p.slogan strong {
    display: block;
    margin-top: .5vw;
    font-size: 12.8vw;
    font-size: max(12.8vw, 4.2rem);
    line-height: 1.1;
    text-transform: uppercase;
}
.hospitality p.slogan small {
    font-size: 3.4667vw;
    font-size: max(3.4667vw, 1.1rem);
    font-weight: 400;
    letter-spacing: .3em
}
.hospitality p.slogan .slide-in.downAnime {
    display: block
}
/*エフェクト*/
.txt-eff {
    opacity: 0
}
.txt-eff.done {
    animation: blur 2s cubic-bezier(1, 0, 0, 1) 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 50px #fff}
  40%    {text-shadow:  0 0 40px #fff}
  60%    {opacity: 1;}
  80%    {text-shadow:  0 0 0px #fff;}
  100%   {text-shadow:  0 0 0px #fff;opacity: 1;}
}
/*ページ内メニュー*/
.top-bnr ul {
    margin: auto;
    padding: 5vw 0;
    width: 100%;
}
.top-bnr ul li {
    position: relative;
    padding: 6vw;
    width: 100%;
    border-bottom: solid #ddd 1px
}
.top-bnr ul li:last-child {
    border-bottom: none
}
.top-bnr ul li a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-right: 30px;
    background: url("../imgs/icon-arrow-blk.svg") no-repeat right 0 center / 16px
}
.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: 0 4.5vw 0 0;
    font-size: 4.8vw;
    font-size: max(4.8vw, 2.2rem);
    font-weight: 700;
    line-height: 1.2
}
.top-bnr ul li a span.en {
    transition: .3s;
    text-transform: uppercase;
}
.top-bnr ul li a small {
    margin-top: 2vw;
    font-size: 3.4667vw;
    font-size: max(3.4667vw, 1.1rem);
    font-weight: 400
}
.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: 6vw;
    padding: 6vw;
    width: 94vw;
    height: 200px;
    background: #111 url("../imgs/icon-arrow-wht.svg") no-repeat right 6vw center / 16px;
    color: #fff;
    font-size: 9vw;
    font-size: max(9vw, 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 small {
    margin-top: .9765vw;
    font-size: 3.4667vw;
    font-size: max(3.4667vw, 1.1rem);
    font-weight: 400
}


/*=====================================
共通
=====================================*/
main {
    padding-top: 60px
}
main img {
    max-width: 100%
}
.spno {
    display: none!important
}