/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}

/*!///////////////////////////////////////////*/
/*!//////////// ↓↓↓reset↓↓↓ ////////////*/
/*!///////////////////////////////////////////*/
*, *::before, *::after { box-sizing: border-box;}
h1, h2, h3, h4, h5, h6, p, ul, ol, dl { margin: 0; color: #000;}
a { text-decoration: none;}
ul,ol { padding-left: 0; list-style-type: none;}
dd { margin-left: 0;}
p {font-size: 14px; line-height: 1.75;}
@media screen and (min-width: 768px) { p { font-size: 16px;}}
button {border: 0;}
/*!///////////////////////////////////////////*/
/*!//////////// ↑↑↑reset↑↑↑ ////////////*/
/*!///////////////////////////////////////////*/


/*!////////////////////////////////////////////*/
/*!//////////// ↓↓↓common↓↓↓ ////////////*/
/*!////////////////////////////////////////////*/
body {font-family: "Zen Kaku Gothic New", sans-serif;}
@media screen and (max-width: 767px) {
  .sp-none { display: none !important;}}
@media screen and (min-width: 768px) {
  .pc-none {display: none !important;}}
.hidden { display: none !important;}
.image { display: block; width: 100%;}
.wrapper {position: relative; overflow:clip;} /* overflowは適宜hiddenに変更 */
.container {
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
/* clamp用 */
body * { min-height: 0vw;} 
/* サイト計測用 */
a * {pointer-events: none;} 

img ,svg { width: 100%; height: auto; object-fit: contain; }

/* img {　画像コピー禁止用の場合使用
  pointer-events: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-touch-callout: none;
  -moz-user-select: none;
  user-select: none;
} */

section {
  position: relative;
}

h2 {
  text-align: center;
}

a {
  transition: .3s;
}

/* 可変改行指定、<wbr>と併用 */
.WBR { word-break: keep-all; overflow-wrap: anywhere; } 

.Grid {
  width: 100%;
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto;
  gap: 20px;
}

/* .link-button {display: block; width: 100%;} */

/* background用svgの記述
svgタグ内、viewBoxと内容を変更、カラー変更は#が効かないので%23を記述→fill="%23■■■■■■"
background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 10 8.66.24"><path fill="%23ffffff" d="M7.44,.1l2.44,4.23-2.44,4.23H2.56L.12,4.33,2.56,.1H7.44m.06-.1H2.5L0,4.33l2.5,4.33H7.5l2.5-4.33L7.5,0h0Z"/></svg>') ;
*/
/*!////////////////////////////////////////////*/
/*!//////////// ↑↑↑common↑↑↑ ////////////*/
/*!////////////////////////////////////////////*/

main {
  position: relative;
}

.all-bg {
  position: relative;
  isolation: isolate;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .all-bg {
    margin-top: -50px;
    padding-bottom: 100px;
  }
}

.all-bg::before {
  content: "";
  z-index: 2;
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg_all_top.png),url(../img/bg_all.png);
  background-repeat: no-repeat ,repeat-y;
  background-size: min(calc(2000vw / 14),2000px);
  background-position: top center;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .all-bg::before {
    background-size: min(calc(1400vw / 7.67),1400px);
  }
}

.bg {
  position: relative;
}
.bg.tokuten {
  background-color: #09b5bb;
}
.bg.join {
  background-color: #ffeee6;
}

.bg-wrapper {
  position: relative;
  z-index: 3;
}

.bg-wrapper::before {
  content: "";
  z-index: 1;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  pointer-events: none;
}

.fv {
  position: relative;
  background-image: url(../img/bg_kamihubuki.svg),url(../img/bg_fv.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding-bottom: min(20px,calc(50vw / 10),50px);
}
@media screen and (max-width: 767px) {
.fv {
    background-image: url(../img/bg_kamihubuki_sp.png),url(../img/bg_fv_sp.jpg);
    background-size: calc(420% / 3.75) 100%;
  }
}

.fv-logo {
  z-index: 1;
  position: absolute;
  top: 0;
  right: 0;
  max-width: clamp(159px,calc(370vw / 14),370px);
  width: 100%;
}
@media screen and (max-width: 767px) {
.fv-logo {
  max-width: min(calc(159vw / 3.75),370px);
  top: min(calc(20vw / 3.75),20px);
  right: 50%;
  transform: translate(50% ,0);
}
}

.fv-container {
  position: relative;
  max-width: 973px;
  padding-left: min(calc(50vw / 10),50px);
  padding-right: min(calc(50vw / 10),50px);
  margin: 0 auto;
}

.fv-date {
  position: relative;
  border: 2px solid #e95513;
  border-radius: 5px;
  overflow: clip;
  display: grid;
  grid-template-columns: 146px 1fr;
  grid-template-rows: auto;
  justify-content: center;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .fv-date {
    display: flex;
    flex-wrap: wrap;
    border: none;
    overflow: visible;
  }
}

.fv-date-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  background-color: #e95513;
  font-size: clamp(15px,calc(27vw / 10),27px);
  font-weight: 700;
  line-height: 1.2;
  padding: 5px;
}
@media screen and (max-width: 767px) {
  .fv-date-title {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%,-50%);
    display: inline-flex;
    width: auto;
    height: auto;
    border-radius: 5px;
    padding: 5px 1em;
  }
}

