:root {
  --color-bg: #fcfce9;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

html.no_scroll {
  overflow: hidden;
}

body {
  color: #3c3c3c;
  font-family: '游ゴシック体', YuGothic, '游ゴシック', 'Yu Gothic', 'メイリオ', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif;
  font-size: 1.4rem;
  line-height: 1;
}

body.sp_font {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.yu_mincho {
  font-family: '游明朝体', 'Yu Mincho', YuMincho, 'ヒラギノ明朝 Pro', 'Hiragino Mincho Pro', 'MS P明朝', 'MS PMincho', sans-serif;
}

.noto_sans {
  font-family: 'Noto Sans JP', sans-serif;
}

.header {
  background-color: #fff;
  margin: 0 auto;
  padding: .729167vw 0 .833333vw;
  z-index: 2;
}

.header_title {
  max-width: 7.34375vw;
  margin: 0 auto;
  width: 100%;
}

.header_title_link {
  display: block;
}

main {
  background-color: #fff;
  margin: 0 auto;
  max-width: 100vw;
}

.mv {
  background-image: url("../img/mv_img.jpg");
  background-size: 100vw;
  background-position: center top;
  background-repeat: no-repeat;
  position: relative;
}

.mv::after {
  background-image: url("../img/mv_icon.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: .4% 2.2% 0 auto;
  margin: auto;
  height: 15.78125vw;
  width: .989583vw;
}

.mv_inner {
  max-width: 68.75vw;
  margin: 0 auto;
  width: 90%;
}

.mv_item {
  padding: 34% 0 24.4%;
  width: 38.863636%;
}

.mv_item_head {
  margin: 0 0 6%;
}

.mv_item_subHead {
  color: #fff;
  font-size: 1.614583vw;
  font-weight: bold;
  line-height: 1.6em;
  margin: 0 0 2%;
}

.mv_item_text {
  color: #fff;
  font-size: 1.041667vw;
  font-weight: bold;
  line-height: 1.8em;
}

.container {
  max-width: 68.75vw;
  margin: 0 auto;
  width: 90%;
}

.introduce {
  background-color: #142400;
}

.introduce_items {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.introduce_item {
  margin: -1% 0 1%;
  width: 50%;
}

.introduce_item_head {
  margin: 0 0 8.4%;
  width: 77.728%;
}

.introduce_item_text {
  font-feature-settings: "palt";
  color: #fff;
  font-size: 1.041667vw;
  font-weight: bold;
  letter-spacing: 0.052083vw;
  line-height: 2.3em;
}

.introduce_img {
  position: relative;
  width: 50%;
}

.introduce_item_btn {
  position: absolute;
  inset: auto 0 23% 0;
  margin: auto;
  opacity: 1;
  transition: .2s;
  width: 74.85%;
}

.introduce_item_btn:hover {
  opacity: .7;
}

.introduce_item_btn::after {
  background-image: url("../img/introduce_item_btn_arrow.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: 0 3.2% 0 auto;
  margin: auto;
  transition: .2s;
  height: 1.354167vw;
  width: 1.354167vw;
}

.introduce_item_btn:hover::after {
  inset: 0 2.2% 0 auto;
}

.introduce_box {
  background-color: #6f784d;
  padding: 2.6% 0;
}

.introduce_box_text {
  color: #000;
  font-size: 1.041667vw;
  font-weight: bold;
  line-height: 2em;
  text-align: center;
}

.nav {
  background-color: #142400;
  padding: 0 0 18.75vw;
}

.nav_bg {
  background-color: #283615;
  position: relative;
}

.nav_bg::after {
  background-image: url("../img/nav_btn_icon.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: 0 2% 0 auto;
  margin: auto;
  height: 6.302083vw;
  width: .625vw;
}

.nav_lists {
  display: flex;
}

.nav_list {
  width: 33.333333%;
}

.nav_list_link {
  display: block;
  opacity: 1;
  transition: .2s;
}

.nav_list_link:hover {
  opacity: .7;
}

#style01 .primary_head {
  background-color: #996b3d;
  position: relative;
}

#style02 .primary_head {
  background-color: #92582f;
  position: relative;
}

#style03 .primary_head {
  background-color: #7f5946;
  position: relative;
}

.primary_head::after {
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: 0 2% 0 auto;
  margin: auto;
}

.primary_head01::after {
  background-image: url("../img/primary_head_item_icon01.png");
  height: 6.302083vw;
  width: .677083vw;
}

.primary_head02::after {
  background-image: url("../img/primary_head_item_icon02.png");
  height: 6.302083vw;
  width: .677083vw;
}

.primary_head03::after {
  background-image: url("../img/primary_head_item_icon03.png");
  height: 8.177083vw;
  width: .677083vw;
}

.primary_head_inner {
  max-width: 68.75vw;
  margin: 0 auto;
  width: 90%;
}

.primary_head_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.primary_head_item_head {
  width: 50%;
}

.primary_head_item_img {
  display: flex;
  justify-content: flex-end;
  width: 50%;
}

.primary_head_item_img picture {
  display: block;
  width: 90%;
}

.primary_contents {
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  padding: 0 0 21.770833vw;
}

.primary_contents01 {
  background-image: url("../img/primary_contents_bg01.jpg");
}

.primary_contents02 {
  background-image: url("../img/primary_contents_bg02.jpg");
}

.primary_contents03 {
  background-color: #142400;
}

#style01 .primary_contents_inner {
  border-bottom: .104167vw solid #996b3d;
  margin: -4.02% auto 0;
}

#style02 .primary_contents_inner {
  border-bottom: .104167vw solid #92582f;
  margin: -4.02% auto 0;
}

#style03 .primary_contents_inner {
  border-bottom: .104167vw solid #7f5946;
  margin: -4.02% auto 0;
}

