@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oxanium:wght@700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Vina+Sans&display=swap');

/* ****************************************************************************

　目次

-------------------------------------------------------------------------------

　01. 大枠レイアウト
　02. モジュール

******************************************************************************* */

:root {
	--base-color01: #0368D9;
	--base-color02: #F249A0;
	--font01: "M PLUS 1p", sans-serif;
	--color01: #1A1A1A;
}

/* ==

　01. 大枠レイアウト

=============================================================================== */
body {
	min-width: 950px;
}
#main p,
#main h2,
#main h3,
#main h4,
dt, dd,
ul {
	padding: 0;
	color: #1A1A1A;
}
h1,h2,h3 {
	border: none;
	margin: 0;
	padding: 0;
	background-color: transparent;
}

/* ==

　02. モジュール

=============================================================================== */
#main {
	width: auto;
	min-width: 950px;
	padding-top: 0;
	padding-bottom: 50px;
	overflow: hidden;
}
#main * {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

/* メインビジュアル
------------------------------------------------------------------------------- */
.cpBg01 {
	position: relative;
}
.cpBg01 .cpBg01_mv {
	display: block;
	width: 100%;
	aspect-ratio: 1960 / 980;
    background: #DEF4FC url(../images/mv_bg.jpg) no-repeat 0 0;
    background-size: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
.cpBg01 .cpBg01_content {
	display: block;
	width: 100%;
	height: 100%;
	background: #DEF4FC;
	background: linear-gradient(180deg,rgba(222, 244, 252, 1) 0%, rgba(255, 252, 214, 1) 50%, rgba(252, 224, 244, 1) 100%);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
@media screen and (max-width: 1570px) {
	.cpBg01 {
		background-position-y: 0%;
	}
}
.cpMain {
	position: relative;
	padding: 50px 20px 0;
}
.cpMain_lead {
	width: 100%;
	background: #E6A223;
	background: linear-gradient(90deg,rgba(230, 162, 35, 1) 0%, rgba(244, 58, 129, 1) 25%, rgba(149, 98, 181, 1) 50%, rgba(40, 173, 116, 1) 75%, rgba(39, 136, 219, 1) 100%);
	text-align: center;
	padding: 6px 0 7px;
	margin: 0;
}
#main .cpMain_lead p {
	font-size: 18px;
	font-weight: bold;
	color: #fff;
}
.cpMain_in {
	position: relative;
	max-width: 1360px;
	margin: 0 auto;
	padding: 0 40px;
}
.cpMain_in::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	background-color: #fff;
	width: 100%;
	height: 78%;
	transform: translateX(-50%);
	border-radius: 64px 64px 0 0;
	border: 2px solid #333;
	box-sizing: border-box;
	border-bottom: none;
}
.cpMain_block {
	position: relative;
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	align-items: flex-start;
	max-width: 1280px;
	margin: 0 auto;
	z-index: 1;
}
.cpMain_logo {
	position: relative;
	width: 57.03125%;
}
.cpMain_txt {
	position: relative;
	width: 39.84496%;
}
.cpMain_txt .cpMain_tit {
	width: 100%;
	margin: -4% auto 3%;
}
.cpMain_txt .cpMain_detail {
	width: 96%;
}
.cpMain_txt .cpMain_invite {
	width: 100%;
	margin: 0 auto 4% 0;
}
.cpMain_txt .cpMain_date {
    width: 82%;
	margin: 0 auto;
}
.cpMain img {
	width: 100%;
	height: auto;
}
@media screen and (max-width: 1150px) {
	#main .cpMain_lead p {
		font-size: 15px;
	}
}

/* コピーライト
------------------------------------------------------------------------------- */
.cpCopy {
	padding: 38px 10px;
}
#main .cpCopy p {
	text-align: center;
	font-size: 12px;
	font-weight: 100;
	opacity: 0.6;
	line-height: 1.5;
}
.cpContent {
}

/* アンカーナビ
------------------------------------------------------------------------------- */
.cpNav {
	position: relative;
	text-align: center;
	padding: 0 20px;
}

