@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');

:root {
  --font-ja-serif: "Hiragino Mincho ProN","ヒラギノ明朝 ProN","Hiragino Mincho","Hiragino Serif","Noto Serif JP", serif;
}
.under_container {
  padding-bottom: 15rem;
}

.product_wrap {
  counter-reset: number 0;  
}
.product::before {
  position: absolute;
  counter-increment: number 1;
  content: counter(number);
  width: 6.2rem;
  height: 6.2rem;
  top: -1rem;
  left: -1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.3rem;
  font-weight: var(--bold);
  font-family: var(--font-en);
  border: 1px solid rgb(0 0 0 / 0.1);
  border-radius: 100%;
  background: var(--color-white);
  z-index: 3;
}
.product:nth-of-type(1)::before {
  background: #F5A916;
  border-color: #F5A916;
  color: var(--color-white);
}
.product:nth-of-type(2)::before {
  background: #838383;
  border-color: #838383;
  color: var(--color-white);
}
.product:nth-of-type(3)::before {
  background: #AF640B;
  border-color: #AF640B;
  color: var(--color-white);
}
.product.col3::before {
  top: 1.3rem;
  left: 1.3rem;
  width: 4rem;
  height: 4rem;
  font-size: 1.5rem;
}
.product_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 5rem 3rem;
}
.product {
  position: relative;
  width: 100%;
  border-radius: 1rem;
  border: 1px solid rgb(0 0 0 / 0.1);
  background: var(--color-white);
}
.product .buton_area {
  padding: 3rem 0;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  background-color: #F6F6F6;
}
.product .buton_area .button {
  margin: 0 auto;
}
.product .flex {
  justify-content: space-between;
  flex-direction: row-reverse;
  align-items: center;
  padding: 5.7rem 6.9rem 5rem;
}
.product .flex .media {
  position: relative;
  width: 36.2rem;
}
.product .flex .media img {
  width: 100%;
}
.product .flex .product_info {
  width: 36.2rem;
}
.product .flex .product_info .maker {
  margin-bottom: 1.5rem;
  font-size: 1.3rem;
  font-family: var(--font-en);
  font-weight: var(--regular);
  color: rgb(0 0 0 / 0.5);
  letter-spacing: 0.03em;
}
.product .flex .product_info .ttl {
  font-size: 2.2rem;
  font-weight: var(--medium);
}
.product .flex .product_info .sku {
  font-size: 1.3rem;
  line-height: 1.46;
  margin-top: 1.5rem;
  font-weight: var(--regular);
}
#ranking .product .flex .product_info .sku,
#ranking .product .flex .product_info .spec {
  text-indent: -3em;
  padding-left: 3em;
  word-break: break-all;
}
#price_cost .product .flex .product_info .sku span {
  display: block;
  text-indent: -3em;
  padding-left: 3em;
  word-break: break-all;
}
.product .flex .product_info .data {
  margin-top: 2.8rem;
  font-size: 1.2rem;
  font-weight: var(--regular);
}
.product .flex .product_info .data p + p {
  margin-top: 0.5em;
}
.product .flex .product_info .price {
  font-family: var(--font-en);
  font-weight: var(--medium);
  font-size: 2.6rem;
  margin-top: 2.6rem;
}
.product .flex .product_info .price.sale {
  color: var(--color-red);
}
.product .flex .product_info .price small {
  font-size: 1.1rem;
}
.product .flex .product_info .openprice {
  margin-top: 0.5rem;
  font-size: 1.1rem;
  color: rgb(0 0 0 / 0.5);
}
.product .flex .check_list {
  margin-top: 2rem;
}
.product .flex .check_list li {
  margin: 0 !important;
  padding: 2.2rem 0 2.2rem 3.8rem;
  background-position: left top 2.3rem;
  background-size: 2.4rem auto;
  border-bottom: 1px solid rgb(0 0 0 / 0.1);
}
.product .flex .check_list li:last-of-type {
  border-bottom: none;
}
.product .flex .recommentpont {
  margin-top: 2rem;
  padding: 2.8rem 1rem 3.5rem 3.5rem;
  background: rgb(37 184 147 / 0.1);
  border-left: 0.2rem solid #25B893;
}
.product .flex .recommentpont dt {
  font-size: 1.6rem;
  font-weight: var(--medium);
}
.product .flex .recommentpont dd {
  font-size: 1.4rem;
  font-weight: var(--regular);
  margin-top: 2.6rem;
}
.product .flex .recommentpont li {
  position: relative;
  padding-left: 1.7rem;
}
.product .flex .recommentpont li::before {
  position: absolute;
  left: 0;
  top:  0.7rem;
  content: "";
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 100%;
  background: #25B893;
}
.product .flex .recommentpont li + li {
  margin-top: 1.7rem;
}
.product.col3 {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: calc(33.33% - (3rem * 2 / 3));
}
.product.col3 .flex {
  display: block;
  padding: 6.7rem 4rem 0 4rem;
}
.product.col3 .flex .media {
  width: 19rem;
  margin: 0 auto 7.4rem;
}
.product.col3 .flex .product_info {
  width: 100%;
}
.product.col3 .flex .product_info .maker {
  margin-bottom: 1rem;
}
.product.col3 .flex .product_info .ttl {
  font-size: 1.8rem;
}
.product.col3 .flex .product_info .price {
  margin-top: 1.6rem;
  font-size: 2.2rem;
}
.product.col3 .flex .check_list li {
  padding: 1.5rem 0 1.5rem 3.4rem;
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: var(--regular);
  background-size: 2.4rem auto;
  background-position: left top 1.3rem;
}
.product.col3 .flex .check_list {
  margin-top: 1.5rem;
}
.product.col3 .buton_area {
  background: none;
  padding: 1rem 4rem 3rem;
}
.product.col3 .buton_area .button {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .product .flex .media {
    position: relative;
    overflow: hidden;
    width: 36.2rem;
    aspect-ratio: 1/1;
  }
  .product .flex .media img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
  }
}
@media screen and (max-width: 767px) {
  .under_container {
    padding-top: 7rem;
    padding-bottom: 0;
  }
  .contents {
    box-shadow: none;
    border-radius: 0;
  }
  .product {
    width: calc(100% + 4rem) !important;
    margin: 0 -2rem !important;
    border: none;
    border-radius: 0 !important;
    border-top: 1px solid rgb(0 0 0 / 0.1);
  }
  .product .flex {
    display: block;
    padding: 5rem 2rem 3rem !important;
  }
  .product .flex .media,
  .product.col3 .flex .media {
    width: 29rem;
    margin: 0 auto 5.5rem;
  }
  .product .flex .product_info {
    width: 100%;
  }
  .product .flex .product_info .maker {
    font-size: 1.2rem;
    margin-bottom: 1.2rem;
  }
  .product .flex .product_info .ttl {
    font-size: 1.6rem;
  }
  .product .flex .product_info .data {
    margin-top: 1.7rem;
    font-size: 1.1rem;
  }
  .product .flex .product_info .data p + p {
    margin: 0;
  }
  .product .flex .product_info .price {
    margin-top: 2.2rem;
    font-size: 2.2rem;
  }
  .product .flex .product_info .price small {
    font-size: 1rem;
  }
  .product .flex .product_info .openprice {
    font-size: 1rem;
  }
  .product .flex .check_list li {
    padding: 1.8rem 0 1.8rem 3.1rem !important;
    background-position: left top 1.7rem !important;
    background-size: 2.1rem auto !important;
    font-weight: var(--regular);
  }
  .product.col3 .flex .check_list li {
    font-size: 1.3rem;
  }
  .product .flex .recommentpont {
    padding: 2.6rem 1rem 3.4rem 2.6rem;
  }
  .product .flex .recommentpont dt {
    font-size: 1.4rem;
  }
  .product .flex .recommentpont dd {
    margin-top: 2rem;
    font-size: 1.3rem;
  }
  .product .buton_area {
    padding: 2.6rem 2rem;
    border-radius: 0;
  }
  .product.col3 {
    display: block;
  }
  .product.col3 .buton_area {
    padding: 0 2rem 0;
  }
  .product::before {
    top: -2rem !important;
    left: 2rem !important;
    width: 4rem !important;
    height: 4rem !important;
    font-size: 1.4rem !important;
  }
  .product .flex .product_info .sku,
  .product .flex .product_info .spec {
    font-size: 1.1rem;
    font-weight: var(--regular);
  }
}

