@charset "UTF-8";
/*------------------------------------------------------------------------------------
clearfix
------------------------------------------------------------------------------------*/
@-webkit-keyframes slideIn {
  from {
    -webkit-transform: translateY(-80px);
            transform: translateY(-80px);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes slideIn {
  from {
    -webkit-transform: translateY(-80px);
            transform: translateY(-80px);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
header {
  background: none;
  box-shadow: none;
  position: absolute;
  -webkit-transition-property: all;
          transition-property: all;
  -webkit-transition-duration: 0.2s;
          transition-duration: 0.2s;
}
header.scroll {
  position: fixed;
  background-color: #FFF;
  box-shadow: 0px 3px 13px 1px rgba(7, 7, 7, 0.24);
  -webkit-animation: slideIn 0.4s;
          animation: slideIn 0.4s;
}
header.scroll .navi-btn {
  background-color: #004ea2;
}
header.remove {
  -webkit-transform: translateY(-80px);
      -ms-transform: translateY(-80px);
          transform: translateY(-80px);
}

.navi-btn {
  background: none;
}

#wrap {
  margin-top: 0;
}

.special-block a {
  display: block;
  position: relative;
}

.special-img {
  width: 100%;
  height: 100vh;
  background: url(../img/index/special_img.jpg) center center no-repeat;
  background-size: cover;
}

.special-lead {
  position: absolute;
  top: 41.2%;
  right: -webkit-calc(50% + 12.6%);
  right: calc(50% + 12.6%);
  padding-left: 15px;
}
.special-lead img {
  height: auto;
}

.main-block {
  background: #B2D3F4 url(../img/index/main_img.jpg) center center no-repeat;
  background-size: cover;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-bottom: 5%;
  box-sizing: border-box;
}

.about {
  background: linear-gradient(90deg, #FFF 0%, #FFF 50%, #004ea2 50%, #004ea2 100%);
  position: relative;
  overflow: hidden;
}

.about-wrap {
  max-width: 1200px;
  min-height: 600px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.about-wrap > div {
  width: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.about-wrap > div:nth-child(2) {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.about-wrap > div:nth-child(1) {
  color: #FFF;
  position: relative;
}

_:-ms-lang(x)::-ms-backdrop, .about-wrap {
  height: 600px;
}

.about-logo {
  width: 48%;
}
.about-logo img {
  width: 176px;
}

.about-detail {
  padding: 20px;
  font-size: 17px;
  font-size: 1.7rem;
  line-height: 3.3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.about-detail br.sp {
  display: none;
}

.about-img01 {
  width: 40%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 99.8%;
}
.about-img01 img {
  width: 100%;
  height: 100%;
}

.about-img02 {
  position: absolute;
  right: 0;
  bottom: 0;
}

.about-img03 {
  position: absolute;
  bottom: 0;
  right: 50%;
  width: 1400px;
}

.greeting {
  min-height: 750px;
  background-color: #fefefd;
  background-image: url(../img/index/greeting_img.jpg);
  background-position: 50% bottom;
  background-repeat: no-repeat;
}
.greeting > div {
  max-width: 1200px;
  margin: 0 auto;
  padding: 90px 20px 40px;
}

.greeting-ttl {
  margin-bottom: 30px;
}

.greeting-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.8;
  margin-bottom: 30px;
}
.greeting-text p {
  margin-bottom: 15px;
}
.greeting-text p:last-child {
  margin-bottom: 0;
}
.greeting-name .img-sp {
  width: 120px;
  height: auto;
}

.philosophy {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  background-image: url(../img/index/shadow.png), url(../img/index/philosophy_bg.png);
  background-position: center center, left top;
  background-repeat: no-repeat, repeat-x;
  background-size: 276px auto, auto 100%;
  height: 400px;
}

.detail-link {
  display: inline-block;
  width: 160px;
  margin-top: 35px;
}
.detail-link a {
  display: block;
  background-color: #004ea2;
  color: #FFF;
  padding: 4px 2px 3px;
  font-size: 16px;
  font-size: 1.6rem;
  text-decoration: none;
}

.img-sp {
  display: none;
}

.history {
  background-image: url(../img/index/history_img.png), url(../img/index/history_bg.png);
  background-position: -webkit-calc(50% + 435px) center, center center;
  background-position: calc(50% + 435px) center, center center;
  background-repeat: no-repeat, no-repeat;
  background-size: auto, cover;
  min-height: 765px;
}
.history > div {
  max-width: 1200px;
  margin: 0 auto;
  padding: 200px 20px;
  color: #FFF;
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 2.2;
}
.history > div br.sp {
  display: none;
}

.history-ttl {
  font-size: 40px;
  font-size: 4.0rem;
  font-weight: normal;
  margin-bottom: 20px;
}

.history-detail {
  font-family: 'Noto Sans JP', sans-serif, "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",HiraKakuPro-W3,"メイリオ", Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.0;
  display: inline-block;
  width: 160px;
  margin-top: 40px;
}
.history-detail a {
  color: #222222;
  text-decoration: none;
  background-color: #FFF;
  display: block;
  text-align: center;
}

.history-sp {
  display: none;
}

@media only screen and (max-width: 767px){
  #wrap{
    margin-top: 0;
  }
  .special-img{
    height: auto;
    background: none;
  }
  .special-lead{
    top: auto;
    bottom: 70%;
    right: auto;
    left: 2%;
    width: 60%;
  }
  .main-block h1{
    width: 280px;
  }
  .about{
    background: #004ea2;
  }
  .about-wrap{
    min-height: initial;
    display: block;
  }
  .about-wrap > div{
    width: auto;
  }
  .about-wrap > div:nth-child(2){
    background-color: #FFF;
    padding: 12% 0 15px;
  }
  .about-wrap > div:nth-child(1){
    display: block;
  }
  _:-ms-lang(x)::-ms-backdrop, .about-wrap{
    height: auto;
    min-height: 0px;
  }
  .about-logo{
    width: 120px;
  }
  .about-detail{
    padding: 40px 0 10px;
    font-size: 1.4rem;
    line-height: 2.0;
    display: block;
    text-align: center;
  }
  .about-detail br.sp{
    display: inherit;
  }
  .about-img01{
    width: 100%;
    right: auto;
    top: 99.8%;
    left: 0;
  }
  .about-img01 img{
    height: auto;
  }
  .about-img02{
    bottom: auto;
    top: -75px;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transform-origin: right bottom;
        -ms-transform-origin: right bottom;
            transform-origin: right bottom;
    width: 30px;
  }
  .about-img03{
    right: -1400px;
    bottom: auto;
    top: 1140px;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transform-origin: left bottom;
        -ms-transform-origin: left bottom;
            transform-origin: left bottom;
  }
  .greeting{
    min-height: initial;
    min-height: auto;
    background-image: url(../img/index/greeting_bg.png), url(../img/index/greeting_img.jpg);
    background-position: left top, 58% bottom;
    background-size: 100% -webkit-calc(100% - 225px), 640px auto;
    background-size: 100% calc(100% - 225px), 640px auto;
  }
  .greeting > div{
    padding: 40px 20px 170px;
  }
  .greeting01{
    padding: 0;
  }
  .greeting02{
    padding: 0;
  }
  .greeting03{
    padding: 0;
  }
  .greeting04{
    padding: 0;
  }
  .greeting-ttl{
    margin-bottom: 20px;
  }
  .greeting-ttl img{
    width: 240px;
    height: auto;
  }
  .greeting-text{
    font-size: 1.4rem;
    line-height: 2.0;
  }
  .greeting-name{
    margin-top: 40px;
  }
  .philosophy{
    height: 260px;
    background-size: 180px auto, auto 100%;
  }
  .philosophy h3 img{
    width: 260px;
    height: auto;
  }
  .img-pc{
    display: none;
  }
  .img-sp{
    display: inherit;
  }
  .history{
    background-image: url(../img/index/history_bg.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    min-height: initial;
  }
  .history > div{
    text-align: center;
    padding: 30px 15px;
    font-size: 1.4rem;
  }
  .history > div br.sp{
    display: inherit;
  }
  .history-ttl{
    font-size: 2.6rem;
    margin-bottom: 15px;
  }
  .history-sp{
    margin-top: 20px;
    display: inline-block;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1200px){
  .main-block h1{
    width: 38%;
    max-width: 458px;
    max-height: 60vh;
  }
  .greeting{
    background-position: 64% center;
  }
  .greeting01{
    padding-right: 38%;
  }
  .greeting02{
    padding-right: 50%;
  }
  .greeting03{
    padding-right: 60%;
  }
  .greeting04{
    padding-right: 69%;
  }
  .greeting-text{
    font-size: 1.6rem;
  }
}