.primary_contents_head {
  display: block;
  position: relative;
  width: 100%;
}

.primary_contents_items {
  display: flex;
  justify-content: space-between;
  margin: -2.4% 0 0;
}

.primary_contents_items01 {
  border-left: .104167vw solid #996b3d;
  border-right: .104167vw solid #996b3d;
}

.primary_contents_items02 {
  border-left: .104167vw solid #92582f;
  border-right: .104167vw solid #92582f;
}

.primary_contents_items03 {
  border-left: .104167vw solid #7f5946;
  border-right: .104167vw solid #7f5946;
}

.primary_contents_item {
  padding: 1% 1% 6%;
  width: 33.3333%;
}

#style01 .primary_contents_items > li:not(:last-of-type) {
  border-right: .104167vw solid #996b3d;
}

#style02 .primary_contents_items > li:not(:last-of-type) {
  border-right: .104167vw solid #92582f;
}

#style03 .primary_contents_items > li:not(:last-of-type) {
  border-right: .104167vw solid #7f5946;
}

.primary_contents_item_btn {
  display: block;
  margin: 0 0 12%;
  opacity: 1;
  transition: .2s;
  width: 100%;
}

.primary_contents_item_btn:hover {
  opacity: .7;
}

.primary_contents_item_bottom {
  margin: 0 auto;
  width: 80%;
}

.primary_contents_item_bottom_head {  
  font-size: 1.041667vw;
  font-weight: bold;
  margin: 0 0 10%;
  text-align: center;
}

.primary_contents_item_bottom_text {  
  font-size: 1.041667vw;
  font-weight: bold;
  margin: 0 0 6%;
  line-height: 2em;
  text-align: justify;
}

#style01 .primary_contents_item_bottom_head {
  color: #c1a589;
}

#style01 .primary_contents_item_bottom_text {
  color: #c1a589;
}

#style02 .primary_contents_item_bottom_head {
  color: #c6a792;
}

#style02 .primary_contents_item_bottom_text {
  color: #c6a792;
}

#style03 .primary_contents_item_bottom_head {
  color: #beaaa0;
}