/* voice_flex -------------------------- */
.voice_flex {
  display: flex;
  gap: 3.6rem;
}
.voice_flex .voice_card {
  width: calc(50% - 1.8rem);
  margin: 0;
  padding: 5rem 5rem 0;
  box-shadow: none;
  border: 1px solid rgb(0 0 0 / 0.1);
  overflow: hidden;
}
.voice_flex .voice_card .txt {
  font-size: 1.6rem;
}
.voice_flex .voice_card .user {
  margin-top: 2.6rem;
  font-size: 1.4rem;
  font-weight: var(--regular);
}
.voice_bottom {
  margin: 3rem -5rem 0;
  background: #F6F6F6;
  padding: 3.6rem 5rem 3.9rem;
}
.voice_card::after {
  content: none;
}
.voice_bottom .button {
  width: 100%;
  margin-top: 2.4rem;
}
.voice_product {
  display: flex;
  gap: 2.2rem;
  align-items: center;
}
.voice_product figure {
  position: relative;
  overflow: hidden;
  width: 7.7rem;
  min-width: 7.7rem;
  aspect-ratio: 1/1;
}
.voice_product figure img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.voice_flex .voice_product .txt {
  margin-bottom: 1rem;
  font-size: 1.2rem;
  color: rgb(0 0 0 / 0.4);
}
.voice_flex .voice_product .ttl {
  font-size: 1.6rem;
  font-weight: var(--medium);
}
.voice_flex .voice_product .sku {
  margin-top: 1rem;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  font-weight: var(--regular);
}
.voice_info {
  gap: 2.4rem;
  align-items: flex-start;
}
.voice_info figure {
  width: 6rem;
  min-width: 6rem;
  height: 6rem;
}
.voice_info .ttl {
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .voice_content.contents {
    padding-bottom: 0;
    box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
  }
  .voice_content .contents_ttl {
    margin-bottom: 3.8rem;
  }
  .voice_flex {
    display: block;
  }
  .voice_flex .voice_card {
    width: calc(100% + 4rem);
    padding: 3.7rem 2rem 0 8.5rem;
    margin: 0 -2rem;
    border-radius: 0;
    border: none;
  }
  .voice_flex .voice_card:first-of-type {
    border-top: 1px solid rgb(0 0 0 / 0.1);
  }
  .voice_flex .voice_card .txt {
    font-size: 1.2rem;
    font-weight: var(--regular);
  }
  .voice_flex .voice_card .user {
    margin-top: 2.3rem;
    font-size: 1.2rem;
    font-weight: var(--regular);
  }
  .voice_info {
    text-align: left;
  }
  .voice_info .ttl {
    font-size: 1.4rem;
  }
  .voice_info figure {
    top: 3.2rem;
    left: 2rem;
    width: 5rem;
    min-width: 5rem;
    height: 5rem;
    transform: unset;
  }
  .voice_bottom {
    margin: 2.9rem -2rem 0 -8.5rem;
    padding: 3rem 2rem;
  }
  .voice_product figure {
    width: 6.7rem;
    min-width: 6.7rem;
  }
  .voice_product {
    gap: 2.5rem;
  }
  .voice_flex .voice_card .txt {
    font-size: 1.1rem;
  }
  .voice_flex .voice_product .ttl {
    font-size: 1.3rem;
  }
  .voice_flex .voice_product .sku {
    font-size: 1rem;
  }
  .voice_bottom .button {
    margin-top: 2rem;
  }
}



