@charset "utf-8";
/* CSS Document */
/*---------------------共通/---------------------*/


@media (max-width: 1200px) {

    header .row {
        justify-content: center !important;
      }  
      
}

@media (max-width: 415px) {
    body,
    table th,
    table td{
        font-size: 3.5vw;
    }    
}

a{
     font-weight: 500;
}

header{
	display: none;
}


#wap{
    margin-top: 60px;
}

@media (max-width: 415px) {

p{
	font-size: 3.5vw;
}

.btn{
	font-size: 3.6vw;
    margin-bottom: 10px;
}
    
.f_10,
.f_10 span{
	font-size: 3.0vw;
}
    
.f_12,
.f_12 span{
	font-size: 3.0vw;
}

.f_14,
.f_14 span{
	font-size: 3.4vw;
}

.f_18,
.f_18 span{
	font-size: 3.5vw;
}
.f_20,
.f_20 span{
	font-size: 4.4vw;
}
.f_21,
.f_21 span{
	font-size: 4.4vw;
}

.f_22,
.f_22 span{
	font-size: 4.6vw;
}
.f_24,
.f_24 span{
	font-size: 5.0vw;
}


.f_26,
.f_26 span{
	font-size: 5.4vw;
}

.f_28,
.f_28 span{
	font-size: 5.8vw;
}
.f_32,
.f_32 span{
	font-size: 6.0vw;
}
.f_36,
.f_36 span{
	font-size: 6.0vw;
}

.f_40,
.f_40 span{
	font-size: 6.6vw;
}

.f_42,
.f_42 span{
	font-size: 6.8vw;
}
    
.f_48,
.f_48 span{
	font-size: 7.0vw;
}
    
.f_56,
.f_56 span{
	font-size: 7.5vw;
}

.f_60,
.f_60 span{
	font-size: 7.8vw;
}

    
.f_64,
.f_64 span{
	font-size: 8.0vw;
}

.f_72,
.f_72 span{
	font-size: 10.0vw;
}
    
.f_84,
.f_84 span{
	font-size: 12.0vw;
}

.f_96,
.f_96 span{
	font-size: 15.0vw;
}
    
}

.mt10{
    margin-top: 5px;
}


.mt20{
    margin-top: 10px !important;
}

.mt30{
    margin-top: 15px;
}

.mt40{
    margin-top: 20px;
}

.mt50{
    margin-top: 25px;
}

.mt60{
    margin-top: 30px;
}
.mt80{
    margin-top: 40px;
}
.mt100{
    margin-top: 50px;
}

.mt120{
    margin-top: 60px;
}


.mt0_sp{
    margin-top: 0;
}

.sp_block{
	display: block !important;
}

.pc_block{
	display: none !important;
}

.btn.sp_block{
    display: inline-block!important;
}


.txt_left_sp{
	text-align: left;
}

.txt_center_sp{
	text-align: center;
}


.fl_box_sp_1{
	width: 100%
}


.fadein:nth-of-type(1) ,
.fadein:nth-of-type(2) ,
.fadein:nth-of-type(3) ,
.fadein:nth-of-type(4) {
    -moz-transition-delay:100ms;
    -webkit-transition-delay:100ms;
    -o-transition-delay:100ms;
    -ms-transition-delay:100ms;
    }

#container{
    margin-top: 0 !important;
}

/*---------------------共通/---------------------*/

/*---------------------/hamburger---------------------*/

.side_nav{
    width: 100%;
    background: #fff;
    position: fixed;
    top: 0;
    z-index: 10000;
}

.side_nav .navi_logo{
	width: 100%;
    background: #fff;
    position: relative;
    z-index: 10000;
    height: 60px;
    display: flex;
    align-items: center;
}

.side_nav .navi_logo h1{
   width: 50%; 
    margin-left: 2%;
}

.side_nav .navi_logo img{
    width: 100%;
    height: auto;
}


.menu-trigger{
    position: absolute;
    top: 20px;
    right: 25px;
    width: 30px;
    height: 23px;
    z-index: 100000;
}

