@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP&family=Playfair+Display:ital@0;1&family=Zen+Old+Mincho:wght@500;600&display=swap");
input[type=button],
input[type=text],
input[type=email],
input[type=submit],
textarea,
select {
  -webkit-appearance: none;
  border-radius: 0;
}

@media (max-width: 768px) {
  .disp_pc {
    display: none;
  }
}
@media (min-width: 769px) {
  .disp_pc {
    display: block;
  }
}

@media (max-width: 768px) {
  .disp_sp {
    display: block;
  }
}
@media (min-width: 769px) {
  .disp_sp {
    display: none;
  }
}

html,
body {
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-style: normal;
  background-color: #2c2e2a;
  color: #fff;
}

/* Lenis推奨設定：スクロールのガタつきを抑える */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

#loader-bg {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #2c2e2a;
  z-index: 100;
}

#loader {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  margin-top: -100px;
  margin-left: -100px;
  text-align: center;
  color: #2c2e2a;
  z-index: 2;
}

img {
  max-width: 100%;
}

.eng {
  font-family: "Playfair Display", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.container {
  position: relative;
  width: 100vw;
  overflow-x: hidden;
}
.container .inner {
  position: relative;
  margin-left: auto;
  margin-right: auto;
}
.container .btn.arrow {
  color: #fff;
  position: absolute;
  opacity: 0.55;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
@media (max-width: 768px) {
  .container .btn.arrow {
    font-size: 5.1282051282vw;
  }
}
@media (min-width: 769px) {
  .container .btn.arrow {
    font-size: 20px;
  }
}
.container .btn.arrow span {
  display: inline-block;
}
.container .btn.arrow:after {
  content: "";
  display: inline-block;
  background-image: url(../images/common/btn_arrow_bg.png);
  background-repeat: no-repeat;
  background-position: right center;
  overflow: hidden;
  position: absolute;
}
@media (max-width: 768px) {
  .container .btn.arrow:after {
    background-size: auto 5.1282051282vw;
    width: 20.5128205128vw;
    height: 5.1282051282vw;
    top: -1vw;
    margin-left: 5.1282051282vw;
  }
}
@media (min-width: 769px) {
  .container .btn.arrow:after {
    background-size: 148px 19px;
    width: 78px;
    height: 20px;
    top: 0;
    margin-left: 20px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
  }
}
.container .btn.arrow:hover {
  opacity: 1;
}
@media (min-width: 769px) {
  .container .btn.arrow:hover:after {
    width: 148px;
  }
}
.container header {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: fixed;
  z-index: 50;
}
@media (max-width: 768px) {
  .container header {
    margin: 3.8461538462vw 0 0 0;
    width: 100%;
  }
}
@media (min-width: 769px) {
  .container header {
    margin: auto;
    top: 2.5vw;
    left: 0;
    right: 0;
    width: 89.0625vw;
  }
}
.container header .logo {
  display: block;
}
@media (max-width: 768px) {
  .container header .logo {
    width: 26.9230769231vw;
    margin-left: 3.8461538462vw;
    z-index: 50;
  }
}
@media (min-width: 769px) {
  .container header .logo {
    width: 142px;
    height: auto;
  }
}
.container header .logo img {
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
.container header .logo.is-overlap .blk, .container header .logo.is-menu-open .blk {
  opacity: 0; /* 黒が消える */
}
.container header .logo.is-overlap .gray, .container header .logo.is-menu-open .gray {
  opacity: 1 !important; /* グレーが浮かび上がる */
}
@media (max-width: 768px) {
  .container header .spNav {
    background-image: url(../images/common/sp_navbtn_d.png);
    background-repeat: no-repeat;
    background-size: 10.2564102564vw 7.1794871795vw;
    width: 7.6923076923vw;
    height: 7.6923076923vw;
    position: absolute;
    top: 5.1282051282vw;
    right: 3.8461538462vw;
    cursor: pointer;
    z-index: 100;
  }
}
@media (min-width: 769px) {
  .container header .spNav {
    display: none;
  }
}
@media (max-width: 768px) {
  .container header .spNav.active {
    background-image: url(../images/common/sp_navbtn_close.png);
    background-size: 7.6923076923vw 7.6923076923vw;
  }
}
@media (max-width: 768px) {
  .container header nav {
    display: none; /* 初期状態は非表示（JSで開閉する） */
    /* ▼ メニューが開いた時のスマホ用デザイン ▼ */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(44, 46, 42, 0.95);
    padding: 35.8974358974vw 0 25.641025641vw 0;
  }
}
@media (min-width: 769px) {
  .container header nav {
    position: absolute;
    top: 1.953125vw;
    right: 0;
  }
}
@media (min-width: 769px) {
  .container header nav ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@media (max-width: 768px) {
  .container header nav ul li {
    margin-top: 10.2564102564vw;
  }
}
@media (min-width: 769px) {
  .container header nav ul li {
    margin-left: 2.34375vw;
  }
}
@media (max-width: 768px) {
  .container header nav ul li:first-child {
    margin-top: 0;
  }
}
.container header nav ul li a {
  color: #fff;
}
@media (max-width: 768px) {
  .container header nav ul li a {
    display: block;
    font-size: 5.8974358974vw;
    text-align: center;
  }
}
@media (min-width: 769px) {
  .container header nav ul li a {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    opacity: 1;
  }
}
@media (min-width: 769px) {
  .container header nav ul li a:hover {
    opacity: 0.7;
  }
}
.container footer {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #a2a3a4;
}
@media (max-width: 768px) {
  .container footer {
    margin-top: 25.641025641vw;
  }
}
@media (min-width: 769px) {
  .container footer {
    width: 100%;
    height: 220px;
    padding-top: 105px;
  }
}
@media (max-width: 768px) {
  .container footer .inner {
    padding: 12.8205128205vw 15.3846153846vw;
  }
}
@media (min-width: 769px) {
  .container footer .inner {
    margin: 0 auto;
    width: 980px;
  }
}
@media (max-width: 768px) {
  .container footer .inner .logo {
    display: none;
  }
}
@media (min-width: 769px) {
  .container footer .inner .logo {
    display: block;
    width: 105px;
  }
}
@media (max-width: 768px) {
  .container footer .inner .name {
    font-size: 3.5897435897vw;
    line-height: 2;
  }
}
@media (min-width: 769px) {
  .container footer .inner .name {
    position: absolute;
    font-size: 14px;
    line-height: 1.85;
    letter-spacing: 0.2em;
    left: 140px;
    bottom: 0;
  }
}
@media (max-width: 768px) {
  .container footer .inner .sns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 37.1794871795vw;
    margin: 11.5384615385vw auto 0 auto;
  }
}
@media (min-width: 769px) {
  .container footer .inner .sns {
    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    top: 25px;
    right: 0;
  }
}
@media (max-width: 768px) {
  .container footer .inner .sns li {
    width: 7.6923076923vw;
    height: 7.6923076923vw;
  }
}
@media (min-width: 769px) {
  .container footer .inner .sns li {
    margin-left: 25px;
    width: 20px;
    height: 20px;
  }
}
.container footer .inner .sns li a img {
  opacity: 1;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
@media (min-width: 769px) {
  .container footer .inner .sns li a:hover img {
    opacity: 0.5;
  }
}
.container footer .inner .copyrights {
  line-height: 1;
}
@media (max-width: 768px) {
  .container footer .inner .copyrights {
    font-size: 3.0769230769vw;
    margin-top: 7.6923076923vw;
    text-align: center;
  }
}
@media (min-width: 769px) {
  .container footer .inner .copyrights {
    position: absolute;
    font-size: 12px;
    letter-spacing: 0.2em;
    right: 0;
    bottom: 0;
  }
}

input:focus,
textarea:focus {
  outline: none;
}

input[type=button],
input[type=text],
input[type=email],
input[type=submit],
textarea,
select {
  -webkit-appearance: none;
  border-radius: 0;
}

@media (max-width: 768px) {
  .disp_pc {
    display: none;
  }
}
@media (min-width: 769px) {
  .disp_pc {
    display: block;
  }
}

@media (max-width: 768px) {
  .disp_sp {
    display: block;
  }
}
@media (min-width: 769px) {
  .disp_sp {
    display: none;
  }
}

#top header {
  /* _top.scss または main.scss の h1.logo 部分に追記 */
}
#top header h1.logo {
  position: relative; /* 子要素(画像)を重ねるための基準点 */
}
#top header h1.logo img {
  /* 0.4秒かけて滑らかに透明度を変化させる */
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
#top header h1.logo img.gray {
  opacity: 0; /* 初期状態はグレーを透明に */
  position: absolute; /* 黒ロゴの上にぴったり重ねる */
  top: 0;
  left: 0;
  width: 100%; /* 黒ロゴと同じサイズにする */
  height: auto;
}
#top header h1.logo {
  /* ▼ JSで 'is-overlap' クラスが付与された時の状態 ▼ */
}
#top header h1.logo.is-overlap .blk {
  opacity: 0; /* 黒が消える */
}
#top header h1.logo.is-overlap .gray {
  opacity: 1; /* グレーが浮かび上がる */
}
#top .mainvisual {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: hidden;
}
@media (min-width: 769px) {
  #top .mainvisual {
    width: 100%;
    height: 54.6875vw;
  }
}
#top .mainvisual .catch {
  color: #fff;
  position: absolute;
  z-index: 1;
}
@media (max-width: 768px) {
  #top .mainvisual .catch {
    font-size: 13.8461538462vw;
    line-height: 1.05;
  }
}
@media (min-width: 769px) {
  #top .mainvisual .catch {
    font-size: 8.203125vw;
    line-height: 1.05;
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider {
    width: 100%;
    height: 100vh;
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider {
    width: 100%;
    height: 54.6875vw;
  }
}
#top .mainvisual .slider .slider-img {
  background-repeat: no-repeat;
  background-position: center;
  width: 100%;
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img {
    background-size: cover;
    height: 100vh;
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img {
    background-size: 100%;
    height: 54.6875vw;
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img.slider-img-01 {
    background-image: url(../images/top/mv_001@2x.jpg);
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img.slider-img-01 {
    background-image: url(../images/top/mv_001@2x.jpg);
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img.slider-img-03 {
    background-image: url(../images/top/mv_003@2x.jpg);
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img.slider-img-03 {
    background-image: url(../images/top/mv_003@2x.jpg);
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img.slider-img-04 {
    background-image: url(../images/top/mv_004@2x.jpg);
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img.slider-img-04 {
    background-image: url(../images/top/mv_004@2x.jpg);
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img.slider-img-05 {
    background-image: url(../images/top/mv_005@2x.jpg);
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img.slider-img-05 {
    background-image: url(../images/top/mv_005@2x.jpg);
  }
}
@media (max-width: 768px) {
  #top .mainvisual .slider .slider-img.slider-img-06 {
    background-image: url(../images/top/mv_006@2x.jpg);
  }
}
@media (min-width: 769px) {
  #top .mainvisual .slider .slider-img.slider-img-06 {
    background-image: url(../images/top/mv_006@2x.jpg);
  }
}
#top .contents section {
  position: relative;
}
#top .contents section.intro {
  text-align: center;
}
@media (max-width: 768px) {
  #top .contents section.intro {
    padding-top: 28.2051282051vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.intro {
    padding-top: 14.0625vw;
  }
}
#top .contents section.intro h2 {
  /* --- 追記: アニメーションの初期状態 --- */
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  -webkit-transition: opacity 1.2s ease, -webkit-transform 1.2s ease;
  transition: opacity 1.2s ease, -webkit-transform 1.2s ease;
  transition: opacity 1.2s ease, transform 1.2s ease;
  transition: opacity 1.2s ease, transform 1.2s ease, -webkit-transform 1.2s ease;
  /* ---------------------------------- */
  letter-spacing: 0.2em;
}
@media (max-width: 768px) {
  #top .contents section.intro h2 {
    font-size: 7.6923076923vw;
    line-height: 1.4;
  }
}
@media (min-width: 769px) {
  #top .contents section.intro h2 {
    font-size: 2.96875vw;
    line-height: 1.75;
  }
}
#top .contents section.intro h2 {
  /* --- 追記: アニメーション実行時の状態 --- */
}
#top .contents section.intro h2.is-animated {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
#top .contents section.intro p {
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  -webkit-transition: opacity 1.2s ease, -webkit-transform 1.2s ease;
  transition: opacity 1.2s ease, -webkit-transform 1.2s ease;
  transition: opacity 1.2s ease, transform 1.2s ease;
  transition: opacity 1.2s ease, transform 1.2s ease, -webkit-transform 1.2s ease;
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s; /* 💡 h2より0.3秒遅らせる */
}
@media (max-width: 768px) {
  #top .contents section.intro p {
    font-size: 3.5897435897vw;
    letter-spacing: 0.15em;
    line-height: 3;
    margin-top: 12.8205128205vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.intro p {
    font-size: 1.25vw;
    letter-spacing: 0.2em;
    line-height: 3;
    margin-top: 6.25vw;
  }
}
#top .contents section.intro p.is-animated {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
#top .contents section.property {
  position: relative;
}
#top .contents section.property h2 {
  /* 親のh2自体の移動は消して、中身の文字を制御する */
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}
#top .contents section.property h2 .char {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(20%);
          transform: translateY(20%);
  -webkit-transition: opacity 0.8s ease-out, -webkit-transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.8s ease-out, -webkit-transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.8s ease-out, transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.8s ease-out, transform 1s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