.ac_links {
  display: flex;
  gap: 3.4rem;
  margin-bottom: 6rem;
}
.ac_links li {
  width: calc(33.33% - (3.4rem * 2 / 3));
}
.ac_links li a {
  position: relative;
  display: block;
  font-size: 1.6rem;
  padding: 0 0 3rem;
  border-bottom: 1px solid rgb(0 0 0 / 0.1);
}
.ac_links li a::after {
  position: absolute;
  top: 0.2rem;
  right: 0;
  content: "";
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  border-right: 1px solid var(--color-green);
  border-top: 1px solid var(--color-green);
  transform: rotate(135deg);
}
.point_block {
  position: relative;
  border: 1px solid rgb(0 0 0 / 0.1);
  border-radius: 1rem;
  border-top-left-radius: 0;
  overflow: hidden;
}
.point_block::before {
  position: absolute;
  content: "";
  display: block;
  width: 6.3rem;
  height: 6.3rem;
  background: var(--color-gr);
  transform: rotate(45deg);
  top: -3.5rem;
  left: -3.5rem;
}
.point_block + .point_block {
  margin-top: 7rem;
}
.point_block .txt_area {
  width: 50.6rem;
  padding: 7.5rem 7.5rem 6rem 7rem;
  min-height: 78rem;
}
.point_block .txt_area h3 {
  font-size: 2.2rem;
  margin-bottom: 3.7rem;
}
.point_block .txt_area .txt {
  font-weight: var(--regular);
  line-height: 1.75;
}
.point_block .txt_area .list {
  margin-top: 2.3rem;
}
.point_block .txt_area li {
  display: flex;
  align-items: flex-start;
  gap: 3.5rem;
  padding: 3rem 0;
  border-bottom: 1px solid rgb(0 0 0 / 0.1);
}
.point_block .txt_area li:last-of-type {
  border-bottom: none;
}
.point_block .txt_area li .num {
  margin-top: -0.7rem;
  width: 4rem;
  min-width: 4rem;
  border-bottom: 0.3rem solid var(--color-green);
  font-size: 3.4rem;
  font-family: var(--font-en);
  font-weight: var(--semibold);
  letter-spacing: -0.02em;
  color: var(--color-green);
  text-align: center;
}
.point_block .txt_area dt {
  margin-bottom: 2rem;
  font-size: 1.6rem;
  letter-spacing: 0.04em;
}
.point_block .txt_area dd {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.57;
}
.point_block .bg_img {
  position: absolute;
  top: 0;
  right: 0;
  overflow: hidden;
  width: 47.6rem;
  height: calc(100% - 39rem);
}
.point_block .bg_img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.point_banner_links {
  position: relative;
  z-index: 2;
  margin: 0 -7rem;
  padding: 7.6rem 0 8rem;
  background: var(--color-gr);
  color: var(--color-white);
}
.point_banner_links h3 {
  margin-bottom: 4.6rem;
  text-align: center;
  font-size: 2.2rem;
}
.point_banner_links .list {
  display: flex;
  justify-content: center;
}
.point_banner_links .list li {
  text-align: center;
  width: 27.3rem;
  border-right: 1px solid rgb(255 255 255 / 0.35);
}
.point_banner_links .list li:last-of-type {
  border: none;
}
.point_banner_links .list li dt {
  margin-bottom: 2.2rem;
  font-size: 1.6rem;
  margin-bottom: 2.2rem;
  letter-spacing: 0.04em;
  font-weight: var(--medium);
}
.point_banner_links .list li dd {
  font-size: 1.4rem;
  font-weight: var(--regular);
  letter-spacing: 0.04em;
  line-height: 1.57;
}
.point_banner_links .list li .button {
  margin: 2.6rem auto 0;
  width: 21.3rem;
  background: rgb(255 255 255 / 0.15);
  height: 4.8rem;
  font-size: 1.4rem;
}
.point_banner_links .list li .button::after {
  content: none;
}
.txt_end {
  max-width: 61.6rem;
  text-align: center;
  margin: 6.6rem auto 0;
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 1.75;
}
@media screen and (min-width: 768px) {
  .point_banner_links .list li {
    position: relative;
    padding-bottom: 7.4rem;
  }
  .point_banner_links .list li .button {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
  }
}
@media screen and (max-width: 767px) {
  .contents.point_content {
    padding-bottom: 5.5rem;
    box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
  }
  .ac_links {
    display: block;
    margin: 0 0 4rem;
  }
  .ac_links li {
    width: 100%;
  }
  .ac_links li:last-of-type a {
    border-bottom: none;
  }
  .ac_links li a {
    padding: 2.3rem 0;
    font-size: 1.3rem;
  }
  .ac_links li a::after {
    width: 1rem;
    height: 1rem;
    top: 50%;
    transform: translateY(-50%) rotate(135deg);
  }
  .point_content .contents_ttl {
    margin-bottom: 2.3rem;
  }
  .point_block {
    border-radius: 0;
    margin: 0 -2rem;
    border-right: none;
    border-left: none;
  }
  .point_block .txt_area {
    width: 100%;
    padding: 5rem 2rem 1rem;
    min-height: auto;
  }
  .point_block .bg_img {
    display: block;
    top: auto;
    left: auto;
    position: relative;
    width: calc(100% + 4rem);
    height: 20rem;
    margin: 0 -2rem;
  }
  .point_block .txt_area h3 {
    text-align: center;
    font-size: 1.6rem;
    margin-bottom: 3rem;
  }
  .point_block .txt_area .txt {
    font-size: 1.3rem;
    font-weight: var(--regular);
    line-height: 1.75;
    margin-bottom: 3.3rem;
  }
  .point_block .txt_area .list {
    margin: 0;
  }
  .point_block .txt_area li {
    padding: 3.4rem 0;
    gap: 2.4rem;
  }
  .point_block .txt_area li .num {
    font-size: 2.5rem;
    width: 3rem;
    min-width: 3rem;
  }
  .point_block .txt_area dt {
    font-size: 1.4rem;
    margin-bottom: 1.6rem;
    font-weight: var(--bold);
  }
  .point_block .txt_area dd {
    font-size: 1.2rem;
    line-height: 1.66;
    letter-spacing: -0.04em;
  }
  .point_banner_links {
    margin: 0;
    padding: 5.6rem 2rem 5rem;
  }
  .point_banner_links h3 {
    font-size: 1.5rem;
    margin-bottom: 3.4rem;
    line-height: 1.73;
  }
  .point_banner_links .list {
    display: block;
  }
  .point_banner_links .list li {
    width: 100%;
    border-right: none;
    padding: 3rem 0;
    border-top: 1px solid rgb(255 255 255 / 0.35) !important;
  }
  .point_banner_links .list li dt {
    font-size: 1.5rem;
    margin-bottom: 1.3rem;
  }
  .point_banner_links .list li dd {
    font-size: 1.1rem;
  }
  .point_banner_links .list li .button {
    margin-top: 2.4rem;
    width: 100%;
    height: 4.4rem;
    font-size: 1.2rem;
  }
  .point_block + .point_block {
    margin-top: 5rem;
  }
  .txt_end {
    margin-top: 4.6rem;
    font-size: 1.3rem;
    font-weight: var(--regular);
    text-align: left;
  }
}