.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}

.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #00063b;
  border-radius: 4px;
}
.menu-trigger span:nth-of-type(1) {
  top: 0;
}
.menu-trigger span:nth-of-type(2) {
  top: 10px;
}
.menu-trigger span:nth-of-type(3) {
  bottom: 0;
}

.menu-trigger.active span:nth-of-type(1) {
  -webkit-transform: translateY(9px) rotate(-45deg);
  transform: translateY(9px) rotate(-45deg);
}
.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;
}
.menu-trigger.active span:nth-of-type(3) {
  -webkit-transform: translateY(-11px) rotate(45deg);
  transform: translateY(-11px) rotate(45deg);
}


.side_nav nav {
	width: 90%;
	height: 100%;
	padding-top: 100px;
	background-color: rgba(255, 255, 255, 0.9);
	position: fixed;
	top: 60px;
	right: 0;
	z-index: 900;
	transform: translate(100%);
	transition: all .5s;
	padding: 40px 5% 30px;
    overflow: auto;
     -webkit-overflow-scrolling: touch;
    box-sizing: border-box;

}
.side_nav nav.open {
	transform: translateZ(0);
}

.side_nav .menu_01 li {
    cursor: pointer;
    display: block;
    position: relative;
    width: 100%;
    border-bottom: 1px solid #ccc;
    
}

.side_nav .menu_01 li a{
    display: block;
    padding: 15px 0;
}

.side_nav .menu_01 li i{
    font-size: 16px;
    top: 2px;
}

.side_nav .menu_01 li i.arrow{
    font-size: 20px;
    position: absolute;
    top: 15px;
    left: 90%;
    color: #00063b;
}
.menu_02 li {
    cursor: pointer;
    display: block;
    position: relative;
    width: 100%;
    text-decoration:underline;
}

.menu_02 li a{
    display: block;
    padding: 5px 0;
}

.menu_02 li i{
    font-size: 16px;
    top: 2px;
}

.menu_02 li i.arrow{
    font-size: 20px;
    position: absolute;
    top: 15px;
    left: 90%;
    color: #00063b;
}

.side_nav .form_link{
    width: 90%;
    margin: auto;
    margin-top: 60px;
}

.side_nav .form_link .form_link_txt02 i,
.side_nav .form_link .form_link_txt02 a{
    font-size: 7.2vw;
}


.side_nav .form_link .btn_main{
    font-size: 18px;
}

.overlay {
  content: "";
  display: block;
  width: 0;
  height: 0;
  background-color: rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 500;
  opacity: 0;
  transition: opacity .5s;
}

.overlay.open {
  width: 100%;
  height: 100%;
  opacity: 1;
}


/*---------------------hamburger/---------------------*/
/*---------------------/footer---------------------*/

footer{
    width: 100%;
    text-align: center;
}

footer h1 img{
    width: 60%;
    height: auto;
}

footer .footer_box01{
    width: 100%;
}

footer .form_link{
    width: 80%;
    margin: 30px auto 0;
}

footer address.f_14{
    font-size: 2vw;
    right: 1%;
}

footer .page_top{
    top: 0;
    font-size: 3vw;
}



/*---------------------footer/---------------------*/

.bg01{
    padding: 60px 0;
}

.news_box_wap{
    width: 100%;
    margin-top: 30px;
}

.news_box_wap .news_box_ttl {
    padding-right: 40px;
}
.news_s_box{
    margin-bottom: 100px;
}


.table01 th{
    padding: 15px 0 0 ;
    width: 100%;
    display: block;
    border: none;
    font-size: 3.5vw;
}

.table01 td{
    padding: 0 0 15px;
    width: 100%;
    display: block;
    border-bottom: 1px solid #ccc;
    font-size: 3.5vw;
}

input[type=button],
input[type=submit]{
    margin-bottom: 10px;
}

.sub_ttl{
    padding: 60px 0;
}


table.contact_form{
    width: 100%;
}

table.contact_form th{
    padding: 15px 0 5px;
    width: 100%;
    display: block;
    text-align: left;
    border: none;
}


