@charset "utf-8";

/* =======================================
    01.Base（reset / base / typography）
======================================= */
/* ------ Reset -------*/
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
ul {
  list-style: none;
}
img {
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}
html,body {
  -webkit-text-size-adjust: 100%;
}


/* ------ root（pc 750px） -------*/
:root {
  /* color */
  --color-primary: #00429a;
  --color-secondary: #1288c1;
  --color-accent: #ffe944;

  /* size */
  --size-10:  min(1.333vw, 10px);
  --size-15:  min(2vw, 15px);
  --size-20:  min(2.667vw, 20px);
  --size-25:  min(3.333vw, 25px);
  --size-30:  min(4vw, 30px);
  --size-40:  min(5.333vw, 40px);
  --size-50:  min(6.667vw, 50px);
  --size-60:  min(8vw, 60px);
  --size-70:  min(9.333vw, 70px);
  --size-80:  min(10.667vw, 80px);
  --size-90:  min(12vw, 90px);
  --size-100: min(13.333vw, 100px);

  /* font */
  --font-size-3xl:  min(5.333vw, 4rem);
  --font-size-2xl:  min(4.667vw, 3.5rem);
  --font-size-xl:   min(4.4vw, 3.3rem);
  --font-size-lg:   min(4vw, 3rem);
  --font-size-md:   min(3.333vw, 2.5rem);
  --font-size-base: min(2.933vw, 2.2rem);
  --font-size-xs:   min(2vw, 1.5rem);

  /* --font-size-3xl:  min(6.667vw, 5rem);
  --font-size-2xl:  min(5.333vw, 4rem);
  --font-size-xl:   min(5.067vw, 3.8rem);
  --font-size-lg:   min(4.533vw, 3.4rem);
  --font-size-md:   min(3.733vw, 2.8rem);
  --font-size-base: min(3.333vw, 2.5rem);
  --font-size-xs:   min(2.267vw, 1.7rem); */
}


/* ------ Responsive -------*/
.pc {
  display: block;
}
.sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}


/* ------ box -------*/
body {
  background-color: #fff;
  overflow-y: auto;
}
#pageWrapper{
  max-width: 750px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  width: 100%;
}
section {
  position: relative;
  width: 100%;
}
.container {
  margin: 0 auto;
  position: relative;
  padding: 0;
  width: 90%;
}
@media screen and (max-width: 767px){
  body{
    min-width: 100%;
  }
}


/* ------ text -------*/
html {
  font-size: 62.5%;
}
body {
  color: #000;
  font-family: "Montserrat","Zen Kaku Gothic New","Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: var(--font-size-base);
  font-optical-sizing: auto;
  font-weight: 600;
  line-height: 1.6;
}
main p{
  margin-bottom: 1em;
}
main p:last-child{
  margin-bottom: 0;
}


/* =======================================
  02. Utilities（margin / padding etc）
======================================= */
/* ------ padding -------*/
.section-pad{
  padding: var(--size-80) 0;
}
.case-mb{
  margin-bottom: var(--size-50) !important;
}
.box-mb{
  margin-bottom: var(--size-40) !important;
}



/* ------ margin -------*/
.mb_0{
  margin-bottom: 0;
}
.mb_20{
  margin-bottom: var(--size-20);
}
.mb_25{
  margin-bottom: var(--size-25);
}
.mb_30{
  margin-bottom: var(--size-30);
}
.mb_40{
  margin-bottom: var(--size-40);
}
.mb_50{
  margin-bottom: var(--size-50);
}
.mb_60{
  margin-bottom: var(--size-60);
}
.mb_80{
  margin-bottom: var(--size-80);
}
.mb_100{
  margin-bottom: var(--size-100);
}


/* ------ 配置 -------*/
.center{
  text-align: center;
}