.cpNav_in {
	position: relative;
	border: 2px solid #333;
	border-top: none;
	border-bottom: none;
	max-width: 1360px;
	margin: 0 auto;
	padding: 60px 80px 80px;
	background-color: #fff;
}
.cpNav_in::before {
    content: "";
    display: block;
    width: calc(100% - 80px);
    height: 120px;
    background: url(../images/bg_dots.png) repeat 0 0;
    background-size: 14px;
    position: absolute;
    bottom: 0;
    left: 40px;
}
.cpNav ul {
	position: relative;
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	z-index: 1;
	border-radius: 16px;
	overflow: hidden;
	border: 2px solid #333;
}
.cpNav li {
	width: 33.3333%;
}
.cpNav li:nth-child(1),
.cpNav li:nth-child(2) {
	border-right: 2px solid #333;
}
.cpNav li a {
	position: relative;
	display: block;
	padding: 26px 0;
	color: #222222;
	text-decoration: none;
	line-height: 1;
	font-family: var(--font01);
	font-size: 24px;	
	font-weight: 800;
	background-color: #fff;
	letter-spacing: 0.96px;
}
.cpNav li a span {
	position: relative;
	padding-left: 32px;
	overflow: hidden;
	display: inline-block;
}
.cpNav li a span::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	display: inline-block;
	background: url(../images/ico_arrow.png) no-repeat center center;
	background-size: 24px;
}
.d_hover .cpNav li a:hover {
	background-color: #ffebf5;
	color: #f249a0;
}

/* 見出し
------------------------------------------------------------------------------- */
#main .cpTit01 {
	position: relative;
	display: inline-block;
	font-family: var(--font01);
	font-weight: 800;
	font-size: 48px;
	margin: 0 auto 30px;
	line-height: 1.4;
}
#main .cpTit01::before,
#main .cpTit01::after {
	content: "";
	width: 24px;
	height: 50px;
	display: inline-block;
	position: absolute;
	top: 9px;
}
#main .cpTit01::before {
	background: url(../images/img_title_bk.png) no-repeat 0 0;
	background-size: cover;
	left: -44px;
}
#main .cpTit01::after {
	background: url(../images/img_title_bk.png) no-repeat 0 0;
	background-size: cover;
	right: -44px;
	transform: scale(-1, 1);
}
#main .cpInvitation .cpTit01 {
	color: #fff;
	margin-bottom: 10px;
}
#main .cpInvitation .cpTit01::before {
	background: url(../images/img_title_wh.png) no-repeat 0 0;
	background-size: cover;
	left: -44px;
}
#main .cpInvitation .cpTit01::after {
	background: url(../images/img_title_wh.png) no-repeat 0 0;
	background-size: cover;
	right: -44px;
	transform: scale(-1, 1);
}
#main .cpTit01 span {
	display: block;
	font-weight: 800;
	font-size: 12px;
	letter-spacing: .24em;
}

/* ブロック
------------------------------------------------------------------------------- */
.cpDetail {
	padding: 0 20px;
}
.cpDetail .cpDetail_in {
	position: relative;
	max-width: 1360px;
	margin: 0 auto;
	padding: 0 60px;
	border: 2px solid #333;
    border-top: none;
    border-bottom: none;
}
#invitation .cpDetail_in {
	background-color: var(--base-color01);
}
.cpDetail_item {
	position: relative;
	max-width: 1120px;
	margin: 0 auto;
	padding: 50px 0 60px;
	text-align: center;
}
.cpDetail_tit {
	z-index: 1;
}
#main .cpDetail_tit p {
	font-size: 24px;
	font-weight: bold;
	margin-bottom: 25px;
}

/* 招待内容
------------------------------------------------------------------------------- */
.cpInvitation_lead {
	position: relative;
	text-align: center;
	margin-bottom: 35px;
}
.cpInvitation_lead_col {
	position: relative;
	margin: 0 auto;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
.cpInvitation_lead_txt {
	position: relative;
	text-align: center;
	font-family: var(--font01);
	font-weight: 800;
}
#main .cpInvitation_lead_txt h3 {
	position: relative;
	font-size: 32px;
	color: #fff;
	line-height: 1.3125;
	font-weight: 800;
	letter-spacing: -0.96px;
}
#main .cpInvitation_lead_txt h3 span {
	position: relative;
	z-index: 1;
}
#main .cpInvitation_lead_txt h3 span.ffVina {
	font-size: 64px;
	font-family: "Vina Sans", sans-serif;
	letter-spacing: 2.56px;
	font-weight: 100;
	display: inline-block;
	transform: translateY(3px);
	margin: 0 5px 0 2px;
}

