@charset "UTF-8";
html{
  font-size: 62.5%;
  overflow-x: hidden;
}

body{
  font-family: "Yu Gothic", YuGothic, sans-serif;
  font-size: 1.4rem!important;
  counter-reset: rank_number;
}

body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
}

img{
  max-width: 100%;
  height: auto;
}


img[src$=".svg"] {
    max-width: 100%;
    height: auto;
}

a{
  color: #231815;
  text-decoration: none;
  transition: all 0.2s;
  outline: none;
}

a img{
  transition: all 0.2s;
}

p {
  word-break: break-all;
  word-wrap: break-word;
  line-height:1.75;
}



.mincho{
  font-family :YuMincho,    /* Mac用 */'Yu Mincho', /* Windows用 */serif;
  font-weight: bold;
}

.lora{
  font-family: 'Lora', serif;
}



/*---------------------------------
loading
---------------------------------*/
#loader-bg {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #ffffff;
  z-index: 10000;
}

.loader,
.loader:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;
}
.loader {
    /* margin: 60px auto; */
    font-size: 4px;
    position: absolute;
    text-indent: -9999em;
    border-top: 6px solid #ccc;
    border-right: 6px solid #ccc;
    border-bottom: 6px solid #ccc;
    border-left: 6px solid #253f77;;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation: load8 1.1s infinite linear;
    animation: load8 1.1s infinite linear;
    top: 0;
    bottom: 0;
    margin: auto;
    left: 0;
    right: 0;
}
@-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);
  }
}

/******************

  hover

******************/

a:hover {
    opacity: 0.5;
    transition: all 0.2s;
}


/*---------------------------------
header
---------------------------------*/
/*
#globalHeader {
  max-width: 1500px;
  margin: 0 100px 0 auto;
  position: relative;
}
*/
#globalHeader {
  margin: 0 auto;
  position: relative;
}


#logo{
   position: relative;
   max-width: 1100px;
   margin: 0 auto;
   z-index: 2;

}

#logo img{
    position: absolute;
   left: 0;
   top: 60px;
   width: 165px;  
}  



#navWrap {
  width: 100px;
  height: 100vh;
  background-color: #fff;
  font-family: YuMincho, 'Yu Mincho', serif;
  text-align: center;
  position: fixed;
  right: 0;
  z-index: 2;
}


.btnMenu,.btnMail{
  color: #fff;
  width: 100px;
  height: 100px;
  font-size: 1.2rem;
}


.btnMenu{
  background-color: #253f77;
  cursor: pointer;
}

.btnMenu span {
  position: absolute;
  left: 30px;
  width: 45px;
  height: 1px;
  background-color: #fff; 
}

.btnMenu span:nth-of-type(1) {
  top: 30px;
}

.btnMenu span:nth-of-type(2) {
  top: 39px;
}

.btnMenu span:nth-of-type(3) {
  top: 49px;
}

.btnMenu p {
  position: absolute;
  left: 33px;
  top: 61px;
}  



.btnMail{
  background-color: #355496;
  
}

.btnMail a{
  display: block;
  color: #fff;
  padding: 24px;
} 


.btnMail img{
  width: 38px;
  padding-bottom: 12px;
}



.siteIntro{
-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  color: #253f77;
  font-size: 1.4rem;
  padding: 50px 43px;
  font-weight: bold;  
}



/*---------------------------------
nav
---------------------------------*/

.menuContainer {
  background: rgba(37,63,119,0.3);
  width: 100vw;
  height: 100vh;
  opacity: 0;
  display: none;
  position: fixed;
  z-index: 9998;
  top: 0;
}

.menuContainer.action{
  animation-name:fadeInAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
  display: block;
}


@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


.menuWrap {
  background: url('../img/common/bg_nav.jpg') repeat;
  transition: all 0.2s  ease-out;
  position: fixed;
  width: 400px;
  top: 0;
  right: -400px;
  z-index: 9999;
  height: 100vh;
  overflow: auto;
  /*
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
  */
  font-weight: normal;
  padding: 160px 40px 60px 40px;
}
/*ios bug*/
.menuScroll{
  height: 100vh;
}



.menuWrap.action{
  right: 0;
}

.btnClose {
  font-size: 1.2rem;
  color: #253f77;
  position: absolute;
  right: 0;
  top: 30px;
}

.btnClose button{
  position: relative;
  width: 100px;
  height: 100px;  
}