/* ------ fadeInUp -------*/
.fadeInUp{
  -webkit-transform: translateZ(0);
  /* display: none; */
  opacity: 0;
}
.fadeInUp.animated {
  /* アニメーションのプロパティを指定 */
  -webkit-transform: translateZ(0);
  animation-name: animated;
  animation-duration: 1s;
  animation-timing-function: ease;
  position: relative;
  opacity: 1;
}
@keyframes animated {
  from {
    opacity: 0;
    bottom: -20px;
  }
  to {
    opacity: 1;
    bottom: 0;
  }
}
@media screen and (max-width: 767px) {
  .no-animation {
    opacity: 1 !important;
    animation: none !important;
  }
}


/* ------ visually-hidden -------*/
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* =======================================
    03. Components（button / card / badge）
======================================= */
/* ------ title -------*/
.ttl_main{
  background-color: var(--color-secondary);
  color: #fff;
  font-size: var(--font-size-2xl);
  line-height: 1;
  padding: 0.75em 0.25em;
  text-align: center;
}
.ttl_main img{
  width: auto;
  height: min(5.067vw, 38px);
}
.ttl_sub{
  color: var(--color-primary);
  font-size: var(--font-size-xl);
  font-weight: 900;
  margin-bottom: 0.25em;
  text-align: center;
}
.ttl_box{
  margin-bottom: 0.75em;
  text-align: center;
}
.ttl_box img{
  width: auto;
  height: min(9.467vw, 71px);
}
.ttl_topic{
  color: var(--color-primary);
  font-size: var(--font-size-xl);
  font-weight: 900;
  margin-bottom: 0.5em;
  text-align: center;
}
.ttl_item{
  color: var(--color-secondary);
  font-size: var(--font-size-md);
  font-weight: 900;
}
.txt_orange{
  color: #ff752e;
}
.txt_gray{
  color: #666;
}
.txt_marker {
  display: inline;
  background: linear-gradient(
    transparent 50%,
    var(--color-accent) 50%
  );
  padding: 0 0.25em 0.1em;
}
.txt_border{
  border-bottom: 2px solid;
  padding: 0 0.25em 0.1em;
}
.txt_small{
  font-size: 90%;
}
.txt_xsmall{
  font-size: 80%;
}
.txt_large{
  font-size: 150%;
}

/* ------ .arrow -------*/
.arrow{
  border-left: min(2.267vw,17px) solid transparent;
  border-right: min(2.267vw,17px) solid transparent;
  border-top: min(2.267vw,17px) solid #fff;
  display: block;
  margin: var(--size-10) auto;
  height: 0;
  width: 0;
}


/* ------ btn -------*/
/* a */
a{
  color: var(--color-font-gray);
  text-decoration: none;
}
@media screen and (min-width: 768px) {
  a:hover{
    text-decoration: underline;
  }
}

/* .txt_link */
.txt_link{
  color: #0071bc;
  font-weight: 600;
  text-decoration: none;
  word-wrap: break-word;
}
@media screen and (min-width: 768px) {
  .txt_link:hover{
    text-decoration: underline;
  }
}

/* btn */
.btn{
  display: block;
  margin: 0 auto;
  transition: transform .3s;
}
.btn img{
  height: auto;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .btn:hover{
    text-decoration: none;
    transform: scale(0.95);
    opacity: 1;
  }
}
@media screen and (max-width: 767px) {
  .btn{
    display: block;
  }
}

/* .btn_application */
.btn_application{
  max-width: min(84.533vw, 634px);
}

/* .btn_store */
.btn_store{
  max-width: min(73.467vw, 551px);
}

/* .btn_digi-co */
.btn_digi-co{
  max-width: min(77.067vw, 578px);
}

/* .btn_campaign-products */
.btn_campaign-products{
  max-width: min(40.533vw, 304px);
  margin: var(--size-40) auto var(--size-10);
}

/* .btn_application-methods */
.btn_application-methods{
  max-width: min(48.667vw, 365px);
  margin: var(--size-40) auto var(--size-10);
}


/* ------ background -------*/
/* .bg_stripe_blue */
.bg_stripe_blue{
  background-image: url(../img/bg_stripe_blue.jpg);
  background-repeat: repeat-y;
  background-size: 100% auto;
  background-position: top center;
}

