:root {
  --cyan: #9FD9E2;
  --blue: #7AB4BE;
  --white-cyan: #E9EDF1;
  --gray: #707070;
  --black: #333333;
  --white-gray: #EDEDED;
  --border: #959597;
  --footer: #E6E4E9;
  --close: #96B5BE;
}
/* 共通 -------------------------------------------------------------- */
body {
  margin: 0;
  font-size: 14px;
  color: var(--black);
  font-family : YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "メイリオ", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow: hidden;
}
.is-sp {
  display: none;
}
.is-pc {
  display: inline;
}
@media screen and (max-width:768px) {
  body p, body div {
    font-size: 13px;
    letter-spacing: 0;
  }
  .is-sp {
    display: inline;
  }
  .is-pc {
    display: none;
  }
}
/* ボタン -------------------------------------------------------------- */
.btn-cart {
  color: #fff;
  line-height: 1;
  text-align: center;
  background-color: var(--cyan);
  padding: 18px 0;
  border-radius: 32px;
  display: block;
  font-size: 16px;
  font-weight: bold;
}
.btn-cart img {
  width: 20px;
  height: 17px;
  margin-right: 10px;
}
.btn-video {
  display: flex;
  padding: 17px;
  border-radius: 28px;
  border: solid 1px var(--gray);
  max-width: 265px;
  margin: 0 auto;
  font-size: 14px;
  align-items: center;
  justify-content: center;
  font-weight: bold;
}
.btn-video img {
  width: 14px;
  height: 14px;
  margin-right: 3.5px;
}
a:hover, button:hover {
  opacity: .7;
}
.icon-arrow_right:before {
  color: #969698;
}
@media screen and (max-width: 768px) {
  .btn-cart {
    font-size: 14px;
    padding: 23px 0;
  }
  .btn-video {
    padding: 11.5px;
    border-radius: 19px;
    font-size: 9px;
    max-width: 176.5px;
  }
}
/* -------------------------------------------------------------- */
.heading-1 {
  line-height: 1;
}
.heading-1 img {
  height: 23px;
  margin-bottom: 10px;
}
.heading-sub {
  font-size: 24px;
  font-weight: bold;
}
.heading-details {
  margin-top: 34px;
}
.heading-details {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .heading-1 img {
    height: 16.5px;
  }
  .heading-sub {
    font-size: 18.5px;
  }
  .heading-sub + .heading-details {
    margin-top: 20px;
  }
}
/* ヘッダー -------------------------------------------------------------- */
.header {
  margin: 39px 49px 0;
  background-image: url(../images/main_pc.png);
  background-size: contain;
  background-position: center;
  background-position: top;
  height: calc(100vw / 1.977);
  position: relative;
}
.header-heading {
  position: absolute;
  left: 86px;
  top: calc(50% - 185px + 26px);
  transform: translateY(-50%);
  width: 343px;
}
.header-txt {
  position: absolute;
  left: 86px;
  top: calc(50% + (78px / 2));
  transform: translateY(-50%);
}
.header .btn-cart {
  margin-top: 25px;
  width: 280px;
}
.header-txt-point {
  width: 344px;
  margin-bottom: 18px;
}
.header-txt-detail {
  font-size: 16px;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .header {
    padding: 0;
    background-position: right top;
    background-size: cover;
    margin: 0;
    background-image: url(../images/main_sp.png);
    height: calc(100vw / 0.79872);
  }
  .header-heading {
    width: 223.5px;
    top: 30.5px;
    left: 25.5px;
  }
  .header-txt {
    top: calc(100vw * 0.875);
    left: 20px;
    transform: translateY(-12%);
    width: calc(100% - 40px);
  }
  .header-txt-point {
    width: 296.5px;
  }
  .header-txt-detail {
    font-size: 13px;
    line-height: 1.92;
  }
  .header .btn-cart {
    width: 100%;
  }
}
@media screen and (max-width: 560px) {
  .header-txt {
    transform: translateY(-15%);
  }
}