#main .cpInvitation_lead_pop {
	position: absolute;
    top: -185px;
    left: -60px;
}
#main .cpInvitation_lead_txt h3 .spLine {
	position: relative;
}
#main .cpInvitation_lead_txt h3 .spLine::before {
	content: "";
	background-color: var(--base-color02);
	width: 100%;
	height: 15px;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
}

/* 招待内容 詳細
------------------------------------------------------------------------------- */
.cpInvitation_detail {
	position: relative;
	background-color: #fff;
	margin: 0;
	padding: 40px 20px;
	border-radius: 32px;
}

.cpInvitation_detail_lead {
	display: flex;
	justify-content: space-between;
	max-width: 1040px;
    margin: 0 auto 40px;
    padding-bottom: 35px;
	border-bottom: 2px solid var(--base-color01);
}
.cpInvitation_detail_lead .cpInvitation_detail_lead_txt {
	max-width: 660px;
	width: 63.46%;
	text-align: left;
}
.cpInvitation_detail_lead .cpInvitation_detail_lead_txt h4 {
	font-size: 24px;
	font-family: var(--font01);
	font-weight: 800;
	letter-spacing: -0.72px;
	margin-bottom: 12px;
    line-height: 1.5;
}
#main .cpInvitation_detail_lead .cpInvitation_detail_lead_txt p {
	font-size: 16px;
	line-height: 1.8125;
}
.cpInvitation_detail_lead .cpInvitation_detail_lead_img {
	max-width: 320px;
	width: 30.7692%;
}
.cpInvitation_detail_lead .cpInvitation_detail_lead_img img {
	width: 100%;
	height: auto;
}
.cpInvitation_detail_col {
	max-width: 1040px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}
.cpInvitation_detail_col .cpInvitation_detail_img {
	max-width: 520px;
	width: 52%;
}
.cpInvitation_detail_col .cpInvitation_detail_img img {
	width: 100%;
	height: auto;
}
.cpInvitation_detail_col .cpInvitation_detail_txt {
	max-width: 470px;
	width: 45.1923%;
	text-align: left;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dt {
	font-size: 16px;
	font-family: var(--font01);
	font-weight: 700;
	padding: 13px 10px;
	line-height: 1;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd {
	font-size: 20px;
	font-weight: 800;
	margin-bottom: 25px;
	line-height: 1;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd:last-child {
	margin-bottom: 0;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd.invitation {
	margin-top: -5px;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd.invitation > span {
	margin-left: 10px;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .apply {
	margin-top: 15px;
	display: inline-block;
	font-size: 20px;
	font-family: var(--font01);
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .apply span {
	font-size: 28px;
	margin-left: 10px;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .fsM {
	font-size: 32px;
}
#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .fsL {
	font-size: 48px;
}
dt.cpInvitation_detail_invitation {
	padding: 10px;
	background-color: var(--base-color02);
	color: #fff;
}
#main dd.cpInvitation_detail_invitation > p:first-child {
	color: var(--base-color02);
	font-family: var(--font01);
	font-size: 28px;
}
#main dd.cpInvitation_detail_invitation p > span {
	margin-left: 10px;
}
#main dd.cpInvitation_detail_invitation p.cpInvitation_detail_note {
	color: #1A1A1A;
	font-size: 14px;
	line-height: 1.5;
	text-indent: -15px;
    margin-left: 15px;
}
dt.cpInvitation_detail_apply {
	padding: 10px;
	background-color: var(--base-color01);
	color: #fff;
}
#main .cpInvitation_detail_note {
	font-size: 14px;
	font-weight: normal;
}
@media screen and (max-width: 1250px) {
	.cpInvitation_detail_lead .cpInvitation_detail_lead_txt h4 br {
		display: none;
	}
}

@media screen and (max-width: 1200px) {
	#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .fsM {
		font-size: 26px;
	}
	#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .fsL {
		font-size: 36px;
	}
	#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .apply span {
		font-size: 24px;
		margin-left: 0;
	}
	#main .cpInvitation_detail_col .cpInvitation_detail_txt dl dd .apply .devSmp {
		display: block;
	}
}
/* クイズ
------------------------------------------------------------------------------- */

