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

#mainContainer.premiumclub {background-color:#E5EBF9;}

#Premium-Club {
	font-family: "hiragino-kaku-gothic-pron", sans-serif;
	font-weight: 300;
	font-style: normal;
	background-color:#E5EBF9;
}

.H-Mincho-font {
	font-family: "Hiragino Mincho ProN",YuMincho,serif;
}


.montserrat-font {
	font-family: "montserrat", sans-serif;
	font-weight: 200;
	font-style: normal;
}

.didot-b {
	font-family: "linotype-didot", serif;
	font-weight: 700;
	font-style: normal;
}

.englishSite {
	font-family: "montserrat", sans-serif!important;
	font-style: normal;
	font-size: 20px;
	line-height: normal;
}

.englishSite .H-Mincho-font {
	font-family: "linotype-didot", serif!important;
	font-weight: 700;
	font-style: normal;
}

.englishSite dl { margin: 0;}

.englishSite .item dl { margin: 30px 0;}

.englishSite .item dt {
	font-family: "linotype-didot", serif;
	font-weight: 700;
	font-style: normal;
	font-size: 140%;
	margin-bottom: 10px;
}

.englishSite li {
	list-style: none;
}

.main-image-container {
    position: relative;
    width: 100vw ;
    height: 100vh; /* 画面全体の高さ */
    overflow: hidden;
}

.background-image {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像をコンテナにフィットさせる */
}

.gradient-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	background-image: url("../img/premiumclub/Banner Gradient.png");
    pointer-events: none; /* グラデーションがクリックなどのイベントをブロックしないように */
}

.logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* ロゴを中央に配置 */
	width: 85%!important;
	max-width: 1000px;
    height: auto;
}

.navyBack {
    position: relative;
    z-index: 1; /* 擬似要素より前に表示するため */
    background-color: rgba(0, 18, 68, 1); /* 子要素の背景色（オプション） */
	padding: 15% 0 25%;
}

.navyBack02 {
    position: relative;
    z-index: 1; /* 擬似要素より前に表示するため */
    background-color: rgba(0, 18, 68, 1); /* 子要素の背景色（オプション） */
	padding: 3% 0 7%;
}

.navyBack::before , .navyBack02::before  {
    content: "";
    position: absolute;
    top: 0;
    left: 50%; /* 親要素の左端に合わせる */
    width: 100vw; /* ビューポート幅いっぱい */
    height: 100%; /* 親要素の高さに合わせる */
    background-color: #001244;
    background-size: cover;
    background-position: center;
    transform: translateX(-50%); /* 横方向の中心に配置 */
    z-index: -1; /* 子要素の後ろに表示するため */
}

#Premium-Club h1 {
	margin-top: 7%;
	line-height: 150%;
	color: #FFFFFF;
}

#Premium-Club h2 {
	margin-top: 170px;
}

#Premium-Club h2 {
  position: relative;
  margin-bottom: 0.2rem;
  font-weight: bold;/*太字*/
  font-size: 30px;/*フォントサイズ*/
  text-align: center;
	padding: 0 0 40px;
}

#Premium-Club h2::before {
  position: absolute;
  top: -40px;/*文字上からの位置*/
  left: 50%;/*文字左からの位置*/
  transform: translateX(-50%);
  color: #c8d7ed;/*フォントカラー*/
  font-size: 75px;/*背景フォントサイズ*/
  text-transform: uppercase;
  z-index: -1;
}

h2.text-stage::before {
  content: 'Stage';/*背景文字（★ご自由に変更ください）*/
}

h2.text-benefit::before {
  content: 'Benefit';/*背景文字（★ご自由に変更ください）*/
}

h2.text-rank::before {
  content: 'RANK';/*背景文字（★ご自由に変更ください）*/
}

#faq h2 {
  font-size: 25px;/*フォントサイズ*/
  padding: 0 0 20px;
}

.blueBack {
    position: relative;
    z-index: 1; /* 擬似要素より前に表示するため */
    background-color: rgba(177, 198, 229, 0.8); /* 子要素の背景色（オプション） */
	padding: 10px 0 0px;
	margin-bottom: 60px;
}

.blueBack02 {
    position: relative;
    z-index: 1; /* 擬似要素より前に表示するため */
    background-color: rgba(177, 198, 229, 0.8); /* 子要素の背景色（オプション） */
	padding: 10px 0 0px;
	margin-bottom: 0px;
}

