@charset "UTF-8";

/*============================
loading
============================*/

.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 20000;
  background-color: #fff;
}

.loader,
.loader:after {
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50px;
  height: 50px;
  margin-left: -25px;
  margin-top: -30px;
}

.loader {
  position: relative;
  text-indent: -9999em;
  border-top: 5px solid #0a6973;
  border-right: 5px solid #0a6973;
  border-bottom: 5px solid #0a6973;
  border-left: 5px solid #dd5d2d;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
}

@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}


/*============================
top_img
============================*/

#top p.siteTitle {
  display: none;
}

#top h1.siteTitle {
  display: block;
}

.top_img {
  display: block;
  height: 780px;
  width: 100%;
  background: url(../images/home/top_img.jpg) no-repeat center center;
  background-size: cover;
}

.top_img .text {
  display: flex;
  justify-content: flex-end;
  padding-top: 125px;
}

.top_img .text.eng {
  padding-top: 15px;
}

.top_img .text p,
.top_img .text.eng p {
  text-align: right;
  font-size: 20px;
  color: #222;
  line-height: 1;
  letter-spacing: 0.04em;
  opacity: 0;
  animation: textanimation 0.8s ease forwards;
  animation-play-state: paused;
}

.text.is-start p,
.text.eng.is-start p {
  animation-play-state: running;
}

.top_img .text.eng p {
  font-size: 70px;
  letter-spacing: 0;
}

/* 1,6,11,16文字目 */
.text p:nth-child(1),
.text p:nth-child(6),
.text p:nth-child(11),
.text p:nth-child(16) {
  animation-delay: .2s
}

/* 2,7,12,17文字目 */
.text p:nth-child(2),
.text p:nth-child(7),
.text p:nth-child(12),
.text p:nth-child(17) {
  animation-delay: .5s
}

/* 3,8,13,18文字目 */
.text p:nth-child(3),
.text p:nth-child(8),
.text p:nth-child(13),
.text p:nth-child(18) {
  animation-delay: .8s
}

/* 4,9,14,19文字目 */
.text p:nth-child(4),
.text p:nth-child(9),
.text p:nth-child(14),
.text p:nth-child(19) {
  animation-delay: 1.1s
}

/* 5,10,15文字目 */
.text p:nth-child(5),
.text p:nth-child(10),
.text p:nth-child(15) {
  animation-delay: 1.4s
}

/* 1,6,11文字目英語 */
.text.eng p:nth-child(1),
.text.eng p:nth-child(6),
.text.eng p:nth-child(11) {
  animation-delay: .1s
}

/* 2,7,12文字目英語 */
.text.eng p:nth-child(2),
.text.eng p:nth-child(7),
.text.eng p:nth-child(12) {
  animation-delay: .4s
}

/* 3,8,13文字目英語 */
.text.eng p:nth-child(3),
.text.eng p:nth-child(8),
.text.eng p:nth-child(13) {
  animation-delay: .7s
}

/* 4,9文字目英語 */
.text.eng p:nth-child(4),
.text.eng p:nth-child(9) {
  animation-delay: 1s
}

/* 5,10文字目英語 */
.text.eng p:nth-child(5),
.text.eng p:nth-child(10) {
  animation-delay: 1.3s
}

@keyframes textanimation {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}


@media only screen and (max-width: 768px) {
  .top_img {
    margin-top: 46px;
    height: 390px;
    background: url(../images/home/top_img_sp.jpg) no-repeat left center;
    background-size: cover;
  }

  .top_img .text {
    padding-top: 70px;
  }

  .top_img .text.eng {
    padding-top: 10px;
  }

  .top_img .text p,
  .top_img .text.eng p {
    font-size: 13px;
  }

  .top_img .text.eng p {
    font-size: 38px;
  }
}


/*============================
container
============================*/

.container {
  position: relative;
}

@media only screen and (max-width: 768px) {
  .container {
    overflow: hidden;
  }
}


/*============================
h2
============================*/

h2 {
  font-size: 16px;
  font-weight: 500;
}

h2 span.eng {
  display: block;
  font-size: 45px;
  line-height: 1;
  color: #dd5d2d;
}

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

  h2 {
    font-size: 13px;
    margin-bottom: 20px;
  }

  h2 span.eng {
    display: inline-block;
    font-size: 28px;
    margin-right: 10px;
  }
}


/*============================
.intro
============================*/

.intro {
  padding: 120px 0;
  text-align: center;
}

.intro p:last-of-type {
  margin-top: 50px;
}

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

  .intro {
    padding: 80px 0;
    text-align: left;
  }

  .intro p:last-of-type {
    margin-top: 20px;
  }
}


/*============================
news(wp)
============================*/

#news {
  padding: 0;
}

#news .flex {
  align-items: flex-start;
}

#news .box {
  padding: 30px 50px;
  width: 850px;
  background-color: #f4f4f4;
  border-radius: 3px;
}

#news .box a {
  display: block;
  padding: 10px 0;
}

#news .inner .box a p span {
  font-size: 15px;
  font-weight: 700;
  margin-right: 20px;
}

#news .inner .box a p span.cat {
  padding: 5px 0;
  display: inline-block;
  background-color: #dd5d2d;
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  width: 85px;
  border-radius: 2px;
}

#news .inner .box a p span.cat.sales {
  background-color: #dd5d2d;
}

#news .inner .box a p span.cat.rental {
  background-color: #0a6973;
}

