@charset "UTF-8";


/*     common     */


@keyframes fadeIn {
    0% {
        opacity: 0
    }
    100% {
        opacity: 1
    }
}
@-webkit-keyframes fadeIn {
    0% {
        opacity: 0
    }
    100% {
        opacity: 1
    }
}

body {
    font-family: YakuHanMP, 'Noto Serif JP', "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
    font-size: 16px;
	line-height: 1.4em;
    color: #333;
	animation-name: fadeIn;
    animation-duration: 0.5s;
    background-color: #fff;
    position: relative;
    font-feature-settings: "palt"
}
* {
    outline: none;
}

section {
    overflow-x: hidden;
}

hr {
    opacity: 1;
}

a {
    text-decoration: none;
    color: #6FBA2C;
    -webkit-transition-property: background, background-color, color, opacity;
    -moz-transition-property: background, background-color, color, opacity;
    -ms-transition-property: background, background-color, color, opacity;
    transition-property: background, background-color, color, opacity;
    -webkit-transition-duration: 0.2s;
    -moz-transition-duration: 0.2s;
    -ms-transition-duration: 0.2s;
    transition-duration: 0.2s;
    -webkit-transition-timing-function: linear;
    -moz-transition-timing-function: linear;
    -ms-transition-timing-function: linear;
    transition-timing-function: linear;
}
a:focus {
    outline: none;
}

a img {
    border-style: none;
    border-width: 0px;
}
a:hover {
    -moz-opacity: 0.8;
    opacity: 0.8;
    text-decoration: none;
}
a:hover img {
    text-decoration: none;
}
img {
	max-width: 100%;
    vertical-align: top;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    line-height: 1.4;
}
.h1, h1 {
  font-size: 2.1rem;
}
.h2, h2 {
  font-size: 2rem;
}
.h3, h3 {
  font-size: 1.5rem;
}
.h4, h4 {
  font-size: 1.4rem;
}
.font-weight-bold {
    font-weight: 600 !important;
}
.text-black {
	color: #333;
}
.text-grey {
	color: #aaa;
}
.text-white {
    color: #fdfdfb;
}
.small, small {
    font-size: 85%;
	line-height: 1.5em;
}
.small-more {
	font-size: 75%;
    line-height: 1.4em;
}
.letter-spacing-s {
    letter-spacing: .4px;
    line-height: 1.5em;
}
.letter-spacing-l {
	letter-spacing: 2px;
    line-height: 2;
}
.line-height-s {
  line-height: 1.2 !important;
}

/* .table th,
.table td {
    width: 100%;
    display: block;
    vertical-align: top;
    border-top: none;
}

.table th {
    padding: 1em .5em .2em .5em;
    border-bottom: none;
    background-color: transparent;
    font-weight: normal;
}
.table th::after {
    content: "/";
    padding: 0 .5em;
}
.table td {
    padding: .2em .5em 1em .5em;
    border-bottom: none;
    background-color: transparent;
} */

.table th,
.table td {
    
    vertical-align: top;
}
.table th {
    width: 32%;
    padding: 1em 0.5em .5em 0;
    border-bottom: none;
    background-color: transparent;
    font-weight: normal;
}

.table td {
    padding: 1em 0 1em 0.5em;
    border-bottom: none;
    background-color: transparent;
}

.underline {
    text-decoration: underline;
}
.shadow {
    box-shadow: 0px 14px 46px 0px rgba(72, 72, 72, 0.07) !important;
}
.gmap iframe {
	width: 100%;
    height: 380px;
    max-height: 35vh;
    /* filter: grayscale(1); */
    border: 4px solid #e5e5e5;
}






/*     header     */


header {
    position: relative;
    z-index: 9950;
    width: 100%;
}
.headerLogo {
    width: calc(100% - 55px);
    max-width: 300px;
    font-size: 1em;
    margin-bottom: 0;
    margin-top: 14px;
}
.second-header-deco {
    position: relative;
    padding-bottom: 27%;
    background-size: 100% auto;
    background-image: url(../img/bg-town.webp);
    background-position: bottom right;
    background-repeat: no-repeat;
}
.second-header-deco::after {
    display: block;
    content: "";
    position: absolute;
    height: 4px;
    width: 100%;
    bottom: 10px;
    left: 0;
    background-color: #6FBA2C;
}


/*     menu     */


#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #2b3140;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  z-index: 999;
}
#overlay.active {
  opacity: 1;
  visibility: visible;
}

#menu-trigger-wrapper {
    display: block;
    padding: 10px 16px;
    z-index: 9990;
    position: fixed;
    top: 10px;
    right: 8px;
    background-color: #6FBA2C;
    border-radius: 50%;
    width: 54px;
    height: 54px;
    cursor: pointer;
}
.menu-trigger,
.menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
}
.menu-trigger {
    position: absolute;
    width: 24px;
    height: 14px;
    top: 20px;
}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  border-radius: 4px;
}
.menu-trigger span:nth-of-type(1) {
  top: 0;
}
.menu-trigger span:nth-of-type(2) {
  top: 6px;
}
.menu-trigger span:nth-of-type(3) {
    bottom: 0;
}