.blueBack::before , .blueBack02::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%; /* 親要素の左端に合わせる */
    width: 100vw; /* ビューポート幅いっぱい */
    height: 100%; /* 親要素の高さに合わせる */
    background-color: #b1c6e5;
    background-size: cover;
    background-position: center;
    transform: translateX(-50%); /* 横方向の中心に配置 */
    z-index: -1; /* 子要素の後ろに表示するため */
}

#stage {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	margin: 50px 0 30px;
	text-align: center;
}

#stage .line2 {
	display: flex;
	justify-content:center;
	align-items: center;
	height: 175px;
}

#stage .lineTrigger {
	width: 90%;
	padding: 0 20px;
	font-size: 130%;
	margin-bottom: 20px;
}

        .gold {
            width: 100vw;
            transition: background-image 2s ease-in-out;
        }
        .gold.loaded {
            background-image: url( "../img/premiumclub/goldMark.png");
			background-repeat: no-repeat;
        }

        .diamond {
            width: 100vw;
            transition: background-image 2s ease-in-out;
        }
        .diamond.loaded {
            background-image: url( "../img/premiumclub/diamondMark.png");
			background-repeat: no-repeat;
        }


.whiteLetter { color: #fff;}
.blackLetter { color: #000;}

#kaiinTokuten tr, #kaiinTokuten th, #kaiinTokuten td { border: 1px solid #888888; padding: 20px 10px;}
#kaiinTokuten { width: 100%; text-align: center; font-size: 80%; margin-bottom: 50px; line-height: 120%;}
#kaiinTokuten th { background-color: #172C68; text-align: center; white-space: normal;}
#kaiinTokuten th.left , #kaiinTokuten td.left {text-align: left; padding-left: 20px;}
#kaiinTokuten td { text-align: center;}

.englishSite #kaiinTokuten { font-size: 75%;}
.englishSite #kaiinTokuten tr, .englishSite #kaiinTokuten th, .englishSite #kaiinTokuten td { border: 1px solid #888888; padding: 10px 5px;}

.goldBack{
	background: linear-gradient(-20deg, #D3A900 0%, #D8CC9C 100%);
}

.diamondBack{
  background: #E8B92F;/* 枠線の色*/
	background: linear-gradient(-20deg, #7A98D3 0%, #E5EBF9 100%);
}

#tokutenNaiyou .kugiri { margin: 10% 0 10%;}

#tokutenNaiyou dl.oowaku { 
	width: 100%; 
	margin-top: -15%; 
}

#tokutenNaiyou dt.oowakuTitle { 
	width: 100%;
	height: 250px;
	font-size: 150%;
	line-height: 150%;
	margin-bottom: -10%; 
	font-family: "Hiragino Mincho ProN",YuMincho,serif;
	text-align: center;
    position: relative; /* 円形背景のための基準位置 */
    display: inline-block; /* テキストの長さに応じて調整 */
    padding: 10px 20px; /* テキストの周囲にスペースを追加 */
    z-index: 1; /* テキストを背景の上に配置 */
}

#tokutenNaiyou dt.oowakuTitle::before {
    content: ''; /* 疑似要素の内容を空に設定 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50% ); /* 円を中央に配置 */
    width: 250px;
    height: 250px;
    border-radius: 50%;
	background-color: #c7d1e8;
    z-index: -1; /* テキストの後ろに配置 */
}

#tokutenNaiyou dt.oowakuTitle span { 
    position: absolute;
	width: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50% ); /* 円を中央に配置 */
}

#tokutenNaiyou dd.oowakuText {
	position: relative;
	width: 100%;
	font-size: 100%;
	margin: -10px auto 0;
	padding: 0 0 20px 0;
	z-index: 2;
}

.tokutenImages { width: 100%; text-align: right;}
.tokutenImages img {width: 100%;}

.tokutenBtn {
	background: #001244;
	margin: 0 0 0;
	padding: 10px 20px;
}

.tokutenBtn {
	background: #001244;
	margin: 0 0 0;
	padding: 10px 20px;
}

.optimaBtnBox { display: flex; flex-direction: column; margin: 5% 0 ;}
.optimaBtnBox .optimaBtn {
	width: 95%;
	margin: 2% 5% 5% 0;
}

