@charset "UTF-8";
img {
  width: 100%;
  height: auto;
  max-width: 100%;
}
@media screen and (min-width: 561px) {
  img {
    width: auto;
  }
}

.tel a {
  text-decoration: none;
}

:root {
  --wrapPadding: 30px;
}

.fw-exl {
  font-weight: 200;
}

.fw-l {
  font-weight: 300;
}

.fw-r {
  font-weight: 400;
}

.fw-m {
  font-weight: 500;
}

.fw-sm {
  font-weight: 600;
}

.fw-b {
  font-weight: 700;
}

.fw-exb {
  font-weight: 800;
}

.fw-bl {
  font-weight: 900;
}

.fs-italic {
  font-style: italic;
}

@media screen and (min-width: 561px) {
  .sp {
    display: none !important;
  }
  .remodal-sp {
    display: block !important;
  }
  a[href^="tel:"] {
    pointer-events: none;
    cursor: text;
  }
}
@media screen and (max-width: 560px) {
  .pc {
    display: none !important;
  }
}
/*=============================================
 * body
 *=============================================*/
body {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #3B4043;
  font-family: "Noto Sans JP";
  background: #fff;
  min-height: inherit;
  max-height: 100%;
  font-weight: 400;
  min-width: 1366px;
}
@media screen and (max-width: 560px) {
  body {
    font-size: 21px;
    line-height: 30px;
    min-width: 560px;
  }
}

main {
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 560px) {
  .wrap {
    padding: 0 var(--wrapPadding);
  }
}

/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-notosan {
  font-family: "Noto Sans JP";
}

.fnt-josefin {
  font-family: "Josefin Sans";
}

.fnt-barlow {
  font-family: "Barlow";
}

.fnt-zen {
  font-family: "Zen Kaku Gothic Antique";
}

/*=============================================
 * <main>
 *=============================================*/
.wrap {
  max-width: calc(100% - 60px);
  width: 1000px;
  box-sizing: content-box;
}

.slick-arrow:hover {
  opacity: 0.8;
}

@media screen and (min-width: 561px) {
  [class*=heightLine-sp] {
    height: auto !important;
  }
}
@media screen and (max-width: 560px) {
  [class*=heightLine-pc] {
    height: auto !important;
  }
}
.nav-fixed {
  position: fixed;
  right: 0;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 99;
}

.nav-fixed.fixed {
  opacity: 1;
  visibility: visible;
}

#pagetop {
  bottom: 100px;
  right: 20px;
}

@media screen and (max-width: 560px) {
  #pagetop {
    width: 53px;
    bottom: 110px;
    right: 10px;
  }
}
/*=============================================
 * <menu>
 *=============================================*/
.menu-toggle {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  width: 100% !important;
  top: 0px;
  bottom: 0;
  right: 0;
  overflow-y: auto;
  height: 100%;
  color: #000;
  z-index: -10;
  padding: 75px 0 150px;
  background: #fff;
  box-sizing: border-box;
  transition: all 0.5s ease 0s;
  -webkit-overflow-scrolling: touch;
}

.navOpen #menu-toggle {
  opacity: 1;
  visibility: visible;
  pointer-events: visible;
  z-index: 15;
}

body.navOpen,
body.navOpen *,
body.navOpen *:hover,
body.navOpen *:focus,
body.navOpen *:active {
  touch-action: none !important;
  pointer-events: none !important;
}

body.navOpen .hamburger,
body.navOpen #header,
body.navOpen #header *,
body.navOpen #menu-toggle,
body.navOpen #menu-toggle *,
body.navOpen #ft-fixed,
body.navOpen #ft-fixed * {
  touch-action: auto !important;
  pointer-events: visible !important;
}

.navOpen {
  overflow: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: none !important;
  pointer-events: none !important;
}

/*=============================================
 * <slick>
 *=============================================*/
.slick-arrow {
  font-size: 0;
  width: 166px;
  height: 17px;
  line-height: 0;
  position: absolute;
  z-index: 7;
  top: 24vw;
  background: transparent;
  color: #548b2e;
  outline: none;
}

.slick-arrow.slick-prev {
  background: url("../img/shared/left.jpg") no-repeat center/100% auto;
  left: -25px;
}

