@charset "UTF-8";
@import url(reset.css);
html {
  font-size: 6.25%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0 auto;
  padding: 0;
  position: relative;
  z-index: 1;
  font-family: 'Prompt', 'M PLUS 1p', 'San Francisco', 'Helvetica Neue', HelveticaNeue, 'Segoe UI', Helvetica, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', '游ゴシック体', YuGothic, 'Hiragino Kaku Gothic ProN', HiraKakuProN-W3, 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', sans-serif;
  font-weight: 400;
  color: #000000;
  line-height: 1;
  text-align: left;
  min-width: 1200px;
  font-size: 16px;
  font-size: 16rem; }
  @media screen and (max-width: 767px) {
    body {
      min-width: auto;
      min-width: initial;
      width: 100%;
      font-size: 14px;
      font-size: 14rem; } }

main,
aside {
  display: block;
  overflow: hidden; }

ul {
  list-style: none; }

a {
  text-decoration: none; }
  a.linelink {
    text-decoration: underline; }

@media screen and (min-width: 1200px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none; } }

@media screen and (max-width: 767px) {
  a[href*="tel:"] {
    display: inline; } }

@media screen and (max-width: 767px) {
  img {
    width: 100%; } }

.isLine-PC {
  display: inline; }
  @media screen and (max-width: 767px) {
    .isLine-PC {
      display: none; } }

.isLine-SP {
  display: none; }
  @media screen and (max-width: 767px) {
    .isLine-SP {
      display: inline; } }

.isInLine-PC {
  display: inline-block; }
  @media screen and (max-width: 767px) {
    .isInLine-PC {
      display: none; } }

.isInLine-SP {
  display: none; }
  @media screen and (max-width: 767px) {
    .isInLine-SP {
      display: inline-block; } }

@media screen and (min-width: 768px) {
  .isHide-PC {
    display: none; } }

@media screen and (max-width: 767px) {
  .isHide-SP {
    display: none; } }

.italic {
  font-style: italic; }