#style03 .primary_contents_item_bottom_text {
  color: #beaaa0;
}

.photobook_head {
  background-color: #4e5a3f;
}

.photobook_head_inner {
  margin: 0 auto;
  padding: 6% 0 4%;
  position: relative;
  width: 75.530303%;
}

.photobook_head_inner::before,
.photobook_head_inner::after {
  background-image: url("../img/photobook_head_inner_icon.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  margin: auto;
  height: 10.677083vw;
  width: 3.385417vw;
}

.photobook_head_inner::before {
  inset: 0 auto 0 0;
}

.photobook_head_inner::after {
  inset: 0 0 0 auto;
  transform: rotate(180deg);
}

.photobook_head_title {
  color: #fff;
  font-size: 2.34375vw;
  font-weight: bold;
  margin: 0 auto 2%;
  text-align: center;
}

.photobook_head_text {
  color: #fff;
  font-size: 1.041667vw;
  font-weight: bold;
  line-height: 1.8em;
  text-align: center;
}

.photobook_contents {
  background-image: url("../img/photobook_contents_bg.jpg");
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

.photobook_contents_inner {
  padding: 6.4% 0 12%;
}

.photobook_contents_head {
  margin: 0 auto 2%;
  width: 38.787878%;
}

.photobook_contents_img {
  width: 100%;
}

.cta {
  background-color: #4e5a3f;
}

.cta_inner {
  margin: 0 auto;
  padding: 3.6% 0 4%;
  width: 65.378787%;
}

.cta_head {
  color: #fff;
  font-size: 1.5625vw;
  line-height: 2em;
  margin: 0 0 4%;
  position: relative;
  letter-spacing: .208333vw;
  text-align: center;
}

.cta_head::before,
.cta_head::after {
  content: "";
  position: absolute;
  margin: auto;
  height: 3.645833vw;
  width: .104167vw;
}

.cta_head::before {
  border-left: .104167vw solid #fff;
  inset: auto auto 0 0;
  transform: rotate(-30deg);
}

.cta_head::after {
  border-right: .104167vw solid #fff;
  inset: auto 0 0 auto;
  transform: rotate(30deg);
}

.cta_btn {
  display: block;
  margin: 0 auto;
  position: relative;
  opacity: 1;
  transition: .2s;
  width: 75.321%;
}

.cta_btn:hover {
  opacity: .7;
}

.cta_btn::after {
  background-image: url("../img/cta_btn_arrow.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: 0 3.2% 0 auto;
  margin: auto;
  transition: .2s;
  height: 1.875vw;
  width: 1.875vw;
}

.cta_btn:hover::after {
  inset: 0 2.2% 0 auto;
}

.bottom {
  background-color: #142400;
}

.bottom_inner {
  padding: 2.6% 0 8%;
}

.bottom_text {
  color: #fff;
  font-size: .729167vw;
  line-height: 1.6em;
  text-align: center;
}

.pagetop {
  background-color: #142400;
  margin: -0.052083vw 0 0;
}

.pagetop_inner {
  padding: 0 0 8%;
}

.pagetop_btn {
  display: block;
  margin: 0 auto;
  width: 9.394%;
}

.fixed {
  background-color: #142100;
  position: fixed;
  inset: auto 0 0 0;
  margin: auto;
  opacity: 1;
  visibility: visible;
  transition: .2s;
  width: 100%;
  z-index: 8;
}

.fixed.no_display {
  opacity: 0;
  visibility: hidden;
}

.fixed_inner {
  padding: 1.213% 0;
}

.fixed_btn {
  display: block;
  margin: 0 auto;
  position: relative;
  opacity: 1;
  transition: .2s;
  width: 37.652%;
}

.fixed_btn:hover {
  opacity: .7;
}

.fixed_btn::after {
  background-image: url("../img/fixed_btn_arrow.png");
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  inset: 0 3.2% 0 auto;
  margin: auto;
  transition: .2s;
  height: 1.458333vw;
  width: 1.458333vw;
}

.fixed_btn:hover::after {
  inset: 0 2.2% 0 auto;
}

.modal {
  background-color: rgb(0 0 0 / .8);
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  inset: 0;
  margin: auto;
  opacity: 0;
  visibility: hidden;
  transition: .2s;
  height: 100%;
  width: 100%;
  z-index: 10;
}

.modal.is_active {
  opacity: 1;
  visibility: visible;
}

.modal_inner {
  max-width: 52.083333vw;
  margin: 0 auto;
}

.modal_item {
  position: relative;
}

.modal_close {
  display: block;
  position: absolute;
  inset: -5.8% 0 auto auto;
  opacity: 1;
  transition: .2s;
  width: 8.907%;
}

.modal_close:hover {
  opacity: .7;
}

.modal_item_image {
  display: none;
}

.modal_item_image.is_active {
  display: block;
}

.footer {
  letter-spacing: 0;
  padding: 1.25vw 0;
}

.footer_copy {
  color: #000;
  font-size: .9375vw;
  font-weight: 300;
  line-height: 1.6em;
  text-align: center;
}

.is_pc {
  display: block;
}

.is_sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .is_pc {
    display: none;
  }

  .is_sp {
    display: block;
  }

  html {
    font-size: 1.3333333333vw;
  }
  
  .header {
    padding: 2% 0;
    width: 100%;
  }

  .header_title {
    max-width: 100%;
    margin: 0 auto;
    width: 26.4%;
  }

  .mv {
    background-color: #142400;
    background-image: url("../img/mv_img_sp.jpg");
    background-size: 100%;
    padding: 91% 0 40%;
  }

  .mv::after {
    display: none;
    position: unset;
  }

  .mv_inner {
    max-width: 100%;
    width: 80%;
  }

  .mv_item {
    padding: 0;
    width: 100%;
  }

  .mv_item_head {
    margin: 0 0 10%;
  }

  .mv_item_subHead {
    font-size: 7.466667vw;
    line-height: 1.6em;
    margin: 0 0 6%;
  }

  body.sp_font .mv_item_subHead {
    font-weight: 500;
    letter-spacing: 0.373333vw;
  }

  .mv_item_text {
    font-size: 4.8vw;
    line-height: 2em;
  }

  body.sp_font .mv_item_text {
    font-weight: 500;
    letter-spacing: 0.373333vw;
  }

  .introduce .container {
    max-width: 100%;
    width: 100%;
  }

  .introduce_inner {
    padding: 0 0 34%;
  }

  .introduce_items {
    flex-direction: column;
    margin: 0 0 8%;
  }

  .introduce_item {
    margin: 0;
    width: 100%;
  }

  .introduce_item_head {
    margin: 0 0 10%;
    width: 100%;
  }

  .introduce_item_text {
    font-size: 4.8vw;
    line-height: 2.2em;
    text-align: justify;
    margin: 0 auto;
    letter-spacing: 0.106667vw;
    word-break: break-all;
    width: 80%;
  }

  body.sp_font .introduce_item_text {
    font-weight: 500;
    letter-spacing: 0.213333vw;
  }

  .introduce_img {
    display: none;
  }

  .introduce_item_btn {
    position: relative;
    inset: auto 0 21% 0;
    width: 94%;
  }

  .introduce_item_btn::after {
    background-image: url("../img/introduce_item_btn_arrow_sp.png");
    height: 5.2vw;
    width: 5.2vw;
  }

  .introduce_box {
    padding: 10% 0;
  }

  .introduce_box_text {
    font-size: 5.333333vw;
    line-height: 2em;
  }

  .nav {
    padding: 2% 0 60%;
  }

  .nav_bg {
    background-color: #142400;
  }

  .nav_bg::after {
    content: unset;
    display: none;
  }

  .nav .container {
    max-width: 100%;
    width: 100%;
  }

  .nav_lists {
    flex-direction: column;
  }

  .nav_lists > li:not(:last-of-type) {
    margin: 0 0 2%;
  }

  .nav_list {
    width: 100%;
  }

  .primary_head::after {
    content: unset;
    display: none;
  }

  .primary_head_inner {
    max-width: 100%;
    width: 100%;
  }

  .primary_head_item {
    flex-direction: column;
  }

  .primary_head_item_head {
    width: 100%;
  }

  .primary_head_item_img {
    display: block;
    width: 100%;
  }

  .primary_head_item_img picture {
    width: 100%;
  }

  .primary_contents_items {
    border-left: none;
    border-right: none;
  }

  #style01 .primary_contents_items > li:not(:last-of-type),
  #style02 .primary_contents_items > li:not(:last-of-type),
  #style03 .primary_contents_items > li:not(:last-of-type) {
    border-right: none;
  }
  
  .primary_contents {
    padding: 0 0 50%;
  }

  .primary_contents01 {
    background-image: url("../img/primary_contents_bg01_sp.jpg");
    padding: 0 0 70%;
  }

  .primary_contents02 {
    background-image: url("../img/primary_contents_bg02_sp.jpg");
    padding: 0 0 70%;
  }

  #style01 .primary_contents_inner {
    border-bottom: 2px solid #996b3d;
    margin: -.2% auto 0;
  }

  #style02 .primary_contents_inner {
    border-bottom: 2px solid #92582f;
    margin: -.2% auto 0;
  }

  #style03 .primary_contents_inner {
    border-bottom: 2px solid #7f5946;
    margin: -.2% auto 0;
  }

  .primary_contents .container {
    max-width: 100%;
    width: 100%;
  }

  .primary_contents_head {
    z-index: 2;
  }

  .primary_contents_slider {
    margin: -2% auto 0;
    width: 90%;
  }

  .primary_contents_item {
    padding: 0;
    width: 100%;
  }

  .primary_contents_item_btn {
    margin: 0 0 10%;
  }

  .primary_contents_item_btn:hover {
    opacity: 1;
  }

  .primary_contents_item_bottom_head {
    font-size: 5.333333vw;
    margin: 0 0 7.2%;
    line-height: 1.6em;
  }

  body.sp_font .primary_contents_item_bottom_head {
    font-weight: 500;
    letter-spacing: 0.213333vw;
  }

  .primary_contents_item_bottom_text {
    font-size: 4.8vw;
    margin: 0 0 30%;
    line-height: 2em;
    text-align: justify;
  }

  body.sp_font .primary_contents_item_bottom_text {
    font-weight: 500;
  }

  .primary_contents_slider .swiper-button-prev,
  .primary_contents_slider .swiper-button-next {
    position: absolute;
    margin: auto;
    height: 13.466667vw;
    width: 5.466667vw;
  }

  .primary_contents_slider .swiper-button-prev {
    inset: -4% auto 0 0;
  }

  .primary_contents_slider .swiper-button-next {
    inset: -4% 0 0 auto;
  }

  .primary_contents_slider .swiper-button-prev::after,
  .primary_contents_slider .swiper-button-next::after {
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    content: "";
    position: absolute;
    margin: auto;
    height: inherit;
    width: inherit;
  }

  .primary_contents_slider.primary_contents_slider01 .swiper-button-prev::after,
  .primary_contents_slider.primary_contents_slider01 .swiper-button-next::after {
    background-image: url("../img/primary_contents_slider_arrow01_sp.png");
  }

  .primary_contents_slider.primary_contents_slider02 .swiper-button-prev::after,
  .primary_contents_slider.primary_contents_slider02 .swiper-button-next::after {
    background-image: url("../img/primary_contents_slider_arrow02_sp.png");
  }

  .primary_contents_slider.primary_contents_slider03 .swiper-button-prev::after,
  .primary_contents_slider.primary_contents_slider03 .swiper-button-next::after {
    background-image: url("../img/primary_contents_slider_arrow03_sp.png");
  }

  .primary_contents_slider.primary_contents_slider01 .swiper-button-prev::after,
  .primary_contents_slider.primary_contents_slider02 .swiper-button-prev::after,
  .primary_contents_slider.primary_contents_slider03 .swiper-button-prev::after {
    inset: 0;
  }

  .primary_contents_slider.primary_contents_slider01 .swiper-button-next::after,
  .primary_contents_slider.primary_contents_slider02 .swiper-button-next::after,
  .primary_contents_slider.primary_contents_slider03 .swiper-button-next::after {
    inset: 0;
    transform: rotate(180deg);
  }

  .primary_contents_slider .swiper-navigation-icon {
    display: none;
  }

  .photobook .container {
    max-width: 100%;
    width: 90%;
  }

  .photobook_head_inner {
    padding: 18% 0 28%;
    width: 100%;
  }

  .photobook_head_inner::before,
  .photobook_head_inner::after {
    background-image: url("../img/photobook_head_inner_icon_sp.png");
    height: 124.266667vw;
    width: 9.2vw;
  }

  .photobook_head_inner::before {
    inset: 4.2% auto auto 0;
  }

  .photobook_head_inner::after {
    inset: 4.2% 0 auto auto;
  }

  .photobook_head_title {
    font-size: 8vw;
    margin: 0 auto 6%;
    line-height: 1.6em;
  }

  body.sp_font .photobook_head_title {
    font-weight: 500;
  }

  .photobook_head_text {
    font-feature-settings: "palt";
    font-size: 5.333333vw;
    letter-spacing: 0.106667vw;
  }

  body.sp_font .photobook_head_text {
    font-weight: 500;
  }

  .photobook_contents {
    background-image: url("../img/photobook_contents_bg_sp.jpg");
  }

  .photobook_contents_inner {
    padding: 27% 0 16%;
  }

  .photobook_contents_head {
    margin: 0 auto 10%;
    width: 91.856%;
  }

  .photobook_contents_img {
    margin: 0 auto;
    width: 84.745%;
  }

  .cta .container {
    max-width: 100%;
    width: 90%;
  }

  .cta_inner {
    padding: 10% 0;
    width: 100%;
  }

  .cta_head {
    font-size: 4.266667vw;
    line-height: 1.6em;
    margin: 0 0 4%;
    letter-spacing: .533333vw;
  }

  .cta_head::before,
  .cta_head::after {
    content: "";
    position: absolute;
    margin: auto;
    height: 9.066667vw;
    width: .533333vw;
  }

  .cta_head::before {
    border-left: .266667vw solid #fff;
    inset: auto auto 0 4%;
  }

  .cta_head::after {
    border-right: .266667vw solid #fff;
    inset: auto 4% 0 auto;
  }

  .cta_btn {
    width: 100%;
  }

  .cta_btn::after {
    background-image: url("../img/cta_btn_arrow_sp.png");
    height: 5.333333vw;
    width: 5.333333vw;
  }

  .bottom .container {
    max-width: 100%;
    width: 78%;
  }

  .bottom_inner {
    padding: 6% 0 22%;
  }

  .bottom_text {
    font-feature-settings: "palt";
    font-size: 3.733333vw;
    line-height: 1.6em;
    text-align: justify;
  }

  .pagetop .container {
    max-width: 100%;
    width: 90%;
  }

  .pagetop_inner {
    padding: 0 0 22%;
  }

  .pagetop_btn {
    width: 36.15%;
  }
  
  .fixed .container {
    max-width: 100%;
    margin: 0 auto;
    width: 80%;
  }

  .fixed_inner {
    padding: 2% 0;
  }

  .fixed_btn {
    width: 100%;
  }

  .fixed_btn::after {
    background-image: url("../img/fixed_btn_arrow_sp.png");
    height: 4.533333vw;
    width: 4.533333vw;
  }

  .modal {
    display: none !important;
  }

  .footer {
    padding: 2% 0;
  }

  .footer_copy {
    font-size: 2.666667vw;
  }
}
