@charset 'utf-8';

/* =========================================================
リセット用css
========================================================= */
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}

ol, ul {
list-style: none;
}

blockquote, q {
quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}

table {
border-collapse: collapse;
border-spacing: 0;
}

img {
max-width: 100%;
height: auto;
image-rendering: -webkit-optimize-contrast;
}

a {
text-decoration: none;
cursor: pointer;
}

html {
font-size: 62.5%;
height: 100%;
}

body {
position: relative;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Avenir, "Helvetica Neue", Helvetica, Arial, 游ゴシック体, YuGothic, "游ゴシック Medium", "Yu Gothic Medium", 游ゴシック, "Yu Gothic", sans-serif;
width: 100%;
height: 100%;
font-size: 1.6rem;
font-weight: bold;
color: #333333;
line-height: 1.7;
background: #F8FAFA;
}

@media screen and (min-width: 600px) {
body {
font-size: 1.8rem;
}
}

/* ----------------------------------------------------
一番外枠のdiv
---------------------------------------------------- */
/* .wrapper {} */

/* コンテンツが入る1024px */
.wrapper-inner {
position: relative;
width: 100%;
max-width: 600px;
margin: 0 auto;
padding: 0 0;
background: #F8FAFA;
}

@media screen and (min-width: 1024px) {
.wrapper-inner {
position: relative;
display: flex;
justify-content: center;
width: 96%;
max-width: 1024px;
}
}

/* ----------------------------------------------------
共通スタイル
---------------------------------------------------- */
h2 {
font-size: 2.4rem;
/* text-align: center; */
line-height: 2.2;
}

h3 {
font-size: 2.2rem;
text-align: center;
line-height: 1.8;
margin: 0 0 0.8em 0;
}

@media screen and (min-width: 600px) {
h2 {
font-size: 3.2rem;
line-height: 2;
}

h3 {
font-size: 2.8rem;
}
}

/* h3のサブタイトル */
.h3-sub {
display: block;
margin: 0 0 0.5em;
font-size: 0.6em;
}

/* テキスト --------------*/
.text-green {
color: #35B1BC;
}

/* リード文 */
.lead {
width: 78%;
line-height: 2;
margin: 0 auto;
text-align: center;
letter-spacing: 1px;
font-size: 1.4rem;
}

@media screen and (min-width: 600px) {
.lead {
font-size: 1.6rem;
}
}

/* 599px以下表示 --------------*/
.only-lt600px {
display: block;
}

/* 600px以上表示 --------------*/
.only-gt600px {
display: none;
}

@media screen and (min-width: 600px) {
.only-gt600px {
display: block;
}

.only-lt600px {
display: none;
}
}

/* レイアウト --------------*/
.section-block {
padding: 5.6rem 0;
}

@media screen and (min-width: 600px) {
.section-block {
padding: 6.4rem 0;
}
}

@media screen and (min-width: 1024px) {
.section-block {
padding: 8rem 0;
}
}

/* 背景 --------------*/
.bg-white {
padding: 0.8rem 0.8rem;
background: #ffffff;
}

/* アニメーション --------------*/
.anime-box {
opacity: 0;
}

/* うわふわ上下に動くアニメーション */
@keyframes fuwafuwa {
0%, 100% {
transform: translateY(0);
}

50% {
transform: translateY(-8px);
}
}

/* このクラスをつけると回転を無限に繰り返します */
.anime-fuwafuwa {
animation: 4s fuwafuwa infinite;
}

/* ぼかしからの出現 */
.blur {
animation-name: blurAnime;
animation-duration: 1.6s;
animation-fill-mode: forwards;
}

@keyframes blurAnime {
from {
filter: blur(1px);
transform: scale(1.02);
}

to {
filter: blur(0);
transform: scale(1);
}
}

/* フェードイン */
.fadeIn {
animation-name: fadeInAnime;
animation-fill-mode: backwards;
animation-duration: 1s;
animation-iteration-count: 1;
animation-timing-function: ease;
animation-delay: 0.5s;
animation-direction: normal;
}

@keyframes fadeInAnime {
0% {
opacity: 0;
}

100% {
opacity: 1;
}
}

