@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700|Noto+Serif+JP:400,700|Kiwi+Maru:400,500&display=swap");
a, abbr, acronym, address, applet, big, blockquote, body, caption, cite, code, dd, del, dfn, div, dl, dt, em, fieldset, font, form, h1, h2, h3, h4, h5, h6, html, iframe, img, ins, kbd, label, legend, li, object, ol, p, pre, q, s, samp, small, span, strike, strong, sub, sup, tbody, tfoot, thead, tt, ul, var {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
  list-style: none; }

.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden; }

.clearfix {
  clear: both;
  min-height: 1px; }

* html .clearfix {
  height: 1px; }

.txt_center {
  text-align: center !important; }

.block_center {
  margin-left: auto !important;
  margin-right: auto !important; }

.txt_left {
  text-align: left !important; }

.txt_right {
  text-align: right !important; }

.fleft {
  display: block;
  float: left; }

.fright {
  display: block;
  float: right; }

.txt_red {
  color: #f33; }

.pl0 {
  padding-left: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.pt0 {
  padding-top: 0 !important; }

.pb0 {
  padding-bottom: 0 !important; }

.ml5 {
  margin-left: 5px !important; }

.mr5 {
  margin-right: 5px !important; }

.mt5 {
  margin-top: 5px !important; }

.mb5 {
  margin-bottom: 5px !important; }

.pl5 {
  padding-left: 5px !important; }

.pr5 {
  padding-right: 5px !important; }

.pt5 {
  padding-top: 5px !important; }

.pb5 {
  padding-bottom: 5px !important; }

.pt8 {
  padding-top: 8px !important; }

.ml10 {
  margin-left: 10px !important; }

.mr10 {
  margin-right: 10px !important; }

.mt10 {
  margin-top: 10px !important; }

.mb10 {
  margin-bottom: 10px !important; }

.pl10 {
  padding-left: 10px !important; }

.pr10 {
  padding-right: 10px !important; }

.pt10 {
  padding-top: 10px !important; }

.pb10 {
  padding-bottom: 10px !important; }

.ml15 {
  margin-left: 15px !important; }

.mr15 {
  margin-right: 15px !important; }

.mt15 {
  margin-top: 15px !important; }

.mb15 {
  margin-bottom: 15px !important; }

.pl15 {
  padding-left: 15px !important; }

.pr15 {
  padding-right: 15px !important; }

.pt15 {
  padding-top: 15px !important; }

.pb15 {
  padding-bottom: 15px !important; }

.ml20 {
  margin-left: 20px !important; }

.mr20 {
  margin-right: 20px !important; }

.mt20 {
  margin-top: 20px !important; }

.mb20 {
  margin-bottom: 20px !important; }

.pl20 {
  padding-left: 20px !important; }

.pr20 {
  padding-right: 20px !important; }

.pt20 {
  padding-top: 20px !important; }

.pb20 {
  padding-bottom: 20px !important; }

.ml25 {
  margin-left: 25px !important; }

.mr25 {
  margin-right: 25px !important; }

.mt25 {
  margin-top: 25px !important; }

.mb25 {
  margin-bottom: 25px !important; }

.pl25 {
  padding-left: 25px !important; }

.pr25 {
  padding-right: 25px !important; }

.pt25 {
  padding-top: 25px !important; }

.pb25 {
  padding-bottom: 25px !important; }

.ml30 {
  margin-left: 30px !important; }

.mr30 {
  margin-right: 30px !important; }

.mt30 {
  margin-top: 30px !important; }

.mb30 {
  margin-bottom: 30px !important; }

.pl30 {
  padding-left: 30px !important; }

.pr30 {
  padding-right: 30px !important; }

.pt30 {
  padding-top: 30px !important; }

.pb30 {
  padding-bottom: 30px !important; }

.ml35 {
  margin-left: 35px !important; }

.mr35 {
  margin-right: 35px !important; }

.mt35 {
  margin-top: 35px !important; }

.mb35 {
  margin-bottom: 35px !important; }

.pl35 {
  padding-left: 35px !important; }

.pr35 {
  padding-right: 35px !important; }

.pt35 {
  padding-top: 35px !important; }

.pb35 {
  padding-bottom: 35px !important; }

.ml40 {
  margin-left: 40px !important; }

.mr40 {
  margin-right: 40px !important; }

.mt40 {
  margin-top: 40px !important; }

.mb40 {
  margin-bottom: 40px !important; }

.pl40 {
  padding-left: 40px !important; }

.pr40 {
  padding-right: 40px !important; }

.pt40 {
  padding-top: 40px !important; }

.pb40 {
  padding-bottom: 40px !important; }

.ml45 {
  margin-left: 45px !important; }

.mr45 {
  margin-right: 45px !important; }

.mt45 {
  margin-top: 45px !important; }

.mb45 {
  margin-bottom: 45px !important; }

.pl45 {
  padding-left: 45px !important; }

.pr45 {
  padding-right: 45px !important; }

.pt45 {
  padding-top: 45px !important; }

.pb45 {
  padding-bottom: 45px !important; }

.ml50 {
  margin-left: 50px !important; }

.mr50 {
  margin-right: 50px !important; }

.mt50 {
  margin-top: 50px !important; }

.mb50 {
  margin-bottom: 50px !important; }

.pl50 {
  padding-left: 50px !important; }

.pr50 {
  padding-right: 50px !important; }

.pt50 {
  padding-top: 50px !important; }

.pb50 {
  padding-bottom: 50px !important; }

.mt75 {
  margin-top: 75px !important; }

body {
  position: relative;
  font-family: "Kiwi Maru", sans-serif;
  font-size: 20px;
  line-height: 1.8;
  color: #333; }

a {
  color: #518230; }
  a:hover, a:active {
    text-decoration: none;
    color: #f1b32d; }

img {
  max-width: 100%; }

.fadeInUp {
  opacity: 0;
  transform: translate(0, 80px);
  transition: all 1s; }

.fadeInUp.on {
  opacity: 1;
  transform: translate(0, 0); }

header {
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#518230+0,94cc4b+100 */
  background: #518230;
  /* Old browsers */
  background: -moz-linear-gradient(left, #518230 0%, #94cc4b 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #518230 0%, #94cc4b 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #518230 0%, #94cc4b 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#518230', endColorstr='#94cc4b',GradientType=1 );
  /* IE6-9 */
  position: fixed;
  width: 100%;
  height: 50px;
  z-index: 100;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); }
  header h1 {
    padding: 5px 15px; }
    header h1 img {
      height: 40px; }
  header a.modal-open {
    box-sizing: border-box;
    display: inline-block;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #fff;
    background: rgba(0, 0, 0, 0.1);
    border: 1px solid #fff;
    font-size: 14px;
    padding: 3px 10px;
    text-decoration: none; }

section#home_cover {
  position: relative;
  height: 75vh;
  background-image: url("../../images/overlay.png"), url("../../images/cover.jpg");
  background-repeat: repeat, no-repeat;
  background-position: center center;
  background-size: auto, cover; }
  section#home_cover div {
    width: 100%;
    text-align: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    section#home_cover div h2 {
      background: url("../../images/leaf.png") no-repeat center top/auto 120px;
      padding: 150px 0 0;
      font-size: 50px;
      font-weight: 500;
      margin-bottom: 20px;
      text-shadow: 0 1px 3px white; }
      section#home_cover div h2 span {
        color: #518230; }

section.sec {
  padding: 50px 0; }
  section.sec p {
    margin-bottom: 20px; }

section#introduction {
  text-align: center; }
  section#introduction h2 {
    margin-bottom: 40px;
    font-size: 30px;
    font-weight: 500; }
    section#introduction h2 span {
      font-size: 16px;
      color: #518230;
      margin-top: 15px;
      border-bottom: 2px solid #518230;
      padding-bottom: 10px; }
      section#introduction h2 span::before {
        content: "\a";
        white-space: pre; }