.image_link2 {
  overflow: hidden;
  display: flex;
  margin-top: 7rem;
  background: var(--color-white);
  border-radius: 1rem;
  border: 0.3rem solid var(--color-green);
  box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
}
.image_link2 > * {
  width: 50%;
}
.image_link2 .right {
  position: relative;
  overflow: hidden;
  height: 31.6rem;
}
.image_link2 .right img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image_link2 .left {
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 0 9rem;
}
.image_link2 .left .txt {
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.image_link2 .left .txt small {
  display: block;
  font-size: 1.4rem;
  margin-bottom: 1.7rem;
  font-weight: var(--regular);
  letter-spacing: 0.004em;
}
.image_link2 .left .button {
  margin-top: 3.2rem;
  width: 28.7rem;
}
@media screen and (max-width: 767px) {
  .image_link2 {
    flex-direction: column-reverse;
    margin: 6rem 2rem 7rem;
  }
  .image_link2 .right {
    width: 100%;
    height: 18rem;
  }
  .image_link2 .left {
    width: 100%;
    padding: 3rem 0 4rem;
    text-align: center;
  }
  .image_link2 .left .txt {
    font-size: 1.8rem;
  }
  .image_link2 .left .txt small {
    margin-bottom: 1.2rem;
    font-size: 1.2rem;
  }
  .image_link2 .left .button {
    margin: 2.6rem auto 0;
  }
}


.list_links picture {
  position: relative;
  display: block;
  width: 100%;
  height: 70rem;
  overflow: hidden;
}
.list_links picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.list_links .box {
  position: relative;
  margin: -19.7rem auto 0;
  max-width: 116.2rem;
  padding: 7.4rem 0 7.1rem;
  border-radius: 1rem;
  background: var(--color-white);
  box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
  text-align: center;
}
.list_links .box .lead {
  margin-bottom: 3.9rem;
  font-size: 2.5rem;
}
.list_links .box .txt {
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 1.75;
}
.list_links .box .buttons {
  margin-top: 4.7rem;
}
.list_links .box .buttons .button {
  width: 28.7rem;
}
.banner_links {
  padding-top: 28.6rem;
  padding-bottom: 15rem;
  margin-top: -22rem;
  background: #FFF5E0;
}
@media screen and (max-width: 767px) {
  .banner_links {
    padding-bottom: 9rem;
    margin-top: -25rem;
  }
  .list_links picture {
    height: 50rem;
  }
  .list_links .box {
    padding: 4.8rem 3rem 4rem;
    margin: -5rem 2rem 0;
  }
  .list_links .box .lead {
    font-size: 1.6rem;
    margin-bottom: 2.8rem;
  }
  .list_links .box .txt {
    font-size: 1.3rem;
    text-align: left;
  }
  .list_links .box .buttons {
    margin-top: 2.7rem;
  }
}


#price_cost:not(.df_under) .wrap + .wrap {
  padding-top: 16.3rem;
}
#price_cost .wrap > h2 {
  position: relative;
  font-size: 2.4rem;
  color: var(--color-green);
  padding-bottom: 1.5rem;
  margin-bottom: 2.5rem;
}
#price_cost .wrap > h2::before, 
#price_cost .wrap > h2::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #E5E5E5;
}
#price_cost .wrap > h2::before {
  width: 13.4rem;
  height: 2px;
  background: var(--color-green);
}
#price_cost .wrap > h2 + p {
  font-size: 1.6rem;
  line-height: 1.75;
  font-weight: var(--regular);
  margin: 3rem 0;
}
#price_cost .wrap .point_block {
  margin-top: 6.6rem;
}
#price_cost .wrap .point_block .bg_img {
  height: 79.6rem;
}
#price_cost .wrap .point_block .txt_area {
  min-height: 79.6rem;
}
#price_cost .wrap .point_block .txt_area h3 {
  color: var(--color-green);
  margin-bottom: 3rem;
}
#price_cost .wrap .point_block .txt_area .txt {
  font-size: 2.4rem;
  font-weight: var(--medium);
  line-height: 1.5;
}
#price_cost .wrap .point_block .product_wrap {
  gap: 1.1rem;
  padding: 4.2rem 1.7rem 4.7rem;
}
#price_cost .wrap .point_block .product_wrap .product::before {
  content: none;
}
#price_cost .wrap .point_block .product_wrap .product.col3 {
  width: calc(33.33% - (1.1rem * 2 / 3));
  border: none;
  box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
}
#price_cost .wrap .point_block .product_wrap .product.col3 .flex {
  padding-left: 2.6rem;
  padding-right: 2.1rem;
  padding-bottom: 3.1rem;
}
#price_cost .wrap .point_block .point_banner_links {
  padding: 2.8rem 0;
  margin: 0;
}
#price_cost .wrap .point_block .point_banner_links .button {
  margin: 0 auto;
  background: rgb(255 255 255 / 0.15);
}
#price_cost .ta_center {
  text-align: center;
}
#price_cost h3.ttl_h3 {
  color: var(--color-green);
  font-size: 2.4rem;
  letter-spacing: 0.05em;
}
#price_cost .df_ac_links2 {
  max-width: 85rem;
  margin-left: auto;
  margin-right: auto;
  padding-top: 5rem;
  padding-left: 9rem;
  padding-bottom: 5rem;
}
#price_cost .note_wrap {
  text-align: center;
  margin: 6rem auto 0;
  max-width: 85rem;
  border-radius: 1rem;
  padding: 4.5rem 4rem;
  border: 0.3rem solid var(--color-green);
}
#price_cost .note_wrap h3 {
  font-size: 2.4rem;
  color: var(--color-green);
  margin: 0 0 3.5rem;
}
#price_cost .note_wrap .button {
  margin: 2.5rem auto 0;
}
#price_cost .note_wrap .catch {
  margin-bottom: 1.9rem;
  text-align: center;
}
#price_cost .note_wrap .catch span {
  position: relative;
  padding: 0 1.5rem;
}
#price_cost .note_wrap .catch span::before,
#price_cost .note_wrap .catch span::after {
  position: absolute;
  top: 50%;
  content: "";
  display: block;
  width: 1px;
  height: 1.6rem;
  background: #707070;
}
#price_cost .note_wrap .catch span::before {
  transform: translateY(-50%) rotate(-15deg);
  left: 0;
}
#price_cost .note_wrap .catch span::after {
  transform: translateY(-50%) rotate(15deg);
  right: 0;
}
#price_cost .card_list2 {
  max-width: 90.4rem;
  margin-left: auto;
  margin-right: auto;
}
#price_cost .card_list2 p {
  font-size: 1.4rem;
  font-weight: var(--bold);
  text-align: center;
  padding: 0 1.5rem 4rem;
}
#price_cost .wrap.pt_70 {
  padding-top: 7rem !important;
}
@media screen and (max-width: 767px) {
  #price_cost .wrap > h2 {
    font-size: 1.6rem;
  }
  #price_cost .wrap > h2 + p {
    font-size: 1.3rem;
    margin: 2.4rem 0px;
  }
  #price_cost .wrap .point_block .bg_img {
    height: 20rem;
  }
  #price_cost .wrap .point_block .txt_area .txt {
    font-size: 1.6rem;
    text-align: center;
    line-height: 1.75;
  }
  #price_cost .wrap .point_block .txt_area {
    min-height: auto;
  }
  #price_cost .wrap .point_block .product_wrap {
    gap: 0;
    padding: 0 2rem;
  }
  #price_cost .wrap .point_block .product_wrap .product.col3 {
    box-shadow: none;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }
  #price_cost .wrap .point_block .point_banner_links {
    padding: 2.8rem 2rem;
  }
  #price_cost:not(.df_under) .wrap + .wrap {
    padding-top: 5.5rem;
  }
  #price_cost .df_ac_links2 {
    padding-left: 2rem;
  }
  #price_cost .check_list li {
    line-height: 1.75;
  }
  #price_cost .note_wrap {
    padding: 2.7rem 1rem;
    margin-top: 7.5rem;
  }
  #price_cost .note_wrap h3 {
    font-size: 1.8rem;
    margin-bottom: 1.7rem;
  }
  #price_cost h3.ttl_h3 {
    font-size: 1.8rem;
  }
  #price_cost .note_wrap .catch {
    margin-bottom: 0.9rem;
    font-size: 1.3rem;
  }
  #price_cost .txt {
    font-size: 1.3rem;
  }
  #price_cost .wrap.pt_70 {
    padding-top: 4rem !important;
  }
  #price_cost .card_list2 p {
    font-size: 1.3rem;
  }

}