/* signupBtn */
.optimaBtn a{
    background: #eee;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 10px 10px;
    color: #001244;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}
.optimaBtn a::before {
  content: '';
  position: absolute;
  bottom: -7px;
  right: -7px;
  width: 100%;
  height: 2px;
  background-color: #bbbbbb;
  transition: 0.2s ease 0s;
}

.optimaBtn a::after {
  content: '';
  position: absolute;
  top: 7px;
  right: -7px;
  width: 2px;
  height: 100%;
  background-color: #bbbbbb;
  transition: 0.2s ease 0.2s;
}

.optimaBtn a:hover::before {
  width: 0%;
}

.optimaBtn a:hover::after {
  height: 0%;
}

.optimaBtn a:hover {
  text-decoration: none;
  background-color: #ccc;
}

.detailsTitle {font-size: 95%;}
.detailsTitle:hover {color: rgba(177, 198, 229)!important;}

#Premium-Club .underBar {
    border-bottom: solid 3px #B1C6E5;
}
#Premium-Club .underBar:after {
    border-bottom: solid 3px #001244;
}

#Premium-Club #memberBenefits .memberBenefitsItems {
	margin: 0 0 0;
}
#Premium-Club #memberBenefits .memberBenefitsItems .prefectures {
    background-color: #001244;
	border: none;
}

.attentionBox { padding: 50px 0;}
.kiyaku {
	margin-top: 30px!important;
	padding: 5px 20px ;
	color: #ffffff;
	font-size: 14px;
	background: #001244;
	border-radius: 20px;
	display: inline-block;
}
.kiyaku a{ 
	color: #ffffff;
}
.kiyaku a:hover{ 
	color: #B1C6E5;
}

.kiyakuBlueBack {
	background-color: rgba(177, 198, 229)!important;
}
.kiyakuBlueBack a{
	color: #001244;
}
.kiyakuBlueBack a:hover{
	color: #001244;
}
.kiyakuBlueBack:hover{
	background-color: rgba(177, 198, 229,0.8)!important;
}

.premiumLink {color: #D9AE5F; text-decoration: underline;}

.PremiumClubBtn {
	margin: 0 0 50px!important;
	padding: 5px 20px ;
	background-color: rgba(177, 198, 229);
	border-radius: 20px;
	display: inline-block;
}

/*faqページ*/
#faqLink {margin: 5% auto 3%;}
#faqLink ul { display: flex; flex-wrap: wrap;}
.englishSite #faqLink ul { margin: 0 0 0;}
#faqLink li {
	width: auto;
	margin: 0 5px 10px 0;
	padding: 0.2rem 0.9em;
	display: block;
	color: #fff;
	background: rgba(255,255,255,0.2);
	cursor: pointer;
	border-radius: 50px;
	font-size: 80%;
}
#faqLink li:hover {
	background: rgba(255,255,255,0.5);
}
#faqLink li a {
	color: #fff;
}

#faq { margin-top: 5%;}
.englishSite #faq { margin: 5% 0 0;}

#faq li { background: rgba(255,255,255,0.5); margin: 0 0 5%; padding: 5%; border-radius: 10px; list-style: none;}
#faq h2 { margin: 0 0 0; text-align: left; color: #001244;}
#faq dl { margin-bottom: 50px;}
#faq dl dt {
	background-image:url(../img/premiumclub/q.svg);
	background-repeat: no-repeat;
	background-size: 22px;
	background-position: left 0 top 3px;
	padding: 0 0 0 30px;
	line-height: 160%;
}
#faq dl dd {
	background-image:url(../img/premiumclub/a.svg);
	background-repeat: no-repeat;
	background-size: 22px;
	background-position: left 0 top 10px;
	padding: 10px 0 0 30px;
	line-height: 160%;
	border-top: solid 1px #c7c7c7;
	margin-top: 10px;
}

#faq dl dd a{
	color:  #002677;
}

.englishSite #faq dl dt {
	font-family: "linotype-didot", serif;
	font-weight: 700;
	font-style: normal;
	font-size: 120%;
	line-height: 120%;
}

/* アコーディオン --------------------------------------------------------- */
/*ベース*/
.toggle-s {
	display: none;
}
.summary-label {		/*タイトル*/
	display: block;
	color: #ffffff;
	cursor: pointer;
}
.summary-label::before{		/*タイトル横の矢印*/
	content:"";
	width: 12px;
	height: 12px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: rotate(45deg);
	position: absolute;
	top:calc( 50% - 8px );
	right: 20px;
	transform: rotate(135deg);
}
.summary-label,
.summary-content {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.3s;
}
.summary-content {/*本文*/
	height: 0;
	margin-bottom:10px;
	padding:0 20px;
	overflow: hidden;
}
.summary-content:last-child {/*本文*/
	margin-bottom:0;
}
.toggle-s:checked + .summary-label + .summary-content {	/*開閉時*/
	height: auto;
	padding:20px ;
	transition: all .3s;
	background: #FFFFFF;margin-top: 20px;
}
.toggle-s:checked + .summary-label::before {
	transform: rotate(-45deg) !important;
}
.underLine { text-decoration: underline!important;}
.marginbottom-1 {margin-bottom:10px;}
.marginbottom-2 {margin-bottom:20px;}

