body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {padding: 0;margin: 0;}
a{text-decoration:none; outline:none!important;}
table {border-spacing: 0;}
fieldset,img {border: 0;}
html,body,div,article,section,nav,header,footer,input,textarea {-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
address,caption,cite,code,dfn,em,strong,th,var {font-weight: normal;font-style: normal;}
div,article,section{display:block; overflow:hidden;}
strong{font-weight: bold;}
ol,ul {list-style: none;margin:0;padding:0;}
caption,th {text-align: left;}
h1,h2,h3,h4,h5,h6 {font-weight: normal;font-size: 100%;margin:0;padding:0;}
q:before,q:after {content:'';}
abbr,acronym { border: 0;}

html{
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-size: 62.5%;
}
html,body{
  position:relative;
  height:100%;
  min-height:100%;
}
body{
  color: #333;
  background: #ede4c5;
  font-size: 2em;
  font-family: iroha-26tubaki-stdn, sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 3rem;
  position: relative;
}
a{color:#333; text-decoration:none;}
img{max-width:100%; vertical-align:bottom;}

@media screen and (min-width: 900px){
  body{
    font-size: 1.6rem;
    line-height: 2.2rem;
  }
  a:hover{
    transition: .2s;
  }
}

/* ----------------- common ------------------ */
#container{
  padding-top: 100px;
}
#btn-gnavi{
  position: fixed;
  top: 0;
  right: 20px;
  z-index: 40;
  overflow: visible;
  cursor: pointer;
}
#btn-gnavi img{
  width: 85px;
  height: 120px;
  background: url(../img/btn-gnavi.png) center top no-repeat;
  background-size: contain;
}
@media screen and (min-width: 900px){
  #btn-gnavi:hover img{
    animation: swing linear 3s infinite;
  }
}
@keyframes swing {
  0% {transform: rotate(0deg) translateX(0%);}
  25% {transform: rotate(10deg) translateX(-10%);}
  50% {transform: rotate(0deg) translateX(0%);}
  75% {transform: rotate(-10deg) translateX(10%);}
  100% {transform: rotate(0deg) translateX(0%);}
}

#gnavi{
  width: 500px;
  background: url(/img/bg-book_half.png) left bottom no-repeat;
  background-size: auto 800px;
  position: fixed;
  overflow: scroll;
  top: 0;
  right: 0;
  transform: translateX(100%) translateY(-10%);
  padding: 10px 0 30px;
  transition: all 1s cubic-bezier(0, 0, 0, 1);
  z-index: 39;
}
#gnavi.on{
  transform: translateX(0%) translateY(0%);
}
@media screen and (min-width: 900px){
  #gnavi{
    width: 450px;
    background-size: auto 800px;
  }
}
nav{
  padding-left: 20px;
}
nav li{
  display: block;
  text-align: center;
  background: url(../img/line-dot.png) left top repeat-x;
}
nav li:nth-child(2),
nav li:nth-child(5),
nav li:nth-child(7){
  background: url(../img/line-dot.png) left top repeat-x,url(../img/line-dot_h.png) left top repeat-y;
}
#logo{
  text-align: center;
}
#logo img{
  height: 32px;
  width: auto;
}
nav ul{
  display: flex;
  flex-wrap: wrap;
}
nav li{
  width: 50%;
}
nav li.wall,
nav li.tosns{
  width: 100%;
}
nav li.wall{
  display: grid;
  grid-template-rows: 1fr 1fr 1fr 1fr;
  grid-template-columns: 50% 50%;
  justify-content: center;
  align-items: center;
}
nav .mn{
  display: block;
  padding: 20px 10px;
}
nav p.mn{
  grid-row: 1 / 5;
  grid-column: 1 / 2;
}
nav .mns{
  width: auto;
  padding: 10px 15px 10px;
  background: url(../img/line-dot.png) left bottom repeat-x,url(../img/line-dot_h.png) left top repeat-y;
}
nav .mns:last-child{
  background: url(../img/line-dot_h.png) left top repeat-y;
}
nav .mn img{
  height: 20px;
  width: auto;
  margin: 5px auto 0;
  display: block;
}
nav .mns img{
  height: 17px;
  width: auto;
  margin: 0 auto;
  display: block;
}
nav li.tosns{
  padding-top: 10px;
}
nav li.tosns a{
  padding: 13px 10px;
  display: inline-block;
}