/* 202509 ランキング改修 --------------------------------- */
.ranking_re {
  padding-top: 0;
}
.under_container.old {
  display: none;
}
.ranking_re .contents {
  padding: 6rem 9rem 14rem;
}
.ranking_re .contents_ttl_ranking {
  position: relative;
  width: 74rem;
  padding: 0 7.8rem;
  margin: 0 auto 7.7rem;
  background-image: url(../img/common/ranking_ttl_left.png), url(../img/common/ranking_right.png);
  background-size: 6.3rem auto, 6.3rem auto;
  background-position: center left, center right;
  background-repeat: no-repeat;
  text-align: center;
}
.ranking_re .contents_ttl_ranking::before {
  position: absolute;
  left: 50%;
  top: -1rem;
  content: "";
  display: block;
  width: 13.7rem;
  height: 3.1rem;
  background: url(../img/common/ranking_ttl.png) center/contain no-repeat;
  transform: translateX(-50%);
}
.ranking_re .contents_ttl_ranking .ttl_h2 {
  font-size: 4.4rem;
  color: #B38A59;
  font-family: var(--font-ja-serif);
}
.ranking_re .contents_ttl_ranking .ttl_h2 strong {
  font-size: 6.9rem;
  padding-left: 0.6rem;
}
.ranking_re .contents_ttl_ranking .txt {
  font-weight: var(--regular);
  line-height: 1.75;
}
.ranking_re .product {
  padding: 0 3.4rem 6.4rem;
  border: 0.2rem solid var(--color-green);
  box-shadow: 0 0.2rem 0.6rem rgb(0 0 0 / 0.1);
}
.ranking_re .product + .product {
  margin-top: 10rem;
}
.ranking_re .product::before {
  top: -5rem;
  left: -3rem;
  width: 17.373rem;
  height: 16.717rem;
  border-radius: 0;
  content: "";
  border: none;
  background: url(../img/common/ranking_toilet_badge1.png) center/contain no-repeat;
}
.ranking_re .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_toilet_badge2.png);
}
.ranking_re .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_toilet_badge3.png);
}
.ranking_re .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_toilet_badge4.png);
}
.ranking_re .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_toilet_badge5.png);
}

