/*  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 h1 {
    width: 80%;
    position: absolute;
    left: 8%;
    top: 40%;
    color: #fff;
}
.kv h1 span {
  font-size: 20px;
  letter-spacing: 0.6px;
}
.kv h1 img {
    width: 100%;
}

.slide-kv picture {
  display: unset!important;
}
.slide-kv img {
  width: 100%;
}

.slick-dotted.slick-slider{
  margin: 0;
}

.slick-dots {
  bottom: 0;
  left: 16px;
  width: unset;
}

.slick-dots li:first-child {
  margin: 0 30px 0 0;
}

.slick-dots li:not(.slick-dots li:first-child) {
  margin: 30px 0 6px;
}

.slick-dots li button:before {
  content: "";
  width: 50px;
  height: 2px;
  background: #fff;
  opacity: 1;
  bottom: 0;
}

.slick-dots li.slick-active button:before {
  background: #bb3105;
}
.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;
}
.lead .lead_top {
    padding: 0 1.5rem;
}
.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: 5rem;
}
.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;
}
.lead_list {
    margin: 2.5rem auto;
    display: flex;
    flex-direction: column;
        gap: 2.5rem;
    }
.lead_box {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.lead_box:first-child {
    background: #FFFCF6;
    display: flex;
}
.lead_text {
    padding: 0 1.5rem;
}
.lead_text p {
    text-align: left;
    font-size: 16px;
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 1.6px;
    padding: 0;
    }
.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 {
    background: #fff;
    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 {
    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 {
    font-family: "Noto Sans JP";
    color: #7C6803;
    border: solid 1px #7C6803;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 1.6px;
    padding: 1rem;
    margin-top: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* ^ lead ^ */

/* web・print-card・banner*/
.web {
    margin-bottom: 3rem;
}
.web h4, .print-card h4, .banner a {
    background-image: url("../img/bg_01.webp");
    background-repeat: no-repeat;
    background-size:cover;
    background-position: center;
    height: 200px;
    padding-top: 2.5rem;
    margin-bottom: 2.5rem;
    line-height: 100%;
}
.web .deco::before, .print-card .deco::before{
    width: 90%;
    height: 50%;
    bottom: -48px;
    left: 4%;
}
.banner .deco::before {
    display: none;
}
.print-card {
    margin-bottom: 3rem;
}
.print-card h4 {
    background-image: url("../img/bg_02.webp");
}
.banner .left {
    background-image: url("../img/bg_03.webp");
}
.banner .right {
    background-image: url("../img/bg_04.webp");
}
.banner {
    display: flex;
    flex-direction: column;
}
.banner a{
    margin: 0;
    height: 160px;
    background-size: cover;
    padding-top: 2rem;
    text-decoration: none;
    color: #222;
}

/* ^ contact ^ */

/* 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 .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;
        background: #fff;
        padding: 1.5rem 5rem;
        margin: 0;
        z-index: 999;
        gap: 5rem;
        opacity: 0.8;
    }
  .kv h1 {
      width: 30%;
      color: #fff;
        left: 34%;
        top: 40%;
  }

  .kv h1 span {
    font-size: 40px;
    letter-spacing: 1.2px;
  }

  .slick-dots {
    left: 20%;
    bottom: 8%;
  }
  .slick-list {
      border-radius: 16px 0px 0px 16px;
  }

  /* ^ header ^ */

  /* main */

    .lead {
        margin: 5rem 0 0;
    }
    .lead .lead_top {
        padding: 0;
    }
    .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: 7.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%;
    }
    .lead_list {
        margin: 5rem auto;
        gap: 5rem;
    }
    .lead_box {
        display: flex;
        flex-direction: row;
        gap: 2.5rem;
    }
    .lead_box:first-child {
        
        flex-direction: row;
    }
    .lead_text,.lead_img {
        width: 50%;
    }
    .lead_text {
        width: 550px;
        padding: 0;
    }
    .lead_text p {
        margin: 2.5rem 0 0;
        width: 53%;
    }
    .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;
    }
    .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;
    }

  /* web */
    .web {
        margin: 130px 0 0;
    }
    .web .deco::before, .print-card .deco::before{
        width: 20%;
        left: 40%
    }
    .print-card {
        margin: 130px 0;
    }
    .banner {
        flex-direction: row;
    }
    .banner a{
        width: 50%;
        height: 380px;
        padding-top: 7.5rem;
        font-size: 36px;
    }
    /* footer */
    footer {
        padding-top: 36px;
    }
    footer .footer_list {
        margin: 0 auto 1.5rem;
        flex-direction: row;
        align-items: center;
        gap: 40px;
    }
    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;
}
