@charset "UTF-8";
/* CSS Document */
.tabmenu{
  display: none;
}
@media screen and (max-width:1150px){
  .tabmenu{
  display: block;
}
  
  .wrapper{
    width: 100vw;
    overflow-x: hidden;
  }
  
  /* main */
  .mainHead{
    position: fixed;
    z-index: 1000;
  } 
  
.mainHead {
    left:0;
    width: 100%;
    align-items: center;
    height: 80px;
    padding: 0;
    z-index: 1000;
  display: block;
}  
  
  .logo{
    width: 158px;
    position: relative;
    top:10px;
    left: 5%;
    z-index: 100;
  }
  
  
  /* ハンバーガーボタン基本 */
.hamburger {
  display: inline-block;
  cursor: pointer;
  width: 20px;
  height: 15px;
  border: none;
  background: none;
  z-index: 1001; /* ナビより上 */
  position: absolute;
  right: 5%;
  top: 30px;
}
.hamburger span {
  display: block;
  position: absolute;
  width: 100%;
  height: 3px;
  background: #333;
  left: 0;
  transition: 0.3s ease;
}
.hamburger span:nth-child(1) {
  top: 0;
}
.hamburger span:nth-child(2) {
  top: 8px;
}
.hamburger span:nth-child(3) {
  top: 16px;
}

/* open時のハンバーガーを「×」に変形 */
.mainHead.open .hamburger span:nth-child(1) {
  transform: rotate(45deg);
  top: 11px;
}
.mainHead.open .hamburger span:nth-child(2) {
  opacity: 0;
}
.mainHead.open .hamburger span:nth-child(3) {
  transform: rotate(-45deg);
  top: 11px;
}
/* ナビ（モバイル）初期状態：非表示 */
.nav {
  display: none;
  background-image: url("../images/spMenuBack.webp");
  background-position:center;
  background-size: 300px auto;
  background-repeat: no-repeat;
  padding-bottom: 40px;
}
  
.nav li{
  padding-top: 30px;
  text-align: center;
  }
.mainHead .nav {
  background-color: #ffffff;
}
  
  .spdis{
    display: inline-block;
  }
  
  .headContact{
    height: 60px;
    width: 280px;
  } 
  
  
  
  /*content*/
  .mainImageWrap{
    height: auto;
    aspect-ratio: 1 / 0.5;
    display: flex;
    align-items: center;
  }
  
  .mainTextBox {
    margin: 0 auto 50px;
    padding-top: 108px;
}
  
.sec01Cont {
    padding-top: 250px;
    background-size: auto 70%;
}
  
.foot01 {
    text-align: right;
    display: block;
    justify-content: flex-end;
} 
  
.footNav {
    margin-left: 0;
}  
  
  .aboutMain{
    width: 50%;
  }
  
  .aboutMain img{
    width: 100%;
  }
  
  .sec04Cont{
    height: auto;
  }  
  
}

@media screen and (max-width:980px){
  .slide{
    position: relative;
  }
  
.slide .box {
    width: 100%;
}  

  .slide .img{
    position: absolute;
  left: 30px;
  top:30px;
}
  
.slide .name{
  height: 300px;
  display: flex;
  padding-left: 260px;
  margin-bottom: 20px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}  
  
.slide .name span {
    display:inline-block;
    margin-right: 0;
  margin-bottom: 20px;
}
  
  
  .sec04Cont{
    display: block;
    height: auto;
    }
  
    #sec04 .box{
    padding-right:0;
  }
  
  .sec04Img{
    position: inherit;
    width: 100%;
    text-align: center;
    margin-bottom: 20px;
  }
  
  .sec05Cont{
    display: block;
  }
  
  .sec05Cont .box,
  .sec05Cont .sec05Img{
    width: 100%;
}
  
  .sec05Cont .sec05Img{
    margin-bottom: 20px;
    text-align: center;
  }
  
  .btn02 a,
  .btnLink a,
  .btnLink03 a{
    max-width: 100%;
  }

}

