/* ============================================ */
/* 1.0 - Base -- ベーススタイル\
/* ============================================ */

#main {
  background-color: #fff;
}

.--primaryTextColor {
  color: #333;
}

/* ============================================ */
/* 2.0 - Layout : 配置・大きなレイアウト
/* ============================================ */

/* ============================================ */
/* 3.0 - Module : 繰り返し利用する部品
/* ============================================ */

/* ============================================ */
/* 4.0 - Contents : コンテンツ部分
/* ============================================ */

/*
 * CV
----------------------------------------------- */
.cv.--primary {
  background-color: #fff;
}

.cv.--secondary {
  background-color: #F8F8F8;
}

.cv__inner {
  display: flex;
  flex-direction: column;
  padding-top: 4rem;
  padding-bottom: 4rem;
  margin: 0 auto;
  max-width: 30rem;
}

.cv__image {
  margin: 0 auto;
  max-width: 15rem;
}

.cv__body {
  margin-top: 1.5rem;
}

.cv__productName {
  text-align: center;
  line-height: 1;
}

.cv__productName .--sub {
  padding-bottom: .625rem;
  font-size: 1rem;
  letter-spacing: .1em;
}

.cv__productName .--main {
  padding-top: .625rem;
  border-top: 1px solid #000;
  font-size: 1.125rem;
}

.price__group {
  display: flex;
  align-items: center;
}

.cv__price {
  margin-top: 2.5rem;
}

.price__group+.price__group {
  margin-top: 2rem;
}

.price__text {
  margin-left: .5rem;
  font-size: .75rem;
  text-align: left;
  line-height: 1.2;
  letter-spacing: 0;
}

.price__text.--left {
  text-align: center;
}

.price__text .--sub {
  display: block;
  padding-bottom: .25rem;
  font-size: .9em;
}

.price__text .--red {
  color: #c3515f;
}

.price__text .--lg {
  font-size: 1.125rem;
  letter-spacing: .03em;
}

.badge {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 2.75rem;
  aspect-ratio: 1;
  border-radius: 50%;
  text-align: center;
  font-size: .75rem;
  line-height: 1.2;
  letter-spacing: -.01em;
}

.badge.--secondary {
  border: 1px solid #000;
}

.badge.--primary {
  background-color: #c3515f;
  color: #fff;
}

.badge .--sm {
  font-size: .625rem;
}

.cv__button {
  margin-left: auto;
  width: 44%;
}

@media screen and (max-width: 359px) {
  .cv__button {
    width: 40%;
  }
}

.button.--primary {
  margin: 0 auto;
  padding: .875rem;
  max-width: 12rem;
  border: 1px solid #000;
  text-align: center;
  font-size: .75rem;
  line-height: 1.2;
  letter-spacing: 0;
}

.cvCross {
  position: relative;
}

.cvCross__button {
  position: absolute;
  left: 50%;
  transform: translate(-50%);
  bottom: 8%;
}

#main .button.--primary:hover {
  background-color: #444;
  color: #fff;
}

.setButton {
  margin-top: -3rem;
}

@media screen and (min-width: 960px) {

  .cvCross__button {
    bottom: 4%;
    right: 0;
  }

  .cv__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding-top: 4rem;
    padding-bottom: 7rem;
    max-width: none;
  }

  .cv__image {
    margin: 0;
    width: 38%;
    max-width: 20rem;
  }

  .cv__body {
    margin: 0;
    width: 56%;
    max-width: 100%;
  }

  .cv__productName {
    margin: 0;
    text-align: left;
  }

  .cv__productName .--sub {
    padding-bottom: 1.25rem;
    font-size: 1.75rem;
  }

  .cv__productName .--main {
    padding-top: 1.25rem;
    font-size: 2rem;
  }

  .cv__price {
    margin-top: 4.5rem;
  }

  .price__group+.price__group {
    margin-top: 2.5rem;
  }

  .price__text {
    margin-left: 1rem;
    font-size: 1.125rem;
  }

  .price__text.--left {
    text-align: left;
  }

  .price__text .--sub {
    padding-bottom: .5rem;
    font-size: .875rem;
  }

  .price__text .--lg {
    font-size: 1.875rem;
  }

  .badge {
    width: 3.75rem;
    height: 3.75rem;
    font-size: 1rem;
  }

  .badge .--sm {
    font-size: .625rem;
  }

  .button.--primary {
    padding: 1rem;
    max-width: 20rem;
    font-size: 1.125rem;
    transition-property: color, background;
    transition-duration: .25s;
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
  }
}
