.title_wrap {
  text-align: center;
  margin: 2em 0;
  position: relative;
}

.all_wrap {
  padding-bottom: 3em;
}

.remodal {
  text-align: left;
}

@media only screen and (min-width: 641px) {
  .remodal {
    max-width: 1200px;
  }
}
.f_mon {
  /* ゴシックフォントの場合はこちらを使用 */
  font-family: "Montserrat", sans-serif;
  font-style: italic;
}

.f_serif {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}

.f_gothic_jp {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 900;
}

.bg_yl {
  background-color: #e4e4e4;
}

.bg_lg {
  background-color: #e4e4e4;
}

.bg_slg {
  background-color: #fafafa;
}

/*color*/
.vis_h {
  visibility: hidden;
}

.brPc {
  display: none;
}

@media screen and (min-width: 768px) {
  .brPc {
    display: block;
  }
}
.brSp {
  display: none;
}

@media screen and (max-width: 767px) {
  .brSp {
    display: block;
  }
}
html {
  background: #0a1929;
  font-size: 62.5%;
  font-size: calc(1rem + (1vw - 3.2px) * 0.5);
  min-height: 0vw;
}

@media (max-width: 320px) {
  html {
    font-size: 62.5%;
  }
}
@media (min-width: 1921px) {
  html {
    font-size: 150%;
  }
}
body {
  overflow-x: hidden;
  overflow-y: auto;
  color: #00245f;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  z-index: 0;
}

body.noscroll {
  height: 100vh;
  overflow: hidden;
}

body.bg {
  background-size: cover;
  background-position: 50% 0%;
  background-repeat: no-repeat;
}

body::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.comingsoon {
  background-image: url(../images/comingsoon_back.webp);
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  display: none;
}

.comingsoon .text {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.comingsoon.none {
  display: none;
}

#covid {
  display: block;
}

#covid.none {
  display: none;
}

#contentsRapper {
  display: block;
  position: relative;
  padding-top: 100vh;
}

#contentsRapper section:not(#kv) {
  background-color: rgba(0, 0, 0, 0.7);
  color: #fff;
  position: relative;
  z-index: 1;
}

#contentsRapper.none {
  display: none;
}

.contentsRapper {
  opacity: 0%;
}

.kv-animation1 {
  opacity: 100% !important;
}

section {
  position: relative;
  z-index: 1;
}

#loader-bg {
  position: fixed;
  height: 100vh;
  background-color: #6d3a1a;
}

#loader-bg .inner {
  height: 100vh;
  visibility: visible;
  opacity: 1;
  transition: all 0.7s ease-in-out;
  transition-delay: 0s;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#loader-bg .inner .loadLogo {
  position: absolute;
  width: 35%;
  top: 50%;
  left: 51%;
  transform: translate(-50%, -50%);
}

@media screen and (max-width: 768px) {
  #loader-bg .inner .loadLogo {
    width: 54%;
  }
}
#loader-bg .inner .logo_loading {
  width: 60%;
  animation: loading_logo infinite 1.3s;
}

@media screen and (max-width: 768px) {
  #loader-bg .inner .logo_loading {
    width: 80vw;
  }
}
#loader-bg.end {
  transition: all 0.6s;
  visibility: hidden;
  opacity: 0;
}

#loader-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

@keyframes loading_logo {
  0% {
    opacity: 0.2;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.2;
  }
}
#header_top {
  opacity: 0;
  transition: all 0.3s;
}

#header_top.active {
  opacity: 1;
  transition: all 0.3s;
}

.int {
  opacity: 0;
  transform: translate(0, 2em);
  transition-duration: 0.3s;
}

.int.active {
  opacity: 1;
  transition-duration: 0.3s;
  transform: translate(0, 0);
}

.op1 {
  opacity: 1 !important;
  transition: all 0.3s;
}

.op0 {
  opacity: 0 !important;
  transition: all 0.3s;
}

