@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700;800;900&display=swap');

/*---------------------------------------------
	reset css
  ---------------------------------------------*/
/* CSS Document */ 

/*!
 * ress.css • v5.0.0
 * MIT License
 * github.com/filipelinhares/ress
 */
/* resset.dev • v5.0.2 */

html {
  -webkit-text-size-adjust: 100%;
  box-sizing: border-box;
  -moz-tab-size: 4;
  tab-size: 4;
  word-break: normal
}
*, :after, :before {
  background-repeat: no-repeat;
  box-sizing: inherit
}
:after, :before {
  text-decoration: inherit;
  vertical-align: inherit
}
* {
  margin: 0;
  padding: 0
}
hr {
  color: inherit;
  height: 0;
  overflow: visible
}
details, main {display: block}
summary {display: list-item}
small {font-size: 80%}
[hidden] {display: none}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted
}
a {background-color: transparent}
a:active, a:hover {outline-width: 0}
code, kbd, pre, samp {font-family: monospace, monospace}
pre {font-size: 1em}
b, strong {font-weight: bolder}
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}
sub {bottom: -.25em}
sup {top: -.5em}
table {
  border-color: inherit;
  text-indent: 0;
}
iframe {border-style: none}
input {border-radius: 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}
textarea {
  overflow: auto;
  resize: vertical
}
button, input, optgroup, select, textarea {font: inherit}
optgroup {font-weight: 700}
button {overflow: visible}
button, select {text-transform: none}
[role=button], [type=button], [type=reset], [type=submit], button {cursor: pointer}
[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-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button:-moz-focusring {outline: 1px dotted ButtonText}
[type=reset], [type=submit], button, html [type=button] {-webkit-appearance: button}
button, input, select, textarea {
  background-color: transparent;
  border-style: none
}
a:focus, button:focus, input:focus, select:focus, textarea:focus {outline-width: 0}
select {
  -moz-appearance: none;
  -webkit-appearance: none
}
select::-ms-expand {display: none}
select::-ms-value {color: currentColor}
legend {
  border: 0;
  color: inherit;
  display: table;
  max-width: 100%;
  white-space: normal
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit
}
[disabled] {cursor: default}
img {border-style: none}
progress {vertical-align: baseline}
[aria-busy=true] {cursor: progress}
[aria-controls] {cursor: pointer}
[aria-disabled=true] {cursor: default}

ul, ol {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
a {
  text-decoration: none;
  color: inherit; 
  cursor: pointer; 
}

:root {
  --width-max: 1120px;
  --puple: #51469a; 
  --green: #d6de00;    
  --transition: all 0.3s ease;
}

/* -----------------------------------
   PC/SP 表示切り替え
 * ----------------------------------- */
.pc{display: block !important}
.sp{display: none !important}
@media (width <= 768px) {
.pc{display: none !important}
.sp{display: block !important}     
}

/* -----------------------------------
   共通
 * ----------------------------------- */
body {
	font-size: 62.5%;
	color: #000;
	line-height: 1.6;
	position: relative;
	text-align: justify;
	font-feature-settings:"palt";
	font-family: "M PLUS Rounded 1c", sans-serif;
}
body p,body li,body table,dt,dd{ 
	font-size: 16px; 
	text-justify: inter-ideograph;}
a {text-decoration: none;}
a:link {color: #000000;}
a:visited {color: #000000;}
a:hover {color: #46bedd; transition: all 0.3s linear;text-decoration: none }
a:active { color: #000000; }

img{
    width: 100%;
    line-height: 0
}
.flex{
	display: flex;
	flex-wrap: wrap;
    gap:15px 30px;
}

/* -----------------------------------
   LPサイト
 * ----------------------------------- */
#lp #kv{
    width: 100%;
    height: 100vh;
    position: relative;
    background-color:var(--puple); 
    display: block;
    line-height: 0;
    perspective: 1000px;
    overflow: hidden;
}
#lp #kv_visual{
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    line-height: 0;
}
#lp #visual-1,
#lp #visual-2,
#lp #visual-3{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform-style: preserve-3d;
    transform-origin: bottom center;
    transform: translate(-50%, -50%) rotateX(90deg);
    opacity: 0;
    z-index: 1;
}

#lp #visual-1 {
    animation: nyoki 0.9s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    animation-delay: 0.2s;
}
#lp #visual-2 {
    animation: nyoki 0.9s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    animation-delay: 0.8s;
}
#lp #visual-3 {
    animation: nyoki 0.9s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    animation-delay: 1.4s;
}
@keyframes nyoki {
  0% {
    transform: translate(-50%, -50%) rotateX(30deg);
    opacity: 0;
  }
  80% {
    transform: translate(-50%, -50%) rotateX(0deg);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) rotateX(0deg);
    opacity: 1;
  }
}

