@charset "UTF-8";
/*--------------------------
  全体
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/

:root {
  --bc-gap-s: 20px;
  --bc-gap-m: 40px;
  --bc-gap-l:80px;
  --bc-gap-ll: 100px;
  
  --back-pattern:repeating-linear-gradient(-45deg, #222, #222 5px, #111 5px, #111 10px);
  
  --color-dark:#222;
  --color-base:#fff;
  --color-emp:#eab713;
  
  --color-qf01:#8cc63f;
  --color-qf02:#62bd5b;
  --color-qf03:#38b577;
  --color-qf04:#00a99d;
  
  --font-normal: "Noto Sans JP", sans-serif;
  --font-emp: "M PLUS 1p", sans-serif;
  --font-round: "M PLUS Rounded 1c", sans-serif;

  --font-s: clamp(12px, 0.614rem + 0.68vw, 16px);
  --font-base: clamp(14px, 0.739rem + 0.68vw, 20px);
  --font-m: clamp(16px, 0.909rem + 0.45vw, 24px);
  --font-l: clamp(20px, 0.886rem + 1.82vw, 36px);
  --font-ll: clamp(24px, 0.955rem + 2.73vw, 48px);
} 
@media screen and (max-width:767px){
  :root {
  --bc-gap-s: 10px;
  --bc-gap-m: 20px;
  --bc-gap-l:30px;
  --bc-gap-ll: 50px;
  }
}

/*--------------------------
  共通
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.lp-challengers{
  font-family: var(--font-normal);
  font-weight: 400;
  font-style: normal;
  font-optical-sizing: auto;
  font-size:var(--font-base);
  color:var(--color-base);
  background:var(--color-dark);
  text-align:center;
}

.lp-challengers img{
  width:100%;
}

/*リンク*/
.lp-challengers a:hover{
  opacity:0.7;
}
.lp-challengers .btn-link a:hover{
  transform: scale(0.95);
}
.lp-challengers p a,
.lp-challengers td a{
  text-decoration: underline;
}

/*飾り枠*/
.frame{
  position:relative;
  width:100%;
  margin-top:2px;
}
.frame-inner{
  position:relative;
  width:100%;
  height:100%;
  padding:2px;
  border:1px solid;
  border-color:#000;
}

.frame-qualifying .frame-inner{
  border-color: var(--color-qf01);
}
.frame-finals .frame-inner{
  border-color:var(--color-qf04);
}

.frame::before,
.frame::after,
.frame-inner::before,
.frame-inner::after{
  content:'';
  position:absolute;
  background:#000;
  width:20px;
  height:20px;
  aspect-ratio: 1;
  z-index:1;
}
.frame::before{
  bottom:0;
  left:0;
  clip-path: polygon(0 0,100% 100%,0 100%);
}
.frame::after{
  bottom:0;
  right:0;
  clip-path: polygon(100% 0,100% 100%,0 100%);
}
.frame-inner::before{
  top:-1px;
  left:-1px;
  clip-path: polygon(0 0,100% 0,0 100%);
}
.frame-inner::after{
  top:-1px;
  right:-1px;
  clip-path: polygon(0 0,100% 0,100% 100%);
}

@media screen and (max-width:767px){
  .frame::before,
  .frame::after,
  .frame-inner::before,
  .frame-inner::after{
    width:10px;
    height:10px;
  }
}