.btnClose span {
  position: absolute;
  right: 30px;
  width: 45px;
  height: 1px;
  top: 20px;
  background-color: #253f77;
  
}

.btnClose span:nth-of-type(1) {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg); 
}

.btnClose span:nth-of-type(2) {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

.btnClose p {
  position: absolute;
  right: 30px;
  top: 46px;
} 



.menuList{
  margin-bottom: 100px;
}   

.menuList li a{
  color: #253f77;
  font-size: 2.4rem;
  font-weight: bold;
  font-family :YuMincho,/* Mac用 */'Yu Mincho', /* Windows用 */serif;
  display: block;
  border-bottom: 1px solid #d2d2d2;
  padding-bottom: 20px;
  margin-bottom: 20px;
}

.menuList li:last-child a{
  font-size: 1.4rem;
  padding-bottom: 0;
  margin-bottom: 0; 
  border-bottom: none; 
}

.menuList li span{
  font-family: 'Lora', serif;
  font-size: 1rem;
  font-weight: normal;
  display: block;
  color: #898989;
  letter-spacing: 0.1em;
}

/*---------------------------------
layout
---------------------------------*/

.wrapper {
  padding-top: 250px;
  /*
  max-width: 1500px;
  margin: 0 100px 0 auto;
  */
  margin: 0 auto;
}

.index.wrapper {
  padding-top: 100px;
}

/*
.outerLayout{
  max-width: 1300px;
  margin: 0 100px 0 auto;
}
*/

.innerLayout {
  max-width: 1100px;
  margin: 0 auto;
  padding-bottom:150px;
}


.contentsBox{
  padding :100px 0 0;
  margin-bottom:  150px;
  position: relative;
  background:#f1f4f6;
}

.only_sp{ display: none !important; }

/*---------------------------------
common class
---------------------------------*/

.contentTtl,.pageTtl{
  color: #253f77;
  position: relative;
  text-align: center;
  font-size: 3.6rem;
  font-family :YuMincho,/* Mac用 */'Yu Mincho', /* Windows用 */serif;
  font-weight: bold;
  padding-bottom: 60px;
}

.pageTtl{
  font-size: 4.8rem;
  padding-bottom: 30px;
  font-weight: bold;
  padding-bottom: 30px;         
}

.contentTtl span,.pageTtl span{
  display: block;
  color: #898989;
  font-family: 'Lora', serif;
  font-weight: normal;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
}  

.pageTtl span{
  font-size: 1.6rem;
}


.btnCommon {
  text-align: center;
  width: 100%;
  display: block;
}

.btnCommon a {
  border-radius: 50px;
  background: #355496;
  padding: 15px 50px;
  color: #fff;
  font-weight: bold;
  width: 250px;
  display: block;
  margin: 0 auto;
  font-size: 1.8rem;
}


.pageCatch {
  display: block;
  text-align: right;
  margin: 0 auto 150px;
  max-width: 1500px;
}


/*
.pageCatch {
  display: block;
  text-align: center;
  margin: 0 auto 150px;
}
*/

.pageIntro{
  color: #253f77;
  font-size: 4.8rem;
  text-align: center;
  padding-bottom: 150px;
  position: relative;
  display: block;
  z-index: 2;
}

.pageIntro::after{
  content: "";
  position: absolute;
  width: 1px;
  height: 120px;
  background: #253f77;
  left: 0;
  right: 0;
  margin: auto;
  bottom: -60px;
}



/*---------------------------------
footer
---------------------------------*/
#globalFooter{
  background-color: #253f77;
  position: relative;
   
}

.globalFooterInner {
  display: flex;
  position: relative;
  z-index: 1;
  margin-left: calc((100% - 1100px) / 2);
}



.footerContact{
  color: #fff;
  text-align: center;
  width: 440px;
  padding: 60px 120px 60px 0;
}


.footerContactInnerIntro{
  width: 296px;
  font-weight:bold;
  font-size: 1.8rem;
}


.footerNavWrap{
  background-color: #f1f4f6;
  padding: 60px 110px;
  flex-grow: 1;
}

.footerNav{
  margin-bottom: 70px;
}

.footerNav li{
  margin-bottom: 14px;
}

.footerNav a{
  display: block;
  color: #253f77;
  display: flex;
  font-weight: bold;
  background: url('../img/common/icon_arrow.png') no-repeat left center;
  padding-left:14px ;
}


.footerNav a span{
  color: #000;
  /*border-left: 1px #000 solid;*/
  padding-left: 12px;
  margin-left: 12px;
  font-weight: normal;
  display: block;
  position: relative;
}

