

/* 2020.05.24 loading時のアニメーションCSS*/

/* ローディングの背景部分のCSS */
.loader{
  background:#FFF;
  height:100%;
  left:0;
  position:fixed;
  top:0;
  width:100%;
  z-index:10;
}
 
/* ローディングのアニメーション部分のCSS (https://projects.lukehaas.me/css-loaders/) */
.loader-animation,
.loader-animation:before,
.loader-animation:after {
  background:#ffffff;
  -webkit-animation:load1 1s infinite ease-in-out;
  animation:load1 1s infinite ease-in-out;
  width:1em;
  height:4em;
}
.loader-animation {
  height:10px;
  left:50%;
  margin:-5px 0 0 -5px;
  position:absolute;
  top:50%;
  width:10px;
  color:#a83741;
  text-indent:-9999em;
  font-size:10px;
  -webkit-transform:translateZ(0);
  -ms-transform:translateZ(0);
  transform:translateZ(0);
  -webkit-animation-delay:-0.16s;
  animation-delay:-0.16s;
}
.loader-animation:before,
.loader-animation:after {
  position:absolute;
  top:0;
  content:'';
}
.loader-animation:before {
  left:-1.5em;
  -webkit-animation-delay:-0.32s;
  animation-delay:-0.32s;
}
.loader-animation:after {
  left:1.5em;
}
@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow:0 0;
    height:4em;
  }
  40% {
    box-shadow:0 -2em;
    height:5em;
  }
}
@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow:0 0;
    height:4em;
  }
  40% {
    box-shadow:0 -2em;
    height:5em;
  }
}


/* 2020.04.05 apend*/

.container #animation_container {
  position:relative;
  width: 950px;
  /*height:500px;*/
  height: auto;
  margin: 0 auto;
}

#canvas {
  position: absolute;
  /*
  top: -150px;
  */
  display: block;
  /*width: 1200px;*/
  width: 950px;
  height:500px;
}

#dom_overlay_container {
  pointer-events:none;
  overflow:hidden;
  width:950px;
  /*height:500px;*/
  height: auto;
  position:
  absolute;
  left:0px;
  top:0px;
  display:block;
}

.banner-area .overlay {
  background: none;
}

.parallax-mirror {
  height:500px !important;
}

.about-generic-area p {
  -webkit-flex: 100%;
      -ms-flex: 100%;
          flex: 100%;
}


.post_info {
  display: flex;
  margin-top: -15px;
  padding: 0;
}
.post_info li {
  padding:0 15px 0 0;
}

.generic-banner .container .gene-cont-title {
  padding-left: 0;
}

.about-generic-box.row.d-flex p {
  -webkit-flex: 100%;
    -ms-flex: 100%;
    flex: 100% !important;
}

/*カテゴリリスト*/
.wrapper {
  display: flex;
  width: 1140px;
  margin: 0 auto;
}

.contents {
  width: 75%;
  margin-right: 5%;
}

.category-list {
  width: 20%;
  padding-top: 50px;
}

.category-list li a {
  display: block;
  /*margin-bottom: 10%;*/
  padding: 10% 5%;
  font-weight: bold;
  font-size: 120%;
  border-bottom: 1px solid #ddd;
  color: #777;
}

.category-list li a:hover {
  background: #f4f4f4;
}


/*ページネーション*/
.pagination {
  width: 1140px;
  margin: 30px auto 60px;
  padding-top: 60px;
  border-top: 1px solid #ddd;
}

ul.page-numbers {
  display: flex;
}

ul.page-numbers li {
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  border-right: 1px solid #ddd;
}

ul.page-numbers li a {
  display: block;
  width: 40px;
  height: 40px;
  margin: 0 5px 0 0;
  color: #777;
}

ul.page-numbers li a:hover {
  color: #333;
  background: #f4f4f4;
  border: none;
}

ul.page-numbers li .current {
  color: #777;
  font-weight: bold;
}

ul.page-numbers li:last-child {
  border: none;
}

.d-flex {
  -webkit-align-content: stretch !important;
          align-content: stretch !important;
}



/*
@media (max-width: 480px) {
  .banner-area .fullscreen {
    height: 300px !important;
  }
}
*/