.fv-date-main {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding: 10px;
}
@media screen and (max-width: 767px) {
  .fv-date-main {
    border-radius: 5px;
    border: 2px solid #e95513;
    padding: 15px 15px 10px;
    width: auto;
  }
}

.fv-date-main p {
  font-size: clamp(13px,calc(32vw / 10),32px);
  font-weight: 500;
  line-height: 1.2;
}

.fv-date-main b {
  font-size: clamp(20px,calc(42vw / 10),42px);
  font-weight: 500;
}

.nav {
  background-color: #e95513;
  padding: 10px;
}

.nav .container {
  max-width: 1000px;
  width: 100%;
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1px;
  background-color: #fff;
  margin: 0 auto;
  padding: 0;
}

.nav a {
  width: 100%;
  height: 100%;
  flex: 1;
  min-width: clamp(140px,calc(150vw / 10),150px);
  min-height: clamp(50px,calc(62vw / 10),62px);
  display: grid;
  place-items: center;
  background-color: #e95513;
}

.nav a p {
  transition: .3s;
  color: #fff;
  font-size: clamp(13px,calc(23vw / 10),23px);
  font-weight: 700;
}

.nav a:hover p {
  transform: translateY(-2.5px);
  filter: drop-shadow(0 10px 0 rgba(255,255,255,.2));
}

.common-section {
  padding: clamp(40px,calc(80vw / 10),80px) 0;
}

.common-title {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 387.5716px;
  margin: 0 auto;
  padding: 0 20px;
}

.campaign-description {
  text-align: center;
  margin-top: 30px;
  font-size: clamp(16px,calc(23vw / 10),23px);
  font-weight: 700;
  line-height: calc(43 / 23);
}

.yellow-line span {
  background-image: linear-gradient(#ffff00,#ffff00);
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: 100% 40%;
}

.tokuten-wrapper {
  max-width: 510px;
  margin: 0 auto;
  text-align: center;
}

.tokuten-wrapper-img {
  width: 100%;
  max-width: 448.8525px;
  margin: 0 auto;
  transform: translateY(-20px);
}

.tokuten-text {
  display: inline-block;
  font-size: clamp(16px,calc(29vw / 10),29px);
  font-weight: 700;
  line-height: calc(46 / 29);
  color:#fff;
  text-align: left;
}

.tokuten-text span {
  color: #ffff00;
}

.tokuten-note {
  font-size: clamp(13px,calc(23vw / 10),23px);
  color:#fff;
  font-weight: 700;
  line-height: calc(36 / 23);
  text-align: center;
  margin: clamp(20px,calc(30vw / 10),30px) auto clamp(50px,calc(130vw / 10),130px);
}

.w-chance-line {
  background-image: linear-gradient(to right,#e5cb80,#ecd98e 18%,#f7f2e5 41% ,#b68821 73%,#e4c886 94%);
  background-position: center;
  padding: 3px;
}

.w-chance {
  background-color: #fff;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 30px;
}

.w-chance-img {
  position: relative;
  max-width: 290px;
  min-width: 200px;
  width: 100%;
  margin: 0 auto;
}

.w-chance-img-deco {
  position: absolute;
  width: calc( 231.7207% / 2.878735);
  right: 100%;
  top: 0;
  transform: translate(calc(63% + clamp(30px,calc(40vw / 10),40px)),-30%);
}

.w-chance-text {
  min-width: 240px;
  flex: 1;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.w-chance-text-wrapper {
  display: inline-flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: 30px;
}

.w-chance-text h3 {
  display: inline-block;
  font-size: clamp(17px,calc(28vw / 10),28px);
  font-weight: 700;
  line-height: calc(40 / 29);
  text-align: left;
}

.w-chance-text p {
  display: inline-block;
  font-size: clamp(15px,calc(23vw / 10),23px);
  font-weight: 700;
  line-height: calc(36 / 23);
  text-align: left;
}

.join-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 10px;
  margin-top: 20px;
}

.join-text p {
  font-size: clamp(14px,calc(23vw / 10),23px);
  font-weight: 700;
  line-height: calc(47 / 23);
  text-align: center;
}

.join-text p.join-date {
  font-size: clamp(20px,calc(48vw / 10),48px);
}

.join-list {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(300px,400px));
  justify-content: center;
  grid-auto-rows: auto;
  gap: 55px 33px;
  padding: 0 20px;
  margin-top: clamp(80px,calc(100vw / 10),100px);
}

.join-list-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto 1fr;
  gap: 5px;
  width: 100%;
  background-color: #fff;
  padding: 55px 20px 20px;
  border: 2.5px solid #000;
  border-radius: 15px;
}

