@charset = "utf-8";

/*---------------------------------

 basic-parts

---------------------------------*/

.contents p { margin: 15px 0 0; }
.contents p a {
  color: #84ae60;
  text-decoration: underline;
}
.contents p a:visited { color: #90a327; }
.contents p a:active,
.contents p a:hover { text-decoration: none; }

em {
  font-style: normal;
  color: #84ae60;
}

.center { text-align: center; }

/*---------------------------------

 content-parts

---------------------------------*/


/*----------- heading --------------*/

.contents h2,
.contents h3,
.contents h4,
.contents h5,
.contents h6 {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
}

.contents h2 {
  margin: 60px 0 0;
  font-size: 40px;
  color: #84ae60;
  letter-spacing: 3px;
  text-align: center;
  position: relative;
}
.contents h2::after {
  content: '';
  display: block;
  width: 80px;
  height: 2px;
  margin: 15px auto 0;
  background: #84ae60;
}


.contents h3 {
  margin: 30px 0 0;
  padding-bottom: 10px;
  border-bottom: solid 1px #c5c5c5;
  font-size: 36px;
  letter-spacing: 3px;
  position: relative;
}
.contents h3::after {
  content: '';
  display: block;
  width: 80px;
  height: 2px;
  background: #353635;
  position: absolute;
  bottom: -2px;
}


.contents h4 {
  margin: 40px 0 0;
  padding: 3px 10px 5px;
  border-top: solid 1px #353635;
  border-bottom: solid 1px #353635;
  font-size: 26px;
  letter-spacing: 2px;
}


.contents h5 {
  margin: 40px 0 0;
  padding: 5px 10px 8px;
  background: #84ae60;
  font-size: 24px;
  color: #fff;
  letter-spacing: 2px;
}

.contents h6 {
  margin: 30px 0 0;
  font-size: 20px;
  letter-spacing: 1px;
}

@media only screen and (max-width: 767px) {
  .index-unit a,
  .index-unit a .title {
    word-wrap: break-word;
    word-break: normal;
  }
  .contents h2,
  .contents h3,
  .contents h4,
  .contents h5,
  .contents h6 {
    max-width: 100%;
    word-wrap: break-word;
  }
  .contents h2 { font-size: 32px; }
  .contents h3 { font-size: 29px; }
  .contents h4 { font-size: 21px; }
  .contents h5 { font-size: 19px; }
  .contents h6 { font-size: 16px; }
}

/*----------- table --------------*/

table {
  width: 100%;
  margin: 30px 0 0;
  border-collapse: separate;
  border-spacing: 0;
  border: solid 1px #353635;
}
table th,
table td {
  margin: 0;
  padding: 8px 15px;
  border: solid 1px #e0e0e0;
  text-align: left;
  word-break: break-word;
}
table thead th {
  background: #e6efdf;
}

table th p,
table td p {
  margin: 0 !important;
}

@media only screen and (max-width: 767px) {
  table.vertical-table th,
  table.vertical-table td {
    display: block;
    width: 100%;

  }

  .scroll-table {
    width: 100%;
    overflow: auto;
  }
  .scroll-table table {
    width: 800px;
  }
}

/*----------- blockquote --------------*/

blockquote {
  display: block;
  margin: 30px 0 0;
  padding: 15px 25px;
  line-height: 1.8;
  background: #ececec;
  text-indent: 3em;
  font-style: italic;
  font-size: 12px;
  color: #909090;
  position: relative;
}
blockquote::before {
  content: '‘‘';
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 40px;
  position: absolute;
  top: -5px;
  left: -15px;
}

/*----------- list --------------*/

.list { margin: 20px 0 0; }
.list li {
  margin-top: 10px;
  padding-left: 19px;
  position: relative;
}
.list li::before {
  content: '';
  display: block;
  width: 7px;
  height: 7px;
  background: #6a6a6a;
  border-radius: 4px;
  position: absolute;
  top: 0.45em;
  left: 5px;
}

.list.type2 li::before { background: #84ae60; }
.list.type3 li::before { background: #c2c2c2; }


.link { margin: 20px 0 0; }
.link li {
  margin-top: 10px;
}
.link li a {
  text-decoration: none;
  position: relative;
  transition: all 0.3s ease;
}
.link li a:link { color: #333; }
.link li a:visited { color: #6a6a6a; }
.link li a:hover,
.link li a:active { color: #84ae60; }

.link li a svg {
  width: 21px;
  margin-right: 3px;
}


ol {
  margin: 20px 0 0;
  padding-left: 0;
  counter-reset: item;
  list-style-type: none;
}
ol li {
  margin-top: 10px;
  padding-left: 25px;
  position: relative;
}
ol li::before {
  counter-increment: item;
  content: counter(item);
  display: block;
  width: 20px;
  height: 20px;
  line-height: 14px;
  border-radius: 10px;
  border: solid 1px #84ae60;
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  color: #84ae60;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
}

/*----------- anchor-navi --------------*/

.anchor-navi {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin: 20px 0;
}

.anchor-navi li {
  margin-right: 30px;
}

/*----------- Q&A --------------*/

.faq {
  margin: 30px 0 0;
  padding: 0;
  border-top: solid 1px #353635;
  border-bottom: solid 1px #353635;
}
.faq dt {
  padding: 20px 15px 20px 65px;
  border-bottom: dashed 1px #dbdbdb;
  position: relative;
}
.faq dd {
  padding: 20px 15px 20px 65px;
  position: relative;
}
.faq dt::before,
.faq dd::before {
  content: 'Q';
  display: block;
  width: 28px;
  height: 28px;
  line-height: 26px;
  border: solid 1px #353635;
  background: #353635;
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 16px;
  color: #fff;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 15px;
  margin-top: -14px;
}
.faq dd::before {
  content: 'A';
  background: none;
  border-color: #84ae60;
  color: #84ae60;
}


/*----------- index-list --------------*/

.index-wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 40px 0 0;
}
.index-wrap::after {
  content: none;
}

.index-unit {
  width: 47%;
  margin: 0 0 40px;
  position: relative;
}
.index-unit a {
  display: block;
  width: 100%;
  height: 100%;
  color: #fff;
  text-align: right;
  text-decoration: none;
}
.index-unit a img {
  width: 100%;
  vertical-align: bottom;
}
.index-unit a .btn {
  display: inline-block;
  margin: 20px 0 0 !important;
  padding: 10px 15px;
  border: solid 1px #84ae60 !important;
  border-color: #fff;
  background: #fff;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 11px;
  letter-spacing: 1px;
  color: #6ca948;
  position: relative;
  top: -20px;
}
.index-unit a .title {
  margin: -20px 0 0;
  text-align: left;
  letter-spacing: 3px;
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 38px;
  color: #84ae60;
}

@media only screen and (max-width: 767px) {
  .index-wrap {
    flex-direction: column;
  }

  .index-unit {
    width: 100%;
  }
  .index-unit a .title {
    font-size: 30px;
  }
}

/*----------- btn --------------*/

.btn { margin-top: 30px !important; }
.btn a {
  display: inline-block;
  padding: 10px 15px;
  border: solid 1px #333;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 11px;
  letter-spacing: 1px;
  color: #3c3e3d;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.btn a:link,
.btn a:visited {
  color: #3c3e3d !important;
}

.btn a:hover {
  background: #84ae60;
  border-color: #84ae60;
  color: #fff !important;
}

/*---------------------------------

 concrete5 Layout

---------------------------------*/

@media only screen and (max-width: 767px) {
  .ccm-layout-table .ccm-layout-col {
    width: 100% !important;
    float: none;
  }
  .ccm-layout-col-spacing {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/*---------------------------------

 Sitemap

---------------------------------*/

.sitemap-links .parent { margin: 30px 0 15px; }
.sitemap-links .parent a {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 20px;
  color: #333;
}

.sitemap-links ul li { margin-top: 10px; }
.sitemap-links ul li a {
  text-decoration: none;
  color: #333;
}

/*---------------------------------

 MailForm

---------------------------------*/

.MailForm .contact-flow {
  margin: 40px 0;
  text-align: center;
}

.MailForm table {
  width: 800px;
  margin: 0 auto;
}
.MailForm table th {
  padding-right: 150px;
  letter-spacing: 1px;
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 16px;
  position: relative;
}
.MailForm table th span {
  display: inline-block;
  margin: -10px 0 0;
  padding: 3px 10px;
  border-radius: 4px;
  background: #f14e4e;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 12px;
  color: #fff;
  position: absolute;
  top: 50%;
  right: 15px;
}

.MailForm input,
.MailForm textarea {
  padding: 3px 8px;
  border: solid 1px #ccc;
  border-radius: 4px;
  background: #eee;
  font-size: 16px;
  outline: none;
}
.MailForm input#mail,
.MailForm input#mail_confirm { width: 350px; }
.MailForm input#mail_confirm { margin: 7px 10px 0 0; }

.MailForm textarea { width: 100%; min-height: 250px;}

.MailForm input.btn-confirm,
.MailForm input.btn-back {
  display: inline-block;
  min-width: 240px;
  margin: 20px auto 0;
  padding: 15px 80px;
  border: solid 1px #84ae60;
  border-radius: 0;
  background: #84ae60;
  letter-spacing: 1px;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: #fff;
  position: relative;
  transition: all .2s ease;
}
.MailForm input.btn-back {
  background: #fff;
  border-color: #353635;
  color: #353635;
}
.MailForm input.btn-confirm:hover,
.MailForm input.btn-back:hover {
  border-color: #353635;
  background: #353635;
  color: #fff;
}

.MailForm .Error {
  margin: 5px 0;
  color: #f14e4e;
}

@media only screen and (max-width: 767px) {

  .MailForm table { width: 100%; }
  .MailForm table th,
  .MailForm table td {
    display: block;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .MailForm table th {
    padding-right: 15px;
  }

  .MailForm input#mail,
  .MailForm input#mail_confirm { width: 100%; }
  .MailForm input#mail_confirm { margin: 7px 0; }
}

/*---------------------------------

  footer

---------------------------------*/
