:root {
  --base-width: 1000px;


  --color-blue: #009BE1;
  --color-darkBlue: #151F52;
}


/* ------------------- base ------------------- */
body {
  color: var(--color-darkBlue);
  font-weight: 800;
}
button {
  background-color: transparent;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  border: none;
  cursor: pointer;
}

h3 {
  padding-top: 0;
}

section {
  padding: 0;
}

.c-pagetitle__image--activity {
  width: 100%;
  height: 437px;
  background: #b8b8b8 url(../images/pagetitle-activity.jpg) no-repeat top left;
  background-size: cover;
}

@media screen and (max-width: 768px) {
  .c-pagetitle__image--activity {
    width: 100%;
    height: 280px;
    background: #b8b8b8 url(../images/pagetitle-activity-sp.jpg) no-repeat top left;
    background-size: cover;
  }
}

.activity {
  overflow-x: hidden;
}
  


/* --------------------project------------------ */
/* act-p-campaignBanner */
.act-p-campaignBanner {
  margin: 53px auto 0;
  padding-left: 20px;
  padding-right: 20px;
  width: fit-content;
}

.act-p-campaignBanner__link {
  transition: .3s;
  &:hover {
    opacity: .7;
    transition: .3s;
  }
}

@media screen and (max-width: 768px) {
  .act-p-campaignBanner__link {
    &:hover {
      opacity: 1;
    }
  }
}

.act-p-campaignBanner__img img {
  width: 100%;
  object-fit: contain;
}


/* act-p-about */
.act-p-about {
  display: grid;
  grid-template-columns: 50% minmax(auto, 420px);
  grid-template-rows: auto auto 1fr;
  grid-template-areas: 
  "img lead"
  "img available"
  "img goal";
  column-gap: 60px;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .act-p-about {
    display: block;
  }
}

.act-p-about__lead {
  grid-area: lead;
  font-size: 1rem;
  line-height: calc(35 / 16);
  font-weight: 500;
  z-index: 10;
}

