@charset "UTF-8";
/*-----bootstrap上書き-----*/
.navbar-light .navbar-toggler {
  border: none;
  margin-top: .3rem; }

.navbar-collapse {
  padding-top: .5rem; }

.btn {
  font-size: 1.5rem; }
  .btn:hover {
    text-decoration: none !important; }

*,
::before,
::after {
  background-repeat: no-repeat;
  /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
  box-sizing: border-box !important; }

.navbar-toggler-icon {
  width: 2em;
  height: 2em;
  margin-right: 1rem; }

.dropdown-menu {
  font-size: inherit; }

/*-----swipper上書き-----*/
.swiper-container {
  padding: 0 0 2rem 0 !important; }

/*----------------------*/
html {
  position: relative;
  font-size: 62.5%; }

body {
  font-size: 1.6rem;
  /* 16px*/
  line-height: 1.8;
  padding-top: 4.7rem;
  letter-spacing: 0.05em; }
  @media (max-width: 575px) {
    body {
      padding-top: 4.7rem;
      line-height: 1.6;
      letter-spacing: 0.01em; } }

h1 {
  font-size: 36px;
  /* IE8以下とAndroid4.3以下用フォールバック */
  font-size: calc(2.4rem + ((1vw - 0.64rem) * 2.1429));
  /* 24px~36pxで可変*/
  line-height: 1.3; }
  @media (min-width: 1200px) {
    h1 h1 {
      font-size: 3.6rem;
      /* 36px*/ } }

h2 {
  font-size: 24px;
  /* IE8以下とAndroid4.3以下用フォールバック */
  font-size: calc(2rem + ((1vw - 0.64rem) * 0.7143));
  /* 20px~24pxで可変*/
  line-height: 1.3; }
  @media (min-width: 1200px) {
    h2 h1 {
      font-size: 2.4rem;
      /* 24px*/ } }

p {
  font-size: 1.6rem; }
  @media (max-width: 575px) {
    p {
      font-size: 1.7rem; } }

a {
  color: #5890ca; }

.titletype1, .intro h2, .about h2, .service h2, .sample h2, .footer-form h2 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  text-align: center;
  font-weight: bold;
  font-size: 3.2rem;
  line-height: 1.8; }
  @media (max-width: 575px) {
    .titletype1, .intro h2, .about h2, .service h2, .sample h2, .footer-form h2 {
      font-size: 2.5rem; } }
  .titletype1 span, .intro h2 span, .about h2 span, .service h2 span, .sample h2 span, .footer-form h2 span {
    display: block;
    text-align: center;
    color: #71ad61;
    font-size: 60%;
    line-height: 1; }
    @media (max-width: 575px) {
      .titletype1 span, .intro h2 span, .about h2 span, .service h2 span, .sample h2 span, .footer-form h2 span {
        font-size: 70%; } }

.titletype2 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 700;
  font-style: normal;
  font-weight: bold;
  font-size: 2.5rem;
  line-height: 1.8;
  border-bottom: 1px solid #282828;
  margin-bottom: 1.5rem; }
  @media (max-width: 575px) {
    .titletype2 {
      font-size: 2rem; } }

