@charset "UTF-8";
img {
  max-width: 100%;
  height: auto;
  display: block;
}

svg {
  display: block;
  width: 100%;
  height: auto;
}

button {
  color: inherit;
}

.all {
  display: block;
}

.pc {
  display: block;
}
@media screen and (max-width: 1024px) {
  .pc {
    display: none;
  }
}

.pc-tb {
  display: block;
}
@media screen and (max-width: 540px) {
  .pc-tb {
    display: none;
  }
}

.tb-sp {
  display: none;
}
@media screen and (max-width: 1024px) {
  .tb-sp {
    display: block;
  }
}

.ini-tb-sp {
  display: none;
}
@media screen and (max-width: 1024px) {
  .ini-tb-sp {
    display: initial;
  }
}

.tb {
  display: none;
}
@media screen and (max-width: 1024px) {
  .tb {
    display: block;
  }
}
@media screen and (max-width: 540px) {
  .tb {
    display: none;
  }
}

@media screen and (max-width: 540px) {
  .ini-pc-tb {
    display: none;
  }
}

@media screen and (max-width: 1024px) {
  .ini-pc {
    display: none;
  }
}

.ini-tb {
  display: none;
}
@media screen and (max-width: 1024px) {
  .ini-tb {
    display: initial;
  }
}
@media screen and (max-width: 540px) {
  .ini-tb {
    display: none;
  }
}

.sp {
  display: none;
}
@media screen and (max-width: 540px) {
  .sp {
    display: block;
  }
}

.ini-sp {
  display: none;
}
@media screen and (max-width: 540px) {
  .ini-sp {
    display: initial;
  }
}

@media screen and (max-width: 1024px) {
  br.tb-sp {
    display: initial;
  }
}
@media screen and (max-width: 1024px) {
  br.tb {
    display: initial;
  }
}
@media screen and (max-width: 540px) {
  br.tb {
    display: none;
  }
}
@media screen and (max-width: 540px) {
  br.sp {
    display: initial;
  }
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
}

.fo-min{
  font-family: "Noto Serif JP", serif;
  font-style: normal;
}
.fo-en{
  font-family: DIN, serif;
}

.cw00 {
  position: relative;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--var-side-padding);
  padding-left: var(--var-side-padding);
}
@media screen and (max-width: 1024px) {
  .cw00 {
    padding-right: var(--var-side-padding-sp);
    padding-left: var(--var-side-padding-sp);
  }
}

.cw01,
.cw02 {
  position: relative;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--var-side-padding);
  padding-left: var(--var-side-padding);
}
@media screen and (max-width: 1024px) {
  .cw01,
  .cw02 {
    padding-right: var(--var-side-padding-sp);
    padding-left: var(--var-side-padding-sp);
  }
}

.cw01 {
  max-width: 1890px;
}

.cw02 {
  max-width: 1120px;
}

/* 電話番号（スマホ時タップ可能） */
a[href^="tel:"] {
  color: #000;
  background: none;
  pointer-events: none;
}
@media screen and (max-width: 1024px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}

a {
  color: #333;
}
a .underline,
a .shrink-stretch {
  display: inline-block;
  position: relative;
}
a .underline::before,
a .shrink-stretch::before {
  content: "";
  position: absolute;
  display: inline-block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
}
a .shrink-stretch::before {
  transform-origin: left;
}
a .underline::before {
  transform: scaleX(0);
  transform-origin: left;
  transition: all 0.3s ease;
}
a .zoom-up{
  overflow: hidden;
  display: block;
}
a .zoom-up img {
  transition: transform 0.3s var(--var-animation-timing-function);
  transform: scale(1);
}
a.normal {
  text-decoration: underline;
  opacity: 1;
  transition: opacity 0.6s val(--var-opacity-timing-function);
}
a.icon_window,
a.icon_instagram {
  opacity: 1;
  transition: opacity 0.6s val(--var-opacity-timing-function);
}
a.icon_window::after {
  content: "";
  display: inline-block;
  width: 2.1rem;
  height: 2.1rem;
  background-image: url(../img/common/icon_window.png);
  background-repeat: no-repeat;
  background-size: contain;
  margin-left: 0.5rem;
}
a.icon_instagram::after {
  content: "";
  display: inline-block;
  width: 3.1rem;
  height: 3.1rem;
  background-image: url(../img/common/icon_instagram.png);
  background-repeat: no-repeat;
  background-size: contain;
  margin-left: 0.5rem;
  position: relative;
  top: 0.1em;
}
a:hover .underline::before {
  transform: scaleX(1);
}
@media screen and (max-width: 1024px) {
  a:hover .underline::before {
    transform: scaleX(0);
  }
}
a:hover .shrink-stretch::before {
  animation: shrink-stretch 0.3s ease-in 1 normal forwards;
}
@media screen and (max-width: 1024px) {
  a:hover .shrink-stretch::before {
    animation: none;
  }
}
@media (hover: hover) {
  a:hover .zoom-up img {
    transform: scale(1.05);
  }
  a:hover.normal {
    opacity: 0.7;
  }
  a:hover {
    opacity: 0.7;
  }
}

button .shrink-stretch {
  display: inline-block;
  position: relative;
}
button .shrink-stretch::before {
  content: "";
  position: absolute;
  display: inline-block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
}
button .shrink-stretch::before {
  transform-origin: left;
}
button:hover .shrink-stretch::before {
  animation: shrink-stretch 0.3s ease-in 1 normal forwards;
}
@media screen and (max-width: 1024px) {
  button:hover .shrink-stretch::before {
    animation: none;
  }
}

.btn01{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 7.8rem;
  background-color: #333;
  position: relative;
}
.btn01_text{
  color: #fff;
  font-size: 2.5rem;
}
.btn01::after{
  content: "";
  display: block;
  width: 3.9rem;
  height: 3.9rem;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
  background-color: #157e3a;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
@media (hover: hover) {
  .btn01{
    background-color: rgba(51,51,51,1);
    transition: background-color 0.3s var(--var-opacity-timing-function);
  }
  .btn01:hover{
    background-color: rgba(51,51,51,0.8);
  }
}

.slide-up {
  opacity: 0;
  transform: translateY(var(--var-translate-val));
  transition: opacity 0.8s 0.3s var(--var-opacity-timing-function), transform 1.2s 0.3s var(--var-animation-timing-function);
}
.slide-up.is-animated {
  opacity: 1;
  transform: translateY(0);
}

.fade-in {
  opacity: 0;
  transition: opacity 0.8s 0.3s var(--var-opacity-timing-function);
}
.fade-in.is-animated {
  opacity: 1;
}

@keyframes shrink-stretch {
  0% {
    transform: scaleX(0%);
  }
  100% {
    transform: scaleX(100%);
  }
}