/*--------------------------
  コンテンツ部分
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.contents-area{
  width:100%;
  padding-top:var(--bc-gap-l);
  padding-bottom:var(--bc-gap-l);
}

.contents-inner{
  margin:auto;
  width:90%;
  max-width:1140px;
}

.cont-block{
  padding-top:var(--bc-gap-ll);
  width:100%;
}
.cont-block h3{
  width:100%;
}

.cont-block p,
.cont-block li{
  line-height:1.8;
}

.cont-block  ul{
  list-style:disc;
}
.cont-block ul li{
  margin-left:1em;
}

.caution{
  position:relative;
  padding-left:1em;
}
.caution::before{
  position:absolute;
  top:0;
  left:0;
  content:'※';
}

/*--------------------------
  キービジュアル
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.kv-area{
  width:100%;
  position:relative;
}
.kv-area .logo{
  top:20px;
  left:0;
  width:40%;
  max-width:300px;
  position:absolute;
  z-index:1;
  background:rgba(0,0,0,0.7);
  text-align:center;
}
.kv-area .logo a{
  width:100%;
  padding:20px;
}


/*----------------------------
  タイトルエリア
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.title-area{
  background: var(--back-pattern);
  padding: var(--bc-gap-s) 10px;
  font-size: var(--font-l);
  line-height:1.2;
  font-weight:700;
  letter-spacing:0.1em;
}
.title-area h1{
  font-size: var(--font-ll);
  font-family: var(--font-emp);
  font-weight:900;
}

/*----------------------------
  日程
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.date-area{
  background:#000;
  padding: var(--bc-gap-s) 10px;
  font-size: var(--font-m);
  line-height:1.2;
  font-weight:700;
  letter-spacing:0.1em;
  display:flex;
  justify-content: center;
  gap:var(--bc-gap-m);
}
.date-area .tag{
  padding:5px var(--bc-gap-m);
  margin-right:var(--bc-gap-s);
}
.date-area .finals .tag{
  border:1px solid var(--color-qf04);
  color:var(--color-qf04);
}
.date-area .qualifying .tag{
  border:1px solid var(--color-qf01);
  color:var(--color-qf01);
}
@media screen and (max-width:767px){
  .date-area .tag{
    padding:1px 5px;
  }
}
@media screen and (max-width:540px){
  .date-area{
    flex-direction: column;
    justify-content:flex-start;
    text-align:left;
    gap:10px;
  }
}

/*--------------------------
  エントリーボタン
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.block-entry{
  margin:auto;
  width:70%;
}
.block-entry p{
  position:relative;
  font-family: var(--font-emp);
  font-weight:700;
  color: var(--color-emp);
  font-size: var(--font-l);
  line-height:1.2;
}
.block-entry p::before{
  position:absolute;
  top:0;
  left:0;
  content:'';
  width:2px;
  height:100%;
  background: var(--color-emp);
  transform:rotate(-20deg);
}
.block-entry p::after{
  position:absolute;
  top:0;
  right:0;
  content:'';
  width:2px;
  height:100%;
  background: var(--color-emp);
  transform:rotate(20deg);
}
.block-entry .btn-link{
  margin-top:10px;
}
.block-entry a{
  display:block;
  background: var(--color-emp);
  color: var(--color-dark);
  font-size: var(--font-m);
  font-weight:bold;
  letter-spacing:0.1em;
}
.block-entry .btn-txt{
  padding: var(--bc-gap-s);
  border:1px solid #000;
}

@media screen and (max-width:767px){
  .block-entry{
    width:100%;
  }
}

/*--------------------------
  リード文章
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.block-lead h2{
  font-size: var(--font-ll);
  font-family: var(--font-emp);
  font-weight:900;
  margin-bottom: var(--bc-gap-s);
}

/*--------------------------
  概要
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.cont-detail{
  text-align:left;
}
.cont-detail h3{
}
.cont-detail .hd-eng{
  font-size:var(--font-l);
  font-family: var(--font-emp);
  font-weight:900;
  margin-bottom:10px;
  line-height:1.2;
}
.cont-detail .frame{
  margin-top:2px;
}
.cont-detail table{
  width:100%;
  border:1px solid;
  border-color:#000;
}
.cont-detail table th,
.cont-detail table td{
  border:1px solid #000;
}
.cont-detail table th{
  padding:10px 2px;
  text-align:center;
  vertical-align: middle;
  background:var(--back-pattern);
}

.cont-detail table th.hd{
  color: var(--color-dark);
}

.cont-detail .frame-qualifying table th.hd{
  background: var(--color-qf01);
  border-color: var(--color-qf01);
}
.cont-detail .frame-finals table th.hd{
  background:var(--color-qf04);
  border-color: var(--color-qf04);
}
.cont-detail table td{
  padding:10px 20px;
  background:#fff;
  color:var(--color-dark);
  width:70%;
  line-height:1.8;
}


.cont-detail .tag{
  padding:0 10px;
  margin-right:10px;
}
.cont-detail .finals .tag{
  background:var(--color-qf04);
}
.cont-detail .qualifying .tag{
  background:var(--color-qf01);
}

/*--------------------------
  参加までの流れ
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.step-outer{
  width:100%;
  background:#fff;
  color: var(--color-dark);
  padding: var(--bc-gap-m);
  gap:var(--bc-gap-m);
  display:flex;
  flex-wrap:wrap;
}
.step-outer > div{
  width:calc((100% - var(--bc-gap-m)*3) / 4);
}
.step-outer .step-hd{
  text-align:center;
  font-weight:900;
  font-size:var(--font-l);
}
.step01 .step-hd{
  color:var(--color-qf01);
}
.step02 .step-hd{
  color:var(--color-qf02);
}
.step03 .step-hd{
  color:var(--color-qf03);
}
.step04 .step-hd{
  color:var(--color-qf04);
}
.step-outer .step-img{
  margin:5px auto;
  text-align:center;
  border-radius:50%;
  width:80%;
}
.step01 .step-img{
  background:var(--color-qf01);
}
.step02 .step-img{
  background:var(--color-qf02);
}
.step03 .step-img{
  background:var(--color-qf03);
}
.step04 .step-img{
  background:var(--color-qf04);
}

@media screen and (max-width:767px){
  .step-outer > div{
    width:calc((100% - var(--bc-gap-m)*1) / 2);
  }
}


/*--------------------------
  ルール
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.rule-outer{
  width:100%;
  color: var(--color-dark);
}
.rule-hd{
  width:100%;
  padding:10px;
  text-align:center;
  font-weight:bold;
}
.frame-qualifying .rule-hd{
  background: var(--color-qf01);
}
.frame-finals .rule-hd{
  background: var(--color-qf04);
}
.rule-inner{
  width:100%;
  padding:var(--bc-gap-s) var(--bc-gap-m);
  background:#fff;
}

.rule-sub-hd{
  margin-top:var(--bc-gap-s);
  margin-bottom:var(--bc-gap-s);
  padding:5px;
  text-align:center;
  color:#fff;
  font-weight:bold;
  background:var(--back-pattern);
  letter-spacing:0.2em;
}

.rule-inner li{
  position: relative;
  margin:10px auto;
}
.rule-inner ol{
  list-style: none;
}

/*--------------------------
  キャスト・リーダーリスト
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.cast-outer{
  width:100%;
  display:flex;
  justify-content: space-between;
  gap:var(--bc-gap-m);
  flex-wrap:wrap;
}
.cast-outer > div{
  width:calc((100% - var(--bc-gap-m)) / 2);
}
.cast-profile{
  padding:10px;
  background:var(--back-pattern);
  display:flex;
  justify-content: space-between;
  align-items: center;
  border:1px solid #000;
}
.cast-photo{
  width:100%;
  background:#fff;
  border:1px solid #000;
}
.cast-name{
  font-weight:bold;
  letter-spacing:0.2em;
  min-height:30px;
}
.cast-outer .team-name{
  font-size:0.85em;
  letter-spacing:0.1em;
  line-height:1.2 !important;
  background: var(--color-qf04);
  color:var(--color-dark);
  font-weight:bold;
  padding:10px;
  border-left:1px solid #000;
  border-right:1px solid #000;
}
.cast-sns{
  display:flex;
  justify-content: space-between;
  width:70px;
  height:30px;
}
.cast-sns a{
  width:30px;
  height:30px;
}

@media screen and (max-width:767px){
 .cast-outer{
   flex-direction: column;
  }
  .cast-outer > div{
    width:100%;
  }
}


/*--------------------------
  参加者一覧
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
.team-outer{
  width:100%;
  display:flex;
  gap:var(--bc-gap-m);
  flex-wrap:wrap;
}
.team-outer > div{
  width:calc((100% - var(--bc-gap-m)) / 2);
}
.team-hd{
  padding:10px;
  border:1px solid #000;
  background: var(--color-qf04);
  color:var(--color-dark);
  letter-spacing:0.1em;
  font-weight:bold;
}
.team-member{
  border:1px solid #000;
  background:var(--back-pattern);
  display:flex;
  justify-content: space-between;
  align-items: center;
}
.team-member .cast-photo{
  width:60px;
  height:60px;
}

.team-member .cast-name{
  width:calc(100% - 140px);
  padding-left:10px;
}
.team-member .cast-sns{
  margin-right:10px;
}

@media screen and (max-width:767px){
 .team-outer{
   flex-direction: column;
  }
  .team-outer > div{
    width:100%;
  }
}


/*--------------------------
  賞品
ｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰｰ*/
#block-prize .frame-inner > div{
  width:100%;
  background:#fff;
  color:var(--color-dark);
  border:1px solid #000;
  display:flex;
  justify-content:space-between;
  align-items: center;
  flex-wrap:wrap;
}
.prize-txt{
  padding:var(--bc-gap-s) var(--bc-gap-m);
}
.prize-hd{
  margin-bottom:10px;
  font-weight:bold;
  font-size: var(--font-m);
}
.prize-sizeL > div{
  width:50%;
}

.prize-sizeM .prize-photo{
  width:30%;
}
.prize-sizeM .prize-txt{
  width:70%;
}

.prize-sizeS > div{
  width:50%;
}
.prize-S{
  display:flex;
  justify-content:space-between;
  align-items: center;
  flex-wrap:wrap;
}
.prize-S > div{
  width:50%;
}

@media screen and (max-width:767px){
 .prize-sizeL > div,
 .prize-sizeM .prize-photo,
 .prize-sizeM .prize-txt,
 .prize-sizeS > div,
 .prize-S > div{
   width:100%;
  }
 .prize-txt{
    padding:var(--bc-gap-m);
  }
}

