@charset "utf-8";
/*nav*/
.sp_navbtn {
  z-index: 10;
  display: none;
  position: absolute;
  right: 2%;
  border-left: 1px solid #ddd;
  color: #333;
  width: 55px; /* common */
  height: 55px; /* common */
  line-height: 46px; /* common */
}
/* メニューボタン */
.sp_navbtn:before {
  content: "\f0c9";
  font-family: FontAwesome;
  display: block;
  position: absolute;
  top: 18px;
  right: 15px;
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* メニューボタン active */
.sp_navbtn.menuOpen {
  background: #333;
  color: #fff;
}
@media screen and (max-width: 1620px) {
/*------------------------------------------------------------
     index
------------------------------------------------------------ */
/* message */
  .top-message {
    position: relative;
  }
  .top-message::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(255,255,255,.75);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .top-message .container {
    position: relative;
    z-index: 2;
  }
}
@media screen and (max-width: 1340px) {
/*------------------------------------------------------------
     common
------------------------------------------------------------ */
  body {
    padding-top: 84px;
  }
  /* ancher */
  .ancher {
    padding-top: 82px;
    margin-top: -82px;
  }
/* header
------------------------------------------------------------ */
  #header .logo img {
    width: 399px;
  }
/* nav */
  #gnav ul {
    margin: auto -.525em;
  }
  #gnav ul li {
    padding: 0 .525em;
  }
}

@media screen and (max-width: 1100px) {
/*------------------------------------------------------------
     common
------------------------------------------------------------ */
/* header
------------------------------------------------------------ */
/* nav */
  #gnav {
    font-size: 16px;
    font-size: 1.6rem;
  }
}
/*==========================================================
      Target Devices # Tablet MobilePC #
============================================================ */
@media screen and (max-width: 1023px) {
/*------------------------------------------------------------
     common
------------------------------------------------------------ */
/* header
------------------------------------------------------------ */
  #header .container {
    padding-right: 65px;
  }
/* nav */
  .sp_navbtn {
    display: inline-block;
  }
#gnav {
  position: absolute;
  top: 100%; /* 開閉メニュー開始位置 */
  left: 0;
  z-index: 100;
  width: 100%;
}
#gnav ul li {
  width: 100%;
  background-color: #FFF;
  border-top: 1px solid #3366CC;
}
  #gnav ul li:last-child {
    border-bottom: 1px solid #3366CC;
  }
  #gnav ul li a {
    display: block;
    width: 100%;
    padding: 0 15px;
    -webkit-tap-highlight-color: transparent;
    background-color: #FFF;
    text-align: left;
    font-size: 13px;
    line-height: 50px;
  }
#gnav ul li a:hover {
  background-color: #3366CC;
  color: #FFF;
  opacity: 1;
}
/*------------------------------------------------------------
     index
------------------------------------------------------------ */
  /* main image */
  .main-image h1 {
    overflow: hidden;
  }
  .main-image h1 img {
    width: 160%;
    max-width: none;
    margin: auto -30%;
  }
  /* information */
  .top-information .container {
    padding-bottom: 60px;
    position: relative;
  }
  .top-information .box, .top-information .archive {
    width: 100%;
  }
  .top-information .h2-title {
    text-align: center;
  }
  .top-information .more {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    text-align: center;
  }
  /* message */
  .top-message {
    background-size: cover;
  }
  /* profile */
  .profile-section .row.row02 {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  }
  .profile-section .row.row02 .col {
    width: 100%;
  }
  .profile-section .row.row02 .col + .col {
    margin-top: 2em;
  }
  /*------------------------------------------------------------
     kasou
------------------------------------------------------------ */
  /* contact
------------------------------------------------------------ */
  .form_table input[type="text"], .form_table textarea, .form_table select {
    box-sizing: border-box;
  }
  .form_table input[type="text"], .form_table input[type="email"] {
    width: 45%;
  }
  .form_table select {
    width: 45%;
  }
  .form_table textarea {
    height: 120px;
    width: 80%;
  }
}
/*==========================================================
      Target Devices # Smart Phone and Tablet #
============================================================ */
@media screen and (max-width: 767px) {
/*------------------------------------------------------------
     common
------------------------------------------------------------ */
  body {
    padding-top: 55px;
  }
  /* ancher */
  .ancher {
    padding-top: 53px;
    margin-top: -53px;
  }
/* header
------------------------------------------------------------ */
  #header {
    padding: 11.7px 0;
  }
  #header .logo img {
    width: 235px;
  }
  /* nav */
  .sp_navbtn {
    right: 0;
  }
/*------------------------------------------------------------
     index
------------------------------------------------------------ */
/* information */
  .top-information .archive h3 {
    display: block;
  }
/* message */
  .top-message {
    padding-bottom: 80%;
    background-size: contain;
    background-position: bottom center;
  }
  .top-message::after {
    display: none;
  }
  /* about us */
  .about-group-item {
    padding: 5%;
  }
  /* profile */
  .profile-section .row {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; 
  }
  .profile-section .row .col {
    width: 100%;
  }
  .profile-section .row .col + .col {
    margin-top: 2em;
  }
  .profile-section .row figure.col {
    text-align: center;
  }
  /* service */
  .top-service h3 {
    font-size: 24px;
    font-size: 2.4rem;
  }
  .top-service h3 span {
    font-size: 14px;
    font-size: 1.4rem;
  }
  /*------------------------------------------------------------
     kasou
------------------------------------------------------------ */
/* archive
------------------------------------------------------------ */
  .article-item .eyecatch {
    float: none;
    margin-bottom: 20px;
    text-align: center;
  }
  .article-content {
    margin-left: auto;
  }
  /* contact
------------------------------------------------------------ */
  /* ご相談の流れ */
  .contact-flow {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  }
  .contact-flow h2 {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
     -ms-flex-direction: row;
         flex-direction: row;
    width: 100%;
    margin-right: auto;
    margin-bottom: 1em;
    letter-spacing: .075em;
  }
  .form_table input[type="text"], .form_table input[type="email"] {
    width: 55%;
  }
  .form_table select {
    width: 55%;
  }
  .form_table textarea {
    height: 120px;
    width: 80%;
  }
}
/*==========================================================
      Target Devices # Smart Phone Only #
============================================================ */
@media screen and (max-width: 479px) {
/*------------------------------------------------------------
     index
------------------------------------------------------------ */
/* about us */
  .about-group-item h3 img.icon {
    display: block;
    margin-bottom: .5em;
  }
  /*------------------------------------------------------------
     kasou
------------------------------------------------------------ */
  /* contact
------------------------------------------------------------ */
  /* ご相談の流れ */
  .contact-flow ol li {
    padding-right: 1em;
    padding-left: 1em;
  }
  .form_table tbody, .form_table tr, .form_table th, .form_table td {
    display: block;
    width: auto;
    box-sizing: border-box;
  }
  .form_table th, .form_table td {
    border-right: 0;
    border-bottom-style: solid;
  }
  .form_table tr:last-child td {
    border-bottom: 0;
  }
  .form_table input[type="text"], .form_table input[type="email"], .form_table select, .form_table textarea {
    width: 100%;
    font-size: 16px;
  }
  .form_table select {
    font-size: 16px;
  }
}