.slick-arrow.slick-next {
  background: url("../img/shared/right.jpg") no-repeat center/100% auto;
  right: -25px;
}

@media screen and (max-width: 480px) {
  .slick-arrow {
    width: 15px;
    height: 33px;
  }
}
.slick-dots {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  z-index: 5;
  position: absolute;
  right: 37px;
  bottom: 90px;
}
.slick-dots li {
  width: 15px;
  height: 15px;
  background: #a0a0a0;
  margin: 0 7px;
  display: flex;
  border-radius: 50%;
  cursor: pointer;
}
.slick-dots li.slick-active {
  background: #4e3825;
}
@media (hover: hover) {
  .slick-dots li:hover {
    background: #4e3825;
  }
}
.slick-dots li button {
  width: 0;
  height: 0;
  font-size: 0;
}

/*=============================================
 * <txt-vertical responsive>
 *=============================================*/
@media only screen and (min-width: 561px) {
  .txt-vertical-pc {
    cursor: vertical-text;
    writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
  }
  .txt-vertical-pc .int {
    writing-mode: lr-tb;
    display: inline-block;
    text-align: center;
    line-height: 1;
  }
  .txt-vertical-pc .txt-latin {
    cursor: vertical-text;
    direction: rtl;
    writing-mode: vertical-rl;
    text-orientation: sideways-right;
    letter-spacing: 0.25em;
  }
  .txt-vertical-pc .txt-dot {
    cursor: vertical-text;
    direction: ltr;
    writing-mode: vertical-lr;
    -o-writing-mode: vertical-lr;
    -ms-writing-mode: vertical-lr;
    -ms-writing-mode: tb-lr;
    -moz-writing-mode: vertical-lr;
    -webkit-writing-mode: vertical-lr;
    text-orientation: sideways-right;
    -o-text-orientation: sideways-right;
    -ms-text-orientation: upright;
    -ms-text-orientation: sideways-right;
    -moz-text-orientation: sideways-right;
    -webkit-text-orientation: sideways-right;
    line-height: 0.4;
    display: inline-block;
    margin: 0 auto;
  }
}
@media only screen and (max-width: 560px) {
  .txt-vertical-sp {
    cursor: vertical-text;
    writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
  }
  .txt-vertical-sp .int {
    writing-mode: lr-tb;
    display: inline-block;
    text-align: center;
    line-height: 1;
  }
  .txt-vertical-sp .txt-latin {
    cursor: vertical-text;
    direction: rtl;
    writing-mode: vertical-rl;
    text-orientation: sideways-right;
    letter-spacing: 0.25em;
  }
  .txt-vertical-sp .txt-dot {
    cursor: vertical-text;
    direction: ltr;
    writing-mode: vertical-lr;
    -o-writing-mode: vertical-lr;
    -ms-writing-mode: vertical-lr;
    -ms-writing-mode: tb-lr;
    -moz-writing-mode: vertical-lr;
    -webkit-writing-mode: vertical-lr;
    text-orientation: sideways-right;
    -o-text-orientation: sideways-right;
    -ms-text-orientation: upright;
    -ms-text-orientation: sideways-right;
    -moz-text-orientation: sideways-right;
    -webkit-text-orientation: sideways-right;
    line-height: 0.4;
    display: inline-block;
    margin: 0 auto;
  }
}
/*=============================================
 * <parallax responsive>
 *=============================================*/
.bg-parallax {
  position: relative;
  z-index: 0;
}
.bg-parallax .img-parallax {
  clip: rect(0, auto, auto, 0);
  margin-bottom: 0;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
}
.bg-parallax .img-parallax img {
  width: 100% !important;
  height: 100vh !important;
  position: fixed;
  bottom: 0;
  left: 0;
  padding: 0;
  margin: 0;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
  transform: translateZ(0);
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .bg-parallax .img-parallax img {
    height: auto !important;
    -o-object-fit: unset;
       object-fit: unset;
    top: 50%;
    transform: translateY(-50%) !important;
  }
}

