@charset "UTF-8";
/*---------------------------------------------------------------
　　　common
---------------------------------------------------------------*/
.forSP {
  display: none; }
  @media all and (max-width: 767px) {
    .forSP {
      display: block; } }

.forTab {
  display: none; }
  @media all and (max-width: 1129px) and (min-width: 768px) {
    .forTab {
      display: block; } }
  @media all and (max-width: 767px) {
    .forTab {
      display: none; } }

.forPC {
  display: block; }
  @media all and (max-width: 767px) {
    .forPC {
      display: none; } }

img {
  width: 100%; }

body {
  background: white;
  color: #333;
  margin: 0;
  padding: 0;
  font-family: Quicksand, 游ゴシック体, "Yu Gothic", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 16px; }

#contents {
  width: 100%;
  margin: auto;
  text-align: center; }

#subContents {
  text-align: center; }
  #subContents header {
    transform: scale(0.7, 0.7); }
    @media all and (max-width: 767px) {
      #subContents header {
        transform: scale(1, 1); } }
  #subContents h2 {
    display: block; }
  #subContents .txtBlock {
    display: block;
    margin: 80px auto 140px;
    text-align: left;
    max-width: 800px; }
    @media all and (max-width: 767px) {
      #subContents .txtBlock {
        margin: 60px auto 100px; } }
    #subContents .txtBlock dl {
      display: flex;
      justify-content: flex-start;
      flex-wrap: wrap;
      margin: 15px; }
      #subContents .txtBlock dl dt, #subContents .txtBlock dl dd {
        padding-bottom: 10px;
        margin-bottom: 10px;
        border-bottom: 1px dotted #333; }
      #subContents .txtBlock dl dt {
        width: 38%;
        color: #5a740b; }
        @media all and (max-width: 767px) {
          #subContents .txtBlock dl dt {
            width: 100%;
            border-bottom: none;
            padding-bottom: 0;
            margin-bottom: 5px; } }
      #subContents .txtBlock dl dd {
        width: 62%; }
        @media all and (max-width: 767px) {
          #subContents .txtBlock dl dd {
            width: 100%;
            margin-bottom: 30px; } }
  #subContents .btn {
    display: block;
    width: 100px;
    background: #5a740b;
    color: white;
    text-decoration: none;
    padding: 5px;
    margin: 10px auto;
    font-size: 14px;
    text-align: center; }

/*---------------------------------------------------------------
　　　header
---------------------------------------------------------------*/
header h1 {
  height: 170px;
  text-align: center;
  position: relative;
  z-index: 100; }
  @media all and (max-width: 767px) {
    header h1 {
      height: 110px;
      margin-top: 30px; } }
  header h1 img {
    width: 350px;
    position: absolute;
    top: 20px;
    left: calc(50% - 175px); }
    @media all and (max-width: 767px) {
      header h1 img {
        width: 200px;
        position: absolute;
        top: 20px;
        left: calc(50% - 100px); } }
  header h1 .txtL {
    display: block;
    position: absolute;
    top: 60px;
    left: calc(50% - 220px); }
    @media all and (max-width: 767px) {
      header h1 .txtL {
        top: 40px;
        left: calc(50% - 150px);
        font-size: 80%; } }
  header h1 .txtR {
    display: block;
    position: absolute;
    top: 60px;
    right: calc(50% - 240px); }
    @media all and (max-width: 767px) {
      header h1 .txtR {
        top: 40px;
        right: calc(50% - 170px);
        font-size: 80%; } }

header.second {
  margin-top: 20px;
  height: 170px; }
  header.second h1 img {
    width: 220px;
    position: absolute;
    top: 20px;
    left: calc(50% - 110px); }
  header.second h1 .txtL {
    display: block;
    position: absolute;
    top: 40px;
    left: calc(50% - 150px);
    font-size: 80%; }
  header.second h1 .txtR {
    display: block;
    position: absolute;
    top: 40px;
    right: calc(50% - 170px);
    font-size: 80%; }

/*---------------------------------------------------------------
    footer
---------------------------------------------------------------*/
footer {
  clear: both;
  margin-top: 50px;
  text-align: center;
  background: #5a740b;
  color: white;
  padding: 30px 0;
  position: relative; }
  footer copyright {
    text-align: center; }
  footer:before {
    content: url(../images/mountain.png);
    width: 248px;
    height: 76px;
    position: absolute;
    top: -76px;
    left: 50%;
    margin-left: -124px; }
  footer a {
    display: inline-block;
    color: white;
    text-decoration: none;
    border-bottom: 1px dotted white;
    margin-bottom: 10px;
    font-size: 14px; }