@media screen and (min-width: 900px){
  nav a:hover{
    opacity: .8;
   cursor: pointer; 
  }
}


footer{
  background-image: url(../img/bg-grass.png), url(../img/bg-home.png), url(../img/bg-tree.png);
  background-repeat: repeat-x, no-repeat, no-repeat;
  background-position: right 330px, left 30vw top, top right 80vw;
  min-height: 840px;
  text-align: center;
  padding: 20px 0;
  position: relative;
}
footer .tocontact{
  margin: 270px auto 50px;
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
footer .mailbox::before{
  content: "";
  width: 200px;
  height: 85px;
  background: url(../img/il-contact.png) center top no-repeat;
  display: block;
  -webkit-animation: hopping2 1s linear 0s infinite alternate;
  animation: hopping2 1s linear 0s infinite alternate;
}
footer .tocontact .txt{
  margin-left: -30px;
  text-shadow: 0 0 5px #cbe65a, 0 0 10px #cbe65a;
}
footer .tocontact p{
  margin-bottom: 10px;
}
footer .tocontact .txt a{
  text-decoration: underline;
}
footer .tosns{
  opacity: .9;
  padding-right: 20px;
}
footer .tosns a{
  display: inline-block;
  vertical-align: middle;
  margin-left: 20px;
}

#copy{
  color: #634729;
  font-size:1.1rem;
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 900px){
  footer{
    min-height: 650px;
    background-position: center 320px, left 60vw top, top right 92vw;
  }
  footer .tocontact .txt{
    text-shadow: none;
  }
  footer .tocontact{
    margin: 80px 20vw 50px auto;
    align-items: center;
  }
  footer .tocontact small,
  footer .tocontact small a{
    color: #988559;
  }
}
.btn{
  display: block;
  text-align: center;
}
.btn a{
  color: #333;
  background: #fff;
  text-align: center;
  display: inline-block;
  min-width: 200px;
  position: relative;
  padding: 20px 25px;
  margin: 20px auto;
  border-radius: 10px;
}
.back{
  display: block;
  text-align: left;
  background: url(../img/il-prairie1.png) left -50px top no-repeat,url(../img/il-prairie2.png) left -110px top no-repeat;
  background-size: contain;
  height: 150px;
  margin: -50px 0;
  transition: .3s;
}
.back a{
  display: block;
}
.back a p{
  color: #333;
  background: #fff;
  text-align: center;
  display: inline-block;
  min-width: 200px;
  position: relative;
  border-radius: 10px;
  min-width: auto;
  padding: 10px 15px;
  margin: 45px auto 45px 85px;
  transition: .7s;
}
.back a p::before{
  content: "";
  border: 8px solid transparent;
  border-right-color: #fff;
  display: inline-block;
  position: absolute;
  top: calc(50% - 8px);
  left: -15px;
  transition: .7s;
}
.back small{
  color: #988559;
  font-size: smaller;
  display: block;
}
@media screen and (min-width: 900px){
  .btn a:hover{
  }
  .back:hover{
    background: url(../img/il-prairie1.png) left -30px top no-repeat,url(../img/il-prairie2.png) left -40px top no-repeat;
    background-size: contain;
  }
  .back a:hover p{
    background:  #988559;
    color: #fff;
  }
  .back a:hover p::before{
    border-right-color: #988559;
  }
  .back a:hover small{
    color: #fff;
  }
}
h2{
  font-size: 3rem;
  line-height: 3.8rem;
}
h3{
  font-size: 2.2rem;
  line-height: 3rem;
}
@media screen and (min-width: 900px){
  h2{
    font-size: 2.1rem;
    line-height: 3rem;
  }
  h3{
    font-size: 1.8rem;
    line-height: 2.5rem;
  }
}

