@keyframes fade-in {
  0% {
    opacity: 0
  }

  100% {
    opacity: 1
  }
}

.ttl_top_1, .ttl_top_insta {
  color: #736a63
}

.ttl_top_1 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  font-size: 3.6rem;
  position: relative;
  letter-spacing: .15em;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700
}

@media screen and (max-width: 980px) {
  .ttl_top_1 {
    font-size: 2.4rem
  }
}

.ttl_top_1 .en {
  line-height: .1;
  letter-spacing: .1em
}

.ttl_top_1 .en::before {
  content: attr(data-title);
  font-family: "Manrope", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 0;
  color: #f19a96;
  vertical-align: middle
}

@media screen and (max-width: 980px) {
  .ttl_top_1 .en::before {
    font-size: 1rem
  }
}

.ttl_top_insta {
  font-size: 3.6rem;
  font-family: "Manrope", sans-serif;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .15em;
  text-align: center;
  margin-bottom: 30px;
  position: relative
}

@media screen and (max-width: 767px) {
  .ttl_top_insta {
    font-size: 2.4rem;
    margin-top: 50px
  }
}

.ttl_top_insta::before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 30px;
  background: url("../img/ico_insta.svg") no-repeat center center;
  background-size: contain;
  z-index: 1
}

@media screen and (max-width: 767px) {
  .ttl_top_insta::before {
    top: -40px;
    width: 32px;
    height: 32px
  }
}

.common-btn {
  text-align: right;
  margin-top: 30px
}

@media screen and (max-width: 767px) {
  .common-btn {
    text-align: center;
    margin-top: 20px
  }
}

.common-btn.insta-btn a {
  font-size: 2rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700;
  padding: 10px 30px;
  min-width: 350px;
  padding: 15px 60px;
  position: relative
}

@media screen and (max-width: 767px) {
  .common-btn.insta-btn a {
    font-size: 1.6rem;
    padding: 20px 30px 20px 60px;
    min-width: 320px
  }
}

.common-btn.insta-btn a::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  display: inline-block;
  background-color: #fff;
  -webkit-mask: url(../img/ico_insta.svg);
  mask: url(../img/ico_insta.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask: url(../img/ico_insta.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  content: "";
  z-index: 1
}

.common-btn.news-btn a {
  padding: 10px 30px;
  min-width: 230px
}

.common-btn a {
  font-size: 1.6rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700;
  background: #f19a96;
  color: #fff;
  text-decoration: none;
  display: inline-block;
  padding: 15px 30px;
  border-radius: 5px;
  position: relative;
  padding-right: 45px;
  text-align: left;
  min-width: 380px
}

@media screen and (max-width: 767px) {
  .common-btn a {
    min-width: 250px
  }
}

.common-btn a::after {
  content: "";
  position: absolute;
  right: 25px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg)
}

.common-btn a:hover {
  background: #df5a54
}

@media screen and (max-width: 767px) {
  .common-btn a {
    font-size: 1.4rem;
    padding: 8px 25px;
    padding-right: 35px
  }

  .common-btn a::after {
    right: 12px;
    width: 5px;
    height: 5px
  }
}

.fv-lead-text {
  position: absolute;
  left: 50%;
  top: 67%;
  transform: translate(-50%, -50%);
  z-index: 10;
  text-align: center;
  width: 100%
}

@media screen and (max-width: 767px) {
  .fv-lead-text {
    left: 0;
    right: 0;
    transform: translateY(-50%);
    padding: 0 2rem;
    top: 64%
  }
}

.fv-lead-text .fv-lead-content {
  margin: 0 auto
}

.fv-lead-text .fv-lead-subtitle {
  font-size: 3.6rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700;
  margin-bottom: 1.2rem;
  opacity: .9;
  color: #fff;
  line-height: 2.2;
  letter-spacing: .2em
}

@media screen and (max-width: 1199px) {
  .fv-lead-text .fv-lead-subtitle {
    font-size: 2.8rem
  }
}

@media screen and (max-width: 767px) {
  .fv-lead-text .fv-lead-subtitle {
    font-size: 2rem;
    margin-bottom: 1rem;
    line-height: 1.7
  }
}

.fv-lead-text .fv-lead-description {
  font-size: 3rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: .1em;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  color: #fff
}

@media screen and (max-width: 1199px) {
  .fv-lead-text .fv-lead-description {
    font-size: 2.4rem
  }
}

@media screen and (max-width: 767px) {
  .fv-lead-text .fv-lead-description {
    font-size: 1.8rem;
    line-height: 1.6;
    gap: 1.5rem
  }
}