table.contact_form td{
    width: 100%;
    display: block;
    padding: 0;
}

.mt-200 {
    margin-top: -15px;
}

.cont11 .cont11-box .table-ptn01 tr th,.cont11 .cont11-box .table-ptn01 tr td {
    display: block;
  }
  .cont11 .cont11-box .table-ptn01 tr th {
    width: 100%;
  }
  .table-ptn02-wrap {
    overflow-x: scroll;
  }
  .cont11 .cont11-box .table-ptn02 {
    width: 800px;
  }

  .cont14 .cont14-row-wrap .cont14-row{
    flex-direction: column !important;
  }
  .cont14 .cont14-row-wrap .cont14-row .cont14-row-item{
    width: 100%;
  }
/*---------------------cont/---------------------*/
.cont01 .cont01_ttl{
    width: 100%;
    text-align: center;
}
.cont01 .cont01_ttl .btn_main{
    display: none;
}

.cont01 .btn_wap{
    width: 100%;
}

.cont01 .btn_wap .btn_main{
    display: inline-block !important;
}

.cont02 > img{
    width: 100%;
    left: 0;
    height: 400px;
    object-fit: cover;
}

.cont02 .cont02_txt_box{
    width: 100%;
    margin-top: 10px;
}

.cont02 .cont02_txt_box .bg_inner{
    padding: 40px 0;
}

.con03 .container{
    width: 100%;
}

.con03 img{
    width: 120%;
    margin-left: -10%;
}

.cont04{
    padding: 60px 0;
}
.cont06 .cont06-row {
    flex-direction: column;
    margin-bottom: 40px;
}
.cont06 .cont06-row img {
    margin-bottom: 30px;
}
.cont06 .cont06-row img,.cont06 .cont06-row p {
    width: 100%;
  }

.cont07 iframe{
    height: 200px;
}

.cont08 .cont08_box_txt02 i{
    font-size: 7vw;
}

.cont09 .cont09_box figure img{
    height: 140px;
    object-fit: cover;
}

.cont09 .cont09_box figure .material-icons-outlined {
    left: unset;
    right: 10%;
    top: 50%;
    transform: translate(0,-50%);
}

.cont12 .cont12-wrap .cont12-item {
   flex-direction: column;
   padding: 20px;
  }

.cont12.cont12-1 .cont12-wrap .cont12-item p:first-child {
    border-right: none;
    border-bottom: 1px solid #00063b;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
.cont12 .cont12-wrap .cont12-item p:last-child {
    padding-left: 0;
  }
.cont12 .cont12-wrap .cont12-item img{
    width: 100%;
    margin: 30px 0;
   }


.anchor-link  {
    flex-direction: column;
  }
.anchor-link  a:nth-child(2) {
    margin:20px 0;
  }
.anchor-point {
    transform: translateY(-60px);
  }

  #pagetop {

    bottom: 76px !important;
  }
  

/*---------------------/cont---------------------*/


.con_frame01_select{
    width: 45% !important;
}



/*-----募集要項のエントリーボタン---------*/