.footerNav a span::before{
  content: "";
  position: absolute;
  left: 0;
  width: 1px;
  height: 12px;
  background: #adafb1;
  top: 0;
  bottom: 0;
  margin: auto;
}


.footerLogoBox{
  display: flex;
  margin-bottom: 14px;
}

.footerLogo{
  max-width: 200px !important;
  margin-right: 36px;
}

.copyright{
  color: #253f77;
  display: block;
}

.btnPageTop {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 99;
}

/*---------------------------------
footer
---------------------------------*/

.contactInner{
  background-color: #253f77;
  font-size: 1.4rem;
  width: 100%;
  padding: 14px 0;
  height: 110px;
  text-align: center;
  font-weight: bold;
  position: relative;
}

.footerContact .contactInner{
  background-color: #fff;
  width: 296px;
}  

.contactInner,
.contactInner a{
  color: #fff;
}

.footerContact .contactInner,
.footerContact .contactInner a{
  color: #253f77;
}


.contactInnerMain{
  font-size: 3.2rem;
  display: flex;
  font-weight: bold;
  justify-content: center;
}


.contactInnerMain.mailstyle{
  font-size: 2.2rem;
}

.contactInnerMain .icon{
  width: 30px;
  margin-right: 10px;
}

.contactInner.firstChild{
  margin: 20px 0 15px 0;
  line-height: 1.2;
}


/*==========================

  pager

============================*/
.pager .pagination {
  text-align: center;
}

.pager .pagination li {
  margin: 5px;
  padding: 0;
  display: inline-block;
  width: 40px;
  height: 40px;
  text-align: center;
  position: relative;
  font-weight: bold;  
}

.pager .pagination li a,
.pager .pagination li span
{
  text-align: center;
  display: block;
  text-decoration: none;
  line-height: 40px;
   
}

.pager .pagination li a {
  background:#fff;
  color: #253f77; 
}


.pager .pagination li span{
  background-color:#253f77 ;
  color: #fff;
}

.pager .pagination li a:hover,
.pager .pagination li.current {
  background-color:#253f77 ;
  color: #fff;
  opacity: 1!important;
  line-height: 40px;
}


/* Media Queries ================================================== */
/*1100*/
@media screen and (max-width: 1300px) {
  .globalFooterInner {
    margin: 0 100px 0 2%;
   }

  .footerNavWrap {
    padding: 60px 2%;
  }

}  




/* Media Queries ================================================== */
/*1100*/
@media screen and (max-width: 1100px) {
  #globalHeader {
    margin: 0 100px 0 2%;
  }

  .innerLayout{
    width: 96%;
  }
}  