/* .bg_stripe_yellow */
.bg_stripe_yellow{
  background-image:
    url(../img/bg_stripe_blue.jpg),
    url(../img/bg_stripe_yellow.jpg);

  background-repeat:
    no-repeat,
    repeat-y;

  background-position:
    center bottom,
    center top;

  background-size:
    100% min(21.333vw, 160px),
    100% auto;
}

/* .bg_white_box */
.bg_white_box{
  background-color: #fff;
  border-radius: var(--size-20);
  margin: 0 auto;
  overflow: hidden;
  width: min(80vw, 600px);
}
.bg_white_box .inner{
  padding: var(--size-50) var(--size-25);
}

/* .bg_blue_box */
.bg_blue_box{
  background-color: #e4f0ff;
  border-radius: var(--size-10);
  position: relative;
  padding: var(--size-30) var(--size-25);
}

/* .bd_box */
.bd_box{
  border: min(0.533vw, 4px) solid var(--color-primary);
  border-radius: var(--size-20);
  padding: var(--size-25) var(--size-20);
}


/* ------ list -------*/
/* .list_box */
.list_box{
  position: relative;
  margin: 0;
}
/* .list_box li{
  padding-left: 1em;
  position: relative;
}
.list_box li::before{
  content: '・';
  position: absolute;
  left: 0;
} */


/* .list_circle_box */
.list_circle_box{
  position: relative;
  margin: 0;
}
.list_circle_box li::before{
  content: '○';
}
@media screen and (max-width: 767px){
  .list_circle_box li{
    position: relative;
    padding-left: 1em;
  }
  .list_circle_box li::before{
    position: absolute;
    left: 0;
  }
}


/* ------ img -------*/
@media screen and (max-width: 767px){
  img{
    width: 100%;
  }
}

/* ------ .deco -------*/
.deco{
  position: absolute;
}


/* ------ .date_box -------*/
.date_box{
  text-align: center;
}
.date_box p{
  color: #fff;
  margin-bottom: 0;
}
.date_box .date{
  font-size: var(--font-size-2xl);
}
.date{
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.15em;
}
.date .txt_large{
  font-size: 150%;
  font-weight: 700;
}
.date_box .title{
  font-size: var(--font-size-lg);
}

/* ------ accordion -------*/
/* .accordion_head */
.accordion_head{
  position: relative;
  width: 100%;
}

