
body {
    font-family: "m-plus-2p", sans-serif;
    font-weight: 400;
	position: relative;
    left: 0;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%; /* iphone横向き 文字拡大防止 */
}
img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	filter: brightness(1.1);
}
p {
	font-size: min(1.3vw,16px);
	line-height: 1.8;
}
:root {
    --blue: #004098;
}

/*==================================================================================
ヘッダー
==================================================================================*/
header {
    width: 100%;
    padding: 20px 0!important;
    position: absolute;
    top: 0;
    left: 0;
}
header .logo {
    display: block;
    width: 55%;
    max-width: 540px;
}
header .logo_gama {
    width: 15%;
}

/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
main {
    min-height: calc(100vh - 160px);
}
main.second {
    padding-top: min(8vw,100px)!important;
    background: #edfbff;
}
section {
	padding: min(3vw,40px) 0!important;
    position: relative;
}
.container {
	width: 100%;
	max-width: 1200px;
	box-sizing: border-box;
	margin: auto;
	padding: 0 5vw;
    position: relative;
    z-index: 2;
}
.max1400 {
	max-width: 1400px;
	margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.just_center {
	justify-content: center;
}
.row.just_start {
	justify-content: flex-start;
}
.row.align_center {
    align-items: center;
}
.col2 {
	width: 48%;
}
.boad {
	padding: 40px 60px;
    border-radius: 2vw;
	background: #fff;
    box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.wrap {
	display: inline-block;
}

.mb_10 {
	margin-bottom: min(1vw,10px);
}
.mb_20 {
	margin-bottom: min(2vw,20px);
}
.mb_40 {
	margin-bottom: min(4vw,40px);
}
.mb_60 {
	margin-bottom: min(6vw,60px);
}
.mr_5 {
	margin-right: 5px;
}
.mr_20 {
	margin-right: 20px;
}

/* フォント */
.font_14 {
	font-size: min(1.2vw,14px);
}
.font_16 {
	font-size: min(1.3vw,16px);
}
.font_20 {
	font-size: min(1.6vw,20px);
}
.font_24 {
	font-size: min(1.8vw,24px);
}
.font_30 {
	font-size: min(2.4vw,30px);
}
.font_34 {
	font-size: min(2.6vw,34px);
}
.font_46 {
	font-size: min(3.4vw,46px);
}
.bold {
	font-weight: 700;
}
.black {
	font-weight: 900;
}
.medium {
	font-weight: 500;
}
.ttl_font {
    font-family: "murecho", sans-serif;
}
.txt_center {
	text-align: center;
}
.txt_right {
	text-align: right;
}
.line1 {
	line-height: 1;
}
.line1_2 {
	line-height: 1.2;
}
.line1_4 {
	line-height: 1.4;
}
.indent {
	padding-left: 1em;
	text-indent: -1em;
}
.blue {
    color: var(--blue);
}
.red {
	color: #f50501;
}

/*==================================================================================
INDEX
==================================================================================*/
section#main {
    padding-top: min(10%,140px)!important;
}
section#main::before {
    content: "";
    display: block;
    width: 100%;
    height: 70%;
    max-height: 750px;
    background: url("../img/main_bg.png") center top / contain no-repeat;
    position: absolute;
    top: 0;
    left: 0;
}
section#main::after {
    content: "";
    display: block;
    width: 100%;
    height: 36%;
    max-height: 390px;
    background: url("../img/bg01.png") center bottom/ contain no-repeat;
    position: absolute;
    bottom: -20%;
    left: 0;
}
section#main h2 {
    width: 90%;
    box-sizing: border-box;
    padding-left: 9%;
    position: relative;
}
section#main h2 img {
    width: 80%;
}
section#main h2::after {
    content: "";
    display: block;
    width: 25%;
    height: 200%;
    background: url("../img/main_number.png") center top / contain no-repeat;
    position: absolute;
    top: -30%;
    right: -4%;
}
section#main h3 {
    width: 90%;
    box-sizing: border-box;
    padding-left: 22%;
    position: relative;
}
section#main h3 img:first-child {
    width: 18%;
    position: absolute;
    top: -6%;
    left: 5%;
}

/*==================================================================================
present
==================================================================================*/
section#present {
    padding-bottom: min(8vw,100px)!important;
    background: url("../img/footer_bg.png") center bottom / contain no-repeat;
}
section#present .container::after {
    content: "";
    display: block;
    width: min(20vw,240px);
    height: min(20vw,240px);
    background: url("../img/chara.png") center bottom / contain no-repeat;
    position: absolute;
    bottom: 5%;
    right: 5%;
}
section#present .col2 {
    box-sizing: border-box;
    padding: min(3vh, 25px) min(5vw, 40px);
    border-radius: 2vw;
    background: #fff;
    position: relative;
}
section#present .col2::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border: 10px #fff solid;
    border-radius: 2vw;
    filter: drop-shadow(4px 4px 0 rgba(0,0,0,0.7));
    position: absolute;
    top: 0;
    left: 0;
}
section#present .col2 * {
    position: relative;
    z-index: 2;
}
section#present .col2 .rank {
    width: 20%;
    position: absolute;
    top: -3%;
    left: -3%;
	z-index: 3;
}
section#present .col2 .img {
    width: 75%;
    margin: 0 auto min(1vw,10px);
}
section#present .col2 .num {
    width: 18%;
    position: absolute;
    right: -4%;
    bottom: -5%;
	z-index: 3;
}

/*==================================================================================
キャンペーン概要
==================================================================================*/
section#youkou {
    background: #00b9ef;
}
/*==================================================================================
エントリー
==================================================================================*/
section#entry {
    padding-bottom: 100px!important;
    background: #00b9ef;
}
section#entry .date {
    padding: .1em 2em 1em;
    background: #000;
}