.on {
  opacity: 0.7;
  transition: all 0.3s;
}

.shadow {
  filter: drop-shadow(0px 0px 4px #000) drop-shadow(0px 0px 4px #000);
}

.button a {
  text-decoration: none;
  padding: 1em 0;
  min-width: 16em;
  background-color: #000;
  border-radius: 50px;
  font-size: 0.6em;
  color: #fff;
  line-height: 1;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .button a {
    padding: 0.8em 3em;
    font-size: 0.8em;
    min-width: 14em;
  }
}
.button.left {
  text-align: left;
}

.button.white a {
  background-color: #fff;
  color: #000000;
  font-weight: bold;
}

.button.grad-b a {
  background: #efc465;
  background: linear-gradient(45deg, #efc465 0%, #f07c34 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#efc465", endColorstr="#f07c34",GradientType=1 );
  box-shadow: 0 0 0 2px #fff;
  font-weight: bold;
}

.button.transparent a {
  background: none;
  box-shadow: 0 0 0 1px #fff;
  font-weight: bold;
}

.button.sns a {
  text-decoration: none;
  min-width: 18em;
  margin: 0 1em;
  margin-bottom: 1.5em;
  position: relative;
}

.button.sns a.tw {
  background-color: var(--main-color);
}

.button.sns a.tw:after {
  content: "";
  background-image: url(../images/icon_tw.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 1.5em;
  height: 1.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translate(0, -50%);
}

.button.sns a.fb {
  background-color: #0875fb;
}

.button.sns a.fb:after {
  content: "";
  background-image: url(../images/icon_fb.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 1.5em;
  height: 1.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translate(0, -50%);
}

.head_wrap {
  max-width: calc(1920px + 4em);
  margin: 0 auto;
  padding: 0 2em;
}

.head_wrap.ovh {
  overflow: hidden;
}

.header_height {
  height: 5vw;
  max-height: 100px;
}

@media screen and (max-width: 767px) {
  .header_height {
    height: 13vw;
  }
}
.full_wrap.ovh {
  overflow: hidden;
}

@media screen and (min-width: 1921px) {
  .full_wrap {
    max-width: 1920px;
    margin: 0 auto;
  }
}
.wide_wrap {
  padding: 0 2em;
}

.wide_wrap.ovh {
  overflow: hidden;
}

@media screen and (min-width: 1500px) {
  .wide_wrap {
    padding: 0 2em;
    max-width: 1501px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 767px) {
  .wide_wrap {
    padding: 0 1.3em;
  }
}
.mid_wrap.ovh {
  overflow: hidden;
}

@media screen and (min-width: 1201px) {
  .mid_wrap {
    padding: 0 2em;
    width: 70%;
    max-width: 1200px;
    margin: auto;
  }
}
@media screen and (max-width: 1200px) {
  .mid_wrap {
    padding: 0 1.5em;
    width: 80%;
    margin: 0 auto;
    min-width: 700px;
  }
}
@media screen and (max-width: 767px) {
  .mid_wrap {
    padding: 0 1.3em;
    width: 100%;
    margin: 0 auto;
    min-width: auto;
  }
}
.nar_wrap {
  padding: 0;
  max-width: 800px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .nar_wrap {
    padding: 0 1.3em;
  }
}
#info {
  z-index: 1000;
  position: fixed;
  padding: 0.2em 1em;
  right: 5%;
  bottom: 5%;
  z-index: 3;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  #info {
    right: 50%;
    transform: translateX(50%);
    bottom: 2%;
  }
}
#info > .inner {
  background-color: #000;
  box-shadow: 0 0 0 2px var(--main-color);
  text-align: center;
  position: relative;
}

#info .info_wrap {
  padding: 0.3em 1em;
  font-size: 0.6em;
  font-weight: bold;
  white-space: nowrap;
}

#info #info_inner {
  visibility: hidden;
  text-align: left;
  overflow-x: hidden;
  overflow-y: scroll;
  transition: all 0.3s;
  padding: 0 1em;
  height: 0px;
}

