@charset "utf-8";

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

body {
  min-width: unset;
  color: #4a4e6f;
}

sup {
  font-size: 75%;
  vertical-align: top;
  position: relative;
  top: -0.1em;
}

.is_fade {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.is_fade.move {
  transition: transform 2s ease;
}

/* 表示されたときに適用されるクラス */
.is_fade.show {
  opacity: 1;
  transform: translateY(0);
}

.is_fade.move.show {
  opacity: 1;
  transform: translateY(0);
  transform: translateY(100px);
}

/* 個別ページスタイル
---------------------------------------------------------- */
.kv {
  width: 100%;
  background: url("../images/main_bg.webp") center top repeat-y;
  background-size: 2400px;
  padding-bottom: 32px;
}

.kv .kv_area {
  max-width: 1100px;
  margin: 0 auto;
}

.kv .kv_pc,
.kv .kv_sp {
  position: relative;
}

.kv .kv_pc_item {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  animation: floatY 3s ease-in-out infinite alternate;
  max-width: 1100px;
}

.kv .kv_sp_item {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  animation: floatY 3s ease-in-out infinite alternate;
}

@keyframes floatY {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(20px);
  }
}

.kv_inner {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
}
.kv .detail {
  background: url("../images/detail_bg.webp") center no-repeat #ffffff;
  background-size: cover;
  padding: 40px 40px 40px 40px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  max-width: 1000px;
  margin: -160px auto 0 auto;
  border-radius: 24px;
}

.kv .detail .inset {
  display: flex;
  justify-content: center;
  align-items: center;
}

.kv .detail .joint-development-icon {
  margin-top: -86px;
}
.kv .detail .inset {
  padding: 0 0 0;
}
.kv .detail .inset .logo {
  width: 50%;
  text-align: center;
}

.kv .detail .inset .txt {
  width: 50%;
  text-align: left;
  line-height: 2;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
}

.kv .detail .inset .txt h2 {
  font-size: 28px;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
}

.kv .mizu01 {
  position: absolute;
  bottom: 180px;
  left: -10px;
  width: 60px;
  height: 60px;
  background: url("../images/mizu01.webp") center no-repeat;
  background-size: contain;
}

.kv .mizu02 {
  position: absolute;
  top: -40px;
  right: 24px;
  width: 60px;
  height: 60px;
  background: url("../images/mizu02.webp") center no-repeat;
  background-size: contain;
}

.kv .mizu03 {
  position: absolute;
  bottom: 0;
  right: -40px;
  width: 60px;
  height: 60px;
  background: url("../images/mizu03.webp") center no-repeat;
  background-size: contain;
}

@media only screen and (max-width: 767px) {
  .kv {
    background: #dbdeef;
  }

  .kv .detail {
    box-sizing: border-box;
    padding: 24px;
    max-width: 90%;
    margin: -100px auto 0 auto;
    border-radius: 24px;
  }

  .kv .detail .inset {
    flex-direction: column;
  }
  .kv .detail .joint-development-icon {
    width: 60px;
    margin: 0 auto;
    margin-top: -54px;
  }
  .kv .detail .inset .logo {
    width: 80%;
    padding: 16px 0;
  }

  .kv .detail .inset .txt h2 {
    text-align: center;
    font-size: 20px;
  }

  .kv .detail .inset .txt {
    width: 100%;
    font-size: 13px;
  }

  .kv .mizu02 {
    position: absolute;
    top: -40px;
    right: 10px;
    width: 40px;
    height: 40px;
    background: url(../images/mizu02.png) center no-repeat;
    background-size: contain;
  }
}

/* about
---------------------------------------------------------- */

#about {
  background: url("../images/about_bg.webp") top center repeat-y;
  background-size: cover;
}

#about .inner {
  box-sizing: border-box;
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 100px 400px 100px 80px;
}

#about .inner .lead {
  text-align: left;
  font-family: "Noto Serif JP", serif;
  line-height: 2;
  font-size: 16px;
  display: inline-block;
}

#about .inner .lead h2 {
  font-size: 36px;
  margin-bottom: 32px;
  letter-spacing: 0.05em;
}

#about .inner .lead h2 span {
  font-size: 20px;
  display: block;
}

#about .inner .logo {
  width: 160px;
  padding: 40px;
  margin: 0 auto;
}

#about .inner .image {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 320px;
}

#about .inner .side-image {
  position: absolute;
  left: 0;
  top: 40px;
  width: 18px;
  height: auto;
}