.topPage header {
  width: auto;
  background: url(../img/bgimg_kv.jpg) right top no-repeat #d9dfe2; }
  @media screen and (max-width: 767px) {
    .topPage header {
      background-size: auto 190px; } }
  .topPage header .headerBox {
    display: inline-block;
    background: #ffffff;
    padding: 200px 130px; }
    @media screen and (max-width: 767px) {
      .topPage header .headerBox {
        background: transparent;
        padding: 0;
        display: block; } }
  @media screen and (max-width: 767px) {
    .topPage header .headerItem {
      width: 220px;
      background: rgba(255, 255, 255, 0.4);
      padding: 40px 20px;
      -webkit-box-sizing: border-box;
      box-sizing: border-box; } }
  .topPage header .headTitle {
    font-weight: 300;
    font-size: 72px;
    font-size: 72rem; }
    @media screen and (max-width: 767px) {
      .topPage header .headTitle {
        font-size: 48px;
        font-size: 48rem; } }
  .topPage header .underText {
    margin: 5px 0 0;
    font-weight: 400;
    font-size: 24px;
    font-size: 24rem;
    color: #009ca5; }
    @media screen and (max-width: 767px) {
      .topPage header .underText {
        line-height: 1.25;
        font-size: 20px;
        font-size: 20rem;
        padding-left: 4em;
        text-indent: -4em; } }

.topPage .globalNav {
  margin: 90px 0 0 10px; }
  @media screen and (max-width: 767px) {
    .topPage .globalNav {
      margin: 0; } }
  .topPage .globalNav ul li {
    padding: 0 0 0 1em;
    position: relative; }
    .topPage .globalNav ul li::before {
      content: "";
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #000000;
      position: absolute;
      left: 0;
      top: 0.5em; }
    .topPage .globalNav ul li + li {
      margin: 30px 0 0; }
  @media screen and (max-width: 767px) {
    .topPage .globalNav ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      border-top: 1px solid #8d8d8e;
      border-bottom: 1px solid #8d8d8e;
      background: #ffffff; }
      .topPage .globalNav ul li {
        padding: 0;
        -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
        position: relative;
        -webkit-box-sizing: border-box;
        box-sizing: border-box; }
        .topPage .globalNav ul li::before {
          content: none; }
        .topPage .globalNav ul li + li {
          margin: 0; }
        .topPage .globalNav ul li:nth-child(n+3) {
          border-top: 1px solid #8d8d8e; }
        .topPage .globalNav ul li:nth-child(2n) {
          border-left: 1px solid #8d8d8e; } }
  .topPage .globalNav a {
    font-size: 20px;
    font-size: 20rem;
    color: #8d8d8e;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .topPage .globalNav a span {
      color: #000000;
      display: inline-block;
      width: 6em;
      border-right: 1px solid #000000;
      margin-right: 1.5em; }
    .topPage .globalNav a:hover {
      opacity: 0.4; }
    @media screen and (max-width: 767px) {
      .topPage .globalNav a {
        font-size: 12px;
        font-size: 12rem;
        display: block;
        text-align: center;
        padding: 1em 0.5em;
        line-height: 1.25; }
        .topPage .globalNav a span {
          font-size: 16px;
          font-size: 16rem;
          width: auto;
          margin-right: 0;
          border: none;
          display: block; } }

.topPage .section {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0 130px; }
  .topPage .section .secTitle {
    font-size: 40px;
    font-size: 40rem;
    font-weight: 300; }
  @media screen and (max-width: 767px) {
    .topPage .section {
      padding: 0 20px; }
      .topPage .section .secTitle {
        font-size: 28px;
        font-size: 28rem; } }

.topPage .dotlist {
  margin: 5px 0 0; }
  .topPage .dotlist li {
    text-indent: -1em;
    padding: 0 0 0 1em;
    position: relative;
    line-height: 1.75; }
    .topPage .dotlist li::before {
      content: "・"; }
    .topPage .dotlist li + li {
      margin: 5px 0 0; }

.topPage #works {
  background: url(../img/bgimg_work.jpg) right center no-repeat #cecece;
  padding-top: 80px;
  padding-bottom: 80px; }
  @media screen and (max-width: 767px) {
    .topPage #works {
      padding-top: 40px;
      padding-bottom: 40px;
      background-size: auto 100%; } }
  .topPage #works .blocks {
    margin: 40px 0 0; }
    @media screen and (max-width: 767px) {
      .topPage #works .blocks {
        margin: 20px 0 0; } }
    .topPage #works .blocks .blockBox {
      width: 900px;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      padding: 30px; }
      @media screen and (max-width: 767px) {
        .topPage #works .blocks .blockBox {
          margin: 0 25px 0 0;
          width: auto;
          padding: 15px; } }
      .topPage #works .blocks .blockBox.whiteBox {
        background: #ffffff; }
      .topPage #works .blocks .blockBox + .blockBox {
        margin: 25px 0 0; }
        @media screen and (max-width: 767px) {
          .topPage #works .blocks .blockBox + .blockBox {
            margin: 20px 25px 0 0; } }
        .topPage #works .blocks .blockBox + .blockBox .item + .item {
          margin-top: 20px; }
          @media screen and (max-width: 767px) {
            .topPage #works .blocks .blockBox + .blockBox .item + .item {
              margin: 20px 0 0; } }
  .topPage #works .blockTitle {
    color: #009ca5;
    font-weight: 500;
    font-size: 20px;
    font-size: 20rem; }
    @media screen and (max-width: 767px) {
      .topPage #works .blockTitle {
        font-size: 18px;
        font-size: 18rem;
        line-height: 1.25; } }
    .topPage #works .blockTitle.text-big {
      font-weight: 400;
      font-size: 26px;
      font-size: 26rem; }
      @media screen and (max-width: 767px) {
        .topPage #works .blockTitle.text-big {
          font-size: 22px;
          font-size: 22rem; } }
    .topPage #works .blockTitle + .text {
      margin: 10px 0 0; }
      @media screen and (max-width: 767px) {
        .topPage #works .blockTitle + .text {
          line-height: 1.5; } }
  .topPage #works .text-big {
    font-size: 20px;
    font-size: 20rem; }
    @media screen and (max-width: 767px) {
      .topPage #works .text-big {
        font-size: 18px;
        font-size: 18rem; } }