/*==================================================================================
プライバシーポリシー
==================================================================================*/
section#policy p {
	line-height: 1.6;
}
/*==================================================================================
サンクスページ
==================================================================================*/
section#thanks a {
	text-decoration: underline;
}
/*==================================================================================
フッター
==================================================================================*/
footer {
	padding: 20px 0!important;
    background: #00b9ef;
    color: #fff;
}
footer a {
	color: #fff;
	font-size: 14px;
	text-decoration: underline;
}
footer p {
	font-size: 12px;
}


.pc {
	display: inline;
}
.tb {
	display: none;
}
.sp {
	display: none;
}


@media screen and (max-width : 960px) {
	.pc {display: none;}
	.tb {display: inline;}
	p {
        font-size: min(1.8vw, 14px);
    }
    /*==================================================================================
    ヘッダー
    ==================================================================================*/
    header {
        padding: 15px 0!important;
    }
    header .logo {
        width: 65%;
    }
    header .logo_gama {
        width: 23%;
    }
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
    main {
        min-height: calc(100vh - 138px);
    }
    main.second {
        padding-top: min(10vw,80px)!important;
    }
    section {
    	padding: min(4vw,30px) 0!important;
    }
    .col2 {
        width: calc(50% - 10px);
    }
	.boad {
		padding: min(4vw,30px);
	}
    .mb_10 {
    	margin-bottom: min(.6vw,8px);
    }
    .mb_20 {
    	margin-bottom: min(1.5vw,15px);
    }
    .mb_40 {
    	margin-bottom: min(3vw,30px);
    }
    .mb_60 {
    	margin-bottom: min(4vw,40px);
    }
	/* フォント */
    .font_14,
    .font_16 {
        font-size: min(1.8vw, 14px);
    }
    .font_20,
    .font_24 {
    	font-size: min(2.4vw, 18px);
    }
    .font_30,
    .font_34 {
    	font-size: min(3vw, 24px);
    }
    /*==================================================================================
    INDEX
    ==================================================================================*/
    section#main {
        padding-top: min(14vw,100px)!important;
    }
    section#main::after {
        height: 36.5%;
    }
    section#main h2 {
        width: 100%;
        padding-left: 0;
    }
    section#main h2 img {
        width: 82%;
    }
    section#main h2::after {
        width: 18%;
        height: 170%;
        right: 0;
    }
    section#main h3 {
        width: 100%;
        padding-left: 14%;
    }
    section#main h3 img:first-child {
        top: -4%;
        left: -5%;
    }
    /*==================================================================================
    present
    ==================================================================================*/
    section#present {
        padding-bottom: min(5vw,40px)!important;
    }
    section#present .col2 {
        padding: min(2.5vw, 20px) min(4vw, 30px);
        border-radius: 3vw;
    }
    section#present .col2::before {
        border: 6px #fff solid;
        border-radius: 3vw;
        filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.7));
    }
    section#present .col2 .rank {
        width: 25%;
        top: -5%;
        left: -5%;
    }
    section#present .col2 .img {
    	margin-bottom: min(.6vw,8px);
    }
    section#present .col2 .num {
        width: 22%;
        right: -8%;
    }
    /*==================================================================================
    キャンペーン概要
    ==================================================================================*/
    section#youkou ul.flow li {
        padding: 0 0 10px 50px;
    }
    section#youkou ul.flow li .font_30 {
    	font-size: min(2vw, 16px);
    }
    section#youkou ul.flow li span.num {
        width: 40px;
        clip-path: polygon(0 0, 50% 4px, 100% 0, 100% calc(100% - 4px), 50% 100%, 0 calc(100% - 4px));
    }
    section#youkou ul.flow li:first-child span.num {
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4px), 50% 100%, 0 calc(100% - 4px));
    }
	ul.youkou {
		padding: 10px;
	}
    /*==================================================================================
    エントリー
    ==================================================================================*/
    section#entry .date {
        padding: .1em .5em .8em;
    }
	/*==================================================================================
	フッター
	==================================================================================*/
	footer a {
		font-size: 12px;
	}
	footer p {
		font-size: 10px;
	}
}


@media screen and (max-width : 460px) {
    .tb {display: none;}
	.sp {display: inline;}
    p {font-size: 10px;}
	/*==================================================================================
	共通
	==================================================================================*/
    main {
        min-height: calc(100vh - 26vw);
    }
    .container {
        padding: 0 15px;
    }
    .col2 {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }
	.boad {
		padding: 15px;
	}
    .mb_10 {
    	margin-bottom: 8px;
    }
    .mb_20 {
    	margin-bottom: 15px;
    }
    .mb_40 {
    	margin-bottom: 30px;
    }
    .mb_60 {
    	margin-bottom: 40px;
    }
    /* フォント */
    .font_14 {
        font-size: 12px;
    }
    .font_16,
    .font_20,
    .font_24 {
        font-size: 14px;
    }
    .font_30,
    .font_34 {
    	font-size: 18px;
    }
    /*==================================================================================
    present
    ==================================================================================*/
    section#present .container::after {
        display: none;
    }
    section#present .col2 {
        margin-bottom: 20px;
        padding: 10px 15px;
        border-radius: 3vw;
    }
    section#present .col2::before {
        border: 3px #fff solid;
        filter: drop-shadow(2px 2px 0 rgba(0,0,0,0.7));
    }
    /*==================================================================================
    キャンペーン概要
    ==================================================================================*/
    section#youkou {
        padding-bottom: 0!important;
    }

	/*==================================================================================
	フッター
	==================================================================================*/
	footer a {
		margin-bottom: 10px;
	}
}