#info #info_inner.open {
  visibility: visible;
  padding: 2em 1em;
  height: auto;
  transition: all 0.3s;
}

#info #info_inner ul {
  margin: 1em 0 1em 2em;
}

#info #info_inner ul li {
  margin-bottom: 0.3em;
  list-style: disc;
}

#info h1 {
  line-height: 1;
  position: relative;
}

#info h1:before {
  content: "!";
  text-align: center;
  line-height: 1.2;
  font-size: 100%;
  font-weight: bold;
  background-color: #f26838;
  border-radius: 50%;
  width: 1.2em;
  height: 1.2em;
  color: #00245f;
  position: absolute;
  left: 0;
  top: 0;
}

#info h1:after {
  content: "\f107";
  font-family: "Font Awesome 5 Free";
  text-align: center;
  line-height: 1.2;
  font-size: 100%;
  font-weight: bold;
  width: 1.2em;
  height: 1.2em;
  color: #00245f;
  position: absolute;
  right: 0;
  top: 0;
}

#kv {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  min-height: 600px;
  z-index: 0;
  /* 背景レイヤー（kv.jpg / layer.png）の横縦比。幅 = 高さ × この値 で縦がちょうど覆われる */
  --kv-bg-ratio: 1.7778;
  /* パララックス用に確保する横方向の余白。background-position を動かす余地になる */
  --kv-bg-overflow: 120%;
  /* KVの実高さと、表示領域に対する余剰分。viewport-fix.js が実測値で上書きする。
     WHY: ここで既定値を持たせておくことで、JSが未実行・キャッシュ等で古い場合でも
          背景の寸法計算が破綻せず、下端に隙間が出ない */
  --kv-height: 100vh;
  --kv-extra-height: 0px;
  /* 背景を上へ持ち上げる量を調整する値。0 = 補正のみ（見えている範囲の上下中央）。
     大きくするほど背景が上に寄り、画像の下側がより多く見えるようになる */
  --kv-bg-nudge: 0px;
  /* 持ち上げ量の合計。
     内訳 = KVの余剰高さの半分（下寄りを打ち消す補正） + デザイン上の追い上げ。
     WHY(補正): KVは表示領域より --kv-extra-height だけ高いため、背景を箱の中央に
                置くとその半分だけ下寄りに見える。PC は extra=0 なので影響しない */
  --kv-bg-lift: calc(var(--kv-extra-height) / 2 + var(--kv-bg-nudge));
  --kv-bg-offset-y: calc(-1 * var(--kv-bg-lift));
  /* 縦は必ず覆いつつ、横にはパララックス用の余白を残す幅。
     高さに 2×lift を上乗せするのは、持ち上げた分だけ箱の下端に隙間ができるため。
     上下に lift ぶんずつ余らせることで、ずらしても覆いきる */
  --kv-bg-size: max(
    var(--kv-bg-overflow),
    calc((var(--kv-height) + 2 * var(--kv-bg-lift)) * var(--kv-bg-ratio))
  );
  /* 中央からの横移動量。0vw = 完全に中央。スクロールに応じて JS が負方向へ動かす。
     WHY: background-position を 50%→70% のように % で動かすと、移動距離が
          「はみ出し量 × 20%」となり、はみ出し量がアスペクト比で変わるぶん
          開始位置の見え方も移動量も比率ごとにばらつく。
          中央(50%)を固定し、そこからの差分だけを vw で足す形にすることで、
          どの比率でも必ず中央から始まり、移動量も画面幅に対して一定になる */
  --kv-bg-shift: 0vw;
  --kv-flower-shift: 0vw;
}

@media screen and (min-width: 768px) {
  #kv {
    min-height: 900px;
  }
}