@media only screen and (max-width: 767px) {
  #about {
    overflow: hidden;
  }

  #about .inner {
    max-width: 90%;

    padding: 40px 24px 0 24px;
  }

  #about .inner .side-image {
    width: 12px;
  }

  #about .inner .lead {
    box-sizing: border-box;
    text-align: left;
    width: 100%;
    padding-left: 5%;
    margin: 0 auto;
    font-size: 14px;
    display: block;
  }

  #about .inner .lead h2 {
    font-size: 26px;
    margin-bottom: 24px;
  }

  #about .inner .lead h2 span {
    font-size: 16px;
  }

  #about .inner .image {
    position: relative;
    right: auto;
    bottom: auto;
    width: 70%;
    margin: 0 auto -100px auto;
  }

  #about .inner .logo {
    width: 120px;
    padding: 24px 44px 24px 24px;
    margin: 0 auto;
  }
}

/* points
---------------------------------------------------------- */

#points {
  background: url("../images/points_bg.webp") center bottom no-repeat #d8dcf5;
  background-size: 1600px auto;
  position: relative;
}

#points .point_header {
  padding: 80px 0;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  line-height: 2;
  font-size: 16px;
}

#points .point_header h2 {
  display: inline-block;
  font-family: "Noto Sans JP", serif;
  font-weight: 600;
  font-size: 24px;
  border-top: solid 2px #4a4e6f;
  border-bottom: solid 2px #4a4e6f;
  padding: 0 80px;
  margin-bottom: 24px;
}

#points .inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 0 80px 40px;
  position: relative;
}
#points .point_list {
  margin-left: 60px;
}
#points .point_list li {
  width: 380px;
  margin-bottom: 18px;
  box-sizing: border-box;
}

#points .bubble01 {
  position: absolute;
  top: -80px;
  left: -10px;
  width: 130px;
  height: 130px;
  background: url("../images/bubble01.webp") center no-repeat;
  background-size: contain;
}

#points .bubble02 {
  position: absolute;
  top: -300px;
  right: -60px;
  width: 130px;
  height: 130px;
  background: url("../images/bubble02.webp") center no-repeat;
  background-size: contain;
}

#points .bubble03 {
  position: absolute;
  bottom: 60px;
  right: -40px;
  width: 130px;
  height: 130px;
  background: url("../images/bubble03.webp") center no-repeat;
  background-size: contain;
}

@media screen and (min-width: 768px) {
  #points .point_list li:nth-child(1),
  #points .point_list li:nth-child(6) {
    margin-left: 100px;
  }

  #points .point_list li:nth-child(2),
  #points .point_list li:nth-child(5) {
    margin-left: 50px;
  }
}

@media only screen and (max-width: 767px) {
  #points {
    background: url(../images/points_bg.png) left center no-repeat #d8dcf5;
    background-size: cover;
    height: auto;
  }

  #points .point_header {
    padding: 60px 0 0;
    font-size: 13px;
  }

  #points .point_header h2 {
    font-size: 16px;
    padding: 0 16px;
    margin-bottom: 24px;
  }

  #points .inner {
    max-width: 80%;
    margin: 0 auto;
    padding: 60px 0 40px 0;
  }

  #points .point_list {
    margin: 0;
  }

  #points .point_list li {
    width: 90%;
    margin: 0 auto 12px auto;
  }

  #points .bubble01 {
    position: absolute;
    bottom: 180px;
    left: -70px;
    width: 80px;
    height: 80px;
    background: url("../images/bubble01.webp") center no-repeat;
    background-size: contain;
  }

  #points .bubble02 {
    position: absolute;
    top: -130px;
    right: -60px;
    width: 80px;
    height: 80px;
    background: url("../images/bubble02.webp") center no-repeat;
    background-size: contain;
  }

  #points .bubble03 {
    position: absolute;
    bottom: 60px;
    right: -40px;
    width: 80px;
    height: 80px;
    background: url("../images/bubble03.webp") center no-repeat;
    background-size: contain;
  }
}

/* beauty-habits
---------------------------------------------------------- */

#beauty-habits {
  background: url("../images/habits_bottom.svg") bottom no-repeat,
    url("../images/beauty-habits_bg.webp") center no-repeat;
  background-size: 100%, cover;
  padding: 80px 0 180px 0;
  font-family: "Noto Serif JP", serif;
  line-height: 2;
  font-size: 16px;
}

#beauty-habits .beauty-habits_header {
  text-align: center;
}

#beauty-habits .beauty-habits_header h2 {
  font-size: 32px;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 32px;
}
#beauty-habits .beauty-habits_header h2 span {
  font-size: 20px;
  display: block;
}

#beauty-habits .hot-bath {
  width: 100%;
  background: url("../images/image_hot-bath_bg.webp") center no-repeat;
  background-size: 1800px;
  padding: 24px 0;
}

#beauty-habits .beauty {
  width: 100%;
  background: url("../images/image_beauty_bg.webp") center no-repeat;
  background-size: 1800px;
  padding: 24px 0;
}

#beauty-habits .inset {
  width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#beauty-habits .beauty .inset {
  flex-direction: row-reverse;
}