.topPage #company {
  padding-top: 120px;
  padding-bottom: 80px; }
  @media screen and (max-width: 767px) {
    .topPage #company {
      padding-top: 40px;
      padding-bottom: 30px; } }

.topPage #access {
  padding-top: 80px;
  padding-bottom: 120px; }
  @media screen and (max-width: 767px) {
    .topPage #access {
      padding-top: 30px;
      padding-bottom: 40px; } }

.topPage #contact {
  background: #cecece;
  padding-top: 120px;
  padding-bottom: 120px; }
  @media screen and (max-width: 767px) {
    .topPage #contact {
      padding-top: 50px;
      padding-bottom: 50px; } }

.topPage .companyinfo {
  margin: 40px 0 0; }
  @media screen and (max-width: 767px) {
    .topPage .companyinfo {
      margin: 30px 0 0; } }
  .topPage .companyinfo table {
    width: 100%; }
    .topPage .companyinfo table tr {
      border-top: 1px solid #acadae;
      border-bottom: 1px solid #acadae; }
      .topPage .companyinfo table tr:nth-child(2n) th, .topPage .companyinfo table tr:nth-child(2n) td {
        background: #d9dfe2; }
    .topPage .companyinfo table th,
    .topPage .companyinfo table td {
      font-size: 18px;
      font-size: 18rem;
      font-weight: 400;
      line-height: 1.75;
      padding: 20px 30px; }
      @media screen and (max-width: 767px) {
        .topPage .companyinfo table th,
        .topPage .companyinfo table td {
          font-size: 14px;
          font-size: 14rem;
          padding: 10px 30px;
          display: block; } }
    .topPage .companyinfo table th {
      width: 200px; }
      @media screen and (max-width: 767px) {
        .topPage .companyinfo table th {
          padding: 10px 10px 0;
          width: auto; } }
      .topPage .companyinfo table th span {
        padding: 10px 0;
        display: block;
        border-right: 1px solid #acadae; }
        @media screen and (max-width: 767px) {
          .topPage .companyinfo table th span {
            padding: 0;
            border: none; } }

.topPage .accessinfo {
  margin: 40px 0 0; }
  @media screen and (max-width: 767px) {
    .topPage .accessinfo {
      margin: 20px 0 0; } }
  .topPage .accessinfo .addresstext {
    font-size: 18px;
    font-size: 18rem;
    line-height: 1.75; }
    @media screen and (max-width: 767px) {
      .topPage .accessinfo .addresstext {
        font-size: 16px;
        font-size: 16rem; } }
  .topPage .accessinfo .googleMap {
    margin: 40px 0 0;
    height: 500px;
    position: relative;
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%); }
    @media screen and (max-width: 767px) {
      .topPage .accessinfo .googleMap {
        margin: 20px 0 0; } }
    .topPage .accessinfo .googleMap iframe {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%; }

.topPage footer {
  background: #d9dfe2;
  text-align: center;
  padding: 25px 0 20px; }
  @media screen and (max-width: 767px) {
    .topPage footer {
      padding: 15px 0 10px; } }
  .topPage footer small {
    font-size: 14px;
    font-size: 14rem;
    font-weight: 400; }
    @media screen and (max-width: 767px) {
      .topPage footer small {
        font-size: 10px;
        font-size: 10rem; } }

.formparts .cautionText {
  margin: 20px 0 0;
  line-height: 1.75; }

.formparts table {
  margin: 20px 0 0;
  background: #ececec;
  width: 100%; }
  .formparts table th, .formparts table td {
    vertical-align: middle;
    padding: 2em 2em;
    border: 1px solid #cccccc; }
    @media screen and (max-width: 767px) {
      .formparts table th, .formparts table td {
        padding: 1em;
        display: block; } }
  .formparts table th {
    width: 200px;
    background: #898989;
    color: #ffffff; }
    @media screen and (max-width: 767px) {
      .formparts table th {
        width: auto; } }
  .formparts table td p {
    margin: 0 0 0.5em;
    padding: 0; }
    .formparts table td p span {
      color: #bf0000;
      display: block;
      margin: 0 0 0.3em; }
    .formparts table td p input,
    .formparts table td p textarea {
      width: 100%;
      padding: 0.5em;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      font-size: 18px;
      font-size: 18rem; }
    .formparts table td p textarea {
      height: 17em; }
  .formparts table td.pgerr {
    background: #fbe3ac; }
    .formparts table td.pgerr p span {
      color: #bf0000;
      display: block;
      margin: 0 0 0.3em; }

.formparts .submitarea {
  margin: 1.5em 0 0;
  text-align: center; }

.formparts .submitarea button {
  background: #4c4948;
  padding: 0.5em 2em;
  text-align: center;
  color: #ffffff;
  font-size: 20px;
  font-size: 20rem;
  border: none;
  -webkit-box-shadow: 0px 0px 8px 1px #dadada;
  box-shadow: 0px 0px 8px 1px #dadada;
  cursor: pointer; }

.formparts .submitarea button.gray {
  background: #898989; }

.formparts .submitarea button:hover {
  opacity: 0.6; }

.formparts .contact_thanks {
  padding: 80px 0;
  line-height: 1.5; }

.formparts .privacyBox {
  background: #ffffff;
  padding: 40px;
  line-height: 1.75; }
  @media screen and (max-width: 767px) {
    .formparts .privacyBox {
      padding: 15px; } }
  .formparts .privacyBox .scrollWrap {
    background: #fcfcfc;
    margin: 20px 0 0;
    border: 1px solid #acadae;
    height: 10em;
    overflow-y: scroll;
    padding: 40px; }
    @media screen and (max-width: 767px) {
      .formparts .privacyBox .scrollWrap {
        margin: 10px 0 0;
        padding: 15px; } }
  .formparts .privacyBox h2 {
    font-weight: 500;
    font-size: 24px;
    font-size: 24rem; }
    @media screen and (max-width: 767px) {
      .formparts .privacyBox h2 {
        font-size: 18px;
        font-size: 18rem; } }
  .formparts .privacyBox dl {
    margin: 3em 0 0; }
    @media screen and (max-width: 767px) {
      .formparts .privacyBox dl {
        margin: 2em 0 0; } }
    .formparts .privacyBox dl + dl {
      margin: 2em 0 0; }
      @media screen and (max-width: 767px) {
        .formparts .privacyBox dl + dl {
          margin: 1.5em 0 0; } }
    .formparts .privacyBox dl dt {
      padding: 0.15em 0;
      margin: 0 0 0.25em;
      border-bottom: 1px solid #acadae;
      font-weight: 500;
      font-size: 18px;
      font-size: 18rem; }
      @media screen and (max-width: 767px) {
        .formparts .privacyBox dl dt {
          font-size: 14px;
          font-size: 14rem; } }
  .formparts .privacyBox .chkBox {
    margin: 2em 0 0;
    text-align: center;
    font-size: 18px;
    font-size: 18rem; }
    @media screen and (max-width: 767px) {
      .formparts .privacyBox .chkBox {
        margin: 1em 0 0;
        font-size: 16px;
        font-size: 16rem; } }
    .formparts .privacyBox .chkBox label {
      font-weight: 400;
      display: inline-block;
      padding: 0.5em 1em;
      border-radius: 1em;
      border: 1px solid #000000; }
    .formparts .privacyBox .chkBox input {
      color: #bf0000;
      margin-right: 1em; }