@media screen and (max-width: 767px) {
  #kv {
    /* SP は kv_sp.jpg / flower_sp.png が 9:16 なので縦横比を差し替える */
    --kv-bg-ratio: 0.5625;
    /* WHY: viewport-fix.js は SP のみ KV を +100px 高くする。
            JS未実行時もその前提で計算が合うよう、同じ値を既定値として持たせる */
    --kv-height: calc(100vh + 100px);
    --kv-extra-height: 100px;
    /* SP は背景をさらに上へ寄せる。KV高さに対する割合なので端末サイズによらず比率が揃う */
    --kv-bg-nudge: calc(var(--kv-height) * 0.08);
  }
}
/* 人物は固定。クラス名の parallax は既存構造の踏襲で、実際には動かさない
   （transform をアニメーションしないため will-change は不要） */
#kv .parallax-couple {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

#kv .parallax-couple.pc {
  display: block;
  width: 15%;
  height: auto;
  bottom: 0;
  left: auto;
  right: 2%;
}

#kv .parallax-couple.sp {
  display: none;
}

/* 人物の陰影：人物のシルエットでマスクした暗いグラデーションを本体の前面に重ね、
   左上から光が当たり、右下へ向かうほど暗くなるようにする。
   本体と同じ位置・同じ縦横比になるよう aspect-ratio でサイズを合わせる。
   背景レイヤーは上に書いたものが手前に重なる */
#kv .parallax-couple.couple-shade {
  aspect-ratio: 644 / 1083;
  background-image:
    /* 頭頂部：髪の艶が明るく浮くため上端だけ落とす（額あたりで抜ける） */
    linear-gradient(to bottom, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 8%, rgba(0, 0, 0, 0) 18%),
    /* 全体：左上から右下へ向かうほど暗くする */
    linear-gradient(135deg, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0.35) 55%, rgba(0, 0, 0, 0.9) 100%);
  -webkit-mask-image: url(../images/couple.png);
  mask-image: url(../images/couple.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  mix-blend-mode: multiply;
}

#kv .parallax-flower {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  background-image: url(../images/layer.png);
  /* kv.jpg と同じ縦横比なので同じ計算を使う（縦を覆いつつ横の可動域を残す） */
  background-size: var(--kv-bg-size) auto;
  /* 背景と同じく左右中央から開始し、背景より大きく左へ流してパララックスを作る */
  background-position: calc(50% + var(--kv-flower-shift)) calc(50% + var(--kv-bg-offset-y));
  background-repeat: no-repeat;
  opacity: 1;
  /* 暗部を透過させ、紅葉とボケ玉の光だけを背景に重ねる */
  mix-blend-mode: screen;
  will-change: background-position;
}

@media screen and (max-width: 767px) {
  #kv .parallax-couple.pc {
    display: none;
  }

  /* viewport-fix.js が SP のみ KV を +100px 高くするため、
     その分を差し引いた位置が画面下端＝下揃えになる */
  #kv .parallax-couple.sp {
    display: block;
    width: 40%;
    height: auto;
    bottom: 100px;
    left: auto;
    right: 2%;
  }

  /* SP は人物画像が別ファイルなのでマスクと縦横比を差し替える */
  #kv .parallax-couple.sp.couple-shade {
    aspect-ratio: 550 / 925;
    -webkit-mask-image: url(../images/couple_sp.png);
    mask-image: url(../images/couple_sp.png);
  }

  #kv .parallax-flower {
    background-image: url(../images/flower_sp.png);
    background-size: var(--kv-bg-size) auto;
    background-position: calc(50% + var(--kv-flower-shift)) calc(50% + var(--kv-bg-offset-y));
  }
}
#kv > .inner {
  position: relative;
  z-index: 2;
  height: 100%;
}

#kv .logo_wrap {
  display: none;
}