@media (max-width: 1024px) {
/*  html {
        width: 100%;
    max-width: 768px;
    overflow: hidden;
  }*/
  header .container {
    width: 100%;
  }
/*  .banner-area.relative {
    display: none;
  }*/
  .banner-area .fullscreen {
    height: 600px !important;
  }

.container #animation_container2 {
  margin-top: 150px;
}

.container #animation_container2 #canvas {
    position: absolute;
    top: 80px !important;
  }
  /* 2020.10.30 del
  .service-area {
      margin-top: 180px;
  }
  */
}

@media (max-width: 768px) {
/*  html {
        width: 100%;
    max-width: 768px;
    overflow: hidden;
  }*/
  header .container {
    width: 100%;
  }
/*  .banner-area.relative {
    display: none;
  }*/
  .banner-area .fullscreen {
    height: 465px !important;
  }
  #animation_container2 {
    width: 768px !important;
  }
  /* 2020.10.30 del
  .service-area {
      margin-top: 180px;
  }
  */
  #canvas2 {
    width: 95% !important;
  }
}

@media (max-width: 480px) {
  /* 2020.10.30 del
  .service-area {
      margin-top: 120px;
  }
  */
  .news-area {
    margin-top: 120px;
  }
  .banner-area .fullscreen {
    height: 300px !important;
  }
  .buttons {
    max-width: 100% !important;
  }
  .office_bunner {
    max-width: 100%;
    margin-right: 0;
  }
}

@media (max-width: 414px) {
  .banner-area .fullscreen {
    height: 315px !important;
  }
}

@media (max-width: 375px) {
  .banner-area .fullscreen {
    height: 300px !important;
  }
}

@media (max-width: 360px) {
  .navbar .navbar-brand img {
    height: 25px;
  }
}

@media (max-width: 321px) {
  .navbar .navbar-brand img {
    height: 25px;
  }

  .banner-area .fullscreen {
    height: 275px !important;
  }
}



@media (max-width: 991px) {

  .animation_container2 {
    position:relative;
    width: 100% !important;
    /*height:500px;*/
    height:auto !important;
  }

  #canvas2 {
    position: absolute;
    top: 137px;
    display: block;
    width: 98% !important;
    height:auto !important;
  }

  #dom_overlay_container2 {
    pointer-events:none;
    overflow:hidden;
    width:100% !important;
    /*height:600px;*/
    height:auto !important;
    position:
    absolute;
    left:0px;
    top:0px;
    display:block;
  }

  .footer-area {
    padding: 10% 10% 0;
  }

  .footer-area .container {
    padding-right: 0;
    padding-left: 0;
    padding-bottom: 40px;
  }

  .footer-area .container .row {
    margin: 0;
  }

  .footer-area .f-map {
    display: block;
    /*width: 100%;*/
  }

  .footer-area .col-lg-4.col-md-12 {
    padding: 0;
  }


  .navbar-nav li {
    padding: 0;
  }

  .navbar-nav li a {
    display: block;
    padding: 10px 0;
  }


  .generic-banner .height {
    height: 120px;
  }

  .generic-banner h2 {
    font-size: 20px;
  }

  .generic-banner p.text-white {
    font-size: 16px;
  }

  .generic-banner.relative .gene-cont-title {
    width:90%;
    flex: none;
  }


  /* NEWS */
  .wrapper {
      display: block;
      width: auto;
      margin: 0 auto;
  }

  .contents {
    width: auto;
    margin: 0;
  }

  .category-list {
    width: 90%;
    margin: 0 auto 60px;
    padding-top: 0;
  }

  .category-list li a {
    padding: 5%;
    font-size: 100%;
  }

  .pagination {
    width: auto;
  }

  .jb-cont-title.text-left {
    -webkit-flex: none;
        -ms-flex: none;
            flex: none;
    width: auto;
    padding-left: 15px;
  }

  .jb-cont-title h2, .jb-cont-title .text-white {
    width: 100%;
    padding-left: 0;
    margin-bottom: 10px;
    padding-bottom: 6px;
  }

  .jb-cont-title .text-white p {
    padding-bottom: 0;
  }

  .v-completion {
    margin-bottom: 0;
  }

  .sp-mt-50 {
    margin-top: 50px !important;
  }

}
