/* CSS Document */
/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */
/* ■■■■■■■■■■■■■■■■   　デフォルト   　■■■■■■■■■■■■■■■■■ */
/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */

html, body, div, span, iframe,article,figure,
p, a, img, small, dl, dt, dd, ol, ul, li,
h1, h2, h3, h4, h5,h6,header,footer{
  border: 0;
  margin: 0;
  padding: 0;
  letter-spacing: 0.1em;
  font-style: normal;
  line-height:1.0em;
  color: #000;
  font-feature-settings: "palt";
  vertical-align: top;
  font-family: noto-sans-cjk-jp, sans-serif;
  font-weight: 400;
  font-style: normal;
}
html {
    scroll-behavior: smooth;
}
.mid{
font-weight:500;
font-style: normal;
}
.bold{
font-weight: 700;
font-style: normal;
}

.en{
  font-family: "commuters-sans", sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing:0;
}
.en_bold{
  font-family: "commuters-sans", sans-serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing:0;
}
.text_align{
  text-align: center;
}

.mgn_btm10{ margin-bottom:10px; }
.mgn_btm20{ margin-bottom:20px; }
.mgn_btm30{ margin-bottom:30px; }
.mgn_btm40{ margin-bottom:40px; }
.mgn_btm50{ margin-bottom:50px; }
.mgn_btm60{ margin-bottom:60px; }
.mgn_btm70{ margin-bottom:70px; }
.mgn_btm80{ margin-bottom:80px; }
.mgn_btm90{ margin-bottom:90px; }
.mgn_btm100{ margin-bottom:100px; }


::selection {
  background:#00469B;
  color:#FFF;
}

::-moz-selection {
  background:#00469B;
  color:#FFF;
}


html,body {
  line-height:0;
  width: 100%;
  height: 100%;
  position: relative;
  min-width: 1280px;
}

body {
  opacity: 0;
  transition: opacity 0 ease;
}

html.wf-active body {
  opacity: 1;
}
ol, ul {
  list-style: none;
}
a{
  outline:none;
  text-decoration:none;
  cursor: pointer;
  display: block;
  }
a img {
  border: none;
  border-style:none;
}

img{
  width: 100%;
  height: auto;
}

li{
  list-style:none;
}
.clearfix {
  *zoom: 1;
}
.clearfix:after {
  content: '';
  display: table;
  clear: both;
}

.br_sp,
.sp_block{
  display: none;
}

@media(min-width: 768px){
  a[href^="tel:"]{
    pointer-events: none;
  }
}

input,textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input[type="text"] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
}

textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    resize: none;
    padding: 0;
    border: 0;
    background: transparent;
}

.sp_header{
  display: none;
}


.loading{
  width: 100%;
  height: 100%;
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  background:#fff; /* ← 最初は白背景 */
}

.loading.bg-clear {
  background: transparent; /* ← 切り替え後の透明 */
}
.loading .logo{
  width: 236px;
  position: absolute;
  top:48%;
  left:50%;
  transform: translate(-50%,-50%);
  z-index: 10;
  opacity: 0;                 /* 70%でフェードイン */
  transition: opacity .6s ease;
}

.loading .logo.is-visible{
  opacity: 1;
}

.loading .loading_bg{
  width: 100%;
  height: 0%;                 /* 0%から増やしていく */
  position: absolute;
  left: 0;
  bottom: 0;                  /* 下から伸びる */
  background:#00469b;
  transform: translateY(0);   /* 100%到達後に上へ切り上げ */
  transition: height .25s linear, transform 1s ease-in-out;
  will-change: height, transform;
}

.loading .loading_bg.is-slide-up{
  transform: translateY(-100%);
}

/* 完了後は完全に非表示（JSで .is-hidden を付ける） */
.loading.is-hidden{
  display: none !important;
}




/*common*/
header {
  position: relative;
  z-index: 9999;
  background: #fff;
}
/* 固定表示用クラス */
header.is-fixed {
  position: fixed;
  top: 0; left: 0; right: 0;
  animation: slideDown 0.5s ease forwards;
}
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}


/* 固定時のレイアウト崩れ防止 */
.header-spacer {
  height: var(--header-h);
}