/* -----------------------------------
   本番サイト
 * ----------------------------------- */
#main{background-color:var(--puple); }
#main main{padding: 30px 30px 0px}
#main #kv{
    width: 100%;
    position: relative;
    background-color:var(--puple); 
    display: block;
    line-height: 0;
}
#main #kv_visual{
    max-width: 1200px;
    width: 100%;
    position: relative;
    top: 0%;
    left: 50%;
    transform: translate(-50%, 0%);
    z-index: 1;
    line-height: 0;
    border-radius: 30px 30px 0 0;
    overflow: hidden
}
#main #visual-1{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 1200px;
    width: 100%;
    z-index: 1;
}
#main #visual-2{
    position: absolute;
    top: 0%;
    left: 50%;
    max-width: 1200px;
    width: 100%;
    transform-style: preserve-3d;
    transform-origin: bottom center;
    transform: translate(-50%, 0%) rotateX(90deg);
    opacity: 0;
    z-index: 1;
}

#main #visual-2 {
    animation: nyoki2 0.9s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    animation-delay: 0.5s;
}
@keyframes nyoki2 {
  0% {
    transform: translate(-50%, 0%) rotateX(30deg);
    opacity: 0;
  }
  80% {
    transform: translate(-50%, 0%) rotateX(0deg);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, 0%) rotateX(0deg);
    opacity: 1;
  }
}

.container-main{
    max-width: 1200px;
    width: 100%;
    margin: auto;
}
#campaign-outer{background-color: var(--green);}
#campaign{
    padding: 0px min(50px, 5vw) min(150px, 20vw) min(50px, 5vw); 
    border-radius: 0 0 30px 30px;
    opacity: 0;
    animation: nyoki3 0.9s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    animation-delay: 1.5s;
}
@keyframes nyoki3 {
  0% {
    transform: rotateX(30deg);
    opacity: 0;
  }
  80% {
    transform: rotateX(0deg);
    opacity: 1;
  }
  100% {
    transform: rotateX(0deg);
    opacity: 1;
  }
}
.txt-strong{
    text-align: center;
    font-weight: 800;
    font-size:clamp(1.25rem, 0.941rem + 1.41vw, 2rem);/* 32 - 20px */
    line-height: 1.4;
}
.chance-title {
    background: #ffffff;
    color: var(--puple);
    font-size:clamp(1.563rem, 1.279rem + 1.29vw, 2.25rem);/* 36 - 25px */
    font-weight: 900;
    clip-path: polygon(100% 0%, 98% 50%, 100% 100%, 0 100%, 0 0);
    height: 70px;
    line-height: 70px;
    padding: 2px 20px;
    border-left: 10px solid var(--puple);
    margin-top: 2rem;
    margin-bottom: 20px;
}
.row {
    display: flex;
    margin-bottom: 10px;
    font-size: clamp(1.375rem, 1.221rem + 0.71vw, 1.75rem);/* 28 - 22px */
    font-weight: 800;
    line-height: 1.2
}
.label {
    width: 200px;
    text-align: justify;
    text-align-last: justify;
}
.colon {margin: 0 10px;}
.value {flex: 1; /* 残りの幅をすべて使う */}
.prize-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 30px 50px;
    margin-top: 3rem;
    margin-bottom: min(50px , 5vw)
}
.prize-box {
    position: relative;
    width: 45%;
    margin: 1em 0 2em 1rem;
    padding: 2.8em 1.5em 1em 1.5em;
    border: 4px solid var(--puple);
}
.prize-box > div {
    position: absolute;
    top: -1.2em;
    left: -.5em;
    padding: .3em .5em;
    border-radius: 14px;
    background-color: var(--puple);
    color: #fff;
    font-size:clamp(1.563rem, 1.279rem + 1.29vw, 2.25rem);/* 36 - 25px */
    font-weight: 600;
    line-height: 1;
    min-width: 120px;
    text-align: center;
}
.prize-box > div::before {
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 15px;
    background-color: var(--puple);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: '';
}
.prize-text {
    color: var(--puple);
    font-size: 30px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 10px;
}
.prize-sub {
  font-size: 22px;
  font-weight: 600;
}
#prize-under{align-items: center}
.notice {
    background: #ffffff;
    color: #5a4fa3;
    font-weight: 800;
    font-size: 24px;
    padding: 40px;
    border-radius: 50%;
    width: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    position: relative;
}
.notice::after {
    content: "";
    position: absolute;
    left: -25px;
    top: 50%;
    margin-top: -20px;
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
    background: #ffffff;
    width: 30px;
    height: 30px;        
}