/* フェードアップ */
.fadeUp {
animation-name: fadeUpAnime;
animation-duration: 1s;
animation-fill-mode: forwards;
opacity: 0;
}

@keyframes fadeUpAnime {
from {
opacity: 0;
transform: translateY(80px);
}

to {
opacity: 1;
transform: translateY(0);
}
}

/* ----------------------------------------------------
左カラム
---------------------------------------------------- */
/* .left-column {
  display: none;
} */

@media screen and (min-width: 1024px) {
.left-column {
position: -webkit-sticky;
/*Safari用*/
position: sticky;
top: 0;
display: flex;
align-content: space-between;
flex-wrap: wrap;
width: 424px;
height: 100vh;
padding: 8% 0 16%;
background: transparent url(../img/model-laptop.png) no-repeat center bottom;
z-index: 4;
box-sizing: border-box;
}

.left-column>* {
width: 100%;
}
}

/* header + nav 固定 */
/* .header-nav-wrapper {
  position: absolute;
  top: 4rem;
  left: 0;
} */

.header-nav-wrapper header {
display: none;
}

@media screen and (min-width: 1024px) {
.header-nav-wrapper header {
display: block;
}
}

/* ナビゲーション --------------*/
/* ----------------------------------------------------
ハンバーガーメニュー
https://coco-factory.jp/ugokuweb/
---------------------------------------------------- */
/*========= ナビゲーションのためのCSS ===============*/
/* 1023px以下の場合ハンバーガーメニューを表示 */
@media screen and (max-width: 1023px) {
#g-nav {
/*position:fixed;にし、z-indexの数値を大きくして前面へ*/
position: fixed;
z-index: 999;
/*ナビのスタート位置と形状*/
top: 0;
right: -120%;
width: 100%;
/*ナビの高さ*/
height: 100vh;
/* background: #f8fafa url(../img/model-laptop.png) no-repeat bottom right; */
background: #f8fafa;
/*動き*/
transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive {
right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
/*ナビの数が増えた場合縦スクロール*/
position: fixed;
z-index: 999;
width: 100%;
/*表示する高さ*/
height: 100vh;
padding: 8rem 0 0;
overflow: auto;
-webkit-overflow-scrolling: touch;
transition: all .4s leaner 1s;
}

/* ロゴ */
#g-nav h1 {
text-align: center;
margin: 7.2rem 0 0;
}

/*ナビゲーション*/
#g-nav ul {
/*ナビゲーション天地中央揃え*/
position: absolute;
z-index: 999;
top: 280px;
left: 50%;
width: 80%;
transform: translate(-50%, -50%);
}

/*リストのレイアウト設定*/
#g-nav li {
list-style: none;
text-align: left;
border-bottom: 0.5px solid #cccccc;
}

#g-nav li a {
color: #101010;
text-decoration: none;
padding: 1.6rem;
/* display: block; */
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: bold;
}
}

@media screen and (min-width: 600px) {
#g-nav h1 img {
width: 240px;
}
}

/*背景の設定*/
.navigation li a {
/*線の基点とするためrelativeを指定*/
position: relative;
display: flex;
align-items: center;
width: 200px;
transition: .3s;
}

.navigation li.current a,
.navigation li a:hover {
color: #35b1bc;
}

.navigation li a::before {
content: '';
width: 6px;
height: 6px;
margin-right: 1.6rem;
border-radius: 50%;
border: 1px solid #333333;
transition: .3s;
}

/* hover */
.navigation li a:hover::before {
width: 6px;
height: 6px;
border-radius: 0;
border: 1px solid #35b1bc;
background-color: #35b1bc;
transform: rotate(90deg);
}

/* 1024px以上の場合 */
@media screen and (min-width: 1024px) {
.navigation {
padding: 2rem 0 0 2rem;
}

.navigation li {
padding: 1.6rem;
box-sizing: border-box;
}

.navigation li a {
color: #333333;
}
}

/*==================================================
　5-2-1 3本線が×に
===================================*/
@media screen and (max-width: 1023px) {

/*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
.openbtn {
/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
position: fixed;
top: 0;
right: 0;
background: #35b1bc;
cursor: pointer;
width: 50px;
height: 50px;
/* border-radius: 5px; */
z-index: 1000;
}

