@charset "utf-8";
/*独自リセット*/
header .logo {
  width: inherit;
  height: inherit;
}
h1, h2 {
  background-color: inherit;
  color: inherit;
  padding: 0;
}
footer {
  position: static;
  padding-top: 0;
  background: none;
}
*, *::before, *::after {
  box-sizing: border-box;
}
html {
  font-size: 62.5%;
}
img {
  width: 100%;
}
body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  margin: 0;
  font-size: 1.8rem;
  line-height: 1.6;
  /*横スクロールバーを出さない ※.full_width対応*/
  overflow-x: hidden;
}
#bg_wrap {
  position: relative;
  padding-top: 53px;
  margin-top: -53px;
}
#bg_wrap:before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-image: url("../images/pattern.png");
  background-size: auto;
  z-index: -1;
  clip-path: inset(0);
}
p {
  margin: 0;
  line-height: 1.8;
}
.sp_none {
  display: none;
}
/*FLEX BOX*/
.flex {
  display: flex;
}
/*リンク*/
a:link, a:visited {
  color: #c12828;
  text-decoration: underline;
}
a:hover, a:active {
  text-decoration: none;
}
/*
---------------------------------------------------
*/
/*[開始]ヘッダ*/
header {
  background-color: #FFF;
  width: 100vw;
  height: 52px;
  display: flex;
  border-bottom: 1px solid #ccc;
  padding: 0 5px;
  position: fixed;
  top: 0;
  z-index: 100;
}
header p {
  align-items: center;
  width: 90%;
  max-width: 960px;
  margin: auto;
}
header img {
    width: auto;
    height: 18px;
}
/*[終了]ヘッダ*/
/*
---------------------------------------------------
*/
/*[開始]フッタ*/
footer {
  background-color: #333;
  color: #FFF;
}
footer div {
  width: 90%;
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}
footer div .flex {
  width: 100%;
  max-width: 400px;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  padding-top: 20px;
}
footer div .flex a:nth-of-type(1) {
  flex-grow: 1;
}
footer div .flex a:nth-of-type(2) {
  flex-grow: 1;
}
footer div .flex a:nth-of-type(3) {
  flex-grow: 2;
}
footer div a {
  font-size: 1.6rem;
  margin-bottom: 0.5em;
}
footer div a:link, footer div a:visited {
  color: #FFF;
  text-decoration: underline;
}
footer div a:hover, footer div a:active {
  text-decoration: none;
}
footer div img {
  width: 40%;
  max-width: 200px;
  display: block!important;
  vertical-align: bottom;
  padding-bottom: 1em;
  margin-top: 4em;
  margin-right: auto;
  margin-left: auto;
}
/*[終了]フッタ*/
/*
---------------------------------------------------
*/
#mission_contents > div, #schedule_contents, #prize_contents > div, #apply_contents, #terms_contents > div, #dkids_contents {
  width: 88.9%;
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}
#top {
  width: 20%;
  max-width: 100px;
  position: fixed;
  right: 0.5em;
  bottom: 0.5em;
  z-index: 100;
}
/*
---------------------------------------------------
*/
/*[開始]横幅いっぱい伸ばす*/
.full_width {
  margin: 0 calc(50% - 50vw);
  padding: 0 calc(50vw - 50%);
  width: 100vw;
}
/*[終了]横幅いっぱい伸ばす*/
/*
---------------------------------------------------
*/
/*[開始]波*/
.svg-sample {
  padding-right: 0;
  padding-left: 0;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
}
.wave_top {
  margin-bottom: -1em;
  position: relative;
  z-index: -1;
}
.wave_bottom {
  margin-top: -1em;
  position: relative;
  z-index: -1;
}
.u-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-pc {
    display: block;
  }
  .u-sp {
    display: none;
  }
}
/*[終了]波*/
/*
---------------------------------------------------
*/
/*[開始]シャドウ*/
.shadow {
  /*filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.5));*/
  /*filter: drop-shadow(5px 5px 10px rgba(154, 151, 119, 0.5));*/
  filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.2));
}
/*[終了]シャドウ*/
/*
---------------------------------------------------
*/
/*[開始]箱のボーダー指定*/
#mission .content_wrap, #dkids #dkids_contents > div {
  border-radius: 10px;
  border-top: 3px solid #333;
  border-right: 3px solid #333;
  border-left: 3px solid #333;
  border-bottom: 6px solid #333;
}
#mission .content_wrap {
  background-color: #FFF;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  padding-bottom: 1em;
}
/*[終了]箱のボーダー指定*/
/*
---------------------------------------------------
*/
/*[開始]白背景*/
.bg-white {
  background-color: #FFF;
  padding-top: 2em;
  padding-bottom: 2em;
}
/*[終了]白背景*/
/*
---------------------------------------------------
*/
/*[開始]コンテンツ幅指定*/
#content_wrap {
  width: 100%;
  max-width: 960px;
  margin: 70px auto 0;
}
#mission {
  margin-bottom: 0;
}
h1 {
  margin-bottom: 300px;
}
#schedule, #prize, #apply, #terms, #dkids {
  margin-top: 50px;
  margin-bottom: 50px;
}
/*[終了]コンテンツ幅指定*/
/*
---------------------------------------------------
*/
/*[開始]リボン*/
/* HTML: <div class="ribbon">Your text content</div> */
.tab .ribbon {
  --f: .5em; /* control the folded part */
  font-size: 7px;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  line-height: 1.8;
  padding-inline: 12.6px;
  padding-bottom: var(--f);
  border-image: conic-gradient(#0008 0 0) 51%/var(--f);
  clip-path: polygon(100% calc(100% - var(--f)), 100% 100%, calc(100% - var(--f)) calc(100% - var(--f)), var(--f) calc(100% - var(--f)), 0 100%, 0 calc(100% - var(--f)), 999px calc(100% - var(--f) - 999px), calc(100% - 999px) calc(100% - var(--f) - 999px));
  transform: translate(calc((cos(45deg) - 1)*100%), -100%) rotate(-45deg);
  -webkit-transform: translate(-30%, -100%) rotate(-45deg);
  transform-origin: 100% 100%;
}
.tab.now .ribbon {
  background-color: #c12828;
  color: #FFF;
}
.tab.end .ribbon {
  background-color: #ffdc39; /* the main color  */
  color: #333;
}
/*[開始]h2吹き出しの見出し*/
h2 {
  font-size: 2.4rem;
  font-weight: bold;
}
h2.h2_fukidashi {
  position: relative;
  display: inline-block;
  background: #FFF;
  border: 3px solid #333;
  border-radius: 8px;
  box-sizing: border-box;
  width: 100%;
  color: #333;
  text-align: center;
  margin-top: 0;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 1em;
  padding: 0.6em;
}
h2.h2_fukidashi:before {
  content: "";
  position: absolute;
  bottom: -23px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}
h2.h2_fukidashi:after {
  content: "";
  position: absolute;
  bottom: -28px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #333;
  z-index: 1;
}
.h2_fukidashi span {
  margin: 0;
  padding: 0;
}

/*[終了]h2吹き出しの見出し*/
/*
---------------------------------------------------
*/
/*[開始]ボタン共通*/
.cv_button, .standup_button {
  text-align: center;
  width: 90%;
  margin-top: 2em;
  margin-right: auto;
  margin-left: auto;
}
.cv_button .button, .standup_button .button {
  display: block;
  max-width: 400px;
  border-radius: 10px;
  border-bottom-width: 6px;
  border-bottom-style: solid;
  text-align: center;
  color: #FFF;
  font-weight: bold;
  text-decoration: none;
  margin-right: auto;
  margin-bottom: 0.5em;
  margin-left: auto;
}
/*[終了]ボタン共通*/
/*
---------------------------------------------------
*/
/*[開始]CVボタン*/
.cv_button p {
  line-height: 1.4;
}
.cv_button span {
  font-size: 80%;
}
.cv_button .button {
  font-size: 2.8rem;
  background-color: #2f942a;
  border-bottom-color: #285625;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}
/*[終了]CVボタン*/
/*
---------------------------------------------------
*/
/*[開始]CVボタン下注釈ボックス*/
.cvbox{
width: 100%;
max-width: 740px;
background-color: #FFF;
padding: 20px;
margin-top: 1.5em;
margin-right: auto;
margin-left: auto;
border-radius: 8px;
}
.cvbox p{
margin-bottom: 1em;
font-weight: bold;
}
.cvbox p:last-of-type{
margin-bottom: 0;
}
.cvbox p span{
font-weight: normal;
}
#cv03 .cvbox {
width: 100%;
max-width: inherit;
padding: 0;
}
/*
---------------------------------------------------
*/
/*[開始]アプリ起動ボタン*/
.standup_button > p {
  font-size: 2.0rem;
  font-weight: bold;
}
.standup_button > p:before {
  content: "＼";
}
.standup_button > p:after {
  content: "／";
}
.standup_button .button {
  font-size: 2.2rem;
  background-color: #c12828;
  border-bottom-color: #6e2b2b;
  padding-top: 0.8em;
  padding-bottom: 0.8em;
}
/*[終了]アプリ起動ボタン*/
/*
---------------------------------------------------
*/
/*[開始]mission ミッション指定のアプリをチェック*/
#mission .check {
  position: relative;
  background: #c12828;
  border-radius: 8px;
  width: 30%;
  max-width: 100px;
  font-size: 1.2rem;
  color: #FFF;
  text-align: center;
  padding: 0.6em;
  margin-right: auto;
  margin-left: auto;
  /*アニメーション*/
  animation: check_animation 1s ease-in-out infinite alternate-reverse;
}
@keyframes check_animation {
  0% {
    transform: translateY(-5%);
  }
  100% {
    transform: translateY(5%);
  }
}
#mission .check:after {
  position: absolute;
  content: '';
  top: 100%;
  right: 0;
  left: 0;
  border: 8px solid transparent;
  border-top: 10px solid #c12828;
  width: 0;
  height: 0;
  margin-right: auto;
  margin-left: auto;
}
#mission h2 {
  color: #c12828;
  text-align: center;
  font-weight: bold;
  font-size: 2.8rem;
  margin-top: 0.5em;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
