/*  all */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  color: #333;
  font-family: "Noto Serif JP",YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
  overflow-x: hidden;
}

ul, ol, li {
  list-style: none;
  padding-left: 0;
}

img {
    display: block;
    width: 100%;
}

a:hover {
  opacity: 0.7;
}

/* ^ all ^ */



/* page */
.sp-only {
  display: initial !important;
}
.pc-only {
  display: none !important;
}
.title {
    color: #3D901C;
    text-align: center;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 56px */
    letter-spacing: 2.8px;
}
.title::after {
    content: url("../img/title_line.webp");
    display: block;
    line-height: 0.8;
}

.m-title {
  font-size: 2rem;
  font-weight: 400;
  line-height: 54.4px;
  letter-spacing: -1px;
  text-align: center;
}

.m-title::after {
    content: url("../img/title_line.webp");
    display: block;
    line-height: 0.8;
    text-align: center;
}

.item {
  max-width: 338px;
}

.item:last-of-type .m-title {
  margin-top: 40px;
}

.item > div {
  display: flex;
  flex-direction: column;
    margin-top: 1.5rem;
}

h5 {
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  letter-spacing: 0.72px;
}
.button_list {
    width: 100%;
    display: flex;
    gap: 1.5rem;
    padding-bottom: 5rem;
    flex-direction: column;
}
.button {
        width: 100%;
    }

.white_link {
    color: #3D901C!important;
    background: #fff!important;
    border: 2px solid #3D901C;
}

.i-link {
  display: flex;
  padding: 16px 0;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-decoration: none;
  border-radius: 50px;
  background: #3D901C;
}

.fadeBlock {
	opacity: 0;
	transition: all 1s;
}

.fadeBlock.fadeIn {
	opacity: 1;
}

.fadeBottom {
	transform: translateY(100px);
}

.fadeBottom.fadeIn {
	transform: translateY(0);
}

/* ^ page ^ */

/* header */
.kv {
    width: 100%;
    position: relative;
    margin-left: auto;
}
.kv p {
    margin: 0 1.5rem;
}
.header {
    max-width: 1080px;
    margin: 1.5rem auto;
    display:none;
}
.header a {
    color: #222;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    letter-spacing: -1.2px;
    text-decoration:none;
    
}

/* ^ header ^ */

/* main */

.lead {
    padding: 2.5rem 0 5rem;
}
.lead ul {
    max-width: 1080px;
    margin: 0 1rem;
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr 1fr;
    gap: 2rem 1rem;
}
.lead a {
    font-size: 14px;
    position: relative;
    border-bottom: solid 1px #7C6803;
    padding-bottom: 8px;
    text-decoration: none;
    color: #222;
}
.lead a::after {
    position: absolute;
    border-bottom: 2px solid #222;
    border-right: 2px solid #222;
    content: "";
    height: 6px;
    width: 6px;
    right: 6px;
    bottom: 1rem;
    transform: rotate(45deg);
}

.lead h2 {
    color: #7C6803;
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    line-height: 200%;
    letter-spacing: 6px;
}
.lead h3 {
    color: #7C6803;
    text-align: center;
    font-size: 2rem;
    font-weight: 400;
    line-height: 200%; /* 72px */
    letter-spacing: 3.6px;
}
.deco {
    position: relative;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 160%;
    letter-spacing: 2.4px;
    margin-bottom: 2rem;
}
.deco::before {
    position: absolute;
    content: "";
    background-image: url(../img/title_icon.webp);
    background-size: contain;
    background-repeat: no-repeat;
    width: 100%;
    height: 13%;
    left: 2%;
    bottom: -28%;
}
.deco span {
    color: #7C6803;
    font-family: "Pinyon Script";
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 200%;
    }
.lead p {
    font-weight: 400;
    text-align: center;
    line-height: 1.7;
    letter-spacing: -1px;
    margin: 0.5rem 0 2.5rem;
}
.benefits {
    margin: 5rem 0;
}
.benefits .lead_box:first-child {
    flex-direction: column-reverse;
    background: #FFF8F9;
    padding-bottom: 2.5rem;
}
.benefits .lead_text {
    margin: 0 1.5rem;
    padding: 0;
}
.benefits .conts_item-text h3 {
    margin-bottom: 1.5rem;
}
/* ^ lead ^ */

/* contents */

