@charset "UTF-8";
/* --------------------------------------------------
 Block
-------------------------------------------------- */

/* Common Block --------------- */

.comm-blc {
  max-width: 1200px;
  padding: 0 4%;
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
}

/* key-visual-style01 ------------------*/

.key-visual-style01 {
  position: relative;
}

.key-visual-style01 .bg-area {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding-bottom: 40%;
  min-height: 350px;
  box-sizing: border-box;
}

.key-visual-style01 .txt-catch {
  width: 100%;
  padding-left: 2%;
  padding-right: 2%;
  position: absolute;
  bottom: 40px;
  left: 0;
  opacity: 1;
  box-sizing: border-box;
  transition: all 800ms ease-in-out;
}

.key-visual-style01 .txt-catch .inner-blc {
  background-color: #fff;
  padding: 0 20px;
  display: inline-block;
}

.key-visual-style01 .txt-catch .txt {
  color: #554345;
  font-size: 3.2vw;
  font-weight: 400;
  line-height: 1.6;
}

.key-visual-style01 .txt-sub {
  width: 100%;
  text-align: right;
  position: absolute;
  bottom: 0;
  right: 0;
  box-sizing: border-box;
}

.key-visual-style01 .txt-sub .inner-blc {
  background-color: #f1f7f4;
  padding: 10px 60px;
  display: inline-block;
}

.key-visual-style01 .txt-sub .txt {
  color: #554345;
  font-size: 1.8vw;
  font-weight: 400;
  line-height: 1.6;
}

.key-visual-style01 .txt-sub-top {
  width: 100%;
  text-align: right;
  padding: 40px 2% 0;
  position: absolute;
  top: 0;
  right: 0;
  box-sizing: border-box;
}

.key-visual-style01 .txt-sub-top .inner-blc {
  background-color: #fff;
  text-align: left;
  padding: 10px 20px;
  display: inline-block;
}

.key-visual-style01 .txt-sub-top .txt {
  color: #554345;
  font-size: 1.8vw;
  font-weight: 400;
  line-height: 1.6;
}

.key-visual-style01 .main-slide .slick-dots {
  bottom: 2%;
}

.key-visual-style01 .main-slide .slick-dots li button:before {
  font-size: 12px;
  color: #fff;
}

.key-visual-style01 .main-slide {
  margin-bottom: 0;
}

.key-visual-style01 .main-slide .slick-slide>div>div {
  display: block !important;
}

@media screen and (max-width: 1200px) {
  .key-visual-style01 .txt-catch {
    bottom: 20px;
  }

  .key-visual-style01 .txt-sub-top {
    padding-top: 20px;
  }
}

@media screen and (max-width: 1080px) {
  .key-visual-style01 .txt-sub-top {
    text-align: left;
  }
}

@media screen and (max-width: 1000px) {
  .key-visual-style01 .bg-area {
    padding-bottom: 50%;
  }

  .key-visual-style01 .txt-catch .txt {
    font-size: 4.8vw;
  }

  .key-visual-style01 .txt-sub .txt {
    font-size: 2.6vw;
  }

  .key-visual-style01 .txt-sub-top .txt {
    font-size: 2.6vw;
  }
}

@media screen and (max-width: 767px) {
  .key-visual-style01 .bg-area {
    min-height: 210px;
    padding-bottom: 55%;
  }

  .key-visual-style01 .txt-catch .inner-blc {
    padding-left: 10px;
    padding-right: 10px;
  }

  .key-visual-style01 .txt-sub .inner-blc {
    padding: 5px 30px;
  }

  .key-visual-style01 .txt-sub-top .inner-blc {
    padding: 10px 10px;
  }
}

@media screen and (max-width: 480px) {
  .key-visual-style01 .txt-catch {
    bottom: 10px;
  }

  .key-visual-style01 .txt-sub+.txt-catch {
    bottom: 40px;
  }

  .key-visual-style01 .txt-sub .txt {
    font-size: 90%;
  }

  .key-visual-style01 .txt-sub-top {
    padding-top: 10px;
  }

  .key-visual-style01 .txt-sub-top .txt {
    font-size: 3.2vw;
  }
}

/* key-visual-style02 ------------------*/

.key-visual-style02 {
  position: relative;
}

.key-visual-style02 .main-slide {
  margin-bottom: 0;
}