/* Media Queries ================================================== */
/*896*/
@media screen and (max-width: 896px) {

  .only_pc{ display: none !important; }
  .only_sp{ display: block !important; }

  body{
    font-size: 1.6rem!important;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
  }


  body.fixed {
    position: relative;
    width: auto;
    height: auto;
  }


  /*---------------------------------
  header
  ---------------------------------*/
  #globalHeader {
    width: 100vw;
    height: 80px;
    overflow: hidden;
    margin: 0 auto;
    position: fixed;
    z-index: 99;
    background: #fff;
  }

  #logo {
    position: absolute;
    left: 3vw;
    top: 4px;
    width: 62vw;
  }

  #logo img{
    max-height: 50px;
    width: auto;
    position: static;
  }  



  .logoIntro {
    font-size: 1rem;
    color: #253f77;
    white-space: nowrap;
  }


  #navWrap {
    width: 34vw;
    height: auto;
    display: flex;
    flex-direction: row-reverse;
    position: absolute;
    right: 0;
    top: 0;
  }

  .btnMenu, .btnMail {
    width: 50%;
    height: 80px;
    position: relative;
  }

  .btnMenu span {
    position: absolute;
    left: calc((100% - 36px) / 2 );
    width: 38px;
    height: 1px;
    background-color: #fff;
  }

  .btnMenu span:nth-of-type(1) {
    top: 24px;
  }

  .btnMenu span:nth-of-type(2) {
    top: 32px;
  }

  .btnMenu span:nth-of-type(3) {
    top: 40px;
  }

  .btnMenu p {
    left: calc((100% - 34px) / 2 );
    top: 48px;
    font-size: 1rem;
    letter-spacing: 1.6px;
  }

  .btnMail {
    font-size: 1.2rem;
    line-height: 0.1;
  }

  .btnMail img {
    width: 32px;
  }


  .btnMail a{
   padding: 20px 0;
   letter-spacing: 1.6px;
  } 


  /*---------------------------------
  nav
  ---------------------------------*/

  .menuWrap {
    width: 100vw;
    top: 0;
    right: -100vw;
    padding: 145px 14px 45px 14px;
    overflow-y: scroll;
    overflow-scrolling: touch;
    -webkit-overflow-scrolling: touch;
    position:fixed;  
  }

  /*
  .menuScroll{
    overflow-y: scroll;
    overflow-scrolling: touch;
    -webkit-overflow-scrolling: touch;
  }
  */
  .menuBox{
    height: calc( 100% + 1px);
  }



  .btnClose {
    top: 15px;
  }

  .btnClose button {
    width: 60px;
    height: 60px;
  }

  .btnClose span {
    right: 15px;
    width: 30px;
    
  }

  .btnClose p {
    position: absolute;
    right: 10px;
    top: 40px;
    font-size: 1.2rem;
    color:#253f77;
  }

  .menuList {
    margin-bottom: 50px;
  }

 .contactInnerMain {
    font-size: 2.4rem;
  }

  .contactInnerMain .icon {
    width: 25px;
    margin-right: 5px;
  }

  .contactInnerMain.mailstyle {
    font-size: 1.8rem;
  }


  /*---------------------------------
  footer
  ---------------------------------*/
  .globalFooterInner {
    width: 100vw;
    margin: 0 auto;
    display: block;
  }

  .footerContact {
    width: 100%;
    padding: 30px 0;
  }

  .footerContactInnerIntro {
    width: auto;
    font-size: 2rem;
  }

  .footerContact .contactInner{
    width: 90%;
    margin: 0 auto 14px;
    height: 140px;
    font-size: 1.6rem;
    padding: 20px 0;
  }  

  .contactInner.firstChild{
    margin: 14px auto;
  }

  .footerContact .contactInnerMain {
    font-size: 2.6rem;
  }

  .footerContact .contactInnerMain .icon {
    width: 36px;
  }

  .footerContact .contactInnerMain.mailstyle {
    font-size: 2.2rem;
  }

  .footerNavWrap {
    width: 100%;
    padding: 30px 14px;
    overflow: hidden;
    max-width: 100%;
  }

  .footerNav {
    margin-bottom: 30px;
  }

  .footerLogoBox {
    display: block;
    width: 100vw;
    text-align: center;
  }

  .footerLogo {
    max-width: 240px;
  }
  
  .footerLogoBox{
    text-align: left;
  }

  .btnPageTop {
    position: static;
    width: 50px;
    margin: 0 auto 14px;
  }

  .footerLogo {
    margin-bottom: 14px;
  }

  .copyright {
    text-align: center;
  }


  /*---------------------------------
  layout
  ---------------------------------*/

  .wrapper {
    padding-top: 120px;
    max-width: initial;
    margin: 0 auto;
    width: 100vw;
  }

  .index.wrapper {
    padding-top: 80px;
  }


 .innerLayout {
    max-width: 92vw;
    margin: 0 auto;
    padding-bottom: 50px;
  }


  .contentsBox{
    padding :70px 0 0;
    margin-bottom:  50px;
  }

  /*---------------------------------
  common class
  ---------------------------------*/

  .contentTtl,.pageTtl{
    text-align: center;
    padding-bottom: 30px;
    line-height: 1;
  }

  .contentTtl{
    font-size: 2.8rem;
    line-height: 1.2;
  }

  .pageTtl {
    font-size: 3.2rem;
    padding-bottom: 30px;
    line-height: 1.4;
    letter-spacing: 2px;
  }

  .pageTtl span {
    font-size: 1.2rem;
  }

  .pageCatch {
    margin-bottom: 50px;
  }

  .pageIntro{
    font-size: 2.8rem;
    padding-bottom: 50px;
    line-height: 1.5;
  }

  .pageIntro::after{
    height: 60px;
    bottom: -30px;
  }


  .btnCommon a {
    width: 80vw;
    font-size: 1.6rem;
  }

  .btnDial {
    position: absolute !important;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: block;
    left: 0;
    top: 0;
  } 


} 


/* Media Queries ================================================== */
/*max-height: 800*/
@media screen and (max-height: 800px) {
  .btnPageTop {
    right: 100px;
  }  
}    