.menu-trigger span:nth-of-type(1) {
  animation: menu-bar01 .3s forwards;
}
@keyframes menu-bar01 {
  0% {
    transform: translateY(5.5px) rotate(45deg);
  }
  50% {
    transform: translateY(5.5px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
.menu-trigger span:nth-of-type(2) {
  transition: all .3s .3s;
}
.menu-trigger span:nth-of-type(3) {
  animation: menu-bar02 .1s forwards;
}
@keyframes menu-bar02 {
  0% {
    transform: translateY(-5.5px) rotate(-45deg);
  }
  50% {
    transform: translateY(-5.5px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
#menu-trigger-wrapper.active .menu-trigger span:nth-of-type(1) {
  animation: active-menu-bar01 .3s forwards;
    height: 2px;
}
@keyframes active-menu-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(5.5px) rotate(0);
  }
  100% {
    transform: translateY(5.5px) rotate(45deg);
  }
}
#menu-trigger-wrapper.active .menu-trigger span:nth-of-type(2) {
  opacity: 0;
}
#menu-trigger-wrapper.active .menu-trigger span:nth-of-type(3) {
  animation: active-menu-bar03 .3s forwards;
	width: 100%;
	left: 0;
    bottom: 1px;
}
@keyframes active-menu-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-5.5px) rotate(0);
  }
  100% {
    transform: translateY(-5.5px) rotate(-45deg);
  }
}

nav#mainMenu {
    opacity: 0;
    position: absolute;
    width: 100%;
    height: auto;
    min-height: 100vh;
    left: 0;
    top: -100vh;
    transition: 0.3s ease-in-out;
    z-index: -9980;
    /* background-color: #2b3140; */
    padding-top: 34px;
}
nav#mainMenu.active {
    opacity: 1;
    top: 0;
    z-index: 9980;
    position: fixed;
}
nav#mainMenu .container {
    height: 100vh;
    overflow-y: scroll;
    overscroll-behavior-y: contain;
}
nav#mainMenu ul {
    list-style-type: none;
    width: 100%;
    padding-left: 0;
    margin-top: 30px;
}
nav#mainMenu ul li a {
    width: 100%;
    display: inline-block;
    padding: .7em;
    color: #fdfdfb;
    text-align: center;
}
nav#mainMenu ul>li {
    border-bottom: 1px dashed #888;
}
#mainMenuLogo img {
    width: 100%;
    max-width: 400px;
}





/*     main visual     */
#topImgBox {
    background-image: url(../img/top-mv.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    margin-top: -150px;
    padding-top: 150px;
}
#topImgBox .container-fluid {
    padding-top: 110px;
    padding-bottom: 15px;
}
#mv-copy {
    width: 100%;
    max-width: 320px;
    margin-left: auto;
}






/*   footer   */

#footer-logo img {
    width: 100%;
    max-width: 370px;
}








/*   form   */

.formTable {
  width: 100%;
}
.formTable th, 
.formTable td {
  display: block;
  width: 100%;
  vertical-align: top;
}
.formTable th {
    font-weight: normal;
}
.formTable td {
  padding: 0 0 1.5em 0;
}
input[type="text"] ,
input[type="tel"],
input[type="email"],
textarea {
  width: 100%;
  border: 1px solid #bbb;
  padding: .5em 1em;
}
input[type="file"] {
    width: 100%;
}
input[type="text"] {
    width: 100%;
    max-width: 500px;
}
input[type="submit"] {
  border: 1px solid #fff;
  padding: 1em 2em;
  background-color: #8d8d8d;
  color: #FFFFFF;
  font-weight: bold;
  font-size: 1.1em;
  letter-spacing: inherit;
  width: 100%;
}
input[type="submit"]:hover {
  background-color: #6FBA2C;
}
input::placeholder,
textarea::placeholder {
  color: #aaa;
}
input:focus::placeholder,
textarea:focus::placeholder {
  color: transparent;
}
select {
  background-color: #fff;
  border: 1px solid #fff;
  padding: .5em;
}
input[type="checkbox"] {
  position: relative;
  width: 22px;
  height: 22px;
  border: 1px solid #666;
  vertical-align: middle;
}








/*   original   */