@media screen and (max-width:850px){
  .sp{
    display: block;
  }
  
  .pc{
    display: none;
  }

  
/* common */  
.btnLink a,
.btn02,
.btnLink03{
  width: 100%;
  height: 50px;
  max-width: 288px;
}  
  
  
  /*text*/
  .mainText02.bold16,.mainText02.bold16 * {
    font-size: 12px;
}
  
.bold18, .bold18 * {
    font-size: 16px;
}  
  
.semi20, .semi20 * {
    font-size: 16px;
}  
  
.bold40, .bold40 * {
    font-size: 32px;
}  
  
.bold48, .bold48 * {
  font-size: 32px;
}
  
.semi48, .semi48 * {
    font-size: 32px;
} 
  
.bold24, .bold24 * {
    font-size: 16px;
}  
  
.semi56, .semi56 * {
    font-size: 40px;
}
  

  
/*content*/
  .mainHead{
    height: 65px;
    z-index: 999999;
    box-shadow: none;
  }

  body{
    padding-top: 65px;
  }
  
  .hamburger {
        top: 23px;
    }
  
  .secTitle{
    margin-bottom: 30px;
  }
  
    .logo {
        left: 5vw;
    }
  
  .mainImageWrap{
    width: 100%;
    aspect-ratio:1/ 0.821;
    background-image: url("../images/spMain.webp");
    align-items: flex-end;
    overflow: visible;
  }
  
  .mainText01,.mainText01 *{
    font-size: 28px !important;
  }
  
  .mainText02, .mainText02 *{
    font-size: 12px !important; 
    margin-top: 10px;
  }
  
  
  .mainTextBox {
      width: 320px;
      height: auto;
      text-align: center;
      margin: 0 auto;
      padding-bottom: 30px;
      background-repeat: no-repeat;
      background-image: url(../images/mainTextBg_sp.png);
      padding-top: 65px;
    margin-bottom: 25px;
  }
  
    .nav {
        width: 102vw;
        position: relative;
        left: -1vw;
}
  
  .headContact {
        height: 45px;
        width: 244px;
    }
  
#sec01 {
    padding: 60px 0;
}
  
  #sec01 .content{
    width: 100%;
  }
  
    .sec01Cont {
        background: url(../images/sec01Bg_sp.webp);
        background-position: top right;
        background-size: 95% auto;
        background-repeat: no-repeat;
        padding-left: 5%;
        padding-right: 5%;
        padding-top: 40%;
    }
  
  .sec01Cont .box {
    padding: 30px 16px;
    width: 90%;
    margin-left: 10%;
}
  
  .newsList.office{
    overflow: scroll;
    display: flex;
    flex-wrap: nowrap;
  }  
  
  .newsList.office li{
    width: 300px;
    margin-right: 20px !important;
    flex-shrink: 0;
    margin-bottom: 0 !important;
  }  
  
#sec02 {
    padding-bottom: 150px;
    background-size: 150% auto;
}
  
.sec {
    padding: 30px 0 60px;
}

.newsList {
    display: block;
    margin-bottom: 47px;
}
  
.newsList li{
    width: 100%;
}
  
.newsList li:nth-child(3n + 2){
  margin-left: 0;
  margin-right: 0;
}  
  
.newsList li:not(:last-child){
    margin-bottom: 30px;
}
  
.slider-wrapper {
    padding: 0;
  }
  
.slide .wrap {
    padding: 20px 16px;
}
  
.slide .img {
    width: 136px;
    height: 180px;
  left: 24px;
  top:30px;
}
  
    .slide .name {
        height: 180px;
        padding-left: 150px;
        margin-bottom: 20px;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }
  
    .slide .name span {
        margin-bottom: 10px;
    }
  
  .slide {
    padding: 10px;
}
  
  .slide .bold24, .slide .bold24 * {
        font-size: 20px;
    }
  
  
