@charset "utf-8";
.referralcp main {
  background: url("../img/bg01.webp");
  background-repeat: repeat-y;
  background-size: 1440px auto;
  background-position: center top;
  color: #595757;
  overflow: hidden;
  position: relative;
}
.referralcp .sp-only {
  display: none !important;
}
.referralcp .inner {
  width: min(96%, 1060px);
  margin: auto;
}
@media all and (min-width: 1440px) {
  .referralcp main {
    background-size: 100% auto;
    background-position: center top;
  }
}
@media all and (max-width: 1120px) {
  .referralcp main {
    font-size: 1.4285vw;
  }
}
/* == header ============================================== */
.referralcp .h_inner {
  width: min(96%, 1120px);
  margin: auto;
  padding: 1.9em 0;
  position: absolute;
  z-index: 10;
  left: 0;
  top: 0;
  right: 0;
  box-sizing: border-box;
}
.referralcp .h_logo {
  width: 110px;
  height: 71px;
}
.referralcp .h_logo a {
  display: block;
  height: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 150%;
  background-image: url(../img/h_logo.webp);
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 0.3s;
}
.referralcp .h_logo a:hover {
  opacity: 0.7;
}
/* == footer ============================================== */
.referralcp footer {
  padding: 2.8em 0;
}
.referralcp .f_logo {
  width: 420px;
  height: 120px;
  margin: auto;
}
.referralcp .f_logo a {
  display: block;
  height: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 150%;
  background: url(../img/f_logo.webp);
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 0.3s;
}
.referralcp .f_logo a:hover {
  opacity: 0.7;
}
.referralcp .copyright {
  text-align: center;
  margin: 2em 0 0;
}
/* ====================================
page-name #front
====================================*/
.side_fixed {
  position: fixed;
  z-index: 100;
  right: 0;
  top: 5em;
}
.side_fixed .fixe_bnr {
  width: min(15vw, 200px);
}
.side_fixed .fixe_bnr a {
  display: block;
  height: 0;
  padding: 77% 0 0;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 150%;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: right top;
  background-image: url(../img/side_bnr01.webp);
  transition: opacity 0.3s;
}
.side_fixed .fixe_bnr a:hover {
  opacity: 0.7;
}
.referralcp .area_title {
  position: relative;
}
.referralcp .area_title .title_bg {
  padding: 4.5em 0 8em;
  position: relative;
  background: url(../img/cloud01.webp);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.referralcp .area_title .title_bg::before {
  content: "";
  width: min(99%, 1400px);
  height: 0;
  padding: min(46%, 514px) 0 0;
  margin: auto;
  background: url("../img/star01.webp");
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  z-index: 3;
  right: 0;
  top: 2em;
  left: 0;
  pointer-events: none;
}
.referralcp .area_title .title_main {
  width: min(100%, 1032px);
  margin: auto;
  position: relative;
}
.referralcp .area_title .title_main::before {
  content: "";
  width: 13%;
  height: 0;
  padding: 9% 0 0;
  background-image: url("../img/anime_now.webp");
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  left: 5%;
  top: 30%;
  opacity: 0;
  transform-origin: right bottom;
  transition: opacity 0.7s ease 0.8s;
  -webkit-animation: now 2s ease infinite;
  animation: now 2s ease infinite;
}
body.page--open.referralcp .area_title .title_main::before {
  opacity: 1;
  transform: scale(1);
}
.referralcp .area_title .titleFlex {
  margin: 1em auto 0;
  width: 85%;
}
.referralcp .area_title .inner {
  position: relative;
  z-index: 10;
}
.referralcp .dl_info {
  display: grid;
  grid-template-columns: 9em 1fr;
  /* align-items: center; */
  gap: 1em;
}
.referralcp .dl_info + .dl_info {
  margin-top: 1em;
}
.referralcp .dl_info dt {
  text-align: center;
  padding-top: 5px;
}
.referralcp .dl_info dt span {
  display: inline-block;
  font-weight: 700;
  background: #53b332;
  color: #fff;
  font-weight: 700;
  padding: 0 1.4em 0.1em;
  border-radius: 5em;
  box-sizing: border-box;
  width: 100%;
}
.referralcp .dl_info dd strong {
  font-size: 150%;
  font-weight: 900;
  color: #0071be;
}
.referralcp .dl_info .info_text {
  display: flex;
  font-size: 87.5%;
}
.referralcp .dl_info .info_text .info_text--left {
  color: #0071be;
  font-weight: 900;
  position: relative;
  box-sizing: border-box;
  width: 7.5em;
  background: url("../img/arrow02.svg");
  background-repeat: no-repeat;
  background-position: right 3px;
  background-size: 0.8em auto;
  margin: 0 0.5em 0 0;
  font-weight: 700;
}
.referralcp .dl_info .info_text .info_text--right {
  font-weight: 700;
}
.referralcp .info_attention {
  text-align: center;
  margin-top: 1em;
  font-weight: 700;
}
@media all and (max-width: 1120px) {
  .referralcp .area_title .title_bg {
    background-size: 103% auto;
  }
}
/*--------------------*/
.referralcp .area_benefits {
  position: relative;
  z-index: 3;
  margin: -7em 0 0;
}
.referralcp .area_benefits .inner {
  position: relative;
  z-index: 1;
}
.referralcp .area_benefits::before {
  content: "";
  width: min(90%, 1023px);
  height: 0;
  padding: min(85%, 560px) 0 0;
  position: absolute;
  z-index: 10;
  right: 0em;
  left: 1.5em;
  top: 0.5em;
  margin: auto;
  background: url(../img/star04.webp);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}
.referralcp .list_benefits {
  border: solid 8px #ee7c69;
  border-radius: 2.5em;
  background: #fff;
  box-shadow: 10px 10px 6px 0 rgba(35, 24, 21, 0.2);
}
.referralcp .list_benefits li.list01 .benefits_title {
  width: min(90%, 924px);
  height: 0;
  padding: min(50%, 470px) 0 0 0;
  margin: auto;
  background-image: url("../img/benefits01.webp?202601");
  background-repeat: no-repeat;
  background-size: contain;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 150%;
}
.referralcp .list_benefits > li {
  position: relative;
}
.referralcp .list_benefits > li::before {
  content: "";
  width: 13.0625em;
  height: 5.75em;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  left: -1.3em;
  top: 0.9em;
}
.referralcp .list_benefits > li.list01 {
  padding: 2em 0 1.5em;
}
.referralcp .list_benefits > li.list01::before {
  background-image: url("../img/benefits_flag00.webp");
}
.referralcp .list_benefits > li.list01 .benefits_card {
  position: absolute;
  left: 4%;
  top: 6.5em;
  width: 9%;
}
.referralcp .list_benefits li.list02 .benefits_title {
  width: min(78.45%, 819px);
  height: 0;
  padding: min(13.3%, 138px) 0 0 0;
  margin: auto;
  background-image: url("../img/benefits02.webp");
  background-repeat: no-repeat;
  background-size: contain;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 150%;
}
.referralcp .list_benefits .benefits_rank {
  width: min(53%, 552px);
  margin: 1.5em auto 0;
}
.referralcp .list_benefits .benefits_att {
  text-align: center;
  font-weight: 800;
  margin: 1em auto 1.5em;
  font-size: 105%;
}
.referralcp .list_benefits .benefits_exampleWrap {
  background: #fef7d6;
  padding: 2em 4.3em;
  overflow: hidden;
  border-radius: 0 0 2em 2em;
}
.referralcp .list_benefits .benefits_exampleWrap .list02Flex {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 1em;
  align-items: center;
}
.referralcp .list_benefits .benefits_exampleWrap .exampleImage {
  grid-column: span 2;
  margin-top: -1em;
}
.referralcp .list_benefits .example_textBox {
  text-align: center;
}
.referralcp .list_benefits .example_textBox span.maru {
  display: block;
  width: 4.9em;
  height: 4.9em;
  color: #fff;
  font-size: 162%;
  font-weight: 900;
  background: #2ea7e0;
  border-radius: 50%;
  text-align: center;
  line-height: 5;
  margin: 0 auto 0.5em;
}
.referralcp .list_benefits .example_textBox span.desc {
  display: block;
  font-size: 150%;
  font-weight: 800;
}
.referralcp .list_benefits .exampleFlex {
  width: 100%;
}
.referralcp .dl_benefitsExample dt {
  background: #eb624f;
  border-radius: 5em;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  padding: 0.6em 0.8em;
  box-sizing: border-box;
  height: 4.5em;
  font-weight: 700;
}
.referralcp .dl_benefitsExample dt .dtLeft {
  font-size: 200%;
  font-weight: 900;
  width: 21%;
  border-right: solid 1px #fff;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.referralcp .dl_benefitsExample dt .dtLeft .dt_text {
  display: block;
  margin: 0 0.2em 0 0;
  font-weight: 700;
}
.referralcp .dl_benefitsExample dt .dtLeft .dt_num {
  font-size: 160%;
  display: block;
}
.referralcp .dl_benefitsExample dt .dtRight {
  font-size: 120%;
  font-weight: 900;
  line-height: 1.3;
  text-align: center;
  flex-grow: 1;
  font-weight: 700;
}
.referralcp .dl_benefitsExample .example_image.img04 {
  width: min(60%, 241px);
  margin: 0 auto;
}
/*-----*/
.referralcp .parts_hr {
  text-align: center;
  background: url("../img/bg02.webp");
  background-size: 1328px auto;
  background-repeat: no-repeat;
  background-position: center;
  padding: 22em 0 20em;
  margin: -20.3em 0 0;
  pointer-events: none;
}
.referralcp .parts_hr .benefits_arrow {
  font-size: 200%;
  font-weight: 900;
  color: #fff;
  padding: 0 0 1.5em;
  position: relative;
}
.referralcp .parts_hr .benefits_arrow::before {
  content: "";
  background: url(../img/arrow01.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  right: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  width: 1.2em;
  height: 1.2em;
}
/*-----*/
.referralcp .area_app {
  position: relative;
  z-index: 3;
  margin: -19em 0 3.4em;
}
.referralcp .area_app .inner {
  position: relative;
  z-index: 1;
}
.referralcp .area_app .appBg {
  background: #fff;
  border-radius: 2.5em;
  box-shadow: 10px 10px 6px 0 rgba(35, 24, 21, 0.2);
  padding: 1.5em 0;
}
.referralcp .area_app .app_infoWrap {
  border: solid 3px #0071be;
  border-bottom: none;
  border-radius: 2em 2em 0 0;
  margin: 0 1.68em;
  padding: 2.5em 0 2em;
}
.referralcp .area_app .infoSet + .infoSet {
  margin: 3em auto 0;
}
.referralcp .area_app .infoSet .app_title {
  text-align: center;
  margin: 0 0 1em;
}
.referralcp .area_app .infoSet .app_title span {
  background: #eb6153;
  display: inline-block;
  font-size: 210%;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  border-radius: 5em;
  padding: 0.3em 1em;
}
.referralcp .area_app .infoSet .app_lead {
  text-align: center;
  font-size: 160%;
  font-weight: 700;
  line-height: 1.4;
}
.referralcp .area_app .infoSet .app_lead strong {
  background: #fad5c8;
  border-radius: 1em;
  display: inline-block;
  padding: 0.4em 2em;
}
.referralcp .area_app .infoSet .app_lead + .app_lead {
  margin: 0.8em 0 0;
}
.referralcp .area_app .infoSet .app_flowBox {
  margin: 2em auto 0;
  width: min(71.1%, 711px);
}
.referralcp .area_app .infoSet .app_flowBox .flow_image {
  display: block;
}
.referralcp .area_app .infoSet .app_flowBox .flow_link {
  text-align: center;
  background: #4c9cd2;
  border: solid 2px #0071be;
  border-radius: 2em;
  font-size: 140%;
  line-height: 1.5;
  margin: 2.5em auto 0;
  overflow: hidden;
  width: min(95%, 600px);
  box-shadow: 0 5px 0 0 #0071be;
  transition:
    box-shadow 0.3s,
    transform 0.3s;
}
.referralcp .area_app .infoSet .app_flowBox .flow_link:hover {
  box-shadow: 0 1px 0 0 #0071be;
  transform: translateY(3px);
}
.referralcp .area_app .infoSet .app_flowBox .flow_link a {
  display: block;
  font-size: 140%;
  color: #fff;
  font-weight: 700;
  padding: 0.8em 0;
  position: relative;
  transition: opacity 0.3s;
}
.referralcp .area_app .infoSet .app_flowBox .flow_link a::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  animation: shine 2.5s infinite;
}
.referralcp .area_app .app_attWrap {
  border: solid 3px #0071be;
  background: #fffcdb;
  border-radius: 2em;
  margin: 0 1.68em;
  padding: 1.4em;
}
.referralcp .area_app .app_attWrap .attSet + .attSet {
  margin: 1em 0 0;
}
.referralcp .area_app .app_attWrap .attFlex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.referralcp .area_app .app_attWrap .attFlex .flexLeft {
  width: 48%;
}
.referralcp .area_app .app_attWrap .attFlex .flexRight {
  width: 48%;
}
.referralcp .area_app .app_attWrap .att_title {
  font-size: 125%;
  font-weight: 700;
  color: #0071be;
  margin: 0 0 0.7em;
}
.referralcp .area_app .app_attWrap .att_title::before {
  content: "◆";
}
.referralcp .area_app .app_attWrap .att_subTitle {
  font-weight: 700;
  color: #0071be;
}
.referralcp .list_att > li {
  font-size: 87.5%;
  padding: 0 0 0 1.2em;
  position: relative;
}
.referralcp .list_att > li::before {
  content: "";
  width: 0.2em;
  height: 0.2em;
  border-radius: 50%;
  position: absolute;
  left: 0.3em;
  top: 0.6em;
  background: #595757;
}
.referralcp .list_att > li a {
  text-decoration: underline;
  transition: opacity 0.3s;
}
.referralcp .list_att > li a:hover {
  opacity: 0.7;
}
.referralcp .list_attSmall > li {
  position: relative;
}
.referralcp .list_attSmall > li::before {
  content: "●";
  position: absolute;
  left: -1em;
  top: 0;
}
/*-------------------*/
.referralcp .area_message {
  background: #e94830;
}
.referralcp .area_message .message_text {
  text-align: center;
  color: #fff;
  font-size: 250%;
  font-weight: 700;
  line-height: 1;
  padding: 1em 0;
  font-family: "M PLUS 1", sans-serif;
}
/* == anime ============================================== */
.referralcp .anime_star {
  width: min(6.2%, 69px);
  position: absolute;
  z-index: 1;
  left: 68.1em;
  right: 0;
  top: 52em;
  margin: auto;
  opacity: 0.7;
  -webkit-animation: rotate360 20s linear infinite;
  animation: rotate360 20s linear infinite;
  pointer-events: none;
}
.referralcp .anime_illust {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}
.referralcp .anime_illust > div {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  -webkit-animation: rotate360 30s linear infinite;
  animation: rotate360 30s linear infinite;
}
.referralcp .anime_illust .illust01 {
  width: min(11%, 121px);
  top: 1.5em;
  right: 29em;
}
.referralcp .anime_illust .illust02 {
  width: min(16.25%, 182px);
  top: -1em;
  left: 14em;
  animation-direction: reverse;
}
.referralcp .anime_illust .illust03 {
  width: min(8.4%, 93px);
  top: 5.1em;
  left: 54.5em;
}
.referralcp .anime_illust .illust04 {
  width: min(16.25%, 182px);
  top: 29.2em;
  right: 64.5em;
}
.referralcp .anime_illust .illust05 {
  width: min(15%, 168px);
  top: 28em;
  left: 64.7em;
  animation-direction: reverse;
}
.referralcp .anime_illust .illust06 {
  width: min(16.5%, 184px);
  top: 12.8em;
  right: 65.4em;
}
.referralcp .anime_illust .illust07 {
  width: min(16.5%, 184px);
  top: 23.4em;
  left: 62.4em;
}
.referralcp .anime_illust .illust08 {
  width: min(16.5%, 184px);
  top: 49.9em;
  right: 63.1em;
  animation-direction: reverse;
}
.referralcp .anime_illust .illust09 {
  width: min(16.5%, 184px);
  top: 67.2em;
  left: 63.4em;
  animation-direction: reverse;
}
/*-----*/
body.referralcp .area_title .title_bg {
  transform: scale(0);
  transform-origin: center;
  transition:
    opacity 0.9s ease-out 0s,
    transform 0.9s ease-out 0s;
  transition-timing-function: cubic-bezier(0.17, 0.67, 0.14, 1.36);
}
body.referralcp.page--open .area_title .title_bg {
  opacity: 1;
  transform: scale(1);
}
.referralcp .area_benefits {
  transition:
    opacity 0.7s ease-out 1s,
    transform 0.7s ease-out 1s;
  opacity: 0;
  transform: translateY(3em);
}
body.referralcp.page--open .area_benefits {
  opacity: 1;
  transform: translateY(0);
}
.referralcp .area_benefits.scrollAnime::before {
  transform: scale(0);
  transform-origin: center;
  transition: transform 1s ease-out 1.8s;
  transition-timing-function: cubic-bezier(0, 1.34, 0.18, 1.55);
}
.referralcp .area_benefits.scrollAnime.scroll--start::before {
  transform: scale(1);
}
/**/
.referralcp .parts_hr .benefits_arrow::before {
  -webkit-animation: arrow 2s ease infinite;
  animation: arrow 2s ease infinite;
}
/**/
body.referralcp .area_app .inner.scrollAnime {
  transition:
    opacity 0.7s ease-out 0.3s,
    transform 0.7s ease-out 0.3s;
  opacity: 0;
  transform: translateY(3em);
}
.referralcp .area_app .inner.scrollAnime.scroll--start {
  opacity: 1;
  transform: translateY(0);
}