#top .contents section.property h2 {
  /* 画面に入った時(is-animatedがついた時)の動き */
}
#top .contents section.property h2.is-animated .char {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
#top .contents section.property h2.is-animated {
  /* 💡1文字ずつ遅延をかける（1文字目から20文字目まで） */
}
#top .contents section.property h2.is-animated .char:nth-child(1) {
  -webkit-transition-delay: 0.09s;
          transition-delay: 0.09s;
}
#top .contents section.property h2.is-animated .char:nth-child(2) {
  -webkit-transition-delay: 0.18s;
          transition-delay: 0.18s;
}
#top .contents section.property h2.is-animated .char:nth-child(3) {
  -webkit-transition-delay: 0.27s;
          transition-delay: 0.27s;
}
#top .contents section.property h2.is-animated .char:nth-child(4) {
  -webkit-transition-delay: 0.36s;
          transition-delay: 0.36s;
}
#top .contents section.property h2.is-animated .char:nth-child(5) {
  -webkit-transition-delay: 0.45s;
          transition-delay: 0.45s;
}
#top .contents section.property h2.is-animated .char:nth-child(6) {
  -webkit-transition-delay: 0.54s;
          transition-delay: 0.54s;
}
#top .contents section.property h2.is-animated .char:nth-child(7) {
  -webkit-transition-delay: 0.63s;
          transition-delay: 0.63s;
}
#top .contents section.property h2.is-animated .char:nth-child(8) {
  -webkit-transition-delay: 0.72s;
          transition-delay: 0.72s;
}
#top .contents section.property h2.is-animated .char:nth-child(9) {
  -webkit-transition-delay: 0.81s;
          transition-delay: 0.81s;
}
#top .contents section.property h2.is-animated .char:nth-child(10) {
  -webkit-transition-delay: 0.9s;
          transition-delay: 0.9s;
}
#top .contents section.property h2.is-animated .char:nth-child(11) {
  -webkit-transition-delay: 0.99s;
          transition-delay: 0.99s;
}
#top .contents section.property h2.is-animated .char:nth-child(12) {
  -webkit-transition-delay: 1.08s;
          transition-delay: 1.08s;
}
#top .contents section.property h2.is-animated .char:nth-child(13) {
  -webkit-transition-delay: 1.17s;
          transition-delay: 1.17s;
}
#top .contents section.property h2.is-animated .char:nth-child(14) {
  -webkit-transition-delay: 1.26s;
          transition-delay: 1.26s;
}
#top .contents section.property h2.is-animated .char:nth-child(15) {
  -webkit-transition-delay: 1.35s;
          transition-delay: 1.35s;
}
#top .contents section.property h2.is-animated .char:nth-child(16) {
  -webkit-transition-delay: 1.44s;
          transition-delay: 1.44s;
}
#top .contents section.property h2.is-animated .char:nth-child(17) {
  -webkit-transition-delay: 1.53s;
          transition-delay: 1.53s;
}
#top .contents section.property h2.is-animated .char:nth-child(18) {
  -webkit-transition-delay: 1.62s;
          transition-delay: 1.62s;
}
#top .contents section.property h2.is-animated .char:nth-child(19) {
  -webkit-transition-delay: 1.71s;
          transition-delay: 1.71s;
}
#top .contents section.property h2.is-animated .char:nth-child(20) {
  -webkit-transition-delay: 1.8s;
          transition-delay: 1.8s;
}
#top .contents section.property h2.is-animated .char:nth-child(21) {
  -webkit-transition-delay: 1.89s;
          transition-delay: 1.89s;
}
#top .contents section.property h2.is-animated .char:nth-child(22) {
  -webkit-transition-delay: 1.98s;
          transition-delay: 1.98s;
}
#top .contents section.property h2.is-animated .char:nth-child(23) {
  -webkit-transition-delay: 2.07s;
          transition-delay: 2.07s;
}
#top .contents section.property h2.is-animated .char:nth-child(24) {
  -webkit-transition-delay: 2.16s;
          transition-delay: 2.16s;
}
#top .contents section.property h2.is-animated .char:nth-child(25) {
  -webkit-transition-delay: 2.25s;
          transition-delay: 2.25s;
}
#top .contents section.property h2.is-animated .char:nth-child(26) {
  -webkit-transition-delay: 2.34s;
          transition-delay: 2.34s;
}
#top .contents section.property h2.is-animated .char:nth-child(27) {
  -webkit-transition-delay: 2.43s;
          transition-delay: 2.43s;
}
#top .contents section.property h2.is-animated .char:nth-child(28) {
  -webkit-transition-delay: 2.52s;
          transition-delay: 2.52s;
}
#top .contents section.property h2.is-animated .char:nth-child(29) {
  -webkit-transition-delay: 2.61s;
          transition-delay: 2.61s;
}
#top .contents section.property h2.is-animated .char:nth-child(30) {
  -webkit-transition-delay: 2.7s;
          transition-delay: 2.7s;
}
#top .contents section.property h2.is-animated .char:nth-child(31) {
  -webkit-transition-delay: 2.79s;
          transition-delay: 2.79s;
}
#top .contents section.property h2.is-animated .char:nth-child(32) {
  -webkit-transition-delay: 2.88s;
          transition-delay: 2.88s;
}
#top .contents section.property h2.is-animated .char:nth-child(33) {
  -webkit-transition-delay: 2.97s;
          transition-delay: 2.97s;
}
#top .contents section.property h2.is-animated .char:nth-child(34) {
  -webkit-transition-delay: 3.06s;
          transition-delay: 3.06s;
}
#top .contents section.property h2.is-animated .char:nth-child(35) {
  -webkit-transition-delay: 3.15s;
          transition-delay: 3.15s;
}
#top .contents section.property h2.is-animated .char:nth-child(36) {
  -webkit-transition-delay: 3.24s;
          transition-delay: 3.24s;
}
#top .contents section.property h2.is-animated .char:nth-child(37) {
  -webkit-transition-delay: 3.33s;
          transition-delay: 3.33s;
}
#top .contents section.property h2.is-animated .char:nth-child(38) {
  -webkit-transition-delay: 3.42s;
          transition-delay: 3.42s;
}
#top .contents section.property h2.is-animated .char:nth-child(39) {
  -webkit-transition-delay: 3.51s;
          transition-delay: 3.51s;
}
#top .contents section.property h2.is-animated .char:nth-child(40) {
  -webkit-transition-delay: 3.6s;
          transition-delay: 3.6s;
}
#top .contents section.property h2.is-animated {
  /* 日本語部分も少し遅れて出す */
}
#top .contents section.property h2.is-animated span:not(.char) {
  opacity: 0;
  -webkit-animation: fadeIn 1s forwards 0.8s;
          animation: fadeIn 1s forwards 0.8s;
}
@media (max-width: 768px) {
  #top .contents section.property h2 {
    position: relative;
    font-size: 9.7435897436vw;
    line-height: 1.2;
    z-index: 10;
  }
}
@media (min-width: 769px) {
  #top .contents section.property h2 {
    position: absolute;
    font-size: 6.09375vw;
    line-height: 1.18;
    z-index: 10;
  }
}
#top .contents section.property h2 .jpn {
  display: block;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0.2em;
}
@media (max-width: 768px) {
  #top .contents section.property h2 .jpn {
    font-size: 3.5897435897vw;
    margin-top: 1.2em;
  }
}
@media (min-width: 769px) {
  #top .contents section.property h2 .jpn {
    font-size: 1.25vw;
    margin-top: 2em;
  }
}
@-webkit-keyframes fadeIn {
  to {
    opacity: 1;
  }
}
@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
#top .contents section.property .img-box {
  display: block;
  position: absolute;
  background-color: #2c2e2a;
  overflow: hidden; /* 💡はみ出し防止（必須） */
}
@media (max-width: 768px) {
  #top .contents section.property .img-box.img-01-001, #top .contents section.property .img-box.img-02-001 {
    width: 82.5641025641vw;
    height: 71.7948717949vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box.img-01-001, #top .contents section.property .img-box.img-02-001 {
    width: 62.1875vw;
    height: 695px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property .img-box.img-01-002, #top .contents section.property .img-box.img-02-002 {
    width: 54.8717948718vw;
    height: 38.4615384615vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box.img-01-002, #top .contents section.property .img-box.img-02-002 {
    width: 41.40625vw;
    height: 370px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property .img-box.img-01-003, #top .contents section.property .img-box.img-02-003 {
    width: 45.1282051282vw;
    height: 31.7948717949vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box.img-01-003, #top .contents section.property .img-box.img-02-003 {
    width: 33.984375vw;
    height: 307px;
  }
}
#top .contents section.property .img-box .img-box-bg {
  display: block;
  position: relative;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 1;
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
  will-change: transform;
}
@media (max-width: 768px) {
  #top .contents section.property .img-box .img-box-bg.parallaxL {
    width: 82.5641025641vw;
    height: 107.6923076923vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box .img-box-bg.parallaxL {
    width: 62.1875vw;
    height: 834px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property .img-box .img-box-bg.parallaxH {
    width: 65.8461538462vw;
    height: 38.4615384615vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box .img-box-bg.parallaxH {
    width: 49.6875vw;
    height: 370px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property .img-box .img-box-bg.parallaxV {
    width: 45.1282051282vw;
    height: 46.1025641026vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property .img-box .img-box-bg.parallaxV {
    width: 33.984375vw;
    height: 368.4px;
  }
}
#top .contents section.property .img-box:hover .img-box-bg {
  opacity: 0.6;
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 {
    height: 182.0512820513vw;
    margin-top: 33.3333333333vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 {
    margin-top: 210px;
    min-height: 1183px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 h2 {
    position: absolute;
    bottom: 18.4615384615vw;
    left: 16.4102564103vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 h2 {
    top: 115px;
    right: 12.109375vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 h2 span {
    text-align: right;
  }
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 .img-01-001 {
    left: 0;
    top: 0;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 .img-01-001 {
    left: 0;
    top: 0;
  }
}
#top .contents section.property.property-01 .img-01-001 .img-box-bg {
  background-image: url(../images/top/property_01_001.jpg);
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 .img-01-002 {
    right: 3.5897435897vw;
    top: 61.5384615385vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 .img-01-002 {
    right: 10.9375vw;
    top: 596px;
  }
}
#top .contents section.property.property-01 .img-01-002 .img-box-bg {
  background-image: url(../images/top/property_01_002.jpg);
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 .img-01-003 {
    left: 16.6666666667vw;
    top: 90.5128205128vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 .img-01-003 {
    left: 16.5625vw;
    top: 875px;
  }
}
#top .contents section.property.property-01 .img-01-003 .img-box-bg {
  background-image: url(../images/top/property_01_003.jpg);
}
#top .contents section.property.property-01 .btn {
  position: absolute;
}
@media (max-width: 768px) {
  #top .contents section.property.property-01 .btn {
    left: 40vw;
    bottom: 0;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-01 .btn {
    left: 66.640625vw;
    bottom: 33px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 {
    margin-top: 32.0512820513vw;
    height: 180.7692307692vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 {
    height: 1195px;
    margin-top: 240px;
  }
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 h2 {
    left: 16.6666666667vw;
    top: 133.3333333333vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 h2 {
    top: 53px;
    left: 12.34375vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 h2 span {
    text-align: left;
  }
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 .img-02-001 {
    right: 0;
    top: 0;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 .img-02-001 {
    right: 0;
    top: 0;
  }
}
#top .contents section.property.property-02 .img-02-001 .img-box-bg {
  background-image: url(../images/top/property_02_001.jpg);
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 .img-02-002 {
    left: 3.5897435897vw;
    top: 61.5384615385vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 .img-02-002 {
    left: 6.484375vw;
    top: 510px;
  }
}
#top .contents section.property.property-02 .img-02-002 .img-box-bg {
  background-image: url(../images/top/property_02_002.jpg);
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 .img-02-003 {
    right: 16.6666666667vw;
    top: 90.5128205128vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 .img-02-003 {
    right: 7.1875vw;
    bottom: 0;
  }
}
#top .contents section.property.property-02 .img-02-003 .img-box-bg {
  background-image: url(../images/top/property_02_003.jpg);
}
#top .contents section.property.property-02 .btn {
  position: absolute;
}
@media (max-width: 768px) {
  #top .contents section.property.property-02 .btn {
    left: 40vw;
    bottom: 0;
  }
}
@media (min-width: 769px) {
  #top .contents section.property.property-02 .btn {
    left: 11.71875vw;
    bottom: 38px;
  }
}
@media (max-width: 768px) {
  #top .contents section.gallery {
    margin-top: 37.1794871795vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.gallery {
    margin-top: 200px;
  }
}
#top .contents section.gallery h2 {
  text-align: center;
}
@media (max-width: 768px) {
  #top .contents section.gallery h2 {
    font-size: 8.2051282051vw;
    margin-bottom: 7.6923076923vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.gallery h2 {
    font-size: 45px;
    margin-bottom: 30px;
  }
}
#top .contents section.gallery .gallery-slider {
  line-height: 0;
  width: 100%;
}
#top .contents section.gallery .gallery-slider div {
  display: block;
  margin: 0;
  padding: 0;
}
#top .contents section.gallery .gallery-slider .slick-list {
  width: 100%;
}
@media (min-width: 769px) {
  #top .contents section.gallery .gallery-slider .gallery-slider-img {
    width: 24.21875vw;
    overflow: hidden;
  }
}
#top .contents section.gallery .gallery-slider .gallery-slider-img img {
  display: block;
}
@media (min-width: 769px) {
  #top .contents section.gallery .gallery-slider .gallery-slider-img img {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@media (min-width: 769px) {
  #top .contents section.gallery .gallery-slider .gallery-slider-img:hover img {
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
  }
}
@media (min-width: 769px) {
  #top .contents section.gallery .gallery-slider.disp_sp {
    display: none !important;
  }
}
@media (max-width: 768px) {
  #top .contents section.gallery .gallery-slider.disp_pc {
    display: none !important;
  }
}
#top .contents section.contact {
  overflow-y: hidden;
  position: relative;
}
@media (max-width: 768px) {
  #top .contents section.contact {
    background-size: 120% auto;
    width: 100%;
    height: 35.8974358974vw;
    margin-top: 7.6923076923vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.contact {
    background-size: 100vw auto;
    height: 210px;
    margin-top: 100px;
  }
}
#top .contents section.contact a {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  z-index: 1;
}
#top .contents section.contact h2 {
  color: #fff;
  line-height: 1;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  #top .contents section.contact h2 {
    font-size: 8.2051282051vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.contact h2 {
    font-size: 45px;
    top: -10px;
  }
}
#top .contents section.contact .img-box-bg {
  position: absolute;
  top: -30%;
  left: 0;
  width: 100%;
  height: 160%;
  background-image: url(../images/top/contact_bg.jpg);
  background-size: cover;
  background-position: center;
  z-index: 1;
  will-change: transform;
}
@media (max-width: 768px) {
  #top .contents section.company .inner {
    margin-top: 8.9743589744vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.company .inner {
    padding: 45px 0;
    width: 980px;
  }
}
@media (max-width: 768px) {
  #top .contents section.company .inner .btn.arrow {
    right: 30vw;
  }
}
@media (min-width: 769px) {
  #top .contents section.company .inner .btn.arrow {
    position: absolute;
    right: 96px;
    left: auto;
  }
}