#kv .logo {
  width: 36%;
  height: auto;
  max-width: 742px;
  position: absolute;
  top: 8%;
  bottom: auto;
  left: 32%;
  /* drop-shadow は前の結果に対して重ねがけされるため、狭いものから順に並べて
     文字の輪郭ぎわ（＝影の内側の縁）を濃くし、外側へ向けて柔らかく散らす */
  filter:
    drop-shadow(0 0 0.06em rgba(12, 5, 0, 0.95))
    drop-shadow(0 0 0.1em rgba(12, 5, 0, 0.85))
    drop-shadow(0 0 0.35em rgba(28, 12, 0, 0.8))
    drop-shadow(0 0 0.12em rgba(247, 123, 46, 0.55));
  opacity: 1;
  visibility: visible;
  will-change: opacity, transform;
  transform: none;
}

#kv .logo.active {
  opacity: 1;
  visibility: visible;
}

@media screen and (max-width: 767px) {
  #kv .logo {
    width: 62%;
    top: 4%;
    left: 50%;
    transform: translate(-50%, 0);
    filter:
      drop-shadow(0 0 0.06em rgba(12, 5, 0, 0.95))
      drop-shadow(0 0 0.12em rgba(12, 5, 0, 0.85))
      drop-shadow(0 0 0.5em rgba(28, 12, 0, 0.85))
      drop-shadow(0 0 0.2em rgba(247, 123, 46, 0.55));
    /* transform: none; */
  }
}
#kv .logo .companyLogo {
  width: 64%;
  margin: 0 auto;
}

#kv .copy {
  width: 9%;
  height: auto;
  max-width: 190px;
  position: absolute;
  transform: none;
  top: 8%;
  left: 5%;
  right: auto;
  /* ロゴと同様、輪郭ぎわを濃くしてから外側へ散らす */
  filter:
    drop-shadow(0 0 0.06em rgba(12, 5, 0, 0.95))
    drop-shadow(0 0 0.1em rgba(12, 5, 0, 0.85))
    drop-shadow(0 0 0.3em rgba(28, 12, 0, 0.85));
}

@media screen and (max-width: 767px) {
  /* SP はロゴの真下に中央配置。
     WHY(横): GSAP が .copy 本体に yPercent を当てるため transform での中央寄せは避け、
              left/right: 0 + margin auto で寄せる。max-width が効く幅でも中央を保てる。
     WHY(縦): top を % にすると画面高さ基準になるが、ロゴの高さは幅基準（62vw × 732/742
              ＝ 61.2vw）なので、短い画面ではロゴが下へ張り出して重なる。
              ロゴ上端(4%) + ロゴ高さ(61.2vw) + 余白(4vw) で下端に追従させる */
  #kv .copy {
    width: 15%;
    max-width: 70px;
    top: calc(4% + 61.2vw + 4vw);
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
  }
}
#kv .bottom {
  color: #fff;
  position: absolute;
  /* 人物を右端に置いたため、会期・場所は左下へ逃がす */
  left: 5%;
  right: auto;
  bottom: 10%;
  text-align: left;
  filter: drop-shadow(0.1em 0.1em 0.2em #000);
  opacity: 1;
  visibility: visible;
  will-change: opacity, transform;
}

#kv .bottom.active {
  opacity: 1;
  visibility: visible;
}

@media screen and (max-width: 767px) {
  #kv .bottom {
    left: 6%;
    right: auto;
    bottom: 16%;
    text-align: left;
    font-size: 100%;
  }
}
#kv .bottom .bottomLogo {
  width: 54%;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  #kv .bottom .bottomLogo {
    width: 64%;
    margin-bottom: 0.5em;
  }
}
#kv .bottom .location {
  margin-right: -0.3em;
}
#kv.bg_kv {
  z-index: 0;
  background-image: url(../images/kv.jpg);
  /* 常に左右中央から開始し、そこからの差分だけスクロールで左へ流す */
  background-position: calc(50% + var(--kv-bg-shift)) calc(50% + var(--kv-bg-offset-y));
  /* 縦は必ず覆いつつ、横には常に余白を残してアニメーションの可動域を確保する */
  background-size: var(--kv-bg-size) auto;
  background-repeat: no-repeat;
}