header nav{
  width:calc(100% - 100px);
  margin: 0 auto;
  padding: 20px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
header nav h1{
  width:300px;
}
header nav .nav_box ul{
  display: flex;
  flex-wrap: wrap;
}
header nav .nav_box ul li{
  margin-right:35px;
}
header nav .nav_box ul li:last-child{
  margin-right: 0;
}
header nav .nav_box ul li a {
  font-size: 16px;
  line-height: 28px;
  user-select: none;
  color: transparent; /* 文字色は透明 */
  background-image: linear-gradient(#000 50%, #00469a 50%);
  background-size: 100% 200%; /* 高さを2倍にする */
  background-position: 0 0; /* 初期は黒 */
  -webkit-background-clip: text;
  background-clip: text;
  transition: background-position 0.2s ease;
}

header nav .nav_box ul li.active a,
header nav .nav_box ul li a:hover {
  background-position: 0 100%; /* 下の青を表示する */
}

header figure,
.gnav_close{
  display: none;
}

/*下層タイトル*/
.lower .common_title{
  background:#00469b;
  padding:40px 0;
}  
.lower .common_title .wrap{
  width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
}
.lower .common_title .title_box h1{
  font-size: 16px;
  line-height: 18px;
  margin-bottom: 10px;
  color: #FFF;
}
.lower .common_title .title_box h2{
  font-size:42px;
  line-height:42px;
  color: #FFF;
}
.lower .common_title .pan ul{
  display: flex;
  flex-wrap: wrap;
}
.lower .common_title .pan ul li{
  font-size: 12px;
  line-height: 18px;
  color: #FFF;
  padding-right: 10px;
  background: url(../images/pan_arrow_icon.png) no-repeat center right;
  background-size:6px;
  margin-right: 10px;
}
.lower .common_title .pan ul li:last-child{
  padding-right: 0;
  margin-right: 0;
}
.lower .common_title .pan ul li a{
  font-size: 12px;
  line-height: 18px;
  display: block;
  color: #cccccc;
  transition: all 0.2s ease;
  position: relative;
}

.lower .common_title .pan ul li a:after{
  content: "";
  position: absolute;
  top:8px;
  right: -10px;
  width: 3px;
  height: 1px;
  background:#cccccc;
}
.lower .common_title .pan ul li a:hover{
  opacity: 0.4;
}
.lower .cover{
  padding-bottom: 100px;
}
.lower .cover .wrap{
  width: 1100px;
  margin: 0 auto;
}
.lower.two_column .cover .wrap .inner{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.lower.two_column .cover .wrap .inner aside{
  width: 200px;
  padding-top:100px;
  padding-bottom:75px;
}
.lower.two_column .cover .wrap .inner .content{
  width:800px;
}
.lower.two_column .cover .wrap .inner aside .wrap{
  width: 100%;
  padding-bottom: 20px;
  margin-bottom: 20px;
  z-index:50;
  position: sticky;
  position: -webkit-sticky;
  top:140px;
}
.lower.two_column .cover .wrap .inner aside .wrap ul li{
  margin-bottom:10px;
}

.lower.two_column .cover .wrap .inner aside .wrap ul li a{
  font-size: 16px;
  line-height: 28px;
  padding:0 15px;
  display: block;
  transition: all ease 0.2s;
  position: relative;
  color:#A3A3A3;
}
.lower.two_column .cover .wrap .inner aside .wrap ul li a:hover{
  color:#000;
}
.lower.two_column .cover .wrap .inner aside .wrap ul li a:after{
  content: "";
  display: block;
  width: 4px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: opacity 0.2s ease;
  background:#00469b;
  z-index:-1;
  opacity: 0;
}

.lower.two_column .cover .wrap .inner aside .wrap ul li.active a:after,
.lower.two_column .cover .wrap .inner aside .wrap ul li a:hover:after{
  opacity: 1;
}
.lower.two_column .cover .wrap .inner aside .wrap ul li.active a,
.lower.two_column .cover .wrap .inner aside .wrap ul li a:hover{
  color:#000;
}


.lower .cover .wrap section{
  padding-top: 100px;
}
.en_jp_title{
  position: relative;
  padding-bottom: 15px;
  border-bottom: 1px #999999 solid;
  margin-bottom: 30px;
}
.en_jp_title:before{
  content: "";
  width:20px;
  height:2px;
  background: #00469b;
  display: block;
  position: absolute;
  bottom:-1px;
  left: 0;
}
.en_jp_title dl dt{
  font-size: 18px;
  padding-bottom: 15px;
  color:#00469b;
}
.en_jp_title dl dd{
  font-size: 30px;
}


.lower .cover .wrap section h1{
  font-size:32px;
  line-height: 42px;
  margin-bottom:25px;
  color: #00469b;
}
.lower .cover .wrap section h2{
  font-size:28px;
  line-height:38px;
  padding:8px 15px;
  margin-bottom:25px;
  color: #FFF;
  background: #00469b;
}
.lower .cover .wrap section h3{
  font-size:24px;
  line-height:32px;
  padding:0 0 15px;
  margin-bottom:30px;
  color: #00469a;
  position: relative;
  border-bottom: 1px #999999 solid;
  
}
.lower .cover .wrap section h3:before{
  content: "";
  width:20px;
  height:2px;
  background: #00469b;
  display: block;
  position: absolute;
  bottom:-1px;
  left: 0;
}
.lower .cover .wrap section h4{
  font-size:20px;
  line-height:48px;
  padding:0 15px;
  margin-bottom:25px;
  color: #00469b;
  border: 2px solid #00469b;
}
.lower .cover .wrap section h5{
  font-size:18px;
  line-height:28px;
  padding:10px 20px;
  margin-bottom:25px;
  color: #000;
  background: #EFEFEF;
}
.lower .cover .wrap section h6{
  font-size:16px;
  line-height:28px;
  margin-bottom:25px;
  color: #000;
}

.lower .cover .wrap section figure{
  margin-bottom:25px;
}

.lower .cover .wrap section figure video{
  width: 100%;
}

.lower .cover .wrap section .list ul{
  margin-bottom: 25px;
}
.lower .cover .wrap section .list ul li{
  font-size:16px;
  line-height: 28px;
  font-weight: 500;
  background: #dedede;
  color: #00469B;
  padding: 15px 20px;
  margin-bottom: 5px;
}
.lower .cover.gray .wrap section .list ul li{
  font-size:16px;
  line-height: 28px;
  background: #FFF;
  color: #00469B;
  padding: 15px 20px;
  margin-bottom: 5px;
}
.lower .cover .wrap section .product_table_style table{
  background: #FFF;
  width: 100%;
  border-left: 1px solid #A3A3A3;
  border-top: 1px solid #A3A3A3;
  border-right: 2px solid #A3A3A3;
  border-bottom: 2px solid #A3A3A3;
  position: relative;
  border-spacing: 0;
  overflow:clip
}
.lower .cover .wrap section .product_table_style table thead.fixed{
  position: sticky;
  top:85px;
  background: #FDFDFD;
}
.lower .cover .wrap section .product_table_style table thead tr:first-child th:first-child{
  border-bottom: 1px solid #A3A3A3;
}
.lower .cover .wrap section .product_table_style table thead tr:last-child th{
  border-bottom: 1px solid #A3A3A3;
}
.lower .cover .wrap section .product_table_style table thead tr:last-child td{
  border-bottom: 1px solid #A3A3A3;
}


.lower .cover .wrap section .product_table_style table th,
.lower .cover .wrap section .product_table_style table td{
  border-left: 1px solid #A3A3A3;
  border-top: 1px solid #A3A3A3;
  font-size:0.8125rem;
  line-height: 18px;
  font-weight: 400;
  text-align: center;
  padding: 10px 5px;
}
.lower .cover .wrap section .product_table_style table th.bold{
  font-weight: 700;
  color: #00469B;
}

.lower .cover .wrap section p{
  font-size: 16px;
  line-height: 28px;
  margin-bottom:25px;
}
.lower .cover .wrap section p a{
  font-size: 16px;
  line-height: 28px;
  margin-bottom:25px;
  color: #00469b;
  text-decoration: underline;
}
.lower .cover .wrap section small{
  font-size: 12px;
  line-height: 18px;
  margin-bottom:25px;
  display: block;
}
.lower .cover .wrap section .btn{
  margin-bottom:25px;
}
.lower .cover .wrap section .btn a{
  border: 2px solid #00469b;
  display: inline-block;
  padding:20px 70px;
  color: #00469b;
  position: relative;
  transition: all 0.2s ease;
  background: url(../images/b_arrow.webp) center right 15px no-repeat;
  background-size: 15px;
}
.lower .cover .wrap section .btn a:after{
  content: "";
  width: 100%;
  height:100%;
  background: #00469b;
  display: block;
  transform: scaleX(0);
  transform-origin: top right;
  transition: transform 0.2s ease;
  position: absolute;
  top: 0;
  left: 0;
  z-index:-1;
}
.lower .cover .wrap section .btn a:hover{
  color: #FFF;
  background: url(../images/w_b_arrow.webp) center right 15px no-repeat;
  background-size: 15px;
}

.lower .cover .wrap section .btn a.blank_icon{
  background: url(../images/blank_icon_blue.svg) center right 15px no-repeat;
  background-size: 15px;
}

.lower .cover .wrap section .btn a.blank_icon:hover{
  background: url(../images/blank_icon_white.svg) center right 15px no-repeat;
  background-size: 15px;
}

.lower .cover .wrap section .btn a:hover:after{
  transform: scaleX(1);
  transform-origin: top left;
}
.lower .cover .wrap section .column_2block,
.lower .cover .wrap section .column_3block{
  width:100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

}
.lower .cover .wrap section .column_2block .left,
.lower .cover .wrap section .column_2block .right{
  width:48%;
  margin-bottom:100px;
}
.lower .cover .wrap section .column_3block .left,
.lower .cover .wrap section .column_3block .center,
.lower .cover .wrap section .column_3block .right{
  width:31%;
  margin-bottom:100px;
}


.accordion{
  margin-bottom: 5px;
}
.summary {
  font-size: 18px;
  display: block;
  cursor: pointer;
  padding: 20px 20px 20px 0;
  border: #00479B 1px solid;
  color:#00479B;
  position: relative;
  transition: 0.2s all ease;
}
details.accordion .summary:hover,
details.accordion[open] .summary{
  background:#00479B;
  color: #FFF;
}


.summary span.icon{
  display: block;
  width: 20px;
  height:11px;
  position: absolute;
  top:22px;
  right:23px;
}
details.accordion .summary span.icon:before{
  content: "";
  display: block;
  width: 14px;
  height: 1px;
  background: #00479B;
  position: absolute;
  top:5px;
  left:-2px;
  transform: rotate(43deg);
  transition: all ease 0.2s;
}
details.accordion .summary span.icon:after{
  content: "";
  display: block;
  width: 14px;
  height: 1px;
  background: #00479B;
  position: absolute;
  top:5px;
  left:8px;
  transform: rotate(-43deg);
  transition: all ease 0.2s;
}
details.accordion[open] .summary span.icon:before{
  content: "";
  display: block;
  width: 10px;
  height: 1px;
  background: #fff;
  position: absolute;
  top:5px;
  left:0;
  transform: rotate(0);
}
details.accordion[open] .summary span.icon:after{
  content: "";
  display: block;
  width: 10px;
  height: 1px;
  background: #fff;
  position: absolute;
  top:5px;
  right:0;
  transform: rotate(0);
}



.summary::-webkit-details-marker {
  display: none;
}
.acd_container {
  overflow:clip;
/*  overflow:hidden;*/
  /*background: #F2F2F2;*/
  padding: 25px;
}
.acd_container h3{
  font-size: 16px;
  margin-bottom: 10px;
}
.lower .cover .wrap section .acd_container p{
  margin-bottom: 0;
}

/*250905変更*/
.acd_container ul{
  margin-bottom:20px;
}
.acd_container ul:last-child{
  margin-bottom:0;
}
.acd_container ul li{
  padding-bottom:25px;
  border-bottom: 1px solid #ebebeb;
  margin-bottom:25px;
}
.acd_container ul li dl{
  display: flex;
  flex-wrap: wrap;
}
.acd_container ul li dl dt{
  width: 155px;
}
.acd_container ul li dl dd{
  width:calc(100% - 155px);
}
.acd_container ul li dl dt,
.acd_container ul li dl dd{
  font-size: 16px;
  line-height: 40px;
}
/*250903変更ここまで*/

/*タブ切り替え全体のスタイル*/
.tabs {
  width: 100%;
  padding-bottom: 40px;
  background-color: #fff;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

/*タブのスタイル*/
.tab_item {
  width:120px;
  height: 50px;
  line-height: 50px;
  font-size: 16px;
  text-align: center;
  color: #565656;
  margin: 20px;
  display: block;
  text-align: center;
  font-weight: bold;
  transition: all 0.4s ease;
}
.tab_item:hover {
  color: #00479B;
  background: #F2F2F2;
}

/*ラジオボタンを全て消す*/
input[name="tab_item"] {
  display: none;
}

/*タブ切り替えの中身のスタイル*/
.tab_content {
  width: 100%;
  display: none;
  padding: 40px 40px 0;
  clear: both;
  overflow: hidden;
}


/*選択されているタブのコンテンツのみを表示*/
#standard:checked ~ #standard_content,
#ministry:checked ~ #ministry_content,
#zenkan:checked ~ #zenkan_content {
  display: block;
}

/*選択されているタブのスタイルを変える*/
.tabs input:checked + .tab_item {
  color: #00479B;
  background: #F2F2F2;
}





.ft_common_company_group{
  background:#dedede;
}
.ft_common_company_group .wrap{
  width: 1100px;
  margin: 0 auto;
  display:flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 30px;
}

/*修正箇所250903*/

.ft_common_company_group .wrap h3{
  width:112px;
  padding-right:35px;
  border-right: 1px solid #00469a;
  margin-right:35px;
}
.ft_common_company_group .wrap h3{
  display: block;
}
.ft_common_company_group .wrap ul{
  display:flex;
  flex-wrap: wrap;
  align-items: center;
}
.ft_common_company_group .wrap ul li{
  margin-right:28px;
}
.ft_common_company_group .wrap ul li a img{
  display: block;
}
.ft_common_company_group .wrap ul li:last-child{
  margin-right:0;
}

.ft_common_company_group .wrap ul li.denso{
  width:142px;
} 
.ft_common_company_group .wrap ul li.soft{
  width:156px;
}
.ft_common_company_group .wrap ul li.tokyotogami{
  width:168px;
}
.ft_common_company_group .wrap ul li.control{
  width:168px;
}
.ft_common_company_group .wrap ul li.kasei{
  width:115px;
}
.ft_common_company_group .wrap ul li.metarix{
  width:168px;
}

/*修正箇所250903ここまで*/


footer{
  background: #00479B;
  padding:60px 0;
  position: relative;
  z-index: 10;
}

footer .wrap.main{
  width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
footer .wrap .left{
  width:205px;
}
footer .wrap .right{
  width:575px;
  display: flex;
  flex-wrap: wrap;
}
footer .wrap .right .row{
  margin-right: 40px;
}
footer .wrap .right .row:last-child{
  margin-right: 0;
}
footer .wrap .right .row h3{
  margin-bottom: 20px;
}
footer .wrap .right .row h3 a{
  font-size:16px;
  color: #FFF;
}
footer .wrap .right .row ul{
  padding-bottom:15px;
}
footer .wrap .right .row ul li{
  margin-bottom:5px;
  padding-left: 15px;
  position: relative;
}
footer .wrap .right .row ul li:before{
  content: "";
  display: block;
  width: 5px;
  height: 1px;
  background: #8AB4D6;
  position: absolute;
  top: 8px;
  left: 0;
}

footer .wrap .right .row ul li a{
  font-size: 13px;
  line-height:18px;
  color: #8ab4d6;
}

/*250903変更*/
footer .wrap .ft_btm{
  width:100%;
  display: flex;
  padding-top: 50px;
}
footer .wrap .ft_btm .copyright{
  font-size: 12px;
  color: #FFF;
  display: block;
  width:calc(100% - 280px);
  order:1;
}
footer .wrap .ft_btm ul{
  width:280px;
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
  order:2;
}
footer .wrap .ft_btm ul li{
  margin-left:30px;
  text-align: right;
}
footer .wrap .ft_btm ul li a{
  text-align: right;
  font-size: 12px;
  color: #afafaf;
}
/*250903変更ここまで*/

footer .wrap .copyright small{
  font-size: 12px;
  color: #afafaf;
  display: block;
}

/*お問い合わせページ*/

#contact .cover{
  width: 100%;
  padding:0;
  background: #EAEDF0;
  padding: 50px 0;
}

#contact .cover .wrap{
  width:1100px;
  margin:0 auto;
}
#contact .cover .wrap #form{
  padding:60px 80px;
  background: #FFF;
}

#contact .cover .wrap #form .situation{
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 50px;
}