/* アニメーションを指定 */
@-webkit-keyframes fadezoom {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
    /* 拡大率 */
  }
}
@keyframes fadezoom {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
    /* 拡大率 */
  }
}
.add-zoom {
  -webkit-animation: fadezoom 10s 0s forwards;
          animation: fadezoom 10s 0s forwards;
}

input[type=button],
input[type=text],
input[type=email],
input[type=submit],
textarea,
select {
  -webkit-appearance: none;
  border-radius: 0;
}

@media (max-width: 768px) {
  .disp_pc {
    display: none;
  }
}
@media (min-width: 769px) {
  .disp_pc {
    display: block;
  }
}

@media (max-width: 768px) {
  .disp_sp {
    display: block;
  }
}
@media (min-width: 769px) {
  .disp_sp {
    display: none;
  }
}

@media (max-width: 768px) {
  body.sub header .logo {
    position: relative;
  }
}
body.sub .title_wrap {
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 768px) {
  body.sub .title_wrap {
    width: 84.6153846154vw;
    padding-top: 47.4358974359vw;
  }
}
@media (min-width: 769px) {
  body.sub .title_wrap {
    width: 960px;
    padding-top: 206px;
  }
}
body.sub .title_wrap h1 {
  display: inline-block;
}
@media (max-width: 768px) {
  body.sub .title_wrap h1 {
    font-size: 8.2051282051vw;
  }
}
@media (min-width: 769px) {
  body.sub .title_wrap h1 {
    font-size: 45px;
  }
}
body.sub .title_wrap p {
  display: inline-block;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  body.sub .title_wrap p {
    font-size: 3.5897435897vw;
    line-height: 1.5;
    margin-top: 3em;
  }
}
@media (min-width: 769px) {
  body.sub .title_wrap p {
    font-size: 14px;
    margin-left: 100px;
  }
}
@media (max-width: 768px) {
  body.sub .contents .inner {
    width: 84.6153846154vw;
  }
}
@media (min-width: 769px) {
  body.sub .contents .inner {
    width: 960px;
  }
}