#beauty-habits .inset .block {
  width: 47.5%;
  padding: 40px 0;
}

#beauty-habits .inset .block h3 {
  width: 80%;
  margin: 0 auto;
}

#beauty-habits .hot-bath .main_circle {
  padding-left: 15%;
  text-align: center;
}

#beauty-habits .beauty .main_circle {
  padding-right: 15%;
  text-align: center;
}

#beauty-habits .habits-list {
  font-family: "Noto Sans JP", serif;
  padding: 24px 0 24px 156px;
  text-align: left;
}
#beauty-habits .habits-list dt {
  font-weight: bold;
  color: #738dbf;
  font-size: 24px;
}
#beauty-habits .beauty .habits-list dt {
  color: #8f8bb8;
}
#beauty-habits .habits-list.item01 {
  background: url("../images/habits-list_01.webp") left no-repeat;
  background-size: 150px;
}
#beauty-habits .habits-list.item02 {
  background: url("../images/habits-list_02.webp") left no-repeat;
  background-size: 150px;
}
#beauty-habits .habits-list.item03 {
  background: url("../images/habits-list_03.webp") left no-repeat;
  background-size: 150px;
}
#beauty-habits .habits-list.item04 {
  background: url("../images/beauty-list_01.webp") left no-repeat;
  background-size: 170px;
}
#beauty-habits .habits-list.item05 {
  background: url("../images/beauty-list_02.webp") left no-repeat;
  background-size: 170px;
}
#beauty-habits .habits-list.item06 {
  background: url("../images/beauty-list_03.webp") left no-repeat;
  background-size: 170px;
}

@media screen and (min-width: 768px) {
  #beauty-habits .habits-list.item02 {
    margin-left: 40px;
  }
  #beauty-habits .habits-list.item05 {
    margin-left: -40px;
  }
}

@media only screen and (max-width: 767px) {
  #beauty-habits {
    padding: 80px 0 80px 0;
  }

  #beauty-habits .beauty-habits_header h2 {
    font-size: 26px;
    text-align: center;
  }

  #beauty-habits .beauty-habits_header h2 span {
    font-size: 16px;
  }

  #beauty-habits .beauty-habits_header {
    font-size: 13px;
    text-align: left;
    width: 90%;
    margin: 0 auto;
  }

  #beauty-habits .inset {
    width: 90%;
    margin: 0 auto;
    flex-direction: column;
  }

  #beauty-habits .beauty {
    padding-top: 0;
  }

  #beauty-habits .beauty .inset {
    flex-direction: column;
  }

  #beauty-habits .inset .block {
    width: 100%;
    padding: 12px 0 0 0;
    font-size: 13px;
  }

  #beauty-habits .habits-list {
    font-family: "Noto Sans JP", serif;
    padding: 24px 0 8px 108px;
    text-align: left;
  }

  #beauty-habits .habits-list dt {
    font-size: 16px;
  }

  #beauty-habits .habits-list dd {
    font-size: 12px;
  }

  #beauty-habits .habits-list.item01 {
    background: url("../images/habits-list_01.webp") left no-repeat;
    background-size: 100px;
  }
  #beauty-habits .habits-list.item02 {
    background: url("../images/habits-list_02.webp") left no-repeat;
    background-size: 100px;
  }
  #beauty-habits .habits-list.item03 {
    background: url("../images/habits-list_03.webp") left no-repeat;
    background-size: 100px;
  }

  #beauty-habits .habits-list.item04 {
    background: url("../images/beauty-list_01.webp") left no-repeat;
    background-size: 110px;
  }
  #beauty-habits .habits-list.item05 {
    background: url("../images/beauty-list_02.webp") left no-repeat;
    background-size: 110px;
  }
  #beauty-habits .habits-list.item06 {
    background: url("../images/beauty-list_03.webp") left no-repeat;
    background-size: 110px;
  }
}

/* read
---------------------------------------------------------- */

#read .inner {
  max-width: 1100px;
  padding: 0 0 120px 0;
  margin: 0 auto;
  background: url("../images/read_image.webp") top center no-repeat;
  background-size: 1100px auto;
}

#read .inner .read-txt {
  width: 60%;
  font-size: 28px;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  line-height: 2.5;
  padding: 120px 0 40px 0;
}

@media only screen and (max-width: 767px) {
  #read .inner {
    max-width: 90%;
    padding: 0;
    background: none;
  }
  #read .inner .read-txt {
    width: 100%;
    font-size: 18px;
    padding: 40px 0 16px 0;
  }
}

/* closing
---------------------------------------------------------- */

#closing {
  background: url("../images/closing_bg.webp") center no-repeat;
  background-size: cover;
  padding-bottom: 80px;
  position: relative;
}