#contact .cover .wrap #form .situation dl{
  width: 33.33333%;
  background:#F2F2F2;
  text-align: center;
  padding:15px 0 20px;
}
#contact .cover .wrap #form .situation dl.on{
  background: #00479B;
}

#contact .cover .wrap #form .situation dl dt,
#contact .cover .wrap #form .situation dl dd{
  color:#A3A3A3;
  text-align: center;
}
#contact .cover .wrap #form .situation dl.on dt,
#contact .cover .wrap #form .situation dl.on dd{
  color:#FFF;
  text-align: center;
}

#contact .cover .wrap #form .situation dl dt{
  font-size:0.75rem;
  margin-bottom: 5px;
}
#contact .cover .wrap #form .situation dl dd{
  font-size:1.125rem;
}
#contact .cover .wrap #form p{
  font-size: 16px;
  line-height: 28px;
  text-align: center;
}
#contact .cover .wrap #form span.hissu{
  font-size:14px;
  line-height: 20px;
  color: #FFF;
  background: #00479B;
  display: inline-block;
  padding: 0px 10px;
  margin:5px 8px;
}


#contact input[type="checkbox"],
#contact input[type="radio"] {
  all: revert;
}
.attention{
  text-align: center;
}
.attention label{
  font-size: 14px;
}

.form_btn{
  text-align: center;
  margin-top: 30px;
}
.form_btn input[type="submit"]{
  -webkit-appearance: none; /* Chrome, Safari, Opera */
  -moz-appearance: none;    /* Firefox */
  appearance: none;
  
  /* 必要に応じて独自のスタイルを追加 */
  background: #00479B;
  color:#FFF;
  font-size:1rem;
  letter-spacing: 0;
  padding: 0 100px;
  line-height:40px;
  display: inline-block;
  border: none;
  border-radius:25px;
}

#contact .cover .wrap #form table{
  border-collapse:collapse;
  border-spacing:0;
  width: 100%;
}
#contact .cover .wrap #form table tr{
  border-bottom: 1px solid #EEE;
  padding: 20px 0;
  text-align:left;
  display:flex;
  flex-wrap: wrap;
}
#contact .cover .wrap #form table tr th{
  width: 250px;
  font-size:16px;
  line-height:28px;
  font-weight: 400;
}
#contact .cover .wrap #form table tr td{
  width:calc(100% - 260px);
  display: flex;
  flex-wrap: wrap;
  font-size:14px;
  line-height: 28px;
}
#contact .cover .wrap #form table tr td label{
  font-size:16px;
  line-height:28px;
  margin-right:25px;
}
#contact .cover .wrap #form table tr td label input{
  margin-left:0;
  margin-right:7px;
}
#contact .cover .wrap #form table tr td input[type="text"],
#contact .cover .wrap #form table tr td textarea{
  background:#EEE;
  border-radius:4px;
  font-size:16px;
  line-height:28px;
  padding:5px 10px;
  margin:0 5px;
  width: 100%;
  display: inline-block;
  resize: vertical;
}
#contact .cover .wrap #form table tr td input#tel1,
#contact .cover .wrap #form table tr td input#tel2,
#contact .cover .wrap #form table tr td input#tel3,
#contact .cover .wrap #form table tr td input#fax1,
#contact .cover .wrap #form table tr td input#fax2,
#contact .cover .wrap #form table tr td input#fax3,
#contact .cover .wrap #form table tr td input#zipcode1,
#contact .cover .wrap #form table tr td input#zipcode2{
  width: 100px;
  margin:0 5px;
  display: inline-block;
}


#contact .cover .wrap #form table tr td.code1{
  width: 100px;
  margin-right: 30px;
}
#contact .cover .wrap #form table tr td.code2{
  width: 200px;
}