#gallery .gallery_container {
  display: -ms-grid;
  display: grid;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 768px) {
  #gallery .gallery_container {
    margin-top: 11.5384615385vw;
    width: 84.6153846154vw;
    -ms-grid-columns: (38.4615384615vw)[2];
    grid-template-columns: repeat(2, 38.4615384615vw);
    row-gap: 16.6666666667vw;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container {
    margin-top: 90px;
    width: 960px;
    -ms-grid-columns: (190px)[4];
    grid-template-columns: repeat(4, 190px);
    row-gap: 110px;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box {
    width: 190px;
  }
}
#gallery .gallery_container .gallery_box.is-animated figure:before {
  height: 0; /* 高さを0にしてマスクを消す */
}
#gallery .gallery_container .gallery_box {
  /* ▼ オプション：順番に時間差で開かせたい場合（1番目〜10番目まで） */
}
#gallery .gallery_container .gallery_box:nth-child(1) figure:before {
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(2) figure:before {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(3) figure:before {
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(4) figure:before {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(5) figure:before {
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(6) figure:before {
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(7) figure:before {
  -webkit-transition-delay: 0.7s;
          transition-delay: 0.7s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(8) figure:before {
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(9) figure:before {
  -webkit-transition-delay: 0.9s;
          transition-delay: 0.9s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box:nth-child(10) figure:before {
  -webkit-transition-delay: 1s;
          transition-delay: 1s; /* 0.1秒ずつズラす */
}
#gallery .gallery_container .gallery_box figure {
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  #gallery .gallery_container .gallery_box figure {
    width: 38.4615384615vw;
    height: 45.1282051282vw;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box figure {
    width: 190px;
    height: 126px;
  }
}
#gallery .gallery_container .gallery_box figure img {
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 768px) {
  #gallery .gallery_container .gallery_box figure img {
    width: 38.4615384615vw;
    height: 45.1282051282vw;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box figure img {
    width: 190px;
    height: 126px;
  }
}
#gallery .gallery_container .gallery_box figure:before {
  content: "";
  background-color: #2c2e2a;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0; /* 💡変更：bottomではなくtopにすると「上に抜ける」動きになります */
  z-index: 1; /* 💡追記：画像より手前に配置 */
  /* 💡追記：なめらかなアニメーションの速度とイージング */
  -webkit-transition: height 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition: height 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
#gallery .gallery_container .gallery_box h2 {
  color: #fff;
  position: relative;
}
@media (max-width: 768px) {
  #gallery .gallery_container .gallery_box h2 {
    font-size: 4.1025641026vw;
    line-height: 1.25;
    margin-top: 3.8461538462vw;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box h2 {
    font-size: 16px;
    line-height: 1.5;
    margin-top: 2em;
  }
}
#gallery .gallery_container .gallery_box h2:before {
  content: "";
  background-color: #fff;
  display: block;
  width: 0%;
  height: 1px;
  position: absolute;
  left: 0;
  -webkit-transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box h2:before {
    top: -25px;
  }
}
#gallery .gallery_container .gallery_box p.jpn {
  color: #808080;
  line-height: 1.5;
}
@media (max-width: 768px) {
  #gallery .gallery_container .gallery_box p.jpn {
    font-size: 3.0769230769vw;
    margin-top: 3.8461538462vw;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box p.jpn {
    font-size: 13px;
    margin-top: 0.8em;
  }
}
@media (min-width: 769px) {
  #gallery .gallery_container .gallery_box:hover h2:before {
    width: 100%;
  }
}

#company .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh; /* 最低でも画面いっぱいの高さ */
  min-height: 100dvh; /* スマホのアドレスバー対策 */
}
#company .contents {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media (max-width: 768px) {
  #company .contents .inner dl {
    border-top: 1px solid #808080;
    font-size: 3.5897435897vw;
    letter-spacing: 0.075em;
    margin: 12vw 0 0 0;
  }
}
@media (min-width: 769px) {
  #company .contents .inner dl {
    border-bottom: 1px solid #808080;
    font-size: 14px;
    letter-spacing: 0.14em;
    margin: 110px auto 0;
    width: 640px;
  }
}
#company .contents .inner dl dt {
  color: #808080;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  -moz-text-align-last: justify;
       text-align-last: justify;
}
@media (max-width: 768px) {
  #company .contents .inner dl dt {
    padding: 6.1538461538vw 0 1.8vw 3.0769230769vw;
    width: 25.641025641vw;
  }
}
@media (min-width: 769px) {
  #company .contents .inner dl dt {
    float: left;
    width: 130px;
    padding: 20px 20px;
  }
}
#company .contents .inner dl dd {
  color: #fff;
}
@media (max-width: 768px) {
  #company .contents .inner dl dd {
    border-bottom: 1px solid #808080;
    padding: 0 3.0769230769vw 6.1538461538vw 3.0769230769vw;
  }
}
@media (min-width: 769px) {
  #company .contents .inner dl dd {
    border-top: 1px solid #808080;
    padding: 20px 20px 20px 165px;
  }
}
#company .contents .inner .btn.arrow {
  position: relative;
  display: block;
  text-align: center;
}
@media (max-width: 768px) {
  #company .contents .inner .btn.arrow {
    margin-top: 21.7948717949vw;
  }
}
@media (min-width: 769px) {
  #company .contents .inner .btn.arrow {
    margin-top: 120px;
  }
}