header {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 700;
  font-style: normal;
  width: 100%;
  position: fixed;
  padding: 1rem 0;
  top: 0;
  z-index: 999;
  background: #fff;
  box-shadow: 0px 1px 2px 0px #9d9d9d; }
  @media (max-width: 575px) {
    header {
      padding: .6rem 0; } }
  header .logo {
    padding-left: 1rem;
    display: block; }
    header .logo img {
      width: 70px; }
      @media (max-width: 575px) {
        header .logo img {
          width: 50px; } }
    @media (max-width: 991px) {
      header .logo {
        display: block; } }
  header .navbar {
    padding: 0; }
  header nav {
    background: #fff; }
    @media (min-width: 992px) {
      header nav ul li {
        padding-left: 2rem; } }
    @media (max-width: 991px) {
      header nav ul li {
        border-top: 1px solid #ccc;
        font-size: 1.5rem; } }
    header nav ul a {
      color: #282828; }
      @media (max-width: 991px) {
        header nav ul a {
          padding: .7rem 1rem;
          display: block; } }
      header nav ul a:hover {
        text-decoration: none !important; }
    header nav .tel {
      font-weight: bold; }
      @media (max-width: 991px) {
        header nav .tel {
          border-top: 1px solid #ccc;
          font-size: 1.5rem; } }
      header nav .tel a {
        color: #282828; }
        @media (min-width: 992px) {
          header nav .tel a {
            padding-left: 1.5rem; } }
        @media (max-width: 991px) {
          header nav .tel a {
            padding: .5rem 1rem;
            display: block; } }
        header nav .tel a:hover {
          text-decoration: none !important; }
  header .yoyaku {
    border: none;
    padding: 0; }
    header .yoyaku:after {
      content: "";
      clear: both;
      display: block; }
    header .yoyaku a {
      width: 50%;
      text-align: center;
      float: left; }
      header .yoyaku a:first-of-type {
        background: #0DBD0D;
        color: #fff;
        box-sizing: border-box;
        border-right: 1px solid #fff; }
      header .yoyaku a:last-of-type {
        background: #148ded;
        color: #fff;
        box-sizing: border-box;
        border-left: 1px solid #fff; }

.topimg {
  background: url("../images/topimg.jpg") no-repeat center;
  background-size: cover;
  height: 680px; }
  @media (max-width: 991px) {
    .topimg {
      height: auto; } }
  @media (max-width: 767px) {
    .topimg {
      background: url("../images/topimg-sp.jpg") top;
      background-size: 100% auto; } }
  .topimg h1 {
    margin-bottom: 3rem; }
    @media (max-width: 575px) {
      .topimg h1 img {
        width: 50vw; } }
  .topimg .logotext {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 2.8rem;
    text-shadow: white 2px 2px 3px, white -2px 2px 3px, white 2px -2px 3px, white -2px -2px 3px; }
    @media (max-width: 1200px) {
      .topimg .logotext {
        font-size: 2.6rem;
        letter-spacing: -1px; } }
    @media (max-width: 991px) {
      .topimg .logotext {
        font-size: 2rem;
        margin-bottom: 3rem;
        letter-spacing: 0;
        font-family: source-han-sans-cjk-ja, sans-serif;
        font-weight: 700;
        font-style: normal; } }
    @media (max-width: 575px) {
      .topimg .logotext {
        font-size: 1.8rem; } }
  .topimg .topimgbox1 {
    padding-top: 50px; }
    @media (max-width: 991px) {
      .topimg .topimgbox1 {
        padding-top: 3rem;
        padding-bottom: 3rem; } }

.mask {
  background: url("../images/mask.png") repeat;
  height: 100%; }

.formbg {
  background: #ffff; }
  .formbg h2 {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    background: #252727;
    color: #fff;
    text-align: center;
    font-weight: bold;
    padding: 1.2rem 1rem;
    font-size: 2rem;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px; }
    @media (max-width: 575px) {
      .formbg h2 {
        font-size: 1.8rem; } }
    .formbg h2 + p {
      font-family: source-han-sans-cjk-ja, sans-serif;
      font-weight: 700;
      font-style: normal;
      font-size: 95%;
      text-align: center; }
  .formbg .sendomail {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 2rem;
    text-align: center;
    padding: 3rem 0 2rem 0; }
    .formbg .sendomail img.mailicon {
      display: inline-block;
      width: 20%;
      margin-bottom: 1.5rem; }
  .formbg label {
    font-size: 1.35rem; }
    @media (max-width: 575px) {
      .formbg label {
        font-size: 1.4rem; } }
  .formbg .form-control, .formbg .custom-select {
    font-size: 1.8rem; }
    @media (max-width: 575px) {
      .formbg .form-control, .formbg .custom-select {
        font-size: 1.6rem; } }
  .formbg .kiyaku {
    text-align: center;
    font-size: 80%;
    padding-bottom: 1.5rem; }

.formbox1 {
  border-radius: 5px;
  box-shadow: 2px 2px 3px 0px #a2a2a2; }

.formbox2 {
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px; }

.submitbtn {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  font-size: 140%;
  padding: 1rem;
  background: #e12835;
  color: #fff; }
  @media (max-width: 991px) {
    .submitbtn {
      font-size: 120%; } }
  .submitbtn:hover {
    color: #fff; }

.intro {
  background: #eff2f3; }
  .intro h2 {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    padding: 8rem 0 3rem 0; }
    @media (max-width: 767px) {
      .intro h2 {
        font-size: 2.4rem; } }
    @media (max-width: 575px) {
      .intro h2 {
        font-size: 1.7rem;
        padding: 4rem 0 1.5rem 0;
        line-height: 1.6; } }
  .intro p span {
    font-weight: bold;
    text-decoration: underline; }

.btn-goform {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  background: #fff;
  border: 1px solid #cdcdcd;
  padding: 1.5rem 2rem;
  font-weight: bold;
  font-size: 2rem;
  border-radius: .5rem; }
  @media (max-width: 575px) {
    .btn-goform {
      font-size: 1.7rem; } }
  .btn-goform:hover {
    background: #202020;
    border: 1px solid #202020;
    color: #fff; }
  .btn-goform img {
    width: 60px;
    margin-right: 1.5rem; }

.about h2 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  padding: 8rem 0 3rem 0; }
  @media (max-width: 575px) {
    .about h2 {
      padding: 3rem 0 1.5rem 0; } }
.about h3 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  font-size: 2.4rem;
  margin-bottom: 2rem;
  text-align: center; }
  @media (max-width: 575px) {
    .about h3 {
      font-size: 2.2rem; } }
  .about h3 span {
    display: inline-block;
    margin-right: 1.5rem;
    font-size: 150%;
    font-weight: normal !important;
    color: #5d8752;
    vertical-align: sub; }
.about .per dl {
  border: 3px solid #1a1b1c;
  padding: 2rem;
  text-align: center;
  background: url("../images/logobg.jpg") no-repeat center; }
  @media (max-width: 575px) {
    .about .per dl {
      background-size: 60% auto; } }
  .about .per dl dt {
    font-size: 2rem;
    margin-bottom: 2rem; }
    @media (max-width: 575px) {
      .about .per dl dt {
        font-size: 1.6rem;
        margin-bottom: 1rem;
        line-height: 1.2; } }
    .about .per dl dt small {
      font-size: 1.2rem; }
  .about .per dl dd {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 3rem; }
    @media (max-width: 575px) {
      .about .per dl dd {
        font-size: 2rem; } }
    .about .per dl dd span {
      color: #71ad61;
      font-weight: bold;
      font-size: 260%;
      display: block;
      text-align: center;
      line-height: 1; }
    @media (max-width: 575px) {
      .about .per dl dd .spacer {
        letter-spacing: -3px; } }

.service {
  background: #eff2f3;
  padding-bottom: 4rem; }
  .service h2 {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    padding: 3rem 0 2rem 0; }
  .service .row div {
    background: #fff;
    padding: 2rem 1rem;
    text-align: center;
    border: 4px solid #eff2f3;
    box-sizing: border-box; }
    @media (max-width: 575px) {
      .service .row div {
        padding: 1rem; } }
    .service .row div p {
      font-size: 1.4rem;
      line-height: 1.6; }
  .service .row img {
    width: 60%;
    margin-bottom: 2rem; }

.sample {
  margin-bottom: 5rem; }
  @media (max-width: 575px) {
    .sample {
      margin-bottom: 3rem; } }
  .sample h2 {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    padding: 8rem 0 3rem 0; }
    @media (max-width: 575px) {
      .sample h2 {
        padding: 5rem 0 1.5rem 0; } }

.samplelist {
  padding: 0 1rem;
  margin-bottom: 1rem;
  font-size: 1.4rem; }
  .samplelist ul {
    list-style: none; }
    .samplelist ul li {
      margin-bottom: 0;
      line-height: 1.4; }
  .samplelist figure {
    text-align: center; }
  .samplelist dl {
    margin-bottom: .5rem;
    padding-bottom: 0;
    line-height: 1.4;
    font-size: 1rem; }
    .samplelist dl dt {
      font-weight: bold;
      margin-bottom: 0; }
    .samplelist dl dd {
      margin-bottom: 0;
      padding-bottom: .5rem; }
      .samplelist dl dd span {
        color: #E53030;
        font-weight: bold;
        font-size: 150%; }

@media (max-width: 575px) {
  .send-line img {
    width: 70%; } }

.lineform-title {
  text-align: center;
  margin: 1rem 0; }
  @media (max-width: 575px) {
    .lineform-title {
      margin: 1rem 0; } }
  .lineform-title + p {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 95%;
    text-align: center; }
  .lineform-title img {
    width: 200px; }
    @media (max-width: 575px) {
      .lineform-title img {
        width: 150px; } }

.lineformimg {
  width: 50%;
  border: 1px solid #ccc; }

.mailform-title {
  text-align: center;
  margin: 1rem 0; }
  @media (max-width: 575px) {
    .mailform-title {
      margin: 1rem 0; } }
  .mailform-title + p {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 95%;
    text-align: center; }
  .mailform-title img {
    width: 200px; }
    @media (max-width: 575px) {
      .mailform-title img {
        width: 150px; } }

.footer-form {
  background: #eff2f3;
  padding-bottom: 4rem; }
  .footer-form h2 {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 900;
    font-style: normal;
    padding: 5rem 0 2rem 0; }
    @media (max-width: 575px) {
      .footer-form h2 {
        padding: 5rem 0 1.5rem 0; } }
  .footer-form .nav {
    justify-content: space-between; }
    .footer-form .nav li:first-of-type {
      font-weight: bold;
      font-size: 120%; }
      .footer-form .nav li:first-of-type a {
        color: #d7d7d7; }
        .footer-form .nav li:first-of-type a.active {
          background: #0DBD0D;
          color: #fff !important;
          font-weight: bold; }
    .footer-form .nav li:last-of-type {
      font-weight: bold;
      font-size: 120%; }
      .footer-form .nav li:last-of-type a {
        color: #d7d7d7; }
        .footer-form .nav li:last-of-type a.active {
          background: #148ded;
          color: #fff !important;
          font-weight: bold; }
    .footer-form .nav .nav-item {
      width: 45%; }
      @media (max-width: 575px) {
        .footer-form .nav .nav-item {
          width: 48%; } }
      .footer-form .nav .nav-item a {
        background: #fff;
        display: block;
        padding: 1rem;
        text-align: center; }

footer {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 1.4rem;
  padding: 2.5rem 0; }
  footer .copyright {
    text-align: right; }
    @media (max-width: 575px) {
      footer .copyright {
        text-align: left; } }

.dl dd {
  margin-bottom: 1.5rem; }

.qabox {
  margin-bottom: 4rem; }
  .qabox button {
    font-family: source-han-sans-cjk-ja, sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: left;
    font-size: 1.6rem;
    width: 100%;
    padding: 1rem .5rem; }
    @media (max-width: 575px) {
      .qabox button {
        font-size: 1.5rem; } }

.qa-index {
  margin-bottom: 3rem; }
  .qa-index li {
    list-style: none;
    padding: .5rem; }
    .qa-index li a {
      font-family: source-han-sans-cjk-ja, sans-serif;
      font-weight: 700;
      font-style: normal;
      display: block;
      text-align: center;
      padding: 1rem;
      border: 1px solid #5890ca;
      border-radius: 4rem; }
      .qa-index li a:hover {
        text-decoration: none;
        background: #5890ca;
        color: #fff; }

#page_top {
  width: 50px;
  height: 50px;
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  background: #ef3f98;
  opacity: 0.6;
  border-radius: 50%; }
  #page_top a {
    position: relative;
    display: block;
    width: 50px;
    height: 50px;
    padding-top: 7px;
    box-sizing: border-box;
    text-decoration: none;
    font-size: 25px;
    color: #fff;
    margin: auto;
    text-align: center; }

.news-toptitle {
  background: #252727;
  color: #fff;
  padding: 1rem 2rem;
  text-align: center;
  position: relative;
  min-height: 3rem; }
  .news-toptitle span {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%); }
.news-toparea {
  padding: 1rem 2rem; }
  @media (max-width: 991px) {
    .news-toparea {
      padding: 1rem 1.5rem 2rem 1.5rem; } }
  @media (max-width: 991px) {
    .news-toparea time {
      display: block; } }

.title-news1 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  font-weight: bold;
  font-size: 2.8rem;
  line-height: 1.8;
  padding-bottom: 1rem;
  border-bottom: 3px solid #e12835;
  text-align: center; }
  @media (max-width: 575px) {
    .title-news1 {
      font-size: 2rem;
      line-height: 1.5; } }

.title-news2 {
  font-family: source-han-sans-cjk-ja, sans-serif;
  font-weight: 900;
  font-style: normal;
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.8; }
  @media (max-width: 575px) {
    .title-news2 {
      font-size: 1.8rem;
      line-height: 1.5; } }

.text-small {
  line-height: 1.4;
  font-size: 1.2rem;
  display: inline-block; }