/*---------------------------------------------------------------
    common
---------------------------------------------------------------*/
#mainImage {
  width: 90%;
  max-height: 700px;
  object-fit: cover;
  overflow: hidden;
  margin: auto;
  position: relative; }
  @media all and (max-width: 767px) {
    #mainImage {
      width: 100%;
      height: auto; } }
  #mainImage img.txt {
    width: 530px;
    position: absolute;
    top: 150px;
    left: calc(50% - 265px); }
    @media all and (max-width: 767px) {
      #mainImage img.txt {
        width: 95%;
        top: 100px;
        left: 2.5%; } }

.inner {
  max-width: 1330px;
  margin: auto; }

h2 {
  font-size: 28px;
  border-bottom: 1px dotted #333;
  position: relative;
  padding: 0 0 5px 40px;
  display: inline-block;
  margin: 40px auto;
  font-weight: normal; }
  @media all and (max-width: 1129px) and (min-width: 768px) {
    h2 {
      font-size: 22px; } }
  @media all and (max-width: 767px) {
    h2 {
      font-size: 18px;
      padding: 0 0 5px 30px;
      margin: 0 15px 30px;
      text-align: left; } }
  h2:before {
    content: "";
    width: 30px;
    height: 30px;
    background: url(../images/check.svg);
    background-size: contain;
    position: absolute;
    top: 3px;
    left: 0; }
    @media all and (max-width: 767px) {
      h2:before {
        width: 25px;
        height: 25px;
        top: 0;
        left: 0; } }

p {
  text-align: left;
  font-size: 16px; }

.column2, .column3 {
  display: flex;
  justify-content: space-between;
  max-width: 1330px;
  margin: auto; }

#reason {
  padding: 100px 0 130px; }
  #reason .column4 {
    display: flex;
    justify-content: space-between;
    width: 95%;
    max-width: 1330px;
    margin: auto; }
    #reason .column4 div {
      width: 23%;
      margin-bottom: 40px; }
      #reason .column4 div h3 {
        color: #5a740b;
        font-size: 16px;
        margin: 25px 0; }
      #reason .column4 div p {
        font-size: 14px; }
    @media all and (max-width: 767px) {
      #reason .column4 {
        flex-wrap: wrap; }
        #reason .column4 div {
          width: 100%; } }

#if {
  width: 100%;
  background: #f1f1f0 url(../images/zigu.png) repeat-y top left;
  overflow: hidden;
  padding: 70px 0 140px; }
  @media all and (max-width: 1500px) {
    #if {
      background: #f1f1f0 url(../images/zigu_s.png) repeat-y top left; } }
  @media all and (max-width: 767px) {
    #if {
      padding: 70px 0 100px;
      background: #f1f1f0; } }
  #if .column3 {
    width: 80%;
    max-width: 1330px;
    margin: auto;
    position: relative; }
    @media all and (max-width: 1129px) {
      #if .column3 {
        width: 90%; } }
    @media all and (max-width: 767px) {
      #if .column3 {
        display: block; } }
    #if .column3 div {
      width: 30%;
      background: #fff;
      border-radius: 10px;
      overflow: hidden; }
      @media all and (max-width: 767px) {
        #if .column3 div {
          width: 100%;
          margin-bottom: 30px; } }
      #if .column3 div h3 {
        background: #5a740b;
        color: #fff;
        padding: 5px 0;
        font-size: 16px;
        margin: 0; }
      #if .column3 div p {
        font-size: 14px;
        padding: 20px 15px; }
    #if .column3:after {
      content: "";
      width: 192px;
      height: 186px;
      background: url("../images/hand.png") no-repeat;
      position: absolute;
      bottom: -140px;
      right: -95px; }

#service {
  padding: 100px 0 160px;
  width: 95%;
  margin: auto; }
  #service .column4 {
    display: flex;
    justify-content: space-between;
    max-width: 1330px;
    margin: auto; }
    @media all and (max-width: 767px) {
      #service .column4 {
        flex-wrap: wrap; } }
    #service .column4 div {
      width: 22%;
      position: relative; }
      @media all and (max-width: 767px) {
        #service .column4 div {
          width: 100%;
          margin: 40px 0 0; } }
      #service .column4 div.first {
        margin: 0; }
      #service .column4 div:after {
        content: url(../images/service_arrow.png);
        position: absolute;
        top: 70px;
        right: -40px; }
        @media all and (max-width: 1129px) and (min-width: 768px) {
          #service .column4 div:after {
            right: -30px; } }
        @media all and (max-width: 767px) {
          #service .column4 div:after {
            content: url(../images/service_arrow02.png);
            position: absolute;
            top: auto;
            right: calc(50% - 15px);
            bottom: -45px; } }
      #service .column4 div.last:after {
        content: "";
        position: absolute;
        top: 0;
        right: 0; }
      #service .column4 div span {
        color: #5a740b;
        text-align: left;
        line-height: 1em;
        margin: 0 0 4px;
        float: left;
        font-size: 14px;
        font-weight: bold; }
      #service .column4 div h3 {
        clear: both;
        background: #5a740b;
        color: #fff;
        padding: 20px 0;
        margin: 0 0 10px; }
        @media all and (max-width: 1129px) and (min-width: 768px) {
          #service .column4 div h3 {
            font-size: 14px; } }
        @media all and (max-width: 767px) {
          #service .column4 div h3 {
            padding: 10px 0 10px 20px;
            text-align: left;
            line-height: 43px; } }
        #service .column4 div h3 img {
          width: 70px;
          margin-bottom: 10px; }
          @media all and (max-width: 767px) {
            #service .column4 div h3 img {
              width: 50px;
              margin-bottom: 0;
              margin-right: 10px; } }
      #service .column4 div p {
        font-size: 14px; }
      #service .column4 div .btn {
        display: block;
        border: 1px solid #5a740b;
        color: #5a740b;
        text-decoration: none;
        padding: 5px;
        margin-top: 10px;
        font-size: 14px; }