.conts_list {
    max-width: 1080px;
    padding: 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.conts_list .number {
    font-size: 1rem;
    line-height: 1.5;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}
.conts_list .number span {
    color: #7C6803;
    font-size: 30px;
    width: 50px;
    height: 50px;
    padding: 0 1rem;
    border: solid 1px #7C6803;
    display: flex;
    justify-content: center;
    align-items: center;
}
.conts_box__center{
    display: flex;
    justify-content: center;
}
.conts_box {
    display: flex;
    flex-direction: column;
    margin-bottom: 30px;
}
.conts_item-img {
    border-bottom: solid 1px #7C6803;
    padding-bottom: 2rem;
}
.conts_item-text {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.conts_item-text h3 {
    color: #222;
    font-size: 1rem;
    font-weight: 700;
    line-height: 160%;
    letter-spacing: 1.6px;
}
.conts_item-text h3 span{
    color: #7C6803;
    font-family: "Pinyon Script";
    font-size: 1rem;
    font-weight: 400;
}
.conts_item-text h4 {
    position: relative;
    font-weight: 400;
    letter-spacing: 1.6px;
    padding-left: 1rem;
}
.conts_item-text h4::before{
    position: absolute;
    content: "";
    background: #7C6803;
    transform: rotate(45deg);
    width: 6px;
    height: 6px;
    left: 0;
    top: 0.6rem;  
}
.conts_item-text p {
    text-align: left;
    letter-spacing: 1.2px;
    margin: 0;
}
.conts_item-text p span {
    font-size: 13px;
    letter-spacing: 1.2px;
}
.conts_item-text a, .stay a {
    font-family: "Noto Sans JP";
    color: #7C6803;
    border: solid 1px #7C6803;
    background: #fff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 1.6px;
    padding: 1rem;
    margin-top: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* restaurant・stay */

.restaurant {
    padding: 2.5rem 0;
}
.restaurant .inner{
    background: #FFFCF6;
}
.restaurant .inner .top {
    padding: 2.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.restaurant h3, .stay h3 {
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 160%;
    letter-spacing: 2.4px;
    text-align: center;
}
.restaurant p {
    font-size: 1rem;
    text-align: center;
}
.restaurant p span {
    font-size: 13px;
}
.restaurant .bottom {
    max-width: 1080px;
    margin: 2.5rem 0;
}
.restaurant .bottom .number {
    font-size: 1.1rem;
}
.stay {
    margin-top: 5rem;
}
.stay .inner{
    background: #FFF8F9;
    padding: 2rem 0;
}
.stay h3 {
    padding-bottom: 2rem;
}
.stay .plan_conts {
    margin: 4rem 1rem;
    padding: 2rem 1rem 0;
    border: solid 1px #7C6803;
    border-radius: 8px;
}
.stay .plan_conts p {
    line-height: 160%;
    letter-spacing: 1.6px;
}
.stay .plan_list {
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.stay .plan_list .plan_box {
    
}
.global-member .inner{
    background: #FFFCF6;
    padding: 2rem 0 10px;
}
.conts_list h6 {
    font-size: 13px;
    text-align: center;
    margin-top: 2rem;
}
.info_list li{
    position: relative;
    padding-left: 1.5rem;
}
.info_list li::before{
    position: absolute;
    content: "※";
    left: 0;
}

.insta ul {
    max-width: 1080px;
    margin: 5rem 1rem 0;
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
    gap: 1rem;
}
.insta a {
    font-size: 14px;
    position: relative;
    border: solid 1px #7C6803;
    padding: 1rem 0.5rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    text-decoration: none;
    color: #222;
    gap: 0.8rem;
}
.insta a img {
    width: 60px;
}
.insta a::after {
    position: absolute;
    border-bottom: 2px solid #7C6803;
    border-right: 2px solid #7C6803;
    content: "";
    height: 8px;
    width: 8px;
    right: 16px;
    bottom: 45%;
    transform: rotate(-45deg);
}

/* footer */
footer {
    padding-top: 36px;
}
footer .footer_list {
    display: flex;
    max-width: 1080px;
    flex-direction: column;
    margin: 0 1.5rem 2rem;
    gap: 1.5rem;
}
footer .footer_box {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
footer .logo_img {
    width: 100%;
}
footer .insta_img {
    width: 25%;
}

footer h3 {
  font-size: 24px;
  font-weight: 400;
  line-height: 27.2px;
  letter-spacing: 3.12px;
    padding-bottom: 1rem;
}

footer address {
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 27.2px;
  letter-spacing: 2.08px;
  margin-bottom: 40px;
}

.ft-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 343px;
  height: 70px;
  background: #fff;
  border-radius: 36px;
  text-decoration: none;
  color: #414141;
  font-size: 20px;
  font-weight: 600;
  line-height: 40.8px;
  letter-spacing: 0.6px;
  margin-bottom: 40px;
}

footer nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 32px 0 48px;
}

footer nav a {
  width: 343px;
  text-decoration: none;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 16px;
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
}

.copyright {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  background: #FFFCF6;
  color: #000;
  text-align: center;
  font-size: 12px;
  font-weight: 300;
  line-height: 15.2px;
  letter-spacing: 0.36px;
  padding: 24px 0;
}

.scroll-btn {
  width: 60px;
  height: 60px;
  border-radius: 5px;
  background: #7C6803;
  position: sticky;
  left: 100%;
  bottom: 24px;
  transform: translate(-50%);
  color: #fff;
  font-size: 14px;
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
}
.scroll-btn::before {
  content: "";
  width: 10px;
  height: 10px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(-45deg);
}

/* ^ footer ^ */

@media (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
  .pc-only {
    display: initial !important;
  }
  /* page */

  .title {
    font-size: 56px;
    }
  .m-title {
    margin-top: 0;
    font-size: 40px;
    letter-spacing: 1.2px;
  }
    .r-title {
        width: 28%;
        margin-top: -32px;
    }

  .m-title::after {
    
  }
  .i-link {
    margin-top: auto;
    width: 450px;
    font-size: 20px;
    letter-spacing: 0.72px;
  }
    .item > div {
    margin-top: 0;
    }
    .button_list {
        width: auto;
        display: flex;
        gap: 1.5rem;
        padding-bottom: 5rem;
        flex-direction: row;
    }
    .button {
        width: auto;
    }

  /* ^ page ^ */

  /* header */
    header {
        margin: 0!important;
    }
    .header {
        position: fixed;
        width: 100%;
        max-width: revert;
        display: flex;
        justify-content: center;
        align-items: center;
        background: #fff;
        padding: 1.5rem 5rem;
        margin: 0;
        z-index: 999;
        gap: 5rem;
        opacity: 0.8;
    }
  .kv p {
        width: 42%;
        margin: 5rem auto 0;
        text-align: center;
        line-height: 200%;
        letter-spacing: 1.6px;
    }

  /* ^ header ^ */

  /* main */

    .lead {
        padding: 7.5rem 0 0;
    }
    .lead ul {
        margin: 0 auto;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 5rem;
    }
    .lead a {
        font-size: 1rem;
    }
    .lead .lead_top p {
        margin-bottom: 5rem;
    }
    .lead h2 {
        font-size: 20px;
        letter-spacing: 7px;
    }
    .lead h3 {
        font-size: 2rem;
    }
    .lead p {
        margin: 1rem 0 0;
    }
    .deco {
        line-height: 120%;
        margin-bottom: 2.5rem;
    }
    .deco::before {
        width: 18.5%;
        height: 50%;
        left: 41%;
        bottom: -72px;
    }
    .deco span {
        color: #7C6803;
        font-family: "Pinyon Script";
        font-size: 24px;
        font-weight: 400;
        line-height: 200%;
    }
    .benefits .lead_text {
        width: 50%;
    }
    .benefits .conts_item-text h3 {
        font-size: 1.5rem;
        font-weight: 400;
        text-align: center;
        margin-top: 2.5rem;
    }
    .benefits .lead_img {
        width: 50%;
    }
    .benefits .inner {
        width: 450px;
        margin-left: auto;
    }
    .benefits .lead_box:first-child {
        flex-direction: row;
        padding-bottom: 0;
    }
    .lead_text p {
        width: 100%;
    }
    /* ^ lead ^ */
    
    /* ^ contents ^ */
    
    .conts_list {
        margin: 0 auto 7.5rem;
    }
    .conts_list .number {
        font-size: 1.5rem;
    }
    .conts_box {
        flex-direction: row;
    }
    .conts_item-img {
        width: 36%;
        border-right: solid 1px #7C6803;
        border-bottom: 0;
        padding: 0 2.5rem 0 0;
    }
    .conts_item-text {
        /* width: 64%; */
        margin: 8px 0;
        padding-left: 1.5rem;
    }
    .conts_item-text h3 {
        font-size: 1rem;
        text-align: left;
    }
    .conts_item-text a {
        width: 400px;
    }
    .conts_item-text p {
        line-height: 200%;
    }
    
    /* restaurant・stay */
    .restaurant {
        padding: 7.5rem 0 2.5rem;
    }
    .restaurant .deco, .stay .deco, .global-member .deco, .other .deco {
        font-size: 36px;
    }
    .restaurant h3, .stay h3 {
        margin-bottom: 8px;
    }
    .restaurant .conts_item-img, .restaurant .conts_item-text {
        width: 50%;
    }
    .restaurant .bottom {
        max-width: 1080px;
        margin: 5rem auto 0;
    }
    .stay {
        margin-top: 7.5rem;
    }
    .stay .inner {
        padding: 2.5rem 0;
    }
    .stay h3 {
        padding-bottom: 0.5rem;
    }
    .stay .plan_conts {
        max-width: 1080px;
        margin: 2.5rem auto;
        padding: 2rem 1.5rem 0
    }
    .stay .plan_conts p {
        text-align: center;
        line-height: 200%;
    }
    .stay .plan_list {
        flex-direction: row;
    }
    .global-member {
        margin-top: 7.5rem;
    }
    .global-member .inner{
        background: #FFFCF6;
        padding: 2.5rem 0 10px;
    }
    .other {
        margin-top: 7.5rem;
    }
    .other-img {
        margin: 7.5rem auto 10rem;
        width: 88%;
    }
    .insta ul {
        margin: 0 auto;
        grid-template-columns: 1fr 1fr;
    }
    .insta a {
        gap: 2rem;
        padding: 1.5rem 2.5rem;
    }
    .insta a::after {
        right: 40px;
    }
    
    
    /* footer */
    footer {
        padding-top: 36px;
    }
    footer .footer_list {
        margin: 0 auto 1.5rem;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 40px;
    }
    footer .footer_box {
        flex-direction: row;
        gap: 2.5rem;
    }
    footer .logo_img {
        width: 32%;
    }
    footer h2 {
        font-size: 1rem;
    }
    footer p {
        font-size: 13px;
    }
    footer p span{
        font-size: 10px;
    }
    footer .insta_img {
        width: 50px;
    }

.copyright {
  padding: 16px 0;
}

/* ^ footer ^ */

}

/*====================================*/
/* ハンバーガーメニュー */
/*====================================*/
.hamburger_menu {
  display: block;
  position: fixed;
  top: 0;
  left: -300px;
  bottom: 0;
  width: 300px;
  background: #ffffff;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transition: all .5s;
  z-index: 3;
  opacity: 0;
}
.open .hamburger_menu {
  left: 0;
  opacity: 1;
}
.hamburger_menu .inner {
  padding: 25px;
}
.hamburger_menu .inner ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hamburger_menu .inner ul li {
  position: relative;
  margin: 0;
  border-bottom: 1px solid #333;
}
.hamburger_menu .inner ul li a {
  display: block;
  color: #333;
  font-size: 14px;
  padding: 1em;
  text-decoration: none;
  transition-duration: 0.2s;
}
.hamburger_menu .inner ul li a:hover {
  background: #e4e4e4;
}
@media screen and (max-width: 767px) {
  .hamburger_menu {
    left: -290px;
    width: 290px;
  }
}
/*============
.toggle_btn
=============*/
.toggle_btn {
    display: inline;
    position: fixed;
    color: #222;
    font-size: 24px;
    top: 22px;
    right: 24px;
    width: 30px;
    height: 30px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
}
.toggle_btn span {
  display: block;
  position: absolute;
  left: 0;
  width: 30px;
  height: 3px;
  background-color: #7C6803;
  border-radius: 4px;
  transition: all .5s;
}
.toggle_btn span:nth-child(1) {
  top: 4px;
}
.toggle_btn span:nth-child(2) {
  top: 14px;
}
.toggle_btn span:nth-child(3) {
  bottom: 4px;
}
.open .toggle_btn span {
  background-color: #fff;
}
.open .toggle_btn span:nth-child(1) {
  -webkit-transform: translateY(10px) rotate(-315deg);
  transform: translateY(10px) rotate(-315deg);
}
.open .toggle_btn span:nth-child(2) {
  opacity: 0;
}
.open .toggle_btn span:nth-child(3) {
  -webkit-transform: translateY(-10px) rotate(315deg);
  transform: translateY(-10px) rotate(315deg);
}
/*============
#link
=============*/
.link_btn {
    position: relative;
    top: auto;
    right: auto;
    height: auto;
}
.link_list{
    margin-top: 3rem;
}
.link_list a {
    text-decoration:none;
}
.link_list a p {
    margin-bottom: 2rem;
}
.link_list p::before {
    display: none!important;
}
/*============
#mask
=============*/
#mask {
  display: none;
  transition: all .5s;
}
.open #mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .8;
  z-index: 2;
  cursor: pointer;
}