section#keisei {
  background-color: #518230;
  background-image: url("../../images/overlay.png"), url("../../images/keisei.jpg");
  background-repeat: repeat, no-repeat;
  background-position: center center, top;
  background-size: auto, 100%;
  color: #fff; }
  section#keisei h2 {
    font-size: 32px;
    margin-bottom: 30px;
    font-weight: 500;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    text-align: center; }
  section#keisei img.pyramid {
    display: block;
    width: 65%;
    margin: 0 auto 30px; }
  section#keisei ol {
    padding-bottom: 15px;
    counter-reset: number;
    list-style: none; }
    section#keisei ol > li {
      line-height: 1.6;
      position: relative;
      padding: 0 0 5px 35px;
      border-bottom: 1px dotted #fff;
      margin-bottom: 15px; }
      section#keisei ol > li::before {
        position: absolute;
        left: 0;
        top: 5px;
        counter-increment: number;
        content: counter(number);
        color: #518230;
        background: #fff;
        display: inline-block;
        width: 25px;
        height: 25px;
        box-sizing: border-box;
        padding-top: 1px;
        font-weight: 500;
        border-radius: 50%;
        line-height: 100%;
        text-align: center; }
  section#keisei h3 {
    font-weight: 500;
    font-size: 24px;
    padding: 0 0 15px 0;
    text-align: center; }
  section#keisei .voice {
    box-sizing: border-box;
    padding: 15px 15px 15px 20%;
    border: 2px solid #fff;
    border-radius: 5px;
    position: relative;
    background: rgba(255, 255, 255, 0.05); }
    section#keisei .voice img {
      position: absolute;
      top: 0;
      left: 0;
      transform: translate(-15px, -30%);
      width: 20%; }
    section#keisei .voice h4 {
      border-bottom: 1px dotted #fff;
      padding-bottom: 10px;
      margin-bottom: 10px; }
    section#keisei .voice p {
      padding-top: 10px;
      margin: 0;
      font-size: 18px;
      line-height: 1.5; }