a.look:hover::before{
  content:"";
  display: block;
  color: #fff;
  width: 150px;
  height: 50px;
  background: url(../img/li-look.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  top: -25px;
  left: calc(50% - 75px);
  z-index: 5;
  -webkit-animation: hopping 1s linear 0s infinite alternate;
  animation: hopping 1s linear 0s infinite alternate;
}
@-webkit-keyframes hopping {
  0%   { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
  25%  { -webkit-transform: scale(1.1, 0.9) translate(0%, 2%); }
  50%  { -webkit-transform: scale(0.9, 1.1) translate(0%, -10%); }
  75%  { -webkit-transform: scale(1.1, 0.9) translate(0%, 2%); }
  100% { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
}
@keyframes hopping {
  0%   { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
  25%  { -webkit-transform: scale(1.1, 0.9) translate(0%, 2%); }
  50%  { -webkit-transform: scale(0.9, 1.1) translate(0%, -10%); }
  75%  { -webkit-transform: scale(1.1, 0.9) translate(0%, 2%); }
  100% { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
}

@-webkit-keyframes hopping2 {
  0%   { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
  25%  { -webkit-transform: scale(1.01, 0.99) translate(0%, 1%); }
  50%  { -webkit-transform: scale(0.99, 1.01) translate(0%, -2%); }
  75%  { -webkit-transform: scale(1.01, 0.99) translate(0%, 1%); }
  100% { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
}
@keyframes hopping2 {
  0%   { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
  25%  { -webkit-transform: scale(1.01, 0.99) translate(0%, 1%); }
  50%  { -webkit-transform: scale(0.99, 1.01) translate(0%, -2%); }
  75%  { -webkit-transform: scale(1.01, 0.99) translate(0%, 1%); }
  100% { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
}


#yearlyttl{
    color: #988559;
    font-size: 2.6rem;
    font-weight: bold;
    text-align: center;
    margin: 0 auto;
    background: url(img/columncats.png) left 84vw bottom 0 no-repeat,url(img/columncats.png) left -30vw bottom 0 no-repeat;
    background-size: contain;
}
#yearlyttl small{
    font-size: 1.5rem;
    display: block;
    font-weight: normal;
}
@media screen and (min-width: 900px){
  #yearlyttl{
      font-size: 2.2rem;
      background: url(img/columncats.png) right 4rem bottom 0 no-repeat;
      background-size: contain;
  }
  #yearlyttl small{
      font-size: 1.25rem;
  }
}
#yearly{
    height: auto;
    width: 100vw;
    overflow: scroll;
}
#yearly .wrap{
    display: block;
    width: 1600px;
    height: 320px;
    background-color: #fff;
    background-image: linear-gradient(90deg, transparent 99px, #ddd 100px);
    background-size: 100px;
    border-top: 10px solid #988559;
    border-bottom: 10px solid #988559;
    position: relative;
}
#yearly .wrap::before{
    content: "";
    position: absolute;
    left: 1199px;
    top: 0;
    display: block;
    width: 2px;
    height: 300px;
    background: rgb(138 119 76 / 50%);
}
/*
#yearly .wrap::after{
    content: "";
    position: absolute;
    left: 2398px;
    top: 0;
    display: block;
    width: 2px;
    height: 340px;
    background: rgb(138 119 76 / 50%);
}*/
#yearly .month{
    position: absolute;
    top: .3rem;
    left: 0;
}
#yearly .month p{
    color: #988559;
    width: 100px;
    display: inline-block;
    vertical-align: middle;
    line-height: 1.8rem;
    font-weight: 700;
    text-align: center;
}
#yearly .month small{
    display: block;
}
.blockarea section{
    position: absolute;
    top: 6rem;
    height: 2.5rem;
    overflow: visible;
    text-align: left;
}
.blockarea section div{
    display: block;
    height: 1rem;
    background: #988559;
}
.blockarea section span{
    background: #988559;
    color: #fff;
    font-size: 1.3rem;
    text-shadow: 0 0 5px #7a6747;
    border-radius: 0 0 1rem 1rem;
    display: inline-block;
    vertical-align: top;
    margin: -0.5rem 0.5rem 0 0;
    padding: 0.2rem 0.5rem;
}
.blockarea section a,
.blockarea section p{
    color: #988559;
    font-weight: 700;
    display: inline-block;
    vertical-align: top;
    line-height: 2.4rem;
}

