@charset "UTF-8";
/* animation CSS */
@keyframes shine {
  0% {
    left: -100%;
  }
  10% {
    left: 125%;
  }
  100% {
    left: 125%;
  }
}
@keyframes graph-anime {
  0% {
    stroke-dashoffset: 100;
  }
  100% {
    stroke-dashoffset: 9;
  }
}
@keyframes zoomIn {
  0% {
    transform: scale(0.8);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes opacity2 {
  0% {
    opacity: 0;
    filter: blur(20px);
  }
  30% {
    opacity: 0.3;
    filter: blur(20px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
  }
}
@keyframes slide-up {
  0% {
    transform: translateY(100px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes slide-down {
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes slide-left {
  0% {
    left: -100%;
  }
  100% {
    left: 0;
  }
}
@keyframes slide-right {
  0% {
    right: -100%;
  }
  100% {
    right: 0;
  }
}
@keyframes scale {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.9);
  }
}
@keyframes yurayura {
  0% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(-10px);
  }
}
@keyframes yurayura_s {
  0% {
    transform: translateY(5px);
  }
  100% {
    transform: translateY(-5px);
  }
}
@keyframes btn {
  0%, 50% {
    transform: translateX(0);
  }
  60% {
    transform: translateX(-15px);
  }
  70% {
    transform: translateX(15px);
  }
  80% {
    transform: translateX(-10px);
  }
  90% {
    transform: translateX(5px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes bgdown {
  0% {
    margin-top: 0;
  }
  100% {
    margin-top: 5%;
  }
}
.anime {
  animation-play-state: paused;
}
.anime.active {
  animation-play-state: running !important;
  opacity: 1;
}
.anime.fadeIn2 {
  opacity: 0;
  animation: opacity2 1.2s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.fadeIn2.zoomIn {
  animation: opacity2 1.2s forwards ease-in-out, zoomIn 0.3s forwards linear;
  animation-delay: 800ms;
  animation-play-state: paused;
}
.anime.fadeIn {
  opacity: 0;
  animation: opacity 0.8s forwards linear;
  animation-play-state: paused;
}
.anime.fadeIn.zoomIn {
  animation: opacity 0.8s forwards linear, zoomIn 0.3s forwards linear;
  animation-delay: 800ms;
  animation-play-state: paused;
}
.anime.fadeIn2 {
  opacity: 0;
  animation: opacity2 0.6s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.fadeIn2.zoomIn {
  animation: opacity2 0.6s forwards ease-in-out, zoomIn 0.3s forwards linear;
  animation-delay: 800ms;
  animation-play-state: paused;
}
.anime.zoomIn {
  animation: zoomIn 0.8s forwards linear;
  animation-play-state: paused;
}
.anime.slideUp {
  opacity: 0;
  animation: opacity 1.2s forwards linear, slide-up 0.8s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.slideDown {
  opacity: 0;
  animation: opacity 1.2s forwards linear, slide-down 0.8s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.slideLeft {
  opacity: 1 !important;
  animation: slide-left 0.5s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.slideRight {
  opacity: 1 !important;
  animation: slide-right 0.5s forwards ease-in-out;
  animation-play-state: paused;
}
.anime.delay {
  animation-delay: 100ms;
}
.anime.delay2 {
  animation-delay: 200ms;
}
.anime.delay3 {
  animation-delay: 300ms;
}
.anime.delay4 {
  animation-delay: 400ms;
}
.anime.delay5 {
  animation-delay: 500ms;
}
.anime.delay6 {
  animation-delay: 600ms;
}
.anime.delay7 {
  animation-delay: 700ms;
}
.anime.delay8 {
  animation-delay: 800ms;
}
.anime.delay9 {
  animation-delay: 900ms;
}
.anime.delay10 {
  animation-delay: 1000ms;
}
.anime.delay11 {
  animation-delay: 1100ms;
}
.anime.delay12 {
  animation-delay: 1200ms;
}
.anime.delay13 {
  animation-delay: 1300ms;
}
.anime.delay14 {
  animation-delay: 1400ms;
}
.anime.delay15 {
  animation-delay: 1500ms;
}
.anime.delay16 {
  animation-delay: 1600ms;
}
.anime.delay17 {
  animation-delay: 1700ms;
}
.anime.delay18 {
  animation-delay: 1800ms;
}
.anime.delay19 {
  animation-delay: 1900ms;
}
.anime.delay20 {
  animation-delay: 2000ms;
}
.anime.yurayura {
  animation: yurayura 3.5s alternate ease-in-out infinite;
}
.anime.yurayura_s {
  animation: yurayura_s 2.9s alternate ease-in-out infinite;
}

.s-cell .txt {
  width: 83%;
  right: 0%;
  left: 0%;
  top: 18%;
  margin: 0 auto;
}
.s-cell .item03 {
  width: 90%;
  right: 0%;
  top: 28%;
}
.s-cell .video_area {
  width: 80%;
  top: 31%;
  left: -11%;
  margin: 0 auto;
}
.s-cell .video_area .video {
  width: 100%;
  -webkit-mask-image: url("../img/mask2.svg");
  mask-image: url("../img/mask2.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.s-cell .video_area .video .inner {
  overflow: hidden;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.s-cell .video_area .video .inner .block_img {
  height: 100%;
  object-fit: cover;
  animation: yurayura 3.5s alternate-reverse ease-in-out infinite;
}
.s-cell .video_area .play_btn {
  cursor: pointer;
  position: absolute;
  z-index: 2;
  top: 54.9751%;
  left: 63.2428%;
  transform: translate(-50%, -50%);
  max-width: 207px;
  width: 26.7441%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
}
.s-cell .video_area .play_btn .text {
  display: flex;
  padding-left: 0.05em;
  font-size: 18px;
  line-height: 100%;
  letter-spacing: .05em;
  font-family: "itc-avant-garde-gothic-pro",sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 575px) {
  .s-cell .video_area .play_btn .text {
    font-size: 13px;
  }
}

.cells {
  padding: 30% 0;
  width: 85%;
  position: absolute;
}
.cells .cell {
  position: absolute;
}
.cells .cell.cell1 {
  width: 60%;
  z-index: 0;
}
.cells .cell.cell2 {
  width: 30%;
  z-index: 1;
}
.cells .cell.center {
  left: 0;
  right: 0;
  margin: 0 auto;
}
.cells.left {
  left: 3%;
}
.cells.right {
  right: 3%;
}
.cells.center {
  left: 0;
  right: 0;
  margin: 0 auto;
}

.cells01 {
  position: absolute;
  bottom: 12%;
}
.cells01 .cell1 {
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.cells01 .cell2 {
  right: 0;
}

.cells02 {
  position: absolute;
  bottom: 10%;
}
.cells02 .cell1 {
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.cells02 .cell2 {
  top: 10%;
  right: 0;
}

.shadow {
  filter: drop-shadow(10px 10px 10px #666);
  transform: translateZ(0);
}

.shine {
  /*キラッと光る基点とするためrelativeを指定*/
  position: relative;
  outline: none;
  overflow: hidden;
}
.shine::before {
  content: '';
  /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  display: block;
  top: 0;
  left: -75%;
  /*キラッと光る形状*/
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  transform: skewX(-25deg);
  animation: shine 3s linear infinite;
}

.graph {
  fill-opacity: 0;
  fill: white;
  transform-origin: center;
  transform: rotate(-90deg);
  width: 100%;
}

#graph {
  stroke: url(#gradient);
  stroke-width: 6%;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  animation: graph-anime 1s forwards linear;
  animation-play-state: paused;
}

/* common CSS */
.body {
  margin: 0;
}

#wrapper {
  font-size: 16px;
  max-width: 750px;
  margin: 0 auto;
  position: relative;
  overflow-x: hidden;
}

.section {
  position: relative;
}

.block_img {
  display: block;
  width: 100%;
}

.absolute {
  position: absolute;
}

.bg-black {
  background-color: #000;
}

/* 円グラフ　SVG */
.cv_btn {
  width: 90%;
  margin: 0 auto;
}
.cv_btn .block_img {
  animation: btn 2s ease-in-out infinite;
}
.cv_btn.btn01 {
  position: absolute;
  left: 0;
  right: 0;
}
.cv_btn.btn02 {
  bottom: 0;
  z-index: 10;
}

.toggle-wrap {
  width: 100%;
  background-color: #FFF;
  margin: 0 auto;
}

.s_offer .txt1 {
  top: 7%;
  width: 76%;
  right: 0;
  left: 0;
  margin: auto;
}
.s_offer .cv_btn .block_img {
  bottom: 36%;
  width: 91%;
  right: 0;
  left: 0;
  margin: auto;
}

.profile {
  position: relative;
  background-color: #000;
  bottom: 25%;
  padding-bottom: 60px;
}
.profile .top {
  top: -3%;
}
@media screen and (max-width: 430px) {
  .profile .top {
    top: -2%;
  }
}
.profile-box {
  text-align: right;
  width: 100%;
}
.profile-box p {
  position: relative;
  margin: 0;
  width: 95.2%;
  font-size: 14px;
  letter-spacing: 2.8px;
  height: 90px;
  overflow: hidden;
  line-height: 2.5;
  font-family: "Century Gothic", sans-serif;
}
@media screen and (max-width: 750px) {
  .profile-box p {
    letter-spacing: .5vw;
    font-size: 1.8vw;
  }
}
@media screen and (max-width: 560px) {
  .profile-box p {
    font-size: 11.5px;
    line-height: 2;
  }
}
.profile-box p img {
  position: relative;
  z-index: 2;
}
.profile-box p::before {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.profile-box .text {
  height: 660px;
  overflow: hidden;
}
@media screen and (max-width: 560px) {
  .profile-box .text {
    height: 400px;
  }
}
.profile-box .text img {
  width: 89%;
  padding: 2% 0 4%;
}
.profile-btn {
  position: absolute;
  bottom: 3%;
  width: 50%;
  left: 0;
  margin: auto;
  right: 0;
  padding-top: 450px;
  text-align: center;
  line-height: 30px;
  z-index: 10;
  cursor: pointer;
  transition: bottom 0.2s;
}
@media screen and (max-width: 560px) {
  .profile-btn {
    bottom: 6%;
    padding-top: 230px;
  }
}
.profile-btn img {
  width: 20% !important;
}
@media screen and (max-width: 560px) {
  .profile-btn img {
    width: 30% !important;
  }
}
.profile-btn.transparent {
  z-index: 5;
  background: -moz-linear-gradient(top, #000, transparent);
  background: -webkit-linear-gradient(top, #000, transparent);
  background: linear-gradient(to top, #000, transparent);
  width: 100%;
  right: 0;
  bottom: 0;
  margin: 0;
}
.profile .close {
  display: none;
}
.profile .active {
  background: none;
  bottom: -0.5%;
}
.profile .active .more {
  display: none;
}
.profile .active .close {
  display: block;
  margin: auto;
}
@media screen and (max-width: 750px) {
  .profile .active {
    bottom: -14.5vw;
  }
}
@media screen and (max-width: 560px) {
  .profile .active {
    bottom: -1%;
  }
}

/* 各セクション */
.s1 .fv-slides .inner {
  overflow: hidden;
  display: none;
  position: relative;
  transition: none;
}
.s1 .fv-slides .inner.first .sub {
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.s1 .fv-slides .inner.second {
  padding-top: 12%;
  padding-bottom: 48%;
}
.s1 .fv-slides .inner.second .fv_video {
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  z-index: 0;
  animation: bgdown 5s alternate ease-in-out infinite;
}
.s1 .fv-slides .inner.second .banner {
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 1;
}
.s1 .fv-slides .inner.second .woman {
  width: 100%;
  top: 9%;
  right: 0;
  margin: 0 auto;
  z-index: 2;
}
.s1 .fv-slides .inner.second .product {
  width: 85%;
  margin: 0 auto;
  position: relative;
  z-index: 4;
}
.s1 .fv-slides .inner.second .bottom {
  width: 100%;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 3;
}

.s2 {
  overflow: hidden;
  margin-top: -1%;
}
.s2 .cv_btn {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: 0 auto;
}
.s2 .cv_btn .text {
  top: 15%;
  right: 0;
  left: 0;
  margin: 0 auto;
}
.s2 .video_area {
  width: 90%;
  top: 23%;
  right: -13%;
}
@media screen and (max-width: 575px) {
  .s2 .video_area {
    top: 23%;
  }
}
.s2 .video_area video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-mask-image: url("../img/mask1.svg");
  mask-image: url("../img/mask1.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.s2 .video_area .play_btn {
  cursor: pointer;
  position: absolute;
  z-index: 2;
  top: 54.9751%;
  left: 51.2428%;
  transform: translate(-50%, -50%);
  max-width: 171px;
  width: 32.7441%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
  align-items: center;
  border: none;
}
.s2 .video_area .play_btn .text {
  display: flex;
  color: #000;
  padding-left: 0.05em;
  font-size: 18px;
  line-height: 100%;
  letter-spacing: .05em;
  font-family: "itc-avant-garde-gothic-pro",sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 575px) {
  .s2 .video_area .play_btn .text {
    font-size: 13px;
  }
}
.s2 .text01 {
  width: 80%;
  bottom: 5%;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.s2 .bottle {
  bottom: 15%;
  width: 50%;
  left: -47%;
  right: 0;
  margin: 0 auto;
}

.s3 {
  margin-top: -1%;
}

.s4 {
  margin-top: 12%;
}

.s5 .item01 {
  right: 7%;
  top: 1%;
  width: 24%;
}

.s6 .women01 {
  top: 0%;
}
.s6 .text02 {
  left: 9%;
  width: 17%;
  top: 2%;
}
.s6 .item02 {
  right: 0%;
  left: 0%;
  bottom: 8%;
  margin: auto;
  width: 52%;
}

.s7 .women02 {
  bottom: 7%;
  right: 0%;
  width: 56%;
}
.s7 .txt1 {
  right: 0%;
  left: 0%;
  bottom: 42%;
  margin: auto;
  width: 70%;
}

.s8 .txt1 {
  right: 0%;
  left: 0%;
  top: 2.7%;
  margin: auto;
  width: 70%;
}

.s9 .women03 {
  bottom: 0%;
  right: 0%;
  left: 0;
  margin: auto;
  width: 100%;
}
.s9 .txt1 {
  top: 3%;
  right: 0%;
  left: 0;
  margin: auto;
  width: 70%;
}

.s10 .txt1 {
  bottom: 33%;
  left: 5%;
  margin: auto;
  width: 60%;
}

.s12 .cells.center {
  left: -28%;
  right: 0;
  margin: initial;
}
.s12 .cells01 {
  position: absolute;
  top: 4%;
}
.s12 .cells {
  padding: 0;
  width: 85%;
  position: absolute;
}

.s13 .png01 {
  top: 13%;
  right: 0%;
  width: 90%;
}
.s13 .text03 {
  top: 0%;
  right: 0%;
  left: 0%;
  margin: auto;
  width: 83%;
}
.s13 .gif01, .s13 .gif02 {
  width: 43%;
  bottom: 3%;
}
.s13 .gif01 {
  left: 9%;
}
.s13 .gif02 {
  right: 9%;
}

.s14 .women04 {
  bottom: 10%;
  right: 0%;
  left: 0;
  margin: auto;
  width: 95%;
}

.s15 .text04 {
  top: 0.3%;
  right: 0%;
  left: 0%;
  margin: auto;
  width: 83%;
}

.s16 .gif03 {
  bottom: 4%;
  left: 0%;
  right: 0%;
  margin: auto;
  width: 55%;
}

.s17 .text05 {
  bottom: 0.3%;
  right: 0%;
  left: 0%;
  margin: auto;
  width: 42%;
}
.s17 .text06 {
  bottom: 27.3%;
  right: 0%;
  left: 0%;
  margin: auto;
  width: 50%;
}

.s_qa {
  background: url(../img/qa_bg.jpg) no-repeat;
  background-size: cover;
  position: relative;
  padding: 3% 0 10%;
}
.s_qa img {
  width: 100%;
}
.s_qa .qa_inner {
  top: 5%;
  padding: 0 20px;
}
.s_qa .q {
  position: relative;
  margin-top: 3%;
}
.s_qa .q::after {
  content: '';
  background: url(../img/plus.png) no-repeat;
  background-size: contain;
  width: 50px;
  height: 50px;
  display: block;
  position: absolute;
  bottom: 40%;
  right: 7%;
}
@media screen and (max-width: 575px) {
  .s_qa .q::after {
    width: 30px;
    height: 30px;
    bottom: 38%;
  }
}
.s_qa .ans {
  position: relative;
}
.s_qa .ans_btn {
  bottom: 14%;
  width: 70%;
}
.s_qa .on::after {
  content: '';
  background: url(../img/minus.png) no-repeat;
  background-size: contain;
}

#popUp {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  max-width: 750px;
  width: 100%;
  height: 100vh;
  padding: 10% 0%;
}
#popUp .video_close {
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(100, 100, 100, 0.8);
}
#popUp .video_wrap video {
  width: 90%;
  margin: 0 auto;
  display: block;
}

.cv_btn02 {
  position: fixed;
  bottom: 3%;
  right: 0;
  left: 0;
  z-index: 999;
}
.cv_btn02 .block_img {
  max-width: 575px;
  margin: 0 auto;
}

.footer {
  max-width: 750px;
  width: 100%;
  margin: 0 auto;
  font-family: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.footer span {
  color: #fff;
}
@media screen and (max-width: 575px) {
  .footer span {
    display: none;
  }
}
.footer .footer_link,
.footer .copyright {
  color: #000;
  padding: 0 10px 0;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 575px) {
  .footer .footer_link,
  .footer .copyright {
    padding: 0 2px 0;
  }
}
.footer .footer_link {
  font-size: 16px;
  text-decoration: none;
}
@media screen and (max-width: 575px) {
  .footer .footer_link:not(:nth-of-type(1)), .footer .footer_link:not(:nth-of-type(2)) {
    padding-top: 15px;
  }
}
@media screen and (max-width: 575px) {
  .footer .footer_link {
    font-size: 10px;
  }
}
.footer .link_box {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: 20px 30px 0;
}
@media screen and (max-width: 575px) {
  .footer .link_box {
    padding-top: 0;
    text-align: center;
    padding: 20px 15px 0;
  }
}
.footer .link_box:last-of-type {
  padding-bottom: 20px;
}
@media screen and (max-width: 575px) {
  .footer .link_box:last-of-type {
    padding-top: 0;
  }
}
.footer .copyright {
  text-align: center;
  margin: 0 auto;
  padding: 20px 0;
  color: #717171;
  line-height: 1.8;
  font-size: 12px;
}
@media screen and (max-width: 575px) {
  .footer .copyright {
    font-size: 10px;
  }
}