/* .accordion_trigger */
.accordion_trigger{
  background-color: #fff;
  border-radius: 100px;
  border: min(0.533vw, 4px) solid var(--color-primary);
  color: var(--color-primary);
  cursor: pointer;
  font-family: "Montserrat","Zen Kaku Gothic New","Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: var(--font-size-xl);
  font-weight: 700;
  outline: none;
  position: relative;
  padding: var(--size-20);
  letter-spacing: 0.05em;
  text-align: center;
  width: 100%;
  z-index: 10;
}
.accordion_mark{
  position: absolute;
  right: var(--size-30);
  top: var(--size-30);
  width: var(--size-30);
  height: var(--size-30);
  display: grid;
  place-items: center;
}
.accordion_mark::before{
  content: "";
  aspect-ratio: 1;
  background-image: url(../img/icon_open.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: center center;
  display: inline-block;
  width: var(--size-30);
}
.accordion_trigger[aria-expanded="true"] .accordion_mark::before{
  content: "";
  background-image: url(../img/icon_close.svg);
}

/* .accordion_panel */
.accordion_panel{
  overflow: hidden;
  height: 0;
  transition: height 0.3s ease;

  position: relative;
  top: calc(var(--size-50) * -1);
  z-index: 1;
}
.accordion_content{
  background-color: #f2f2de;
  border-radius: 0 0 var(--size-50) var(--size-50);
  padding: var(--size-30);
  padding-top: var(--size-80);
}


/* =======================================
    04. Layout（header / footer / grid）
======================================= */
/* ------ footer -------*/
footer{
  background-color: #000;
  padding: var(--size-15)
}
footer .copy{
  color: #fff;
  font-size: 1.2rem;
  text-align: center;
}


/* ------ flex-box -------*/
.col2,.col3{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
}
/* @media screen and (max-width: 767px) {
  .col2,.col3{
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
} */


/* =======================================
    05. Pages（#pageTop）
======================================= */
/* ------ #mv_box -------*/
#mv_box{
  background-image: url(../img/bg_mv.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
  padding-bottom: var(--size-100);
  text-align: center;
}
.txt_mv{
  max-width: min(94.4vw, 708px);
}
.img_mv{
  max-width: min(89.067vw, 668px);
}
.img_digi-co{
  max-width: min(86.667vw, 650px);
}


/* .date_box */
#mv_box .date_box{
  border: min(0.4vw, 3px) solid #fff;
  border-radius: var(--size-10);
  padding: var(--size-20);
  margin: 0 auto var(--size-10);
  max-width: min(86.667vw, 650px);
}
#mv_box .date_box > div{
 flex: 1;
 padding-left: var(--size-20);
}
#mv_box .date_box .date{
  font-size: var(--font-size-lg);
  line-height: 1.2;
}
#mv_box .date_box .title{
  border-right: min(0.4vw, 3px) solid #fff;
  padding-right: var(--size-25);
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}
#mv_box .date_box .arrow{
  border-left: var(--size-15) solid transparent;
  border-right: var(--size-15) solid transparent;
  border-top: var(--size-15) solid #fff;
}
.txt_date_bottom{
  color: var(--color-accent);
  font-size: 98%;
  text-align: center;
}


/* ------ #campaign-members_box PepUp会員限定 -------*/
#campaign-members_box{
  padding-top: 0;
  margin-top: calc(var(--size-20) * -1);
}
.ttl_campaign-members{
  width: 100%;
}
.ttl_campaign-members_sub{
  padding: var(--size-20) 0 var(--size-10);
  margin: 0 auto;
  width: min(95.867vw,719px);
}
.deco_campaign-members{
  top: var(--size-10);
  left: var(--size-30);
  width: min(93.467vw, 701px);
}

/* .bg_white_box */
#campaign-members_box .bg_white_box{
  width: min(89.333vw, 670px);

  background-color: #ffde44;
  padding-bottom: var(--size-20);
  position: relative;
  clip-path: polygon(
    0 0,
    100% 0,
    100% 96%,
    50% 100%,
    0 96%
  );
}
#campaign-members_box .bg_white_box .inner{
  padding: var(--size-25);

  background-color: #fff;
  padding-bottom: min(18.667vw, 140px);
  clip-path: polygon(
    0 0,
    100% 0,
    100% 96%,
    50% 100%,
    0 96%
  );
}


/* .campaign-conditions_box 応募条件 */
.txt_number_a{
  display: block;
  margin: 0 auto var(--size-20);
  width: var(--size-80);
}
.txt_campaign-conditions{
  color: var(--color-primary);
  font-size: var(--font-size-2xl);
  font-weight: 900;
  margin-bottom: 1.5em;
  text-align: center;
}
.txt_campaign-conditions .txt_large{
  font-size: 160%;
  font-weight: 700;
}

/* .list_campaign-conditions */
.list_campaign-conditions{
  text-align: center;
}
.list_campaign-conditions .txt_lead{
  color: var(--color-primary);
  font-size: var(--font-size-xl);
  font-weight: 900;
  line-height: 1.3;
}
.list_campaign-conditions .txt_gray{
  font-size: var(--font-size-md);
}

/* img */
.img_campaign-conditions_01{
  width: min(36.533vw, 274px);
}
.img_campaign-conditions_02{
  width: min(59.733vw, 448px);
  margin-bottom: var(--size-30);
}
.img_campaign-conditions_03{
  width: min(39.733vw, 298px);
}
.img_campaign-conditions_04{
  width: min(65.467vw, 491px);
}