/*ボタン内側*/
.openbtn span {
display: inline-block;
transition: all .4s;
/*アニメーションの設定*/
position: absolute;
left: 14px;
height: 3px;
border-radius: 2px;
background: #fff;
width: 45%;
}

.openbtn span:nth-of-type(1) {
top: 15px;
}

.openbtn span:nth-of-type(2) {
top: 23px;
}

.openbtn span:nth-of-type(3) {
top: 31px;
}

/*activeクラスが付与されると線が回転して×に*/
.openbtn.active span:nth-of-type(1) {
top: 18px;
left: 18px;
transform: translateY(6px) rotate(-45deg);
width: 30%;
}

.openbtn.active span:nth-of-type(2) {
opacity: 0;
/*真ん中の線は透過*/
}

.openbtn.active span:nth-of-type(3) {
top: 30px;
left: 18px;
transform: translateY(-6px) rotate(45deg);
width: 30%;
}
}

@media screen and (min-width: 769px) {
.openbtn {
top: 2.8rem;
}
}

/* あなたのタイプは？ボタン --------------*/
.btn-type {
position: absolute;
top: 300px;
right: 0;
z-index: 2;
}

@media screen and (min-width: 1024px) {
.btn-type {
position: relative;
top: 3.2rem;
left: 0;
}
}

/* ----------------------------------------------------
メイン（右カラム）
---------------------------------------------------- */
.right-column {
width: 100%;
background: #ffffff;
/* overflow-x: hidden; */
}

@media screen and (min-width: 1024px) {
.right-column {
position: relative;
width: 60%;
max-width: 600px;
box-shadow: 8px 8px 8px rgba(0, 0, 0, 0.1);
margin: 0 0 4rem;
z-index: 3;
}
}

main {
position: relative;
}

/* ctaボタン */
.btn-cta {
position: sticky;
bottom: 0;
z-index: 100;
transition: .3s;
}

/* .btn-cta:hover {
  background: #37c0cc;
} */

.btn-cta a {
display: block;
width: 100%;
margin: 0 auto;
padding: 1rem 0;
background-image: linear-gradient(42deg, rgba(53, 177, 188, 1) 0%, rgba(11, 247, 186, 1) 64%);
background-size: 200% auto;
font-size: 1.8rem;
color: #ffffff;
letter-spacing: 1px;
text-align: center;
transition: .3s;
}

@media screen and (min-width: 600px) {
.btn-cta a {
padding: 2rem 0;
font-size: 2.4rem;
}
}

.btn-cta a:hover {
background-position: left 32% top;
/* opacity: .95; */
}

.btn-cta a::after {
content: '';
position: absolute;
top: 48%;
right: 4%;
transform: translate(-50%, -50%);
display: block;
width: 16%;
height: 17px;
background: transparent url(../img/cta-arrow.png) no-repeat 0 0;
background-size: contain;
}

@media screen and (min-width: 600px) {
.btn-cta a::after {
top: 44%;
right: 8%;
}
}

/* メインビジュアル --------------*/
.mainvisual {
display: flex;
align-items: center;
width: 100%;
max-width: 600px;
height: 426px;
background: #ffffff url(../img/mainvisual.jpg) no-repeat 0 0;
background-size: cover;
overflow: hidden;
z-index: 1;
transition: .3s;
}

.mainvisual h2 {
font-size: 2.2rem;
margin: 6rem 0 0.8em 0;
}

@media screen and (min-width: 600px) {
.mainvisual {
height: 656px;
}

.mainvisual h2 {
font-size: 3.6rem;
margin: 6rem 0 0.8em 0;
}
}

/* テキスト */
/* イメージ画像 --------------*/
.imagepic01 h3, .imagepic02 h3 {
text-align: left;
line-height: 2;
}

/* 01 */
.imagepic01 {
display: flex;
align-items: center;
justify-content: flex-end;
width: auto;
height: 24vh;
max-height: 280px;
background: #ffffff url(../img/imagepic01.jpg) no-repeat 0 0;
background-size: contain;
/* background-attachment: fixed; */
}