section#profile {
  background: url("../../images/profile.jpg") no-repeat center bottom; }
  section#profile h2 {
    font-weight: 500;
    font-size: 20px;
    margin-bottom: 20px; }
  section#profile p.post {
    line-height: 1.2;
    font-size: 90%;
    color: #518230; }
  section#profile dl {
    padding-bottom: 20px; }
    section#profile dl dt {
      font-size: 90%;
      margin-bottom: 5px; }
      section#profile dl dt::before {
        font-family: 'FontAwesome';
        font-weight: 400;
        content: '\f08d';
        color: #518230;
        margin-right: 10px; }
    section#profile dl dd {
      line-height: 1.3;
      border-bottom: 1px dotted #518230;
      padding: 0 0 5px 25px;
      margin-bottom: 10px; }
  section#profile h4 {
    font-weight: 500;
    color: #518230;
    margin-bottom: 10px; }
    section#profile h4::before {
      font-family: 'FontAwesome';
      font-weight: 400;
      content: '\f075';
      color: #518230;
      margin-right: 8px; }
  section#profile .message {
    font-size: 90%;
    padding: 25px;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.8); }
    section#profile .message p:last-child {
      margin-bottom: 0; }

footer {
  background: #111 url("../../images/overlay.png");
  color: #fff;
  padding: 50px 0; }
  footer img.logo {
    display: block;
    width: 70px;
    margin: 0 auto;
    opacity: 0.2; }
  footer h2 {
    text-align: center;
    font-weight: 500;
    padding: 20px 0;
    line-height: 1.6;
    font-size: 24px; }
    footer h2 span {
      font-size: 14px;
      color: #518230;
      border-bottom: 2px solid #518230;
      padding-bottom: 5px; }
      footer h2 span::before {
        content: "\a";
        white-space: pre; }
  footer dl {
    width: 65%;
    margin: 0 auto 40px;
    display: flex;
    flex-wrap: wrap;
    font-size: 90%; }
    footer dl dt, footer dl dd {
      box-sizing: border-box;
      padding: 10px 30px; }
    footer dl dt {
      width: 25%;
      border-right: 1px solid rgba(255, 255, 255, 0.5);
      text-align: right;
      font-weight: normal; }
    footer dl dd {
      width: 75%; }
      footer dl dd img {
        height: 30px; }
  footer p.links {
    text-align: center;
    margin-bottom: 20px; }
    footer p.links a {
      font-size: 16px;
      color: #fff; }
      footer p.links a::before {
        content: '[';
        margin-right: 5px; }
      footer p.links a::after {
        content: ']';
        margin-left: 5px; }
  footer p.copy {
    text-align: center;
    font-size: 14px; }

a#totop {
  position: fixed;
  width: 50px;
  height: 50px;
  bottom: 15px;
  right: -100px;
  font-size: 25px;
  background: #518230;
  color: #fff;
  border-radius: 5px 0 0 5px;
  outline: none;
  transition: 1.0s;
  text-align: center;
  box-shadow: 0 0 5px white; }

