@charset "utf-8";
/* CSS Document */
@media screen and (max-width: 1154px) {
  .employee {
    height: 400px;
  }
}
@media screen and (min-width: 1041px) {
  h2 p {
    margin-top: 10px;
  }
  header {
    width: 100%;
    top: 0;
    position: fixed;
    background-color: #FFFFFF;
    z-index: 1000;
  }
  #navArea, #technique-sp, #philosophy-sp, #performance-sp, #content-sp, .overview-sp, .ov_detail-sp, .ov_detail-sp02 {
    display: none;
  }
  .ov_explanation {
    display: flex;
    margin-bottom: 20px;
  }
  .ov_explanation p {
    font-size: 18px;
    line-height: 30px;
  }
  .ov_explanation02 {
    display: flex;
    margin-bottom: 8px;
  }
  .ov_explanation02 p {
    font-size: 18px;
    line-height: 30px;
  }
  .ov_title {
    font-weight: bold;
    width: 110px;
    border-bottom: #e7e7e7 1px dashed;
    padding-bottom: 3px;
  }
  .ov_detail {
    max-width: 800px;
    margin-left: 90px;
    border-bottom: #e7e7e7 1px dashed;
    padding-bottom: 3px;
  }
  .ov_detail02 {
    max-width: 800px;
    margin-left: 200px;
    border-bottom: #e7e7e7 1px dashed;
    padding-bottom: 3px;
  }
}
@media screen and (max-width: 1040px) {
  .nav, #technique, #philosophy, #performance, #content, .overview-pc, .ov_detail, .ov_detail02 {
    display: none;
  }
  footer {
    margin-top: 100px;
  }
  footer p {
    padding: 40px 0px;
    width: 100%;
  }
  #navArea {
    display: block;
  }
  /*============
  nav
  =============*/
  nav {
    display: block;
    position: fixed;
    top: 0;
    left: -300px;
    bottom: 0;
    width: 300px;
    background: #ffffff;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: all .5s;
    z-index: 3;
    opacity: 0;
  }
  .open nav {
    left: 0;
    opacity: 1;
  }
  nav .inner ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  nav .inner ul li {
    position: relative;
    margin: 0;
    text-align: center;
  }
  nav .inner ul li a {
    display: block;
    color: #404040;
    font-size: 18px;
    font-weight: bold;
    padding: 1.3em;
    text-decoration: none;
    transition-duration: 0.2s;
  }
  nav .inner ul li a:hover {
    color: #FFFFFF;
    background: #878787;
  }
  /*============
  .toggle_btn
  =============*/
  .toggle_btn {
    display: block;
    position: fixed;
    top: 30px;
    right: 30px;
    width: 30px;
    height: 30px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
  }
  .toggle_btn span {
    display: block;
    position: absolute;
    left: 0;
    width: 30px;
    height: 4px;
    background-color: #878787;
    border-radius: 4px;
    transition: all .5s;
  }
  .toggle_btn span:nth-child(1) {
    top: 4px;
  }
  .toggle_btn span:nth-child(2) {
    top: 14px;
  }
  .toggle_btn span:nth-child(3) {
    bottom: 2px;
  }
  .open .toggle_btn span {
    background-color: #fff;
  }
  .open .toggle_btn span:nth-child(1) {
    -webkit-transform: translateY(10px) rotate(-315deg);
    transform: translateY(10px) rotate(-315deg);
  }
  .open .toggle_btn span:nth-child(2) {
    opacity: 0;
  }
  .open .toggle_btn span:nth-child(3) {
    -webkit-transform: translateY(-10px) rotate(315deg);
    transform: translateY(-10px) rotate(315deg);
  }
  /*============
  #mask
  =============*/
  #mask {
    display: none;
    transition: all .5s;
  }
  .open #mask {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .5;
    z-index: 2;
    cursor: pointer;
  }
  h2 p {
    margin-top: -20px;
  }
  .container {
    width: 90%;
    margin: 50px auto 0px;
  }
  h3 {
    position: relative;
  }
  h3 p {
    color: #FFFFFF;
    font-size: 40px;
    line-height: 70px;
    text-shadow: 1px 1px 7px #2b2b2b, -1px -1px 7px #2b2b2b;
    text-align: center;
    position: absolute;
    top: 85%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 100%;
  }
  h4 {
    width: 80px;
    padding-bottom: 5px;
    border-bottom: 2px #878787 solid;
    margin: 50px auto 50px;
    font-size: 22px;
    font-weight: bold;
  }
  #technique-sp, #philosophy-sp, #performance-sp, #content-sp, #overview {
    margin-top: -40px;
    padding-top: 40px;
  }
  #technique-sp, #philosophy-sp, #performance-sp, #content-sp, .ov_detail-sp, .ov_detail-sp02 {
    display: block;
  }
  .employee {
    margin: 60px 0;
    height: 200px;
  }
  .container02 {
    width: 90%;
    margin: 50px auto 0px;
  }
  .ov_explanation {
    margin-bottom: 30px;
  }
  .ov_explanation p {
    font-size: 18px;
    line-height: 30px;
  }
  .ov_explanation02 {
    margin-bottom: 8px;
  }
  .ov_title {
    border-bottom: #e7e7e7 1px dashed;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    width: 40%;
    padding-bottom: 2px;
    margin: 0 auto 15px;
  }
  .ov_detail-sp {
    border-bottom: #e7e7e7 1px dashed;
    font-weight: bold;
    text-align: center;
    width: 70%;
    padding-bottom: 3px;
    margin: 0 auto 5px;
  }
  .ov_detail-sp02 {
    border-bottom: #e7e7e7 1px dashed;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    width: 90%;
    padding-bottom: 3px;
    margin: 0 auto 8px;
  }
  #page_top {
    right: 30px;
  }
}
@media screen and (max-width: 640px) {
  h1 {
    background-image: url(../img/other/worker/mv_sp.jpg);
  }
  h1 p {
    font-size: 30px;
    font-weight: bold;
  }
  h2 p {
    margin-top: 0px;
    font-size: 30px;
    font-weight: bold;
    letter-spacing: 0px;
  }
  h3 p {
    font-size: 22px;
    line-height: 40px;
    font-weight: bold;
    top: 80%;
  }
}