@media screen and (min-width: 600px) {
.imagepic01 {
height: 280px;
}
}

/* 02 */
.imagepic02 {
display: flex;
align-items: center;
width: auto;
height: 24vh;
max-height: 280px;
background: #ffffff url(../img/imagepic02.jpg) no-repeat top right;
background-size: contain;
/* background-attachment: fixed; */
}

@media screen and (min-width: 600px) {
.imagepic02 {
height: 280px;
}
}

/* イントロダクション --------------*/
.introduction {
margin: 0 auto;
}

/* 稼ぎやすいタイプ --------------*/
.section-block.type {
position: relative;
}

/* what's your type? */
.section-block.type .copy-image01 {
position: absolute;
top: -6.4rem;
left: 0;
}

@media screen and (min-width: 600px) {
.section-block.type .copy-image01 {
top: -8.8rem;
left: 2.4rem;
}
}

/* Let's get started! */
.section-block.type .copy-image02 {
position: absolute;
bottom: -2.4rem;
right: 2.4rem;
width: 64%;
}

.typechart {
width: 88%;
margin: 0 auto;
text-align: center;
}

/* タイプ共通 */
.type-detail {
position: relative;
overflow: hidden;
padding: 0 0 0 2rem;
}

.type-detail h3 {
margin: 5.6rem 0 0;
}

.type-detail h3 img {
width: 64%;
}

@media screen and (min-width: 600px) {
.type-detail {
position: relative;
height: 1100px;
}
}

/* .typelist {} */

.typelist dt {
font-size: 2rem;
text-align: center;
padding: 0 0 0.4rem;
}

.typelist dd.text {
padding: 0 0 1rem;
font-size: 1.4rem;
text-align: center;
line-height: 1.4;
}

.typelist dd.reward {
position: relative;
font-size: 1.4rem;
text-align: center;
z-index: 2;
}

.typelist dd.reward::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: block;
width: 180px;
height: 24px;
background: #ffffff;
z-index: -1;
}

/* タイプ01 */
.type01 {
width: 320px;
height: 296px;
background: transparent url(../img/type01bg.png) no-repeat 0 0;
background-size: cover;
padding: 11rem 0 0;
margin: 0 auto;
box-sizing: border-box;
}

@media screen and (min-width: 600px) {
.type01 {
position: absolute;
transform: translate(-50%, -50%);
top: 180px;
left: 4%;
}
}

/* タイプ02 */
.type02 {
width: 320px;
height: 296px;
background: transparent url(../img/type02bg.png) no-repeat 0 0;
background-size: cover;
padding: 11rem 0 0;
margin: 0 auto;
box-sizing: border-box;
}

@media screen and (min-width: 600px) {
.type02 {
position: absolute;
transform: translate(-50%, -50%);
top: 300px;
left: 44%;
}
}

/* タイプ03 */
.type03 {
width: 320px;
height: 296px;
background: transparent url(../img/type03bg.png) no-repeat 0 0;
background-size: cover;
padding: 11rem 0 0;
margin: 0 auto;
box-sizing: border-box;
}

@media screen and (min-width: 600px) {
.type03 {
position: absolute;
transform: translate(-50%, -50%);
top: 480px;
left: 0;
}
}

/* タイプ04 */
.type04 {
right: -6.4rem;
width: 320px;
height: 296px;
background: transparent url(../img/type04bg.png) no-repeat 0 0;
background-size: cover;
padding: 11rem 0 0;
margin: 0 auto;
box-sizing: border-box;
}

@media screen and (min-width: 600px) {
.type04 {
position: absolute;
transform: translate(-50%, -50%);
top: 580px;
left: 32%;
}
}

/* タイプ05 */
.type05 {
width: 320px;
height: 296px;
background: transparent url(../img/type05bg.png) no-repeat 0 0;
background-size: cover;
padding: 11rem 0 0;
margin: 0 auto;
box-sizing: border-box;
}

@media screen and (min-width: 600px) {
.type05 {
position: absolute;
transform: translate(-50%, -50%);
top: 800px;
left: 10%;
}
}

/* ポイント交換先 --------------*/
.pointexchange-list {
padding: 0 1rem;
margin: 2.4rem 0 0;
text-align: center;
}