strong.marker {
  background: url("../../images/marker.png") repeat-x bottom/auto 30%;
  font-weight: 400;
  margin: 0 5px; }

section#price {
  background-image: url("../../images/overlay.png"), url("../../images/price.jpg");
  background-repeat: repeat, no-repeat;
  background-position: center center, top;
  background-size: auto, cover; }
  section#price h2 {
    text-align: center;
    margin: 40px 0;
    font-size: 30px;
    font-weight: 500; }
    section#price h2 span {
      font-size: 16px;
      color: #518230;
      margin-top: 15px;
      border-bottom: 2px solid #518230;
      padding-bottom: 10px; }
      section#price h2 span::before {
        content: "\a";
        white-space: pre; }
  section#price table {
    width: 100%;
    margin-bottom: 20px; }
    section#price table th, section#price table td {
      box-sizing: border-box;
      border: 1px solid #ccc;
      padding: 10px;
      font-weight: 400;
      line-height: 1.5;
      vertical-align: middle; }
    section#price table th {
      text-align: center;
      width: 20%;
      background: #518230;
      color: #fff; }
    section#price table td {
      background: rgba(255, 255, 255, 0.9);
      width: 40%; }
  section#price ul {
    background: rgba(255, 255, 255, 0.9);
    padding: 15px; }
    section#price ul li {
      font-size: 90%; }
      section#price ul li:before {
        content: '※';
        color: #518230;
        margin-right: 5px; }
  section#price a {
    margin: auto;
    position: relative;
    display: block;
    border: 1px solid #518230;
    border-radius: 5px;
    background: #7DB342;
    color: #fff;
    text-align: center;
    text-decoration: none;
    padding: 10px 0;
    transition: .3s; }
    section#price a:after {
      content: '＋';
      position: absolute;
      right: 10px; }
    section#price a.on {
      background: #fff;
      color: #518230; }
      section#price a.on:after {
        content: '－'; }
  section#price #price_hidden {
    display: none; }

@media print, screen and (min-width: 768px) {
  body {
    z-index: 1; }

  .sp {
    display: none !important; }

  section#profile h3 {
    line-height: 1;
    font-size: 30px;
    margin-bottom: 40px;
    font-weight: 500;
    letter-spacing: 0.25em; }
    section#profile h3::before {
      font-family: 'FontAwesome';
      content: '\f299';
      margin-right: 8px;
      color: #518230;
      font-size: 90%; }
    section#profile h3 span {
      font-weight: 400;
      font-size: 50%;
      margin-left: 15px;
      color: #518230;
      letter-spacing: normal; }

  section#price a {
    width: 600px; } }