@media screen and (min-width: 561px) {
  .bg-parallax-pc {
    position: relative;
    z-index: 0;
  }
  .bg-parallax-pc .img-parallax-pc {
    clip: rect(0, auto, auto, 0);
    margin-bottom: 0;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
  }
  .bg-parallax-pc .img-parallax-pc img {
    width: 100% !important;
    height: 100vh !important;
    position: fixed;
    bottom: 0;
    left: 0;
    padding: 0;
    margin: 0;
    -o-object-fit: cover;
       object-fit: cover;
    z-index: 1;
    transform: translateZ(0);
  }
}
@media screen and (min-width: 561px) and (-ms-high-contrast: active), screen and (min-width: 561px) and (-ms-high-contrast: none) {
  .bg-parallax-pc .img-parallax-pc img {
    height: auto;
    -o-object-fit: unset;
       object-fit: unset;
    top: 50%;
    transform: translateY(-50%) !important;
  }
}
@media screen and (max-width: 560px) {
  .bg-parallax-sp {
    position: relative;
    z-index: 0;
  }
  .bg-parallax-sp .img-parallax-sp {
    clip: rect(0, auto, auto, 0);
    margin-bottom: 0;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
  }
  .bg-parallax-sp .img-parallax-sp img {
    width: 100% !important;
    height: 100vh !important;
    position: fixed;
    bottom: 0;
    left: 0;
    padding: 0;
    margin: 0;
    -o-object-fit: cover;
       object-fit: cover;
    z-index: 1;
    transform: translateZ(0);
  }
}
@media screen and (max-width: 560px) and (-ms-high-contrast: active), screen and (max-width: 560px) and (-ms-high-contrast: none) {
  .bg-parallax-sp .img-parallax-sp img {
    height: auto;
    -o-object-fit: unset;
       object-fit: unset;
    top: 50%;
    transform: translateY(-50%) !important;
  }
}
/*=============================================
 * <ft-fixed>
 *=============================================*/
#ft-fixed {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: url("../img/shared/bg.jpg");
  z-index: 99;
}

@media screen and (max-width: 560px) {
  #ft-fixed {
    padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
  }
}
.navOpen #ft-fixed {
  /* z-index: 0; */
}

/*=============================================
 * <toggle responsive>
 *=============================================*/
.toggle-sp .toggle-link:after {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  line-height: 20px;
  content: "\f13a";
  font-size: 13px;
  display: block;
  margin-top: 10px;
}
.toggle-sp .toggle-main {
  display: none;
}
.toggle-sp.active .toggle-link:after {
  content: "\f139";
}
.toggle-sp.active .toggle-main {
  display: block;
}

@media screen and (min-width: 561px) {
  .toggle-sp .toggle-link {
    cursor: auto;
  }
  .toggle-sp .toggle-link:after {
    display: none;
  }
  .toggle-sp .toggle-main {
    display: block !important;
    height: auto !important;
  }
}
/*=============================================
 * <image object-fit responsive>
 *=============================================*/
.img-ob {
  position: relative;
}
.img-ob img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (min-width: 561px) {
  .img-ob-pc {
    position: relative;
  }
  .img-ob-pc img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media screen and (max-width: 560px) {
  .img-ob-sp {
    position: relative;
  }
  .img-ob-sp img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
/*=============================================
 * <tab responsive>
 *=============================================*/
@media screen and (max-width: 560px) {
  .tabs-switch-pc .tab-content > div {
    display: block !important;
  }
}
/*=============================================
* <animation wow>
*=============================================*/
@keyframes fadeIn {
  0% {
    opacity: 0;
    filter: blur(6px);
  }
  to {
    opacity: 1;
    filter: blur(0px);
  }
}
.fadeIn {
  animation-name: fadeIn;
}

@keyframes fadeInUp {
  0% {
    -webkit-transform: translate3d(0, 10px, 0);
    opacity: 0;
    transform: translate3d(0, 20px, 0);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
.fadeInUp {
  animation-name: fadeInUp;
}

.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

.animated.infinite {
  animation-iteration-count: infinite;
}

.wow {
  animation-duration: 1s;
  animation-fill-mode: both;
}

.error {
  color: red;
}

.mb-60 {
  margin-bottom: 60px;
}

[v-cloak] {
	display: none !important;
}