@media screen and (max-width: 768px) {
  .act-p-about__lead {
    margin-top: 30px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

.act-p-about__img {
  grid-area: img;
  position: relative;
}
.act-p-about__img {
  &::after {
    content: "";
    position: absolute;
    bottom: -69px;
    right: calc(-100% - 46px);
    width: 925px;
    height: 172px;
    background-image: url(../images/decoration-about-02.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }
}

@media screen and (max-width: 768px) {
  .act-p-about__img {
    &::after {
      bottom: -569px;
      right: -46px;
      width: 462px;
      height: 86px;
      z-index: -1;
    }
  }
}

.act-p-about__img img{
  width: 100%;
  height: 484px;
  object-fit: cover;
}

@media screen and (max-width: 768px) {
  .act-p-about__img img{
    height: 226px;
  }
}

.act-p-about__available {
  grid-area: available;
  display: flex;
  gap: 32px;
  justify-content: center;
  margin-top: 24px;
  z-index: 10;
}


/* act-p-campaign__lead */
.act-p-campaign {
  padding-left: 20px;
  padding-right: 20px;
}

.act-p-campaign__banner {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-p-campaign__banner img{
    width: 100%;
  }
}

.act-p-campaign__banner img {
  width: 100%;
  object-fit: contain;
}

.act-p-campaign__lead {
  margin-top: 30px;
  color: #000;
  font-size: calc(18rem / 16);
  line-height: 1.8;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-p-campaign__lead {
    text-align: left;
  }
}


/* act-p-activityStore */
.act-p-activityStore {
  display: grid;
  grid-template-columns: repeat(auto-fit, 300px);
  column-gap: 30px;
  row-gap: 40px;
  justify-content: center;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  max-width: var(--base-width);
}

@media screen and (max-width: 768px) {
  .act-p-activityStore {
    grid-template-columns: repeat(auto-fit, 169px);
    column-gap: 20px;
    padding-left: 16px;
    padding-right: 16px;
  }
}
.act-p-activityStore__card {
  width: 300px;
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card {
    width: 169px;
  }
}

.act-p-activityStore__card__link {
  &:hover .act-p-activityStore__card__img img{
    transform: scale(1.1);
    transition: .3s;
  }
  &:hover .act-p-activityStore__card__look{
    background-color: var(--color-darkBlue);
    opacity: 1;
    transition: .3s;
  }
  &:hover .act-p-activityStore__card__look span{
    color: #fff;
    transition: .3s;

    &::before {
      background-image: url(../images/circleArrow-right--white.png);
      transition: .3s;
    }
  }
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card__link {
    &:hover .act-p-activityStore__card__img img{
      transform: scale(1);
    }
      &:hover .act-p-activityStore__card__look{
    background-color: #fff;
  }
  &:hover .act-p-activityStore__card__look span{
    color: var(--color-darkBlue);

    &::before {
      background-image: url(../images/circleArrow-right.png);
    }
  }
  }
}

.act-p-activityStore__card__img img {
  transition: .3s;
  object-fit: cover;
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card__img img {
    width: 100%;
    height: 100%;
  }
}



.act-p-activityStore__card__img {
  width: 300px;
  height: 300px;
  border-radius: 150px 150px 8px 150px;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card__img {
    width: 169px;
    height: 169px;
  }
}

.act-p-activityStore__card__title {
  padding-top: 20px;
  color: var(--color-darkBlue);
  font-size: calc(20rem / 16);
  line-height: calc(24 / 20);
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card__title {
    padding-top: 16px;
    font-size: 1rem;
    line-height: calc(18 / 16);
  }
}

.act-p-activityStore__card__store {
  padding-top: 8px;
  color: var(--color-blue);
  line-height: calc(26 / 16);
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-p-activityStore__card__store {
    font-size: calc(12rem / 16);
    line-height: calc(24 / 12);
  }
}

.act-p-activityStore__card__look {
  display: flex;
  justify-content: center;
  margin-top: 10px;
  padding: 10px;
  width: 100%;
  background-color: #fff;
  align-items: center;
  transition: .3s;
}

.act-p-activityStore__card__look span {
  position: relative;
  padding-right: 28px;
  color: var(--color-darkBlue);
  line-height: 1.25;
  transition: .3s;
}

.act-p-activityStore__card__look span::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  background-image: url(../images/circleArrow-right.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: .3s;
}

/* act-p-instagram */
.act-p-instagram {
  margin-top: 80px;
  padding-left: 20px;
  padding-right: 20px;
}

.act-p-instagram__inner {
  max-width: var(--base-width);
  margin: 80px auto 0;
  padding-top: 52px;
  padding-left: 60px;
  padding-right: 60px;
  background-color: #fff;
  border-radius: 8px 8px 0 0;
  line-height: 1.625;
}

@media screen and (max-width: 768px) {
  .act-p-instagram__inner {
    padding-left: 30px;
    padding-right: 30px;
  }
  
}

.act-p-instagram__body {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr;
  grid-template-areas: 
  "stamp img"
  "other img";
  column-gap: 64px;
  row-gap: 46px;
  align-items: flex-end;
}

@media screen and (max-width: 768px) {
  .act-p-instagram__body {
    display: block;
  }
}

.act-p-instagram__detail__title {
  color: var(--color-darkBlue);
  font-size: calc(20rem / 16);
  line-height: calc(20 / 20);
}

@media screen and (max-width: 768px) {
  .act-p-instagram__detail__title {
    line-height: 1.28;
  }
}

.act-p-instagram__detail__text {
  margin-top: 16px;
  font-size: 1rem;
  line-height: calc(35 / 16);
  font-weight: 500;
}

.act-p-instagram__detail__link {
  margin-top: 15px;
  font-size: 1rem;
  line-height: calc(35 / 16);
}

.act-p-instagram__detail--stamp {
  grid-area: stamp;
}

.act-p-instagram__detail--stamp .act-p-instagram__detail__link {
  text-align: center;
}

.act-p-instagram__detail--other {
  grid-area: other;
  margin-bottom: 50px;
}

@media screen and (max-width: 768px) {
  .act-p-instagram__detail--other {
    margin-top: 46px;
    margin-bottom: 0;
  }
}


.act-p-instagram__detail__button {
  margin: 0 auto;
  border: 1px solid #000;
  border-radius: 30px;
}

.act-p-instagram__img {
  grid-area: img;
}

.act-p-instagram__img img {
  object-fit: cover;
}

@media screen and (max-width: 768px) {
  .act-p-instagram__img {
    margin-top: 54px;
    text-align: center;
  }
}



/* act-p-planDetail */
.act-p-planDetail {
  position: relative;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  max-width: var(--base-width);

  &::before {
    content: "";
    position: absolute;
    top: 99px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: calc(100% - 99px);
    background-color: #d9d9d9;
    z-index: -1;
  }

  &::after {
    content: "";
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translateX(-53%);
    width: 117px;
    height: 50px;
    background-image: url(../images/boat.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  &:not(:first-child){
    margin-top: 86px;
  }
}

@media screen and (max-width: 768px) {
  .act-p-planDetail {

    &::before {
      top: 100px;
      height: 44px;
    }

    &::after {
      content: "";
      position: absolute;
      top: 50px;
      left: 50%;
      transform: translateX(-53%);
      width: 117px;
      height: 50px;
      background-image: url(../images/boat.png);
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }

    &:not(:first-child){
      margin-top: 64px;
    }
  }
}

.act-p-planDetail__day {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  padding-left: 10px;
  padding-right: 10px;
  align-items: center;
  width: 100%;
  max-width: 100px;
  min-width: 168px;
  background-color: #fff;
  font-size: calc(20rem / 16);
  line-height: calc(36 / 20);
  border-radius: 20px;
}

.act-p-planDetail__inner {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 10px;
    background-color: var(--color-blue);
    border-radius: 50%;
    z-index: -1;
  }
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__inner {
    padding-bottom: 36px;

    &::before {
      bottom: -4;
      z-index: 1;
    }
  }
}

.act-p-planDetail__schedule {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto 1fr;
  grid-template-areas:
  "img time"
  "img title"
  "img text";
  column-gap: 62px;
  margin-top: 30px;

  &:first-of-type {
    margin-top: 107px;
  }

  &::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 9px;
    background-image: url(../images/fish.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto 1fr;
    grid-template-areas:
    "time"
    "title"
    "text"
    "img";
    column-gap: 62px;
    margin-top: 36px;
    padding-top: 33px;
    padding-bottom: 20px;

      &:first-of-type {
      margin-top: 111px;
    }

      &::before {
      top: 18px;
    }

    &::after {
      content: "";
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      width: 2px;
      height: 36px;
      background-color: #d9d9d9;
    }
  }
}



.act-js-planItem.is-even {
  grid-template-areas:
  "time img"
  "title img"
  "text img";
  text-align: right;

  &::before {
    transform: scaleX(-1) translateX(50%);
  }
}

@media screen and (max-width: 768px) {
  .act-js-planItem.is-even {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto 1fr;
    grid-template-areas:
    "time"
    "title"
    "text"
    "img";
    text-align: left;

    &::before {
      transform: scaleX(1) translateX(-50%);
    }
  }
}

.act-js-planItem.is-even .act-p-planDetail__schedule__time{
  padding-left: 0;
}

.act-p-planDetail__schedule__img {
  grid-area: img;
}


@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule__img {
    margin-top: 20px;
  }
}

.act-p-planDetail__schedule__img img {
  object-fit: cover;
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule__img img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

.act-p-planDetail__schedule__time {
  grid-area: time;
  padding-left: 3px;
  color: var(--color-blue);
  font-size: calc(18rem / 16); 
  line-height: calc(26 / 18);
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule__time {
    padding-left: 0;
    text-align: center;
  }
}

.act-p-planDetail__schedule__title {
  grid-area: title;
  margin-top: 5px;
  font-size: calc(20rem / 16);
  line-height: calc(24 / 20);
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule__title {
   text-align: center;
  }
}

.act-p-planDetail__schedule__text {
  grid-area: text;
  margin-top: 21px;
  line-height: calc(35 / 16);
  font-weight: 500;
  text-align: left;
}

@media screen and (max-width: 768px) {
  .act-p-planDetail__schedule__text {
   margin-top: 16px;
  }
}


/* act-p-otherPlan */

.act-p-otherPlan__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, 300px);
  column-gap: 30px;
  row-gap: 44px;
  justify-content: center;
  margin: 0 auto;
  max-width: var(--base-width);
}

@media screen and (max-width: 768px) {
  .act-p-otherPlan__list {
    row-gap: 20px;
  }
}

.act-p-otherPlan__card__link {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  width: 300px;

  &:hover .act-p-otherPlan__card__img img{
    transform: scale(1.1);
    transition: .3s;
  }
}

@media screen and (max-width: 768px) {
  .act-p-otherPlan__card__link {
    &:hover .act-p-otherPlan__card__img img{
      transform: scale(1);
    }
  }
}


.act-p-otherPlan__card__img img {
  height: 180px;
  object-fit: cover;
  transition: .3s;
}

.act-p-otherPlan__card__group {
  display: grid;
  grid-area: 2/1/3/2;
  align-items: flex-end;
  padding-top: 4px;
  padding-bottom: 4px;
  min-width: 100px;
  color: #191919;
  font-size: calc(14rem / 16);
  line-height: calc(18 / 14);
  text-align: center;
  z-index: 10;
}

.p-otherPlan__card__group--inn {
  background-color: #FFD4A3;
}
.p-otherPlan__card__group--other {
  background-color: #BAD5E0;
}
.p-otherPlan__card__group--restaurant {
  background-color: #FFC739;
}
.p-otherPlan__card__group--retail {
  background-color: #C4E0BA;
}

.act-p-otherPlan__card__img {
  display: grid;
  grid-area: 1/1/3/3;
  border-radius: 8px 8px 8px 268px;
  overflow: hidden;
}

.act-p-otherPlan__card__title {
  position: relative;
  display: grid;
  grid-area: 3/1/4/3;
  margin-top: 12px;
  padding-right: 33px;
  color: var(--color-darkBlue);
  font-size: calc(18rem / 16);
  line-height: 1;
  text-align: right;
  
  &::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 3px;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-image: url(../images/circleArrow-right.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 768px) {
  .act-p-otherPlan__card__title {
    margin-bottom: 14px;
    font-size: 1rem;
    line-height: 1;
  }
}

.act-p-otherPlan__title {
  margin-bottom: 39px;
  color: var(--color-darkBlue);
  text-align: center;
  font-size: calc(28rem / 16);
  line-height: calc(36 / 28);
  font-weight: 800;
}

@media screen and (max-width: 768px) {
  .act-p-otherPlan__title {
    font-size: calc(24rem / 16);
    line-height: calc(36 / 24);
  }
}


/* act-p-modelPlan */
.act-p-modelPlan__mv {
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  
  &::before {
    content: "";
    position: absolute;
    bottom: 2px;
    right: -10px;
    width: 483px;
    height: 183px;
    background-image: url(../images/tab_mv-decoration.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 1;
  }
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__mv {
        &::before {
      content: "";
      position: absolute;
      bottom: 4px;
      right: 9px;
      width: 203px;
      height: 77px;
      background-image: url(../images/tab_mv-decoration.png);
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }
  }

}
.act-p-modelPlan__mv__img {
  width: 100%;
  height: 400px;
  background: #B6B6B8 url(../images/tab_mv-01.jpg) no-repeat center center;
  background-size: cover;
}
@media screen and (max-width: 768px) {
  .act-p-modelPlan__mv__img {
    height: 226px;
    background-size: cover;
  }
}

.p-modelPlan--friend .act-p-modelPlan__mv__img {
  background: #B6B6B8 url(../images/tab_mv-02.jpg) no-repeat center center;
  background-size: cover;
}

.p-modelPlan--all .act-p-modelPlan__mv__img {
  background: #B6B6B8 url(../images/tab_mv-03.jpg) no-repeat center center;
  background-size: cover;
}

.act-p-modelPlan__mv__text{
  display: flex;
  position: absolute;
  top: 50%;
  right:clamp(30px, -247.11px + 36.06vw, 330px);
  transform: translateY(-50%);
  flex-direction: row-reverse; 
  justify-content: flex-start;
  align-items: flex-start;
  z-index: 10;
}
@media screen and (max-width: 768px) {
  .act-p-modelPlan__mv__text{
    top: 0;
    right: 30px;
    transform: translateY(0);
  }
}


.act-p-modelPlan__mv__text span{
  display: inline-block;
  margin-left: 4px;
  padding: 11px 3px 4px;
  color: #fff;
  background-color: var(--color-darkBlue);
  font-size: calc(50rem / 16);
  line-height: calc(56 / 50);
  writing-mode: vertical-rl;
  letter-spacing: 7px;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__mv__text span{
    margin-left: 6px;
    padding: 11px 3px 5px;
    font-size: calc(24rem / 16);
    line-height: calc(28 / 24);
    letter-spacing: 5px;
  }
}

.act-p-modelPlan__lead {
  padding-left: 20px;
  padding-right: 20px;
  text-align: center;
}

.act-p-modelPlan__button {
  margin: 94px auto 0;
  padding-left: 20px;
  padding-right: 20px;
  width: fit-content;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__button {
    margin: 30px auto 0;
  }
}

.act-p-modelPlan__foot {
  margin-top: 104px;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__foot {
    margin-top: 60px;
  }
}


/* act-p-plan */
.act-p-plan {
  position: relative;
  padding-bottom: 170px;

}
@media screen and (max-width: 768px) {
    .act-p-plan {
      padding-top: 50px;
    }
}

@media screen and (max-width: 768px) {
  .act-p-plan {
    padding-top: 47px;
  }
}

.act-p-plan__tabList {
  display: flex;
  justify-content: center;
  margin: 0 auto 60px;
  padding-left: 20px;
  padding-right: 20px;
  max-width: var(--base-width);
  gap: 10px;
}

@media screen and (max-width: 768px) {
  .act-p-plan__tabList {
    margin: 0 auto 50px;
  }
}

.act-p-plan__tabList--bottom {
  margin-top: 116px;
  margin-bottom: 0;

  /* ボタン追従 */
  position: fixed;
  /* bottom: 98px; */
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}

.act-p-plan__tabList--top {
  transition: opacity .3s;
}
.act-p-plan__tabList--top.is-fade {
  opacity: 0;
  transition: opacity .3s, visibility .3s;
}

.act-p-plan__tabList--bottom.is-move {
  position: absolute;
  bottom: 0;
}

.act-p-plan__tabList--bottom.is-fade {
  opacity: 1;
  visibility: visible;
  transition: opacity .3s;
}

@media screen and (max-width: 768px) {
  .act-p-plan__tabList--bottom {
    margin-top: 50px;
  }
}

.act-p-plan__tabList__button {
  padding-top: 10px;
  padding-bottom: 11px;
  padding-left: 34px;
  padding-right: 34px;
  width: 100%;
  text-align: center;
  background-color: #fff;
  font-weight: 700;
  border-radius: 34px;
  border: 1px solid var(--color-darkBlue);
  max-width: 320px;
}
@media screen and (max-width: 768px) {
  .act-p-plan__tabList__button {
    padding-top: 6px;
    padding-bottom: 8px;
    padding-left: 5px;
    padding-right: 5px;
    border-radius: 8px;
    border: none;
  }
}
.act-p-plan__tabList__button span {
  display: inline-block;
  color: var(--color-darkBlue);
  font-size: calc(24rem / 16);
  line-height: calc(26 / 24);
  position: relative;
  padding-left: 42px;

  &::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    width: 32px;
    height: 32px;
  }
}

@media screen and (max-width: 768px) {
  .act-p-plan__tabList__button span {
    padding-top: 40px;
    padding-left: 0;
    font-size: calc(16rem / 16);
    line-height: calc(110 / 100);
      &::before {
        display: block;
    content: "";
    left: 50%;
    top: 0;
    transform: translate(-50%,0);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    width: 32px;
    height: 32px;
  }
  }
}

.act-p-plan__tabList__button--marine span {
  font-size: calc(20rem / 16);
  line-height: calc(22 / 20);
  &::before {
    background-image: url(../images/marin_logo.svg);
  }
}
@media screen and (max-width: 768px) {
  .act-p-plan__tabList__button--marine span {
    font-size: calc(14rem / 16);
    line-height: calc(110 / 100);
    &::before {
      background-image: url(../images/marin_logo.svg);
    }
  }
}
.act-p-plan__tabList__button--basket span {
  &::before {
    background-image: url(../images/basket_logo.svg);
  }
}
.act-p-plan__tabList__button--oyster span {
  &::before {
    background-image: url(../images/oyster_logo.svg);
  }
}

/* act-p-sectionBg */
.act-p-sectionBg{
  padding-bottom: 80px;
  width: 100%;
  height: 100%;
  background-image: url(../images/campaign_bg.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}


/* act-p-section */
.act-p-section {
  position: relative;
  padding-top: 96px;
}

.act-p-section--about {
  margin-top: 69px;
  margin-bottom: 200px;
  padding-bottom: 100px;
}

@media screen and (max-width: 768px) {
  .act-p-section--about {
    margin-top: 69px;
    margin-bottom: 69px;
    padding-bottom: 51px;
  }
}

.act-p-section--store {
  position: relative;
  padding-bottom: 100px;
  
  &::before {
    content: "";
    position: absolute;
    aspect-ratio: 1598 / 675;
    top: 0;
    left: 0;
    width: 100%;
    background-image: url(../images/bg_wave.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
  }
}

@media screen and (max-width: 768px) {
  .act-p-section--store {
    padding-top: 98px;
    padding-bottom: 120px;
  }
}

.act-p-section--plan {
  position: relative;
  padding-bottom: 98px;

  &::before {
    content: "";
    position: absolute;
    aspect-ratio: 1598 / 675;
    width: 100%;
    top: 0;
    left: 0;
    background-image: url(../images/bg_wabe-plan.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
  }
}


.act-p-section__decoration {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  margin: 0 auto;
  width: clamp(375px, 100vw, 1600px);
  height: 100%;
  z-index: -1;
}


.act-p-section__decoration::before{
  content: "";
  position: absolute;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
}

.act-p-section__decoration::after{
  content: "";
  position: absolute;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
}

.act-p-section__decoration--about{
  &::before {
    background-image: url(../images/decoration-about.png);
    top: -35px;
    right: -343px;
    width: 887px;
    height: 487px;
  }
}

@media screen and (max-width: 768px) {
  .act-p-section__decoration--about{
    &::before {
      background-image: url(../images/decoration-about.png);
      top: -46px;
      right: -152px;
      width: 443px;
      height: 244px;
    }
  }
}

.act-p-section__decoration--store{
  &::before {
    background-image: url(../images/decoration-blog-01.png);
    top: -140px;
    left: -104px;
    width: 356px;
    height: 455px;
    z-index: 10;
  }

  &:after {
    background-image: url(../images/decoration-blog-02.png);
    top: 300px;
    right: -36px;
    width: 379px;
    height: 446px;
    z-index: 10;
  }
}

@media screen and (max-width: 768px) {
  .act-p-section__decoration--store{
    &::before {
      top: -116px;
      left: -52px;
      width: 178px;
      height: 227px;
      z-index: 10;
    }
    
    &:after {
      top: 250px;
      right: -14px;
      width: 189px;
      height: 223px;
      background-image: url(../images/decoration-blog-02.png);
      z-index: 10;
    }
  }
}

.act-p-section__decoration--plan{
  &::before {
    top: 1084px;
    left: -95px;
    width: 483px;
    height: 183px;
    background-image: url(../images/decoration-plan-01.png);
    z-index: 10;
  }
  
  &:after {
    top: 1330px;
    right: -40px;
    width: 409px;
    height: 379px;
    background-image: url(../images/decoration-plan-02.png);
    z-index: 10;
  }
}
@media screen and (max-width: 768px) {
  .act-p-section__decoration--plan{
    &::before {
      top: 1114px;
      left: -88px;
      width: 242px;
      height: 92px;
    }
    
    &:after {
      background-image: url(../images/decoration-plan-02.png);
      top: 1614px;
      right: -43px;
      width: 205px;
      height: 190px;
      z-index: 10;
    }
  }
}


.act-p-section__decoration__inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.act-p-section--about .act-p-section__inner {
  max-width: none;
}

.act-p-section__decoration--store .act-p-section__decoration__inner {
  &::before {
    content: "";
    position: absolute;
    bottom: 532px;
    left: -245px;
    width: 556px;
    height: 357px;
    background-image: url(../images/decoration-blog-03.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 10;
  }
  &::after {
    content: "";
    position: absolute;
    bottom: 103px;
    right: -70px;
    width: 402px;
    height: 268px;
    background-image: url(../images/decoration-blog-04.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 10;
  }
}

@media screen and (max-width: 768px) {
  .act-p-section__decoration--store .act-p-section__decoration__inner {
    &::before {
      content: "";
      position: absolute;
      bottom: 884px;
      left: -90px;
      width: 228px;
      height: 179px;
      background-image: url(../images/decoration-blog-03.png);
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      z-index: 10;
    }
    
    &::after {
      bottom: 100px;
      right: -27px;
      width: 244px;
      height: 163px;
    }
  }
}

.act-p-section__decoration--plan .act-p-section__decoration__inner{
  &::before {
    content: "";
    position: absolute;
    bottom: 1298px;
    left: -83px;
    width: 725px;
    height: 121px;
    background-image: url(../images/decoration-plan-04.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
  }
  
  &::after {
    content: "";
    position: absolute;
    bottom: 10px;
    right: -218px;
    width: 1280px;
    height: 1361px;
    background-image: url(../images/decoration-plan-05.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
  }
}
@media screen and (max-width: 768px) {
  .act-p-section__decoration--plan .act-p-section__decoration__inner{
  &::before {
    bottom: 2041px;
    left: -42px;
    width: 363px;
    height: 61px;
  }
  
  &::after {
    bottom: 70px;
    right: -122px;
    width: 640px;
    height: 681px;
  }
}
}

.act-p-section__decoration__img {
  position: absolute;
  bottom: 1940px;
  left: 156px;
  width: 204px;
  height: 204px;
  z-index: -1;
  &::after {
    content: "";
    display: inline-block;
    position: relative;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-image: url(../images/decoration-plan-03.png);
  }
}

@media screen and (max-width: 768px) {
  .act-p-section__decoration__img {
    bottom: 3406px;
    left: -25px;
    right: 204px;
    width: 102px;
    height: 102px;
  }
}




.act-p-section__inner {
  margin: 0 auto;
  max-width: 1600px;
}

.act-p-section__lead {
  padding-left: 20px;
  padding-right: 20px;
}



/* act-p-stampRally */
.act-p-stampRally {
  margin-top: 0;
  padding-top: 102px;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally {
    padding-top: 105px;
  }
}

.act-p-stampRally__title {
  text-align: center;
}

.act-p-stampRally__list {
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  max-width: var(--base-width);
}

.act-p-stampRally__item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto 1fr;
  grid-template-areas: 
  "num title img"
  ". text img";

  &:nth-of-type(2) {
    margin-top: 48px;
  }

  &:nth-of-type(3) {
    margin-top: 40px;
  }
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item {
    display: block;
    margin-top: 50px;

    &:nth-of-type(3) {
      margin-top: 49px;
    }
  }
}


.act-p-stampRally__item--vertical {
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto 1fr;
  grid-template-areas: 
  "num title"
  "num text"
  "num img"
  "num addition";
}



.act-p-stampRally__item__num {
  grid-area: num;
  padding-right: 18px;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item__num {
    padding-right: 0;
    text-align: center;
  }
}

.act-p-stampRally__item__lead {
  grid-area: title;
  display: flex;
  align-items: center;
  margin-top: 16px;
  padding-right: 32px;
  color: var(--color-darkBlue);
  font-size: calc(28rem / 16);
  line-height: calc(36 / 28);
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item__lead {
    margin-top: 18px;
    padding-right: 0;
  }
}

.act-p-stampRally__item__text {
  grid-area: text;
  margin-top: 24px;
  padding-right: 32px;
  color: #000;
  line-height: calc(35 / 16);
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item__text {
    margin-top: 16px;
    padding-right: 0;
  }
}


.act-p-stampRally__item__img {
  grid-area: img;
  margin-top: 12px;
  margin-right: -20px;
  object-fit: contain;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item__img {
    text-align: center;
    margin-top: 24px;
    margin-right: 0;
  }
}


.act-p-stampRally__item--vertical .act-p-stampRally__item__text {
  margin-top: 35px;
  padding-right: 75px;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item--vertical .act-p-stampRally__item__text {
    margin-top: 14px;
    padding-right: 0;
  }
}

.act-p-stampRally__item--vertical .act-p-stampRally__item__img {
  position: relative;
  margin-top: 24px;
  width: fit-content;

  &::before {
    content: "";
    position: absolute;
    top: -30px;
    left: -57px;
    width: 166px;
    height: 78px;
    background-image: url(../images/cloud-01.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  &::after {
    content: "";
    position: absolute;
    bottom: -21px;
    right: -57px;
    width: 166px;
    height: 78px;
    background-image: url(../images/cloud-02.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item--vertical .act-p-stampRally__item__img {
    margin-right: 0;
  
    &::before {
      content: "";
      position: absolute;
      top: -20px;
      left: -12px;
      width: 100px;
      height: 47px;
      background-image: url(../images/cloud-01.png);
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }
  
    &::after {
      content: "";
      position: absolute;
      bottom: -15px;
      right: -9px;
      width: 100px;
      height: 47px;
      background-image: url(../images/cloud-02.png);
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }
  }
}

.act-p-stampRally__item--vertical .act-p-stampRally__item__img img{
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .act-p-stampRally__item--vertical .act-p-stampRally__item__img img{
    width: 100%;
    height: auto;   
    object-fit: contain;
  }
}

.act-p-stampRally__item--vertical .act-p-stampRally__item__lead {
  margin-top: 36px;
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item--vertical .act-p-stampRally__item__lead {
    margin-top: 18px;
  }
}



.act-p-stampRally__item__additionText {
  grid-area: addition;
  margin-top: 24px;
  padding-right: 95px;
  color: #000;
  text-align: center;
  font-size: calc(20rem / 16);
  line-height: calc(35 / 20);
}

@media screen and (max-width: 768px) {
  .act-p-stampRally__item__additionText {
    margin-top: 50px;
    padding-right: 0;
  }
}

.act-p-modelPlan__title {
  position: relative;
  margin: 75px auto 0;
  padding-top: 0;
  padding-bottom: 47px;
  width: fit-content;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__title {
    margin: 59px auto 0;
    padding-bottom: 41px;
  }
}

.act-p-modelPlan__title span {
  display: inline-block;
  background-color: #fff;
  color: var(--color-darkBlue);
  font-size: calc(36rem / 16);
  line-height: calc(48 / 36);
  padding-left: 10px;
  padding-right: 10px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__title span {
    font-size: calc(24rem / 16);
    line-height: calc(36 / 24);
  }
}

.act-p-modelPlan__title span::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 0;
  bottom: 0;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 76px;
  height: 13px;
  background-image: url(../images/wave_decoration.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__title span::after {
    width: 64px;
    height: 11px;
  }
}

.act-p-modelPlan__lead {
  margin-top: 40px;
  font-size: calc(18rem / 16);
  line-height: 1.8;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__lead {
    margin-top: 30px;
  }
}

.act-p-modelPlan__body {
  margin-top: 0px;
}

@media screen and (max-width: 768px) {
  .act-p-modelPlan__body {
    padding-top: 27px;
  }
}

.act-p-snsLink {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 30px;
}

@media screen and (max-width: 768px) {
  .act-p-snsLink {
    gap: 48px;
  }
}

.act-p-snsLink__item {
  text-align: center;
  transition: .3s;

  &:hover {
    opacity: .7;
    transition: .3s;
  }
}

@media screen and (max-width: 768px) {
  .act-p-snsLink__item {
    &:hover {
      opacity: 1;
    }
  }
}

.act-p-snsLink__name {
  margin-top: 19px;
  font-size: 1rem;
  line-height: 1;
  color: var(--color-darkBlue);
}

@media screen and (max-width: 768px) {
  .act-p-snsLink__name {
    margin-top: 9px;
    font-size: calc(14rem / 16);
    line-height: calc(20 / 14);
  }
}


/* -------------------- component ------------------ */
/* act-c-heading */
.act-c-heading {
  position: relative;
  margin-bottom: 80px;
  padding-bottom: 22px;
  color: #151f52;
  font-size: calc(34rem / 16);
  text-align: center;
  line-height: calc(60 / 34);
  letter-spacing: -0.2px;
}

@media screen and (max-width: 768px) {
  .act-c-heading {
    margin-bottom: 30px;
    font-size: calc(24rem / 16);
    line-height: calc(42 / 24);
  }
}



.act-c-heading:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  right: 0;
  width: 69px;
  height: 6px;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-image: url(../images/title_decoration.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}




.c-heading--yellow {
  color: #6C4A2B;
  
  &::after {
    width: 40px;
    height: 2px;
    background: #DDA503;
  }
}

.c-heading--campaign {
  padding-top: 5px;
  padding-bottom: 16px;
  font-size: calc(44rem / 16);
  line-height: calc(60 / 44);
}

@media screen and (max-width: 768px) {
  .c-heading--campaign {
    margin-bottom: 40px;
    padding-top: 0;
    font-size: calc(36rem / 16);
    line-height: calc(60 / 36);
  }
}

.c-heading--participate {
  margin-bottom: 70px;
  padding-bottom: 12px;
  font-size: calc(34rem / 16);
  line-height: calc(60 / 34);
}

@media screen and (max-width: 768px) {
  .c-heading--participate {
    margin-bottom: 59px;
    padding-bottom: 16px;
    font-size: calc(24rem / 16);
    line-height: calc(42 / 24);
  }
}

.c-heading--instagram {
  margin-bottom: 72px;
  padding-top: 65px!important;
  padding-bottom: 16px;
  font-size: calc(34rem / 16);
  line-height: calc(60 / 34);

  &::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    right: 0;
    width: 40px;
    height: 2px;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    background: var(--color-blue);
  }

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 50px;
    background-image: url(../images/instagram_icon.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 768px) {
  .c-heading--instagram {
    margin-bottom: 75px;
    padding-top: 66px!important;
    line-height: 1.28;
  }
}

.c-heading--instagram span {
  color: #E03097;
}

.act-c-lead {
  margin-bottom: 64px;
  text-align: center;
  font-size: calc(18rem / 16);
  line-height: 1.8;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .act-c-lead {
    margin-bottom: 30px;
    text-align: left;
  }
}

.act-c-activityButton {
  text-align: center;
  transition: .3s;
  &:hover {
    opacity: .7;
    transition: .3s;
  }
}

@media screen and (max-width: 768px) {
  .act-c-activityButton {
    &:hover {
      opacity: 1;
    }
  }
}

.act-c-activityButton--plan {
  position: relative;
  display: block;
  padding: 27px 20px 19px;
  min-width: 500px;
  background: linear-gradient(to bottom, #009BE1, #0074E1);
  border-radius: 50px;
  overflow: hidden;

  &:not(:first-of-type) {
    margin-top: 30px;
  }
  
  span {
    z-index: 10;
  }
  
  &::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, #151F52, #00A0E9);
    transition: .3s;
  } 
  
  &:hover {
    opacity: 1;
    &:after {
      opacity: 0;
      transition: .3s;
    }
  }
}

@media screen and (max-width: 768px) {
  .act-c-activityButton--plan {
    display: inline-block;
    min-width: auto;
    width: 100%;
    padding: 20px 41px 17px;
    border-radius: 50px;

    &:hover {
      opacity: 1;
      &:after {
        opacity: 1;
      }
    }

    &:not(:first-of-type) {
      margin-top: 10px;
    }
  }
}

.act-c-activityButton--plan:not([href]) {
  &:hover {
    opacity: 1;
    &:after {
      opacity: 1;
    }
  }
}

.act-c-activityButton--plan span {
  position: relative;
  padding-left: 60px;
  color: #fff;
  font-size: calc(20rem / 16);
  line-height: calc(26 / 20);
  
  &::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 40px;
    height: 36px;
    transform: translateY(-50%);
    background-image: url(../images/plan_button.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 768px) {
  .act-c-activityButton--plan span {
    display: inline-block;
    font-size: calc(18rem / 16);
    line-height: calc(120 / 100);
    text-align: left;
  }
}

.act-c-activityButton--instagram {
  display: inline-block;
  padding-top: 3px;
  padding-bottom: 2px;
  min-width: 256px;
  border: 1px solid var(--color-darkBlue);
  border-radius: 27px;
  color: var(--color-darkBlue);

  &:hover {
    background-color: var(--color-darkBlue);
    opacity: 1;
    transition: .3s;
  }
}

@media screen and (max-width: 768px) {
  .act-c-activityButton--instagram {
    &:hover {
      background-color: #fff;
      opacity: 1;
    }
  }
}

.act-c-activityButton--instagram span {
  position: relative;
  padding-right: 26px;
  font-size: 1rem;
  line-height: 1;
  transition: .3s;

  &::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background-image: url(../images/circleArrow-right.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    transition: .3s;
  }
}

.act-c-activityButton--instagram {
  &:hover span {
    color: #fff;
    transition: .3s;
    
    &::before {
      background-image: url(../images/circleArrow-right--white.png);
      transition: .3s;
    }
  }
}

@media screen and (max-width: 768px) {
  .act-c-activityButton--instagram{
    &:hover span {
      color: var(--color-darkBlue);
      
      &::before {
        background-image: url(../images/circleArrow-right.png);
      }
    }
  }
}


.act-c-label {
  padding-left: 20px;
  padding-right: 20px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .act-c-label img {
    width: 165px;
    height: 33px;
  }
}


/* ------------- js ---------------- */
/* act-js-tabItem */
.act-js-tabItem {
  display: none;
}

.act-js-tabItem.is-active {
  display: block;
}


/* act-js-tabButton */
.act-js-tabButton {
  position: relative;
  &::before {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-59%);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    width: 72px;
    height: 4px;
    transition: 1s;
    background-color: var(--color-blue);
    opacity: 0;
    transition: .3s;
  }
  &:hover {
    &::before {
      opacity: 1;
      transition: .3s;
    }
  }
}

@media screen and (max-width: 768px) {
  .act-js-tabButton {
    position: relative;
    &::before {
      transform: translateX(-50%);
      bottom: 0;
      width: 36px;
      transition: none;
    }
    &:hover {
      &::before {
        opacity: 0;
        transition: none;
      }
    }
  }
}

.act-js-tabButton[aria-expanded="true"] {
  &::before {
    opacity: 1;
  }
}

.act-js-tabButton[aria-expanded="true"] {
  background-color: var(--color-darkBlue);
}
.act-js-tabButton[aria-expanded="true"] span{
  color: #fff;
}

/* utility */