/* .attention_box */
.attention_box{
  background-color: #ff493c;
  border-radius: 5px;
  color: #fff;
  font-size: var(--font-size-lg);
  font-weight: 900;
  align-items: center;
  margin: 0 auto;
  padding: var(--size-15) var(--size-30);
  width: min(80vw, 600px);
}
.attention_box .title{
  font-weight: 900;
  padding-right: var(--size-30);
}
.attention_box .text{
  border-left: 2px solid #fff;
  font-size: 90%;
  flex: 1;
  padding-left:  var(--size-30);
  text-align: left;
}


/* .accordion_box */
.accordion_box .accordion_trigger{
  letter-spacing: 0;
}
.accordion_box .accordion_content .txt_lead{
  color: var(--color-primary);
  font-size: var(--font-size-xl);
  font-weight: 900;
}



/* ------ #campaign-products_box 対象商品 -------*/
#campaign-products_box .txt_lead{
  font-size: var(--font-size-lg);
  font-weight: 900;
  text-align: center;
}
#campaign-products_box .list_box li{
  color: var(--color-secondary);
  font-size: var(--font-size-md);
  font-weight: 800;
}
#campaign-products_box .txt_xsmall{
  font-weight: 600;
}
.img_campaign-products{
  display: block;
  margin: 0 auto var(--size-20);
  width: min(43.733vw, 328px);
}
.txt_products{
  color: var(--color-primary);
  font-size: var(--font-size-xl);
  font-weight: 900;
  line-height: 1.3;
  text-align: center;
}

/* .txt_price */
.txt_price{
  line-height: 1.3;
  text-align: center;
}
.txt_price > span:first-child{
  color: #333;
  display: inline-block;
  position: relative;
  padding: 0 1em;
}
.txt_price > span:first-child::after{
  content: "";
  background: #333;
  position: absolute;
  left: 0;
  top: 50%;
  height: 2px;
  width: 100%;
}
.txt_price .txt_large{
  font-size: 200%;
}
.txt_price > span:last-child{
  display: block;
  font-size: var(--size-30);
  font-weight: 900;
}
.txt_price  > span:last-child .txt_large{
  font-weight: 700;
}

.txt_campaign-products{
  width: min(74.933vw, 562px);
}


/* ------ #campaign-stores_box 対象購入ストア -------*/
#campaign-stores_box{
  text-align: center;
}
#campaign-stores_box p{
  margin-bottom: 1.5em;
}
.img_stores{
  margin-bottom: 0.5em;
  width: min(49.6vw, 372px);
}


/* ------ #campaign-period_box 対象購入期間 -------*/
#campaign-period_box .date_box p{
  color: #da5373;
}
#campaign-period_box .date_box .arrow{
  border-top-color: #da5373;
}


/* ------ #entry-period_box キャンペーン応募期間 -------*/
#entry-period_box .date_box p{
  color: var(--color-secondary);
}
#entry-period_box .date_box .arrow{
  border-top-color: var(--color-secondary);
}