@media screen and (max-width: 767px) {
  body {
    z-index: 2;
    font-size: 16px; }

  .pc {
    display: none !important; }

  section.sec {
    padding: 25px 0; }

  section#home_cover div h2 {
    background-size: 90px;
    padding: 120px 0 0;
    font-size: 26px; }
    section#home_cover div h2 span {
      color: #518230; }

  section#introduction, section#price {
    text-align: left; }
    section#introduction h2, section#price h2 {
      text-align: center;
      margin-bottom: 40px;
      font-size: 24px;
      line-height: 1.6; }
      section#introduction h2 span, section#price h2 span {
        font-size: 14px; }

  section#keisei h2 {
    font-size: 24px; }
  section#keisei img.pyramid {
    width: 100%;
    margin: 0 auto 25px; }
  section#keisei ol > li::before {
    top: 2px;
    padding-top: 3px; }
  section#keisei h3 {
    font-size: 20px; }
  section#keisei .voice {
    margin-left: 15px; }
    section#keisei .voice img {
      width: 24%; }
    section#keisei .voice h4 {
      margin-bottom: 0; }
    section#keisei .voice p {
      font-size: 14px; }

  section#profile h2 {
    text-align: center; }
  section#profile img {
    display: block;
    width: 50%;
    margin: 0 auto 10px; }
  section#profile dl dt {
    margin-bottom: 0; }
  section#profile dl dd {
    padding: 0 0 5px 18px; }
  section#profile h3 {
    margin-bottom: 20px;
    line-height: 1.6;
    text-align: center;
    font-size: 28px;
    font-weight: 500; }
    section#profile h3 span {
      display: block;
      color: #518230;
      font-size: 14px; }
  section#profile h4 {
    font-size: 20px;
    text-align: center; }
  section#profile .message {
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
    font-size: 100%; }

  section#price .scroll {
    margin-bottom: 20px;
    overflow: auto;
    white-space: nowrap; }
    section#price .scroll::-webkit-scrollbar {
      height: 5px; }
  section#price table {
    margin-bottom: 10px; }
    section#price table th, section#price table td {
      padding: 10px;
      font-size: 14px; }
  section#price ul {
    padding: 10px; }
    section#price ul li {
      font-size: 12px; }
      section#price ul li:before {
        margin-right: 3px; }

  footer dl {
    width: 100%; }
    footer dl dt, footer dl dd {
      padding: 10px 20px; }
    footer dl dt {
      width: 30%; }
    footer dl dd {
      width: 70%; }
      footer dl dd img {
        width: 100%;
        height: auto; }
  footer p.links a {
    font-size: 14px; } }
section#modal_layer {
  display: none;
  z-index: 101;
  height: 100vh;
  position: fixed;
  top: 0;
  width: 100%; }
  section#modal_layer .bg {
    background: rgba(0, 0, 0, 0.8);
    height: 100vh;
    position: absolute;
    width: 100%; }
  section#modal_layer .wrap {
    background: rgba(255, 255, 255, 0.9);
    padding: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%; }
    section#modal_layer .wrap h2 {
      text-align: center;
      color: #518230;
      font-size: 24px;
      font-weight: 500;
      margin-bottom: 15px; }
    section#modal_layer .wrap dl {
      font-family: "Noto Serif JP", serif;
      background: #fff;
      box-sizing: border-box;
      padding: 20px;
      height: 50vh;
      overflow-y: scroll;
      border: 1px solid #ccc;
      line-height: 1.5;
      margin-bottom: 30px; }
      section#modal_layer .wrap dl dt {
        font-size: 18px;
        border-bottom: 1px dotted #518230;
        padding-bottom: 5px; }
      section#modal_layer .wrap dl dd {
        font-size: 16px;
        padding: 10px 0 15px 15px; }
        section#modal_layer .wrap dl dd ol {
          margin-top: 10px;
          counter-reset: number;
          list-style: none; }
          section#modal_layer .wrap dl dd ol > li {
            line-height: 1.6;
            position: relative;
            padding: 1px 0 5px 30px; }
            section#modal_layer .wrap dl dd ol > li::before {
              position: absolute;
              left: 0;
              top: 5px;
              counter-increment: number;
              content: counter(number);
              color: #fff;
              background: #518230;
              display: inline-block;
              width: 20px;
              height: 20px;
              box-sizing: border-box;
              padding-top: 1px;
              font-weight: 500;
              border-radius: 50%;
              line-height: 100%;
              text-align: center; }
    section#modal_layer .wrap a.modal-close {
      display: inline-block;
      color: #fff;
      background: #518230;
      font-size: 16px;
      padding: 5px 25px;
      text-decoration: none; }
      section#modal_layer .wrap a.modal-close::before {
        font-family: 'FontAwesome';
        content: '\f00d';
        margin-right: 5px; }

@media screen and (max-width: 767px) {
  section#modal_layer .wrap {
    padding: 15px; }
    section#modal_layer .wrap h2 {
      font-size: 18px;
      margin-bottom: 10px; }
    section#modal_layer .wrap dl {
      padding: 15px;
      margin-bottom: 15px; }
      section#modal_layer .wrap dl dt {
        font-size: 16px; }
      section#modal_layer .wrap dl dd {
        padding: 10px 0 15px;
        font-size: 14px; }
        section#modal_layer .wrap dl dd ol > li:before {
          padding-top: 2px; }
    section#modal_layer .wrap a.modal-close {
      font-size: 14px; } }