#guide {
  border-top: #5a740b 1px solid;
  margin: auto; }
  #guide .guideinner {
    max-width: 1330px;
    display: flex;
    justify-content: space-around;
    flex-direction: row-reverse;
    position: relative;
    padding: 100px 0;
    margin: auto; }
    @media all and (max-width: 767px) {
      #guide .guideinner {
        display: block;
        width: 100%; } }
    #guide .guideinner:after {
      content: " ";
      background: url(../images/line_mountain.png) no-repeat bottom center;
      background-size: contain;
      position: absolute;
      top: -80px;
      left: calc(50% - 275px);
      width: 571px;
      height: 80px; }
      @media all and (max-width: 1129px) and (min-width: 768px) {
        #guide .guideinner:after {
          width: 400px;
          height: 56px;
          top: -56px;
          left: calc(50% - 200px); } }
      @media all and (max-width: 767px) {
        #guide .guideinner:after {
          width: 300px;
          height: 42px;
          top: -42px;
          left: calc(50% - 150px); } }
    #guide .guideinner .photo {
      margin-right: 3%;
      position: relative; }
      @media all and (max-width: 767px) {
        #guide .guideinner .photo {
          margin-right: 0; } }
      #guide .guideinner .photo:after {
        content: " ";
        background: url(../images/guide_bg.png) no-repeat bottom center;
        background-size: contain;
        position: absolute;
        bottom: -30px;
        left: -30px;
        width: 202px;
        height: 202px;
        z-index: 0; }
      #guide .guideinner .photo img {
        position: relative;
        z-index: 10; }
    #guide .guideinner h2 {
      border: 3px dotted #333;
      text-align: center;
      width: 150px;
      height: 105px;
      border-radius: 150px;
      padding: 45px 0 0 0;
      line-height: 1.3em;
      font-size: 24px;
      margin: 0 0 30px; }
      #guide .guideinner h2:before {
        display: none; }
      @media all and (max-width: 767px) {
        #guide .guideinner h2 {
          width: auto;
          height: auto;
          border-radius: 0;
          border: none;
          padding: 0; } }
    #guide .guideinner h3 {
      text-align: left;
      background: #232837;
      color: #fff;
      padding: 10px 5px 10px 100px;
      margin: 0 0 10px -100px;
      position: relative;
      z-index: 100;
      height: 43px; }
      @media all and (max-width: 1129px) and (min-width: 768px) {
        #guide .guideinner h3 {
          height: 55px; } }
      @media all and (max-width: 767px) {
        #guide .guideinner h3 {
          text-align: center;
          height: auto; } }
      #guide .guideinner h3 span {
        display: block;
        font-size: 80%; }
      #guide .guideinner h3:after {
        content: "";
        position: absolute;
        top: 0;
        left: -25px;
        width: 25px;
        height: 63px;
        background: url(../images/arrow.png) no-repeat top right;
        background-size: cover; }
        @media all and (max-width: 1129px) and (min-width: 768px) {
          #guide .guideinner h3:after {
            height: 75px;
            background: url(../images/arrow.png) no-repeat top right;
            background-size: 100% 100%; } }
    #guide .guideinner ul {
      text-align: left; }
      @media all and (max-width: 767px) {
        #guide .guideinner ul {
          margin: 15px; } }
      #guide .guideinner ul a {
        text-decoration: none;
        color: #5a740b; }

@media all and (max-width: 767px) {
  #form {
    padding-top: 50px; }

  #contactform {
    padding-top: 50px; } }