#contact .cover .wrap #form table tr td span{
  font-size: 12px;
  display: block;
  margin-top: 10px;
  width: 100%;
}
#contact .cover .wrap #form .doui{
  font-size: 14px;
  line-height: 28px;
} 
#contact .cover .wrap #form .doui a{
  font-size: 14px;
  line-height: 28px;
  display: inline-block;
  margin-bottom: 0;
} 

/*会社情報ページ*/

#company .cover{
  overflow-x: clip;
}
#company .cover #message{
  position: relative;
  padding-bottom: 100px;
}
#company .cover #message:after{
  content: "";
  display: block;
  width:300%;
  height: 100%;
  position:absolute;
  top: 0;
  left: 0;
  background: #00469b;
  z-index: -1;
}
#company .cover #message dl dt,
#company .cover #message dl dd,
#company .cover #message p{
  color: #FFF;
  padding-left:50px;
}
#company .cover #message .company_title dl dt{
  font-size: 18px;
  margin-bottom:15px;
}
#company .cover #message .company_title dl dd{
  font-size:30px;
  margin-bottom:60px;
}
#company .cover #message p{
  font-size:16px;
  line-height: 30px;
  margin-bottom:60px;
}
#company .cover #message p{
  font-size:16px;
  line-height: 30px;
}
#company .cover #message dl.message_name dt,
#company .cover #message dl.message_name dd{
  font-size: 16px;
  line-height: 30px;
}

#company .cover #company_overview ul li{
  padding-bottom:25px;
  border-bottom: 1px solid #ebebeb;
  margin-bottom:25px;
}
#company .cover #company_overview ul li dl{
  display: flex;
  flex-wrap: wrap;
}
#company .cover #company_overview ul li dl dt{
  width: 155px;
}
#company .cover #company_overview ul li dl dd{
  width:calc(100% - 155px);
}
#company .cover #company_overview ul li dl dt,
#company .cover #company_overview ul li dl dd{
  font-size: 16px;
  line-height: 40px;
}


#company .cover #history ul{
  position: relative;
}

#company .cover #history ul:after{
  content: "";
  display: block;
  width:2px;
  height:calc(100% - 15px);
  background: #00479B;
  position: absolute;
  top:15px;
  left:212px;
  z-index:0;
}

#company .cover #history ul li{
  padding-bottom: 40px;
}

#company .cover #history ul li dl{
  display: flex;
  flex-wrap: wrap;
}
#company .cover #history ul li dl dt{
  background: url(../images/history_bg.webp) no-repeat;
  background-size: 100%;
  width: 177px;
  font-size:0.875rem;
  line-height:40px;
  text-align: center;
  color:#00479B;
  position: relative;
}

#company .cover #history ul li dl dt:after{
  content: "";
  display: block;
  width: 15px;
  height: 15px;
  border: 2px solid #00479B;
  background: #FFF;
  position: absolute;
  top: 10px;
  left:206px;
  border-radius:50%;
  box-sizing: border-box;
  z-index:1;
}
#company .cover #history ul li dl dd{
  padding-top:3px;
  margin-left: 72px;
  font-size:1rem;
  line-height: 30px;
}



#company .cover .wrap #access .block ul{
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid #DEDEDE;
  border-left: 1px solid #DEDEDE;
}
#company .cover .wrap #access .block ul li{
  width:50%;
  box-sizing: border-box;
  border-right: 1px solid #DEDEDE;
  border-bottom: 1px solid #DEDEDE;
  padding: 30px;
}
#company .cover .wrap #access .block ul li .access_head{
  border-bottom: 1px solid #DEDEDE;
  display: flex;
  flex-wrap: wrap;
  padding-bottom:20px;
  margin-bottom:20px;
}
#company .cover .wrap #access .block ul li .access_head h5{
  font-size:1rem;
  line-height: 30px;
  width: calc(100% - 135px);
  background: transparent;
  padding:0;
  margin-bottom:0;
}
#company .cover .wrap #access .block ul li .access_head h5 a{
  font-size:0.875rem;
  color:#00479B;
  display: block;
  margin-top:3px;
  transition: all ease 0.2s;
}
#company .cover .wrap #access .block ul li .access_head h5 a:hover{
  text-decoration: underline;
}
#company .cover .wrap #access .block ul li .access_head .gmap_btn{
  width: 135px;
}
#company .cover .wrap #access .block ul li .access_head .gmap_btn a{
  font-size:0.875rem;
  line-height: 30px;
  display: block;
  background: #A3A3A3 url(../images/company_access_icon.png) no-repeat left 14px center;
  background-size: 18px;
  color: #FFF;
  border-radius: 7px;
  text-indent: 38px;
  letter-spacing: 0;
  transition: all ease 0.2s;
}
#company .cover .wrap #access .block ul li .access_head .gmap_btn a:hover{
  background: #646464 url(../images/company_access_icon.png) no-repeat left 14px center;
  background-size: 18px;
}
#company .cover .wrap #access .block ul li dl{
  display: flex;
  flex-wrap: wrap;
}
#company .cover .wrap #access .block ul li dl dt{
  width:65px;
  font-size:13px;
  line-height: 24px;
}
#company .cover .wrap #access .block ul li dl dd{
  width: calc(100% - 65px);
  font-size:13px;
  line-height: 24px;
}

#company .cover .wrap #quality_policy ul{
}
#company .cover .wrap #quality_policy ul li{
  display: flex;
  flex-wrap: wrap;
}
#company .cover .wrap #quality_policy ul li:first-child{
  margin-bottom: 50px;
}
#company .cover .wrap #quality_policy ul li figure{
  width: 110px;
  margin-right: 40px;
  padding-top: 10px;
}
#company .cover .wrap #quality_policy ul li .date{
  width:calc(100% - 150px);
}
#company .cover .wrap #quality_policy ul li .date dl{
  display: flex;
  flex-wrap: wrap;
}
#company .cover .wrap #quality_policy ul li .date dl dt{
  width:100px;
  font-size: 16px;
  line-height:30px;
}

#company .cover .wrap #quality_policy ul li .date dl dd{
  width:calc(100% - 100px);
  font-size: 16px;
  line-height:30px;
}
#company .cover .wrap #quality_policy ul li .date dl dd span{
  font-size: 14px;
  line-height:24px;
  display: block;
  padding-top:5px;
}
/*採用情報ページ*/

/*0930更新修正ここから*/
#recruit_date ul{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: space-between;
}

#recruit_date ul li{
  width: 385px;
  padding: 30px 35px;
  background:#f4f4f4;
  box-sizing: border-box;
  margin-bottom: 30px;
}
#recruit_date ul li:last-child{
  margin-bottom:0;
}
#recruit_date ul li:nth-child(5),
#recruit_date ul li:nth-child(8){
  width: 100%;
}

#recruit_date ul li dl.title{
  padding:5px 0 0 100px;
  height: 80px;
}

