@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*
font-family: "Noto Sans JP", sans-serif;
*/
/*--------------------------------------------------
reset
-----------------------------------------------------*/
body{width: 100%;letter-spacing: 0;text-align: center;}
body, p, dl, ol, ul, h1, h2, h3, h3, h4, h5, h6, form, table, td, dt, dd {margin: 0;padding: 0;}
img{border: none; vertical-align:middle;width:100%;height:auto;}
ol,ul{list-style-type: none;}
table {/*border-collapse: collapse;*/border-spacing: 0;}

.sp{display:block;}
.pc{display:none;}
.flex{display:flex; justify-content: space-between; align-items: center;}
.inner{}

span.spbr{display:block;}
span.pcbr{display:inline;}
span.bothbr{display:block;}

/* アスタリスク　注釈用 */
ul.ast {	list-style: none;font-size: 90%;margin: 0.5em 0;}
ul.ast li {	margin: 0 0 5px 0;	padding-left: 1em;	text-indent: -1em;}
ul.ast li:before {	content: "\203b";	color: #000;}
ul.ast li.red:before {	content: "\203b";	color: #f00;}

.youtube {
position: relative;
padding-bottom: 56.25%; /* アスペクト比16:9の場合 */
padding-top: 0;
height: 0;
overflow: hidden;
margin-bottom: 0; /* YouTubeの下に余白をつける */
margin-top:0;
margin-left:auto;
margin-right:auto;
background: #000;
}
.youtube iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

a{transition: 0.3s;text-decoration: none;}
a:hover{opacity:0.6;}

/*右下固定リンク　「先頭に戻る」他　*/
#jumpbtn { position:fixed; right:0; bottom:0;z-index:500;}
#jbtnbox a{display:block;padding:0.5em; background: #000;color:#fff;position:relative;text-decoration: none;}
#jbtnbox a:hover{ 
opacity:1;	
}

#content #jbtnbox a i{font-size:280%;position: relative;left:-3px;margin:0 5px 0 0;color:#eda4c2;}

#content img.protect {
pointer-events: none;
user-select:none;
-moz-user-select:none;
-ms-user-select:none;
-webkit-user-select:none;
-khtml-user-select:none;
-webkit-user-drag: none;
-khtml-user-drag: none;
-webkit-touch-callout: none; 
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); 
}

/*--------------------------------------------------
common
-----------------------------------------------------*/
html,body {color: #fff;  background: #000;font-family: "Noto Sans JP", sans-serif;
word-wrap:break-word;
overflow-wrap: break-word;
word-break: break-all;	
font-feature-settings:"palt";
}

