@charset "UTF-8";
/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
** ＜20周年記念 ポイント利用上限アップキャンペーン＞
**
** ▼ こちらのスタイルシートには、ページ固有のスタイルを記述してください。▼
** ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */
:root {
  --clr-primary: #011144;
  --clr-light-gray: #f7f7f7;
}

/**
 * 共通
 * ---------------------------------------- */
.rasin-20thlp * {
  font-family: var(--ff-primary);
}

/**
 * セクション
 * ---------------------------------------- */
.section--bg-light-gray {
  background-color: var(--clr-light-gray);
}

/**
 * 見出し
 * ---------------------------------------- */
.heading--level2 {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.heading--level2::before,
.heading--level2::after {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background-color: var(--clr-primary);
}

/**
 * 見出し（ラベル）
 * ---------------------------------------- */
.heading-label {
  display: flex;
  justify-content: center;
  padding-top: 3px;
  padding-right: 18px;
  padding-bottom: 3px;
  padding-left: 18px;
  background-color: #9b8d5f;
}

.heading-label__text {
  font-family: var(--ff-secondary) !important;
  font-weight: var(--fw-bold);
  color: var(--clr-white);
}

/**
 * ボックス（キャンペーン期間）
 * ---------------------------------------- */
.label-box {
  padding-top: 8px;
  padding-right: 34px;
  padding-bottom: 8px;
  padding-left: 34px;
  background-color: var(--clr-white);
}

/**
 * ボックス（ご利用方法）
 * ---------------------------------------- */
.step-box {
  max-width: 800px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  background-color: var(--clr-white);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 5px 0px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  padding-top: 24px;
}

.step-box__icon {
  display: grid;
  justify-items: center;
}

.step-box__iconEn,
.step-box__iconNumber {
  font-family: var(--ff-secondary) !important;
  font-weight: var(--fw-bold);
  color: #b58e40;
  text-transform: uppercase;
}

.step-box__iconEn {
  font-size: var(--txt-14);
}

.step-box__iconNumber {
  font-size: var(--txt-20);
}

.step-box__content {
  max-width: 556px;
  margin-top: 24px;
  margin-right: auto;
  margin-left: auto;
}

/**
 * ボタン（マイページ）
 * ---------------------------------------- */
.login-button {
  position: relative;
  display: flex;
  align-items: center;
  border: 1px solid #9b8d5f;
  border-radius: 10px;
  overflow: hidden;
  background-color: var(--clr-primary);
  max-width: 100%;
  box-sizing: border-box;
}

.login-button::after {
  content: '';
  position: absolute;
  width: 28px;
  height: 18px;
  top: 50%;
  transform: translateY(-50%);
  right: 8px;
  clip-path: polygon(0 7%, 7% 0, 57% 50%, 7% 100%, 0 93%, 43% 50%, 0 7%);
  background-color: #9b8d5f;
}

.login-button__box {
  display: grid;
  justify-items: center;
}

/**
 * ボタン（店舗一覧）
 * ---------------------------------------- */
.shop-button {
  display: inline-block;
  position: relative;
  background: linear-gradient(to bottom, rgba(3, 29, 68, 1) 0%, rgba(0, 14, 34, 1) 100%);
  text-align: center;
}

.shop-button::after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 8px;
  clip-path: polygon(0 7%, 7% 0, 57% 50%, 7% 100%, 0 93%, 43% 50%, 0 7%);
  background-color: #9b8d5f;
}

.shop-button__text {
  font-family: var(--ff-secondary) !important;
  font-weight: var(--fw-black);
  color: var(--clr-white);
}

/**
 * メインビジュアル
 * ---------------------------------------- */
.point-mv {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

/**
 * カード（ポイント利用上限）
 * ---------------------------------------- */
.point-card {
  display: grid;
  justify-items: center;
  row-gap: 2px;
  padding-top: 17px;
  padding-right: 13px;
  padding-bottom: 3px;
  padding-left: 13px;
  border: 1px solid #9b8d5f;
  border-radius: 5px;
  background-color: var(--clr-white);
  overflow: hidden;
}

.point-card__label {
  display: flex;
  justify-content: center;
  background-color: #9b8d5f;
  border-radius: 50px;
  overflow: hidden;
  padding-top: 2px;
  padding-right: 55px;
  padding-bottom: 2px;
  padding-left: 55px;
}

/**
 * カード（ポイントとは）
 * ---------------------------------------- */
.about-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 1px solid #9b8d5f;
  border-radius: 8px;
  overflow: hidden;
}