#recruit_date ul li dl.title.list01{
  background: url(../images/recruit_list_icon01.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list02{
  background: url(../images/recruit_list_icon02.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list03{
  background: url(../images/recruit_list_icon03.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list04{
  background: url(../images/recruit_list_icon04.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list05{
  background: url(../images/recruit_list_icon05.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list06{
  background: url(../images/recruit_list_icon06.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list07{
  background: url(../images/recruit_list_icon07.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title.list08{
  background: url(../images/recruit_list_icon08.svg) no-repeat;
  background-size: 80px;
}
#recruit_date ul li dl.title dt{
  font-size: 30px;
  line-height: 30px;
  color: #00469b;
  margin-bottom: 10px;
}
#recruit_date ul li dl.title dd{
  font-size: 18px;
  line-height:26px;
  color: #000;
  margin-bottom: 10px;
}

#recruit_date ul li ul li{
  width: auto;
  padding: 0 !important;
  margin-left: 0 !important;
}
#recruit_date ul li ul li:nth-child(3){
  width: auto !important;
}



.circle_date {
  position: relative;
  width: 300px;
  height: 300px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 64px;
  font-weight: bold;
  margin-top: 30px;
}

.circle_date span.counter{
  display: inline-flex;
  align-items: baseline;
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%,-50%);
  z-index: 2;
  color: #00469b;
}
.circle_date span.counter span{
  color: #00469b;

}

.circle_date small{
  font-size:40px !important;
  line-height: 40px;
  color: #00469b;
}


.progress-ring circle {
  fill: none;
  stroke-width:20;
}

.progress-ring__bg {
  stroke:transparent;
}

.progress-ring__progress {
  stroke: #00469a;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

.number_date {
  text-align: center;
  padding-top:40px;
  font-size:40px;
  line-height: 64px;
  font-weight: bold;
  color:#00469a;
  padding-bottom:30px;
}
.number_date span{
  font-size: 64px;
  line-height: 64px;
  font-weight: bold;
  color:#00469a;
}

.graph_date ul {
  width:95%;
  margin: 0 auto;
  display: flex;
  gap: 20px;
  padding:30px 0 0; 
}

.graph_date li {
  width: auto !important;
  list-style: none;
}
#recruit_date ul li .graph_date ul li p{
  width: 100%;
  font-size:24px;
  line-height:16px;
  color: #00469a;
  text-align: center;
  margin-bottom: 10px;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  gap:2px;
  line-height: 1;
}
#recruit_date ul li .graph_date ul li p span{
  font-size:14px;
  line-height:16px;
  color: #00469a;
}

.graph_date dt{
  width:70px;
  height:200px; /* 棒の最大高さ */
  background: #BFBDBD;
  position: relative;
  overflow: hidden;
}

.graph_date .bar {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 0;
  background: #00469a;
  transition: height 1s ease;
}

.graph_date dd {
  text-align: center;
  font-size: 14px;
  margin-top:15px;
  font-weight:600;
}

.ratio_date .men{
  margin: 30px 0 20px;
}
.ratio_date .men dl,
.ratio_date .women dl{
  text-align: center;

}

.ratio_date .men dl dt,
.ratio_date .women dl dt{
  font-size:26px;
  margin-bottom:10px;
}
.ratio_date .men dl dd,
.ratio_date .women dl dd{
  font-size:30px;
  line-height: 80px;
  display: inline-flex;
  align-items:baseline;
  justify-content: center;
}
.ratio_date .men dl dd span,
.ratio_date .women dl dd span{
  font-size:80px;
  line-height: 80px;
}
.ratio_date .men dl dt,
.ratio_date .men dl dd,
.ratio_date .men dl dd span{
  color:#00469a;  
}
.ratio_date .women dl dt,
.ratio_date .women dl dd,
.ratio_date .women dl dd span{
  color:#EA566D;  
}

.kokkashikaku{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.kokkashikaku .left{
  width:50%;

}
.kokkashikaku .right{
  width:50%;
  
}
.kokkashikaku .right p{
  color:#00469a;  
  
}


/*0930更新修正ここまで*/

#recruit .cover{
  overflow-x: clip;
}
#recruit .cover #recruit_video{
  position: relative;
}
#recruit .cover #recruit_video:after{
  content: "";
  display: block;
  width:300%;
  height: 100%;
  position:absolute;
  top: 0;
  left: 0;
  background: #00469b;
  z-index: -1;
}
#recruit .cover #recruit_video h2{
  font-size:18px;
  line-height:18px;
  padding:0 0 0 50px;
  margin-bottom:25px;
  color: #FFF;
  background:transparent;
}

#recruit .cover #recruit_video video{
  margin:0 50px;

}

#recruit .cover #recruit_video h2#recruit_message{
  padding-top: 100px;
}
#recruit .cover #recruit_video figure{
  padding:50px 0 0 50px;
}
#recruit .cover #recruit_video h3{
  font-size:30px;
  line-height:56px;
  padding:50px 0 40px 50px;
  margin-bottom:0;
  color: #FFF;
  position: relative;
  border-bottom:none;
}
#recruit .cover #recruit_video p{
  font-size:18px;
  line-height:32px;
  letter-spacing: 0.15em;
  padding:0 0 100px 50px;
  color: #FFF;
  text-align: justify;
  margin-bottom: 0;
}

#recruit .cover #desired_talent{
  position: relative;
  padding-top: 100px;
  padding-bottom: 100px;
}
#recruit .cover #desired_talent:after{
  content: "";
  display: block;
  width:300%;
  height: 100%;
  position:absolute;
  top: 0;
  left: 0;
  background: #d4d4d4;
  z-index: -1;
}
#recruit .cover #desired_talent h2{
  font-size:18px;
  line-height:18px;
  padding:0 0 0 50px;
  margin-bottom:55px;
  color: #00479B;
  background:transparent;
}
#recruit .cover #desired_talent ul{
  padding-left: 50px;
}
#recruit .cover #desired_talent ul li{
  font-size: 16px;
  line-height: 25px;
  color: #00479B;
  position: relative;
  margin-bottom: 35px;
  padding-left:45px;
}
#recruit .cover #desired_talent ul li:last-child{
  margin-bottom: 0;
}
#recruit .cover #desired_talent ul li:before{
  content: "";
  width: 25px;
  height: 25px;
  display: block;
  background: #FFF;
  position: absolute;
  top: 0;
  left: 0;
}
#recruit .cover #desired_talent ul li:after{
  content: "";
  width:30px;
  height:18px;
  background: url(../images/recruit_check_icon.svg) no-repeat center;
  background-size: 30px;
  display: block;
  position: absolute;
  top: 2px;
  left:-2px;
}
#recruit .cover #job_description ul li{
  margin-bottom: 50px;
}
#recruit .cover #job_description ul li:last-child{
  margin-bottom:0;
}
#recruit .cover #job_description ul li dl{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
#recruit .cover #job_description ul li dl dt{
  width:250px;
  margin-right: 50px;
}
#recruit .cover #job_description ul li dl dd{
  width:calc(100% - 300px);
}


#recruit .cover #job_description ul li dl dd h4 {
  font-size: 24px;
  line-height:36px;
  margin-bottom: 20px;
  padding: 0;
  color: #000;
  border:none;
}

#recruit .cover #job_description ul li dl dd p{
  font-size:16px;
  line-height:30px;
  padding:0;
  margin-bottom:0;
  color: #000;
  border:none;
}


#recruit .cover #recruit_requirement ul li{
  padding-bottom:25px;
  border-bottom: 1px solid #ebebeb;
  margin-bottom:25px;
}
#recruit .cover #recruit_requirement ul li dl{
  display: flex;
  flex-wrap: wrap;
}
#recruit .cover #recruit_requirement ul li dl dt{
  width: 155px;
}
#recruit .cover #recruit_requirement ul li dl dd{
  width:calc(100% - 155px);
}
#recruit .cover #recruit_requirement ul li dl dt,
#recruit .cover #recruit_requirement ul li dl dd{
  font-size: 16px;
  line-height: 40px;
}
#recruit .cover #recruit_requirement .btn_area{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-top: 30px;
}
#recruit .cover #recruit_requirement .btn_area .btn{
  width: 370px;
  position: relative;
}
#recruit .cover #recruit_requirement .btn_area .btn a{
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  background: #00479B;
  color: #FFF;
  text-align: center;
}


#recruit .cover #recruit_requirement .btn_area .btn span{
  width:12px;
  display: block;
  position: absolute;
  top:24px;
  right:25px;
}





#our_services .message{
  margin-bottom:100px;
}

#our_services .message dl{
  display: flex;
  flex-wrap: wrap;
}
#our_services .message dl dt,
#our_services .message dl dd{
  width: 50%;
}
#our_services .message dl dt{
  font-size: 30px;
  line-height: 55px;
  color: #00479B;
}
#our_services .message dl dd{
  font-size: 16px;
  line-height: 30px;
  padding-top: 10px;
}
.lower .page_btn{
  margin-bottom:20px;
}
.lower .page_btn .wrap{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width:1100px;
  margin: 0 auto;
}
.lower .page_btn .wrap .btn_list{
  width:50%;
  text-align: center;
}
.lower .page_btn .wrap .btn_list a{
  font-size: 24px;
  line-height: 70px;
  background: #dedede;
  color: #FFF;
  transition: all 0.2s ease;
}
.lower .page_btn .wrap .btn_list a.on,
.lower .page_btn .wrap .btn_list a:hover{
  background:#00479B;
  color: #FFF;
}
#equipment figure,
.machining figure{
  margin-bottom: 50px !important;
}