.bx-wrapper .bx-prev {
  top:inherit !important;
    left: 0;
    bottom: -80px !important;
}
  
.bx-wrapper .bx-next {
  top:inherit !important;
    right: 0;
  bottom: -80px !important;
}  
  
  
  .bx-wrapper .bx-pager{
    padding-left: 60px;
    padding-right: 60px;
  }  
  
.bx-wrapper {
    margin-bottom: 90px;
}
  
.bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto {
    bottom: -50px;
}
  
.sec04Cont {
    padding: 40px 20px;
    border-radius: 20px;
}
  
  .sec04 h2{
    margin-bottom: 24px;
  }  
  
.sec04Title {
    margin: 0 0 24px;
}  
  
.accordion-header {
    cursor: pointer;
    padding-right: 40px;
    position: relative;
    font-weight: bold;
  font-size: 16px;
  line-height: 1.5em;
  margin-bottom: 0;
  transition: 0.5s;
}
  
  .accordion.open .accordion-header{
    margin-bottom:20px;
  }
  
.accordion-icon {
    top: calc(50% - 10px);
}
  
.accordion-header:after {
    top: calc(50% - 11px);
    color: var(--or);
    font-size: 24px;
}
  
  
#sec06 .content {
    padding: 40px 16px;
}
  
.sec06Cont {
    display: block;
}
  
.sec06Cont .box {
    width: 100%;
}
  
.udbtn01 a {
    height: 56px;
    margin-bottom: 20px;
}
 
.udbtn02 a {
    height: 56px;
}
  
    .udbtn02 .bold24, .udbtn02 .bold24 * {
        font-size: 24px;
    }  
   
.footCont {
    display: block;
    padding-bottom: 30px;
}
  
  .footLogo{
    text-align: center;
    margin-bottom: 20px;
  }
  
  .footLogo img{
    width: 280px;
  }
  
  .foot01 {
        text-align: center;
        display: block;
        width: 100%;
    padding-bottom: 5px;
    }
  
  .footUd .content {
    display: block;
    text-align: center;
}
  
.footNav02 {
    display: block;
    margin-right: 0;
  margin-bottom: 8px;
}  
  
.footNav02.mid16, .footNav02.mid16 * {
    font-size: 14px;
}  
 
  
.footNav li {
    height: auto;
    margin-bottom: 20px;
}  
  
/* other */
  .otherpage{
    padding-bottom: 40px;
  }
  
  .otherpageTitleWrap.about{
    overflow: hidden;
  }
  
  .otherpageTitleWrap.about .content {
    height: 235px;
    display: block;
    padding-top: 40px;
  }    
  
  .aboutMain {
    width: 90%;
    bottom:-8px;
  }
  
  .aboutUd {
    bottom: 0;
  }
  
#aboutsec01 .content {
    padding-right: 0;
}  

#aboutsec01 .aboutsec01_img {
    width: 100%;
    position: initial;
  margin-top: 20px;
  line-height: 0;
}
  
.aboutsec02_cont {
    padding: 20px;
    border-radius: 20px;
  display: block;
}
  
.aboutsec02_cont .img {
    width: 100%;
  margin-bottom: 20px;
}
  
.aboutsec02_cont .box {
    width:100%;
}
  
  .aboutsec03_list{
    display: block;
  }
  
  .aboutsec03_list li{
    width: 100%;
  }

.aboutsec03_list li:nth-child(2) {
    margin: 20px 0;
}  

.aboutsec03_list li .title {
    margin: 20px 0;
    text-align: center;
  font-size: 24px !important;
}
  
.aboutsec03_list li .title *{
  font-size: 24px !important;
}
  
.otherpageTitleWrap.other .content {
    height: 145px;
    padding-top: 20px;
}
  