#main .cpQuiz .cpTit01 {
	margin-bottom: 50px;
}
#quiz .cpDetail_in {
	position: relative;
	background-color: #fff;
}
#quiz .cpDetail_in::before {
	content: "";
	display: block;
	width: calc(100% - 80px);
	height: 100%;
	background: url(../images/bg_dots.png) repeat 0 0;
	background-size: 14px;
	position: absolute;
	top: 0;
	left: 40px;
}
.cpQuiz .cpQuiz_in {
	position: relative;
	max-width: 1120px;
	margin: 0 auto;
}
#main .cpQuiz .cpQuiz_in h3 {
	position: relative;
	color: #fff;
	background-color: var(--base-color01);
	font-size: 24px;
	font-family: var(--font01);
	font-weight: 800;
    width: 120px;
    height: 40px;
    display: flex;
    margin: -22px auto 35px;
    justify-content: center;
    align-items: center;
	border-radius: 8px;
	letter-spacing: 3.84px;
}

#main .cpQuiz .cpQuiz_in h3 + p {
	font-size: 32px;
	font-family: var(--font01);
	font-weight: 800;
	margin-bottom: 35px;
	letter-spacing: -0.96px;
	line-height: 1.5;
}
.cpQuiz .cpQuiz_question {
	position: relative;
	margin-bottom: 30px;
	padding: 0 40px 30px;
	max-width: 1120px;
	border: 4px solid var(--base-color01);
	border-radius: 32px;
	background-color: #fff;
}
.cpQuiz .cpQuiz_question::after {
	content: "";
	width: 72px;
	height: 90px;
	display: block;
	position: absolute;
	top: -45px;
    right: 50px;
    background: url(../images/img_thunder.png) no-repeat 0 0;
    background-size: 72px 90px;
}
.cpQuiz_col {
	display: flex;
	justify-content: space-between;
	max-width: 740px;
	margin: 0 auto;
}
#main .cpQuiz_answer {
	font-size: 36px;
	max-width: 720px;
	font-weight: 800;
	letter-spacing: -0.05em;
}
#main .cpQuiz_answer li {
	display: flex;
	align-items: center;
	margin-bottom: 15px;
	font-family: var(--font01);
	min-height: 60px;
	overflow: hidden;
}
#main .cpQuiz_answer li::before {
	content: "";
	display: flex;
	justify-content: center;
	align-items: center;
	width: 56px;
	height: 56px;
	background-color: var(--base-color02);
	margin-right: 25px;
	color: #fff;
	text-align: center;
	font-family: var(--font01);
	font-weight: 700;
	font-size: 34px;
	border-radius: 8px;
}
#main .cpQuiz_answer li:nth-child(1)::before {
	content: "1";
}
#main .cpQuiz_answer li:nth-child(2)::before {
	content: "2";
}
#main .cpQuiz_answer li:nth-child(3)::before {
	content: "3";
}

