@charset "UTF-8";
/*!===========================
このcssはSassから生成されていますので、
直接編集しないようご注意ください。
===========================*/
@media (max-width: 767px) {
  table > tbody > tr > th,
  table > tbody > tr > td {
    padding-left: 10px;
    padding-right: 10px; }
  table > tbody > tr > th {
    width: 30%; }
  table.pt02 > tbody > tr > th,
  table.pt02 > tbody > tr > td {
    padding-left: 10px;
    padding-right: 10px; }

  /* form
  ============================== */
  form [type="text"],
  form [type="number"],
  form [type="search"],
  form [type="email"],
  form [type="tel"],
  form [type="url"],
  form [type="password"],
  form [type="date"],
  form [type="datetime-local"],
  form [type="month"],
  form [type="week"],
  form [type="time"],
  form textarea,
  form select {
    font-size: 1.6rem; }

  .form .form-table th,
  .form .form-table td {
    display: block;
    padding: 10px; }
  .form .form-table th {
    width: auto; }
  .form .form-table td {
    border-top: 0;
    padding: 20px 0 10px; }

  /* class
  ============================== */
  .pc {
    display: none; }

  .sp {
    display: block; }

  img.sp,
  span.sp {
    display: inline; }

  table.sp {
    display: table; }

  .alignleft,
  .alignright {
    float: none;
    max-width: 100% !important;
    margin-bottom: 0; }

  .alignleft {
    margin-right: 0; }

  .alignright {
    margin-left: 0; }

  .col:not(table) {
    display: block; }
    .col:not(table) > * {
      width: auto !important;
      margin-left: 0 !important; }
      .col:not(table) > *:nth-child(n+2) {
        margin-top: 20px !important; }
    .col:not(table) > table {
      width: 100% !important; }

  .btn, form [type="button"],
  form [type="submit"],
  form [type="reset"] {
    font-size: 1.8rem; }

  .scroll {
    overflow-x: auto; }
    .scroll::-webkit-scrollbar {
      height: 5px; }
    .scroll::-webkit-scrollbar-track, .scroll::-webkit-scrollbar-thumb {
      border-radius: 5px; }
    .scroll::-webkit-scrollbar-track {
      background: #CCCCCC; }
    .scroll::-webkit-scrollbar-thumb {
      background: #666666; }
    .scroll table {
      white-space: nowrap; }

  /* ==================================================
  header
  ================================================== */
  header {
    padding: 10px; }

  #hlogo {
    width: 164px;
    margin-top: 0; }

  #gnav-wrap {
    display: flex;
    flex-direction: column;
    width: 100% !important;
    max-width: none;
    font-size: 1.4rem;
    padding: 53px 10px 50px;
    background: rgba(0, 110, 166, 0.95);
    overflow-y: auto; }
    #gnav-wrap > * {
      width: 100%;
      max-width: 260px;
      margin: 0 auto; }

  .drawer--right .drawer-nav {
    right: -100%; }

  #hnav {
    display: block; }
    #hnav li {
      width: auto;
      margin: 10px 0 0; }
      #hnav li a {
        padding: .8em 0; }
      #hnav li.no01 a {
        color: #006EA6;
        background: #fff; }

  #gnav {
    order: -1;
    display: block; }
    #gnav li {
      color: #fff;
      border-top: 4px double; }
      #gnav li a {
        position: relative;
        padding: 15px 25px 15px 10px; }
        #gnav li a::after {
          content: "\f061";
          font-family: "Font Awesome 5 Pro";
          font-weight: 900;
          position: absolute;
          line-height: 1;
          font-size: 10px;
          top: calc(50% - .5em);
          right: 10px; }
      #gnav li:first-child {
        border-top: 0; }
      #gnav li.on a,
      #gnav li a:hover {
        border-bottom: 0; }
    #gnav .bar {
      display: none; }

  .drawer-hamburger {
    position: absolute;
    right: 0 !important;
    width: 52px;
    height: 52px;
    margin: 0;
    padding: 0; }

  .drawer-hamburger-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    transform: translate(-50%, -50%); }
    .drawer-open .drawer-hamburger-icon {
      width: 100%;
      height: 100%;
      background: #000; }
    .drawer-hamburger-icon, .drawer-hamburger-icon::before, .drawer-hamburger-icon::after {
      width: 18px;
      height: 2px;
      background: #006EA6; }
    .drawer-hamburger-icon::before, .drawer-hamburger-icon::after {
      left: 0;
      right: 0;
      margin: auto; }
      .drawer-open .drawer-hamburger-icon::before, .drawer-open .drawer-hamburger-icon::after {
        top: 0;
        bottom: 0;
        background: #fff; }
    .drawer-hamburger-icon::before {
      top: -6px; }
      .drawer-open .drawer-hamburger-icon::before {
        transform: rotate(405deg); }
    .drawer-hamburger-icon::after {
      top: 6px; }
      .drawer-open .drawer-hamburger-icon::after {
        transform: rotate(-405deg); }

  /* ==================================================
  footer
  ================================================== */
  footer address {
    font-size: 1.2rem; }

  #ptop a {
    bottom: 10px;
    right: 10px;
    width: 40px;
    height: 40px; }

  #copyright {
    font-size: 1rem; }

  /* ==================================================
  main
  ================================================== */
  #content h2 {
    font-size: 2rem; }
  #content .nav ul {
    justify-content: space-between;
    margin-top: -5px; }
    #content .nav ul li {
      width: 49%;
      min-width: inherit;
      margin: 5px 0 0; }
      #content .nav ul li a {
        padding: 5px 25px 5px 10px; }
        #content .nav ul li a::after {
          right: 10px; }
  #recruit-sec04 h3, #content .lead {
    font-size: 1.7rem;
    margin-bottom: 40px; }
    #recruit-sec04 h3::before, #recruit-sec04 h3::after, #content .lead::before, #content .lead::after {
      bottom: -25px;
      height: 35px; }
    #recruit-sec04 h3::before, #content .lead::before {
      width: 40px; }

  #pttl {
    height: 100px;
    margin-bottom: 57px; }
    #content [id^="top-"] h2, #pttl .ttl {
      top: 57px;
      font-size: 5rem; }
      #content [id^="top-"] h2 span, #pttl .ttl span {
        font-size: 1.6rem; }

  /* top
  ============================== */
  #top-kv {
    padding-bottom: 60px !important; }
    #top-kv > div {
      position: relative;
      bottom: auto;
      left: auto;
      margin-top: -20px;
      padding: 0 10px; }
    #top-kv .ttl img {
      width: 215px; }
    #top-kv .txt {
      font-size: 1.2rem;
      text-shadow: none;
      color: inherit; }

  #top-strength ul {
    display: block; }
    #top-strength ul li {
      width: auto;
      height: 200px; }
      #top-strength ul li a {
        padding: 20px; }
        #top-strength ul li a::before {
          background-size: 100%; }
        #top-strength ul li a::after {
          top: 20px;
          left: 20px;
          width: calc(100% - 40px);
          height: calc(100% - 40px); }
        #top-strength ul li a:hover::before {
          background-size: 110%; }
      #top-strength ul li .ttl {
        font-size: 1.6rem; }
      #top-strength ul li .more {
        width: 100px;
        font-size: 1.3rem; }

  #top-recruit ul {
    display: block;
    margin-top: 0; }
    #top-recruit ul li {
      width: auto;
      height: calc(138 / 300 * 100vw);
      margin-top: 15px; }
      #top-recruit ul li:first-child {
        margin-top: 0; }
      #top-recruit ul li a {
        font-size: 1.6rem; }
  #top-recruit > p:last-child {
    margin-top: 20px; }

  #top-home .lead {
    margin: 0 0 3rem 0;
    padding: 0; }
  #top-home > p:last-child {
    margin-top: 20px; }

  /* about
  ============================== */
  #about-sec01 {
    background-position: right -50px bottom 60px;
    background-size: 300px; }

  #about-sec03 th:first-child {
    width: 75px; }
  #about-sec03 th:nth-child(2) {
    width: 80px; }

  #about-sec05 ul li {
    width: 120px; }
    #about-sec05 ul li .ttl {
      height: 120px;
      font-size: 1.6rem;
      padding: 60px 0 5px; }
      #about-sec05 ul li .ttl::before {
        top: 10px;
        height: 50px;
        background-size: contain; }

  /* works
  ============================== */
  #works-sec01 ul li {
    margin-top: 20px; }
    #works-sec01 ul li a {
      padding: 0 35px 10px 10px; }
      #works-sec01 ul li a::after {
        bottom: 10px;
        right: 10px;
        font-size: 10px; }
    #works-sec01 ul li figure {
      margin: 0 -35px 10px -10px; }
    #works-sec01 ul li .date {
      position: relative;
      left: -10px;
      margin-top: 0; }
    #works-sec01 ul li .ttl {
      font-size: 1.4rem;
      margin-top: 10px; }

  /* recruit
  ============================== */
  #recruit-sec04 li {
    display: block; }
    #recruit-sec04 li > * {
      width: auto !important; }
    #recruit-sec04 li > div {
      margin-top: 20px; }
    #recruit-sec04 li h4 {
      font-size: 2rem;
      font-style: italic;
      letter-spacing: .1em;
      color: #00A1C4;
      margin-bottom: 2em; }
      #recruit-sec04 li h4::before {
        content: "Q."; }

  #recruit-sec05 .tel {
    font-size: 4rem; } }