/* 給湯器 */
.ranking_re.waterheater .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_waterheater_badge1.png);
}
.ranking_re.waterheater .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_waterheater_badge2.png);
}
.ranking_re.waterheater .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_waterheater_badge3.png);
}
.ranking_re.waterheater .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_waterheater_badge4.png);
}
.ranking_re.waterheater .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_waterheater_badge5.png);
}

/* エアコン */
.ranking_re.air-conditioner .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_air-conditioner_badge1.png);
}
.ranking_re.air-conditioner .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_air-conditioner_badge2.png);
}
.ranking_re.air-conditioner .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_air-conditioner_badge3.png);
}
.ranking_re.air-conditioner .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_air-conditioner_badge4.png);
}
.ranking_re.air-conditioner .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_air-conditioner_badge5.png);
}

/* キッチン */
.ranking_re.kitchen .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_kitchen_badge1.png);
}
.ranking_re.kitchen .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_kitchen_badge2.png);
}
.ranking_re.kitchen .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_kitchen_badge3.png);
}
.ranking_re.kitchen .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_kitchen_badge4.png);
}
.ranking_re.kitchen .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_kitchen_badge5.png);
}

/* 玄関ドア */
.ranking_re.door .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_door_badge1.png);
}
.ranking_re.door .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_door_badge2.png);
}
.ranking_re.door .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_door_badge3.png);
}
.ranking_re.door .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_door_badge4.png);
}
.ranking_re.door .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_door_badge5.png);
}

/* 洗面台 */
.ranking_re.vanity .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_vanity_badge1.png);
}
.ranking_re.vanity .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_vanity_badge2.png);
}
.ranking_re.vanity .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_vanity_badge3.png);
}
.ranking_re.vanity .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_vanity_badge4.png);
}
.ranking_re.vanity .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_vanity_badge5.png);
}

/* エコキュート */
.ranking_re.ecocute .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_ecocute_badge1.png);
}
.ranking_re.ecocute .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_ecocute_badge2.png);
}
.ranking_re.ecocute .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_ecocute_badge3.png);
}
.ranking_re.ecocute .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_ecocute_badge4.png);
}
.ranking_re.ecocute .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_ecocute_badge5.png);
}

/* 浴室 */
.ranking_re.bath .product:nth-of-type(1)::before {
  background-image: url(../img/common/ranking_bath_badge1.png);
}
.ranking_re.bath .product:nth-of-type(2)::before {
  background-image: url(../img/common/ranking_bath_badge2.png);
}
.ranking_re.bath .product:nth-of-type(3)::before {
  background-image: url(../img/common/ranking_bath_badge3.png);
}
.ranking_re.bath .product:nth-of-type(4)::before {
  background-image: url(../img/common/ranking_bath_badge4.png);
}
.ranking_re.bath .product:nth-of-type(5)::before {
  background-image: url(../img/common/ranking_bath_badge5.png);
}


