@charset "UTF-8";
/* CSS Document */

/*各sectionのタイトルの下線*/
.border-bottom-blu {
  display: block;
  width: 15px;
  height: 1px;
  background-color: #7490af;
  margin: 0 auto 50px;
}
/* --------------------------------------------------
  hero imageここから
-------------------------------------------------- */
/* --- 全体のBOX定義 ---------------------------------------- */
.mainvisual {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 70vh;
  margin: 76px 0 100px;
}
/* --- 背景の指定 ------------------------------------------- */
.mainvisual .home-mainvisual {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  animation: bgAnime 24s infinite; /* 3画像 × 各8s = 24s */
}
/* --- 時間差で背景画像のアニメーションを実行 ----------------- */
.mainvisual .hero1 {
  background-image: url("../images/top/sp-hero-img01.png");
  -webkit-background-size: cover;
  background-size: cover;
  background-position: center, center;
}
.mainvisual .hero2 {
  background-image: url("../images/top/sp-hero-img02.png");
  -webkit-background-size: cover;
  background-size: cover;
  background-position: center, center;
  animation-delay: 8s;
}
.mainvisual .hero3 {
  background-image: url("../images/top/sp-hero-img03.png");
  -webkit-background-size: cover;
  background-size: cover;
  background-position: center, center;
  animation-delay: 16s;
}
@keyframes bgAnime {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.2);
    transform: scale(1.2); /*1.2倍まで画像をズーム*/
  }
  16% {
    opacity: 1;
  }
  34% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  50% {
    opacity: 0;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
}
/* --- 前面の文字定義----- */
.mainvisual .boxString {
  position: absolute;
  padding: 50px 0 20px 6%;
  top: 13%; /* 中央寄せ */
  left: 0;
  z-index: 11;
}
.mainvisual-catch {
  margin-bottom: 20px;
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  line-height: 2;
}
.mainvisual-tel {
  /*mainvisualにあるtel*/
  width: 155px;
  height: 18px;
  fill: #666666;
}
/* --- scrolldownアニメーション設定 --- */
.scrolldown {
  position: relative;
}
.arrow-wrap {
  position: absolute;
  left: 0;
  top: 0;
  height: 225px;
  padding: 0 0 0 10%;
}
.arrow {
  position: relative;
  overflow: hidden;
  width: 1px;
  height: 150px;
  margin: -185px auto 0;
}
.arrow::before {
  position: absolute;
  content: "";
  top: -225px;
  left: 0;
  width: 1px;
  height: 150px;
  margin: 75px auto 0;
  background-color: #666;
  -webkit-animation: arrow 2.5s ease 0s infinite normal;
  animation: arrow 2.5s ease 0s infinite normal;
}
@keyframes arrow {
  0% {
    -webkit-transform: translate3d(-50%, 0, 0);
    transform: translate3d(-50%, 0, 0);
  }
  60% {
    -webkit-transform: translate3d(-50%, 150px, 0);
    transform: translate3d(-50%, 150px, 0);
  }
  100% {
    -webkit-transform: translate3d(-50%, 150px, 0);
    transform: translate3d(-50%, 150px, 0);
  }
}
/* --------------------------------------------------
  section-aboutここから
-------------------------------------------------- */
.about {
  position: relative;
}
.about::after {
  z-index: -1;
  position: absolute;
  content: "";
  display: block;
  background-color: #f7fcfe;
  width: 100%;
  height: 355px;
  bottom: -50px;
}
.about-image > img {
  margin-left: 0;
  padding-bottom: 25px;
}
.about-intro {
  flex-direction: column;
  box-sizing: border-box;
  margin: 0 auto;
  padding-right: 17%;
}
.about-intro a {
  display: block;
}
.intro-text-wrapper {
  padding: 25px 0 0 20px;
}
.about-intro__text {
  margin-bottom: 30px;
  font-family: "Noto Serif JP", serif;
  font-size: 2.2rem;
  line-height: 1.6;
  text-align: left;
}
.about-link {
  position: relative;
  text-align: right;
  padding-right: 82px;
}
.about-link::before,
.about-link::after {
  position: absolute;
  content: "";
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.about-link::before {
  display: block;
  top: 20px;
  right: 0;
  width: 150px;
  height: 1px;
  border-bottom: 1px solid #333;
}
.about-link::after {
  display: block;
  top: 13px;
  right: -3px;
  width: 20px;
  border-top: 1px solid #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
/* --------------------------------------------------
  section-menuここから
-------------------------------------------------- */
.menu-shr {
  background-image: url("../images/top/sp-home-shr.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  font-family: "Noto Serif JP", serif;
  font-size: 3.6rem;
}
.menu-shr a {
  display: block;
  padding: 146px 0;
  color: #666;
}
.menu-wax {
  background-image: url("../images/top/sp-home-wax.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  font-family: "Noto Serif JP", serif;
  font-size: 3.6rem;
  line-height: 1.5;
  letter-spacing: 0.15em;
}
.menu-wax a {
  display: block;
  padding: 146px 0;
  color: #666;
}
/*line-hightを設定したことにより画像が他より大きくなる*/
.menu-wax:first-line {
  line-height: 1;
}
.menu-other {
  background-image: url("../images/top/sp-home-other.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  font-family: "Noto Serif JP", serif;
  font-size: 3.6rem;
  text-transform: uppercase;
}
.menu-other a {
  display: block;
  padding: 146px 0;
  color: #666;
}
.menu-double {
  position: relative;
  padding: 70px 0 0;
}
.new-catch::before {
  position: absolute;
  content: "";
  background-image: url("../images/top/sp-new-catch.png");
  background-size: contain;
  background-repeat: no-repeat;
  width: 50%;
  height: 90px;
  top: 0;
  left: 16%;
  z-index: 1;
}
.menu-w-img {
  position: relative;
  background-image: url("../images/top/sp-home-w.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  width: 75%;
  margin: 0 auto;
}
.menu-w-img::before,
.menu-w-img::after {
  position: absolute;
  content: "";
  width: 220px;
  height: 100px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.menu-w-img::before {
  top: -15px;
  left: -15px;
  border-top: 1px solid #666;
  border-left: 1px solid #666;
}
.menu-w-img::after {
  bottom: -15px;
  right: -15px;
  border-bottom: 1px solid #666;
  border-right: 1px solid #666;
}
.menu-w {
  color: #666;
  font-family: "Noto Serif JP", serif;
  font-size: 3.6rem;
  text-transform: uppercase;
}
.menu-w a {
  display: block;
  padding: 10% 8%;
  color: #666;
}
.w-vio-text {
  display: block;
  margin-bottom: 15px;
}
.w-vio {
  font-size: 2.4rem;
}
.w-shr-wax {
  display: block;
  font-family: "Noto Sans JP", "sans-serif";
  font-size: 1.6rem;
}
/* --------------------------------------------------
  section-newsここから
-------------------------------------------------- */
.news {
  padding: 0 20px;
}
.news-new {
  width: 30px;
  padding: 5px 8px;
  margin-bottom: 8px;
  border-radius: 6px;
  background-color: #7490af;
  color: #fff;
  font-size: 1.2rem;
}
.news-list {
  margin-bottom: 40px;
}
.news-item {
  margin-bottom: 32px;
}
.news-item:last-of-type {
  margin-bottom: 0;
}
.news-item-img {
  margin: 0 auto 8px;
}
.news-item-info {
  text-align: left;
}
.news-item-info h3 {
  font-family: "Noto Sans JP", "sans-serif";
  font-size: 1.6rem;
  margin-bottom: 8px;
  transition: all 0.8s cubic-bezier(0.04, 0.435, 0.315, 0.9);
  opacity: 1;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.news-item-info p {
  line-height: 1.5;
  height: 35px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  transition: all 0.8s cubic-bezier(0.04, 0.435, 0.315, 0.9);
  opacity: 1;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.news-item-info-head {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}
.news-item-info-head time {
  display: block;
  font-size: 1.2rem;
  line-height: 1;
  color: #999;
  transition: all 0.8s cubic-bezier(0.04, 0.435, 0.315, 0.9);
  opacity: 1;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.news-item-category {
  display: block;
  text-transform: uppercase;
  position: relative;
  color: #999;
  font-size: 1.2rem;
  line-height: 1;
  padding: 0 0 0 21px;
}
.news-item-category::before {
  content: "|";
  position: absolute;
  top: 0;
  left: 8px;
}

.news-banner a {
  display: block;
}
.news-banner {
  box-shadow: 0px 1px 6px 3px #eee;
}
.news-btn {
  position: relative;
  display: inline-block;
  width: 160px;
  border: 1px solid #7490af;
  padding: 16px 0 13px;
  margin-bottom: 40px;
  text-align: center;
  background-color: #fff;
  text-decoration: none;
  outline: none;
  overflow: hidden;
  text-transform: uppercase;
  color: #7490af;
}
.news-btn:hover {
  background-color: #7490af;
  color: #fff;
}
/*キラッと光る*/
.btnshine::before {
  content: "";
  position: absolute;
  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);
}
.btnshine:hover::before {
  animation: shine 0.7s;
}
@keyframes shine {
  100% {
    left: 125%;
  }
}

/* --------------------------------------------------
  section-FAQここから
-------------------------------------------------- */
.faq {
  padding: 50px 0 100px;
  background-color: #d6e6f2;
}
.faq-category {
  margin: 0 20px 2px;
  background-color: #fff;
  text-align: left;
}
.faq-category a {
  display: block;
  padding: 29px 33px;
}
.faq-category:last-of-type {
  margin-bottom: 0;
}

/* --------------------------------------------------
  section-instagramここから
-------------------------------------------------- */
.instagram {
  position: relative;
}
/*ribon*/
.instagram::before {
  position: absolute;
  content: "";
  background-image: url("../images/common/ribon.png");
  background-size: contain;
  background-repeat: no-repeat;
  width: 300px;
  height: 300px;
  top: -160px;
  left: -10px;
}
/* .instagram::after{
  position: absolute;
  content: "";
  background-image: url("../images/common/ribon2.png");
  background-size: contain;
  background-repeat: no-repeat;
  width: 140px;
  height: 140px;
  bottom: -140px;
  right: 0px;
  transform: rotate(185deg);
  z-index: -1;
} */
.instagram .fa-instagram {
  margin-bottom: 10px;
  color: #7490af;
  font-family: FontAwesome;
  font-size: 4rem;
}
.insta-follow {
  color: #7490af;
}
/*instagram埋め込み用css*/
.instagram-gallery {
  max-width: 641.5px;
  margin: 0 auto 50px;
  /*  
  animation-name: ticker;
  animation-timing-function: linear;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-duration: 50000ms;*/
}
.instagram-gallery__list {
  display: flex;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
}
.instagram-gallery__item {
  width: 100%;
  padding: 10px;
}

/* --------------------------------------------------
  タブレット版
-------------------------------------------------- */
@media screen and (min-width: 641px) {
  .mainvisual {
    height: 75vh;
  }
  .mainvisual .boxString {
    padding: 100px 0 20px 5%;
  }
  .arrow-wrap {
    padding-left: 10%;
  }
  .arrow {
    margin: -220px auto 0;
  }
  /*about*/
  .about-link {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
    transition: all 0.5s;
  }
  .about-link:hover {
    -webkit-transform: scale(1.03);
    transform: scale(1.03);
  }
  /*menu*/
  .zoom {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
  }
  .menu-shr {
    transition: all 1s;
    transition: all 0.5s ease-out;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    will-change: transform;
  }
  .menu-shr:hover {
    opacity: 0.5;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.9);
  }
  .menu-shr a {
    padding: 300px 0;
  }
  .menu-wax {
    transition: all 1s;
    transition: all 0.5s ease-out;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    will-change: transform;
  }
  .menu-wax:hover {
    opacity: 0.5;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.9);
  }
  .menu-wax a {
    padding: 300px 0;
  }
  .menu-other {
    transition: all 1s;
    transition: all 0.5s ease-out;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    will-change: transform;
  }
  .menu-other:hover {
    opacity: 0.5;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.9);
  }
  .menu-other a {
    padding: 300px 0;
  }
  .menu-double {
    padding-top: 100px;
  }
  .new-catch::before {
    top: 30px;
    left: 23%;
  }
  .menu-w-img {
    transition: all 0.5s;
    width: 60%;
  }
  .menu-w-img::before {
    top: -20px;
    left: -20px;
  }
  .menu-w-img::after {
    bottom: -20px;
    right: -20px;
  }
  .menu-w-img:hover {
    opacity: 0.6;
  }
  .menu-w a {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
    transition: all 0.5s;
  }
  .menu-w a:hover {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
  .w-vio-text {
    margin-bottom: 10px;
  }
  /*news*/
  .news {
    max-width: 100%;
    margin: 0 auto 200px;
    padding: 0 20px;
  }
  .news-list {
    display: flex;
  }
  .news-item {
    width: calc(33.3% - 14px);
    margin: 0 20px 0 0;
  }
  .news-item:last-of-type {
    margin-right: 0;
  }
  .news-item-img {
    overflow: hidden;
  }
  .news-item a:hover .news-item-info-head time,
  .news-item a:hover .news-item-category,
  .news-item a:hover .news-item-info h3 {
    color: #7490af;
  }
  .news-item a:hover .news-item-info p {
    color: #7490af;
    text-decoration: underline;
  }
  .news-item-img img {
    transition: all 0.5s ease-out;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    will-change: transform;
  }
  .news-item-img img:hover {
    opacity: 0.5;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.9);
  }
  .news-banner {
    transition: all 1s;
    transition: all 0.5s ease-out;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    will-change: transform;
  }
  .news-banner:hover {
    opacity: 0.5;
    transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.97);
  }
  .faq-category > a {
    transition: color 0.5s;
  }
  .faq-category > a:hover {
    color: #7490af;
  }
  .instagram-gallery__item {
    min-width: 33%;
    width: 33%;
    padding: 0;
    margin: 0 auto;
  }
}
/* --------------------------------------------------
  pc版
-------------------------------------------------- */
@media screen and (min-width: 1001px) {
  /*各sectionのタイトルの下線*/
  .border-bottom-blu {
    width: 30px;
    margin: 0 auto 100px;
  }
  /* --------------------------------------------------
    hero imageここから
  -------------------------------------------------- */
  /* --- 全体の定義 ------------------------------ */
  .mainvisual {
    position: relative;
    width: 100%;
    height: 85vh;
    margin-top: 94px;
  }
  /* --- 前面の文字定義----- */
  .mainvisual .boxString {
    position: absolute;
    padding: 50px 0 20px 5%; /* 半透明の青 */
    top: 140px; /* 中央寄せ */
    left: 0;
    z-index: 11;
  }
  /* --- 時間差で背景画像のアニメーションを実行 ---- */
  .mainvisual .hero1 {
    background-image: url("../images/top/hero-img01.jpg"); /* 背景の画像を指定 */
    -webkit-background-size: cover;
    background-size: cover;
  }
  .mainvisual .hero2 {
    background-image: url("../images/top/hero-img02.jpg"); /* 背景の画像を指定 */
    -webkit-background-size: cover;
    background-size: cover;
    animation-delay: 10s;
  }
  .mainvisual .hero3 {
    background-image: url("../images/top/hero-img03.jpg"); /* 背景の画像を指定 */
    -webkit-background-size: cover;
    background-size: cover;
    animation-delay: 20s;
  }
  .mainvisual-catch {
    margin-bottom: 40px;
    font-family: "Noto Serif CJK JP";
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .mainvisual-tel {
    /*navigationの中にあるlogo*/
    width: 282px;
    height: 30px;
    fill: #666666;
  }
  .arrow-wrap {
    top: 80px;
    padding-left: 10%;
  }
  /* --------------------------------------------------
    pc版 section-aboutここから
  -------------------------------------------------- */
  .about-intro {
    flex-direction: row;
    display: flex;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0;
    gap: 2%;
  }
  .about-image {
    padding: 0 6% 0 0;
  }
  .about-image > img {
    max-width: 400px;
    margin: 0;
    padding: 0;
  }
  .intro-text-wrapper {
    width: 60%;
    padding: 0 2% 0 0;
  }
  .about-intro__text {
    font-size: 2.7rem;
    line-height: 2.5;
    padding: 260px 0 0 0;
  }
  .about-link {
    text-align: right;
    padding-right: 80px;
  }
  /* --------------------------------------------------
    section-menuここから
  -------------------------------------------------- */
  .menu-flex {
    display: flex;
    justify-content: space-between;
    margin-bottom: 180px;
  }
  .menu-shr {
    position: absolute;
    background-image: url("../images/top/home-shr.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    height: auto;
    font-size: 3.2rem;
  }
  .menu-shr a {
    display: block;
    padding: 220px 0;
  }
  .menu-wax {
    position: absolute;
    background-image: url("../images/top/home-wax.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    height: auto;
    font-size: 3.2rem;
  }
  .menu-wax:first-line {
    line-height: 1;
  }
  .menu-wax a {
    padding: 196px 0;
  }
  .menu-other {
    background-image: url("../images/top/home-other.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    font-size: 3.2rem;
    transition: all 1s;
  }
  .menu-other a {
    padding: 220px 0;
  }
  .menu-double {
    padding: 0;
  }
  .new-catch::before {
    position: absolute;
    content: "";
    background-image: url("../images/top/new-catch.png");
    background-size: contain;
    background-repeat: no-repeat;
    height: 120px;
    top: -50%;
    left: 32%;
  }
  .menu-w-img {
    background-image: url("../images/top/home-w.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    width: 39%;
    margin: 0 auto;
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
  }
  .menu-w-img::before,
  .menu-w-img::after {
    width: 245px;
    height: 110px;
  }
  .menu-w-img::before {
    top: -30px;
    left: -30px;
  }
  .menu-w-img::after {
    bottom: -30px;
    right: -30px;
  }
  .menu-w a {
    padding: 12%;
  }
  .menu-w {
    position: relative;
    font-size: 3.6rem;
    text-transform: uppercase;
    margin-bottom: 0;
  }
  .w-vio {
    font-size: 3.6rem;
  }
  .w-shr-wax {
    font-size: 1.6rem;
  }

  /* --------------------------------------------------
    newsここから
  -------------------------------------------------- */
  .news {
    max-width: 1000px;
    margin: 0 auto 200px;
    padding: 0;
  }
  .news-item-info p {
    height: 40px;
  }

  /* --------------------------------------------------
    faqここから
  -------------------------------------------------- */
  .faq {
    padding: 100px 0 200px;
  }
  .faq-inner {
    max-width: 71%;
    margin: 0 auto;
  }
  .faq-category {
    font-size: 1.6rem;
    margin: 0 0 2px 0;
  }
  .faq-category a {
    padding: 45px 100px;
  }
  .instagram::before {
    /*ribon*/
    top: -260px;
  }
  /* .instagram::after{
    width: 200px;
    height: 200px;
    bottom: -242px;
  } */
}