.entry_btn{
min-width: unset;
  margin-top: 6vw;
  }

  /*---------------202403 変更-----------------*/
  @media (max-width: 768px) {
    .mission .mission_content {
        background: url("../img/top/recruit_sp_2.jpg") no-repeat;
        background-size: cover;
        height: 100%;
        padding: 25px 0;
    }
    .mission .mission_title {
        font-size: 4.3vw;
    }
    .mission .mission_content .bg_inner tr {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin: 0 auto;
        padding-top: 20px;
    }
    .mission .mission_content .bg_inner {
        width: 90%;
    }
    .mission .mission_content .bg_inner tr th {
        text-align: start;
        margin-left: 6px;
        font-size: 3vw;
        letter-spacing: 0.1rem;
    }
    .mission .mission_content .bg_inner table td {
        padding-left: 0;
        margin-left: 6px;
        padding-top: 0px;
        font-size: 4vw;
    }
    .mission .mission_content .bg_inner .values td {
        font-size: 3vw;
    }
    .contact_banner {
        flex-direction: column;
        width: 245px;
        margin: 0 auto;
        
    }
  }

  /* -------  250116お問い合わせに当社が取扱う個人情報について追加  ------- */
  @media (max-width: 768px) {
    .personal_information {
        width: 100%;
        height: 300px;
        margin: 0 auto;
      }
      .personal_information .container_800 td {
        width: 100%;
        padding: 8px
      }
      .personal_information .container_800 tr {
        display: flex;
      }
      .personal_information .container_800 th {
        padding: 8px;
      }
  }

  /* -------  250407 Xロゴ追加  ------- */
  @media (max-width: 768px) {
    .logo_area {
        justify-content: center;
    }
     /* -------  250407 採用バナー追加  ------- */
     .btn_main.recruit_banner {
        margin: 23px auto;
        width: 90%;
     }
     .side_nav .form_link {
        margin-top: 25px;
     }
      /* -------  250407 採用バナー調整  ------- */
      .contact_banner .btn_main {
        padding: 15px 28px;
      }

      /* -------  250527 資格マーク追加 ------- */
        /* .cont06 table td .certification li {
            flex-direction: column;
            align-items: flex-start
        } */
        .footer_box01 .logo_area {
            flex-direction: column;
            align-items: center;
        }

    }
 
/* -------  250718SECURITY ACTION追加 ------- */
    @media (max-width: 767px) {
        .declaration {
            width: 80%;
        }
        .declaration .inner {
            padding:45px 45px;
            gap: 0;
        }
        .declaration .inner img {
            width: 200px;
            margin-bottom: 35px;
        }
    }
 
    /* -------  260106 経営革新計画、顧問弁護士証追加 ------- */
    @media (max-width: 767px) {
        #innovation img {
        width: 100%;
        }
        #law_verybest {
        }
        #law_verybest img {
        width: 100%;
        }
        .declaration p {
            padding-right: 13px;
            padding-left: 13px;
        }
        .table01 td a {
            font-size: 3.5vw;
        }
    }

/* --------- 260225 有料改修 ------- */

     @media (max-width: 767px) {
        .w30{
            width:98% !important;
            margin: 1% auto !important;
        }
    }

/* 20260303 LINE追加 */
@media (max-width: 767px) {
    
    #pagetop {
        bottom: 87px !important;
    }
}

/* ============================================================
   product/ プロダクトページ専用 SPスタイル
   セレクタは .product_page 配下に限定（既存スタイル非汚染）
============================================================ */
@media (max-width: 767px) {
    .product_page .product_name {
        font-size: 26px;
    }
    .product_page .product_lead {
        font-size: 3.5vw;
        text-align: left;
        padding: 0 4vw;
    }
    .product_page .product_gray,
    .product_page .product_white {
        padding: 70px 0 80px;
    }
    .product_page .product_sub_ttl {
        font-size: 22px;
    }
    .product_page .product_feature_card {
        flex: 1 1 100%;
    }
    .product_page .product_usecase {
        padding: 28px 20px 30px;
    }
    .product_page .product_usecase_cols {
        gap: 0;
    }
    .product_page .product_anchor_nav {
        padding: 24px 16px;
    }
    .product_page .product_anchor_list li a {
        font-size: 13px;
        padding: 8px 14px;
    }

}