/* ------ #application-methods_box 応募方法 -------*/
#application-methods_box{
  background-color: #fff;
  border-bottom: min(3.6vw, 27px) solid var(--color-secondary);
  border-top: min(3.6vw, 27px) solid var(--color-secondary);
  padding: var(--size-100) 0;
}
#application-methods_box .container{
  width: min(80vw, 600px);
}
#application-methods_box .arrow{
  border-left: min(4.667vw, 35px) solid transparent;
  border-right: min(4.667vw, 35px) solid transparent;
  border-top: min(4.667vw, 35px) solid var(--color-secondary);
  margin: var(--size-40) auto;
}
#application-methods_box p{
  line-height: 1.5;
}
#application-methods_box .txt_lead{
  color: var(--color-primary);
  font-size: var(--font-size-lg);
  font-weight: 900;
  margin-bottom: 0.5em;
  padding: 0 0.2em;
}
#application-methods_box .bg_blue_box .txt_lead{
  text-align: center;
}
#application-methods_box .txt_number_b{
  display: block;
  margin: 0 auto 0.5em;
  width: var(--size-70);
}
#application-methods_box .btn_store{
  margin-bottom: var(--size-20);
}
#application-methods_box .btn_application{
  margin-bottom: var(--size-10);
}
#application-methods_box .txt_label{
  background-color: var(--color-primary);
  border-radius: 50px;
  color: #fff;
  font-size: var(--font-size-md);
  position: absolute;
  top: calc(var(--size-20) * -1);
  left: calc(50% - min(11.467vw, 86px));
  text-align: center;
  width: min(22.933vw, 172px);
}
#application-methods_box .list_box li{
  color: var(--color-primary);
  font-size: var(--font-size-lg);
  font-weight: 900;
  padding-left: 1em;
  position: relative;
}
#application-methods_box .list_box li::before{
  content: '・';
  position: absolute;
  left: 0;
}
#application-methods_box .txt_complete{
  color: var(--color-primary);
  font-size: var(--font-size-3xl);
  font-weight: 900;
  letter-spacing: 0.05em;
  text-align: center;
}
#application-methods_box .case_02 > .txt_lead{
  margin-bottom: 1.5em;
}
#application-methods_box .case_02 .bg_blue_box{
  padding-top: var(--size-40);
}
#application-methods_box .case_04{
  padding: var(--size-15) var(--size-20);
}
/* img */
.img_application-methods_01{
  display: block;
  margin: 0 auto var(--size-20);
  width: min(35.867vw, 269px);
}
.img_application-methods_02,
.img_application-methods_03{
  margin: 0 auto;
  width: min(66.667vw, 500px);
}


/* ------ #application-requirements_box 応募要項 -------*/
#application-requirements_box{
  padding-top: var(--size-70);
  padding-bottom: var(--size-100);
}
#application-requirements_box .btn_application{
  padding-bottom: var(--size-60);
}
#application-requirements_box .container{
  width: min(93.333vw, 700px);
}
#application-requirements_box .bg_white_box .inner{
  padding: 0 var(--size-40);
  padding-right: var(--size-10);
}
#application-requirements_box .ttl_main{
  padding: 0.65em 0.25em;
}
#application-requirements_box .ttl_main img{
  height: min(6.133vw, 46px);
}
#application-requirements_box p{
  margin-bottom: 1.5em;
}
#application-requirements_box p:last-child{
  margin-bottom: 0;
}

/* .scroll_box */
.scroll_box{
  max-height: min(133.333vw, 1000px);
  overflow-y: auto;
  padding: var(--size-50) var(--size-30) var(--size-50) 0;
  -webkit-overflow-scrolling: touch;
}


/* ------ #use_box -------*/
#use_box{
  background-color: #fff;
  padding: var(--size-50) 0 var(--size-30);
}
#use_box p{
  font-size: 1.2rem;
  margin: 0 auto var(--size-30);
  width: 96%;
}
@media screen and (max-width: 767px) {
  #use_box p{
    font-size: 1rem;
  }
}
.img_flow{
  margin-bottom: var(--size-20);
}


/* ------ #contact_box -------*/
#contact_box{
  padding: var(--size-50) 0;
}
.ttl_contact{
  color: #153278;
  font-size: var(--font-size-md);
  font-weight: 900;
  margin-bottom: 0.5em;
  text-align: center;
}
.ttl_contact span{
  background-color: #fff;
  padding: 0.25em 0.5em;
}
.ttl_campaign{
  color: #fff;
  font-size: var(--font-size-2xl);
  font-weight: 900;
  margin-bottom: 0.25em;
  text-align: center;
}
.txt_mail {
  color: #fff;
  font-size: var(--font-size-lg);
  font-weight: 600;
  margin-bottom: 1em;
  text-align: center;
}
.txt_campaign{
  color: #fff;
  font-size: var(--font-size-xs);
  padding-left: var(--size-50);
}