.fv-lead-text .fv-lead-description::before, .fv-lead-text .fv-lead-description::after {
  content: "";
  width: 100px;
  height: 1px;
  border-top: 1px solid #fff;
  box-shadow: 0 7px 0 0 #fff;
  flex-shrink: 0
}

@media screen and (max-width: 767px) {
  .fv-lead-text .fv-lead-description::before, .fv-lead-text .fv-lead-description::after {
    width: 50px;
    transform: rotate(90deg)
  }
}

.news-lists .news-contents:nth-child(n+4) {
  display: none
}

@media screen and (max-width: 980px) {
  .news-lists .news-contents:nth-child(n+4) {
    display: block
  }
}

@media screen and (max-width: 767px) {
  .news-lists .news-contents:nth-child(n+4) {
    display: none
  }
}

.top-greeting {
  position: relative;
  min-height: 600px;
  margin-top: 100px
}

.top-greeting::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: -600px;
  background: #fdf3f3;
  background-size: cover;
  background-position: center top;
  z-index: -1
}

@media screen and (max-width: 767px) {
  .top-greeting::before {
    top: 60px
  }
}

.top-greeting .greeting-layout {
  display: flex;
  align-items: stretch;
  min-height: 600px
}

@media screen and (max-width: 980px) {
  .top-greeting .greeting-layout {
    flex-direction: column;
    min-height: auto
  }
}

.top-greeting .greeting-image {
  flex: 0 0 45%;
  position: relative;
  margin-top: -100px
}

@media screen and (max-width: 980px) {
  .top-greeting .greeting-image {
    flex: none;
    width: 100%;
    height: 250px
  }
}

.top-greeting .greeting-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0 30px 30px 0
}

@media screen and (max-width: 767px) {
  .top-greeting .greeting-image img {
    object-position: center bottom;
    border-radius: 0
  }
}

.top-greeting .greeting-contents {
  flex: 0 0 55%;
  padding: 60px 100px;
  display: flex;
  flex-direction: column;
  justify-content: center
}

.top-greeting .greeting-contents>*+* {
  margin-top: 40px
}

@media screen and (max-width: 980px) {
  .top-greeting .greeting-contents {
    flex: none;
    width: 100%;
    padding: 40px 20px
  }
}

.top-greeting .greeting-contents .greeting-text {
  font-size: 1.8rem;
  line-height: 1.8;
  color: #695e56
}

.top-greeting .greeting-contents .greeting-text>*+* {
  margin-top: 20px
}

@media screen and (max-width: 767px) {
  .top-greeting .greeting-contents .greeting-text {
    font-size: 1.6rem;
    line-height: 1.6
  }
}

.top-greeting .greeting-contents .greeting-name {
  font-size: 1.6rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #695e56;
  line-height: 1.5;
  text-align: right
}

.top-instagram {
  position: relative;
  margin: 100px -100px 0;
  padding: 80px 100px;
  position: relative;
  z-index: 10;
  width: calc(100% + 200px);
  border-radius: 50% 50% 0 0/40vw 40vw 0 0;
  background: #fff;
  box-shadow: 0 -50px 50px rgba(241, 154, 150, .3)
}

@media screen and (max-width: 980px) {
  .top-instagram {
    width: 100%;
    margin: 0 auto;
    padding: 40px 4rem 60px;
    margin-top: 0
  }
}

@media screen and (max-width: 767px) {
  .top-instagram {
    width: 100%;
    margin: 0 auto;
    padding: 20px 0;
    margin-top: 0
  }
}

.top-instagram .instagram-text {
  font-size: 1.6rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
  font-weight: 400;
  color: #695e56;
  line-height: 1.5;
  text-align: left;
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

@media screen and (max-width: 980px) {
  .top-instagram .instagram-text {
    padding: 0 6rem
  }
}

@media screen and (max-width: 767px) {
  .top-instagram .instagram-text {
    padding: 0 2rem
  }
}

.top-instagram-feed img {
  border-radius: 15px !important;
  transition: all .3s ease
}

@media screen and (max-width: 767px) {
  .top-instagram-feed img {
    border-radius: 10px !important
  }
}

.top-instagram-feed a {
  border-radius: 15px !important;
  overflow: hidden;
  display: block
}

@media screen and (max-width: 767px) {
  .top-instagram-feed a {
    border-radius: 10px !important
  }
}

.top-instagram-feed img:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 25px rgba(241, 154, 150, .2)
}

.top-instagram-feed #sb_instagram {
  padding: 0 !important
}

.top-instagram-feed #sbi_images {
  gap: 20px !important
}

@media screen and (max-width: 767px) {
  .top-instagram-feed #sbi_images {
    gap: 15px !important
  }
}