.key-visual-style02 .main-slide::before {
  content: "";
  background-color: rgba(254, 250, 249, 0.7);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.key-visual-style02 .bg-area {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding-bottom: 40%;
  min-height: 350px;
  position: relative;
  box-sizing: border-box;
}

.key-visual-style02 .txt-catch {
  width: 100%;
  padding-left: 2%;
  padding-right: 2%;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 1;
  z-index: 1;
  box-sizing: border-box;
  transition: all 800ms ease-in-out;
}

.key-visual-style02 .txt-catch .logo {
  text-align: center;
}

.key-visual-style02 .txt-catch .logo a {
  text-decoration: none;
  display: block;
}

.key-visual-style02 .txt-catch .logo img {
  width: 5.7292vw;
}

.key-visual-style02 .txt-catch .logo .txt01 {
  font-size: 1vw;
  line-height: 1.6;
  margin-top: 10px;
  display: block;
}

.key-visual-style02 .txt-catch .logo .txt02 {
  font-size: 1.584vw;
  line-height: 1.6;
  display: block;
}

.key-visual-style02 .txt-catch .txt {
  color: #554345;
  font-size: 2.3334vw;
  text-align: center;
  line-height: 1.6;
  margin-top: 2vw;
}

.key-visual-style02 .txt-catch .txt-img {
  margin-top: 2vw;
}

.key-visual-style02 .main-slide .slick-dots {
  bottom: 2%;
}

.key-visual-style02 .main-slide .slick-dots li button:before {
  font-size: 12px;
  color: #fff;
}

@media screen and (max-width: 1000px) {
  .key-visual-style02 .bg-area {
    padding-bottom: 50%;
  }

  .key-visual-style02 .txt-catch .logo img {
    width: 8.7292vw;
  }

  .key-visual-style02 .txt-catch .logo .txt01 {
    font-size: 1.6vw;
    margin-top: 1vw;
  }

  .key-visual-style02 .txt-catch .logo .txt02 {
    font-size: 2.5vw;
  }

  .key-visual-style02 .txt-catch .txt {
    font-size: 3.3334vw;
  }
}

@media screen and (max-width: 767px) {
  .key-visual-style02 .bg-area {
    min-height: 210px;
    padding-bottom: 65%;
  }

  .key-visual-style02 .txt-catch .logo img {
    width: 14vw;
  }

  .key-visual-style02 .txt-catch .logo .txt01 {
    font-size: 2.4vw;
    margin-top: 2vw;
  }

  .key-visual-style02 .txt-catch .logo .txt02 {
    font-size: 3.8vw;
  }

  .key-visual-style02 .txt-catch .txt {
    font-size: 4.4vw;
  }
}

/* key-visual-style03 ------------------*/

.key-visual-style03 {
  position: relative;
}

.key-visual-style03 .main-img {
  display: flex;
  justify-content: flex-end;
}

.key-visual-style03 .main-img .bg-area {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 78%;
  padding-top: 36%;
  box-sizing: border-box;
}

.key-visual-style03 .txt-catch {
  width: 100%;
  height: 100%;
  padding-top: 14%;
  padding-left: 10%;
  padding-right: 10%;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  box-sizing: border-box;
  opacity: 1;
  transition: all 800ms ease-in-out;
}

.key-visual-style03 .txt-catch .inner-blc {
  width: 100%;
  box-sizing: border-box;
}

.key-visual-style03 .txt-catch .ttl-page {
  font-size: 260%;
  line-height: 1.6;
  margin-bottom: 2%;
  text-shadow: rgb(255, 255, 255) 1px 0px 0px, rgb(255, 255, 255) 0.540302px 0.841471px 0px, rgb(255, 255, 255) -0.416147px 0.909297px 0px, rgb(255, 255, 255) -0.989992px 0.14112px 0px, rgb(255, 255, 255) -0.653644px -0.756802px 0px, rgb(255, 255, 255) 0.283662px -0.958924px 0px, rgb(255, 255, 255) 0.96017px -0.279415px 0px;
}

.key-visual-style03 .txt-catch .txt {
  font-size: 150%;
  line-height: 1.6;
  text-shadow: rgb(255, 255, 255) 1px 0px 0px, rgb(255, 255, 255) 0.540302px 0.841471px 0px, rgb(255, 255, 255) -0.416147px 0.909297px 0px, rgb(255, 255, 255) -0.989992px 0.14112px 0px, rgb(255, 255, 255) -0.653644px -0.756802px 0px, rgb(255, 255, 255) 0.283662px -0.958924px 0px, rgb(255, 255, 255) 0.96017px -0.279415px 0px;
}

@media screen and (max-width: 1400px) {
  .key-visual-style03 .txt-catch .ttl-page {
    font-size: 230%;
  }

  .key-visual-style03 .txt-catch .txt {
    font-size: 140%;
  }
}

@media screen and (max-width: 1000px) {
  .key-visual-style03 .main-img .bg-area {
    padding-top: 45%;
  }

  .key-visual-style03 .txt-catch {
    padding-top: 18%;
  }

  .key-visual-style03 .txt-catch .ttl-page {
    font-size: 180%;
  }

  .key-visual-style03 .txt-catch .txt {
    font-size: 120%;
  }
}

@media screen and (max-width: 767px) {
  .key-visual-style03 .main-img .bg-area {
    width: 85%;
    padding-top: 52%;
  }

  .key-visual-style03 .txt-catch {
    padding-top: 22%;
    padding-left: 4%;
    padding-right: 4%;
  }

  .key-visual-style03 .txt-catch .ttl-page {
    font-size: 150%;
  }

  .key-visual-style03 .txt-catch .txt {
    font-size: 100%;
  }
}

@media screen and (max-width: 480px) {
  .key-visual-style03 .main-img .bg-area {
    padding-top: 65%;
  }

  .key-visual-style03 .txt-catch {
    padding-top: 26%;
  }
}

/* news-comm-blc ------------------*/

.news-comm-blc .inner-blc {
  background-color: #fff;
  max-width: 960px;
  padding: 4%;
  margin: 0 auto;
  box-sizing: border-box;
}

.news-comm-blc .part-blc {
  display: flex;
  flex-wrap: wrap;
}

.news-comm-blc .part-blc .ttl-blc {
  width: 220px;
  padding-right: 20px;
  box-sizing: border-box;
}

.news-comm-blc .part-blc .ttl-blc .ttl {
  margin-top: -10px;
}

.news-comm-blc .part-blc .ttl-blc .ttl .txt01 {
  color: #d89597;
  font-size: 240%;
  font-weight: 500;
  line-height: 1.6;
  margin-right: 15px;
}

.news-comm-blc .part-blc .list {
  width: calc(100% - 220px);
}

.news-comm-blc .part-blc .list>dl:nth-child(-n+1) {
  display: flex;
}

.news-comm-blc .part-blc .list>dl {
  padding: 10px 0;
  display: none;
  flex-wrap: wrap;
  align-items: center;
}

.news-comm-blc .part-blc .list>dl>dt {
  color: #707070;
  width: 150px;
  padding-right: 20px;
  box-sizing: border-box;
}

.news-comm-blc .part-blc .list>dl>dd {
  width: calc(100% - 150px);
  box-sizing: border-box;
}

.news-comm-blc .part-blc .list>dl>dd .txt {
  font-size: 120%;
  font-weight: 600;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
}

.news-comm-blc .btn-blc {
  text-align: center;
  margin-top: 6%;
}

.news-comm-blc .btn-blc a {
  text-decoration: none;
  padding-bottom: 18px;
  display: inline-block;
  position: relative;
}

.news-comm-blc .btn-blc a.animation-hide {
  opacity: 1;
}

.news-comm-blc .btn-blc a::before {
  content: "";
  background-color: #dcc7cb;
  width: 25px;
  height: 2px;
  position: absolute;
  bottom: 5px;
  right: 50%;
  transform: rotate(30deg);
  transform-origin: bottom right;
  transition: all 400ms ease-in-out;
}

.news-comm-blc .btn-blc a:hover::before {
  bottom: 0;
}

.news-comm-blc .btn-blc a::after {
  content: "";
  background-color: #dcc7cb;
  width: 25px;
  height: 2px;
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: rotate(-30deg);
  transform-origin: bottom left;
  transition: all 400ms ease-in-out;
}

.news-comm-blc .btn-blc a:hover::after {
  bottom: 0;
}

.news-comm-blc .btn-blc a .txt-hide {
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.news-comm-blc .btn-blc a .txt01 {
  width: 100%;
  height: 100%;
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
}

.news-comm-blc .btn-blc a .txt02 {
  display: inline-block;
  opacity: 0;
  visibility: hidden;
}

/* .news-comm-blc .btn-blc a.do-animate .txt01 {
  animation: doBtnMoreText 0.8s;
} */

.news-comm-blc .btn-blc a.do-animate.no-first .txt01 {
  animation: none;
}

.news-comm-blc .btn-blc a.is-hover.no-first .txt01 {
  animation: hoverBtnMoreText 0.8s;
}

/* @keyframes doBtnMoreText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
} */

@keyframes hoverBtnMoreText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@media screen and (max-width: 1000px) {
  .news-comm-blc .part-blc .ttl-blc {
    width: 100%;
    margin-bottom: 2%;
  }

  .news-comm-blc .part-blc .list {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .news-comm-blc .inner-blc {
    padding: 6%;
  }

  .news-comm-blc .part-blc .ttl-blc .ttl .txt01 {
    font-size: 200%;
  }

  .news-comm-blc .part-blc .list>dl>dt {
    width: 130px;
  }

  .news-comm-blc .part-blc .list>dl>dd {
    width: calc(100% - 130px);
  }

  .news-comm-blc .part-blc .list>dl>dd .txt {
    font-size: 100%;
  }

  .news-comm-blc .btn-blc a::before {
    bottom: 0;
  }

  .news-comm-blc .btn-blc a::after {
    bottom: 0;
  }

  .news-comm-blc .btn-blc a.do-animate .txt01 {
    animation: none;
  }

  .news-comm-blc .btn-blc a.is-hover.no-first .txt01 {
    animation: none;
  }
}

@media screen and (max-width: 480px) {
  .news-comm-blc .part-blc .list>dl>dt {
    width: 100%;
  }

  .news-comm-blc .part-blc .list>dl>dd {
    width: 100%;
  }
}

/* recruit-comm-blc ------------------*/

.recruit-comm-blc {
  padding: 6% 0;
}

.recruit-comm-blc .part-blc {
  display: flex;
  flex-wrap: wrap;
}

.recruit-comm-blc .part-blc .img-blc {
  width: 50%;
  padding-top: 34%;
  order: 1;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

/* .recruit-comm-blc .part-blc .img-blc::after {
  content: "";
  background-color: #d89597;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 600ms ease-in-out;
}

.recruit-comm-blc .part-blc .img-blc.do-animate::after {
  height: 0;
} */

.recruit-comm-blc .part-blc .img-blc .img {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 1000ms ease-in-out;
  transform: scale(1);
  /* transform: scale(1.2); */
}

/* .recruit-comm-blc .part-blc .img-blc.do-animate .img {
  transform: scale(1);
} */

.recruit-comm-blc .part-blc .img-blc+.txt-blc {
  width: 50%;
}

.recruit-comm-blc .part-blc .txt-blc {
  background: #e9f4fb url(../img/common/bg_recruit01.png) no-repeat center center;
  background-size: cover;
  width: 100%;
  padding: 6% 4%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  box-sizing: border-box;
}

.recruit-comm-blc .part-blc .txt-blc::before {
  content: "";
  background: url(../img/common/deco_recruit01.png) no-repeat center bottom;
  background-size: 100% auto;
  width: 100%;
  height: 9vw;
  position: absolute;
  top: 0;
  left: 0;
}

.recruit-comm-blc .part-blc .txt-blc::after {
  content: "";
  background: url(../img/common/deco_recruit02.png) no-repeat center top;
  background-size: 100% auto;
  width: 100%;
  height: 10vw;
  position: absolute;
  bottom: 0;
  left: 0;
}

.recruit-comm-blc .part-blc .txt-blc .inner-blc {
  width: 100%;
  max-width: 450px;
  text-align: center;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

.recruit-comm-blc .part-blc .txt-blc .txt-inner {
  text-align: left;
  display: inline-block;
}

.recruit-comm-blc .part-blc .txt-blc .ttl-style01 {
  text-align: left;
}

.recruit-comm-blc .part-blc .txt-blc .txt-intro {
  font-size: 180%;
}

.recruit-comm-blc .part-blc .txt-blc .btn-style01 {
  margin-top: 12%;
}

.recruit-comm-blc .part-blc .txt-blc .btn-style01 a {
  width: 100%;
  max-width: 300px;
}

.recruit-comm-blc .part-blc .txt-blc .btn-style01 a.animation-hide {
  opacity: 1;
}

@media screen and (max-width: 1340px) {
  .recruit-comm-blc .part-blc .txt-blc::before {
    height: 6vw;
  }
}

@media screen and (max-width: 1040px) {
  .recruit-comm-blc .part-blc .txt-blc .txt-inner {
    font-size: 1.5vw;
  }
}

@media screen and (max-width: 1000px) {
  .recruit-comm-blc .part-blc .txt-blc::after {
    height: 6vw;
  }
}

@media screen and (max-width: 767px) {
  .recruit-comm-blc .part-blc .img-blc {
    width: 100%;
    padding-top: 50%;
    order: 0;
  }

  .recruit-comm-blc .part-blc .img-blc+.txt-blc, .recruit-comm-blc .part-blc .txt-blc {
    width: 100%;
  }

  .recruit-comm-blc .part-blc .txt-blc::before {
    height: 14vw;
  }

  .recruit-comm-blc .part-blc .txt-blc::after {
    height: 14vw;
  }

  .recruit-comm-blc .part-blc .txt-blc .inner-blc {
    max-width: 315px;
  }

  .recruit-comm-blc .part-blc .txt-blc .txt-inner {
    font-size: 100%;
  }

  .recruit-comm-blc .part-blc .txt-blc .txt-intro {
    font-size: 150%;
  }

  .recruit-comm-blc .part-blc .txt-blc .btn-style01 a {
    max-width: 240px;
  }
}

@media screen and (max-width: 500px) {
  .recruit-comm-blc .part-blc .txt-blc {
    padding-top: 12%;
    padding-bottom: 12%;
  }

  .recruit-comm-blc .part-blc .txt-blc::before {
    height: 12vw;
  }

  .recruit-comm-blc .part-blc .txt-blc::after {
    height: 12vw;
  }
}

@media screen and (max-width: 480px) {
  .recruit-comm-blc .part-blc .txt-blc .txt-intro {
    font-size: 120%;
  }
}

/* contact-style01 ------------------*/

.contact-style01 {
  background-color: #e9f7f0;
  padding: 4% 0;
}

.contact-style01 .inner-blc {
  max-width: 1200px;
  padding: 0 4%;
  margin: 0 auto;
  position: relative;
  box-sizing: content-box;
}

.contact-style01 .frame-blc {
  background-color: #fff;
  padding: 30px 4%;
}

.contact-style01 .ttl {
  font-size: 190%;
  text-align: center;
  margin-bottom: 2%;
}

.contact-style01 .part-blc {
  max-width: 930px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.contact-style01 .part-blc .tel-blc {
  width: 47%;
  text-align: center;
  box-sizing: border-box;
}

.contact-style01 .part-blc .tel-blc a {
  font-size: 260%;
  text-decoration: none;
  padding-left: 45px;
  display: inline-block;
  position: relative;
}

.contact-style01 .part-blc .tel-blc a::before {
  content: "";
  background: url(../img/common/icon_tel01.png) no-repeat center center;
  background-size: contain;
  width: 35px;
  height: 50px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.contact-style01 .part-blc .btn-blc {
  width: 47%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.contact-style01 .part-blc .btn-blc .btn-style03 {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.contact-style01 .part-blc .btn-blc .btn-style03 a {
  width: 100%;
  box-sizing: border-box;
}

.contact-style01 .part-blc .btn-blc .btn-style03 a .txt01,
.contact-style01 .part-blc .btn-blc .btn-style03 a .txt02 {
  padding-left: 15px;
  padding-right: 15px;
}

@media screen and (max-width: 1000px) {
  .contact-style01 .part-blc .tel-blc a {
    padding-left: 30px;
  }

  .contact-style01 .part-blc .tel-blc a::before {
    width: 27px;
    height: 39px;
  }
}

@media screen and (max-width: 767px) {
  .contact-style01 .ttl {
    font-size: 160%;
  }

  .contact-style01 .part-blc .tel-blc {
    width: 100%;
    margin-bottom: 4%;
  }

  .contact-style01 .part-blc .tel-blc a {
    font-size: 200%;
  }

  .contact-style01 .part-blc .btn-blc {
    width: 100%;
  }

  .contact-style01 .part-blc .btn-blc .btn-style03 {
    display: block;
  }

  .contact-style01 .part-blc .btn-blc .btn-style03 a {
    width: auto;
  }

  .contact-style01 .part-blc .btn-blc .btn-style03 a .txt01,
  .contact-style01 .part-blc .btn-blc .btn-style03 a .txt02 {
    padding-left: 60px;
    padding-right: 60px;
  }
}

@media screen and (max-width: 480px) {
  .contact-style01 .ttl {
    font-size: 130%;
  }
}

/* contact-style02 ------------------*/

.contact-style02 {
  background-color: #f3f1ef;
  padding: 4% 0;
}

.contact-style02 .inner-blc {
  max-width: 1200px;
  padding: 0 4%;
  margin: 0 auto;
  position: relative;
  box-sizing: content-box;
}

.contact-style02 .frame-blc {
  background-color: #fff;
  padding: 30px 4%;
}

.contact-style02 .ttl {
  font-size: 200%;
  text-align: center;
  margin-bottom: 2%;
}

.contact-style02 .part-blc {
  max-width: 930px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.contact-style02 .part-blc .tel-blc {
  width: 48%;
  text-align: center;
  box-sizing: border-box;
}

.contact-style02 .part-blc .tel-blc .txt01 {
  font-size: 140%;
}

.contact-style02 .part-blc .tel-blc a {
  font-size: 260%;
  text-decoration: none;
  padding-left: 45px;
  display: inline-block;
  position: relative;
}

.contact-style02 .part-blc .tel-blc a::before {
  content: "";
  background: url(../img/common/icon_tel02.png) no-repeat center center;
  background-size: contain;
  width: 35px;
  height: 50px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.contact-style02 .btn-blc {
  margin-top: 4%;
}

.contact-style02 .btn-blc .btn-style03 {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.contact-style02 .btn-blc .btn-style03 a {
  width: 100%;
  max-width: 450px;
  box-sizing: border-box;
}

.contact-style02 .btn-blc .btn-style03 a .txt01,
.contact-style02 .btn-blc .btn-style03 a .txt02 {
  padding-left: 15px;
  padding-right: 15px;
}

@media screen and (max-width: 1000px) {
  .contact-style02 .part-blc .tel-blc .txt01 {
    font-size: 120%;
  }

  .contact-style02 .part-blc .tel-blc a {
    padding-left: 30px;
  }

  .contact-style02 .part-blc .tel-blc a::before {
    width: 27px;
    height: 39px;
  }
}

@media screen and (max-width: 767px) {
  .contact-style02 .ttl {
    font-size: 160%;
  }

  .contact-style02 .part-blc .tel-blc {
    width: 100%;
    margin-bottom: 4%;
  }

  .contact-style02 .part-blc .tel-blc a {
    font-size: 200%;
  }

  .contact-style02 .btn-blc .btn-style03 {
    display: block;
  }

  .contact-style02 .btn-blc .btn-style03 a {
    width: auto;
  }

  .contact-style02 .btn-blc .btn-style03 a .txt01,
  .contact-style02 .btn-blc .btn-style03 a .txt02 {
    padding-left: 60px;
    padding-right: 60px;
  }
}

@media screen and (max-width: 480px) {
  .contact-style02 .ttl {
    font-size: 130%;
  }

  .contact-style02 .part-blc .tel-blc .txt01 {
    font-size: 100%;
  }
}

/* access-style01 ------------------*/

.access-style01 .list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.access-style01 .list li {
  width: 47%;
  margin: 0 6% 5% 0;
  display: flex;
  flex-direction: column;
}

.access-style01 .list li:nth-of-type(2n+2) {
  margin-right: 0;
}

.access-style01 .list li:last-of-type {
  margin-right: 0;
}

.access-style01 .list li .img {
  text-align: center;
  margin-bottom: 4%;
}

.access-style01 .list .subj {
  font-size: 150%;
  text-align: center;
  margin-bottom: 2%;
}

.access-style01 .list .txt-blc {
  text-align: center;
}

.access-style01 .list .txt01 {
  font-size: 120%;
  line-height: 1.4;
  margin-bottom: 4%;
}

.access-style01 .list .txt02 {
  font-size: 120%;
  line-height: 1.4;
  margin-bottom: 4%;
}

.access-style01 .list .btn-blc {
  text-align: center;
}

.access-style01 .list .btn-blc a {
  font-size: 140%;
  text-decoration: none;
  display: inline-block;
}

.access-style01 .list .btn-blc .small {
  font-size: 75%;
}

.access-style01 .map-blc {
  position: relative;
}

.access-style01 .map-blc iframe {
  width: 100%;
  height: 550px;
  display: block;
}

.access-style01 .map-blc .detail-blc {
  background-color: rgba(241, 247, 244, 0.85);
  width: 100%;
  max-width: 500px;
  padding: 30px 60px 15px;
  position: absolute;
  bottom: 0;
  right: 0;
  box-sizing: border-box;
}

.access-style01 .map-blc .detail-blc .subj {
  font-size: 200%;
  margin-bottom: 2%;
}

.access-style01 .map-blc .detail-blc .txt01 {
  font-size: 140%;
  line-height: 1.4;
  margin-bottom: 4%;
}

.access-style01 .map-blc .detail-blc .txt02 {
  line-height: 1.6;
  margin-bottom: 4%;
}

.access-style01 .map-blc .detail-blc .btn-blc {
  text-align: center;
}

.access-style01 .map-blc .detail-blc .btn-blc a {
  font-size: 140%;
  text-decoration: none;
  display: inline-block;
}

.access-style01 .map-blc .detail-blc .btn-blc .small {
  font-size: 75%;
}

@media screen and (max-width: 1200px) {
  .access-style01 .map-blc .detail-blc {
    max-width: 440px;
    padding: 15px 40px;
  }

  .access-style01 .map-blc .detail-blc .subj {
    font-size: 160%;
  }

  .access-style01 .map-blc .detail-blc .txt01 {
    font-size: 120%;
  }

  .access-style01 .map-blc .detail-blc .btn-blc a {
    font-size: 120%;
  }
}

@media screen and (max-width: 1000px) {
  .access-style01 .map-blc {
    background-color: rgba(241, 247, 244, 1);
  }

  .access-style01 .map-blc iframe {
    height: 400px;
  }

  .access-style01 .map-blc .detail-blc {
    background-color: transparent;
    padding: 4%;
    margin-left: auto;
    margin-right: auto;
    position: static;
  }
}

@media screen and (max-width: 767px) {
  .access-style01 .list .btn-blc a {
    font-size: 120%;
  }

  .access-style01 .list .txt01 {
    font-size: 100%;
  }

  .access-style01 .list .txt02 {
    font-size: 100%;
  }

  .access-style01 .map-blc iframe {
    height: 350px;
  }
}

@media screen and (max-width: 480px) {
  .access-style01 .list li {
    width: 100%;
    margin-right: 0;
  }

  .access-style01 .list .subj {
    font-size: 130%;
  }

  .access-style01 .map-blc iframe {
    height: 300px;
  }

  .access-style01 .map-blc .detail-blc .subj {
    font-size: 130%;
  }
}

/* faq-style-01 --------------- */

.faq-style-01 .group-item {
  margin-bottom: 6%;
}

.faq-style-01 .group-item:last-of-type {
  margin-bottom: 0;
}

.faq-style-01 .group-item .ttl {
  background-color: #fff;
  font-size: 150%;
  margin-bottom: 2%;
  padding: 15px 30px;
}

.faq-style-01 .group-item .list dl {
  position: relative;
}

.faq-style-01 .group-item .list dl:last-of-type {
  margin-bottom: 0;
}

.faq-style-01 .group-item .list dl dt {
  font-size: 120%;
  padding: 15px 50px 15px 75px;
  position: relative;
  cursor: pointer;
  transition: all 400ms ease-in-out;
}

.faq-style-01 .group-item .list dl dt.onclick {
  border-bottom-color: transparent;
}

.faq-style-01 .group-item .list dl dt .question {
  background: url(../img/common/icon_q01.jpg) no-repeat center center;
  background-size: 100% auto;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 14px;
  left: 0;
}

.faq-style-01.color02 .group-item .list dl dt .question {
  background-image: url(../img/common/icon_q02.jpg);
}

.faq-style-01.color03 .group-item .list dl dt .question {
  background-image: url(../img/common/icon_q03.jpg);
}

.faq-style-01 .group-item .list dl dt .icon-stat {
  width: 50px;
  height: 50px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.faq-style-01 .group-item .list dl dt .icon-stat::before {
  content: "";
  background-color: #7f6a57;
  width: 16px;
  height: 2px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.faq-style-01 .group-item .list dl dt .icon-stat::after {
  content: "";
  background-color: #7f6a57;
  width: 2px;
  height: 16px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transition: all 400ms ease-in-out;
}

.faq-style-01 .group-item .list dl dt.onclick .icon-stat::after {
  transform: rotate(-90deg);
  transform-origin: center center;
}

.faq-style-01 .group-item .list dl dd {
  background-color: #e9f7f0;
  font-size: 120%;
  padding: 15px 50px 15px 75px;
  margin-bottom: 2%;
  position: relative;
}

.faq-style-01.color02 .group-item .list dl dd {
  background-color: #f3f1ef;
}

.faq-style-01.color03 .group-item .list dl dd {
  background-color: #fdfaf8;
}

.faq-style-01 .group-item .list dl dd .answer {
  background: url(../img/common/icon_a01.jpg) no-repeat center center;
  background-size: 100% auto;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 10px;
  left: 0;
  animation: faq-slide-up 0.4s ease-in-out forwards;
}

.faq-style-01.color02 .group-item .list dl dd .answer {
  background-image: url(../img/common/icon_a02.jpg);
}

.faq-style-01.color03 .group-item .list dl dd .answer {
  background-image: url(../img/common/icon_a03.jpg);
}

.faq-style-01 .group-item .list dl dt.onclick+dd .answer {
  animation: faq-slide-down 0.4s ease-in-out forwards;
}

@keyframes faq-slide-down {
  0% {
    transform: translateY(-16px);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes faq-slide-up {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(-16px);
  }
}

@media screen and (max-width: 767px) {
  .faq-style-01 .group-item .ttl {
    font-size: 130%;
    padding-left: 20px;
    padding-right: 20px;
  }

  .faq-style-01 .group-item .list dl dt {
    font-size: 100%;
    padding: 10px 30px 10px 50px;
  }

  .faq-style-01 .group-item .list dl dt .question {
    width: 30px;
    top: 5px;
  }

  .faq-style-01 .group-item .list dl dt .icon-stat {
    width: 30px;
    height: 30px;
  }

  .faq-style-01 .group-item .list dl dd {
    font-size: 100%;
    padding: 10px 20px 10px 50px;
  }

  .faq-style-01 .group-item .list dl dd .answer {
    width: 30px;
    top: 3px;
  }
}

@media screen and (max-width: 400px) {
  .faq-style-01 .group-item .ttl {
    font-size: 115%;
  }

  .faq-style-01 .group-item .list dl dt .question {
    top: 4px;
  }
}

/* accordion-style-01 --------------- */

.accordion-style-01 .group-item {
  margin-bottom: 6%;
}

.accordion-style-01 .group-item:last-of-type {
  margin-bottom: 0;
}

.accordion-style-01 .group-item .ttl {
  background-color: #fff;
  font-size: 150%;
  margin-bottom: 2%;
  padding: 15px 30px;
}

.accordion-style-01 .group-item .list dl {
  margin-bottom: 2%;
  position: relative;
}

.accordion-style-01 .group-item .list dl:last-child {
  margin-bottom: 0;
}

.accordion-style-01 .group-item .list dl:last-of-type {
  margin-bottom: 0;
}

.accordion-style-01 .group-item .list dl dt {
  background-color: #fff;
  font-size: 120%;
  border: 1px solid #7f6a57;
  padding: 15px 50px 15px 25px;
  position: relative;
  cursor: pointer;
  transition: all 400ms ease-in-out;
  box-sizing: border-box;
}

.accordion-style-01 .group-item .list dl dt .icon-stat {
  width: 50px;
  height: 50px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.accordion-style-01 .group-item .list dl dt .icon-stat::before {
  content: "";
  background-color: #7f6a57;
  width: 16px;
  height: 2px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.accordion-style-01 .group-item .list dl dt .icon-stat::after {
  content: "";
  background-color: #7f6a57;
  width: 2px;
  height: 16px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transition: all 400ms ease-in-out;
}

.accordion-style-01 .group-item .list dl dt.onclick .icon-stat::after {
  transform: rotate(-90deg);
  transform-origin: center center;
}

.accordion-style-01 .group-item .list dl dd {
  background-color: #fff;
  font-size: 120%;
  border: 1px solid #7f6a57;
  border-top: none;
  padding: 15px 25px 15px 25px;
  margin-bottom: 2%;
  position: relative;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .accordion-style-01 .group-item .ttl {
    font-size: 130%;
    padding-left: 20px;
    padding-right: 20px;
  }

  .accordion-style-01 .group-item .list dl dt {
    font-size: 100%;
    padding: 10px 30px 10px 15px;
  }

  .accordion-style-01 .group-item .list dl dt .icon-stat {
    width: 30px;
    height: 30px;
  }

  .accordion-style-01 .group-item .list dl dd {
    font-size: 100%;
    padding: 10px 15px 10px 15px;
  }
}

@media screen and (max-width: 400px) {
  .accordion-style-01 .group-item .ttl {
    font-size: 115%;
  }
}

/* blc-style01 ------------------*/

.blc-style01 .part-blc {
  display: flex;
  flex-wrap: wrap;
}

.blc-style01 .part-blc .txt-blc {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 66%;
  padding: 6% 4%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.blc-style01 .part-blc .txt-blc .inner-blc {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  box-sizing: border-box;
}

.blc-style01 .part-blc .txt-blc .ttl-style03 {
  text-align: left;
}

.blc-style01 .part-blc .txt-blc .txt-intro {
  font-size: 120%;
}

.blc-style01 .part-blc .img-blc {
  width: 34%;
  min-height: 43vw;
  position: relative;
}

.blc-style01 .part-blc .img-blc .img-item {
  width: 100%;
  height: 50%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}

.blc-style01 .part-blc .img-blc .img-item.animation-hide {
  opacity: 1;
}

.blc-style01 .part-blc .img-blc .img-item .img {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 1000ms ease-in-out;
}

.blc-style01 .part-blc .img-blc .img-item:nth-of-type(2n) {
  top: auto;
  bottom: 0;
}

@media screen and (max-width: 1000px) {
  .blc-style01 .part-blc .txt-blc {
    width: 100%;
    order: 1;
  }

  .blc-style01 .part-blc .txt-blc .inner-blc {
    max-width: 670px;
  }

  .blc-style01 .part-blc .txt-blc .txt-intro {
    font-size: 100%;
  }

  .blc-style01 .part-blc .img-blc {
    width: 100%;
    min-height: 0;
    padding-top: 32%;
  }

  .blc-style01 .part-blc .img-blc .img-item {
    width: 50%;
    height: 100%;
  }

  .blc-style01 .part-blc .img-blc .img-item:nth-of-type(2n) {
    top: 0;
    bottom: auto;
    left: auto;
    right: 0;
  }
}

/* --------------------------------------------------
 Title
-------------------------------------------------- */

/* page-ttl ------------------*/

.page-ttl {
  padding: calc(4% + 50px + 95px) 4% 4%;
  position: relative;
  z-index: 1;
}

.page-ttl::after {
  content: "";
  background: url(../img/common/bg_deco01.png) repeat-x bottom left;
  background-size: auto 100%;
  width: 100%;
  height: 120%;
  position: absolute;
  top: 0;
  left: 0;
}

.page-ttl .key-txt {
  width: 33.23%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.page-ttl .key-txt .txt {
  font-size: 120%;
  text-align: center;
  padding-top: 25px;
}

.page-ttl .inner-blc {
  padding-top: 90px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  transition: all 800ms ease-in-out;
}

.page-ttl .ttl {
  font-size: 260%;
  line-height: 1.6;
  width: 100%;
  height: 100%;
  padding-left: 460px;
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  box-sizing: border-box;
}

@media screen and (max-width: 1400px) {
  .page-ttl {
    padding-top: calc(4% + 20px + 95px);
  }

  .page-ttl .ttl {
    font-size: 230%;
    padding-left: 360px;
  }
}

@media screen and (max-width: 1200px) {
  .page-ttl {
    padding-top: calc(6% + 64px);
  }

  .page-ttl .ttl {
    padding-left: 0;
  }

  .page-ttl .key-txt .txt {
    font-size: 100%;
  }
}

@media screen and (max-width: 1000px) {
  .page-ttl .key-txt {
    width: 35.23%;
  }

  .page-ttl .key-txt .txt {
    font-size: 1.6vw;
    padding-top: 1vw;
  }
}

@media screen and (max-width: 767px) {
  .page-ttl .key-txt {
    display: none;
  }

  .page-ttl .inner-blc {
    padding-top: 60px;
  }

  .page-ttl .ttl {
    font-size: 180%;
  }
}

@media screen and (max-width: 480px) {
  .page-ttl .ttl {
    font-size: 150%;
  }
}

/* ttl-style01 --------------- */

.ttl-style01 {
  font-size: 220%;
  text-align: center;
  margin-bottom: 4%;
}

@media screen and (max-width: 767px) {
  .ttl-style01 {
    font-size: 170%;
  }
}

@media screen and (max-width: 480px) {
  .ttl-style01 {
    font-size: 140%;
  }
}

/* ttl-style02 --------------- */

.ttl-style02 {
  font-size: 150%;
  border-bottom: 1px solid #f3f1ef;
  padding-bottom: 2%;
  margin-bottom: 4%;
}

@media screen and (max-width: 767px) {
  .ttl-style02 {
    font-size: 130%;
  }
}

@media screen and (max-width: 480px) {
  .ttl-style02 {
    font-size: 120%;
  }
}

/* ttl-style03 --------------- */

.ttl-style03 {
  font-size: 180%;
  text-align: center;
  margin-bottom: 4%;
}

@media screen and (max-width: 767px) {
  .ttl-style03 {
    font-size: 150%;
  }
}

@media screen and (max-width: 480px) {
  .ttl-style03 {
    font-size: 125%;
  }
}

/* ttl-style04 --------------- */

.ttl-style04 {
  text-align: center;
  margin-bottom: 4%;
}

.ttl-style04 .txt01 {
  font-size: 180%;
}

.ttl-style04 .bracket-left,
.ttl-style04 .bracket-right {
  font-size: 180%;
  width: 25px;
  text-indent: -9999px;
  display: inline-block;
  position: relative;
}

.ttl-style04 .bracket-left::before,
.ttl-style04 .bracket-left::after,
.ttl-style04 .bracket-right::before,
.ttl-style04 .bracket-right::after {
  content: "";
  background-color: #a1c4bb;
  width: 25px;
  height: 2px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: rotate(-45deg);
  transform-origin: bottom left;
}

.ttl-style04 .bracket-left::after {
  transform: rotate(45deg);
  transform-origin: top left;
}

.ttl-style04 .bracket-right::before {
  left: auto;
  right: 0;
  transform: rotate(45deg);
  transform-origin: bottom right;
}

.ttl-style04 .bracket-right::after {
  left: auto;
  right: 0;
  transform: rotate(-45deg);
  transform-origin: top right;
}

@media screen and (max-width: 767px) {
  .ttl-style04 .txt01 {
    font-size: 150%;
  }

  .ttl-style04 .bracket-left,
  .ttl-style04 .bracket-right {
    font-size: 150%;
    width: 18px;
  }

  .ttl-style04 .bracket-left::before,
  .ttl-style04 .bracket-left::after,
  .ttl-style04 .bracket-right::before,
  .ttl-style04 .bracket-right::after {
    width: 18px;
  }
}

@media screen and (max-width: 480px) {
  .ttl-style04 .txt01 {
    font-size: 125%;
  }

  .ttl-style04 .bracket-left,
  .ttl-style04 .bracket-right {
    font-size: 125%;
    width: 14px;
  }

  .ttl-style04 .bracket-left::before,
  .ttl-style04 .bracket-left::after,
  .ttl-style04 .bracket-right::before,
  .ttl-style04 .bracket-right::after {
    width: 14px;
  }
}

/* ttl-style05 --------------- */

.ttl-style05 {
  color: #d89597;
  font-size: 200%;
  margin-bottom: 4%;
}

@media screen and (max-width: 1000px) {
  .ttl-style05 {
    font-size: 160%;
  }
}

@media screen and (max-width: 480px) {
  .ttl-style05 {
    font-size: 130%;
  }
}

/* --------------------------------------------------
 Table
-------------------------------------------------- */

/* Common Table --------------- */

.tbl-comm {
  border-top: 1px dotted #fff;
}

.tbl-comm th, .tbl-comm td {
  padding: 7px 15px;
  border-bottom: 1px dotted #ccc;
  box-sizing: border-box;
}

.tbl-comm th {
  background-color: #fff;
  width: 20%;
}

.tbl-comm th[align="center"], .tbl-comm td[align="center"] {
  text-align: center;
}

.tbl-comm th[align="right"], .tbl-comm td[align="right"] {
  text-align: right;
}

.tbl-respon {
  overflow-x: auto;
}

.tbl-respon .tbl-comm {
  min-width: 600px;
}

.note-tbl {
  color: red;
  text-align: center;
  margin: 2% 0;
  display: none;
}

/* Form Table --------------- */

.tbl-form th {
  background-color: #fff;
  width: 25%;
  padding: 2%;
  text-align: left;
}

.tbl-form td {
  padding: 2%;
  text-align: left;
}

.tbl-form th, .tbl-form td {
  border-bottom: 1px dotted #ccc;
}

/* tblRespon --------------- */

.tbl-respon {
  overflow-x: auto;
}

.note-tbl-respon {
  font-size: 80%;
  color: red;
  margin: 2% 0;
  text-align: center;
  display: none;
}

@media screen and (max-width: 767px) {

  /* Common Table --------------- */
  .tbl-comm th, .tbl-comm td {
    font-size: 90%;
  }

  .tbl-comm th {
    width: 30%;
  }

  .tbl-comm.single-row th, .tbl-form.single-row th {
    display: block;
    font-weight: bold;
    padding-bottom: 0;
  }

  .tbl-comm.single-row td, .tbl-form.single-row td {
    display: block;
  }

  .note-tbl {
    display: block;
  }

  /* Form Table --------------- */
  .tbl-form th {
    width: auto;
  }

  /* tblRespon --------------- */
  .note-tbl-respon {
    display: none;
  }
}

@media screen and (max-width: 650px) {

  /* tblRespon --------------- */
  .note-tbl-respon {
    display: block;
  }
}

/* tbl-style01 --------------- */

.tbl-style01 table {
  width: 100%;
}

.tbl-style01 table th,
.tbl-style01 table td {
  font-size: 120%;
  font-weight: 500;
  border-bottom: 1px solid #f3f1ef;
  padding: 25px 4%;
}

.tbl-style01 table th {
  background-color: #f9f8f7;
  width: 25%;
}

@media screen and (max-width: 767px) {

  .tbl-style01 table th,
  .tbl-style01 table td {
    font-size: 100%;
    padding-top: 15px;
    padding-bottom: 15px;
  }
}

/* tbl-style02 --------------- */

.tbl-style02 table {
  width: 100%;
  table-layout: fixed;
}

.tbl-style02 table th,
.tbl-style02 table td {
  font-size: 120%;
  font-weight: 500;
  border: 1px solid #f3f1ef;
  padding: 20px 2%;
}

.tbl-style02 table thead th {
  background-color: #f9f8f7;
  font-weight: 600;
  text-align: center;
}

.tbl-style02 table thead td {
  font-weight: 600;
  text-align: center;
}

.tbl-style02 table tbody th {
  font-weight: 600;
}

.tbl-style02 table tbody td {
  text-align: center;
}

@media screen and (max-width: 767px) {

  .tbl-style02 table th,
  .tbl-style02 table td {
    font-size: 100%;
    padding-top: 15px;
    padding-bottom: 15px;
  }
}

/* --------------------------------------------------
 List
-------------------------------------------------- */

/* Common List --------------- */

.list-comm li {
  width: 48%;
  float: left;
}

.list-comm li:nth-of-type(2n) {
  float: right;
}

/* news-list-style01 --------------- */

.news-list-style01 {
  max-width: 960px;
  margin: 0 auto;
}

.news-list-style01 .item {
  box-shadow: 0px 8px 1px 0px rgba(216, 149, 151, 0.2);
  padding: 4%;
  margin-bottom: 4%;
  display: flex;
  flex-wrap: wrap;
}

.news-list-style01.color02 .item {
  box-shadow: 0px 8px 1px 0px rgb(243 241 239);
}

.news-list-style01.color03 .item {
  box-shadow: 0px 8px 1px 0px rgb(241 247 244);
}

.news-list-style01 .item:last-child {
  margin-bottom: 0;
}

.news-list-style01 .item dt {
  color: #d89597;
  font-size: 120%;
  line-height: 2.6;
  width: 150px;
  margin-right: 4%;
  position: relative;
  box-sizing: border-box;
}

.news-list-style01.color02 .item dt {
  color: #554345;
}

.news-list-style01.color03 .item dt {
  color: #a1c4bb;
}

.news-list-style01 .item dd {
  flex: 1;
  box-sizing: border-box;
}

.news-list-style01 .item dd .subj {
  font-size: 150%;
}

.news-list-style01 .item dd .txt01 {
  font-size: 120%;
}

@media screen and (max-width: 1000px) {
  .news-list-style01 .item dt {
    font-size: 100%;
    width: 120px;
  }

  .news-list-style01 .item dd .subj {
    font-size: 130%;
  }

  .news-list-style01 .item dd .txt01 {
    font-size: 100%;
  }
}

@media screen and (max-width: 767px) {
  .news-list-style01 .item dt {
    width: 100%;
  }

  .news-list-style01 .item dd {
    width: 100%;
    flex: auto;
  }
}

@media screen and (max-width: 480px) {
  .news-list-style01 .item dd .subj {
    font-size: 115%;
  }
}

/* list-style01 --------------- */

.list-style01.non-slide {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.list-style01.non-slide .item {
  width: 22.75%;
  margin: 0 3% 3% 0;
}

.list-style01.non-slide .item:nth-of-type(4n+4) {
  margin-right: 0;
}

.list-style01.non-slide .item:last-of-type {
  margin-right: 0;
}

.list-style01.non-slide .item:nth-last-of-type(1),
.list-style01.non-slide .item:nth-last-of-type(2),
.list-style01.non-slide .item:nth-last-of-type(3),
.list-style01.non-slide .item:nth-last-of-type(4) {
  margin-bottom: 0;
}

.list-style01 .item {
  display: block !important;
}

.list-style01 .item a {
  text-decoration: none;
  display: block;
}

.list-style01 .item .img-blc {
  text-align: center;
  position: relative;
  overflow: hidden;
}

.list-style01 .item .img-blc.animation-hide {
  opacity: 1;
}

.list-style01 .item .img-blc::after {
  content: "";
  background-color: #d89597;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 600ms ease-in-out;
}

.list-style01 .item .img-blc.do-animate::after {
  height: 0;
}

.list-style01 .item .img-blc img {
  text-align: center;
  margin: auto;
  position: relative;
  transform: scale(1.2);
  transition: all 1000ms ease-in-out;
}

.list-style01 .item .img-blc.do-animate img {
  transform: scale(1);
}

.list-style01 .item .txt-blc {
  padding: 15px 50px 15px 20px;
  box-shadow: 0px 1px 2px 0px rgba(170, 170, 170, 0.75);
  position: relative;
  box-sizing: border-box;
}

.list-style01 .item .txt-blc::after {
  font-family: "Font Awesome 5 Free";
  background-color: #d89597;
  color: #fff;
  content: '\f054';
  font-weight: 900;
  font-size: 14px;
  width: 26px;
  height: 26px;
  text-indent: 2px;
  border-radius: 99px;
  margin: auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  transition: all 400ms ease-in-out;
}

.list-style01 .item a:hover .txt-blc::after {
  background-color: #554345;
}

.list-style01 .item .txt-blc .txt-hide {
  display: block;
  position: relative;
  overflow: hidden;
}

.list-style01 .item .txt-blc .txt01 {
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  position: absolute;
  bottom: 0;
  left: 0;
}

.list-style01 .item .txt-blc .txt02 {
  display: inline-flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
}

.list-style01 .item a:hover .txt-blc .txt01 {
  animation: hoverListStyle01Text 0.8s;
}

@keyframes hoverListStyle01Text {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@media screen and (max-width: 767px) {
  .list-style01.non-slide .item {
    width: 48%;
    margin: 0 4% 4% 0;
  }

  .list-style01.non-slide .item:nth-of-type(4n+4) {
    margin-right: 4%;
  }

  .list-style01.non-slide .item:nth-of-type(2n+2) {
    margin-right: 0;
  }

  .list-style01.non-slide .item:last-of-type {
    margin-right: 0;
  }

  .list-style01.non-slide .item:nth-last-of-type(3),
  .list-style01.non-slide .item:nth-last-of-type(4) {
    margin-bottom: 4%;
  }

  .list-style01 .item .txt-blc {
    padding: 10px 45px 10px 10px;
  }

  .list-style01 .item .txt-blc::after {
    font-size: 14px;
    width: 24px;
    height: 24px;
    line-height: 2;
    text-indent: 3px;
  }
}

/* list-style02 --------------- */

.list-style02 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.list-style02 li {
  width: 30%;
  margin: 0 5% 5% 0;
  display: flex;
  flex-direction: column;
}

.list-style02 li:nth-of-type(3n+3) {
  margin-right: 0;
}

.list-style02 li:last-of-type {
  margin-right: 0;
}

.list-style02 li .img {
  width: 100%;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.list-style02 li .img.animation-hide {
  opacity: 1;
}

.list-style02 li .img img {
  text-align: center;
  position: relative;
  transition: all 1000ms ease-in-out;
}

.list-style02 li .subj {
  width: 100%;
  font-size: 150%;
  padding: 10px 15px;
  box-sizing: border-box;
}

.list-style02 li .txt01 {
  width: 100%;
  font-size: 120%;
  padding: 0 5px;
  box-sizing: border-box;
}

.list-style02 li .btn-style02 {
  width: 100%;
  margin-top: auto;
  box-sizing: border-box;
}

.list-style02 li .btn-style02 a {
  font-size: 100%;
  text-align: left;
  display: block;
}

.list-style02 li .btn-style02 a .txt01,
.list-style02 li .btn-style02 a .txt02 {
  padding-left: 40px;
  justify-content: flex-start;
}

@media screen and (max-width: 1200px) {

  .list-style02 li .btn-style02 a .txt01,
  .list-style02 li .btn-style02 a .txt02 {
    padding-left: 20px;
  }
}

@media screen and (max-width: 1000px) {
  .list-style02 {
    max-width: 670px;
    margin-left: auto;
    margin-right: auto;
  }

  .list-style02 li {
    width: 47.5%;
  }

  .list-style02 li:nth-of-type(3n+3) {
    margin-right: 5%;
  }

  .list-style02 li:nth-of-type(2n+2) {
    margin-right: 0;
  }

  .list-style02 li:last-of-type {
    margin-right: 0;
  }
}

@media screen and (max-width: 767px) {
  .list-style02 li {
    width: 49%;
    margin-right: 2%;
  }

  .list-style02 li:nth-of-type(3n+3) {
    margin-right: 2%;
  }

  .list-style02 li:nth-of-type(2n+2) {
    margin-right: 0;
  }

  .list-style02 li:last-of-type {
    margin-right: 0;
  }

  .list-style02 li .subj {
    font-size: 130%;
  }

  .list-style02 li .txt01 {
    font-size: 100%;
  }
}

@media screen and (max-width: 480px) {
  .list-style02 {
    max-width: 320px;
  }

  .list-style02 li {
    width: 100%;
    margin-right: 0;
  }

  .list-style02 li:nth-of-type(3n+3) {
    margin-right: 0;
  }

  .list-style02 li .subj {
    font-size: 120%;
  }
}

/* list-style03 --------------- */

.list-style03 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.list-style03 li {
  width: 44%;
  margin: 0 12% 4% 0;
}

.list-style03 li:nth-of-type(2n+2) {
  margin-right: 0;
}

.list-style03 li:last-of-type {
  margin-right: 0;
}

.list-style03 li .txt-blc dt {
  font-size: 140%;
  border-bottom: 1px solid #f3f1ef;
  padding: 7px 0;
  box-sizing: border-box;
}

.list-style03 li .txt-blc dd {
  font-size: 120%;
  padding: 7px 10px;
  box-sizing: border-box;
}

.list-style03 li .img-blc {
  text-align: center;
}

.list-style03 li .img-list {
  display: flex;
  flex-wrap: wrap;
}

.list-style03 li .img-list .item {
  width: 49%;
  margin: 0 2% 2% 0;
}

.list-style03 li .img-list .item:nth-of-type(2n+2) {
  margin-right: 0;
}

.list-style03 li .img-list .item .txt01 {
  font-size: 120%;
  padding: 7px 10px;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .list-style03 li {
    width: 48%;
    margin: 0 4% 4% 0;
  }

  .list-style03 li .txt-blc dt {
    font-size: 130%;
  }

  .list-style03 li .txt-blc dd {
    font-size: 100%;
  }

  .list-style03 li .img-list .item .txt01 {
    font-size: 100%;
  }
}

@media screen and (max-width: 480px) {
  .list-style03 li {
    width: 100%;
    margin-right: 0;
  }

  .list-style03 li .txt-blc dt {
    font-size: 115%;
  }
}

/* list-style04 --------------- */

.list-style04 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.list-style04 li {
  width: 47%;
  margin: 0 6% 5% 0;
  display: flex;
  flex-direction: column;
}

.list-style04 li:nth-of-type(2n+2) {
  margin-right: 0;
}

.list-style04 li:last-of-type {
  margin-right: 0;
}

.list-style04 li .img {
  text-align: center;
}

.list-style04 li .subj {
  font-size: 150%;
  width: 100%;
  text-align: center;
  padding: 10px 15px;
  box-sizing: border-box;
}

.list-style04 li .txt-list {
  width: 100%;
  padding: 0 5px;
  box-sizing: border-box;
}

.list-style04 li .txt-list dt {
  font-size: 130%;
}

.list-style04 li .txt-list dd {
  font-size: 120%;
  margin-bottom: 6%;
}

.list-style04 li .txt-list dd:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .list-style04 li .subj {
    font-size: 130%;
  }

  .list-style04 li .txt-list dt {
    font-size: 110%;
  }

  .list-style04 li .txt-list dd {
    font-size: 100%;
  }
}

@media screen and (max-width: 480px) {
  .list-style04 li {
    width: 100%;
    margin-right: 0;
  }

  .list-style04 li .subj {
    font-size: 120%;
  }
}

/* list-style05 --------------- */

.list-style05 li {
  margin-bottom: 6%;
  display: flex;
  flex-wrap: wrap;
}

.list-style05 li .txt-blc {
  flex: 1;
  box-sizing: border-box;
}

.list-style05 li .txt-blc .subj {
  font-size: 200%;
  margin-bottom: 2%;
}

.list-style05 li .txt-blc .txt01 {
  font-size: 140%;
}

.list-style05 li .img-list {
  width: 57%;
  margin-left: 4%;
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;
}

.list-style05 li .img-list .img-blc {
  width: 46%;
  margin-right: 8%;
  box-sizing: border-box;
}

.list-style05 li .img-list .img-blc:nth-of-type(2n+2) {
  margin-right: 0;
}

.list-style05 li .img-list .img-blc .img {
  margin-bottom: 4%;
}

@media screen and (max-width: 767px) {
  .list-style05 li .txt-blc .subj {
    font-size: 160%;
  }

  .list-style05 li .txt-blc .txt01 {
    font-size: 120%;
  }
}

@media screen and (max-width: 640px) {
  .list-style05 li .txt-blc {
    width: 100%;
    flex: auto;
  }

  .list-style05 li .txt-blc .subj {
    text-align: center;
  }

  .list-style05 li .img-list {
    width: 100%;
    margin-left: 0;
    margin-top: 2%;
  }
}

@media screen and (max-width: 480px) {
  .list-style05 li .txt-blc .subj {
    font-size: 130%;
  }

  .list-style05 li .txt-blc .txt01 {
    font-size: 110%;
  }

  .list-style05 li .img-list .img-blc {
    width: 48%;
    margin-right: 4%;
  }
}

/* list-style06 --------------- */

.list-style06 li {
  margin-bottom: 2%;
  display: flex;
  flex-wrap: wrap;
}

.list-style06 li .catch-blc {
  background-color: #554345;
  width: 14%;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.list-style06 li .catch-blc .txt01 {
  color: #fff;
  font-size: 180%;
}

.list-style06 li .detail-blc {
  background-color: #f3f1ef;
  width: 86%;
  padding: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  box-sizing: border-box;
}

.list-style06 li .detail-blc .txt01 {
  font-size: 150%;
  width: 28%;
  line-height: 1.4;
  padding-left: 4%;
  box-sizing: border-box;
}

.list-style06 li .detail-blc .txt01 .txt {
  display: block;
}

.list-style06 li .detail-blc .txt01 .small {
  font-size: 80%;
  display: block;
}

.list-style06 li .detail-blc .txt02 {
  width: 39%;
  box-sizing: border-box;
}

.list-style06 li .detail-blc .txt02 .txt {
  background-color: #fff;
  font-size: 150%;
  text-align: center;
  border-radius: 25px;
  padding: 2px 12%;
  display: block;
  box-shadow: inset 0px 3px 5px 0px rgba(0, 0, 0, 0.15);
}

.list-style06 li .detail-blc .txt03 {
  width: 33%;
  padding-left: 4%;
  box-sizing: border-box;
}

.list-style06 li .detail-blc .txt03 .txt {
  font-size: 150%;
}

@media screen and (max-width: 1000px) {
  .list-style06 li .catch-blc {
    padding: 1vw;
  }

  .list-style06 li .catch-blc .txt01 {
    font-size: 3vw;
  }

  .list-style06 li .detail-blc {
    padding: 1vw;
  }

  .list-style06 li .detail-blc .txt01 {
    font-size: 2.4vw;
  }

  .list-style06 li .detail-blc .txt02 .txt {
    font-size: 2.4vw;
  }

  .list-style06 li .detail-blc .txt03 .txt {
    font-size: 2.4vw;
  }
}

@media screen and (max-width: 480px) {
  .list-style06 li .catch-blc {
    width: 25%;
    padding: 10px;
  }

  .list-style06 li .catch-blc .txt01 {
    font-size: 125%;
  }

  .list-style06 li .detail-blc {
    width: 75%;
    padding: 10px;
  }

  .list-style06 li .detail-blc .txt01 {
    font-size: 115%;
    width: 100%;
    margin-bottom: 2%;
  }

  .list-style06 li .detail-blc .txt02 {
    width: 100%;
    padding-left: 4%;
    margin-bottom: 2%;
  }

  .list-style06 li .detail-blc .txt02 .txt {
    font-size: 115%;
    padding-left: 8%;
    padding-right: 8%;
  }

  .list-style06 li .detail-blc .txt03 {
    width: 100%;
  }

  .list-style06 li .detail-blc .txt03 .txt {
    font-size: 115%;
  }
}

/* list-style07 --------------- */

.list-style07 {
  display: flex;
  flex-wrap: wrap;
}

.list-style07 li {
  background-color: #fff;
  width: 30.66%;
  min-height: 170px;
  padding: 2%;
  margin: 0 4% 4% 0;
  box-sizing: border-box;
}

.list-style07 li:nth-of-type(3n+3) {
  margin-right: 0;
}

.list-style07 li .subj {
  font-size: 130%;
  line-height: 1.6;
  border-bottom: 1px solid #f3f1ef;
  padding-bottom: 2%;
  margin-bottom: 4%;
}

.list-style07 li .txt01 {
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .list-style07 li .subj {
    font-size: 120%;
  }
}

@media screen and (max-width: 640px) {
  .list-style07 li {
    width: 48%;
    padding: 4%;
  }

  .list-style07 li:nth-of-type(3n+3) {
    margin-right: 4%;
  }

  .list-style07 li:nth-of-type(2n+2) {
    margin-right: 0;
  }
}

@media screen and (max-width: 480px) {
  .list-style07 li .subj {
    font-size: 110%;
  }
}

/* list-style08 --------------- */

.list-style08 {
  display: flex;
  flex-wrap: wrap;
}

.list-style08 li {
  width: 47%;
  margin: 0 6% 4% 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  box-sizing: border-box;
}

.list-style08 li:nth-of-type(2n+2) {
  margin-right: 0;
}

.list-style08 li .img-blc {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-right: 20px;
}

.list-style08 li .img-blc img {
  flex: 0 0 auto;
}

.list-style08 li .txt-blc {
  flex: 1;
}

.list-style08 li .txt-blc .txt01 {
  font-size: 120%;
}

@media screen and (max-width: 767px) {
  .list-style08 li .txt-blc .txt01 {
    font-size: 100%;
  }

  .list-style08 li {
    width: 100%;
    margin-right: 0;
    margin-bottom: 6%;
  }
}

@media screen and (max-width: 480px) {
  .list-style08 li .img-blc {
    width: 48px;
    margin-right: 15px;
  }
}

/* list-style09 --------------- */

.list-style09 li {
  border-bottom: 1px solid #f3f1ef;
  padding: 20px 30px;
}

.list-style09 li a {
  font-size: 120%;
  text-decoration: none;
  display: flex;
  transition: all 400ms ease-in-out;
}

.list-style09 li a:hover {
  opacity: 0.7;
}

.list-style09 li .txt01 {
  flex: 1;
}

.list-style09 li .txt02 {
  width: 46px;
  text-align: center;
  margin-left: 20px;
}

@media screen and (max-width: 767px) {
  .list-style09 li {
    padding: 10px 4%;
  }

  .list-style09 li a {
    font-size: 100%;
  }

  .list-style09 li .txt02 {
    width: 38px;
  }
}

/* slide-style01 --------------- */

.slide-style01 .slider-controls {
  text-align: center;
  display: flex;
  padding: 0 20px;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.slide-style01 .slider-main.only-one+.slider-controls {
  display: none;
}

.slide-style01 .slider-controls .slider-nav {
  width: calc(100% - 80px);
  padding: 0 20px;
  box-sizing: border-box;
}

.slide-style01 .slider-controls .slider-nav.slider-fit {
  display: flex;
  justify-content: center;
}

.slide-style01 .slider-controls .slider-nav.slider-fit .slick-list {
  width: 100%;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.slide-style01 .slider-controls .slider-nav.slider-fit .slick-track {
  display: flex;
  justify-content: center;
}

.slide-style01 .slider-controls .slider-nav .slick-slide.pointer-none {
  pointer-events: none !important;
}

.slide-style01 .slider-controls .slider-nav .dot {
  width: auto !important;
  padding: 8px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
}

.slide-style01 .slider-controls .slider-nav .dot::before {
  content: "";
  background-color: #ccc6c7;
  width: 8px;
  height: 8px;
  border-radius: 99px;
  display: block;
}

.slide-style01 .slider-controls .slider-nav .slick-current .dot::before {
  background-color: #554345;
}

.slide-style01 .slider-controls .slide-m-prev,
.slide-style01 .slider-controls .slide-m-next {
  background: none;
  width: 40px;
  border: 0;
  padding: 0;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.slide-style01 .slider-controls .slide-m-prev::before,
.slide-style01 .slider-controls .slide-m-next::before {
  font-family: "Font Awesome 5 Free";
  background-color: #554345;
  color: #fff;
  content: '\f053';
  font-weight: 900;
  font-size: 18px;
  width: 40px;
  height: 40px;
  text-indent: -2px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 400ms ease-in-out;
}

.slide-style01 .slider-controls .slide-m-prev:hover::before,
.slide-style01 .slider-controls .slide-m-next:hover::before {
  background-color: #d89597;
}

.slide-style01 .slider-controls .slide-m-next::before {
  content: '\f054';
  text-indent: 2px;
}

/* slide-style02 --------------- */

.slide-style02 .txt-img-blc {
  padding: 0 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.slide-style02 .txt-img-blc .txt-blc {
  width: 37%;
  padding-left: 6%;
  margin-right: 4%;
  box-sizing: border-box;
}

.slide-style02 .txt-img-blc .txt-blc .subj {
  font-size: 180%;
}

.slide-style02 .txt-img-blc .txt-blc .txt {
  font-size: 140%;
}

.slide-style02 .txt-img-blc .img-blc {
  text-align: center;
  flex: 1;
}

.slide-style02 .txt-img-blc .img-blc .img-animate01 {
  width: 100%;
}

.slide-style02 .txt-img-blc .img-blc .img {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 100%;
  padding-top: 66%;
  margin: 0 auto;
}

.slide-style02 .slider-controls {
  max-width: 320px;
  text-align: center;
  padding: 0 20px;
  margin: 4% auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.slide-style02 .slider-main.only-one+.slider-controls {
  display: none;
}

.slide-style02 .slider-controls .slider-nav {
  width: calc(100% - 80px);
  padding: 0 20px;
  box-sizing: border-box;
}

.slide-style02 .slider-controls .slider-nav.slider-fit {
  display: flex;
  justify-content: center;
}

.slide-style02 .slider-controls .slider-nav.slider-fit .slick-list {
  width: 100%;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.slide-style02 .slider-controls .slider-nav.slider-fit .slick-track {
  display: flex;
  justify-content: center;
}

.slide-style02 .slider-controls .slider-nav .slick-slide.pointer-none {
  pointer-events: none !important;
}

.slide-style02 .slider-controls .slider-nav .dot {
  width: auto !important;
  padding: 8px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
}

.slide-style02 .slider-controls .slider-nav .dot::before {
  content: "";
  background-color: #ccc6c7;
  width: 8px;
  height: 8px;
  border-radius: 99px;
  display: block;
}

.slide-style02 .slider-controls .slider-nav .slick-current .dot::before {
  background-color: #554345;
}

.slide-style02 .slider-controls .slide-m-prev,
.slide-style02 .slider-controls .slide-m-next {
  background: none;
  width: 40px;
  border: 0;
  padding: 0;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.slide-style02 .slider-controls .slide-m-prev::before,
.slide-style02 .slider-controls .slide-m-next::before {
  font-family: "Font Awesome 5 Free";
  background-color: #554345;
  color: #fff;
  content: '\f053';
  font-weight: 900;
  font-size: 18px;
  width: 40px;
  height: 40px;
  text-indent: -2px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 400ms ease-in-out;
}

.slide-style02 .slider-controls .slide-m-prev:hover::before,
.slide-style02 .slider-controls .slide-m-next:hover::before {
  background-color: #d89597;
}

.slide-style02 .slider-controls .slide-m-next::before {
  content: '\f054';
  text-indent: 2px;
}

@media screen and (max-width: 1522px) {
  .slide-style02 .txt-img-blc .txt-blc .subj {
    font-size: 1.89vw;
  }

  .slide-style02 .txt-img-blc .txt-blc .txt {
    font-size: 1.472vw;
  }

  .slide-style02 .txt-img-blc .img-blc .img-animate01 {
    width: 60%;
  }
}

@media screen and (max-width: 767px) {
  .slide-style02 .txt-img-blc .txt-blc {
    width: 100%;
    max-width: 60%;
    padding-left: 0;
    margin-right: auto;
    margin-left: auto;
    margin-top: 2%;
    order: 1;
  }

  .slide-style02 .txt-img-blc .txt-blc .subj {
    font-size: 150%;
  }

  .slide-style02 .txt-img-blc .txt-blc .txt {
    font-size: 130%;
  }

  .slide-style02 .txt-img-blc .img-blc {
    width: 100%;
    flex: auto;
  }
}

@media screen and (max-width: 480px) {
  .slide-style02 .txt-img-blc .txt-blc {
    max-width: none;
  }

  .slide-style02 .txt-img-blc .txt-blc .subj {
    font-size: 125%;
  }

  .slide-style02 .txt-img-blc .txt-blc .txt {
    font-size: 115%;
  }

  .slide-style02 .txt-img-blc .img-blc .img-animate01 {
    width: 100%;
  }
}

/* slide-style03 --------------- */

.slide-style03 {
  max-width: 1010px;
  margin: 0 auto;
}

.slide-style03 .img-blc {
  margin: 0 25px;
  position: relative;
  display: block;
  overflow: hidden;
  box-sizing: border-box;
}

.slide-style03 .img-blc .img {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  padding-top: 580px;
  margin: auto;
}

.slide-style03 .img-blc .img::before {
  content: "";
  background-color: rgba(243, 241, 239, 0.8);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 1;
  visibility: visible;
  animation: slideStyle03BgIn 0.4s forwards;
}

.slide-style03 .slick-slide.slick-current.do-animate .img-blc .img::before {
  height: 0;
  opacity: 0;
  visibility: hidden;
  animation: slideStyle03BgOut 0.4s forwards;
}

.slide-style03 .img-blc .subj {
  background-color: rgba(255, 255, 255, 0.8);
  color: #554345;
  font-size: 140%;
  font-weight: bold;
  width: 100%;
  padding: 10px 20px;
  position: absolute;
  bottom: 0;
  box-sizing: border-box;
  z-index: 1;
}

.slide-style03 .slick-slide .subj {
  opacity: 0;
  visibility: hidden;
  animation: slideStyle03SubjOut 0.8s forwards;
}

.slide-style03 .slick-slide.slick-current.do-animate .subj {
  opacity: 1;
  visibility: visible;
  animation: slideStyle03SubjIn 0.8s forwards;
}

.slide-style03 .slider-controls {
  max-width: 320px;
  text-align: center;
  padding: 0 20px;
  margin: 4% auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.slide-style03 .slider-main.only-one+.slider-controls {
  display: none;
}

.slide-style03 .slider-main .slick-list {
  overflow: visible !important;
}

.slide-style03 .slider-controls .slider-nav {
  width: calc(100% - 80px);
  padding: 0 20px;
  box-sizing: border-box;
}

.slide-style03 .slider-controls .slider-nav.slider-fit {
  display: flex;
  justify-content: center;
}

.slide-style03 .slider-controls .slider-nav.slider-fit .slick-list {
  width: 100%;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.slide-style03 .slider-controls .slider-nav.slider-fit .slick-track {
  display: flex;
  justify-content: center;
}

.slide-style03 .slider-controls .slider-nav .slick-slide.pointer-none {
  pointer-events: none !important;
}

.slide-style03 .slider-controls .slider-nav .dot {
  width: auto !important;
  padding: 8px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
}

.slide-style03 .slider-controls .slider-nav .dot::before {
  content: "";
  background-color: #ccc6c7;
  width: 8px;
  height: 8px;
  border-radius: 99px;
  display: block;
}

.slide-style03 .slider-controls .slider-nav .slick-current .dot::before {
  background-color: #554345;
}

.slide-style03 .slider-controls .slide-m-prev,
.slide-style03 .slider-controls .slide-m-next {
  background: none;
  width: 40px;
  border: 0;
  padding: 0;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.slide-style03 .slider-controls .slide-m-prev::before,
.slide-style03 .slider-controls .slide-m-next::before {
  font-family: "Font Awesome 5 Free";
  background-color: #554345;
  color: #fff;
  content: '\f053';
  font-weight: 900;
  font-size: 18px;
  width: 40px;
  height: 40px;
  text-indent: -2px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 400ms ease-in-out;
}

.slide-style03 .slider-controls .slide-m-prev:hover::before,
.slide-style03 .slider-controls .slide-m-next:hover::before {
  background-color: #d89597;
}

.slide-style03 .slider-controls .slide-m-next::before {
  content: '\f054';
  text-indent: 2px;
}

@keyframes slideStyle03BgIn {
  0% {
    height: 100%;
    opacity: 0;
    visibility: hidden;
  }

  100% {
    height: 100%;
    opacity: 1;
    visibility: visible;
  }
}

@keyframes slideStyle03BgOut {
  0% {
    height: 100%;
    opacity: 1;
    visibility: visible;
  }

  100% {
    height: 0;
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes slideStyle03SubjIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }

  100% {
    opacity: 1;
    visibility: visible;
  }
}

@keyframes slideStyle03SubjOut {
  0% {
    opacity: 1;
    visibility: visible;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@media screen and (max-width: 1200px) {
  .slide-style03 {
    max-width: 80vw;
  }

  .slide-style03 .img-blc {
    margin-left: 2.0833vw;
    margin-right: 2.0833vw;
  }

  .slide-style03 .img-blc .img {
    padding-top: 45.834vw;
  }
}

@media screen and (max-width: 767px) {
  .slide-style03 .img-blc .subj {
    font-size: 2.865vw;
    padding: 1.4vw 2.7vw;
  }
}

@media screen and (max-width: 480px) {
  .slide-style03 {
    max-width: 96vw;
  }

  .slide-style03 .img-blc .img {
    padding-top: 55.4vw;
  }

  .slide-style03 .slider-main .slick-list {
    overflow: hidden !important;
  }
}

/* txt-list-style01 --------------- */

.txt-list-style01 li {
  margin-bottom: 4%;
}

.txt-list-style01 li .txt01 {
  font-size: 150%;
  line-height: 1.8;
  padding-left: 48px;
  position: relative;
}

.txt-list-style01 li .txt01::before {
  content: "";
  background: url(../img/common/icon_correct01.png) no-repeat center center;
  background-size: contain;
  width: 28px;
  height: 18px;
  position: absolute;
  top: 10px;
  left: 0;
}

@media screen and (max-width: 767px) {
  .txt-list-style01 li .txt01 {
    font-size: 130%;
    padding-left: 38px;
  }

  .txt-list-style01 li .txt01::before {
    width: 22px;
    height: 14px;
    top: 7px;
  }
}

@media screen and (max-width: 480px) {
  .txt-list-style01 li .txt01 {
    font-size: 115%;
    padding-left: 30px;
  }

  .txt-list-style01 li .txt01::before {
    width: 18px;
    height: 12px;
    top: 8px;
  }
}

/* txt-list-style02 --------------- */

.txt-list-style02 {
  counter-reset: txt-list-style02;
}

.txt-list-style02 li {
  counter-increment: txt-list-style02;
  margin-bottom: 4%;
}

.txt-list-style02 li .txt01 {
  font-size: 150%;
  line-height: 1.8;
  padding-left: 65px;
  position: relative;
}

.txt-list-style02 li .txt01::before {
  content: "（"counter(txt-list-style02) "）";
  position: absolute;
  left: 0;
}

@media screen and (max-width: 767px) {
  .txt-list-style02 li .txt01 {
    font-size: 130%;
    padding-left: 50px;
  }
}

@media screen and (max-width: 480px) {
  .txt-list-style02 li .txt01 {
    font-size: 115%;
    padding-left: 40px;
  }
}

/* txt-list-style03 --------------- */

.txt-list-style03 {
  counter-reset: txt-list-style03;
}

.txt-list-style03>li {
  counter-increment: txt-list-style03;
  margin-bottom: 4%;
}

.txt-list-style03>li>.txt01 {
  font-size: 150%;
  line-height: 1.8;
  padding-left: 65px;
  position: relative;
}

.txt-list-style03>li>.txt01::before {
  content: counter(txt-list-style03) ".";
  position: absolute;
  left: 22px;
}

.txt-list-style03 .sub-list {
  counter-reset: txt-list-style03-sub;
  padding-left: 65px;
  margin-top: 7px;
}

.txt-list-style03 .sub-list>li {
  counter-increment: txt-list-style03-sub;
}

.txt-list-style03 .sub-list>li>.txt01 {
  font-size: 120%;
  line-height: 1.8;
  padding-left: 24px;
  position: relative;
}

.txt-list-style03 .sub-list>li>.txt01::before {
  content: counter(txt-list-style03-sub);
  width: 18px;
  height: 18px;
  text-align: center;
  line-height: 22px;
  border: 1px solid #554345;
  border-radius: 99px;
  position: absolute;
  top: 6px;
  left: 0;
}

@media screen and (max-width: 767px) {
  .txt-list-style03>li>.txt01 {
    font-size: 130%;
    padding-left: 50px;
  }

  .txt-list-style03>li>.txt01::before {
    left: 18px;
  }

  .txt-list-style03 .sub-list {
    padding-left: 50px;
  }

  .txt-list-style03 .sub-list>li>.txt01 {
    font-size: 100%;
    padding-left: 20px;
  }

  .txt-list-style03 .sub-list>li>.txt01::before {
    content: counter(txt-list-style03-sub);
    width: 14px;
    height: 14px;
    text-align: center;
    line-height: 15px;
    border: 1px solid #554345;
    border-radius: 99px;
    position: absolute;
    top: 4px;
    left: 0;
  }
}

@media screen and (max-width: 480px) {
  .txt-list-style03>li>.txt01 {
    font-size: 115%;
    padding-left: 40px;
  }

  .txt-list-style03 .sub-list {
    padding-left: 40px;
  }

  .txt-list-style03>li>.txt01::before {
    left: 12px;
  }
}

/* txt-list-style04 --------------- */

.txt-list-style04 {
  counter-reset: txt-list-style04;
}

.txt-list-style04 li {
  counter-increment: txt-list-style04;
  margin-bottom: 4%;
}

.txt-list-style04 li .txt01 {
  font-size: 120%;
  line-height: 1.8;
  padding-left: 45px;
  position: relative;
}

.txt-list-style04 li .txt01::before {
  content: counter(txt-list-style04);
  background-color: #f1f7f4;
  color: #a1c4bb;
  font-size: 120%;
  width: 34px;
  height: 34px;
  border-radius: 99px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  left: 0;
}

@media screen and (max-width: 767px) {
  .txt-list-style04 li .txt01 {
    font-size: 100%;
    padding-left: 35px;
  }

  .txt-list-style04 li .txt01::before {
    width: 26px;
    height: 26px;
  }
}

/* txt-list-style05 --------------- */

.txt-list-style05 {
  counter-reset: txt-list-style05;
}

.txt-list-style05>li {
  counter-increment: txt-list-style05;
  margin-bottom: 6%;
}

.txt-list-style05>li>.txt01 {
  font-size: 150%;
  line-height: 1.8;
  padding-left: 38px;
  margin-bottom: 1%;
  position: relative;
}

.txt-list-style05>li>.txt01::before {
  content: counter(txt-list-style05);
  background-color: #a1c4bb;
  color: #fff;
  font-family: 'FuturaMedium', 'ヒラギノ明朝 ProN', 'Hiragino Mincho ProN', 'Yu Mincho Light', 'YuMincho', 'Yu Mincho', '游明朝体', sans-serif !important;
  font-size: 90%;
  width: 28px;
  height: 28px;
  line-height: 1;
  border-radius: 99px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 6px;
  left: 0;
}

.txt-list-style05>li>.txt02 {
  font-size: 120%;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .txt-list-style05>li>.txt01 {
    font-size: 130%;
    padding-left: 32px;
  }

  .txt-list-style05>li>.txt01::before {
    width: 24px;
    height: 24px;
    top: 3px;
  }

  .txt-list-style05>li>.txt02 {
    font-size: 100%;
  }
}

@media screen and (max-width: 480px) {
  .txt-list-style05>li>.txt01 {
    font-size: 115%;
    padding-left: 28px;
  }

  .txt-list-style05>li>.txt01::before {
    width: 20px;
    height: 20px;
    top: 4px;
  }
}

/* --------------------------------------------------
 Button
-------------------------------------------------- */

/* btn-style01 --------------- */

.btn-style01 {
  text-align: center;
}

.btn-style01 a {
  color: #d89597;
  font-size: 120%;
  text-align: center;
  text-decoration: none;
  border: 1px solid #d89597;
  display: inline-block;
  position: relative;
  overflow: hidden;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  box-sizing: border-box;
}

.btn-style01 a.is-hover.no-first {
  color: #fff;
}

.btn-style01 a::before {
  content: "";
  background-color: #d89597;
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style01 a.is-hover.no-first::before {
  animation: btnStyle01HoverBgColor 0.6s forwards;
}

.btn-style01 a .arrow::before {
  content: "";
  background: url(../img/common/arrow_right03.png) no-repeat center center;
  background-size: 100% auto;
  width: 11px;
  height: 14px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 31px);
  opacity: 1;
  transform: translateX(0);
}

.btn-style01 a.is-hover.no-first .arrow::before {
  background-image: url(../img/common/arrow_right04.png);
}

.btn-style01 a.do-animate.no-first .arrow::before {
  animation: none;
}

.btn-style01 a.is-hover.no-first .arrow::before {
  animation: btnStyle01HoverBtnArrow 0.8s;
}

.btn-style01 a .arrow::after {
  content: "";
  background-color: #d89597;
  width: 33px;
  height: 2px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 64px);
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style01 a.is-hover.no-first .arrow::after {
  background-color: #fff;
}

.btn-style01 a.is-hover.no-first .arrow::after {
  animation: btnStyle01HoverBtnLine 0.8s;
}

.btn-style01 a .txt01 {
  width: 100%;
  height: 100%;
  padding: 12px 75px 12px 75px;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}

.btn-style01 a .txt02 {
  padding: 12px 75px 12px 75px;
  display: block;
  opacity: 0;
  visibility: hidden;
}

.btn-style01 a.do-animate.no-first .txt01 {
  animation: none;
}

.btn-style01 a.is-hover.no-first .txt01 {
  animation: btnStyle01HoverBtnText 0.8s 0.2s;
}

@keyframes btnStyle01HoverBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle01HoverBtnArrow {
  0% {
    left: auto;
    right: 20px;
    opacity: 1;
  }

  50% {
    left: auto;
    right: 20px;
    opacity: 0;
  }

  51% {
    left: calc(100% - 42px);
    right: auto;
    opacity: 0;
  }

  100% {
    left: calc(100% - 31px);
    right: auto;
    opacity: 1;
  }
}

@keyframes btnStyle01HoverBtnLine {
  0% {
    width: 33px;
    left: auto;
    right: 31px;
  }

  50% {
    width: 0px;
    left: auto;
    right: 31px;
  }

  51% {
    width: 0px;
    right: auto;
    left: calc(100% - 64px);
  }

  100% {
    width: 33px;
    right: auto;
    left: calc(100% - 64px);
  }
}

@keyframes btnStyle01HoverBgColor {
  0% {
    height: 0;
    bottom: 0;
    left: 0;
  }

  100% {
    height: 101%;
    bottom: 0;
    left: 0;
  }
}

@media screen and (max-width: 767px) {
  .btn-style01 a {
    font-size: 100%;
  }

  .btn-style01 a.is-hover.no-first {
    color: #d89597;
  }

  .btn-style01 a.is-hover.no-first::before {
    animation: none;
  }

  .btn-style01 a .arrow::before {
    width: 10px;
    height: 13px;
    left: calc(100% - 30px);
  }

  .btn-style01 a.is-hover.no-first .arrow::before {
    background-image: url(../img/common/arrow_right03.png);
  }

  .btn-style01 a .arrow::after {
    width: 24px;
    left: calc(100% - 54px);
  }

  .btn-style01 a.is-hover.no-first .arrow::after {
    background-color: #d89597;
  }

  .btn-style01 a .txt01,
  .btn-style01 a .txt02 {
    padding-left: 60px;
    padding-right: 60px;
  }

  .btn-style01 a.is-hover.no-first .arrow::before {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first .arrow::after {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first .txt01 {
    animation: none;
  }


  .btn-style01 a.do-animate::before {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first::before {
    animation: none;
  }

  .btn-style01 a.do-animate .arrow::before {
    animation: none;
  }

  .btn-style01 a.do-animate.no-first .arrow::before {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first .arrow::before {
    animation: none;
  }

  .btn-style01 a.do-animate .arrow::after {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first .arrow::after {
    animation: none;
  }

  .btn-style01 a.do-animate .txt01 {
    animation: none;
  }

  .btn-style01 a.do-animate.no-first .txt01 {
    animation: none;
  }

  .btn-style01 a.is-hover.no-first .txt01 {
    animation: none;
  }
}

/* btn-style02 --------------- */

.btn-style02 {
  text-align: center;
}

.btn-style02 a {
  color: #7f6a57;
  font-size: 120%;
  height: 64px;
  text-align: center;
  text-decoration: none;
  border: 1px solid #7f6a57;
  display: inline-block;
  position: relative;
  overflow: hidden;
  opacity: 1;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  line-height: 1.2;
  box-sizing: border-box;
}

.btn-style02 a.is-hover.no-first {
  color: #fff;
}

.btn-style02 a::before {
  content: "";
  background-color: #7f6a57;
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style02 a.do-animate::before {
  animation: btnStyle02DoBgColor 0.6s forwards;
}

.btn-style02 a.is-hover.no-first::before {
  animation: btnStyle02HoverBgColor 0.6s forwards;
}

.btn-style02 a .arrow::before {
  content: "";
  background: url(../img/common/arrow_right05.png) no-repeat center center;
  background-size: 100% auto;
  width: 11px;
  height: 14px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 31px);
  opacity: 1;
  transform: translateX(0);
}

.btn-style02 a.is-hover.no-first .arrow::before {
  background-image: url(../img/common/arrow_right04.png);
}

.btn-style02 a.do-animate.no-first .arrow::before {
  animation: none;
}

.btn-style02 a.is-hover.no-first .arrow::before {
  animation: btnStyle02HoverBtnArrow 0.8s;
}

.btn-style02 a .arrow::after {
  content: "";
  background-color: #7f6a57;
  width: 33px;
  height: 2px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 64px);
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style02 a.is-hover.no-first .arrow::after {
  background-color: #fff;
}

.btn-style02 a.do-animate .arrow::after {
  animation: btnStyle02DoBtnLine 0.8s;
}

.btn-style02 a.do-animate.no-first .arrow::after {
  animation: none;
}

.btn-style02 a.is-hover.no-first .arrow::after {
  animation: btnStyle02HoverBtnLine 0.8s;
}

.btn-style02 a .txt01 {
  width: 100%;
  height: 100%;
  padding: 12px 75px 12px 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}

.btn-style02 a .txt02 {
  padding: 12px 75px 12px 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
}

.btn-style02 a.do-animate .txt01 {
  animation: btnStyle02DoBtnText 0.8s 0.2s;
}

.btn-style02 a.do-animate.no-first .txt01 {
  animation: none;
}

.btn-style02 a.is-hover.no-first .txt01 {
  animation: btnStyle02HoverBtnText 0.8s 0.2s;
}

@keyframes btnStyle02DoBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle02HoverBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle02DoBtnArrow {
  0% {
    left: auto;
    right: 20px;
    opacity: 1;
  }

  50% {
    left: auto;
    right: 20px;
    opacity: 0;
  }

  51% {
    left: calc(100% - 42px);
    right: auto;
    opacity: 0;
  }

  100% {
    left: calc(100% - 31px);
    right: auto;
    opacity: 1;
  }
}

@keyframes btnStyle02HoverBtnArrow {
  0% {
    left: auto;
    right: 20px;
    opacity: 1;
  }

  50% {
    left: auto;
    right: 20px;
    opacity: 0;
  }

  51% {
    left: calc(100% - 42px);
    right: auto;
    opacity: 0;
  }

  100% {
    left: calc(100% - 31px);
    right: auto;
    opacity: 1;
  }
}

@keyframes btnStyle02DoBtnLine {
  0% {
    width: 33px;
    left: auto;
    right: 31px;
  }

  50% {
    width: 0px;
    left: auto;
    right: 31px;
  }

  51% {
    width: 0px;
    right: auto;
    left: calc(100% - 64px);
  }

  100% {
    width: 33px;
    right: auto;
    left: calc(100% - 64px);
  }
}

@keyframes btnStyle02HoverBtnLine {
  0% {
    width: 33px;
    left: auto;
    right: 31px;
  }

  50% {
    width: 0px;
    left: auto;
    right: 31px;
  }

  51% {
    width: 0px;
    right: auto;
    left: calc(100% - 64px);
  }

  100% {
    width: 33px;
    right: auto;
    left: calc(100% - 64px);
  }
}

@keyframes btnStyle02DoBgColor {
  0% {
    height: 101%;
    top: 0;
    left: 0;
  }

  100% {
    height: 0;
    top: 0;
    left: 0;
  }
}

@keyframes btnStyle02HoverBgColor {
  0% {
    height: 0;
    bottom: 0;
    left: 0;
  }

  100% {
    height: 101%;
    bottom: 0;
    left: 0;
  }
}

@keyframes btnStyle02OutBgColor {
  0% {
    height: 101%;
    top: 0;
    left: 0;
  }

  100% {
    height: 0;
    top: 0;
    left: 0;
  }
}

@media screen and (max-width: 767px) {
  .btn-style02 a {
    font-size: 100%;
    height: 53px;
  }

  .btn-style02 a.is-hover.no-first {
    color: #7f6a57;
  }

  .btn-style02 a.is-hover.no-first::before {
    animation: none;
  }

  .btn-style02 a .arrow::before {
    width: 10px;
    height: 13px;
    left: calc(100% - 30px);
  }

  .btn-style02 a.is-hover.no-first .arrow::before {
    background-image: url(../img/common/arrow_right05.png);
  }

  .btn-style02 a .arrow::after {
    width: 24px;
    left: calc(100% - 54px);
  }

  .btn-style02 a.is-hover.no-first .arrow::after {
    background-color: #7f6a57;
  }

  .btn-style02 a .txt01,
  .btn-style02 a .txt02 {
    padding-left: 60px;
    padding-right: 60px;
  }

  .btn-style02 a.is-hover.no-first .arrow::before {
    animation: none;
  }

  .btn-style02 a.is-hover.no-first .arrow::after {
    animation: none;
  }

  .btn-style02 a.is-hover.no-first .txt01 {
    animation: none;
  }
}

/* btn-style03 --------------- */

.btn-style03 {
  text-align: center;
}

.btn-style03 a {
  background-color: #a1c4bb;
  color: #fff;
  font-size: 200%;
  text-align: center;
  text-decoration: none;
  border: 1px solid #a1c4bb;
  display: inline-block;
  position: relative;
  overflow: hidden;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style03 a.animation-hide {
  opacity: 1;
}

.btn-style03.color-brown a {
  background-color: #554345;
  border-color: #554345;
}

.btn-style03 a.is-hover.no-first {
  color: #a1c4bb;
}

.btn-style03.color-brown a.is-hover.no-first {
  color: #554345;
}

.btn-style03 a::before {
  content: "";
  background-color: #fff;
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style03 a.is-hover.no-first::before {
  animation: btnStyle03HoverBgColor 0.6s forwards;
}

.btn-style03 a .txt01 {
  width: 100%;
  height: 100%;
  padding: 4px 75px 4px 75px;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}

.btn-style03 a .txt02 {
  padding: 4px 75px 4px 75px;
  display: block;
  opacity: 0;
  visibility: hidden;
}

.btn-style03 a.is-hover.no-first .txt01 {
  animation: btnStyle03HoverBtnText 0.8s 0.2s;
}

@keyframes btnStyle03HoverBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle03HoverBgColor {
  0% {
    height: 0;
    bottom: 0;
    left: 0;
  }

  100% {
    height: 101%;
    bottom: 0;
    left: 0;
  }
}

@media screen and (max-width: 767px) {
  .btn-style03 a {
    font-size: 160%;
  }

  .btn-style03 a.is-hover.no-first {
    color: #fff;
  }

  .btn-style03 a.is-hover.no-first::before {
    animation: none;
  }

  .btn-style03 a .txt01,
  .btn-style03 a .txt02 {
    padding-left: 60px;
    padding-right: 60px;
  }

  .btn-style03 a.is-hover.no-first .txt01 {
    animation: none;
  }
}

@media screen and (max-width: 480px) {
  .btn-style03 a {
    font-size: 130%;
  }
}

/* btn-style04 --------------- */

.btn-style04 {
  text-align: center;
}

.btn-style04 a {
  background-color: #fff;
  color: #7f6a57;
  font-size: 150%;
  text-align: left;
  text-decoration: none;
  border: 1px solid #fff;
  display: inline-block;
  position: relative;
  overflow: hidden;
  opacity: 1;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style04 a.is-hover.no-first {
  color: #fff;
}

.btn-style04 a::before {
  content: "";
  background-color: #7f6a57;
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  animation: btnStyle04OutBgColor 0.6s forwards;
}

.btn-style04 a.do-animate::before {
  animation: btnStyle04DoBgColor 0.6s forwards;
}

.btn-style04 a.is-hover.no-first::before {
  animation: btnStyle04HoverBgColor 0.6s forwards;
}

.btn-style04 a .arrow::before {
  content: "";
  background: url(../img/common/arrow_right05.png) no-repeat center center;
  background-size: 100% auto;
  width: 11px;
  height: 14px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 31px);
  opacity: 1;
  transform: translateX(0);
}

.btn-style04 a.is-hover.no-first .arrow::before {
  background-image: url(../img/common/arrow_right04.png);
}

.btn-style04 a.do-animate .arrow::before {
  animation: btnStyle04DoBtnArrow 0.8s;
}

.btn-style04 a.do-animate.no-first .arrow::before {
  animation: none;
}

.btn-style04 a.is-hover.no-first .arrow::before {
  animation: btnStyle04HoverBtnArrow 0.8s;
}

.btn-style04 a .arrow::after {
  content: "";
  background-color: #7f6a57;
  width: 33px;
  height: 2px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 64px);
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style04 a.is-hover.no-first .arrow::after {
  background-color: #fff;
}

.btn-style04 a.do-animate .arrow::after {
  animation: btnStyle04DoBtnLine 0.8s;
}

.btn-style04 a.do-animate.no-first .arrow::after {
  animation: none;
}

.btn-style04 a.is-hover.no-first .arrow::after {
  animation: btnStyle04HoverBtnLine 0.8s;
}

.btn-style04 a .txt01 {
  width: 100%;
  height: 100%;
  padding: 12px 75px 12px 30px;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}

.btn-style04 a .txt02 {
  padding: 12px 75px 12px 30px;
  display: block;
  opacity: 0;
  visibility: hidden;
}

.btn-style04 a.do-animate .txt01 {
  animation: btnStyle04DoBtnText 0.8s 0.2s;
}

.btn-style04 a.do-animate.no-first .txt01 {
  animation: none;
}

.btn-style04 a.is-hover.no-first .txt01 {
  animation: btnStyle04HoverBtnText 0.8s 0.2s;
}

@keyframes btnStyle04DoBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle04HoverBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@keyframes btnStyle04DoBtnArrow {
  0% {
    left: auto;
    right: 20px;
    opacity: 1;
  }

  50% {
    left: auto;
    right: 20px;
    opacity: 0;
  }

  51% {
    left: calc(100% - 42px);
    right: auto;
    opacity: 0;
  }

  100% {
    left: calc(100% - 31px);
    right: auto;
    opacity: 1;
  }
}

@keyframes btnStyle04HoverBtnArrow {
  0% {
    left: auto;
    right: 20px;
    opacity: 1;
  }

  50% {
    left: auto;
    right: 20px;
    opacity: 0;
  }

  51% {
    left: calc(100% - 42px);
    right: auto;
    opacity: 0;
  }

  100% {
    left: calc(100% - 31px);
    right: auto;
    opacity: 1;
  }
}

@keyframes btnStyle04DoBtnLine {
  0% {
    width: 33px;
    left: auto;
    right: 31px;
  }

  50% {
    width: 0px;
    left: auto;
    right: 31px;
  }

  51% {
    width: 0px;
    right: auto;
    left: calc(100% - 64px);
  }

  100% {
    width: 33px;
    right: auto;
    left: calc(100% - 64px);
  }
}

@keyframes btnStyle04HoverBtnLine {
  0% {
    width: 33px;
    left: auto;
    right: 31px;
  }

  50% {
    width: 0px;
    left: auto;
    right: 31px;
  }

  51% {
    width: 0px;
    right: auto;
    left: calc(100% - 64px);
  }

  100% {
    width: 33px;
    right: auto;
    left: calc(100% - 64px);
  }
}

@keyframes btnStyle04DoBgColor {
  0% {
    height: 101%;
    top: 0;
    left: 0;
  }

  100% {
    height: 0;
    top: 0;
    left: 0;
  }
}

@keyframes btnStyle04HoverBgColor {
  0% {
    height: 0;
    bottom: 0;
    left: 0;
  }

  100% {
    height: 101%;
    bottom: 0;
    left: 0;
  }
}

@keyframes btnStyle04OutBgColor {
  0% {
    height: 101%;
    top: 0;
    left: 0;
  }

  100% {
    height: 0;
    top: 0;
    left: 0;
  }
}

@media screen and (max-width: 767px) {
  .btn-style04 a {
    font-size: 130%;
  }

  .btn-style04 a.is-hover.no-first {
    color: #7f6a57;
  }

  .btn-style04 a.is-hover.no-first::before {
    animation: none;
  }

  .btn-style04 a .arrow::before {
    width: 10px;
    height: 13px;
    left: calc(100% - 30px);
  }

  .btn-style04 a.is-hover.no-first .arrow::before {
    background-image: url(../img/common/arrow_right05.png);
  }

  .btn-style04 a .arrow::after {
    width: 24px;
    left: calc(100% - 54px);
  }

  .btn-style04 a.is-hover.no-first .arrow::after {
    background-color: #7f6a57;
  }

  .btn-style04 a .txt01,
  .btn-style04 a .txt02 {
    padding-left: 25px;
    padding-right: 25px;
  }

  .btn-style04 a.is-hover.no-first .arrow::before {
    animation: none;
  }

  .btn-style04 a.is-hover.no-first .arrow::after {
    animation: none;
  }

  .btn-style04 a.is-hover.no-first .txt01 {
    animation: none;
  }
}

/* btn-style05 --------------- */

.btn-style05 a {
  text-decoration: none;
  display: inline-block;
  position: relative;
  overflow: hidden;
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-style05 a .txt01 {
  width: 100%;
  height: 100%;
  padding: 5px 50px 5px 0;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}

.btn-style05 a .txt02 {
  padding: 5px 50px 5px 0;
  display: block;
  opacity: 0;
  visibility: hidden;
}

.btn-style05 a.is-hover .txt01 {
  animation: btnStyle05HoverBtnText 0.8s 0.2s;
}

.btn-style05 a.is-hover .circle-right::before {
  right: 0;
}

.btn-style05 a .circle-right::before {
  font-family: "Font Awesome 5 Free";
  background-color: #d89597;
  color: #fff;
  content: '\f054';
  font-weight: 900;
  font-size: 14px;
  width: 26px;
  height: 26px;
  text-indent: 2px;
  border-radius: 99px;
  margin: auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 8px;
  transition: all 400ms ease-in-out;
}

@keyframes btnStyle05HoverBtnText {
  0% {
    bottom: 0;
  }

  50% {
    bottom: 100%;
  }

  51% {
    bottom: auto;
    top: 100%;
  }

  100% {
    bottom: auto;
    top: 0;
  }
}

@media screen and (max-width:767px) {
  .btn-style05 a .circle-right::before {
    font-size: 14px;
    width: 24px;
    height: 24px;
    line-height: 2;
    text-indent: 3px;
  }

  .btn-style05 a.is-hover .circle-right::before {
    right: 8px;
  }

  .btn-style05 a.do-animate .txt01 {
    animation: none;
  }

  .btn-style05 a.is-hover .txt01 {
    animation: none;
  }
}

/* --------------------------------------------------
 Text
-------------------------------------------------- */

.txt-sans {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif !important;
}

.txt-futura {
  font-family: 'FuturaMedium', 'ヒラギノ明朝 ProN', 'Hiragino Mincho ProN', 'Yu Mincho Light', 'YuMincho', 'Yu Mincho', '游明朝体', sans-serif !important;
}

.txt-center {
  text-align: center;
}

.txt-underline {
  text-decoration: underline;
}

.txt-big {
  font-size: 115%;
}

.txt-small {
  font-size: 85%;
}

.txt-weight {
  font-weight: bold;
}

.txt-italic {
  font-style: italic;
}

.txt-inline-blc {
  text-align: left;
  display: inline-block;
}

.txt-black {
  color: #000;
}

.txt-red {
  color: #BD2D2B;
}

.js-txt>span {
  display: inline-block;
  vertical-align: top;
  opacity: 0;
  transform: translate(0%, 20px);
}

.js-txt>span.animation {
  animation: txt-fade-up 0.5s forwards;
}

@keyframes txt-fade-up {
  0% {
    opacity: 0;
    transform: translate(0%, 20px);
  }

  100% {
    opacity: 1;
    transform: translate(0%, 0%);
  }
}

.bigtext {
  font-size: 1px;
  display: inline-flex !important;
  align-items: center;
}

.text-size-01 {
  font-size: 70%;
}

.text-size-02 {
  font-size: 80%;
}

.text-size-03 {
  font-size: 90%;
}

.text-size-04 {
  font-size: 100%;
}

.text-size-05 {
  font-size: 110%;
}

.text-size-06 {
  font-size: 120%;
}

.text-size-07 {
  font-size: 150%;
}

@media screen and (max-width: 767px) {
  .txt-for-sp {
    text-align: left !important;
  }

  .txt-for-sp br {
    display: none !important;
  }

  span.txt-for-sp {
    display: inline-block;
  }

  .bigtext {
    font-size: 2px;
  }
}

@media screen and (min-width: 650px) {
  .br-pc {
    display: block;
  }

  .br-sp {
    display: none;
  }
}

@media screen and (max-width: 650px) {
  .br-pc {
    display: none;
  }

  .br-sp {
    display: block;
  }
}

/* --------------------------------------------------
 Animation
-------------------------------------------------- */

.img-animate01 {
  display: inline-block;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  vertical-align: top;
}

.img-animate01.animation-hide {
  opacity: 1;
}

.img-animate01 img,
.img-animate01 .img {
  transition: all 1000ms ease-in-out;
}

/* --------------------------------------------------
 Other Classes
-------------------------------------------------- */

/* Spacing --------------- */

.mt-1 {
  margin-top: 1%;
}

.mt-2 {
  margin-top: 2%;
}

.mt-3 {
  margin-top: 3%;
}

.mt-4 {
  margin-top: 4%;
}

.mt-5 {
  margin-top: 5%;
}

.mt-6 {
  margin-top: 6%;
}

.mt-7 {
  margin-top: 7%;
}

.mb-1 {
  margin-bottom: 1%;
}

.mb-2 {
  margin-bottom: 2%;
}

.mb-3 {
  margin-bottom: 3%;
}

.mb-4 {
  margin-bottom: 4%;
}

.mb-5 {
  margin-bottom: 5%;
}

.mb-6 {
  margin-bottom: 6%;
}

.mb-7 {
  margin-bottom: 7%;
}

/* br --------------- */
@media screen and (max-width:640px) {
  .br-640px {
    display: none;
  }
}

/* Clear fix --------------- */

.clear-fix:after {
  content: "";
  clear: both;
  display: block;
}

/* Clear --------------- */

.clear {
  clear: both;
}

/* Hide --------------- */

.hidden {
  opacity: 0;
}

.visible {
  opacity: 1;
}

.disnon {
  display: none;
}

/* PDF icon --------------- */

.icn-pdf {
  vertical-align: bottom;
  margin: 0px 3%;
}

@media screen and (max-width: 1000px) {

  /* Hide --------------- */
  .post.hidden {
    opacity: 1;
  }
}

/* Popup --------------- */

.mfp-bg {
  animation: openBg 0.4s;
}

.white-popup-block {
  animation: open 0.4s;
}

.mfp-removing {
  animation: close 0.4s;
}

@keyframes openBg {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 0.8;
  }
}

@keyframes open {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes close {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@media screen and (max-width: 767px) {

  /* Popup --------------- */
  .popup {
    display: block;
    position: relative;
  }
}