.join-list-item::before {
  content: "";
  display: block;
  width: 84.2502px;
  height: auto;
  aspect-ratio: 84.2502 / 93.2156;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%,-50%);
  background-image: url(../img/num_join1.png);
  background-position: bottom center;
  background-size: contain;
  background-repeat: no-repeat;
}
.join-list-item:nth-of-type(2)::before {
  background-image: url(../img/num_join2.png);
}
.join-list-item:nth-of-type(3)::before {
  background-image: url(../img/num_join3.png);
}

.join-list-item p {
  font-size: clamp(14px,calc(23vw / 10),23px);
  font-weight: 700;
  line-height: calc(36 / 23);
  text-align: left;
}

.rule-list {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  gap: clamp(20px,calc(55vw / 10),55px);
  margin-top: 30px;
}

.rule-list * {
  font-size: clamp(12px,calc(23vw / 10),23px);
  font-weight: 700;
  line-height: calc(40 / 23);
}

.rule-list li p {
  text-indent: -1em;
  padding-left: 1em;
}

.rule-list h3::before {
  content: "●";
  color: #e95513;
  margin-right: 3px;
}

.rule-list a {
  margin-top: 30px;
}

.common-link {
  background-color: #e95513;
  color: #fff;
  font-size: clamp(15px,calc(24vw / 10),24px);
  font-weight: 700;
  max-width: 500px;
  padding: clamp(5px,calc(10vw / 10),10px) clamp(15px,calc(30vw / 10),30px);
  border-radius: clamp(30px,calc(50vw / 7.67),50px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 10px;
}

.common-link::after {
  content: "";
  display: inline-block;
  width: clamp(15px,calc(24vw / 10),24px);
  height: auto;
  aspect-ratio: 1;
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 19.14 19.14"><path fill="%23ffffff" d="M9.57,0C4.28,0,0,4.28,0,9.57s4.28,9.57,9.57,9.57,9.57-4.29,9.57-9.57S14.86,0,9.57,0ZM14.55,11.16l-4.34,4.35c-.35.35-.82.53-1.28.53s-.93-.18-1.28-.53c-.71-.71-.71-1.86,0-2.57l3.06-3.06-3.06-3.06c-.71-.71-.71-1.86,0-2.57.71-.71,1.86-.71,2.57,0l4.34,4.34c.36.36.53.82.53,1.29s-.18.93-.53,1.28Z"/></svg>') ;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: .3s;
}

@media screen and (min-width: 768px) {
  .common-link:hover {
    transform: translateY(2px);
    filter: drop-shadow(0 -2px 0 rgba(0,0,0,.3));
  }
  .common-link:hover::after {
    transform: translateX(5px);
  }
}

.join-link {
  text-align: center;
  margin-top: 30px;
}

.join-link .common-link {
  padding: clamp(20px,calc(30vw / 10),30px);
  font-size: clamp(20px,calc(32vw / 10),32px);
}
.join-link .common-link::after {
  width: clamp(20px,calc(32vw / 10),32px);
}

.follow-link {
  z-index: 100;
  position: sticky;
  top: 100%;
  left: 0;
  transform: translateY(calc(-100% - 5px));
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 50px;
}
.follow-link .common-link {
  font-size: 18px;
  height: 50px;
}
@media screen and (min-width: 768px) {
  .follow-link {
    display: none;
  }
}

footer {
  min-height: 65px;
  background-color: #e95513;
  display: flex;
  align-items: center;
  justify-content: center;
}

footer p {
  color: #fff;
  font-size: clamp(10px,calc(20vw / 10),20px);
  font-weight: 700;
}