.about-card__en,
.about-card__title {
  display: block;
  font-weight: var(--fw-bold);
  color: #9b8d5f;
}

.about-card__en {
  font-family: var(--ff-secondary) !important;
  font-size: var(--txt-15);
}

.about-card__title {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.about-card__box {
  border-top: 1px solid #9b8d5f;
}

.about-card:last-child .about-card__box {
  border: none;
  padding-top: initial;
}

.about-card__number {
  font-family: var(--ff-secondary) !important;
  font-size: var(--txt-48);
  line-height: 0.8;
}

/**
 * PC
 * ---------------------------------------- */
@media screen and (min-width: 769px) {
  #contents {
    padding-bottom: initial;
  }

  .heading--level2 {
    column-gap: 12px;
  }

  .heading-label {
    min-width: 359px;
  }

  .heading-label__text {
    font-size: var(--txt-18);
  }

  .point-mv {
    position: relative;
    background-image: url('/contents/20th/point_limit_up/img/bg_mv_01.jpg');
  }

  .point-mv__inner {
    display: flex;
    justify-content: flex-start;
    max-width: 1080px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 40px;
    padding-right: 12px;
    padding-bottom: 110px;
    padding-left: 12px;
  }

  .point-mv__copy {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .point-mv__notice {
    display: flex;
    justify-content: center;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding-top: 13px;
    padding-right: 16px;
    padding-bottom: 13px;
    padding-left: 16px;
    background-color: var(--clr-light-gray);
  }

  .shop-button {
    min-width: 271px;
    padding-top: 15px;
    padding-right: 28px;
    padding-bottom: 15px;
    padding-left: 28px;
  }

  .shop-button::after {
    width: 14px;
    height: 14px;
  }

  .login-button {
    min-width: 535px;
    padding-top: 15px;
    padding-right: 67px;
    padding-bottom: 15px;
    padding-left: 80px;
    column-gap: 42px;
  }

  .step-box {
    padding-right: 12px;
    padding-bottom: 48px;
    padding-left: 12px;
  }

  .about-card {
    padding-top: 33px;
    padding-right: 16px;
    padding-bottom: 33px;
    padding-left: 16px;
  }

  .about-card:last-child .about-card__box {
    margin-top: 32px;
  }

  .about-card__box {
    margin-top: 17px;
    padding-top: 13px;
  }
}

/**
 * SP
 * ---------------------------------------- */
@media screen and (max-width: 768px) {
  .heading--level2 {
    column-gap: 8px;
  }

  .heading-label {
    width: 100%;
  }

  .point-mv {
    margin-top: 12px;
  }

  .point-mv__copy img {
    width: 100%;
  }

  .shop-button {
    width: 71.5%;
    padding-top: 14px;
    padding-right: 12px;
    padding-bottom: 14px;
    padding-left: 12px;
  }

  .shop-button::after {
    width: 12px;
    height: 12px;
  }

  .shop-button__text {
    font-size: var(--txt-18);
  }

  .login-button {
    width: 100%;
    column-gap: 36px;
    padding-top: 13px;
    padding-bottom: 20px;
    padding-left: 25px;
  }

  .label-box {
    padding-top: 32px;
    padding-right: 36px;
    padding-bottom: 32px;
    padding-left: 36px;
    text-align: center;
  }

  .step-box {
    padding-right: 15px;
    padding-bottom: 40px;
    padding-left: 15px;
  }

  .about-card {
    padding-top: 18px;
    padding-right: 40px;
    padding-bottom: 18px;
    padding-left: 40px;
  }

  .about-card__box {
    margin-top: 16px;
    padding-top: 12px;
    width: 100%;
  }
}