#equipment .title,
.machining .title{
  width: 900px;
  margin: 0 auto 50px;
  display: flex;
  flex-wrap: wrap;
}
#equipment .title dl,
.machining .title dl{
  width:300px;
}
#equipment .title p,
.machining .title p{
  width:calc(100% - 300px);
}
#equipment .title dl dt,
.machining .title dl dt{
  font-size: 35px;
  padding-top:5px;
  margin-bottom: 15px;
}
#equipment .title dl dd,
.machining .title dl dd{
  font-size:24px;
}
#equipment .title p,
.machining .title p{
  font-size:16px;
  line-height: 30px;
}

#equipment ul,
ul#machining{
  width: 900px;
  margin: 0 auto;
}
#equipment ul li,
ul#machining li{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom:100px;
}
#equipment ul li figure,
ul#machining li figure{
  width: 440px;
  margin-bottom: 0 !important;
}
#equipment ul li .textbox,
ul#machining li .textbox{
  width: 400px;
}
#equipment ul li .textbox dl dt,
ul#machining li .textbox dl dt{
  font-size: 20px;
  color:#00479B;
  margin-bottom:20px;
}
#equipment ul li .textbox dl dd,
ul#machining li .textbox dl dd{
  font-size:16px;
  line-height: 30px;
  text-align: justify;
  margin-bottom:20px;
}
#equipment ul li .btn,
ul#machining li .btn{
  margin-bottom: 0;
}

/*強みページ*/

#strengths .mv{
  position: relative;
}

#strengths .mv h2{
  position: absolute;
  bottom:20%;
  left:10%;
  font-size:35px;
  line-height:78px;
  color: #FFF;
}


#strengths .cover{
  background: url(../images/strengths_sec01_bg.webp) no-repeat top center;
  background-size: 100%;
}

#strengths .cover .wrap{
  width:1000px;
  margin: 0 auto;
}

#strengths .cover .wrap .message{
  padding-top: 200px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 150px;
}
#strengths .cover .wrap .message figure{
  width: 500px;
}
#strengths .cover .wrap .message p{
  width:400px;
  font-size:18px;
  line-height: 30px;
  text-align: justify;
  color:#00469a;
}
#strengths .cover .wrap ul.strengths_point{
  width: 900px;
  margin: 0 auto;
}
#strengths .cover .wrap ul.strengths_point li{
  margin-bottom: 150px;
}
#strengths .cover .wrap ul.strengths_point li:last-child{
  margin-bottom:0;
}

#strengths .cover .wrap ul.strengths_point li .title{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-bottom:70px;
}
#strengths .cover .wrap ul.strengths_point li .title dl{
  width: 420px;
}
/*0930更新修正ここから*/
#strengths .cover .wrap ul.strengths_point li .title dl dt{
  width: 90px;
  height: 90px;
  margin-bottom: 15px;
  background: url(../images/strengths_list_numbg.svg) no-repeat;
  background-size: contain;
  font-size:30px;
}
/*（0930更新修正ここまで）*/
#strengths .cover .wrap ul.strengths_point li .title dl dd{
  font-size:28px;
  line-height:42px;
  color:#00469a;
}

#strengths .cover .wrap ul.strengths_point li .title p{
  width: 380px;
  padding-top: 40px;
  font-size:16px;
  line-height:30px;
}
#strengths .cover .wrap ul.strengths_point li figure{
  width: 100%;
}

#top .mv{
  width: 100%;
  height: calc(100% - 88px);
  position: relative;
}

#top .mv .title{
  position: absolute;
  top: 45%;
  left:5%;
  z-index: 555;
  transform: translateY(-50%);
}
#top .mv .scroll{
  position: absolute;
  bottom:50px;
  left:50%;
  z-index: 555;
  transform: translateX(-50%);
}
#top .mv .title h2,
#top .mv .title h3{
  color: transparent;

}
#top .mv .title h2 span,
#top .mv .title h3 span{
  color: #FFF;
}

#top .mv .title h2{
  margin-bottom:25px;
}
#top .mv .title h2 span{
  font-size: 24px;
  font-weight: bold;
}
#top .mv .title h3 span{
  font-size:40px;
  letter-spacing: 0.1em;
  line-height:80px;
}
#top .mv .scroll a{
  font-size: 16px;
  padding-bottom:15px;
  color: #FFF;
  background: url(../images/scroll_arrow.svg) no-repeat center bottom;
  background-size: 12px;
}


#top .mv .scroll{
  animation:scrollupdown 1s ease infinite;
}

@keyframes scrollupdown {
  0% { transform:translateY(-5px); }
  50% { transform:translateY(5px); }
  100% { transform:translateY(-5px); }
}



#top .mv .bg {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index:-1;
  background: #000;
}

#top .mv .bg video{
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: auto;
  height: auto;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%,-50%);
  z-index: 0;
  opacity:0.8;
}
#top .mv .bg video.sp_movie{
  display: none;
}


#top .mv:before{
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  background: #00469B;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 5;
  animation:video_bar 30s linear infinite;
}
@keyframes video_bar {
  0%{
    transform: scaleX(0);
    transform-origin:top left;
  }
  100%{
    transform: scaleX(1);
    transform-origin:top left;
  }
}
#top .mv:after{
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  background: #FFF;
  position: absolute;
  bottom: 0;
  left: 0;
}


#top .mv .swiper{
  width: 100%;
  height: 100%;
}

#top .mv .swiper .swiper-slide{
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#top .mv .indicator{
  width:250px;
  position: absolute;
  bottom:80px;
  right:120px;
}
/*.swiper-button-next,
.swiper-button-prev
*/
#top .mv .indicator .swiper-pagination{
  width:150px;
  height:1px;
  background:rgba(255, 255, 255, 1.0);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 100;
  opacity: 1 !important;
}
#top .mv .indicator .swiper-pagination span.swiper-pagination-bullet{
}
#top .mv .indicator .swiper-pagination span.swiper-pagination-bullet.swiper-pagination-bullet-active{
  width:150px;
  height:1px;
  display: block;
  background:rgba(255, 255, 255, 0.5);
  opacity: 1;
  border-radius: 0;
  background:#00469a !important;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  z-index: 500;
  animation: 4s forwards scale_out;
  z-index: 9999;
  opacity: 1 !important;
}
  @keyframes scale_out {
    0% {
        transform:scaleX(0);
        transform-origin: top left;
    }
    100% {
        transform:scaleX(1);
        transform-origin: top left;
    }
}

#top .mv .indicator .swiper-button-next,
#top .mv .indicator .swiper-button-prev{
  color: #FFF;
}
#top .mv .indicator .swiper-button-next:after,
#top .mv .indicator .swiper-button-prev:after{
  font-size:15px;
}

#top .news{
  width: 950px;
  margin: 0 auto;
  padding: 100px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#top .news .left{
  width:350px;
}
#top .news .right{
  width:600px;
}
#top .news .left dl{
  margin-bottom:80px;
}

#top .news .left dl dt{
  font-size:18px;
  line-height: 18px;
  margin-bottom: 20px;
  color: #00469a;
}
#top .news .left dl dd{
  font-size:50px;
  line-height: 50px;
}
#top .news .left ul li a{
  font-size:18px;
  line-height:44px;
  color: #707070;
}


#top .news .right ul{
  border-top: 1px solid #cccccc;
}
#top .news .right ul li{
  border-bottom: 1px solid #cccccc;
}
#top .news .right ul li a{
  padding:40px 0;
  display: flex;
  flex-wrap: wrap;
}
#top .news .right ul li a dl{
  display: flex;
  flex-wrap: wrap;
}
#top .news .right ul li a dl dt{
  width: 400px;
  margin-right: 20px;
  font-size: 16px; 
  line-height: 26px;

}
#top .news .right ul li a dl dd{
  border: #cccccc 1px solid;
  font-size: 12px; 
  line-height: 26px;
  border-radius:26px;
  padding:0 15px;
}
#top .news .right ul li a .date{
  font-size: 14px; 
  line-height: 26px;
  border-radius:26px;
  margin-left: 14px;
}
#top .concept{
  position: relative;
}

#top .concept .marquee {
  width: 100%;
  overflow: hidden;
  position: absolute;
  top:80px;
  left: 0;
  z-index: 100;
}
#top .concept .marquee__inner {
  display: flex;
  width: max-content;
  will-change: transform;
}
#top .concept .marquee__content {
  display: flex;
}
#top .concept .marquee__inner span {
  white-space: nowrap;
  font-size: 120px;
  line-height: 1;
  color: #00469b;
}