#cost {
  background: #ededed;
  padding: 50px 0 100px;
  position: relative; }
  #cost:after {
    content: "";
    position: absolute;
    bottom: -160px;
    right: 0;
    width: 25%;
    height: 263px;
    background: url(../images/cost_bg.png) no-repeat top right;
    background-size: contain; }
    @media all and (max-width: 1129px) and (min-width: 768px) {
      #cost:after {
        height: 202px;
        bottom: -100px; } }
    @media all and (max-width: 767px) {
      #cost:after {
        width: 45%;
        height: 135px;
        bottom: -50px; } }
  #cost h2 {
    margin-bottom: 20px; }
  #cost p {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    padding-bottom: 60px; }
    #cost p span {
      font-size: 2em;
      color: #5a740b; }
  #cost ul {
    padding: 40px 20px 10px;
    background: #fff;
    border: 1px solid #000;
    display: inline-block;
    margin: 0 auto;
    position: relative;
    width: 80%;
    max-width: 800px; }
    #cost ul h3 {
      background: #000;
      color: #fff;
      display: block;
      width: 100px;
      padding: 3px 0;
      position: absolute;
      top: -15px;
      left: 50%;
      margin-left: -50px; }
    #cost ul li {
      line-height: 1.4em;
      margin-bottom: 20px; }
      @media all and (max-width: 1129px) and (min-width: 768px) {
        #cost ul li {
          text-align: left; } }
      @media all and (max-width: 767px) {
        #cost ul li {
          text-align: left; } }

#contact {
  padding: 100px 0; }
  @media all and (max-width: 767px) {
    #contact .column2 {
      display: block; } }
  #contact .form {
    width: 50%;
    border-right: 1px solid #eee; }
    @media all and (max-width: 767px) {
      #contact .form {
        width: 95%;
        margin: auto;
        border-right: none;
        margin-bottom: 100px; } }
    #contact .form dl {
      display: flex;
      justify-content: space-around;
      flex-wrap: wrap; }
      @media all and (max-width: 1129px) and (min-width: 768px) {
        #contact .form dl {
          display: block; } }
      @media all and (max-width: 767px) {
        #contact .form dl {
          display: block; } }
      #contact .form dl dt {
        width: 25%;
        margin-right: 5%;
        text-align: right;
        padding: 10px 0; }
        @media all and (max-width: 1129px) and (min-width: 768px) {
          #contact .form dl dt {
            width: 100%;
            max-width: 320px;
            padding: 4px 0;
            margin: auto;
            text-align: left; } }
        @media all and (max-width: 767px) {
          #contact .form dl dt {
            width: 100%;
            text-align: left;
            padding: 4px 0; } }
      #contact .form dl dd {
        width: 70%;
        text-align: left;
        margin-bottom: 20px; }
        @media all and (max-width: 1129px) and (min-width: 768px) {
          #contact .form dl dd {
            width: 100%;
            text-align: center;
            margin-bottom: 10px; } }
        @media all and (max-width: 767px) {
          #contact .form dl dd {
            width: 100%;
            margin-bottom: 10px; } }
    #contact .form p a {
      color: #5a740b;
      text-decoration: none; }

input {
  font-size: 16px;
  width: 300px;
  padding: 10px; }
  @media all and (max-width: 767px) {
    input {
      width: 90%;
      padding: 10px 4%; } }
  input.btn {
    background: #5a740b;
    color: #fff;
    border-radius: 10px;
    width: 150px;
    padding: 5px 10px; }

textarea {
  font-size: 16px;
  width: 300px;
  padding: 10px;
  height: 5em; }
  @media all and (max-width: 767px) {
    textarea {
      width: 90%;
      padding: 10px 4%; } }

#form_pay .formtxt {
  display: block;
  padding: 0 0 30px; }
  #form_pay .formtxt h3 {
    color: #5a740b; }
  #form_pay .formtxt .box {
    border: 1px solid #999;
    padding: 25px 15px;
    width: 90%;
    max-width: 800px;
    margin: 10px auto 60px;
    position: relative; }
    @media all and (max-width: 767px) {
      #form_pay .formtxt .box {
        padding: 15px 0 0;
        margin: 10px auto 40px; } }
  #form_pay .formtxt h4 {
    color: white;
    background: #5a740b;
    display: inline-block;
    padding: 3px 15px;
    border-radius: 20px;
    width: 200px;
    position: absolute;
    top: -15px;
    left: calc(50% - 115px); }
  #form_pay .formtxt p {
    text-align: center;
    margin: 10px 10px 10px; }
    @media all and (max-width: 767px) {
      #form_pay .formtxt p {
        font-size: 14px; } }
  #form_pay .formtxt .btn2 {
    display: block;
    width: 100px;
    border: 1px solid #5a740b;
    color: #5a740b;
    text-decoration: none;
    padding: 5px;
    margin: 15px auto 0;
    font-size: 14px;
    text-align: center;
    font-weight: bold; }

/*# sourceMappingURL=styles.css.map */