/*header*/
header {padding:2.5%;position: fixed;top:0;left:0;right:0; background: #000;text-align: center;z-index:99;}
header .inner{max-width:1024px;margin:auto;}
header .inner .logo{flex-basis:120px;}
header .inner ul.menu{flex-flow:column;margin:5em 0 0 0;}
header .inner ul.menu li{margin:0 0 2em 0;}
header .inner ul.menu li a{color:#fff;font-size:111%;font-weight:500;}

header .snsbtn{margin:0 1.5em 0 0}
header .snsbtn a{width:25px;margin:0 0 0 0.5em}

/*
nav
------------------------------------------------------------------------------------ */
nav.globalMenuSp {
position: fixed;
z-index: 100;
top: 0;
left: 0;
background: #000;
color: #fff;
text-align: center;
/*transform: translateY(-100%);*/
opacity: 0;
visibility: hidden;
transition: all 0.3s;
width: 100%;
height:100%;
overflow: scroll;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
/*transform: translateY(0%);*/
opacity:1;
visibility: visible;
top:0;
}
.navToggle {
position: absolute;    /* bodyに対しての絶対位置指定 */
right: 7px;
top:51%;
bottom:51%;
width: 36px;
height: 34px;
cursor: pointer;
z-index: 999;
text-align: center;
margin:auto;
}

.navToggle span {
display: block;
position: absolute;    /* .navToggleに対して */
width: 24px;
border-bottom: solid 1px #fff;
-webkit-transition: .35s ease-in-out;
-moz-transition: .35s ease-in-out;
transition: .35s ease-in-out;
left: 6px;
}
.navToggle.active span {border-bottom: solid 1px #fff;}
.navToggle span:nth-child(1) {
top: 7px;
}
.navToggle span:nth-child(2) {
top: 15px;
}
.navToggle span:nth-child(3) {
top: 23px;
}
.navToggle span:nth-child(4) {
border: none;
color: #eee;
font-size: 9px;
font-weight: bold;
top: 34px;
}
/* 最初のspanをマイナス45度に */
.navToggle.active span:nth-child(1) {
top: 16px;
left: 6px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
transform: rotate(-45deg);
border-bottom: solid 1px #fff;
}
/* 2番目と3番目のspanを45度に*/
.navToggle.active span:nth-child(2), .navToggle.active span:nth-child(3) {
top: 16px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
border-bottom: solid 1px #fff;
}

/* ------------------------------------------------- */
.wrap{max-width:1600px;margin:46px auto 0 auto; background: #fff url("../images/bg.png");color:#000;
background-attachment: fixed;
background-size: cover;
overflow: hidden;
position: relative;}
.inner{margin:auto;padding:0 1em;}
section{margin:0 auto 5em auto;position: relative;}
/* ------------------------------------------------- */

/*kv*/
.kv{background: url("../images/bg_kv01.png") no-repeat bottom center; background-size: cover;position: relative;margin:0 0 63vw 0;}



@media screen and (min-width: 425px) {
    .kv { margin:0 0 44vw 0;}
}

@media screen and (min-width: 600px) {
    .kv { margin:0 0 33vw 0;}
}

@media screen and (min-width: 700px) {
    .kv { margin:0 0 29vw 0;}
}


@media screen and (min-width: 768px) {
    .kv { margin:0 0 24vw 0;}
}

@media screen and (min-width: 840px) {
    .kv { margin:0 0 15vw 0;}
}


@media screen and (min-width: 1024px) {
    .kv { margin:0 0 10vw 0;}
}

@media screen and (min-width: 1070px) {
    .kv { margin:0 0 5vw 0;}
    
}


@media screen and (min-width: 1150px) {
    .kv { margin:0 0 2vw 0;}
    
}

@media screen and (min-width: 1200px) {
    .kv { margin:0 0 1vw 0;}
    
}

@media screen and (min-width: 1250px) {
    .kv { margin:0 0 0 0;}
    
}




.kv .bg_kv02{position: absolute;width:100%;animation: kvbg 0.9s linear forwards;transform-origin:center top;}
.kv .bg_kv03{position: absolute;width:90%;top:25px;left:-27px;right:0; margin:auto;animation: kvback 1.2s linear forwards;transform-origin:center top;}
.kv h1{position:relative;margin:auto;	animation: kv 1.5s linear forwards;transform-origin:center top;
width:140%;left:-20%;}
.kv .copy_btn{position: absolute;top:55%;width:100%;left:0;right:0;margin:0 0 3em 0;animation: kvcopy 0.7s linear forwards;animation-delay: 1.6s;opacity: 0;}
.kv .copy_btn .maincopy{font-size:170%;font-weight:700;text-shadow: 0 0 5px #71b7be;color:#fff;margin:0 0 0.75em 0}
.kv p{font-size:100%;font-weight:300;line-height:166%;margin:0 1em 2em 1em;text-align: left;}
/*kvの背景アクション*/
@keyframes kvbg {
0% {
opacity: 0;
transform: scale(0.95);  
}	
100% {
opacity: 1;
transform: scale(1.2);

}
}

/*kv直下のアクション*/
@keyframes kvback {
0% {
opacity: 0;
transform: scale(0.9);  
}	
100% {
opacity: 1;
transform: scale(1);

}
}

/*kvのアクション*/
@keyframes kv {
0% {
opacity: 0;
transform: scale(0.9);  
}	
100% {
opacity: 1;
transform: scale(1);

}
}
/*kv下のコピー*/
@keyframes kvcopy {
0% {
opacity: 0;
}	
100% {
opacity: 1;

}
}

/*ボタンの設定とアニメーション*/
a.btn{width: 70%;  border-radius:3em;color:#fff;margin:auto;padding:0.5em;display:block;font-size:133%;font-weight:500;position: relative;background: linear-gradient(to right,  #f0fd9f 0%,#e3f95a 50%,#b3df58 100%);
overflow: hidden;opacity: 1;
}
a.btn span{z-index:1;position: relative;}
a.btn:before{content:""; position: absolute;top:0;left:0;width:100%;height:100%; background: #000;border-radius:3em;transition: 0.3s;}
a.btn:after{content:"▲"; transform: rotate(90deg);display:inline-block;position: absolute;top:37%;right:10%;font-size:55%;transition: 0.3s;}
a.btn:hover{color:#000;}
a.btn:hover:before{left:100%; opacity: 1;}
a.btn:hover:after{right:7%; }

/*図形*/
.fig01,
.fig02,
.fig03,
.fig04,
.fig05,
.fig06{display:none;}

/*見出し*/  
h2{font-weight:500;margin:0 0 2em 0;text-align: center;}
h2 img{height:30px!important;width:auto!important;}
h2 span{margin:0.75em 0 0 0;line-height: 1;display: block;}

/*テーマ*/
ul.theme_icon{flex-flow:row wrap;justify-content: space-between;margin:0 0 0 7% ;}
ul.theme_icon li{flex-basis:25%;font-size:70%;margin:0 2% 3em 0;}

/*スペシャルセッション*/
#specialsession .inner{padding:0;}
ul.session{flex-flow:column;margin:0 0 1em 0;background: linear-gradient(to bottom,  #eefff9 0%,#e7f5ff 100%);padding:2em 1em 0 1em;}
ul.session li{align-items: flex-start;margin:0 0 2em 0;flex-flow:row wrap;}
ul.session li:before{flex-basis:100%;content:"";height:4px;margin:0 0 1em 0;background: linear-gradient(to right,  #fff79d 0%,#79d5c7 50%,#54c2f0 100%);}
ul.session li .thumb{flex-basis:40%;}
ul.session li .detail{flex-basis:55%;text-align: left;}
ul.session li .detail .date{font-size:122%; font-weight:700;line-height: 1;margin:0 0 0.5em 0;}
ul.session li .detail .title{font-size:100%; color:#233EA2;margin:0 0 0.5em 0;line-height: 166%;}
ul.session li .detail p{font-size:90%;margin:0 0 0.75em 0;line-height: 166%;}
ul.session li .detail .name{font-size:90%;line-height: 155%;}

.andmore a{font-size:188%;font-weight:700;font-style: italic;color:#a8d2f4;}



/*チケット購入と詳細はこちら*/
.ticket_here{background: url("../images/bg_obi.jpg") no-repeat top center; background-size: cover; height:190px; }
.ticket_here_inner{flex-basis:100%;position: relative;top:-10px;}
.ticket_here_title{font-size:122%;font-weight:500;color:#fff;margin:0 0 1em 0;text-align: center;}
.ticket_here_title span.sideright{display: inline-block;font-size:177%;transform: rotate(33deg);margin:0 0.5em ;position: relative;top:5px;}
.ticket_here_title span.sideleft{display: inline-block;font-size:177%;transform: rotate(-33deg);margin:0 0.5em ; position: relative;top:5px;}

/*イベントへのボタン*/
.eventarea{background: linear-gradient(to bottom,  #eefff9 0%,#e7f5ff 100%);padding:3em 0 2em 0;}
.eventarea_inner{width:90%;margin:auto;flex-flow:row wrap;}
.eventarea_inner .item{flex-basis: 100%;margin:0 0 0.5em 0;}
.eventarea_inner .item a{width: 100%;padding-top:100%;position: relative;
border-radius:50%;display:block; transition: all 0.4s ease-out;background: linear-gradient(to bottom,  #f0fd9f 0%,#e3f95a 50%,#b3df58 100%);overflow: hidden;}
.eventarea_inner .item .title_days{position: absolute;width:60%;top:10%;left:0;right:0; margin:auto;z-index: 1;}
.eventarea_inner .item .btnbox{position:absolute;top:68%;width:75%;left:0;right:0;margin:auto;}
.eventarea_inner .item .btn{max-width: inherit; background: #000; border-radius:3em;color:#fff;margin:auto;padding:0.5em;display:block;font-size:95%;font-weight:500;position: relative;border:1px solid #000;transition: 0.3s;letter-spacing: 2px;}
.eventarea_inner .item a:hover{opacity:1;}

/*ボタン本体のアクション */
.eventarea_inner .item a:before{content:""; position: absolute;top:0;left:0;width:100%;height:100%; background: #fff;border-radius:3em;transition: 0.3s;}
.eventarea_inner .item a:hover:before{opacity: 0;}

/*黒いボタンのアクション*/
.eventarea_inner .item a:hover .btn{background:none;color:#000;}

/*黒いボタンの矢印のアクション*/
.eventarea_inner .item a .btn:after{content:"▲"; transform: rotate(90deg);display:inline-block;position: absolute;top:35%;right:5%;font-size:55%;transition: 0.5s;}
.eventarea_inner .item a:hover .btn:after{right:3%; }

/*イベントカレンダー*/
#event_calendar .inner{padding:0;}

/*イベントレジ*/
#ticket_information .event_reg iframe{height:245vh;}




@media screen and (min-width: 425px) {

#ticket_information .event_reg iframe{height:230vh;}

}


/*チケット情報*/
#ticket_information{padding:3em 0;margin:0 0 3em 0; background: linear-gradient(to bottom,  #eefff9 0%,#e7f5ff 100%); }
.present{margin:0 0 2em 0;}

/*X ハッシュタグ #cm_odesseyでポストしよう！*/
#x_area{padding:0 0 5em 0;margin:0 0 0 0;}
.x_area_inner{flex-flow: column;}
.x_area_inner .x_post {margin:0 0 2em 0;}
.x_area_inner .timeline {width:100%;}

/* フッター */
footer{padding:1.5em;}

/*フローティングボタン*/
.floatingbox{position:fixed;bottom:3em;right:-9em;}
.floatingbox a{display:flex;width:200px;height:77px;border-radius:7em;align-items: center;background: #000;padding:0 0 0 1em;transition: 0.5s;overflow: hidden;border:1px solid #fff;}
.floatingbox a:before{content:""; position: absolute;top:0;left:0;width:100%;height:100%;border-radius:7em;background: linear-gradient(to right,  #f0fd9f 0%,#e3f95a 50%,#b3df58 100%); transition: 0.3s;}
.floatingbox a:hover:before{left:100%; opacity: 1;}
.floatingbox a span{width:44px;display:block;z-index:1;}
.floatingbox a span.hv{display:none;}
.floatingbox a:hover{ background:#000;opacity: 1;}
.floatingbox a:hover span.df{display:none;}
.floatingbox a:hover span.hv{display:block;}


/* //////////////////////////////////////////////////*/
@media screen and (min-width: 768px) {
/* //////////////////////////////////////////////////*/
.sp{display:none;}
.pc{display:block;}
span.spbr{display:inline-block;}
span.pcbr{display:block;}



/* ------------------------------------------------- */
.wrap{margin:66px auto 0 auto; }
.inner{width:88%;margin:auto;padding:0;}
section{margin:0 auto 10em auto;}
/* ------------------------------------------------- */   
/*kv*/
/*.kv{margin:0 0 12em 0;}*/
.kv .bg_kv02{}
.kv .bg_kv03{width:66%;}
.kv h1{width:100%;left:0;}
.kv .copy_btn{margin:0 0 3em 0;}
.kv .copy_btn .maincopy{font-size:260%;}
.kv p{font-size:122%;margin:0 0 3em 0;text-align: center}    
/*kvの背景アクション*/
@keyframes kvbg {
0% {
opacity: 0;
transform: scale(0.95);  
}	
100% {
opacity: 1;
transform: scale(1);

}
}   

/*ボタンの設定とアニメーション*/
a.btn{max-width: 450px;padding:0.75em;}


/*図形*/
.fig01{position:absolute;width:11%;left:0;top:13%;display:block;}
.fig02{position:absolute;width:11%;right:0;top:3%;display:block;}
.fig03{position:absolute;width:12%;left:-2%;top:60%;display:block;}
.fig04{position:absolute;width:10%;right:0;top:3%;display:block;}
.fig05{position:absolute;width:12%;left:-2%;top:52%;display:block;}
.fig06{position:absolute;width:13%;left:-2%;top:8%;display:block;}    

/*テーマ*/    
ul.theme_icon{flex-flow:row wrap;margin:0;}
ul.theme_icon li{flex-basis:12%;margin:0 8% 3em 0;font-size:90%;}
ul.theme_icon li:nth-child(3n){margin-right:8%;}
ul.theme_icon li:nth-child(5n){margin-right:0;}

/*スペシャルセッション*/
ul.session{flex-flow:row wrap;margin:0 0 2em 0;align-items: flex-start;  padding:3em 3em 0 3em;}
ul.session li{flex-basis:47%;margin:0 0 3em 0;}
ul.session li:before{height:5px;margin:0 0 1.5em 0;}
ul.session li .thumb{flex-basis:48%;}
ul.session li .detail{flex-basis:47%;}
ul.session li .detail .date{font-size:133%; }
ul.session li .detail .title{font-size:111%;}

.andmore a{font-size:234%;}
    
/*チケット購入と詳細はこちら*/
.ticket_here{ height:360px; }
.ticket_here_inner{top:-30px;}
.ticket_here_title{font-size:133%;margin:0 0 1.5em 0;}
.ticket_here_title span.sideright{font-size:199%;}
.ticket_here_title span.sideleft{font-size:199%;}

/*イベントへのボタン*/
.eventarea{padding:3em 0;}
.eventarea_inner{width:64%;margin:auto;justify-content: center;flex-flow:row nowrap;}
.eventarea_inner .item{flex-basis: 47%;margin:0 1%}
.eventarea_inner .item .btnbox{width:68%;}
.eventarea_inner .item .btn{font-size:111%;}
@media screen and (max-width: 1600px) {
.eventarea_inner .item .btn{font-size:1vw;}  
}

/*チケット情報*/
#ticket_information{padding:3em 0 5em 0;margin:0 0 5em 0; }
.present{margin:0 0 4em 0;}

    
/*イベントレジ*/
#ticket_information .event_reg iframe{height:1300px;}    
    
    
/*X ハッシュタグ #cm_odesseyでポストしよう！*/
#x_area{padding:0 0 5em 0;margin:0 0 0 0;}
.x_area_inner{align-items:flex-start;flex-flow:row nowrap;}
.x_area_inner .x_post {flex-basis:48%;amrgin:0;}
.x_area_inner .timeline {flex-basis:48%;}

/*フローティングボタン*/
.floatingbox{position:fixed;bottom:10em;right:-11em;transform: rotate(-45deg);}
.floatingbox a{display:flex;width:350px;height:160px;border-radius:7em;align-items: center;background: #000;padding:0 0 0 2em;transition: 0.5s;overflow: hidden;border:1px solid #fff;}
.floatingbox a:before{content:""; position: absolute;top:0;left:0;width:100%;height:100%;border-radius:7em;background: linear-gradient(to right,  #f0fd9f 0%,#e3f95a 50%,#b3df58 100%); transition: 0.3s;}
.floatingbox a:hover:before{left:100%; opacity: 1;}
.floatingbox a span{width:100px;display:block;z-index:1;transform: rotate(45deg);}
.floatingbox a span.hv{display:none;}
.floatingbox a:hover{ background:#000;opacity: 1;}
.floatingbox a:hover span.df{display:none;}
.floatingbox a:hover span.hv{display:block;}   

/* //////////////////////////////////////////////////*/
} /* ////////////////////////////////////////////////*/
/* //////////////////////////////////////////////////*/


/* //////////////////////////////////////////////////*/
@media screen and (min-width: 1024px) {
/* //////////////////////////////////////////////////*/
.wrap{margin:88px auto 0 auto; }
.inner{width:64%;margin:auto;padding:0;}   
/*header*/
header {padding:1.5em 2.5%;position: fixed;width:95%;top:0;left:0;right:0; background: #000;text-align: center;z-index:99;}
header .inner .logo{flex-basis:180px;}
header .inner ul.menu{justify-content: flex-end;flex-flow: row nowrap;margin:0;}
header .inner ul.menu li{margin:0 0 0 2em;}
header .inner ul.menu li a{color:#fff;font-size:111%;font-weight:500;}
header .snsbtn{margin:0 0 0 2em}
header .snsbtn a{width:25px;margin:0 0 0 0.5em}
     
.navToggle {display:none;}	   
nav.globalMenuSp {position: relative;z-index: 100;background: none;transform: none;display:inline-block;opacity: 1;		visibility: visible;
/*IE(Internet Explorer)・Microsoft Edgeへの対応*/
-ms-overflow-style: none;
/*Firefoxへの対応*/
scrollbar-width: none;}
/*Google Chrome、Safariへの対応*/
nav.globalMenuSp::-webkit-scrollbar{
display: none;
}
    
 /*見出し*/    
h2{display:flex;flex-flow: row nowrap;justify-content: flex-start;align-items: flex-end;margin:0 0 2em 0;}
h2 img{height:55px!important;width:auto!important;}
h2 span{margin:0 0 0 0.75em;line-height: 1;}
#specialsession h2 span{position: relative;top:-10px;}    
    
    
/* //////////////////////////////////////////////////*/
} /* ////////////////////////////////////////////////*/
/* //////////////////////////////////////////////////*/    
    

/*
left:50%;transform: translateX(-50%);-webkit- transform: translateX(-50%);
*/

@media print {
.fade{opacity:1;}
.fadein{opacity:1.0;}	
#content #jumpbtn {display:none; }  
}