.text-green {
    color: #6FBA2C;
}
.border-green {
    border-color: #6FBA2C;
}
.font-large {
    font-size: 1.25rem;
    line-height: 1.6;
}
.text-shadow {
    text-shadow: 
            #fff 2px 0px 2px, #fff -2px 0px 2px,
            #fff 0px -2px 2px, #fff -2px 0px 2px,
            #fff 2px 2px 2px, #fff -2px 2px 2px,
            #fff 2px -2px 2px, #fff -2px -2px 2px,
            #fff 1px 2px 2px, #fff -1px 2px 2px,
            #fff 1px -2px 2px, #fff -1px -2px 2px,
            #fff 2px 1px 2px, #fff -2px 1px 2px,
            #fff 2px -1px 2px, #fff -2px -1px 2px,
            #fff 1px 1px 2px, #fff -1px 1px 2px,
            #fff 1px -1px 2px, #fff -1px -1px 2px;
}
.title-grad {
    position: relative;
}
.title-grad::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    margin-top: -5px;
    width: 100%;
    height: 14px;
    background: linear-gradient(to right, #52b332 0%,#d3de37 100%);
    z-index: -1;
}
.green-box {
    border-right: 2px solid #6FBA2C;
    border-left: 2px solid #6FBA2C;
    border-bottom: 2px solid #6FBA2C;
}
.lead-logo {
    width: 100%;
    max-width: 400px;
}
.word-break-keep {
    word-break: keep-all;
}
.bg-grey {
    background-color: #E6E6E6;
}
.btn-grey a {
    display: inline-block;
    width: 100%;
    padding: .5em 1em;
    background-color: #E6E6E6;
    color: #1A1A1A;
}
.btn-grey a:hover {
    background-color: #6FBA2C;
    color: #fff;
}
.mt-n3 {
    margin-top: -1rem;
}
.mt-n5 {
    margin-top: -3rem;
}










@media (min-width:576px){
	
}
@media (min-width:768px){
    body {
        font-size: 17px;
        line-height: 1.5em;
    }
    .letter-spacing-l {
        letter-spacing: .2em;
        line-height: 2;
    }
    .h1, h1 {
      font-size: 2.75rem;
    }
    .h2, h2 {
      font-size: 2.25rem;
    }
    .h3, h3 {
      font-size: 1.84rem;
    }
    .h4, h4 {
      font-size: 1.5rem;
    }
    .table th,
    .table td {
        display: table-cell;
        padding: .1em;
    }
    .table th {
        width: 25%;
        background-color: transparent;
    }
    .table th::after {
        content: "/";
        padding: 0 .5em;
    }
    .table-justify th {
        text-align:justify;
        text-align-last:justify;
    }
    #mv-copy {
        width: 80%;
        max-width: 400px;
    }
    footer ul li {
        width: auto;
    }
    footer ul.footer-menu li a {
        border: none;
    }
    .gmap iframe {
        max-height: none;
    }
    .formTable th, 
    .formTable td {
      display: table-cell;
    }
    .formTable th {
      width: 28%;
      text-align: center;
    }
    .formTable td {
      padding: 0 0 0.5em 0;
    }
    input[type="submit"] {
        width: 100%;
        max-width: 400px;
    }
    .table th::after {
        float: right;
    }
    .btn-grey a {
        width: 70%;
        max-width: 300px;
    }
    .second-header-deco {
        padding-bottom: 100px;
        background-size: auto 130px;
    }
    .mt-md-n4 {
        margin-top: -2rem;
    }
    .mt-md-n5 {
        margin-top: -3rem;
    }
}
@media (min-width:992px){
    h1.headerLogo {
        width: 100%;
        max-width: 470px;
        font-size: 1em;
        margin-bottom: 0;
    }
    #menu-trigger-wrapper {
        display: none;
    }
    #topImgBox .container-fluid {
        padding-top: 250px;
        padding-bottom: 20px;
    }
    #mv-copy {
        width: 40%;
        max-width: 600px;
    }
    
    #pcNav {
        font-size: 1.15rem;
        list-style: none;
        display: table;
        align-items: center;
        width: 100%;
        max-width: 750px;
        line-height: 1em;
        letter-spacing: 0;
        padding-left: 0;
    }
    #pcNav li {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
    #pcNav li a {
        display: block;
        width: 100%;
        padding: 1em .5em;
        color: #1A1A1A;
    }
    #pcNav li a:hover {
        color: #6FBA2C;
    }
    #pcNav li a.header-btn-arrow {
        padding-bottom: 20px;
        background-image: url(../img/icon-header-arrow-bottom.svg);
        background-position: center bottom;
        background-repeat: no-repeat;
    }
    #pcNav li a.header-btn-contact {
        background-color: #6FBA2C;
        color: #fff;
    }
    #pcNav li a.header-btn-contact:hover {
        color: #fff;
    }
    
    
}
@media (min-width: 1200px){
    .container, .container-lg, .container-md, .container-sm, .container-xl {
      max-width: 1200px;
    }
    .container-fluid {
        padding-right: 3em !important;
        padding-left: 3em !important;
    }
    h1.headerLogo {
        max-width: 550px;
    }
    .second-header-deco {
        padding-bottom: 120px;
        background-size: auto 190px;
    }
    
}
@media (min-width: 1300px){
    #pcNav li a {
        padding: 1em 1em;
    }
}
@media print {
    /* @page {
        margin: 0mm 5mm;
        size: A4 portrait;
    }
    body {
        width: 210mm;
        height: 297mm;
    } */
    .scroll-fade,
    .scroll-fade-order {
        opacity: 1 !important;
        visibility: visible !important;
    }
    .opacity0{
        opacity: 1;
    }
    .table td, .table th {
        background-color: transparent !important;
    }
}