@media (min-width: 769px) {
  #contact .contents .inner {
    width: 750px;
  }
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container {
    margin-top: 24.358974359vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container {
    margin-top: 90px;
  }
}
#contact .contents .inner .contact_container .upper dl {
  margin: 0;
  padding: 0;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .upper dl dt {
    font-size: 4.1025641026vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dt {
    float: left;
    font-size: 16px;
  }
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .upper dl dd {
    font-size: 3.5897435897vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dd {
    font-size: 14px;
    margin-left: 190px;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dd .select {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .upper dl dd .select label {
    display: block;
    margin-top: 6.4102564103vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dd .select label {
    margin-right: 30px;
  }
}
#contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border: 1px solid #646464;
  position: relative;
  cursor: pointer;
  background: transparent;
  display: inline-block;
  vertical-align: text-top;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox] {
    margin: 0 1.2820512821vw 0 0;
    width: 5.1282051282vw;
    height: 5.1282051282vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox] {
    margin: 0 10px 0 0;
    width: 15px;
    height: 15px;
    top: 3px;
  }
}
#contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox]:checked::after {
    width: 1.5vw;
    height: 2.5vw;
    left: 1.25vw;
    top: 0.25vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .upper dl dd .select label input[type=checkbox]:checked::after {
    left: 3px;
    top: -2px;
    width: 6px;
    height: 10px;
  }
}
#contact .contents .inner .contact_container .middle {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .middle {
    margin-top: 19vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .middle {
    width: 750px;
    margin-top: 50px;
  }
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .middle .middle_wrap {
    border-bottom: 1px solid #646464;
    margin-top: 9vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .middle .middle_wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 50px;
    width: 100%;
  }
}
#contact .contents .inner .contact_container .middle .middle_wrap p {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #808080;
  display: inline-block;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .middle .middle_wrap p {
    font-size: 3.5897435897vw;
    width: 25.641025641vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .middle .middle_wrap p {
    font-size: 14px;
    width: 20%;
    padding: 15px 0;
  }
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text],
#contact .contents .inner .contact_container .middle .middle_wrap input[type=email],
#contact .contents .inner .contact_container .middle .middle_wrap input[type=tel] {
  background-color: transparent;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #808080;
  display: inline-block;
  border: none;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=text],
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=email],
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel] {
    font-size: 3.5897435897vw;
    padding: 2.5641025641vw;
    width: 57.6923076923vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=text],
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=email],
  #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel] {
    border-bottom: 1px solid #646464;
    display: block;
    font-size: 14px;
    padding: 15px 10px;
    width: 100%;
  }
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text]::-webkit-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=email]::-webkit-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel]::-webkit-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text]::-moz-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=email]::-moz-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel]::-moz-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text]:-ms-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=email]:-ms-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel]:-ms-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text]::-ms-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=email]::-ms-input-placeholder, #contact .contents .inner .contact_container .middle .middle_wrap input[type=tel]::-ms-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .middle .middle_wrap input[type=text]::placeholder,
#contact .contents .inner .contact_container .middle .middle_wrap input[type=email]::placeholder,
#contact .contents .inner .contact_container .middle .middle_wrap input[type=tel]::placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom textarea {
  background-color: transparent;
  border-radius: 5px !important;
  border: 1px solid #646464;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #808080;
  width: 100%;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .bottom textarea {
    font-size: 3.5897435897vw;
    padding: 2.5641025641vw;
    height: 55.3846153846vw;
    margin-top: 15.3846153846vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .bottom textarea {
    font-size: 14px;
    margin-top: 35px;
    padding: 10px;
    height: 216px;
  }
}
#contact .contents .inner .contact_container .bottom textarea::-webkit-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom textarea::-moz-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom textarea:-ms-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom textarea::-ms-input-placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom textarea::placeholder {
  color: #575757;
}
#contact .contents .inner .contact_container .bottom button,
#contact .contents .inner .contact_container .bottom input[type=submit] {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-style: normal;
  background-color: #3c3c3c;
  background-color: #3c3c3c;
  border: none;
  color: #fff;
  display: block;
  line-height: 1;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