@media screen and (max-width: 767px) {
  #kv.bg_kv {
    background-image: url(../images/kv_sp.jpg);
    background-size: var(--kv-bg-size) auto;
    background-position: calc(50% + var(--kv-bg-shift)) calc(50% + var(--kv-bg-offset-y));
  }
}
.termend {
  background-color: rgba(0, 0, 0, 0.7803921569);
  border: 1px solid #fff;
  padding: 1em;
  display: none;
}

.termend.pc {
  position: absolute;
  right: 1em;
  bottom: 8em;
}

@keyframes layermove {
  0% {
    transform: translate(-0.5em, 0);
  }
  50% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(-0.5em, 0);
  }
}
#copytext {
  padding: 3em 0 0;
}

#copytext .hash {
  color: var(--main-color);
}

#copytext .hash span {
  margin: 0 0.5em;
  white-space: nowrap;
  display: inline-block;
}

#section1 {
  position: relative;
  z-index: inherit;
}

#section1 > .inner {
  position: relative;
  z-index: 100;
}

#section1 .bg_img {
  position: absolute;
  z-index: 2;
  width: 36vw;
  bottom: -4em;
  right: 0;
  max-height: inherit;
}

#section1 .contents_image {
  background-image: url(../images/contents.webp);
}

@media screen and (max-width: 767px) {
  #section1 .contents_image {
    padding-top: 50%;
  }
}
#section1 .contents_head_wrap {
  padding: 2em 0 0;
}

.app_button {
  width: 50%;
  max-width: 500px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .app_button {
    width: 90%;
  }
}
.app_button a {
  padding: 1em;
}

#sns_icon {
  text-align: center;
}

#sns_icon a {
  width: 1.5em;
  margin: 0.3em;
  display: inline-block;
}

@media screen and (max-width: 767px) {
  #sns_icon a {
    margin: 0.3em;
  }
}
#sns_icon .tw {
  width: 0.9em;
}

@media screen and (max-width: 767px) {
  #sns_icon .tw {
    width: 1.2em;
  }
}
#contents {
  padding-top: 2em;
}

#contents .contents_wrap {
  margin: auto;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  #contents .contents_wrap {
    flex-direction: column;
  }
}
#contents .contents_wrap .contentsBox {
  background-color: rgba(0, 0, 0, 0.4);
  mix-blend-mode: multiply;
  padding: 1.7em;
  width: 47%;
}

@media screen and (max-width: 767px) {
  #contents .contents_wrap .contentsBox {
    width: 100%;
    margin-bottom: 1.7em;
    padding: 1.5em;
  }
}
#contents .contents_wrap .contentsBox p {
  font-size: 0.55em;
}

@media screen and (max-width: 767px) {
  #contents h2 {
    text-align: center;
  }
}
#contents .contentsBox3 {
  background-color: rgba(0, 0, 0, 0.4);
  mix-blend-mode: multiply;
  margin-top: 2.3em;
  padding: 1.7em 2em 1.7em 1.7em;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

@media screen and (max-width: 767px) {
  #contents .contentsBox3 {
    width: calc(100% - 2em);
    flex-direction: column;
  }
}
#contents .contentsBox3 .contentsImg {
  width: 40%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (max-width: 767px) {
  #contents .contentsBox3 .contentsImg {
    order: 1;
    width: 100%;
    margin-top: 1em;
  }
}
#contents .contentsBox3 .eventName h2 {
  text-align: left;
}

@media screen and (max-width: 767px) {
  #contents .contentsBox3 .eventName {
    order: 0;
  }
}
@media screen and (max-width: 767px) {
  #contents .contentsBox3 .eventDate {
    order: 2;
    margin-top: 1em;
  }
  #contents .contentsBox3 .eventDate h2 {
    text-align: center;
  }
}
#campaign {
  padding-top: 2em;
}