.fixed_btn
{
  position: fixed;
  top: 100px; 
  right: 50px;
	z-index: 10;
}

.fixed_btn {
  display: inline-block;
  text-decoration: none;
  background: #D9AE5F;
  color: #FFF;
  width: 120px;
  height: 120px;
  line-height: 120px;
  border-radius: 50%;
  text-align: center;
  overflow: hidden;
  transition: .4s;
}

.fixed_btn:hover {
  background: #F2D16D;
}

/*==================================================
アニメーション設定
===================================*/

/* 下から */

.fadeUp{
animation-name:fadeUpAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 左から */

.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* 右から */

.fadeRight{
animation-name:fadeRightAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    opacity: 0;
}


/*==================================================
スーッ（枠線が伸びて出現）
===================================*/

/*枠線が伸びて出現*/

.lineTrigger{
  position: relative; /* 枠線が書かれる基点*/
  opacity:0;
}

.lineTrigger.lineanime{
  animation-name:lineAnimeBase;
  animation-duration:1s;
  animation-fill-mode:forwards;
}

@keyframes lineAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

/*上下線*/
.lineTrigger::before,
.lineTrigger::after{
  position: absolute;
  content:"";
  width:0;
  height:1px;
  background:#333;/* 枠線の色*/
}

/*左右線*/
.line2::before,
.line2::after{
  position: absolute;
  content:"";
  width: 1px;
  height:0;
  background:#333;/* 枠線の色*/
}

/*上下線*/
.gold::before,
.gold::after{
  background: #E8B92F;/* 枠線の色*/
}

/*左右線*/
.goldline::before,
.goldline::after{
  background:#CB881A;/* 枠線の色*/
}

/*上下線*/
.diamond::before,
.diamond::after{
  background: #2B9EF1;/* 枠線の色*/
}

/*左右線*/
.diamondline::before,
.diamondline::after{
  background: #3954D4;/* 枠線の色*/
}


/*上線*/
.lineTrigger::before {
  top:0;
  left:0;
}

.lineTrigger.lineanime::before {
  animation: lineAnime .5s linear 0s forwards;/*表示されて0秒後に上線が0.5秒かけて表示*/
}

/*右線*/
.line2::before{ 
  top:0;
  right:0;
}

.lineTrigger.lineanime .line2::before {
  animation: lineAnime2 .5s linear .5s forwards;/*表示されて0.5秒後に右線が0.5秒かけて表示*/
}

/*下線*/
.lineTrigger::after { 
  bottom:0;
  right:0;
}

.lineTrigger.lineanime::after {
  animation: lineAnime .5s linear 1s forwards;/*表示されて1秒後に下線が0.5秒かけて表示*/
}

/*左線*/
.line2::after{ 
  bottom:0;
  left:0;
}

.lineTrigger.lineanime .line2::after {
  animation: lineAnime2 .5s linear 1.5s forwards;/*表示されて1.5秒後に左線が0.5秒かけて表示*/
}

@keyframes lineAnime {

  0% {width:0%;}
    100%{width:100%;}
}

@keyframes lineAnime2 {
  0% {height:0%;}
    100%{height:100%;}
}

/*枠線内側の要素*/

.lineTrigger.lineanime .lineinappear{
  animation: lineInnerAnime .5s linear 1.5s forwards;/*1.5秒後に中央のエリアが0.5秒かけて表示*/
  opacity: 0;/*初期値を透過0にする*/ 
}

@keyframes lineInnerAnime{
  0% {opacity:0;}
    100% {opacity:1;}
}
/* アニメーションの回数を決めるCSS*/

.count2{  
  animation-iteration-count: 2;/*この数字を必要回数分に変更*/
}

.countinfinite{  
  animation-iteration-count: infinite;/*無限ループ*/
}

/* アニメーションスタートの遅延時間を決めるCSS*/

.delay-time05{  
  animation-delay: 0.5s;
}

.delay-time1{  
  animation-delay: 1s;
}

.delay-time15{  
  animation-delay: 1.5s;
}

.delay-time2{  
  animation-delay: 2s;
}

.delay-time25{  
  animation-delay: 2.5s;
}

/* アニメーション自体が変化する時間を決めるCSS*/

.change-time05{  
  animation-duration: 0.5s;
}

.change-time1{  
  animation-duration: 1s;
}

.change-time15{  
  animation-duration: 1.5s;
}

.change-time2{  
  animation-duration: 2s;
}

.change-time25{  
  animation-duration: 2.5s;
}

/* java： fadeInUp fadeInDown */

.animation {
    -webkit-backface-visibility:hidden;
    backface-visibility:hidden;
	visibility:hidden;
}

.fadeInUp {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:2s;
 -ms-animation-duration:2s;
 animation-duration:2s;
 -webkit-animation-name: fadeInDown;
 animation-name: fadeInDown;
 visibility: visible !important;
}

@-webkit-keyframes fadeInDown {
 0% {  opacity: 0; -webkit-transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); }
}
@keyframes fadeInDown {
 0% { opacity: 0; -webkit-transform: translateY(40px); -ms-transform: translateY(40px); transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
}

/* 英語サイト用 */
.font70 { font-size:70%;}
.font80 { font-size:80%;}
.font90 { font-size:90%;}
.font105 { font-size:105%;}
.font110 { font-size:110%;}
.font120 { font-size:120%;}
.font130 { font-size:130%;}
.font140 { font-size:140%;}
.font150 { font-size:150%;}
.font160 { font-size:160%;}
.font170 { font-size:170%;}
.font180 { font-size:180%;}
.font200 { font-size:200%;}
.font250 { font-size:250%;}
.font300 { font-size:300%;}

.line70 { line-height:70%;}
.line80 { line-height:80%;}
.line90 { line-height:90%;}
.line100 { line-height:100%;}
.line110 { line-height:110%;}
.line120 { line-height:120%;}
.line130 { line-height:130%;}
.line140 { line-height:140%;}
.line150 { line-height:150%;}
.line160 { line-height:160%;}
.line180 { line-height:180%;}
.line200 { line-height:200%;}
.line250 { line-height:250%;}
.line300 { line-height:300%;}

.marginTop5 { margin-top: 5px!important;}
.marginTop10 { margin-top: 10px!important;}
.marginTop20 { margin-top: 20px!important;}
.marginTop30 { margin-top: 30px!important;}
.marginTop40 { margin-top: 40px!important;}
.marginTop50 { margin-top: 50px!important;}
.marginTop60 { margin-top: 60px!important;}

.marginBottom5 { margin-bottom: 5px!important;}
.marginBottom10 { margin-bottom: 10px!important;}
.marginBottom20 { margin-bottom: 20px!important;}
.marginBottom30 { margin-bottom: 30px!important;}
.marginBottom40 { margin-bottom: 40px!important;}
.marginBottom50 { margin-bottom: 50px!important;}
.marginBottom60 { margin-bottom: 60px!important;}

.sp-view { display:block !important;}
.pc-view { display:none !important;}

@media (min-width: 768px) {
	
.sp-view { display: none !important;}	
.pc-view { display: block !important;}
	
#Premium-Club h2::before {
  font-size: 120px;/*背景フォントサイズ*/
}
	
.navyBack {
	padding: 3% 0 10%;
}
	
#stage {flex-direction: row;}
#stage .lineTrigger {
	width: 30%;
}
#kaiinTokuten { margin-bottom: 100px;}
.englishSite #kaiinTokuten { margin-top: 30px; margin-bottom: 20px; font-size: 100%;}
.englishSite #kaiinTokuten { font-size: 100%;}
.englishSite #kaiinTokuten tr, .englishSite #kaiinTokuten th, .englishSite #kaiinTokuten td { padding: 20px 10px;}
	
#tokutenNaiyou .kugiri { margin: 20px 0 100px;}
#tokutenNaiyou dl.oowaku { 
	width: 95%; 
	margin-top: -40%; 
}
#tokutenNaiyou dt.oowakuTitle {
	width: 40%;
	margin-bottom: 10%;
}
#tokutenNaiyou dd.oowakuText {
	background-color: rgba(229, 235, 249, 0.9); 
	margin: 0;
	padding: 20px 20px 20px 0;
	width: 100%;
}
.tokutenImages img {width: 60%;}
.optimaBtnBox {flex-direction: row; margin: 3% 0 ;}
.optimaBtnBox .optimaBtn {
	width: 40%;
	margin: 1% 5% 1% 0;
}

	
/* signupBtn */
.optimaBtn a{
    padding: 10px 25px;
}
	
}