@media (max-width: 768px) {
  #contact .contents .inner .contact_container .bottom button,
  #contact .contents .inner .contact_container .bottom input[type=submit] {
    border-radius: 5.1282051282vw;
    font-size: 3.5897435897vw;
    margin: 17.9487179487vw auto 0 auto;
    padding: 3.5897435897vw 0;
    width: 55.1282051282vw;
  }
}
@media (min-width: 769px) {
  #contact .contents .inner .contact_container .bottom button,
  #contact .contents .inner .contact_container .bottom input[type=submit] {
    border-radius: 20px;
    font-size: 14px;
    margin: 70px auto 0 auto;
    padding: 14px 0;
    width: 215px;
  }
}
#contact .contents .inner .contact_container .bottom button:hover,
#contact .contents .inner .contact_container .bottom input[type=submit]:hover {
  background-color: white;
  color: #3c3c3c;
  cursor: pointer;
}
@media (min-width: 769px) {
  #contact .wpcf7-form-control-wrap {
    width: 100%;
  }
}
#contact .wpcf7-turnstile {
  text-align: center;
}
@media (max-width: 768px) {
  #contact .wpcf7-turnstile {
    margin-top: 30px;
  }
}
@media (min-width: 769px) {
  #contact .wpcf7-turnstile {
    margin: 30px auto 0 auto;
  }
}
@media (max-width: 768px) {
  #contact .wpcf7-checkbox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media (max-width: 768px) {
  #contact .wpcf7-checkbox .wpcf7-list-item {
    display: block;
    margin: 6.4102564103vw 0 0 0;
  }
}
@media (min-width: 769px) {
  #contact .wpcf7-checkbox .wpcf7-list-item {
    margin: 0 30px 0 0;
  }
}
#contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border: 1px solid #646464;
  position: relative;
  cursor: pointer;
  background: transparent;
  display: inline-block;
  vertical-align: text-top;
}
@media (max-width: 768px) {
  #contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
    margin: 0 1.2820512821vw 0 0;
    width: 5.1282051282vw;
    height: 5.1282051282vw;
  }
}
@media (min-width: 769px) {
  #contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
    margin: 0 10px 0 0;
    width: 15px;
    height: 15px;
    top: 3px;
  }
}
#contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media (max-width: 768px) {
  #contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked::after {
    width: 1.5vw;
    height: 2.5vw;
    left: 1.25vw;
    top: 0.25vw;
  }
}
@media (min-width: 769px) {
  #contact .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked::after {
    left: 3px;
    top: -2px;
    width: 6px;
    height: 10px;
  }
}