@media screen and (max-width: 1160px) {
	#main .cpQuiz .cpQuiz_in h3 + p {
		font-size: 26px;
	}
	#main .cpInvitation_lead_pop {
		left: -40px;
	}
	#main .cpInvitation_lead_pop img {
		width: 250px;
		height: auto;
	}
}
/* 応募規約
------------------------------------------------------------------------------- */
.cpOverview {
	padding: 0 20px;
}
.cpOverview_in {
	text-align: left;
	margin-bottom: 0;
	padding: 70px 20px;
    max-width: 1360px;
    margin: 0 auto;
    border: 2px solid #333;
    border-top: none;
	background-color: #fff;
	border-radius: 0 0 64px 64px;
}
#main .cpOverview_tit {
	text-align: center;
}
#main .cpOverview_tit .cpTit01 {
	position: relative;
	margin-bottom: 12px;
}
#main .cpOverview_tit p {
	font-size: 18px;
	font-weight: 500;

}
.cpOverview_rules {
	max-width: 1080px;
	margin: 0 auto;
	padding: 40px 60px;
}
.cpOverview_list {
	padding: 20px 0 0;
	border: 1px solid rgba(0, 84, 194, .7);
	border-left: none;
	border-right: none;
}
#main .cpOverview_list > dt {
	font-size: 18px;
	font-weight: 500;
	margin-bottom: 14px;
}
#main .cpOverview_list > dt::before {
	content: "●";
	display: inline-block;
	color: var(--base-color01);
	margin-right: 5px;
}
.cpOverview_list > dd {
	margin-bottom: 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(0, 84, 194, .7);
	line-height: 1.46;
}
.cpOverview_list > dd:last-child {
	margin-bottom: 0;
	border-bottom: none;
}
#main .cpOverview_list > dd p {
	font-size: 15px;
}
#main .cpOverview_list > dd p + p {
	margin-top: 15px;
}
#main .cpOverview_list > dd ul {
	margin: .8em 0 0;
	font-size: 15px;
}
#main .cpOverview_list > dd ul + p {
	margin-top: 25px;
}
.cpOverview_list > dd ul > li {
	list-style: disc;
	line-height: 1.4;
	margin-left: 1.5em;
	margin-bottom: .8em;
}
.cpOverview_list > dd ul > li:last-child {
	margin-bottom: 0;
}

/* ボタン
------------------------------------------------------------------------------- */
.cpBtn01 {
	position: relative;
	font-family: var(--font01);
	font-weight: 800;
	width: 380px;
	display: block;
	color: var(--base-color01);
	background-color: #FFF;
	border-radius: 40px;
	border: 4px solid var(--base-color01);
	margin: 20px auto 0;
	padding: 14px 10px;
	font-size: 24px;
	text-decoration: none;
	transition: all .3s;
	text-align: center;
	line-height: 1;
	box-shadow: 0px 8px 0px var(--base-color01);
}
.cpBtn01::before {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	border: 4px solid;
	border-color: var(--base-color01) var(--base-color01) transparent transparent;
	transform: rotate(45deg);
	position: absolute;
	right: 25px;
	top: calc(50% - 8px);
	border-radius: 6px 0 6px;
	transition: all .3s;
}
.cpBtn01[target=_blank]::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	margin: -3px 0 0 10px;
	background: url(../images/ico_blank1.png) left top no-repeat;
	background-size: 16px;
	vertical-align: middle;
}
.d_hover .cpBtn01:hover {
	background-color: #117DF7;
	color: #fff;
}
.d_hover .cpBtn01:hover::before {
	border-color: #fff #fff transparent transparent;
}
.d_hover .cpBtn01[target=_blank]:hover::after {
	background: url(../images/ico_blank3.png) left top no-repeat;
	background-size: 16px;
	animation: iconChange .3s;
}
@keyframes iconChange {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.cpBtn01-apply {
	width: 640px;
	color: #F249A0;
	border: 6px solid #F249A0;
	box-shadow: 0px 8px 0px #F249A0;
	font-size: 30px;
	margin-top: 0;
    padding: 24px 10px;
    border-radius: 50px;
}
.cpBtn01-apply::before {
	border-color: #F249A0 #F249A0 transparent transparent;
	right: 35px;
}
.cpBtn01-apply[target=_blank]::after {
	background: url(../images/ico_blank2.png) left top no-repeat;
	background-size: 16px;
}
.d_hover .cpBtn01-apply:hover {
	background-color: #ff5eb1;
}

/* ソーシャル上部設置
------------------------------------------------------------------------------- */
#socialAreaC {
	position: absolute;
	top: -1px;
	right: 0;
	overflow: hidden;
}
#socialAreaC ul {
	float: right;
}
#socialAreaC li {
	float: left;
	line-height: 1;
	margin-right: 11px;
	vertical-align: top;
}
#socialAreaC li a {
	margin-right: 0;
	padding-right: 0;
	background: none;
}
#socialAreaC .twitter {
	width: 88px;
	height: 20px;
	overflow: hidden;
}

/* エフェクト
------------------------------------------------------------------------------- */
#starContainer {
	position: relative;
	overflow: hidden;
}