/* ----------------- inquiry ------------------ */


#inquiry dl{
  display: block;
  padding: 8px 0;
  width: 90vw;
  margin: 0 auto;
  font-size: 2.4rem;
}
#inquiry dt{
  text-align: left;
  padding: 8px 0;
}
#inquiry dd small{
  display: block;
}

#inquiry input[type='text'],
#inquiry input[type='tel'],
#inquiry input[type='email'],
#inquiry input[type='date'],
#inquiry select,
#inquiry textarea{
  background: #fff;
  width: 100%;
  padding: 10px;
  font-size: 2.4rem;
  border: 1px solid #a2d14e;
  border-radius: 7px;
}
input[type="date"]{
    position: relative;
}
input[type="date"]::-webkit-inner-spin-button{
    -webkit-appearance: none;
}
input[type="date"]::-webkit-clear-button{
    -webkit-appearance: none;
}
input[type=date]::-webkit-calendar-picker-indicator {
    position: absolute;
    width: 100%;
    height: 100%;
    top:0;
    left:-20px;
    opacity: 0;
}

#inquiry input[type='submit']{
  color: #fff;
  background: #333;
  font-size: 2.4rem;
  border: none;
  display: block;
  width: 250px;
  height: 60px;
  line-height: 60px;
  position: relative;
  text-align: center;
  padding: 0 25px;
  margin: 40px auto;
  border-radius: 5px;
}
.screen-reader-response,
.wpcf7-response-output{
  background: none;
  color: #f00;
}
.screen-reader-response ul{
  display: none;
}
.wpcf7-not-valid-tip{
  display: block;
  font-size: smaller!important;
  color: #f00;
  text-align: left;
}

.grecaptcha-badge { visibility: hidden; }
.recap{
  font-size: 1.3rem;
  text-align: left;
  line-height: 1.8rem;
  width: 90vw;
  margin: 0 auto 50px;
  opacity: .8;
}
.recap a{
  text-decoration: underline;
}

@media screen and (min-width: 900px){
  #inquiry dl{
    display: flex;
    padding: 8px 0;
    width: 100%;
    font-size: 1.4rem;
  }
  #inquiry dt{
    width: 140px;
    text-align: right;
  }
  #inquiry dd{
    margin-left: 15px;
  }
  #inquiry input[type='text'],
  #inquiry input[type='tel'],
  #inquiry input[type='email'],
  #inquiry input[type='date'],
  #inquiry select,
  #inquiry textarea{
    font-size: 1.8rem;
  }
  #inquiry dl span{
    font-size: 1.5rem;
    line-height: 2rem;
  }
  #inquiry input[type='submit']:hover{
    cursor: pointer;
  }
  #inquiry a.atel{
    pointer-events: none;
  }
  .recap{
    width: 360px;
  }
}
/* ----------------- not found / thanks ------------------ */
#thanks,
#not-found{
  text-align: center;
}
#thanks article,
#not-found article{
  display: block;
  width: 90vw;
  max-width: 700px;
  margin: 100px auto;
}
#not-found .sorry{
  width: 370px;
  height: auto;
  margin: 10px auto 20px;
}
#thanks .thanks{
  width: auto;
  height: 280px;
  margin: 10px auto 20px;
}
#thanks h3,
#not-found h3{
  font-size: 2.4rem;
  margin: 0 auto 20px;
}
#not-found p{
  text-align: left;
}
#thanks article small,
#not-found article small{
  color: #988559;
  display: block;
  margin: 8px auto;
}

@media screen and (min-width: 900px){
  #thanks p,
  #not-found p{
    text-align: center;
  }
}




/* ---------------------------------------------------------------------------------------- */
@media screen and (min-width: 1150px){
}