#campaign .contentsBox {
  background-color: rgba(0, 0, 0, 0.4);
  mix-blend-mode: multiply;
  margin-top: 4em;
  padding: 1.7em;
  width: 100%;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox {
    width: calc(100% - 2em);
    padding: 2em 1.7em;
  }
}
#campaign .contentsBox .titleWrap {
  background-color: #b3a076;
  padding: 0.2em 0.7em;
  top: 0%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#campaign .contentsBox .discountImg {
  width: 85%;
  margin: 1em auto;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountImg {
    width: 95%;
    margin: 0.7em auto;
  }
}
#campaign .contentsBox .text {
  font-size: 0.7rem;
  margin-bottom: 0.5em;
}

#campaign .contentsBox .contentstitle {
  margin: 3em auto auto auto;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 92%;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .contentstitle {
    margin: 3em auto auto auto;
  }
}
#campaign .contentsBox .contentstitle .border {
  background-color: #ffffff;
  width: calc((100% - 25em) / 2);
  height: 1px;
}

#campaign .contentsBox .contentstitle p {
  font-weight: 700;
  padding: 0 5%;
}

#campaign .contentsBox .discountBox1 {
  margin-top: 0.5em;
  padding: 1.7em;
  justify-content: center;
  flex-wrap: wrap;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountBox1 {
    margin-top: 1em;
    padding: 0em;
    justify-content: center;
  }
}
#campaign .contentsBox .discountBox1 .contentsImg {
  width: 30%;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountBox1 .contentsImg {
    width: 48%;
    margin-top: 4%;
  }
}
@media screen and (max-width: 767px) {
  #campaign
    .contentsBox
    .discountBox1
    .contentsImg:nth-child(2n-1):nth-of-type(-n + 4) {
    margin-right: 4%;
  }
}
@media screen and (min-width: 768px) {
  #campaign .contentsBox .discountBox1 .contentsImg:nth-child(2) {
    margin: 0 5%;
  }
  #campaign .contentsBox .discountBox1 .contentsImg:nth-child(n + 4) {
    margin-top: 1.5em;
  }
  #campaign .contentsBox .discountBox1 .contentsImg:nth-child(4) {
    margin-right: 5%;
  }
}
#campaign .contentsBox .discountBox2 {
  margin-top: 0.5em;
  padding: 1.7em;
  justify-content: center;
  flex-wrap: wrap;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountBox2 {
    margin-top: 1em;
    padding: 0em;
    justify-content: center;
  }
}
#campaign .contentsBox .discountBox2 .contentsImg {
  width: 30%;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountBox2 .contentsImg {
    width: 48%;
    margin-top: 6%;
  }
}
@media screen and (max-width: 767px) {
  #campaign .contentsBox .discountBox2 .contentsImg:nth-child(2n-1) {
    margin-right: 4%;
  }
}
@media screen and (min-width: 768px) {
  #campaign .contentsBox .discountBox2 .contentsImg:nth-child(2) {
    margin: 0 5%;
  }
  #campaign .contentsBox .discountBox2 .contentsImg:nth-child(n + 4) {
    margin-top: 1.5em;
  }
  #campaign .contentsBox .discountBox2 .contentsImg:nth-child(5) {
    margin: 1.5em 5% 0 5%;
  }
}
#campaign .contentsBox .attension {
  padding: 0.5em 1.7em;
}

#campaign .contentsBox .attension .attensionText {
  font-size: 0.3em;
}

@media screen and (max-width: 767px) {
  #campaign .contentsBox .attension {
    margin-top: 2em;
    padding: 0.3em 0;
  }
}
#contentsWrap {
  padding-top: 2em;
  overflow: hidden;
}

#contentsWrap .contentsWrapTitle {
  padding: 1em 0;
}

#contentsWrap .title {
  margin-top: 3em;
}