@media screen and (max-width:320px) {
  .header-txt {
    transform: translateY(-12%);
  }
}

/* GOOD POINTS -------------------------------------------------------------- */
.good-points {
  padding: 84px 15px 0;
  text-align: center;
  background-image: url(../images/point_bg_top.png), url(../images/point_bg_bottom.png), url(../images/point_bg_center.png);
  background-size: 100vw 38%, 100vw 38%, cover;
  background-position: top, bottom, center;
}
.circle-wrap {
  position: relative;
  width: 100%;
  height: 161px;
  margin: 30px auto 35px;
}
.circle {
  position: absolute;
  width: 161px;
  height: 161px;
  background-size: contain;
}
.circle img {
  height: 101px;
  margin-top: 23px;
}
.circle:nth-child(1) {
  top: 0;
  left: calc(50% + 20px);
  transform: translateX(-200%);
  background-image: url(../images/circle_bg_step1.png);
}
.circle:nth-child(2) {
  top: 0;
  left: calc(50% + 7.5px);
  transform: translateX(-100%);
  background-image: url(../images/circle_bg_step2.png);
}
.circle:nth-child(3) {
  top: 0;
  left: calc(50% - 7.5px);
  background-image: url(../images/circle_bg_step3.png);
}
.circle:nth-child(4) {
  top: 0;
  left: calc(50% - 20px);
  transform: translateX(100%);
  background-image: url(../images/circle_bg_step4.png);
}
@media screen and (max-width:1400px) {
  .good-points {
    background-position: top, bottom, right;
  }
}
@media screen and (max-width:768px) {
  .good-points {
    background-image: url(../images/point_bg_sp.png);
    background-size: cover;
    padding-top: 0;
    margin-top: 0;
  }
  .circle-wrap {
    margin: 20px auto;
    width: 267px;
    height: 268px;
  }
  .circle {
    width: 137.5px;
    height: 137.5px;
  }
  .circle img {
    height: 86.5px;
    margin-top: 19px;
  }
  .circle:nth-child(1) {
    top: 0;
    left: 0;
    transform: none;
  }
  .circle:nth-child(2) {
    top: 0;
    left: auto;
    right: 0;
    transform: none;
  }
  .circle:nth-child(3) {
    top: auto;
    bottom: 0;
    left: 0;
    transform: none;
  }
  .circle:nth-child(4) {
    top: auto;
    bottom: 0;
    left: auto;
    right: 0;
    transform: none;
  }
}
@media screen and (max-width:520px) {
  .good-points {
    margin-top: 33.5px;
  }
}
@media screen and (max-width:650px) {
  .good-points {
    margin-top: 67px;
  }
}
@media screen and (max-width:425px) {
  .good-points {
    background-size: contain;
    margin-top: 103.5px;
  }
}
@media screen and (max-width:375px) {
  .good-points {
    margin-top: 143.5px;
  }
}
@media screen and (max-width:320px) {
  .good-points {
    margin-top: 213.5px;
  }
}
/* ルースキューティクルって何？ -------------------------------------------------------------- */
.cuticle {
  background-color: rgba(255, 255, 255, .5);
  padding: 30px 297px 30px 30px;
  max-width: 675px;
  margin: 0 auto;
  position: relative;
  text-align: left;
}
.cuticle > :nth-child(1) {
  margin-bottom: 20px;
}
.cuticle figure {
  width: 267px;
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
}
.cuticle .heading-sub {
  display: inline-block;
  width: 100%;
  font-size: 16px;
}
@media screen and (max-width: 768px) {
  .cuticle {
    max-width: none;
    display: block;
    padding: 20px;
    text-align: center;
  }
  .cuticle .heading-sub {
    font-size: 14px;
  }
  .cuticle > :nth-child(1) {
    margin-bottom: 0;
  }
  .cuticle figure {
    position: static;
    width: 206.5px;
    margin: 17px auto 15px;
    right: auto;
    top: auto;
    transform: none;
  }
}
/* PRODUCT ADVISOR -------------------------------------------------------------- */
.product-advisor {
  background-color: rgba(255, 255, 255, .5);
  padding: 30px;
  width: 675px;
  margin: 20px auto 0;
}
.product-advisor .heading-1 {
  margin-bottom: 13px;
}
.product-advisor-txt {
  font-size: 14px;
  text-align: center;
  margin-bottom: 21px;
}
.product-advisor-contents {
  display: flex;
  text-align: left;
  align-items: flex-start;
}
.product-advisor-name {
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
  margin-bottom: 20px;
}
.product-advisor-name span {
  font-size: 14px;
  font-weight: normal;
  color: #6E6C70;
}
.product-advisor-contents-img {
  width: 119px;
  flex-shrink: 0;
  margin-right: 21px;
}
@media screen and (max-width: 768px) {
  .cuticle {
    max-width: none;
    margin: 20px 0 17.5px;
  }
  .product-advisor {
    background-color: rgba(233, 235, 238, .5);
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: 20px 20px;
  }
  .product-advisor-txt {
    font-size: 12px;
  }
  .product-advisor-name {
    font-size: 17px;
    margin-bottom: 15px;
  }
  .product-advisor-name span {
    font-size: 10px;
  }
  .product-advisor-contents {
    width: auto;
  }
  .product-advisor-contents-img {
    width: 103px;
    margin-right: 17px;
  }
}
/* TOOL DETAILS -------------------------------------------------------------- */
.tool-details {
  margin-top: 124.5px;
  text-align: center;
}
.info {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  text-align: center;
  margin: 20px 0 14.5px;
}
.info-icon {
  width: 15px;
  margin-right: 4.6px;
}
.modal-open-img {
  position: relative;
  width: 100%;
  max-width: 837px;
  margin: 0 auto;
}
.modal-open-icon {
  position: absolute;
  width: 40px;
  height: 40px;
}
.modal-open-icon:nth-of-type(1){
  top: 7%;
  left: 14%;
}
.modal-open-icon:nth-of-type(2){
  top: 44%;
  left: 20%;
}
.modal-open-icon:nth-of-type(3){
  top: 47%;
  left: 31%;
}
.modal-open-icon:nth-of-type(4){
  top: 51%;
  left: 53%;
}
.modal-open-icon:nth-of-type(5){
  top: 41%;
  right: 32%;
}
.modal-open-icon:nth-of-type(6){
  top: 22%;
  right: 20%;
}
div[id^="modal-contents-"] {
  display: none;
}
@media screen and (max-width: 1024px) {

}
@media screen and (max-width: 768px) {
  .tool-details {
    margin-top: 36px;
  }
  .info {
    font-size: 10px;
  }
  .info-icon {
    width: 9px;
    margin-right: 2.2px;
  }
  .modal-open-icon:nth-of-type(1){
    top: 8%;
    left: 11%;
  }
  .modal-open-icon:nth-of-type(2){
    top: 46%;
    left: 19%;
  }
  .modal-open-icon:nth-of-type(3){
    top: 48%;
    left: 32%;
  }
  .modal-open-icon:nth-of-type(4){
    top: 54%;
    left: 51%;
  }
  .modal-open-icon:nth-of-type(5){
    top: 44%;
    right: 31%;
  }
  .modal-open-icon:nth-of-type(6){
    top: 23%;
    right: 16%;
  }
}
@media screen and (max-width: 560px) {
  .modal-open-icon:nth-of-type(1){
    top: 7%;
    left: 10%;
  }
  .modal-open-icon:nth-of-type(2){
    top: 45%;
    left: 16%;
  }
  .modal-open-icon:nth-of-type(3){
    top: 48%;
    left: 30%;
  }
  .modal-open-icon:nth-of-type(6){
    top: 21%;
    right: 15%;
  }
}
@media screen and (max-width: 375px) {
.modal-open-icon:nth-of-type(1){
  top: 6%;
  left: 7%;
}
.modal-open-icon:nth-of-type(2){
  top: 46%;
  left: 13%;
}
.modal-open-icon:nth-of-type(3){
  top: 49%;
  left: 28%;
}
.modal-open-icon:nth-of-type(4){
  top: 64%;
  left: 51%;
}
.modal-open-icon:nth-of-type(5){
  top: 44%;
  right: 28%;
}
.modal-open-icon:nth-of-type(6){
  top: 19%;
  right: 11%;
}
}
/* HOT TO CARE -------------------------------------------------------------- */
.how-to-care {
  background-image: url(../images/bg_top.png), url(../images/bg_bottom.png), url(../images/bg_step1.png), url(../images/bg_step2.png), url(../images/bg_step3.png), url(../images/bg_step4.png), url(../images/bg_step5.png);
  background-position: top, bottom, right 8%, left 27%, right 50%, left 74%, right 94%;
  background-size: 100vw 6%, 100vw 6%, 50%, 50%, 50%, 50%, 50%;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-color: var(--white-gray);
  text-align: center;
  margin-top: 7.5px;
  padding-bottom: 91px;
}
@media screen and (min-width:1441px) {
  .how-to-care {
    background-size: 100vw 6%, 100vw 6%, 35%, 35%, 35%, 35%, 35%;
  }
}
.how-to-care-step {
  margin: 61.5px 15px 0;
  position: relative;
}
.how-to-care-heading {
  position: relative;
  font-size: 30px;
  text-align: center;
  font-weight: bold;
  border-bottom: solid 1px var(--blue);
  padding-bottom: 12.5px;
  margin: 0 auto;
  max-width: 491px;
  line-height: 1.2;
}
.how-to-care-heading-sub {
  position: absolute;
  font-weight: normal;
  right: 26px;
  bottom: -30px;
}
.how-to-care-step:nth-of-type(4) .how-to-care-heading-sub {
  right: 49px;
  right: 75px;
}
.how-to-care-heading-step {
  position: absolute;
  height: 111px;
  width: auto;
  bottom: -40px;
  left: -48px;
}
.how-to-care-step:nth-of-type(1) {
  margin: 115px 0 144px;
}
.how-to-care-step:nth-of-type(2) {
  margin-bottom: 180px;
}
.how-to-care-step:nth-of-type(3) {
  margin-bottom: 134px;
}
.how-to-care-step:nth-of-type(4) {
  margin-bottom: 104px;
}
.how-to-care-step:nth-of-type(5) {
  margin-bottom: 184px;
}
.how-to-care-wrap {
  text-align: center;
}
.how-to-care-use {
  max-width: 267px;
  margin: 0 auto;
}
.how-to-care-txt {
  font-size: 16px;
  margin: -20px 0 40px;
}
.how-to-care-txt small {
  font-size: 14px;
}
.how-to-care-item {
  position: absolute;
  max-width: 139.5px;
  top: 0;
  right: calc(-139.5px / 2);
}
.how-to-care-step:nth-of-type(2) .how-to-care-item {
  top: calc(-139.5px / 4);
}
.how-to-care-step:nth-of-type(3) .how-to-care-item {
  top: calc(-139.5px / 4);
}
.how-to-care-step:nth-of-type(4) .how-to-care-item {
  top: calc(-139.5px / 4);
  right: calc(-139.5px / 3);
}
@media screen and (max-width:768px) {
  .how-to-care {
    background-image: url(../images/bg_top.png);
    background-repeat: no-repeat;
    background-position: top;
  }
  .how-to-care-heading-step {
    height: 55.5px;
    bottom: -20px;
    left: -24px;
  }
  .how-to-care-step:nth-of-type(1) {
    margin: 61.5px 15px 77px;
  }
  .how-to-care-step:nth-of-type(2) {
    margin: 0 15px 97.5px;
  }
  .how-to-care-step:nth-of-type(3) {
    margin: 0 15px 79.5px;
  }
  .how-to-care-step:nth-of-type(4) {
    margin: 0 15px 55px;
  }
  .how-to-care-step:nth-of-type(5) {
    margin-bottom: 0;
  }
  .how-to-care-use {
    max-width: 195px;
  }
  .how-to-care-heading {
    font-size: 17px;
    margin: 0 24px 12.5px;
    max-width: none;
  }
  .how-to-care-heading-sub {
    font-size: 10px;
  }
  .how-to-care-txt {
    font-size: 13px;
    margin: 0 0 20px;
  }
  .how-to-care-txt small {
    font-size: 10px;
  }
}
/* INSTAGRAM -------------------------------------------------------------- */
.insta {
  margin-bottom: 79px;
  padding: 0 52px;
  text-align: center;
  background-color: #fff;
}
.insta .heading-sub {
  margin-bottom: 30px;
}
.insta-circle {
  position: absolute;
  width: 193px;
  top: calc(-32.5px * 2);
  left: -107px;
  transform: rotate(-30deg);
}
.insta-link {
  position: relative;
  text-align: center;
  margin: 0 auto;
  max-width: calc(210px * 5);
}
.insta-link a:nth-child(n+4) {
  margin-top: 4.5px;
}
.insta-link a {
  display: inline-block;
}
.insta-link img {
  max-width: 205px;
}
@media screen and (max-width:1145px) {
  .insta-circle {
    left: 0;
  }
}
@media screen and (max-width:1024px) {
  .insta-circle {
    left: -65px;
  }
}
@media screen and (max-width:768px) {
  .insta {
    background-image: url(../images/bg_bottom.png);
    background-size: cover;
    margin-bottom: 39.5px;
  }
  .insta .heading-sub {
    margin-bottom: 40px;
  }
  .insta-link {
    max-width: calc(90px * 5);
  }
  .insta-link img {
    max-width: 87px;
  }
  .insta-circle {
    width: 96.5px;
    top: -32.5px;
    left: calc(-107px / 2);
  }
}
@media screen and (max-width:600px) {
  .insta {
    background-size: contain;
  }
}
/* ネイルケアセット -------------------------------------------------------------- */
.price {
  font-size: 20px;
}
.item-detail {
  padding-bottom: 64px;
  background-color: var(--white-cyan);
}
.item-detail-contents {
  display: flex;
  justify-content: center;
  padding: 51px 15px 15px;
  align-items: center;
  text-align: left;
}
.item-detail-main {
  max-width: 424px;
}
.item-detail-txt {
  font-size: 30px;
  margin-left: 67px;
}
.item-detail-txt .heading-sub {
  margin-bottom: 20px;
}
.item-detail-txt p {
  margin-bottom: 30px;
  font-size: 16px;
}
.item-detail-txt .btn-cart {
  margin-top: 50px;
}
.item-detail-banner {
  padding: 0 20px;
  width: 493px;
  margin: 0 auto;
}
.item-detail-banner img {
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}
.item-detail-banner a {
  display: inline-block;
}
.item-detail-banner a:last-of-type {
  margin-top: 40px;
}
@media screen and (max-width:768px) {
  .price {
    font-size: 17px;
    font-weight: bold;
  }
  .item-detail {
    padding-bottom: 48.5px;
  }
  .item-detail-contents {
    display: block;
    text-align: center;
    padding: 25.5px 20px 30px;
  }
  .item-detail-main {
    max-width: 258.5px;
    margin-bottom: 10px;
  }
  .item-detail-txt {
    margin-left: 0;
    font-size: 17px;
  }
  .item-detail-txt p {
    font-size: 13px;
  }
  .item-detail-banner {
    width: 100%;
  }
  .item-detail-banner a:last-of-type {
    margin-top: 20px;
  }
  .item-detail-txt .btn-cart {
    margin-top: 30px;
  }
}
/* フッター -------------------------------------------------------------- */
.footer {
  padding: 55px 23.5px 27.5px;  
  text-align: center;
  background-color: var(--footer);
  position: relative;
}
.footer-link {
  display: flex;
  margin-bottom: 90px;
}
.footer-link li {
  display: block;
  width: 100%;
}
.footer-link li + li {
  margin-left: 50px;
}
.footer-link a {
  display: flex;
  align-items: center;
  background-color: #fff;
  border: solid 1px var(--border);
  line-height: 1;
  padding: 23px;
  width: 100%;
  min-height: 70px;
}
.footer-link img {
  width: 178px;
  display: block;
  margin: 0 0 0 auto;
}
.footer-link span {
  display: block;
  margin: 0 0 0 auto;
}
@media screen and (max-width:768px) {
  .footer-link {
    display: block;
    margin-bottom: 50px;
    text-align:  left;
  }
  .footer-link a {
    min-height: 60px;
    width: 100%;
  }
  .footer-link li + li {
    margin-left: 0;
    margin-top: 20px;
  }
  .footer-link img {
    margin: 0;
  }
}
/* TOPへ戻る -------------------------------------------------------------- */
.link-follow {
  position: absolute;
  bottom: 30px;
  right: 27px;
  width: 55px;
  height: 55px;
}
/* 追従 -------------------------------------------------------------- */
.cart-follow.is-pc {
  position: fixed;
  top: 44px;
  right: 0;
  width: 86px;
  background-color: var(--cyan);
  border-radius: 13px 0 0 13px;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
  display: none;
  opacity: 0;
  animation-name: fadeOutAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
.cart-follow.is-pc.is-active {
  animation-name: fadeInAnime;
  display: block;
}
.cart-follow.is-pc .cart-follow-item {
  border: solid 3px var(--cyan);
  border-radius: 13px 0 0 0;
}
.cart-follow.is-pc .btn-cart {
  display: flex;
  align-items: center;
  padding: 28px 0 26px;
  margin: 0 auto;
  writing-mode: vertical-rl;
}
.cart-follow.is-pc .btn-cart img {
  margin: 0 0 9.4px;
}
.cart-follow.is-sp {
  position: fixed;
  bottom: 0;
  align-items: center;
  background-color: var(--cyan);
  width: 100%;
  display: none;
  opacity: 0;
  animation-name: fadeOutAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
.cart-follow.is-sp.is-active {
  animation-name: fadeInAnime;
  display: flex;
}
.cart-follow.is-sp .cart-follow-item {
  width: 55.5px;
  border: solid 3px var(--cyan);
}
.cart-follow.is-sp .btn-cart {
  width: 100%;
}
@media screen and (max-width:768px) {
  .cart-follow.is-sp .btn-cart {
    padding: 20px 55.5px 20px 0;
  }
}
/* モーダル　 -------------------------------------------------------------- */
.modaal-container {
  box-shadow: none;
  max-width: 787px;
}
.modaal-content-container {
  padding: 67px 0;
}
.modaal-content-container > * {
  display: block;
  margin: 0 auto;
  max-width: 417px;
  line-height: 1.7;
}
.modaal-content-container img {
  margin-bottom: 20px;
}
.modaal-content-container strong {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.5;
}
.modaal-close {
  position: absolute;
  top: 0;
  right: 0;
  transition: none;
}
.modaal-close::before, .modaal-close::after {
  background-color: var(--close);
  width: 2px;
  height: 23px;
  border-radius: 0;
}
.modaal-video-container {
  box-shadow: none;
}
.modaal-video-wrap {
  margin: 0 auto;
}
.modaal-video-wrap ~ .modaal-close::before, .modaal-video-wrap ~ .modaal-close::after {
  background-color: #FFF;
}
.modaal-close:focus, .modaal-close:hover {
  background-color: transparent;
}
@media screen and (max-width:768px) {
  .modaal-inner-wrapper {
    padding-left: 15px;
    padding-right: 15px;
  }
  .modaal-content-container {
    padding: 50px 10px 26px;
  }
  .modaal-content-container > * {
    max-width: none;
    width: 100%;
  }
  .modaal-content-container img {
    margin-bottom: 22.5px;
  }
  .modaal-content-container strong {
    margin-bottom: 9px;
    font-size: 13.5px;
  }
  .modaal-close::before, .modaal-close::after {
    height: 27.5px;
  }
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeOutAnime{
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    display: none;
  }
}