#news .inner .box a p span.cat.news {
  background-color: #1ba5d2;
}

#news .inner .box a p span.cat.other {
  background-color: #999;
}

#news .inner .box a:not(:last-child) {
  border-bottom: 1px solid #eee;
}

#news .link {
  margin-top: 30px;
}

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

  #news .box {
    padding: 10px 7%;
    width: 100%;
  }

  #news .inner .box a p span {
    font-size: 15px;
    margin-right: 10px;
  }

  #news .inner .box a p span.cat {
    padding: 5px 10px;
    width: auto;
    font-size: 11px;
  }
}


/*============================
#service
============================*/

#service {
  position: relative;
}

#service::after {
  position: absolute;
  content: '';
  background: url(../images/home/service/bg.png)no-repeat center bottom;
  background-size: cover;
  width: 100%;
  height: 720px;
  bottom: 0;
  right: 0;
  z-index: -1;
}

#service img {
  width: 500px;
}

#service .lead .eng {
  font-size: 35px;
}

#service .text img {
  width: 460px;
  margin-top: 40px;
}

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

  #service::after {
    position: absolute;
    content: '';
    background: url(../images/home/service/bg.png)no-repeat center bottom;
    background-size: cover;
    width: 100%;
    height: auto;
    bottom: 0;
    right: 0;
    z-index: -1;
  }

  #service .flex > img {
    display: block;
    background: url(../images/home/service/01_sp.png)no-repeat center center;
    background-size: 100%;
    width: 100%;
    padding-top: 59.7014%;
    height: 0;
  }

  #service .text {
    margin-top: 30px;
  }

  #service .lead .eng {
    font-size: 24px;
  }

  #service .text img {
    width: 100%;
    margin-top: 30px;
  }
}


/*============================
#insta
============================*/

#insta {
  background: url(../images/home/insta/bg.png)no-repeat center center;
  background-size: cover;
  color: #fff;
  text-align: center;
}

#insta .text {
  width: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#insta h2 {
  margin-bottom: 25px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

#insta h2 span {
  display: inline-block;
  font-size: 45px;
  color: #fff;
}

#insta .link li a {
  color: #fff;
}

#insta .link li a::before {
  background-color: #dd5d2d;
}

#insta .link li a:hover::before {
  background-color: #fff;
}

#insta .link li a:hover::after {
  color: #dd5d2d;
}

#insta .snapwidget {
  width: 624px;
  height: 416px;
}

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

  #insta {
    background: url(../images/home/insta/bg_sp.png)no-repeat center center;
    background-size: cover;
    color: #fff;
    text-align: center;
  }

  #insta .flex {
    flex-direction: column-reverse;
  }

  #insta .text {
    width: 100%;
  }

  #insta h2 {
    margin: 30px 0 15px;
    font-size: 24px;
  }

  #insta h2 span {
    font-size: 28px;
  }

  #insta .link li a::before {
    background-color: #dd5d2d;
  }

  #insta .snapwidget {
    width: 100%;
    height: 240px;
  }
}


/*============================
#staff
============================*/

#staff {
  position: relative;
}

#staff::after {
  position: absolute;
  content: '';
  background: url(../images/home/staff/bg.png)no-repeat center bottom;
  background-size: cover;
  width: 100%;
  height: 825px;
  bottom: 0;
  right: 0;
  z-index: -1;
}

#staff p {
  width: 850px;
}

#staff img {
  width: 100%;
  margin-top: 40px;
}

#staff .link {
  margin-top: 30px;
}

@media only screen and (max-width: 768px) {
  #staff p {
    width: 100%;
  }

  #staff img {
    margin-top: 30px;
  }
}


/*============================
#pay
============================*/

#pay {
  background-color: #f4f4f4;
}

#pay .box {
  background-color: #fff;
  border-radius: 3px;
  padding: 50px 60px;
}

#pay .box h2 {
  margin-bottom: 40px;
  font-size: 20px;
  line-height: 1;
  text-align: center;
  color: #0a6973;
  position: relative;
  z-index: 10;
}

#pay .box h2::after {
  position: absolute;
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background-color: #0a6973;
  top: 50%;
  z-index: -1;
}

#pay .box h2 span {
  display: inline-block;
  padding: 0 20px;
  background-color: #fff;
}

#pay .box .img {
  width: 770px;
  margin: 0 auto;
}

#pay .box .img img {
  width: 100%;
}

#pay .box .qr {
  margin-top: 35px;
  padding: 15px 185px;
  background-color: #f4f4f4;
  border-radius: 3px;
}

#pay .box .qr .flex {
  justify-content: flex-start;
}

#pay .box .qr img {
  width: 132px;
}

#pay .box .qr p {
  margin-left: 30px;
  padding-left: 30px;
  border-left: 1px solid #fff;
}


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

  #pay .box {
    padding: 7%;
  }

  #pay .box h2 {
    margin-bottom: 20px;
    font-size: 16px;
    line-height: 1.7;
  }

  #pay .box h2::after {
    display: none;
  }

  #pay .box .img {
    width: 100%;
    margin: 0 auto;
  }

  #pay .box .img img {
    width: 100%;
  }

  #pay .box .qr {
    margin-top: 20px;
    padding: 3% 5%;
  }

  #pay .box .qr img {
    display: block;
    width: 30%;
  }

  #pay .box .qr p {
    margin-left: 20px;
    padding-left: 20px;
    font-size: 13px;
  }
}