#top .concept .wrap{
  width: 1100px;
  margin: 0 auto;
  position: relative;
}
#top .concept .textbox{
  width: 450px;
  padding: 350px 0 200px;
  margin-left: 650px;
}
#top .concept .textbox h2{
  font-size: 16px;
  color: #00469b;
  margin-bottom: 50px;
}
#top .concept .textbox h3{
  font-size: 42px;
  line-height: 72px;
  margin-bottom: 50px;
}
#top .concept .textbox p{
  font-size:18px;
  line-height:40px;
  text-align: justify;
}
#top .concept .wrap figure.first{
  width: 400px;
  position: absolute;
  top: 0;
  left:115px;
}
#top .concept .wrap figure.second{
  width: 490px;
  position: absolute;
  top:845px;
  left:-90px;
}
#top .between{
  width: 100%;
  background: url(../images/top_between_bg.webp) no-repeat top center;
  background-size: 100%;
}

#top .between .wrap{
  width: 600px;
  padding: 50px 0 450px;
  margin: 0 auto;
}



#top .btn{
  margin-bottom:25px;
}
#top .btn a{
  border: 2px solid #00469b;
  display: inline-block;
  padding:20px 70px;
  color: #00469b;
  position: relative;
  transition: all 0.2s ease;
  background: url(../images/b_arrow.webp) center right 15px no-repeat;
  background-size: 15px;
}
#top .btn a:after{
  content: "";
  width: 100%;
  height:100%;
  background: #00469b;
  display: block;
  transform: scaleX(0);
  transform-origin: top right;
  transition: transform 0.2s ease;
  position: absolute;
  top: 0;
  left: 0;
  z-index:-1;
}
#top .btn a:hover{
  color: #FFF;
  background: url(../images/w_b_arrow.webp) center right 15px no-repeat;
  background-size: 15px;
}
#top .btn a:hover:after{
  transform: scaleX(1);
  transform-origin: top left;
}

#top .strengths{
  display: flex;
  flex-wrap: wrap;
  flex-direction: row-reverse;
  margin-bottom: 150px;
}
#top .strengths .wrap{
  width:35%;
  padding:150px 7.5%;
  margin: 0 auto;
}
#top .strengths .wrap h2{
  font-size: 18px;
  margin-bottom: 25px;
  color: #00469b;
}
#top .strengths .wrap h3{
  font-size:60px;
  margin-bottom: 25px;
}
#top .strengths .wrap h4{
  font-size:22px;
  line-height: 38px;
  margin-bottom: 25px;
}
#top .strengths .wrap p{
  font-size:16px;
  line-height:30px;
  text-align: justify;
  margin-bottom:35px;
}
#top .strengths figure{
  width: 50%;
  min-height: 100%;
  background: url(../images/top_strengths_img.webp) no-repeat center;
  background-size: cover;
}

#top .cushion{
  width: 100%;
  height: 500px;
  margin-bottom: 150px;
}
#top .cushion .swiper{
  width: 100%;
  height: 100%;
}

#top .cushion .swiper .swiper-slide{
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#top .our_services .wrap{
  width: 1000px;
  margin: 0 auto;
}
#top .our_services .wrap .title{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 75px;
}
#top .our_services .wrap .title dl{
  width:495px;
}
#top .our_services .wrap .title p{
  width:450px;
  font-size: 16px;
  line-height: 30px;
  text-align: justify;
}
#top .our_services .wrap .title dl dt{
  font-size: 18px;
  margin-bottom: 20px;
  color: #00469b;
}
#top .our_services .wrap .title dl dd{
  font-size:50px;
}
#top .our_services .wrap ul li{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom:50px;
}
#top .our_services .wrap ul li:last-child{
  margin-bottom:0;
}
#top .our_services .wrap ul li figure{
  width: 595px;
}
#top .our_services .wrap ul li .textbox{
  width:335px;
}

#top .our_services .wrap ul li .textbox dl dt{
  font-size:18px;
  margin-bottom:20px;
}
#top .our_services .wrap ul li .textbox dl dd{
  font-size:35px;
  margin-bottom:20px;
  color: #00469b;
}


#top .our_services .wrap ul li .textbox .btn{
  margin-bottom: 0;
}

#top .ft_menu{
  padding-top: 200px;
}

#top .ft_menu ul{
  display: flex;
  flex-wrap: wrap;
} 
#top .ft_menu ul li{
  width: 50%;
  height: 300px;
  position: relative;
}
#top .ft_menu ul li a{
  width: 100%;
  height: 100%;
  display: block;
}
#top .ft_menu ul li a:after{
  content: "";
  display: block;
  width: 100%;
  height:100px;
  background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
  position: absolute;
  bottom:0;
  left: 0;
  transition: background ease 0.2s;
}
#top .ft_menu ul li a:hover:after{
  content: "";
  display: block;
  width: 100%;
  height:100%;
  background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.4));
  mix-blend-mode: multiply;
  position: absolute;
  bottom:0;
  left: 0;
}

#top .ft_menu ul li:nth-child(1){
  background: url(../images/top_ft_menu01.webp) no-repeat center;
  background-size: cover;
}
#top .ft_menu ul li:nth-child(2){
  background: url(../images/top_ft_menu02.webp) no-repeat center;
  background-size: cover;
}
#top .ft_menu ul li:nth-child(3){
  background: url(../images/top_ft_menu03.webp) no-repeat center;
  background-size: cover;
}
#top .ft_menu ul li:nth-child(4){
  background: url(../images/top_ft_menu04.webp) no-repeat center;
  background-size: cover;
}

#top .ft_menu ul li dl{
  position: absolute;
  bottom: 30px;
  left: 30px;
  z-index: 100;
}
#top .ft_menu ul li dl dt,
#top .ft_menu ul li dl dd{
  color: #FFFFFF;
}
#top .ft_menu ul li dl dt{
  font-size: 16px;
  margin-bottom: 10px;
}
#top .ft_menu ul li dl dd{
  font-size: 20px;
}

/* ↓tanakat追加 */
#top .news .right .news_top{
  overflow:auto;
  height:300px;
  padding:10px;
}

#top .news .right .news_top ul{
  border-top: 1px solid #cccccc;
}

#top .news .right .news_top ul li{
  border-bottom: 1px solid #cccccc;
}
#top .news .right .news_top ul li a{
  padding:40px 0;
  display: flex;
  flex-wrap: wrap;
}
#top .news .right .news_top ul li a .date{
  font-size: 14px; 
  line-height: 26px;
  border-radius:26px;
  margin-left: 14px;
  margin-right: 30px;
}
/* ↑tanakat追加 */


/* 小栁追加 */
#post .news{
  width: 100%;
  margin: 0 auto;
  padding: 30px 0;
  flex-wrap: wrap;
  justify-content: space-between;
}

#post .news ul{
  border-top: 1px solid #cccccc;
}
#post .news ul li{
  border-bottom: 1px solid #cccccc;
}
#post .news ul li a{
  padding:40px 0;
  display: flex;
  flex-wrap: wrap;
}
#post .news ul li a dl{
  display: flex;
  flex-wrap: wrap;
}
#post .news ul li a dl dt{
  width: 900px;
  margin-right: 20px;
  font-size: 16px; 
  line-height: 26px;

}
#post .news ul li a dl dd{
  border: #cccccc 1px solid;
  font-size: 12px; 
  line-height: 26px;
  border-radius:26px;
  padding:0 15px;
}
#post .news ul li a .date{
  font-size: 14px; 
  line-height: 26px;
  border-radius:26px;
  margin-left: 14px;
  margin-right: 14px;
}

#recruit .news{
  width: 100%;
  margin: 0 auto;
  padding: 30px 0;
  flex-wrap: wrap;
  justify-content: space-between;
}

#recruit .news ul{
  border-top: 1px solid #cccccc;
}
#recruit .news ul li{
  border-bottom: 1px solid #cccccc;
}
#recruit .news ul li a{
  padding:40px 0;
  display: flex;
  flex-wrap: wrap;
}
#recruit .news ul li a dl{
  display: flex;
  flex-wrap: wrap;
}
#recruit .news ul li a dl dt{
  width: 600px;
  margin-right: 20px;
  font-size: 16px; 
  line-height: 26px;

}
#recruit .news ul li a dl dd{
  border: #cccccc 1px solid;
  font-size: 12px; 
  line-height: 26px;
  border-radius:26px;
  padding:0 15px;
}
#recruit .news ul li a .date{
  font-size: 14px; 
  line-height: 26px;
  border-radius:26px;
  margin-left: 14px;
}