#companySec01 .content {
    padding: 0;
}  
  
  .otherpageTitleImg{
    position: absolute;
    top:-40px;
    right: -70px;
    width: 130px;
  }

  .copanyTable,.copanyTable tbody,.copanyTable tr{
    display: block;
  }
  
  .copanyTable th{
    width: 100%;
    display: block;
    border-right:0;
    border-bottom: 0px !important;
    padding: 20px 0;
    padding-bottom: 10px;
  }
  
  .copanyTable td{
    width: 100%;
    display: block;
    padding: 20px 0;
    padding-top: 0;
  }
  
  .copanyTable tr:not(:first-child) td{
    border-top:none;
  }
    
  #officeSec01 .newsList.office li{
    width: 100%;
    margin-bottom: 20px !important;
    margin-right: 0 !important;
  } 
  
  #officeSec01 .newsList.office li:nth-child(odd){
    margin-right: 0;
  }  
  
  #officeSec01 .newsList.office {
        overflow: visible;
        display: block;
  }
  
  .voiceListTitle02 span{
    font-size: 20px !important;
    padding: 8px;
    line-height: 2.5em;
  }  
  
  .voiceList li {
    padding: 16px 20px;
    position: relative;
  }
  
  .voiceList li .img{
    position: absolute;
    top:16px;
    left: 20px;
  }
  
  .voiceListCont{
    display: block;
  }
  
  .voiceListTitle{
    width: 100%;
  }
  
  .voiceListTitle01{
    padding-left: 120px;
    height: 100px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
  }
  
  .tabs{
    justify-content: space-between;
  }  
  
.tab-button:nth-child(1) {
  width: calc(60% - 5px);
  margin-right:0;
  padding: 10px 0;
  text-align: center;
}  
  
.tab-button:nth-child(2) {
  width: calc(40% - 5px);
  margin-right:0;
  padding: 10px 0;
  text-align: center;
}   
  
.tabInner01-cont {
    display: block;
}
  
.tabInner01-cont .img {
    margin-right: 0;
    width: 100%;
} 
  
.tabInner01-cont .img img{
   max-width: 500px;
    width: 100%;
}
  
.tabInner01-cont .box {
    width: 100%;
  margin-top: 30px;
}
  
.tabInner01-cont .text01 {
   font-size: 24px;
} 
  
.tabInner-table,
.tabInner-table tr,
  .tabInner-table tbody{
    display: block;
    width: 100%;
  }
  
.tabInner-table th {
    padding: 15px 0 5px;
    width: 100%;
    border-bottom: none;
    font-size: 14px;
  display: block;
}
  
.tabInner-table td {
    padding: 0 0 15px;
    width: 100%;
    border-bottom: 1px solid #ECECEC;
    font-size: 14px;
  display: block;
}  
  
  .flowList li{
    border-radius: 20px;
    padding: 30px 16px;
    display: block;
  }  
  
  .flowList li .box01 .text01{
    font-size: 48px;
  } 
  
  .flowList li .box01 .text02{
    font-size: 24px;
  }  
  
    .flowList li .box01{
    width: 100%;
    padding-right: 0;
      margin-bottom: 20px;
  }
      
  .flowList li .box02{
    width: 100%;
  }
  
    #privacySec .content{
    padding:40px 16px;
    border-radius: 0;
    width: 90%;
      margin: auto;
  }
  
  .blogTab{
    margin-bottom: 30px;
  }
  
    .blogTab li{
      width: calc(50% - 10px);
  } 
  
  .blogTab li:not(:first-child){
      margin-right: 0;
  } 
  
  .blogTab li a{
    height: 50px;
    width: 100%;
  }

  .contactContTitle{
    font-size: 16px !important;
  }
  
  .contactCont {
    padding: 40px 20px;
  }
  
  .contactContBox{
    display: block;
  }
  
  .contactContBox .box{
    width: 100%;
  }
  
  .contactContBox .box:not(:first-child){
    margin-top: 30px;
  }
  
  .contactFormTable,
  .contactFormTable tbody,
  .contactFormTable tr{
    display: block;
    width: 100%;
  }
  
  .contactFormTable th{
    display: block;
    width: 100%;
  }
  
  .contactFormTable td{
    display: block;
    width: 100%;
    padding-top: 8px;
  }
  
  .contactFormWrap {
    padding: 40px 20px;
  }
  
  .mb100{
  margin-bottom: 80px;
}
  
  .bold32,.bold32 *{
    font-size: 24px;
    font-weight: bold;
    line-height: 1.5em;
    margin-bottom: 5px;
  }
  
  .entry-content p{
    font-size: 14px;
  }  
  
  .single-post{
    width: 90%;
    border-radius: 20px;
    background: #ffffff;
    padding: 20px;
    margin-bottom: 60px;
  }  
    
  