input[type=button],
input[type=text],
input[type=email],
input[type=submit],
textarea,
select {
  -webkit-appearance: none;
  border-radius: 0;
}

@media (max-width: 768px) {
  .disp_pc {
    display: none;
  }
}
@media (min-width: 769px) {
  .disp_pc {
    display: block;
  }
}

@media (max-width: 768px) {
  .disp_sp {
    display: block;
  }
}
@media (min-width: 769px) {
  .disp_sp {
    display: none;
  }
}

@media (max-width: 768px) {
  #detail .container {
    width: 100%;
    height: 100svh;
  }
}
@media (min-width: 769px) {
  #detail .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    height: 100vh;
  }
}
#detail .container .contents {
  position: relative;
}
@media (max-width: 768px) {
  #detail .container .contents {
    width: 100%;
    height: 100vh;
  }
}
@media (min-width: 769px) {
  #detail .container .contents {
    width: 100%;
  }
}
#detail .container .contents .title_box {
  z-index: 1;
}
@media (max-width: 768px) {
  #detail .container .contents .title_box {
    position: fixed;
    bottom: 6.4102564103vw;
    left: 7.6923076923vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .title_box {
    position: absolute;
    width: 100%;
    left: 40px;
    top: 0;
  }
}
#detail .container .contents .title_box h1 {
  color: #fff;
}
@media (max-width: 768px) {
  #detail .container .contents .title_box h1 {
    font-size: 4.1025641026vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .title_box h1 {
    font-size: 16px;
    line-height: 1.5;
  }
}
#detail .container .contents .title_box h1 .jpn {
  color: #a2a3a4;
  display: block;
  letter-spacing: 0.2em;
  margin-top: 1em;
}
@media (max-width: 768px) {
  #detail .container .contents .title_box h1 .jpn {
    font-size: 3.0769230769vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .title_box h1 .jpn {
    font-size: 12px;
  }
}
#detail .container .contents .title_box p.address {
  color: #a2a3a4;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: 1;
}
@media (max-width: 768px) {
  #detail .container .contents .title_box p.address {
    font-size: 3.0769230769vw;
    letter-spacing: 0.2em;
    margin-top: 6.1538461538vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .title_box p.address {
    font-size: 12px;
    letter-spacing: 0.2em;
    margin-top: 35px;
  }
}
#detail .container .contents .back {
  position: fixed;
  display: block;
}
@media (max-width: 768px) {
  #detail .container .contents .back {
    width: 9.2307692308vw;
    height: 9.2307692308vw;
    right: 7.6923076923vw;
    bottom: 7.6923076923vw;
    z-index: 50;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .back {
    width: 27px;
    height: 27px;
    top: 30px;
    right: 30px;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner {
    width: 780px;
  }
}
#detail .container .contents .inner .photo_contaier .slider-for,
#detail .container .contents .inner .photo_contaier .slider-nav {
  line-height: 1;
}
@media (max-width: 768px) {
  #detail .container .contents .inner .photo_contaier .slider-for {
    width: 100%;
    margin: 0;
    position: relative;
    top: 0;
    left: 0;
  }
  #detail .container .contents .inner .photo_contaier .slider-for .slick-list,
  #detail .container .contents .inner .photo_contaier .slider-for .slick-track {
    height: 100% !important;
  }
  #detail .container .contents .inner .photo_contaier .slider-for .items {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    /* ★ここをセンターから「上揃え」に変更 */
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    outline: none;
    padding-top: 30px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; /* パディングを含めて100vhにする */
  }
  #detail .container .contents .inner .photo_contaier .slider-for .items img {
    width: 100%;
    height: 45vh; /* 写真自体の高さは45%を維持 */
    -o-object-fit: cover;
       object-fit: cover;
    /* 必要に応じて、少し上に余白が欲しければ margin-top を入れる */
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slider-nav {
    margin: 65px auto 0 auto;
    width: 570px;
  }
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-list {
  padding: 40px 0 !important;
}
#detail .container .contents .inner .photo_contaier .slider-nav .items {
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
@media (max-width: 768px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .items {
    padding: 0 2vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .items {
    padding: 0 15px;
  }
}
#detail .container .contents .inner .photo_contaier .slider-nav .items img {
  width: 100%;
  height: auto;
  opacity: 0.5;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  display: block;
}
#detail .container .contents .inner .photo_contaier .slider-nav {
  /* Slickが自動で付与する「スライド1枚分」のラッパー */
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center {
  z-index: 10;
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items {
  position: relative;
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::before {
  content: "";
  position: absolute;
  border-top: 1px solid #a2a3a4;
  border-left: 1px solid #a2a3a4;
  z-index: 11;
}
@media (max-width: 768px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::before {
    top: -2.5vw;
    left: -1vw;
    width: 2vw;
    height: 2vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::before {
    top: -12px; /* 画像からの距離（お好みで） */
    left: 0px; /* 画像からの距離（お好みで） */
    width: 20px; /* 線の長さ */
    height: 20px; /* 線の長さ */
  }
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::after {
  content: "";
  position: absolute;
  border-bottom: 1px solid #a2a3a4;
  border-right: 1px solid #a2a3a4;
  z-index: 11;
}
@media (max-width: 768px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::after {
    bottom: -2.5vw;
    right: -1vw;
    width: 2vw;
    height: 2vw;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center .items::after {
    bottom: -12px; /* 画像からの距離（お好みで） */
    right: 0px; /* 画像からの距離（お好みで） */
    width: 20px; /* 線の長さ */
    height: 20px; /* 線の長さ */
  }
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center {
  /* 中身の画像だけを大きくする */
}
#detail .container .contents .inner .photo_contaier .slider-nav .slick-slide.slick-center img {
  opacity: 1;
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slider-nav .slick-list {
    overflow-y: visible !important; /* 拡大分を枠外に見せる */
    padding: 20px 0 !important; /* 上下が切れないように余白を確保 */
  }
}
#detail .container .contents .inner .photo_contaier .slick-next,
#detail .container .contents .inner .photo_contaier .slick-prev {
  background-image: url(../images/common/arrow.svg);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slick-next,
  #detail .container .contents .inner .photo_contaier .slick-prev {
    width: 40px;
    height: 18px;
    top: auto;
    bottom: -125px;
    opacity: 0.5;
    -webkit-transition: 0.4s;
    transition: 0.4s;
  }
}
#detail .container .contents .inner .photo_contaier .slick-next:before,
#detail .container .contents .inner .photo_contaier .slick-prev:before {
  display: none;
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slick-next:hover,
  #detail .container .contents .inner .photo_contaier .slick-prev:hover {
    opacity: 1;
  }
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slick-next {
    right: 20px;
  }
}
#detail .container .contents .inner .photo_contaier .slick-prev {
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}
@media (min-width: 769px) {
  #detail .container .contents .inner .photo_contaier .slick-prev {
    left: 20px;
  }
}