@charset "UTF-8";
@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;800;900&display=swap);
body {
  margin: 0;
}
.cp2510 div, .cp2510 dl, .cp2510 dt, .cp2510 dd, .cp2510 ul, .cp2510 ol, .cp2510 li, .cp2510 h1, .cp2510 h2, .cp2510 h3, .cp2510 h4, .cp2510 h5, .cp2510 h6, .cp2510 p, .cp2510 table, .cp2510 th, .cp2510 td, .cp2510 caption, .cp2510 tbody, .cp2510 article, .cp2510 aside, .cp2510 figure {
  margin: 0;
  padding: 0;
  font-size: 100%;
  background-color: transparent;
}
.cp2510 img {
  border: 0;
  vertical-align: bottom;
}
.cp2510 ul, .cp2510 ol {
  list-style: none;
}
.cp2510 table {
  border-collapse: collapse;
  border-spacing: 0;
}
.cp2510 figure, .cp2510 figcaption {
  display: block;
}
.cp2510 *, .cp2510 *:before, .cp2510 *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
/* =========================================================
　◆LINK
========================================================= */
.cp2510 a:link {
  color: #000000;
  text-decoration: underline;
}
.cp2510 a:visited {
  color: #000000;
  text-decoration: underline;
}
.cp2510 a:hover {
  color: #000000;
  text-decoration: none;
}
.cp2510 a:active {
  color: #000000;
  text-decoration: none;
}
.cp2510 .present a {
  color: #f6f700;
}
/* =========================================================
◆KVアニメーション
========================================================= */
.cp2510 .main h1 , .cp2510 .main .title , .cp2510 .main .date , .cp2510 .main .copy , .cp2510 .present {
	opacity: 0;
}
.fadein {
  animation: fadeIn 0.6s forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.slideup {
  animation: slideUp 0.8s forwards;
}
@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* =========================================================
　◆レイアウト
========================================================= */
article {
  max-width: 100%;
  min-width: 100%;
  overflow: hidden;
  padding: 0;
  background: #23306A;
  background: linear-gradient(180deg, rgba(35, 48, 106, 1) 0%, rgba(102, 2, 148, 1) 30%, rgba(153, 0, 146, 1) 60%, rgba(153, 0, 146, 1) 80%, rgba(106, 19, 129, 1) 100%);
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;
}
.cp2510 {
  box-sizing: border-box;
  line-height: 1;
  font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", Meiryo, serif;
  font-weight: 400;
  color: #000000;
  position: relative;
  -webkit-text-size-adjust: none;
  padding-top: 110px;
}
.cp2510 {
  background-image: url("../img/bg.png");
  background-position: center bottom;
  background-size: cover;
  background-attachment: fixed;
}
.cp2510 .deco01 {
  position: absolute;
  top: 0.66666666%;
  left: 6.4166666%;
  width: 15.25%;
  z-index: 1;
}
.cp2510 .deco02 {
  position: absolute;
  top: 0.66666666%;
  left: 76.25%;
  width: 14%;
  z-index: 1;
}
.cp2510 .deco03 {
  position: absolute;
  bottom: -1.6666666%;
  left: 9%;
  width: 13.1666666%;
  z-index: 1;
}
.cp2510 .deco04 {
  position: absolute;
  bottom: -1.6666666%;
  left: 81.8333333%;
  width: 8.3333333%;
  z-index: 1;
}
.cp2510 .deco05, .cp2510 .deco06 {
  display: none;
}
.cp2510 .main {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.cp2510 .main h1 {
  margin-left: 33.0833333%;
  padding-top: 2.5833333%;
  width: 33.9166666%;
}
.cp2510 .main .title {
  margin-left: 19.75%;
  padding-top: 1.0833333%;
  width: 56.1666666%;
}
.cp2510 .main .date {
  margin-left: 17.5%;
  padding-top: 1.1666666%;
  width: 65%;
}
.cp2510 .main .copy {
  text-align: center;
  padding-top: 0.6666666%;
  font-size: clamp(11px, 1.16vw, 14px);
  font-weight: 500;
  color: #ffffff;
  letter-spacing: -0.01em;
}
.cp2510 .present {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  padding-top: min(1.6666666%, 16px);
}
.cp2510 .present .inner {
  max-width: 880px;
  margin: 0 auto;
  width: 73.3333333%;
  background-image: url("../img/pre_bg.webp?202510062053");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% 100%;
  padding-bottom: 5.6%;
}
.cp2510 .present .lead {
  margin-left: 7.7272727%;
  width: 87.9545454%;
  padding-top: 1.0227272%;
  position: relative;
}
.cp2510 .present .ticket {
  padding: 0.6818181% 5.6818181% 0;
  display: flex;
  flex-wrap: wrap;
  position: relative;
}
.cp2510 .present .ticket .ttl {
  width: 42.3076923%;
}
.cp2510 .present .ticket .text {
  width: calc(57.6923076% - 2.5641025%);
  margin-left: 2.5641025%;
  font-size: clamp(10px, 1.083vw, 13px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.3;
  letter-spacing: -0.05em;
}
.cp2510 .present .ticket .text .fontS {
  font-size: clamp(9px, 1.22vw, 12px);
}
.cp2510 .present .line {
  padding: 3.0681818% 5.6818181% 1.4772727%;
  line-height: 0;
}
.cp2510 .present .calendar {
  padding: 0 5.6818181%;
  display: flex;
  flex-wrap: wrap;
  position: relative;
}
.cp2510 .present .calendar .ttl {
  width: 42.3076923%;
  padding-top: 1.590909%;
}
.cp2510 .present .calendar .image {
  width: calc(57.6923076% - 2.5641025%);
  margin-left: 2.5641025%;
}
.cp2510 .present .calendar .catch {
  margin-top: -0.6818181%;
}
.cp2510 .quiz {
  max-width: 1200px;
  margin: 0 auto;
  padding: min(4.1666666%, 50px) 0 min(5.3333333%, 64px);
}
.cp2510 .quiz .inner {
  width: 58.33333333%;
  margin-left: 20.8333333%;
}
.cp2510 .outline {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}
.cp2510 .outline .inner {
  width: 65%;
  margin: 0 auto;
}
.cp2510 .outline .inner .box {
  margin: 0 auto;
  padding: 6.4102564% 2.5641025% 3.8461538%;
  background-color: #ffffff;
  border: solid 4px #be8a45;
  border-radius: 20px;
  color: #000000;
  font-size: clamp(11px, 1.33vw, 16px);
}
.cp2510 .outline .inner h2 {
  text-align: center;
  color: #be8a45;
  font-weight: 800;
  font-size: clamp(21px, 2.5vw, 30px);
  margin-bottom: 3.4090909%;
}
.cp2510 .outline .inner .box .text {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  border-bottom: solid 1px #be8a45;
  padding: 13px 0;
  line-height: 1.5;
  letter-spacing: -0.03em;
}
.cp2510 .outline .inner .box .text:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.cp2510 .outline .inner .text .dt {
  color: #be8a45;
  font-weight: 700;
  font-size: clamp(12px, 1.5vw, 18px);
  width: 24%;
  margin-right: 0;
  line-height: 1.3;
}
.cp2510 .outline .inner .text .dd {
  width: calc(100% - 24%);
}
.cp2510 .outline .inner .text .dd .date {
  color: #ff0000;
  font-size: clamp(17px, 2.44vw, 24px);
}
.cp2510 .agreement_text {
  font-size: clamp(13px, 1.5vw, 18px);
  font-weight: 700;
  color: #000000;
  text-align: center;
  letter-spacing: -0.03em;
  margin-top: 7.2727272%;
}
.cp2510 .entry {
  text-align: center;
  color: #ffffff;
  padding: min(2%, 24px) 0 min(7.5%, 90px);
}
.cp2510 .entry .text {
  font-size: clamp(14px, 1.83vw, 18px);
  font-weight: 700;
}
.cp2510 .entry .btn {
  margin: 30px auto 0;
  max-width: 470px;
}
.cp2510 .entry .btn a {
  background-color: #dbb963;
  font-size: clamp(30px, 3.67vw, 36px);
  display: block;
  color: #ffffff !important;
  text-decoration: none;
  border: solid 2px #ffffff;
  padding: 6.38% 0;
  letter-spacing: -0.03em;
  background-image: url("../img/icon_btn_arrow.png");
  background-repeat: no-repeat;
  background-position: right 8.51% top 52%;
  background-size: 2% auto;
  transition: all 0.5s ease;
  z-index: 2;
  position: relative;
  border-radius: 50px;
  font-weight: 700;
}
.cp2510 .entry .btn a:hover {
  background-color: #ffffff;
  color: #dbb963 !important;
  border: solid 2px #dbb963;
  box-shadow: 0 0 20px 0 rgba(256, 256, 256, 0.7);
  background-image: url("../img/icon_btn_arrow_on.png");
  background-position: right 6% top 52%;
}
.cp2510 .sponsor {
  text-align: left;
  padding: min(7.1666666%, 86px) 0 min(7.5%, 90px);
}
.cp2510 .sponsor .btn {
  margin: 0 auto;
  max-width: 230px;
}
.cp2510 .sponsor .btn a {
  background-color: #ffffff;
  font-size: clamp(11px, 1.16vw, 14px);
  display: block;
  color: #c99341 !important;
  text-decoration: none;
  padding: 6.38% 0 6.38% 4%;
  letter-spacing: -0.03em;
  background-image: url("../img/icon_btn_arrow_on.png");
  background-repeat: no-repeat;
  background-position: right 4% top 52%;
  background-size: 3% auto;
  transition: all 0.5s ease;
  z-index: 2;
  position: relative;
  font-weight: 700;
}
.cp2510 .sponsor .btn a:hover {
  background-color: #c99341;
  color: #ffffff !important;
  background-image: url("../img/icon_btn_arrow.png");
}
.cp2510 .copy .sub {
  vertical-align: -7px;
  font-size: 18px;
}
.cp2510 .sub img {
  width: 1.8%;
  display: inline;
  vertical-align: 0px;
}
.cp2510 .announce {
  background-color: #014354;
  padding: min(5.8333%, 70px) 0 0;
  position: relative;
}
.cp2510 .announce .inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.cp2510 .announce .wap01 {
  max-width: 880px;
  margin: 0 auto;
  width: 73.3333333%;
  z-index: 2;
  position: relative;
}
.cp2510 .announce .wap01 .title01 {
  width: 16.8181818%;
  position: absolute;
  margin-top: -2.9545454%;
  left: 1.4772727%;
}
.cp2510 .announce .wap02 {
  max-width: 880px;
  margin: 0 auto;
  width: 73.3333333%;
  background-color: #1c7a94;
  background-image: url("../img/announce_bg.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: relative;
  z-index: 1;
  margin-top: 2.9545454%;
  padding-bottom: min(7.6530612%, 67px);
}
.cp2510 .announce .wap02 .title02 {
  width: 63.8636363%;
  margin: 0 auto;
  padding: 9.090909% 0 2.840909%;
}
.cp2510 .announce .wap02 .kv {
  width: 73.6363636%;
  margin: 0 auto;
}
.cp2510 .announce .wap02 .box {
  background-image: url("../img/announce_box_bg_top.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 73.4090909%;
  margin: 7.9545454% auto 0;
  padding-top: 1.5479876%;
}
.cp2510 .announce .wap02 .box_title {
  width: 49.6514329%;
  margin: 0 auto;
  padding-bottom: 1.23839%;
}
.cp2510 .announce .wap02 .box_text {
  background-color: #014354;
  color: #ffffff;
}
.cp2510 .announce .wap02 .text01 {
  border-top: solid 2px #e1c061;
  padding-top: 1.3888888%;
  margin: 0 2.7863777%;
  font-size: 16px;
  line-height: 1.5;
  text-align: justify;
}
.cp2510 .announce .wap02 .text02 {
  margin: 2.2222222% 2.7863777% 0;
  background-color: #ffffff;
  color: #027a98;
  font-size: 14px;
  line-height: 1.5;
  padding: 7px 10px;
  text-align: justify;
		letter-spacing: -0.05em;
}
.cp2510 .announce .box_btm {
  background-image: url("../img/announce_box_bg_btm.png");
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 73.4090909%;
  padding-top: 3%;
  margin: 0 auto;
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  article {
    background-image: none;
  }
  article::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: top 100%;
    background: linear-gradient(180deg, rgba(35, 48, 106, 1) 0%, rgba(102, 2, 148, 1) 20%, rgba(153, 0, 146, 1) 60%, rgba(153, 0, 146, 1) 80%, rgba(106, 19, 129, 1) 100%);
    background-size: cover;
  }
		 .cp2510::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: bottom 100%;
    background-image: url("../img/bg.png");
    background-size: cover;
  }
}
@media screen and (max-width: 767px) {
  article {
    background-image: none;
  }
  article::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: top 100%;
    background: linear-gradient(180deg, rgba(35, 48, 106, 1) 0%, rgba(102, 2, 148, 1) 20%, rgba(153, 0, 146, 1) 60%, rgba(153, 0, 146, 1) 80%, rgba(106, 19, 129, 1) 100%);
    background-size: cover;
  }
  .cp2510 {
    background-image: none;
				padding-top: 80px;
  }
  .cp2510 .deco01 {
    position: absolute;
    top: 1.4666666%;
    left: 0.26666666%;
    width: 16.4%;
    z-index: 1;
  }
  .cp2510 .deco02 {
    position: absolute;
    top: 1.4666666%;
    left: 83.6%;
    width: 16.4%;
    z-index: 1;
  }
  .cp2510 .deco03 {
    position: absolute;
    bottom: -4%;
    left: 0;
    width: 21.0666666%;
    z-index: 1;
  }
  .cp2510 .deco04 {
    position: absolute;
    bottom: -1%;
    left: 91.4666666%;
    width: 8.2666666%;
    z-index: 1;
  }
  .cp2510 .deco05 {
    position: absolute;
    top: 10%;
    left: -10.2666666%;
    width: 24.9333333%;
    z-index: 3;
    display: block;
  }
  .cp2510 .deco06 {
    position: absolute;
    top: 16%;
    left: 78.5333333%;
    width: 21.2%;
    z-index: 3;
    display: block;
  }
  .cp2510 .main {}
  .cp2510 .main h1 {
    padding-top: 4.2666666%;
    width: 82.2666666%;
    margin: 0 auto;
    z-index: 2;
  }
  .cp2510 .main .title {
    margin-left: 0.9333333%;
    padding-top: 2.6666666%;
    width: 90.6666666%;
  }
  .cp2510 .main .date {
    padding-top: 2.6666666%;
    width: 94.6666666%;
    margin: 0 auto;
  }
  .cp2510 .main .copy {
    padding-top: 0.6666666%;
    font-size: 3.2vw;
    letter-spacing: -0.05em;
  }
  .cp2510 .present {
    padding-top: 3.4666666%;
  }
  .cp2510 .present .inner {
    width: 94.6666666%;
    background-image: url("../img/sp/pre_bg.webp?202510062053");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% 100%;
    padding-bottom: 9.436%;
  }
  .cp2510 .present .lead {
    margin-left: -2.6666666%;
    width: 105.6338028%;
    padding-top: 3.5211267%;
  }
  .cp2510 .present .ticket {
    padding: 0 4.6153846%;
    display: block;
  }
  .cp2510 .present .ticket .ttl {
    width: 100%;
  }
  .cp2510 .present .ticket .text {
    width: 100%;
    margin-left: 0;
    font-size: 2.93vw;
    margin-top: 2.8169014%;
  }
  .cp2510 .present .ticket .text .fontS {
    font-size: 2.66vw;
  }
  .cp2510 .present .line {
    padding: 4.2253521% 4.6153846%;
    line-height: 0;
  }
  .cp2510 .present .calendar {
    padding: 0 4.6153846%;
    display: block;
  }
  .cp2510 .present .calendar .ttl {
    width: 100%;
  }
  .cp2510 .present .calendar .image {
    width: 100%;
    margin-left: 0;
    padding-top: 4.2253521%;
  }
  .cp2510 .present .calendar .catch {
    display: none;
    padding: 0;
  }
  .cp2510 .quiz {
    padding: 10% 0 0;
  }
  .cp2510 .quiz .inner {
    width: 94.8%;
    margin: 0 auto;
  }
  .cp2510 .outline {
    padding: 10% 0 0 0;
  }
  .cp2510 .outline .inner {
    width: 86.6666666%;
  }
  .cp2510 .outline .inner .box {
    padding: 6.4102564% 2.5641025% 3.8461538%;
    border: solid 2px #be8a45;
    border-radius: 14px;
    font-size: 3.2vw;
  }
  .cp2510 .outline .inner h2 {
    font-size: 4.8vw;
    margin-bottom: 0;
    padding-bottom: 0.8vw;
  }
  .cp2510 .outline .inner .box .text {
    display: block;
    font-size: 3.2vw;
    padding: 3.2vw 0;
  }
  .cp2510 .outline .inner .box .text:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  .cp2510 .outline .inner .text .dt {
    font-size: 3.73vw;
    width: 100%;
    margin-right: 0;
  }
  .cp2510 .outline .inner .text .dd {
    width: 100%;
  }
  .cp2510 .outline .inner .text .dd .date {
    font-size: 4.26vw;
  }
  .cp2510 .agreement_text {
    font-size: 3.2vw;
    margin-top: 7.2727272%;
  }
  .cp2510 .entry {
    padding: 3.12% 0 10%;
  }
  .cp2510 .entry .text {
    font-size: 3.2vw;
  }
  .cp2510 .entry .btn {
    margin: 4.66% 13.33% 0;
    max-width: auto;
    max-width: initial;
  }
  .cp2510 .entry .btn a {
    font-size: 4.8vw;
  }
  .cp2510 .sponsor {
    text-align: left;
    padding: 10% 0;
  }
  .cp2510 .sponsor .btn {
    margin: 0 28%;
    max-width: auto;
    max-width: initial;
  }
  .cp2510 .sponsor .btn a {
    font-size: 2.66vw;
  }
  .cp2510 .copy .sub {
    vertical-align: -7px;
    font-size: 18px;
  }
  .cp2510 .sub img {
    width: 1.8%;
    display: inline;
    vertical-align: 0px;
  }
  .cp2510 .announce {
    padding: 4.8% 0 0;
  }
  .cp2510 .announce .wap01 {
    width: 86.6666666%;
  }
  .cp2510 .announce .wap01 .title01 {
    width: 24.9230769%;
    position: absolute;
    margin-top: -5.2307692%;
    left: 0.9230769%;
  }
  .cp2510 .announce .wap02 {
    width: 86.6666666%;
    background-color: #1c7a94;
    background-image: url("../img/sp/announce_bg.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    position: relative;
    z-index: 1;
    margin-top: 5.2307692%;
    padding-bottom: 8%;
  }
  .cp2510 .announce .wap02 .title02 {
    width: 96.3076923%;
    padding: 18% 0 4%;
  }
  .cp2510 .announce .wap02 .kv {
    width: 87.6923076%;
  }
  .cp2510 .announce .wap02 .box {
    background-image: url("../img/sp/announce_box_bg_top.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    width: 87.6923076%;
    margin: 10.7692307% auto 0;
    padding-top: 4%;
  }
  .cp2510 .announce .wap02 .box_title {
    width: 71.6923076%;
    padding-bottom: 2.4615384%;
  }
  .cp2510 .announce .wap02 .box_text {}
  .cp2510 .announce .wap02 .text01 {
    border-top: solid 1px #e1c061;
    padding-top: 2.4615384%;
    margin: 0 3.5087719%;
    font-size: 2.93vw;
  }
  .cp2510 .announce .wap02 .text02 {
    margin: 2.4615384% 3.5087719% 0;
    font-size: 2.93vw;
    padding: 2.6315789%;
				letter-spacing: -0.01em;
  }
  .cp2510 .announce .box_btm {
    background-image: url("../img/sp/announce_box_bg_btm.png");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% auto;
    width: 87.6923076%;
    padding-top: 5.3846153%;
  }
}
/* =========================================================
◆スクロールアニメーション
========================================================= */
.fade-in {
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
  transition: opacity .8s, transform .8s;
}
.is-inview {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}
/* =========================================================
　◆共通
========================================================= */
.cp2510 img {
  width: 100%;
}
.cp2510 .indent {
  text-indent: -1em;
  padding-left: 1em;
}
.cp2510 .color-icon {
  color: #dbb963;
}
.clearfix:after {
  content: "";
  clear: both;
  display: block;
}
/* =========================================================
　◆表示切替
========================================================= */
.pcn {
  display: none;
}
@media screen and (max-width: 767px) {
  .spn {
    display: none;
  }
  .pcn {
    display: inline-block;
  }
}