#mission h4 small{
display: block;
font-size: 1.4rem;
word-break: normal;
}
#mission a img {
  margin-bottom: 1em;
}
/*[開始]タブスタイル*/
.show {
  animation: fadein 0.3s ease-in-out forwards;
}
@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
#mission_contents > div {
  margin-top: -350px;
}
#mission .tab-wrap {
  display: flex;
  justify-content: space-between;
}
#mission div.tab-wrap .tab.now {
  background-color: #ffdc39;
  z-index: 3;
  position: relative;
  border-bottom-color: #ffdc39;
  box-sizing: content-box;
  margin-bottom: -5px;
}
#mission div.tab-wrap .tab.now h3 {
  color: #c12828;
}
#mission .tab-wrap h3 {
  color: #FFF;
  font-size: 1.5rem;
  margin-top: auto;
  margin-bottom: auto;
}
#mission .tab-wrap .active {
  position: relative;
  border-bottom-width: 5px;
  border-bottom-style: solid;
  margin-bottom: -5px;
  z-index: 10 !important;
  box-sizing: content-box;
}
#mission .tab-wrap .tab {
  display: flex;
  flex-direction: column;
  background-color: #c12828;
  width: 19%;
  height: 40px;
  float: left;
  text-align: center;
  border-bottom-color: #c12828;
  margin-right: 1%;
}
#mission .tab-wrap .tab.end {
  filter: brightness(50%);
}
#mission .tab-wrap .tab:last-of-type {
  margin-right: 0;
}
#mission .content {
  display: none;
  width: 90%;
  margin-right: auto;
  margin-left: auto;
}
#mission .content.show {
  display: block;
}
#mission .content-wrap section {
  width: 83.3%;
  max-width: 800px;
  margin-right: auto;
  margin-left: auto;
}
#mission h4 {
  width: 100%;
  font-size: 2.4rem;
  border-bottom: 1px solid #333;
  padding-bottom: 0.3em;
  margin-top: 0;
  margin-bottom: 0.5em;
  word-break: keep-all;
  overflow-wrap:anywhere;
}
#mission .content_wrap section {
  margin-top: 2em;
}
#mission .content_wrap section:first-of-type {
  margin-top: 1em;
}
#mission .flex {
  justify-content: space-between;
  flex-wrap: wrap;
}
#mission .flex div {
  width: 32%;
  text-align: center;
  line-height: 1.2;
  margin-bottom: 0.5em;
}
#mission .flex div:nth-of-type(5) {
  margin-left: 2%;
}
#mission .flex:after {
  content: "";
  flex: 1;
}
#mission .flex div img {
  width: 70%;
  max-width: 144px;
}
#mission .flex div p {
  font-size: 1.0rem;
  margin-top: 5px;
  line-height: 1.4;
}
#mission .flex div p {
  word-break: keep-all;
  overflow-wrap: anywhere;
}
/*[終了]タブスタイル*/
/*[終了]mission ミッション指定のアプリをチェック*/
/*
---------------------------------------------------
*/
/*[開始]schedule 応募期間*/
#schedule div.flex {
  margin-bottom: 1em;
}
#schedule div div {
  display: inline;
}
#schedule div div:first-of-type {
  width: 20%;
}
#schedule div div:last-of-type {
  width: 80%;
}
#schedule div.flex.now {
  font-size: 120%;
  color: #c12828;
  font-weight: bold;
}
#schedule div.flex.end {
  font-size: 90%;
  color: #7e7e7e;
  font-weight: normal;
  text-decoration: line-through;
}
#schedule div.flex.end div:last-of-type:before {
  content: "終了";
  background-color: #7e7e7e;
  font-size: 90%;
  color: #FFF;
  padding: 0.2em;
  margin-right: 0.2em;
}
#schedule div span {
  margin-right: 0.5em;
}
/*[終了]schedule 応募期間*/
/*[開始]prize 賞品*/
#prize p {
  font-size: 2.2rem;
  text-align: center;
}
/*[終了]prize 賞品*/
/*[開始]apply 応募方法*/
#apply {
  text-align: center;
}
#apply h3 {
  font-size: 2.8rem;
  text-align: center;
  margin-bottom: 0.3em;
  font-weight: bold;
}
#apply p {
  text-align: center;
}
#apply section#apply_contents section {
  margin-top: 2em;
}
#apply section#apply_contents section:last-of-type {
  margin-bottom: 2em;
}
/*[終了]apply 応募方法*/
/*[開始]terms 規約*/
#terms {
  line-height: 1.8;
}
#terms_contents {
  padding-bottom: 200px;
}
#terms #terms_contents div h3 + p {
  margin-bottom: 1em;
}
#terms .flex {
  justify-content: space-between;
  flex-wrap: wrap;
}
#terms dt {
  width: 30%;
  padding-right: 3%;
}
#terms dd {
  width: 70%;
  margin-left: 0;
}
#terms dd ol li, #terms dd ul li {
  list-style: none;
  margin-bottom: 0.5em;
}
#terms dt, #terms dd {
  border-bottom: 1px solid #333;
  padding-bottom: 1em;
  margin-bottom: 1em;
}
#terms dd > span{
display: block;
margin-bottom: 0.7em;
}
#terms dd div {
  margin-bottom: 1em;
}
#terms dd div > span{
font-weight: bold;
}

/*[終了]terms 規約*/
/*[開始]dkids dキッズとは*/
#dkids {
  position: relative;
  margin-top: -230px;
  z-index: 2;
}
#dkids h2 {
  position: relative;
  background-color: #c12828;
  width: 70%;
  color: #FFF;
  font-size: 2.4rem;
  text-align: center;
  border-radius: 10px;
  border-top: 3px solid #333;
  border-right: 3px solid #333;
  border-left: 3px solid #333;
  border-bottom: 6px solid #333;
  padding-top: 0.3em;
  padding-bottom: 0.3em;
  margin-right: auto;
  margin-left: auto;
  z-index: 2;
}
#dkids #dkids_contents > div {
  background-color: #FFF;
  padding-top: 3em;
  padding-bottom: 2em;
  margin-top: -2em;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}
#dkids div div, #dkids div img {
  width: 83.3%;
  max-width: 800px;
}
#dkids div img {
  padding-top: 2em;
  margin-top: -2em;
}
#dkids #cv03 {
margin-top: 0;
  margin-right: auto;
  margin-left: auto;
}
/*[終了]dkids dキッズとは*/