/* pageTitle */  
.pageTitle.privacy{
  height: auto;
  margin-bottom: 30px;
}   
  
 
  .sec04Title.bold32{
    font-size: 22px;
  }  
  
  .sectop{
    padding-top: 0;
  }
  
.bx-wrapper .bx-controls-direction a {
    width: 50px;
    height: 50px;
}
  
.bx-wrapper .bx-prev, .bx-wrapper .bx-next {
    bottom:-90px !important;
}
  
.flowList li:not(:last-child):after {
    left: calc(50% - 27px);
}  
  
  #sec02 .content{
    width: 100%;
  }  
  
  #sec02 .secTitle,
  #sec02 .btnLink{
    padding:0 5%;
  }
  
  #sec02 .office{
    padding-left: 5%;
  } 
  
  #sec04{
    padding: 40px 0 60px;
  }
  
  .sec06Cont{
    text-align: center;
  }
  
  .sec06Cont a{
    max-width: 475px;
  }
  
  .otherpageTitleWrap.other{
    margin-bottom: 0;
  }
  
}


.newsList.top li:nth-child(4){
  display: none;
}

@media screen and (max-width:850px) and (min-width:600px){
  
  .newsList{
    display: flex;
    flex-wrap: wrap;
  }
  
  .newsList li{
    width: calc(50% - 10px);
    margin-bottom: 20px;
  }
  
  .newsList li:nth-child(odd){
    margin-right: 20px;
  }
  
  .newsList.top li:nth-child(4){
  display: block;
}
  
  .btn02 a, .btnLink a, .btnLink03 a {
       width: 100%;
    }
  
      .mainTextBox {
        height: auto;
        width: 60%;
        aspect-ratio: 1 / 0.75;
        padding-top: 90px;
        padding-bottom: 40px;
        margin-bottom: 55px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }
  
      .mainText02, .mainText02 * {
        font-size: 2.25vw !important;
        margin-top: 0;
    }

  .mainText01, .mainText01 * {
        font-size: 5vw !important;
    }
  
    #sec02 {
        padding-bottom: 150px;
    } 
  
.aboutMain img {
        width: 60%;
    }
  
  .aboutUd {
        width: 100%;
    }
  
  .tabInner01-cont .img{
    text-align: center;
  }  
  
    .btnLink a, .btn02, .btnLink03 {
        max-width: 100%;
    }
  
  .sec04Img img,
  .aboutsec01_img img,
  .aboutsec02_cont img{
    max-width: 380px;
  } 
  
  .sec04Img,
  .aboutsec01_img,
  .aboutsec02_cont{
    text-align: center;
  } 
  
  .mainTextBox {
      background-image: url(../images/tabBg.png);
  }  
  
  .mainTextBox {
      position: relative;
  } 
  
  .mainTextBox:after{
        content: " ";
        background-image: url(../images/tabLogo.svg);
        width: 20%;
        height: 20%;
        background-size: contain;
        left: 43.5%;
        top: 10%;
        background-repeat: no-repeat;
        position: absolute;
        display: block;
  } 
  
  .btnLink a, .btn02, .btnLink03 {
        width: 100%;
        height: 50px;
        max-width: 288px;
    }
  
}