#contentsWrap .contentsWrap {
  margin-top: 1.3em;
  align-items: flex-start;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap {
    display: block;
  }
}
#contentsWrap .contentsWrap .contentsColumn {
  width: 100%;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap .contentsColumn {
    width: 100%;
  }
}
#contentsWrap .contentsWrap .contentsColumn .contentsTitle {
  margin-top: 0.7em;
}

#contentsWrap .contentsWrap .contentsColumn .contentsImage {
  width: 100%;
  aspect-ratio: 5/3;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap .contentsColumn .contentsImage {
    width: 100%;
  }
}
#contentsWrap .contentsWrap .contentsColumn .contentsImage img {
  border-radius: 0.5em;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

#contentsWrap .contentsWrap .contentsColumn2 {
  justify-content: left;
  align-items: center;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap .contentsColumn2 {
    display: block;
  }
}
#contentsWrap .contentsWrap .contentsColumn2 .contentsImage {
  width: 47%;
  aspect-ratio: 5/3;
  margin-right: 3em;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap .contentsColumn2 .contentsImage {
    width: 100%;
    margin-right: 0em;
  }
}
#contentsWrap .contentsWrap .contentsColumn2 .contentsImage img {
  border-radius: 0.5em;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (max-width: 767px) {
  #contentsWrap .contentsWrap .contentsColumn2 .contentsTitle {
    margin-top: 1em;
  }
}
#about {
  padding-top: 2em;
}

#about .contents_wrap > .inner {
  overflow: hidden;
}

#about .text_wrap {
  font-size: 0.8em;
}

#about .text_wrap .head {
  color: var(--main-color);
  letter-spacing: 0.2em;
  font-weight: bold;
  min-width: 7em;
}

#access {
  padding-top: 5em;
}

#access .text_wrap {
  font-size: 0.8em;
}

#access .text_wrap .head {
  color: var(--main-color);
  letter-spacing: 0.2em;
  font-weight: bold;
  min-width: 7em;
}

#access .map {
  background-image: url(../images/map.jpg);
  position: relative;
}

#access .map:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: color;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  #access .map {
    padding-top: 50%;
  }
}
#section4 {
  padding: 3em 0;
}

#section3 h1 {
  color: var(--main-color);
}

.footer {
  padding: 2em 0 4em;
  position: relative;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1;
}

.footer:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.footer h1 {
  color: #fff;
}

.footer .companyName {
  color: #fff;
}

.footer .bg_img {
  position: absolute;
  z-index: -1;
  width: 100%;
  max-width: 1920px;
  bottom: 0;
  left: 0;
  max-height: inherit;
}

.footer .title_wrap {
  margin-top: 3em;
  margin-bottom: 1em;
}

.footer .logo_wrap {
  width: 6em;
  margin: 0 auto;
  margin-bottom: 0.5em;
}

@media screen and (max-width: 767px) {
  .footer .logo_wrap {
    width: 4em;
    margin-bottom: 0.2em;
  }
}
.footer .text {
  color: #fff;
  padding: 0 1em;
  font-size: 0.7rem;
  margin-bottom: 0.5em;
}

.footer .copy {
  color: #fff;
}

.remodal {
  background: none;
  padding: 0;
}

.remodal li {
  list-style: disc;
  margin-left: 1.5em;
}

.remodal-close {
  color: var(--main-color);
  position: relative;
  width: unset;
  height: unset;
  font-size: 0.8em;
  display: inline-block;
  margin: 0 auto;
  margin-top: 2em;
  vertical-align: middle;
}

.remodal-close:hover,
.remodal-close:focus {
  color: #fff;
}

.remodal-close img {
  height: 1em;
  display: inline-block;
  width: unset;
  vertical-align: middle;
  fill: var(--main-color);
}

.remodal-close p {
  font-size: 1em;
  font-weight: bold;
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
}

.remodal-close:before {
  content: "";
  display: none;
}

.remodal-close:after {
  content: "";
  display: none;
}