@media (max-width: 767px) {
    .number_cont{
        padding:40px 12px 0;
    }
    .number_cont .nc-section-ttl{
        font-size:28px;margin-bottom:32px;
    }
    .number_cont .nc-grid{
        grid-template-columns:1fr;
    }
    .number_cont .nc-card{
      border-right:none;
      padding:28px 18px;
    }
    .number_cont .nc-card:nth-child(2n){border-right:none;}
    .number_cont .nc-card-language{grid-column:1 / 2;}
    .number_cont .nc-age-body{max-width:320px;}
    .number_cont .nc-age-leg .nc-age-leg-num{font-size:16px;}
    .number_cont .nc-age-leg{font-size:11px;}
    .number_cont .nc-gender-item img{height:130px;}
    .number_cont .nc-gender-num .count-up{font-size:34px;}
    .number_cont .nc-lang-body{gap:18px;}
    .number_cont .nc-lang-chart{
        width:240px;height:240px;
    }

    .number_cont .nc-lang-chart .lang_pc{
        width: 60px;
    }

    .number_cont .nc-lang-legend{column-gap:20px;font-size:14px;}
    .number_cont .nc-lang-legend li{font-size:14px;}

    .number_cont .nc-cat-grid{
        grid-template-columns:1fr 1fr;
        gap:10px;
        max-width:100%;
    }
    .number_cont .nc-cat-item{
        padding:12px 10px 10px;
    }
    .number_cont .nc-cat-label{
        font-size:14px;
        margin-bottom:6px;
    }
    .number_cont .nc-cat-row{
        gap:6px;
    }
    .number_cont .nc-cat-row img{
        width:36px;
        height:36px;
    }
    .number_cont .nc-cat-num .count-up{font-size:22px;}
    
    .number_cont .nc-age-center-label {
        font-size: 18px;
    }

    .number_cont .nc-age-center-value .nc-age-center-int {
        font-size: 44px !important;
        line-height: 1.0;
    }

    .number_cont .nc-age-leg.is-4 {
        left: -6%;
        top: 19%;
    }
    .number_cont .nc-age-leg.is-5 {
        top: 4%;

    }

    .number_cont .nc-age-chart {
        inset: 2%;
    }

    .number_cont .nc-age-center-value .nc-age-center-dec {
        font-size: 32px;
        margin-left: 1px;
        line-height: 1.0;
    }

    .number_cont .nc-age-leg .nc-age-leg-label {
        font-size: 16px;
    }

    .main-view_text {
        left: 5%;
        right: 5%;
      }
      .main-view_text__title .lg {
        font-size: 20px;
      }
      .main-view_text__title .sm {
        font-size: 16px;
      }
      .main-view_text__lead {
        font-size: 12px;
        margin-top: 20px;
      }
      .main-view_text__lead span{
        font-size: 12px;
      }

      .sp_block{
        margin-top: 0px;
      }

      /* テーブル全体の基本設定 */
.table01 {
    width: 100%;
    font-size: 3.5vw;
}

/* ヘッダーの調整 */
.table01 th {
    background-color: #fff;
    border: 1px solid #fff;
    padding: 12px;
    
}

/* 左列（プロジェクト名）の幅を30%に指定 */
.table01 th:first-child,
.table01 td:first-child {
    width: 100%;
    background-color: #fff; /* 左側を少し色付けして見やすく */
    font-weight: bold;
    word-break: break-all; /* 長い単語の改行対策 */
    padding: 15px;
    padding-bottom: 0;
}

/* 右列（詳細）の幅を70%に指定 */
.table01 th:last-child,
.table01 td:last-child {
    width: 100%;
}

/* セルの基本設定 */
.table01 td {
    border: 1px solid #fff;
    background-color: #fff;
    padding: 15px;
    vertical-align: top; /* 文字を上揃えにする */
    line-height: 1.8;    /* 行間を広げて読みやすく */
    font-size: 3.5vw;
    padding-top: 0;
}

    .pc_none {
         display: block !important;
    }


    .f_24, .f_24 span {
        font-size: 4.8vw;
    }

    .f_36,
    .f_36 span {
        font-size: 5.0vw;

    }

    .sp_left {
        text-align: left !important;
    }

     .sp_center {
        text-align: center !important;
    }

     .sp_right {
        text-align: right !important;
    }

    .sp-d-none {
        display: block !important;
    }

    .sp_none {
        display: none !important;
    }

    .f_18,
.f_18 span{
	font-size: 3.5vw;
}

.f_42, .f_42 span {
    font-size: 7vw;

}

.pt120 {
    padding-top: 40px;
}

/* --------- 260228 新着情報ボタンエリア調整 ------- */


    @media (max-width: 767px) {
        .news_single_nav {
            flex-direction: column;
        }

    }
}