.policy .cover .content p{
  font-size:14px;
  line-height:26px;
  padding-left: 0;
  margin-top: 10px;
}

.policy .cover .content dl dd p{
  font-size:0.875rem;
  line-height:24px;
  margin-bottom: 0;
}

.policy .cover .content dl {
    margin-top: 20px;
    padding-left: 35px;
    position: relative;
    margin-bottom: 20px;
    border-bottom: 1px solid #DEDEDE;
    padding-bottom: 20px;
}
.policy .cover .content dl:last-child{
  border-bottom:none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.policy .cover .content dl dt{
  font-size:18px;
  line-height:28px;
  font-weight: 700;
  color: #00479B;
  margin-bottom:10px;
}
.policy .cover .content dl:before{
  font-size:18px;
  line-height: 28px;
  font-weight: 700;
  position: absolute;
  color: #00479B;
  top: 0;
  left: 0;
}
.policy .cover .content dl.no1:before { content: "1."; }
.policy .cover .content dl.no2:before { content: "2."; }
.policy .cover .content dl.no3:before { content: "3."; }
.policy .cover .content dl.no4:before { content: "4."; }
.policy .cover .content dl.no5:before { content: "5."; }
.policy .cover .content dl.no6:before { content: "6."; }
.policy .cover .content dl.no7:before { content: "7."; }
.policy .cover .content dl.no8:before { content: "8."; }
.policy .cover .content dl.no9:before { content: "9."; }
.policy .cover .content dl.no10:before { content: "10."; }
.policy .cover .content dl.no11:before { content: "11"; }
.policy .cover .content dl.no12:before { content: "12."; }
.policy .cover .content dl.no13:before { content: "13."; }
.policy .cover .content dl.no14:before { content: "14."; }
.policy .cover .content dl.no15:before { content: "15."; }


.policy .cover .content dl dd ul li h4{
  font-size:15px;
  line-height:24px;
  font-weight: 500;
  margin-top: 20px;
  padding-left:30px;
  position: relative;
  margin-bottom:5px;
  border:none;
  color: #000;
}

.policy .cover .content dl dd ul li h4:before{
  font-size:16px;
  line-height:24px;
  font-weight: 500;
  position: absolute;
  top: 0;
  left:0;
}
.policy .cover .content dl dd ul li h4.no1:before{content:"（1）";}
.policy .cover .content dl dd ul li h4.no2:before{content:"（2）";}
.policy .cover .content dl dd ul li h4.no3:before{content:"（3）";}
.policy .cover .content dl dd ul li h4.no4:before{content:"（4）";}
.policy .cover .content dl dd ul li h4.no5:before{content:"（5）";}
.policy .cover .content dl dd ul li h4.no6:before{content:"（6）";}
.policy .cover .content dl dd ul li h4.no7:before{content:"（7）";}
.policy .cover .content dl dd ul li h4.no8:before{content:"（8）";}
.policy .cover .content dl dd ul li h4.no9:before{content:"（9）";}
.policy .cover .content dl dd ul li h4.no10:before{content:"（10）";}
.policy .cover .content dl dd ul li h4.no11:before{content:"（11）";}

.policy .cover .content dl dd ul li h4 sup{
  vertical-align: bottom;
}

.policy .cover .content dl dd ol li:before{
  content: "・";
  font-size:0.875rem;
  line-height:24px;
  display: block;
  position: absolute;
  top: 0;
  left:10px;
}
.policy .cover .content dl dd ol li{
  padding-left:25px;
  position: relative;
}

.policy .cover .content dl dd ul li,
.policy .cover .content dl dd ol li{
  font-size:0.875rem;
  line-height:24px;
}
.policy .cover .content dl dd ol li p{
  padding-left: 0;
}
#privacy .borderbox{
  border: 3px solid #00479B;
  padding:30px;
}


.policy .cover .content dl dd p span,
.policy .cover .content dl dd p span a{
  display: block;
  font-size:12px;
  line-height:18px;
}
.policy .cover .content dl dd p span{
  padding-top: 10px;
}


.policy .cover .content dl dd p span a{
  transition: all 0.2s ease;
  color: #00479B;
}
.policy .cover .content dl dd p span a:hover{
  opacity: 0.5;
}
.policy .cover .content dl.border_none{
  border-bottom: none;
}

.policy .cover .content .borderbox{
  border: 3px solid #00479B;
  padding:30px;
}
.policy .cover .content .borderbox h4{
  font-size:16px;
  line-height: 24px;
  font-weight: 600;
  color: #00479B;
  padding: 0;
  border:none;
  margin-bottom:15px;

}
.policy .cover .content .borderbox h5{
  font-size:1rem;
  margin-bottom:15px;
  border-bottom: 1px solid #00479B;
  padding:0 0 20px;
  background: transparent;
}
.policy .cover .content .borderbox p{
  font-size:0.875rem;
  line-height:24px;
  margin-bottom: 0;
}




.terms .cover p{
  font-size:14px;
  line-height:26px;
  padding-left: 0;
  margin-top: 10px;
}

.terms .cover dl dd p{
  font-size:14px !important;
  line-height:26px !important;
  margin-bottom: 0;
}

.terms .cover dl {
    margin-top: 20px;
    padding-left: 35px;
    position: relative;
    margin-bottom: 20px;
    border-bottom: 1px solid #DEDEDE;
    padding-bottom: 20px;
}
.terms .cover dl:last-child{
  border-bottom:none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.terms .cover dl dt{
  font-size:18px;
  line-height:28px;
  font-weight: 700;
  color: #00479B;
  margin-bottom:10px;
}
.terms .cover dl:before{
  font-size:18px;
  line-height: 28px;
  font-weight: 700;
  position: absolute;
  color: #00479B;
  top: 0;
  left: 0;
}
.terms .cover dl.no1:before { content: "1."; }
.terms .cover dl.no2:before { content: "2."; }
.terms .cover dl.no3:before { content: "3."; }
.terms .cover dl.no4:before { content: "4."; }
.terms .cover dl.no5:before { content: "5."; }
.terms .cover dl.no6:before { content: "6."; }
.terms .cover dl.no7:before { content: "7."; }
.terms .cover dl.no8:before { content: "8."; }
.terms .cover dl.no9:before { content: "9."; }
.terms .cover dl.no10:before { content: "10."; }
.terms .cover dl.no11:before { content: "11"; }
.terms .cover dl.no12:before { content: "12."; }
.terms .cover dl.no13:before { content: "13."; }
.terms .cover dl.no14:before { content: "14."; }
.terms .cover dl.no15:before { content: "15."; }

.terms .cover dl dd ol li{
  font-size:14px;
  line-height:26px;
  position: relative;
  padding-left:25px;
}
.terms .cover dl dd ol li:before{
  font-size:14px;
  line-height:26px;
  position: absolute;
  top: 0;
  left: 0;
}
.terms .cover dl dd ol li.no1:before { content: "(1)"; }
.terms .cover dl dd ol li.no2:before { content: "(2)"; }
.terms .cover dl dd ol li.no3:before { content: "(3)"; }
.terms .cover dl dd ol li.no4:before { content: "(4)"; }
.terms .cover dl dd ol li.no5:before { content: "(5)"; }
.terms .cover dl dd ol li.no6:before { content: "(6)"; }
.terms .cover dl dd ol li.no7:before { content: "(7)"; }
.terms .cover dl dd ol li.no8:before { content: "(8)"; }
.terms .cover dl dd ol li.no9:before { content: "(9)"; }
.terms .cover dl dd ol li.no10:before { content: "(10)"; }
.terms .cover dl dd ol li.no11:before { content: "(11)"; }
.terms .cover dl dd ol li.no12:before { content: "(12)"; }
.terms .cover dl dd ol li.no13:before { content: "(13)"; }
.terms .cover dl dd ol li.no14:before { content: "(14)"; }
.terms .cover dl dd ol li.no15:before { content: "(15)"; }