#closing .inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 0;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  line-height: 2;
  font-size: 16px;
  position: relative;
}

#closing .inner .powder01 {
  position: absolute;
  top: -200px;
  left: -10px;
  width: 340px;
  height: 340px;
  background: url("../images/powder.webp") center no-repeat;
  background-size: contain;
}

#closing .inner h2 {
  font-size: 28px;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
  margin: 0 auto;
  line-height: 3;
  margin-bottom: 40px;
  text-align: center;
}

#closing .inner h2 img {
  max-width: 320px;
  display: block;
  margin: 0 auto;
}

#closing .suggest-method-txt {
  font-size: 20px;
}

#closing .method-wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto;
}

#closing .method-box {
  position: relative;
  box-sizing: border-box;
  background: url(../images/detail_bg.png) center no-repeat #ffffff;
  background-size: cover;
  padding: 24px 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
  max-width: 47.5%;
  border-radius: 24px;
}

#closing .method-box.box03 {
  max-width: 54%;
  margin: 0 auto;
}

#closing .method-box h3 {
  font-style: normal;
  text-align: center;
  padding: 16px;
  font-weight: bold;
  font-size: 18px;
}

#closing .method-box h3 span {
  font-family: "Pacifico", cursive;
  font-weight: 400;
  font-size: 32px;
  display: block;
}

#closing .method-box .inset {
  display: flex;
  align-items: center;
}

#closing .method-box .inset .image {
  box-sizing: border-box;
  width: 40%;
  padding: 0 5%;
}

#closing .method-box.box03 .inset .image {
  width: 50%;
}

#closing .method-box .inset .list {
  box-sizing: border-box;
  width: 55%;

  padding-right: 5%;
  text-align: left;
}

#closing .method-box.box03 .inset .list {
  width: 45%;
}

#closing .method-box .inset .list li {
  padding: 8px 0;
  font-family: "Noto sans JP", serif;
  font-size: 16px;
  font-weight: 500;
}

#closing .method-box.box01::before {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background: url("../images/icon_morning.webp") center no-repeat;
  background-size: contain;
  top: -20px;
  left: 50%;
  margin-left: -20px;
}
#closing .method-box.box01 h3 {
  color: #7ea0c7;
}

#closing .method-box.box02::before {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background: url("../images/icon_night.webp") center no-repeat;
  background-size: contain;
  top: -20px;
  left: 50%;
  margin-left: -20px;
}
#closing .method-box.box02 h3 {
  color: #7685aa;
}

#closing .method-box.box03::before {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background: url("../images/icon_relax.webp") center no-repeat;
  background-size: contain;
  top: -20px;
  left: 50%;
  margin-left: -20px;
}
#closing .method-box.box03 h3 {
  color: #8a76a8;
}

@media only screen and (max-width: 767px) {
  #closing .inner {
    max-width: 90%;
    margin: 0 auto;
    padding: 80px 0 60px 0;
  }

  #closing .inner h2 {
    font-size: 16px;
    margin-bottom: 24px;
  }

  #closing .inner h2 img {
    max-width: 200px;
  }

  #closing .suggest-method-txt {
    font-size: 13px;
  }

  #closing .method-box {
    max-width: 90%;
    margin: 0 auto;
    padding: 16px 6px;
    border-radius: 16px;
  }

  #closing .method-box.box03 {
    max-width: 90%;
  }

  #closing .method-box h3 {
    font-size: 13px;
    padding-bottom: 8px;
  }

  #closing .method-box h3 span {
    font-size: 20px;
  }

  #closing .method-box .inset .image,
  #closing .method-box.box03 .inset .image {
    width: 35%;
    padding: 0 2%;
  }

  #closing .method-box .inset .list,
  #closing .method-box.box03 .inset .list {
    width: 60%;
    margin: 0;
    padding-right: 0;
  }

  #closing .method-box .inset .list li {
    font-size: 13px;
  }
}

/* item
---------------------------------------------------------- */

#item .item-photo {
  max-width: 700px;
  margin: 0 auto;
  padding: 80px 24px 0 24px;
}

#item .information {
  max-width: 400px;
  margin: 0 auto 80px auto;
}

#item .item-name {
  font-family: "Noto Serif JP", serif;
  border-bottom: solid 1px #4a4e6e;
  text-align: center;
  font-size: 20px;
  padding: 8px;
}

#item .spec {
  text-align: center;
  padding: 8px;
}

#item .spec span {
  display: inline-block;
  border: solid 1px #4a4e6e;
  padding: 2px 8px;
  margin: 0 8px;
}

#item .all-ingredients {
  font-size: 14px;
}

@media only screen and (max-width: 767px) {
  #item .information {
    max-width: 90%;
  }

  #item .item-name {
    font-size: 16px;
  }

  #item .all-ingredients {
    font-size: 11px;
  }
}