.pointexchange-list img {
width: 564px;
}

/* サイトの安全性 --------------*/
.security-items {
display: flex;
margin: 2.4rem 1rem 0;
}

.security-items dl {
width: 32%;
padding: 1rem 1rem;
}

.security-items dl dt {
padding: 1rem;
text-align: center;
line-height: 1.4;
font-size: 1.4rem;
}

@media screen and (min-width: 600px) {
.security-items dl dt {
font-size: 1.6rem;
}
}

.security-items dl dd.image {
display: flex;
align-items: center;
justify-content: center;
text-align: center;
min-height: 130px;
}

.security-items dl dd.text {
line-height: 1.4;
font-size: 1.2rem;
}

@media screen and (min-width: 600px) {
.security-items dl dd.text {
font-size: 1.4rem;
text-align: center;
}
}

/* faq --------------*/
/* アコーディオン */
/*アコーディオン全体*/
.accordion-area {
list-style: none;
width: 88%;
max-width: 900px;
margin: 0 auto;
}

.accordion-area li {
margin: 10px 0;
}

.accordion-area section {
border: 1px solid #ccc;
border-radius: 8px;
}

/*アコーディオンタイトル*/
.accordion-area .title {
position: relative;
/*+マークの位置基準とするためrelative指定*/
cursor: pointer;
font-size: 1.6rem;
text-align: left;
padding: 1.6rem 1.6rem 0;
transition: all .5s ease;
}

/*アイコンの＋と×*/
.accordion-area .title::before,
.accordion-area .title::after {
position: absolute;
content: '';
width: 15px;
height: 2px;
background-color: #333;
}

.accordion-area .title::before {
top: 48%;
right: 15px;
transform: rotate(0deg);
}

.accordion-area .title::after {
top: 48%;
right: 15px;
transform: rotate(90deg);
}

/*　closeというクラスがついたら形状変化　*/
.accordion-area .title.close::before {
transform: rotate(45deg);
}

.accordion-area .title.close::after {
transform: rotate(-45deg);
}

/*アコーディオンで現れるエリア*/
.accordion-area .box {
display: none;
/*はじめは非表示*/
background: #F8FAFA;
margin: 0 3% 3% 3%;
padding: 3%;
font-size: 1.4rem;
}

.accordion-area .box ol {
list-style: decimal;
padding: 0 0 0 2rem
}

/* その他のよくある質問 */
.btn-more-faq {
text-align: center;
padding: 1.6rem 0 0;
}

.btn-more-faq a {
padding: 1rem 2rem;
background: #f8fafa;
border: 1px solid #cccccc;
border-radius: 24px;
font-size: 1.4rem;
color: #101010;
transition: .3s;
}

.btn-more-faq a:hover {
background: transparent;
}

/* ロゴ＋SNS --------------*/
.section-block.logo-sns {
padding: 4rem 0 0;
}

.logo-sns h3 {
margin: 0;
}

.logo-sns .logo {
padding: 2rem 0;
text-align: center;
}

.logo-sns .sns {
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
}

.logo-sns .sns li img {
  vertical-align: middle;
}

/* X */
.logo-sns .sns .tw {
  margin: 0 1.6rem 0 2rem;
}

.logo-sns .sns .tw img {
  width: 24px;
}

/* ----------------------------------------------------
フッター
---------------------------------------------------- */
footer {
padding: 0 2rem 4rem;
color: #696969;
}

footer .footer-nav {
display: flex;
justify-content: center;
flex-wrap: wrap;
padding: 2.4rem 0;
}

footer .footer-nav li {
width: 100%;
line-height: 1.2;
text-align: center;
padding: 0.5rem 0;
}

footer .footer-nav a {
padding: 0 0.8rem;
font-size: 1.2rem;
color: #696969;
transition: .3s;
}

footer .footer-nav a:hover {
color: #35B1BC;
}

footer .gmor {
text-align: center;
font-size: 1.2rem;
}

footer .gmor img {
margin: 0 0 0 0.8rem;
}

footer .copyright {
padding: 1rem;
text-align: center;
font-size: 1rem;
font-weight: normal;
}
