@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

/* reset */
body {
  margin: 0;
}
#stamprally2608 *::after,
#stamprally2608 *::before,
#stamprally2608 * {
  box-sizing: border-box;
}
#stamprally2608 dd,
#stamprally2608 dt,
#stamprally2608 dl,
#stamprally2608 h3,
#stamprally2608 h2,
#stamprally2608 h1,
#stamprally2608 li,
#stamprally2608 ul,
#stamprally2608 p {
  margin: 0;
  padding: 0;
}
#stamprally2608 img {
  max-width: 100%;
  border: none;
  background: transparent;
  vertical-align: bottom;
  image-rendering: -webkit-optimize-contrast;
}
#stamprally2608 li,
#stamprally2608 ul {
  list-style: none;
}
#stamprally2608 a {
  color: #2a2a2a;
  text-decoration: none;
  transition: all 0.3s ease;
}
#stamprally2608 i {
  font-style: normal;
}
main {
  overflow: clip;
}
.l-main--responsive {
  width: 100%;
  z-index: 1;
}
.l-footer {
  margin-top: 0 !important;
}
.l-footerC_wrapTop {
  display: none !important;
}
.mamapapasmileprogram .contents {
  padding-top: 0 !important;
}

#stamprally2608 {

  color: #2a2a2a;
  line-height: 1.75;

  .inner-wrap {
    padding-inline: 15px;
  }

  .txt-link {
    text-decoration: underline;
  }

  .stamprally2608-contents {
    max-width: 768px;
    margin-inline: auto;
    position: relative;
    z-index: 2;
  }
  .notes-list {
    font-size: .75rem;
    > li {
      padding-left: 1em;
      text-indent: -1em;
      > * {
        text-indent: unset;
      }
    }
  }

  .mv {
    width: 100%;
    line-height: 0;
    margin-bottom: -48px;
    position: relative;
    z-index: 1;
    img {
      width: 100%;
    }
  }

  .lead-area {
    background: #fdfbf6 url(../images/bg_section_illust.png) no-repeat center 0 / 100% auto;
    border-radius: 30px 30px 0 0;
    padding-block: 50px 28px;
    position: relative;
    z-index: 2;
    .lead-txt {
      color: #675a54;
      font-family: "Zen Maru Gothic", sans-serif;
      font-weight: 700;
      line-height: 2;
      max-width: 305px;
      margin-inline: auto;
      text-align: center;
      span {
        border-bottom: 1px solid rgba(103, 90, 84, .2);
        display: block;
      }
      .color-orange {
        color: #f37c42;
      }
    }
    .campaign-term {
      max-width: 359px;
      margin: 24px auto 0;
    }
  }

  .how-to-entry-sec {
    background: linear-gradient(to right,  #f6f1ec 0%,#f6f1ec 50%,#f3eee9 50%,#f3eee9 100%);
    background-size: 40px 10px;
    margin-bottom: -48px;
    padding-block: 24px 68px;
    .sec-ttl {
      max-width: 345px;
      margin-inline: auto;
      img {
        width: 100%;
      }
    }
    .step-wrap {
      background: #fff;
      border-radius: 24px 16px 16px 16px;
      box-shadow: 0 0 16px rgba(103, 90, 84, .1);
      margin-top: 20px;
      padding: 20px;
      position: relative;
      .step-list {
        position: relative;
        > li {
          position: relative;
        }
        > li::before {
          background: #f37c42;
          content: '';
          display: block;
          width: 4px;
          height: 100%;
          position: absolute;
          left: 4px;
          top: 0;
        }
        .step-label {
          color: #fff;
          display: flex;
          align-items: center;
          flex-direction: column;
          justify-content: center;
          font-family: "Zen Maru Gothic", sans-serif;
          font-size: .75rem;
          font-weight: 700;
          line-height: 1.1;
          position: absolute;
          left: -24px;
          top: -24px;
          width: 61px;
          height: 61px;
          &::before {
            background: url(../images/bg_step.svg) no-repeat center center / contain;
            content: '';
            display: block;
            width: 67px;
            height: 64px;
            position: absolute;
            right: 0;
            bottom: 0;
            z-index: 1;
          }
          .txt {
            position: relative;
            z-index: 2;
          }
          .num {
            font-size: 1.625rem;
            position: relative;
            z-index: 2;
          }
        }
        .step-ttl-wrap {
          position: relative;
          padding-left: 20px;
          position: relative;
          text-align: center;
          z-index: 2;
          .step-ttl {
            color: #675a54;
            font-family: "Zen Maru Gothic", sans-serif;
            font-size: 1.5rem;
            font-weight: 700;
            line-height: 1.25;
            > span {
              background: linear-gradient(to bottom,  rgba(251,214,86,0) 0%,rgba(251,214,86,0) 70%,rgba(251,214,86,1) 70%,rgba(251,214,86,1) 95%,rgba(251,214,86,0) 95%,rgba(251,214,86,0) 100%);
            }
            .num {
              font-size: 2rem;
            }
          }
        }
        .step-01 {
          padding-left: 30px;
          padding-bottom: 40px;
          .step-ttl-wrap {
            margin-left: -30px;
          }
          .step-img-01 {
            margin-top: 20px;
          }
          .notes-list {
            margin-top: 16px;
          }
        }
        .step-02 {
          .step-ttl-wrap {
            .step-label {
              top: -16px;
            }
          }
        }
        .action-list {
          background: #e6e3e1;
          border-radius: 16px;
          margin-top: 24px;
          padding: 10px;
          position: relative;
          z-index: 2;
          > li + li {
            margin-top: 10px;
          }
          > li {
            background: #Fff;
            border-radius: 16px;
            position: relative;
            &:first-child::before {
              top: -10px;
            }
            &::before {
              background: url(../images/img_step_bird.png) no-repeat center center / contain;
              content: '';
              display: block;
              width: 37px;
              height: 40px;
              position: absolute;
              top: -5px;
              right: -6px;
            }
          }
          .action-ttl-wrap {
            color: #f37c42;
            display: flex;
            align-items: center;
            flex-direction: column;
            justify-content: center;
            gap: 8px;
            font-family: "Zen Maru Gothic", sans-serif;
            padding-block: 16px;
            text-align: center;
            .action-num {
              border: 2px solid #f37c42;
              border-radius: 50%;
              display: flex;
              align-items: center;
              justify-content: center;
              font-size: 1.25rem;
              font-weight: 700;
              width: 30px;
              height: 30px;
            }
            .action-ttl {
              font-size: 1.25rem;
              line-height: 1.25;
              font-weight: 700;
            }
          }
          .action-body {
            border-top: 1px solid #e6e3e1;
            padding-block: 20px;
            &:has(.experience-check) {
              border-top: none;
              padding-top: 0;
            }
            .lead-txt {
              text-align: center;
            }
            .btn-wrap {
              display: flex;
              justify-content: center;
              margin-top: 20px;
              .btn {
                background: #675a54;
                border-radius: 999px;
                color: #fff;
                display: flex;
                align-items: center;
                justify-content: center;
                font-family: "Zen Maru Gothic", sans-serif;
                font-weight: 700;
                max-width: 245px;
                width: 100%;
                height: 64px;
                position: relative;
                &::after {
                  background: url(../images/icn_arrow_btn.svg) no-repeat center center / contain;
                  content: '';
                  display: block;
                  width: 16px;
                  height: 12px;
                  position: absolute;
                  right: 15px;
                  top: calc(50% - 6px);
                }
              }
            }
            .notes-list {
              margin-top: 20px;
              padding-inline: 16px;
            }
            .action-img-01 {
              margin-top: 20px;
              img {
                width: 100%;
              }
            }
            .action-img-02{
              display: flex;
              align-items: center;
              justify-content: center;
              margin-top: 10px;
              position: relative;
              .img {
                width: 141px;
                margin-right: -16px;
              }
              .balloon {
                width: 137px;
              }
            }
            .recipe-txt {
              font-size: .875rem;
              font-size: 500;
              line-height: 1.7;
              margin-top: 20px;
              text-align: center;
            }
            .action-img-03 {
              margin-bottom: 20px;
              & + .lead-txt {
                font-size: .875rem;
              }
            }
            .experience-check {
              border-top: 1px solid #e6e3e1;
              display: flex;
              gap: 13px;
              margin: 20px 14px 0;
              padding-top: 20px;
              .img {
                width: 60px;
                img {
                  width: 100%;
                }
              }
              .txt-wrap {
                flex: 1;
                font-size: .8125rem;
              }
            }
          }
        }
        .step-end {
          margin-top: 30px;
          &::before {
            top: unset;
            bottom: calc(100% - 20px);
          }
          .step-label {
            top: 8px;
            .achievement {
              font-size: 1.125rem;
              position: relative;
              z-index: 2;
              span {
                letter-spacing: -0.5em;
              }
            }
          }
          .point-get {
            width: 100%;
            max-width: 251px;
            margin: 0 auto 16px;
          }
        }
      }
    }
  }

  .w-chance-sec {
    background: #fff url(../images/bg_section_illust.png) no-repeat center 0 / 100% auto;
    border-radius: 30px 30px 0 0;
    padding-block: 48px 28px;
    .sec-ttl {
      max-width: 274px;
      margin-inline: auto;
    }
    .lead-txt {
      color: #675a54;
      font-size: 1.25rem;
      font-weight: 700;
      margin-top: 16px;
      .sub {
        font-size: 1rem;
      }
    }
    .txt-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-top: 20px;
      .label {
        line-height: 0;
        width: 95px;
      }
      .txt {
        color: #675a54;
        font-family: "Zen Maru Gothic", sans-serif;
        font-weight: 700;
        font-size: 2.5rem;
        .num {
          color: #f37c42;
          display: inline-block;
          font-size: 6.25rem;
          line-height: 1;
        }
      }
    }
    .present {
      color: #675a54;
      font-family: "Zen Maru Gothic", sans-serif;
      font-size: 1.25rem;
      font-weight: 700;
      line-height: 1.4;
      margin: 24px -15px 0;
      text-align: center;
      .sub {
        font-size: 1rem;
      }
      .underline {
        display: inline-block;
        letter-spacing: -0.05em;
        position: relative;
        &::before {
          background: linear-gradient(to bottom,  rgba(251,214,86,0) 0%,rgba(251,214,86,0) 70%,rgba(251,214,86,1) 70%,rgba(251,214,86,1) 95%,rgba(251,214,86,0) 95%,rgba(251,214,86,0) 100%);
          content: '';
          display: inline-block;
          position: absolute;
          left: 12px;
          top: 0;
          width: calc(100% - 24px);
          height: 100%;
        }
        &.line-2::before {
          width: calc(100% - 12px);
        }
        > span {
          display: inline-block;
          position: relative;
          z-index: 2;
        }
        .lts {
          display: inline-block;
          letter-spacing: -0.1em;
        }
        .lts-2 {
          display: inline-block;
          letter-spacing: -0.5em;
        }
      }
    }
    .img {
      margin: 15px -15px 0;
      width: calc(100% + 30px);
    }
  }

  .attention-sec {
    background: #f6f1ec;
    padding-block: 32px 15px;
    .sec-ttl {
      color: #675a54;
      font-size: 1.375rem;
      font-weight: 700;
      text-align: center;
    }
    .attention-list {
      background: #fff;
      border-radius: 10px;
      color: #444;
      font-size: .875rem;
      line-height: 1.28;
      margin-top: 24px;
      padding: 20px;
      > li {
        padding-left: 15px;
        text-indent: -15px;
        &::before {
          background: #444;
          border-radius: 50%;
          content: '';
          display: inline-block;
          width: 5px;
          height: 5px;
          margin-right: 10px;
          vertical-align: middle;
        }
      }
      > li + li {
        margin-top: 16px;
      }
    }
  }

}

/* PC ONLY */
@media screen and (min-width: 768px){

  .p-header {
    background-color: #fff;
  }
  .mamapapasmileprogram .contents {
    padding-top: 0 !important;
  }
  #jumpcontent div.p-page-top {
    max-width: 1300px !important;
  }
  .sp-only {
    display: none !important;
  }

  #stamprally2608 {
    width: 100%;
    overflow: hidden;
    position: relative;
    &::before {
      background: url(../images/bg_pc_body.jpg) no-repeat center center / cover;
      content: '';
      display: block;
      position: fixed;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      z-index: -1;
    }
    .stamprally2608-contents {
      max-width: 410px;
      margin-inline: auto;
    }
    .txt-link:hover {
      text-decoration: none;
    }
    .btn-wrap {
      .btn:hover {
        opacity: .75;
      }
    }
  }

}

/* SP ONLY */
@media screen and (max-width: 767px){
  .pc-only {
    display: none !important;
  }
}

/* ファンケルCSS */