@charset "UTF-8";


@media (max-width:1220px){
  .container{
    width: 100%;
  }
  
  /* **********************************
   *  トップページ
   * ********************************* */
  
  .home .about .flex .b_l {
    width: 48%;
  }
  .home .about .flex .b_r {
    width: 50%;
    flex-wrap: wrap;
  }
  .home .about .flex .b_r > div{
    width: 50%;
    margin-bottom: 20px;
  }
  .home .group .flex .info {
    width: 35%;
  }
  .home .group .flex.f1 .img{
    margin-left: 2%;
  }
  .home .group .flex .img{
    width: 63%;
  }
  
  /* **********************************
   *  ご挨拶
  * ********************************* */
  .pg-greeting .msg .txt {
    padding: 60px;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */
  .pg-recruit .msg .large {
    font-size: 28px;
    line-height: 30px;
  }
  .bring{
    display: inline;
  }
  .pg-recruit .msg .mb50{
    text-align: left;
  }
  .pg-recruit .info th{
    padding-left: 100px;
  }
  .pg-recruit .info td{
    padding-left: 30px;
  }
  
  /* **********************************
   *  サイトマップ
   * ********************************* */
  .pg-sitemap .flex {
    width: 100%;
  }
}

@media (max-width:1023px){
  
  /* **********************************
   *  ヘッダー
   * ********************************* */
  .gnav > ul{
    max-width: 700px;
  }
  
  /* **********************************
   *  フッター
   * ********************************* */
  footer .ftr1 {
    max-width: 700px;
  }
  
  footer .ftr1 .ftr_links > li:nth-child(5):after{
    content: "｜";
  }
  
  /* **********************************
   *  トップページ
   * ********************************* */
  .home .mv {
    height: 600px;
  }
  .home .mvbg{
    height: 600px;
    background-size: cover;
  }
  .home .mv .flex {
    height: 88%;
  }
  .home .mv .tate,
  .home .tate{
    font-size: 30px;
  }
  .home .mv .news > h3 {
    width: 16%;
    font-size: 18px;
  }
  .home .mv .news > p{
    font-size: 12px;
    padding: 0 0 0 45px;
  }
  .home .about > .flex {
    flex-wrap: wrap;
  }
  .home .about .flex .b_l,
  .home .about .flex .b_r{
    width: 100%;
  }
  .home .about .flex .b_l{
    margin-bottom: 30px;
  }
  .home .group .flex .img{
    height: 300px;
  }
  .home .links {
    height: 600px;
  }
  
  /* **********************************
   *  ご挨拶
   * ********************************* */
  .pg-greeting .msg .photo,
  .pg-greeting .msg .txt{
    width: 100%;
    min-height: 400px;
  }
  .pg-greeting .msg .txt {
    padding: 60px 40px;
  }
  .pg-greeting .company th {
    width: 32%;
    padding-left: 50px;
  }
  .pg-greeting .company td {
    width: 68%;
    padding-left: 30px;    
  }

  .pg-greeting .company .address .flex a{
    margin-left: 20px;
  }
  .pg-greeting .company .access.no1 .address,
  .pg-greeting .company .access.no2 .address,
  .pg-greeting .company .access .map{
    width: 100%;
  }
  .pg-greeting .company .access.no1 .address,
  .pg-greeting .company .access.no2 .address{
    margin-bottom: 20px;
    order: 1;
  }
  .pg-greeting .company .access .map{
    order: 2;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */
  .pg-recruit .msg .large{
    text-align: left;
  }
  .pg-recruit .msg p > a {
    font-size: 18px;
    max-width: 320px;
  }
  .pg-recruit .info th {
    width: 32%;
    padding-left: 50px;
  }
  .pg-recruit .info td {
    width: 68%;
    padding-left: 30px;
  }
  .pg-recruit .bnr .flex .tel .num {
    font-size: 32px;
  }
  .pg-recruit .bnr .flex .contact a {
    font-size: 18px;
  }
  .pg-recruit .bnr .flex .contact a i {
    margin-right: 10px;
  }
  
  /* **********************************
   *  個人情報の保護
   * ********************************* */
  .pg-privacy .section dd {
    padding-right: 50px;
  }
  
  /* **********************************
   *  サイトマップ
   * ********************************* */
  .pg-sitemap .flex{
    flex-wrap: wrap;
    justify-content: space-around;
  }
  .pg-sitemap .flex ul{
    width: 40%;
    margin-bottom: 30px;
  }
  
  /* **********************************
   *  お知らせ
   * ********************************* */
  .pg-news .section li a {
    padding: 20px;
  }

  /* 詳細 */
  .pg-news.detail .post .title h3 {
    font-size: 22px;
  }
}

@media (max-width:767px){
  
  /* **********************************
   *  ヘッダー
   * ********************************* */
  header .hdr1 .hdr_logo,
  header .hdr1 .hdr_contact{
    float: none;
    width: 100%;
    text-align: center;
    margin: 5px 0;
  }
  header .hdr1 {
    margin-bottom: 0;
  }
  
  body{
    padding-bottom: 74px;
  }
  
  .gnav{
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #FFF;
    padding: 0;
    z-index: 5;
    overflow-y: scroll;
    border-top: 0;  
    transition: all 0.2s;
    transform: translateX(100%);
    padding: 0;
    z-index: 999;
  }
  .gnav.active{
    transform: translateX(0%);
  }
  .gnav > ul {
    padding: 50px 0;
  }
  .gnav > ul > li{
    width: 100%;
    padding: 15px 0;
  }
  .gnav li a{
    display: inline-block;  
    padding: 10px 10px 0;
  }
  
  .gnav .fttl{
    display: block;
    text-align: center;
    background: #3981c6;
    color: #fff;
    padding: 5px 0;
  }
  .gnav li.sp{
    display: block;
  }
  
  .footer_fix{
    display: block;
  }
  
  /* **********************************
   *  フッター
   * ********************************* */
  footer .copy {
    font-size: 12px;
    margin: 50px 0 0;
  }
  footer .ftr1 .ftr_links {
    font-size: 14px;
  }
  
  /* **********************************
   *  トップページ
   * ********************************* */
  .home .mv .news > p a{
    flex-wrap: wrap;
  }
  .home .mv .news > p .cat{
    padding: 0;
  }
  .home .mv .news > p .title{
    width: 100%;
  }
  .home .about > .flex {
    padding: 50px 30px;
  }
  .home .group {
    padding-bottom: 100px;
  }
  .home .group .flex {
    padding: 30px;
    flex-wrap: wrap;
  }
  .home .group .flex .info,
  .home .group .flex .img{
    width: 100%;
  }
  .home .group .flex.f1 .info{
    order: 2;
  }
  .home .group .flex.f1 .img{
    order: 1;
  }
  .home .group .flex.f1 .img {
    margin-left: 0;
  }
  .home .group .flex.f2 .img {
    margin-right: 0;
  }
  .home .group .flex .info{
    padding: 20px 0;
  }
  .home .links .flex > div {
    margin: 0 20px;
  }
  .home .links .flex > div a {
    padding: 30px 20px 50px;
  }
  .home .links {
    height: 450px;
  }
  
  /* **********************************
   *  ご挨拶
   * ********************************* */
  .pg-greeting .msg .txt .large {
    font-size: 28px;
  }
  .pg-greeting .company table {
    font-size: 16px;
    margin-bottom: 100px;
  }
  .pg-greeting .company th {
    padding-left: 30px;
  }
  .pg-greeting .company td {
    padding: 10px 20px;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */  
  .pg-recruit .msg a.btn2 {
    margin: 20px 0 0;
  }
  .pg-recruit .info .ttl:before {
    width: 150px;
  }
  .pg-recruit .info table {
    font-size: 16px;
  }
  .pg-recruit .info th {
    font-size: 18px;
  }
  .pg-recruit .bnr .container > .center {
    font-size: 16px;
  }
  .pg-recruit .bnr .flex{
    flex-wrap: wrap;
  }
  .pg-recruit .bnr .flex > .center {
    width: 100%;
  }
  .pg-recruit .bnr .flex .tel{
    margin-bottom: 30px;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */
  .pg-contact .section table {
    font-size: 16px;
  }
  
  /* **********************************
   *  サイトマップ
   * ********************************* */
  .pg-sitemap .flex ul {
    width: 50%;
  }
  .pg-sitemap .flex li a{
    font-size: 14px;
  }
  
  /* **********************************
   *  お知らせ
   * ********************************* */
  .pg-news .section li a {
    font-size: 14px;
    padding: 12px 20px;
    flex-wrap: wrap;
  }
  .pg-news .section li a .ttl {
    padding-right: 50px;
    margin-left: 0;
    width: 100%;
  }
  /* 詳細 */
  .pg-news.detail .post .title .date {
    font-size: 16px;
  }
  .pg-news.detail .post .title h3 {
    font-size: 20px;
  }
  .pg-news.detail .post .msg {
    font-size: 16px;
    line-height: 35px;
  }
}

@media (max-width: 540px){
  
  body{
    font-size: 14px;
    line-height: 24px;
  }
  
  /* **********************************
   *  ヘッダー
   * ********************************* */
  header .hdr1 .hdr_logo .logo img{
    max-width: 250px;
  }
  .gnav > ul {
    padding: 30px 0 100px;
  }
  
  /* **********************************
   *  フッター
   * ********************************* */
  footer {
    padding: 20px 0 10px;
  }
  footer .ftr1 .ftr_links {
    font-size: 12px;
  }
  footer .copy {
    font-size: 10px;
    margin: 30px 0 0;
  }
  
  /* **********************************
   *  トップページ
   * ********************************* */
  .home .mv,
  .home .mvbg{
    height: 690px;
  }
  .home .mv .flex{
    height: 500px;
  }
  .home .mv .tate,
  .home .tate{
    font-size: 24px;
    line-height: 50px;
  }
  .home .mv .news{
    flex-wrap: wrap;
    padding-bottom: 10px;  
    left: 0;
    bottom: 10px;
    transform: none;
  }
  .home .mv .news > h3:after {
    border-width: 48px 48px 0 0;
    right: -47px;
  }
  .home .mv .news > h3 {
    width: 84%;
    font-size: 16px;
    padding: 12px 0 12px 20px;
  }
  .home .mv .news > p {
    font-size: 14px;
    letter-spacing: 0;
    padding: 10px;
    width: 100%;
  }
  .home .mv .news > p .cat {
    padding: 0;
    line-height: 22px;
  }  
  .home .mv .news .sp{
    display: block;
    padding-left: 20px;
    font-size: 16px;
  }
  .home .mv .news > a {
    max-width: 280px;
    width: 100%;
    margin: 10px auto 0;
    height: auto;
    display: flex;
    border: 1px solid #0080c6;
    padding: 8px 0;
    color: #0080c6;
  }
  .home .mv .news > a img{
    width: 22px;
  }
  .home .about h2{
    font-size: 16px;
  }
  .home .about h2 span {
    font-size: 12px;
  }
  .home .about h2 span:before{
    margin: 10px auto;
  }
  .home .about .flex .b_l p {
    font-size: 14px;
    line-height: 26px;
  }
  .home .about > .flex {
    padding: 30px 10px 10px;
  }
  .home .about .flex .b_l p a {
    display: flex;
    padding: 10px 0;
    margin: 20px auto;
    justify-content: center;
    align-items: center;
  }
  .home .about .flex .b_r div .ttl {
    font-size: 14px;
  }
  .home .about .flex .b_r div .icon img{
    width: 70%;
  }
  .home .about .flex .b_l p a i{
    width: 35px;
  }
  .home .group {
    padding-bottom: 50px;
  }
  .home .group .flex {
    padding: 10px;
  }
  .home .group .flex .img {
    height: 180px;
  }  
  .home .group .flex .info .name {
    font-size: 18px;
  }
  .home .group .flex .info .middle {
    font-size: 16px;
    margin-top: 10px;
  }
  .home .links {
    height: auto;
  }
  .home .links .flex {
    flex-wrap: wrap;
  }
  .home .links .flex > div {
    margin: 0 20px 20px;
  }
  .home .links .flex > div a {
    padding: 30px 20px 30px;
  }
  .home .links .flex > div .large {
    font-size: 24px;
    line-height: 30px;
  }
  .home .links .flex > div h3 {
    font-size: 16px;
    margin-bottom: 10px;
  }
  
  /* **********************************
   *  下層共通
   * ********************************* */
  .main {
    padding: 30px 0 80px;
  }
  .common h2.u_ttl {
    font-size: 24px;
  }
  .common h2.u_ttl span {
    font-size: 12px;
  }
  .common h2.u_ttl span:before{
    margin: 10px auto 5px;
  }
  
  /* **********************************
   *  ご挨拶
   * ********************************* */
  .pg-greeting .msg {
    margin: 0 0 80px;
  }
  .pg-greeting .msg .photo, 
  .pg-greeting .msg .txt {
    min-height: 250px;
  }
  .pg-greeting .msg .txt {
    padding: 30px 15px;
  }
  .pg-greeting .msg .txt .large {
    font-size: 20px;
    line-height: 30px;
  }
  .pg-greeting .msg .txt p {
    font-size: 14px;
  }
  .pg-greeting .msg .txt .right {
    font-size: 16px;
  }
  .pg-greeting .msg .txt .right span {
    font-size: 24px;
  }
  .pg-greeting .company h3 {
    font-size: 20px;
    margin-bottom: 20px;
  }
  .pg-greeting .company table,
  .pg-greeting .company tbody,
  .pg-greeting .company tr,
  .pg-greeting .company th,
  .pg-greeting .company td{
    display: block;
    width: 100%;
    height: auto;
  }
  .pg-greeting .company table{
    font-size: 14px;
  }
  .pg-greeting .company th{
    padding: 5px 15px;
    border-left: 0;
    border-bottom: 0;
  }
  .pg-greeting .company td{
    padding: 10px 15px;
  }
  .pg-greeting .company td .flex{
    flex-wrap: wrap;
  }
  .pg-greeting .company td .flex span{
    width: 100%;
  }
  .pg-greeting .company .address .flex a {
    margin: 10px auto;
  }
  .pg-greeting .company .access.no1 .address > div {
    padding-left: 20px;
  }
  .pg-greeting .company .access .address h4 {
    font-size: 24px;
    margin-bottom: 20px;
  }
  .pg-greeting .company .access .address .large {
    font-size: 16px;
    line-height: 30px;
  }
  .pg-greeting .company .access .address p {
    font-size: 14px;
  }
  .pg-greeting .company .access.no2 .address > div {
    padding-left: 20px;
  }
  .pg-greeting .company .access .map iframe{
    height: 250px;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */ 
  .pg-recruit .msg {
    padding: 40px 0 30px;
    margin-bottom: 50px;
  }
  .pg-recruit .msg .large {
    font-size: 16px;
    line-height: 26px;
  }
  .pg-recruit .msg p {
    font-size: 14px;
  }
  .mb50{
    margin-bottom: 25px;
  }
  .pg-recruit .msg p > a {
    font-size: 16px;
    padding: 15px 0;
  }
  .pg-recruit .info .ttl {
    font-size: 18px;
    margin-bottom: 30px;
  }
  .pg-recruit .info .ttl:before {
    width: 150px;
    left: -100px;
  }
  .pg-recruit .info table, 
  .pg-recruit .info tbody, 
  .pg-recruit .info tr, 
  .pg-recruit .info th, 
  .pg-recruit .info td {
    display: block;
    width: 100%;
    height: auto;
  }
  .pg-recruit .info table{
    margin-bottom: 80px;
  }
  .pg-recruit .info table,
  .pg-recruit .info th{
    font-size: 14px;
    line-height: 24px;
  }
  .pg-recruit .info th {
    padding: 5px 15px;
    border-left: 0;
    border-bottom: 0;
  }
  .pg-recruit .info td {
    padding: 10px 15px;
    border-left: 1px solid #bfbfbf;
  }
  .pg-recruit .bnr .flex {
    padding: 15px;
  }
  .pg-recruit .bnr .flex .contact a {
    font-size: 16px;
    padding: 20px 30px 20px 0;
    background-position: 95% center;
  }
  
  /* **********************************
   *  採用情報
   * ********************************* */
  .pg-contact .section table, 
  .pg-contact .section tbody, 
  .pg-contact .section tr, 
  .pg-contact .section th, 
  .pg-contact .section td {
    display: block;
    width: 100%;
    height: auto;
  }
  .pg-contact .section table {
    font-size: 14px;
  }
  .pg-contact .section th {
    padding: 5px 15px;
    border-left: 0;
    border-bottom: 0;
  }
  .pg-contact .section td input[type="text"], 
  .pg-contact .section td input[type="tel"], 
  .pg-contact .section td input[type="email"], 
  .pg-contact .section td textarea {
    font-size: 16px;
    height: auto;
  }
  .pg-contact .section td textarea{
    height: 250px;
  }
  .pg-contact .section th span {
    font-size: 10px;
    margin-top: 2px;
  }
  .pg-contact .section .wpcf7-form-control-wrap.check {
    font-size: 14px;
  }
  .pg-contact .section input[type="submit"], 
  .pg-contact .section input.wpcf7-back {
    font-size: 18px;
    margin: 30px auto;
  }
  
  /* **********************************
   *  個人情報の保護
   * ********************************* */
  .pg-privacy .section dl {
    margin-bottom: 20px;
  }
  .pg-privacy .section dt {
    font-size: 16px;
  }
  .pg-privacy .section dd {
    padding-right: 0;
    line-height: 28px;
  }
  .pg-privacy .section .return {
    font-size: 18px;
  }
  
  /* **********************************
   *  サイトマップ
   * ********************************* */
  .pg-sitemap .flex ul {
    width: 267px;
    margin-bottom: 20px;
  }
  .pg-sitemap .flex li a{
    font-size: 16px;
  }
  .pg-sitemap .flex li a:before {
    content: "";
    width: 17px;
    height: 17px;
    background: url(../../../img/sitemap/arrow_2x.png) no-repeat;
    background-size: contain;
  }
  
  /* **********************************
   *  お知らせ
   * ********************************* */
  .pg-news .section li a {
    padding: 10px;
    background-size: 20px auto;
  }
  .pg-news .section li a .ttl {
    padding-right: 20px;
  }
  .pg-news .section li a .cat {
    padding: 0 10px;
    height: 22px;
    line-height: 22px;
  }
  /* 詳細 */
  .pg-news.detail .post .title {
    margin-bottom: 20px;
  }
  .pg-news.detail .post .title > div {
    padding-left: 10px;
  }
  .pg-news.detail .post .title h3 {
    font-size: 16px;
  }
  .pg-news.detail .post .msg {
    font-size: 14px;
    line-height: 28px;
  }
  
  /* **********************************
   *  404.php
   * ********************************* */
  .pg-error404 .btn a {
    font-size: 18px;
    margin: 50px auto 0;
  }
}