.ranking_re .product_top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  margin: 0 -3.4rem 3.5rem;
  padding: 1.8rem 1.1rem 1.8rem 16.7rem;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  background: var(--color-lght-green);
}
.ranking_re .product_top .badges {
  display: flex;
  gap: 0.8rem;
  justify-content: flex-end;
  align-items: center;
  width: 29.2rem;
}
.ranking_re .product_top .badges li {
  width: 9.226rem;
}
.ranking_re .product_top .ttl_wrap {
  width: calc(100% - 2rem - 29.2rem);
}
.ranking_re .product_top .makers {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}
.ranking_re .product_top .makers figure {
  width: 9.6rem;
  mix-blend-mode: darken;
  margin-bottom: -1.4rem;
}
.ranking_re .product_top .makers .sku {
  font-size: 1.3rem;
  letter-spacing: 0.05em;
  font-weight: var(--regular);
}
.ranking_re .product_top .ttl_h3 {
  font-size: 3.9rem;
}
.ranking_re .product_middle {
  display: flex;
  gap: 3.4rem;
  align-items: flex-start;
}
.ranking_re .product_middle .product_media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1/1;
  width: 40rem;
}
.ranking_re .product_middle .product_media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ranking_re .product_middle .product_info {
  width: calc(100% - 3.4rem - 40rem);
}
.ranking_re .product_middle .product_info .txt {
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.86;
}
.ranking_re .product_middle .product_info .txt span {
  background: rgb(255 213 213 / 0.44);
}
.ranking_re .product_middle .kinou {
  position: relative;
  padding: 2.9rem 2.9rem 1.5rem;
  margin-top: 4.5rem;
  border: 1px solid var(--color-green);
  border-radius: 1rem;
}
.ranking_re .product_middle .kinou dt {
  position: absolute;
  left: 50%;
  top: -2.6rem;
  padding: 1rem 2.8rem 1rem 5.6rem;
  background: var(--color-white);
  font-size: 1.8rem;
  font-weight: var(--bold);
  color: #479A8E;
  transform: translateX(-50%);
  background-image: url(../img/common/ranking_kinou_left.png), url(../img/common/ranking_kinou_hand.png), url(../img/common/ranking_kinou_right.png);
  background-size: 2.15rem auto, 2.139rem auto, 2.15rem auto;
  background-position: center left, center left 2.8rem, center right;
  background-repeat: no-repeat;
}
.ranking_re .product_middle .kinou ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.ranking_re .product_middle .kinou li {
  padding: 0.5rem 0.8rem;
  font-size: 1.3rem;
  font-weight: 600;
  border-radius: 0.5rem;
  background: #C8C8C8;
  color: var(--color-white);
  letter-spacing: 0.04em;
}
.ranking_re .product_middle .kinou li.active {
  background: var(--color-green);
}
.ranking_re .product_bottom {
  margin-top: 4.4rem;
}
.ranking_re .product_bottom .price_wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-ja-serif);
  font-weight: var(--bold);
}
.ranking_re .product_bottom .price_wrap.retail_empty {
  justify-content: center;
}
.ranking_re .product_bottom .retail_price small {
  display: block;
  font-size: 1.8rem;
  line-height: 1;
  font-weight: var(--bold);
}
.ranking_re .product_bottom .retail_price span {
  font-size: 5.5rem;
  color: #469A8E;
  padding-right: 7rem;
  background: url(../img/common/ranking_arrow_green.png) center right/5.1rem auto no-repeat;
  font-weight: var(--bold);
  text-decoration: line-through;
}
.ranking_re .product .sale_price {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  min-width: max-content;
  font-weight: var(--bold);
}
.ranking_re .product .sale_price .off {
  position: relative;
  width: 11.5rem;
  min-width: 11.5rem;
  height: 11.5rem;
  border-radius: 100%;
  background: #E33772;
  font-size: 5.3rem;
  font-weight: var(--bold);
  color: var(--color-white);
  text-align: center;
  letter-spacing: -0.05em;
}
.ranking_re .product .sale_price .off small {
  font-size: 2.7rem;
  font-weight: var(--bold);
}
.ranking_re .product .sale_price .off small:last-of-type {
  display: block;
  font-size: 3.2rem;
  letter-spacing: 0;
  line-height: 0.5;
  opacity: 0.9;
  font-weight: var(--bold);
}
.ranking_re .product .sale_price .price > small {
  display: block;
  font-size: 1.8rem;
  line-height: 1;
}
.ranking_re .product .sale_price .price span {
  position: relative;
  color: #E33772;
  font-size: 10.3rem;
  line-height: 1;
}
.ranking_re .product .sale_price .price span small {
  font-size: 5.8rem;
  margin-left: -2rem;
}
.ranking_re .product .sale_price .price span sup {
  position: absolute;
  font-size: 1.8rem;
  right: 0;
  margin-top: 1.5rem;
  right: 0.2rem;
}
.ranking_re .product .product_middle .sale_price {
  justify-content: center;
  margin-top: 4rem;
  font-family: var(--font-ja-serif);
  font-weight: var(--bold);
}
.ranking_re .product_bottom .buttons {
  margin-top: 4.6rem;
}
.ranking_re .product_bottom .buttons .button {
  width: 41.1rem;
  height: 6rem;
  font-size: 2rem;
}
.ranking_re .product_bottom .buttons .button.button_og {
  background: var(--color-orange) url(../img/common/icon_mitumori.svg) center left 5rem/2.148rem auto no-repeat;
}
@media screen and (max-width: 767px) {
  .ranking_re {
    padding-top: 4rem;
    padding-bottom: 4.6rem;
  }
  .ranking_re .contents {
    padding: 7.4rem 2rem 8.8rem;
  }
  .ranking_re .contents_ttl_ranking {
    width: 100%;
    padding: 0;
    margin-bottom: 10rem;
    background: none;
  }
  .ranking_re .contents_ttl_ranking .ttl_h2 {
    font-size: 2.6rem;
    padding: 3rem 4rem 2rem;
    background-image: url(../img/common/ranking_ttl_left.png), url(../img/common/ranking_right.png);
    background-size: 3.4rem auto, 3.4rem auto;
    background-position: bottom 0.5rem left, bottom 0.5rem right;
    background-repeat: no-repeat;
    text-align: center;
    line-height: 0.9;
  }
  .ranking_re .contents_ttl_ranking .ttl_h2 strong {
    font-size: 4.8rem;
    padding-left: 0.5rem;
  }
  .ranking_re .contents_ttl_ranking .txt {
    margin-top: 2.5rem;
    font-size: 1.3rem;
  }
  .ranking_re .contents_ttl_ranking::before {
    width: 16.2rem;
    top: -0.5rem;
  }
  .ranking_re .product_wrap {
    display: block;
  }
  .ranking_re .product {
    width: 100% !important;
    margin: 0 !important;
    border-radius: 1rem !important;
    padding: 0 1.7rem 5.4rem;
  }
  .ranking_re .product + .product {
    margin-top: 10rem !important;
  }
  .ranking_re .product_top {
    position: relative;
    display: block;
    margin: 0 -1.7rem;
    padding: 4.6rem 1.7rem 5.4rem;
  }
  .ranking_re .product_top .ttl_wrap {
    width: 100%;
  }
  .ranking_re .product::before {
    left: 50% !important;
    top: -6.7rem !important;
    width: 10.858rem !important;
    height: 10.448rem !important;
    transform: translateX(-50%);
  }
  .ranking_re .product_top .makers {
    display: block;
  }
  .ranking_re .product_top .makers figure {
    width: 8.2rem;
    margin-bottom: -0.4rem;
    margin-left: -0.2rem;
  }
  .ranking_re .product_top .makers .sku {
    font-size: 1.1rem;
  }
  .ranking_re .product_top .ttl_h3 {
    margin-top: 0.8rem;
    font-size: 3.3rem;
  }
  .ranking_re .product_top .badges {
    position: absolute;
    width: auto;
    justify-content: center;
    left: 50%;
    bottom: -6.5rem;
    transform: translateX(-50%);
  }
  .ranking_re .product_top .badges li {
    width: 9.502rem;
  }
  .ranking_re .product_middle {
    margin-top: 9rem;
    flex-direction: column-reverse;
  }
  .ranking_re .product_middle .product_media {
    width: 100%;
  }
  .ranking_re .product_middle .product_info {
    width: 100%;
  }
  .ranking_re .product_middle .kinou {
    margin-top: 7.7rem;
    padding: 5rem 2.2rem 3.4rem;
  }
  .ranking_re .product_middle .kinou ul {
    gap: 1.1rem;
  }
  .ranking_re .product_middle .kinou dt {
    font-size: 2rem;
    white-space: nowrap;
  }
  .ranking_re .product_bottom {
    margin-top: 2.5rem;
  }
  .ranking_re .product_bottom .price_wrap {
    flex-direction: column;
    align-items: center;
    gap: 5rem;
  }
  .ranking_re .product_bottom .retail_price {
    position: relative;
  }
  .ranking_re .product_bottom .retail_price::after {
    position: absolute;
    left: 50%;
    bottom: -3.8rem;
    transform: translateX(-50%) rotate(90deg);
    content: "";
    width: 3.863rem;
    height: 2.792rem;
    background: url(../img/common/ranking_arrow_green.png) center/contain no-repeat;
  }
  .ranking_re .product_bottom .retail_price small {
    font-size: 1.3rem;
  }
  .ranking_re .product_bottom .retail_price span {
    font-size: 4.2rem;
    padding: 0;
    background: none;
  }
  .ranking_re .product .sale_price {
    gap: 0.6rem;
  }
  .ranking_re .product .sale_price .off {
    width: 6.3rem;
    min-width: 6.3rem;
    height: 6.3rem;
    font-size: 2.9rem;
  }
  .ranking_re .product .sale_price .off small {
    font-size: 1.4rem;
  }
  .ranking_re .product .sale_price .off small:last-of-type {
    font-size: 1.7rem;
  }
  .ranking_re .product .sale_price .price > small {
    font-size: 1.3rem;
  }
  .ranking_re .product .sale_price .price span {
    font-size: 5.6rem;
  }
  .ranking_re .product .sale_price .price span small {
    font-size: 3.2rem;
    margin-left: -1rem;
  }
  .ranking_re .product .sale_price .price span sup {
    font-size: 1rem;
    margin-top: 1rem;
  }
  .ranking_re .product .product_middle .sale_price {
    margin-top: 2.5rem;
  }
  .ranking_re .product_bottom .buttons {
    margin-top: 3.5rem;
  }
  .ranking_re .product_bottom .buttons .button {
    height: 4.7rem;
    width: 100%;
    font-size: 1.2rem;
  }
  .ranking_re .product_bottom .buttons .button.button_og {
    background-size: 1.8rem auto;
  }
}