#sub-cp{
    align-items: center;
    justify-content: center;
    background-color: #ecee9a;
    margin-bottom: 2rem;
    padding: 1rem;
}
#sub-cp__motonari{
    max-width: 185px;
    margin-top: -2rem;
}
#sub-cp ul{
    max-width: 450px;
    width: 90%;
}
#sub-cp ul li{
    font-size: clamp(1.125rem, 1.022rem + 0.47vw, 1.375rem);/* 22 - 18px */
    font-weight: 600;
}
#sub-cp ul li strong{
    font-size: 120%;
    font-weight: 800;
}
#sub-cp ul li.t-small{font-size: 16px;}
.list-info{
    margin-top: 2rem;
    margin-bottom: 2rem;
}
.list-info li{
    padding-left: 1rem;
    text-indent: -1rem;
}

a.btn{
    display: block;
    background-color: var(--puple);
    color: #FFFFFF;
    max-width: 200px;
    font-size: 17px;
    padding: 5px 20px;
    border-radius: 9999px;
    position: relative;
    margin-top: 10px;
    margin-bottom: 10px;
    border: 1px solid var(--puple);
}
a.btn:after{
    content: "→";
    position: absolute;
    right: 20px;
    transition: all 0.3s linear
}
a.btn:hover{
    background-color: #ffffff;
    color: var(--puple);
    transition: all 0.3s linear
}
a.btn:hover:after{
    right: 12px;
    transition: all 0.3s linear
}

#appry{
    background-color: rgba(255,255,255,0.9);
    padding: 1rem;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    opacity: 0;
}
#appry.show {
    animation: fadeUpAnime 0.5s forwards;
}
@keyframes fadeUpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
#appry a{
    text-align: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: clamp(1.625rem, 1.368rem + 1.18vw, 2.25rem);/* 36 - 26 */
    padding: 8px 20px;
    display: inline-block;
    background-color: #FF0000;
    border: 2px solid #FF0000;
    border-radius: 9999px;
    width: 260px;
}
#appry a:hover{
    background-color: #FEFF00;
    color: #FF0000;
}
#appry a:after{
    content: "";
    mask-image: url(../img/icon-click.svg);
    mask-repeat: no-repeat;
    mask-size: auto;
    mask-position: right bottom;
    background-color: #ffffff;
    width: 30px;
    height: 25px;
    display: inline-block;
    padding-right: 2rem;
    animation:blink 1.5s ease-in-out infinite alternate;
}
#appry a:hover:after {
    background: #FF0000;
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@media screen and (max-width: 768px) {
#main main{padding: 20px 20px 0}
.chance-title {
    height: 60px;
    line-height: 60px;
}    
.row{display: block} 
.prize-box{width: 100%;} 
.notice{margin: -10px auto auto}  
.notice::after {
    content: "";
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0px;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}   
#other{margin-top: 3rem}    
}



