@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css');
@import url("https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Darker+Grotesque:wght@300..900&family=Oswald&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Hina+Mincho&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Hina+Mincho&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Amatic+SC:wght@400;700&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Edu+VIC+WA+NT+Hand:wght@400..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700;900&display=swap');

/* Reset */
html,
body,
h1,
h2,
p,
section,
footer {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow-x: hidden;
}
body {
  font-family: "BIZ UDPGothic", serif;
  color: #000;
  scroll-behavior: smooth;
  line-height: 1.6;
  overflow-x: hidden;
  /* background: #000; */
}
html, body {
  /* height: 100%; */
  overscroll-behavior: none;
}
ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
html {
  -webkit-text-size-adjust: 100%;
}

/* -------------------------- 共通テキスト -------------------------- */
h2 {
  color: #3f450b;
}
h4 {
  font-size: 20px;
  font-family: "Hina Mincho", serif;
  font-weight: 400;
  font-style: normal;
  color: #3f450b;
  line-height: 1.5;
  margin: 0;
}
h5 {
  font-size: 41px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  font-style: normal;
  color: #3f450b;
  line-height: 1.2;
  margin: 0;
}
.cap {
  font-size: 14px;
  text-align: left;
  max-width: 800px;
  margin: 0 auto 20px auto;
}
.cap span {
  font-size: 14px;
  font-weight: bold;
}
.title {
  font-size: 18px;
}
.price {
  font-size: 16px;
  text-align: center;
  max-width: 800px;
  margin: auto;
  background: #eaf3e3b8;
  border-radius: 10px 10px 0px 0px;
  padding: 10px 0;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
border-bottom: 4px solid #4e7750;
}

/* モバイル対応 */
  br.sp_br {
    display: none;
  }
@media screen and (max-width: 980px) {
  br.sp_br {
    display: block;
  }
.cap {
  font-size: 12px;
}
.cap span {
  font-size: 12px;
}
}

/* テキストリンク */
a.textlink[target="_blank"] {
  color: #0066cc;
  text-decoration: none;
  position: relative;
}
a.textlink[target="_blank"]::after {
  content: "\f35d";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  right: -18px;
  top: 0;
  color: #999;
  font-size: 0.8em;
}


/* -------------------------- マージン -------------------------- */
.mb400 {
  margin-bottom: 400px;
}
@media screen and (max-width: 980px) {
.mb400 {
  margin-bottom: 200px;
}
}
.mb300 {
  margin-bottom: 300px;
}
.mb200 {
  margin-bottom: 200px;
}
.mb100 {
  margin-bottom: 100px;
}
.mb50 {
  margin-bottom: 50px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb20 {
  margin-bottom: 20px;
}

/* -------------------------- 装飾 -------------------------- */
/* h2タイトル装飾 */
section .info h2 {
  font-size: 80px;
  font-family: "Amatic SC", sans-serif;
  font-weight: 400;
  font-style: normal;
  position: relative;
  text-align: center;
  display: inline-block;
  padding: 0 40px;
  padding-bottom: 0; /* 文字と波線の距離 */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='6'><path d='M0 3 Q 5 0, 10 3 T 20 3 T 30 3 T 40 3' stroke='%23528c77' stroke-width='2' fill='transparent'/></svg>");
  background-repeat: repeat-x;
  background-position: center calc(100% - 4px); /* 文字のすぐ下より4px上に波線 */
  background-size: auto 6px;
  line-height: 1.5;
}
section .info h2::before,
section .info h2::after {
  content: "✦";
  color: #528c77;
  font-size: 40px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  animation: hueAnim 10s linear infinite;
}
section .info h2::before {
  left: 0;
}
section .info h2::after {
  right: 0;
}
/* h3タイトル装飾 */
.underline {
  position: relative;
  display: inline-block;
  color: #2c3e50;
}
.underline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 5px;
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, #8e44ad, #3498db);
  border-radius: 1px;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
}

/* -------------------------- ボタン -------------------------- */
.link-btn {
  width: 300px;
  background-color: #2e7d5b;
  color: white;
  font-size: 20px;
  padding: 10px 20px;
  border: none;
  border-radius: 2em;
  cursor: pointer;
  box-shadow: 0 5px 15px rgba(46, 125, 91, 0.4);
  transition: box-shadow 0.3s, background-color 0.3s;
  font-family: "Oswald", sans-serif;
  text-align: center;
  background-image: url("images/bg_pr2.webp");
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
.link-btn {
  width: 200px;
  font-size: 15px;
  padding: 5px 20px;
}
}


/* 色相を360度回転させるアニメーション */
.colorful-image {
  filter: hue-rotate(0deg);
}
@keyframes hueAnim {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(360deg);
  }
}
@keyframes hueAnim {
  from {
    filter: hue-rotate(0deg);
  }
  to {
    filter: hue-rotate(360deg);
  }
}

/* lightbox 正方形 */
.wp-block-gallery .wp-block-image {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.wp-block-gallery .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* lightbox ギャラリー画像の均等配置保持 */
.wp-block-gallery .wp-block-image {
  flex-grow: 0 !important;
  min-width: 0 !important;
}
/* lightbox 拡大された画像を囲む枠の色やスタイル */
.lightbox .lb-image {
  border: 8px solid #515151; /* 枠 */
  box-shadow: 0 0 20px rgba(182, 182, 182, 0.5); /* 光るような枠 */
}


/* -------------------------- Header -------------------------- */
.header {
  position: fixed;
  top: 0;
  width: 100%;
  height: 60px;
  background: rgba(0, 0, 0, 0.50);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
  z-index: 1000;
  transition: all 0.3s ease;
}
.logo {
  color: #fff;
  font-weight: bold;
}
.logo-icon {
  width: 115px;
  margin-top: 10px;
}
.menu-toggle {
  position: relative;
  right: 30px;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 10px;
  z-index: 1001;
}
.menu-toggle .bar {
  width: 25px;
  height: 3px;
  background: #ffffff;
  transition: all 0.3s ease;
}
.nav-menu {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-100%);
  transition: transform 0.5s ease;
  z-index: 999;
  flex-direction: column;
  /* padding: 40px 20px; */
  font-size: 20px;
  font-family: "Montserrat", sans-serif;
  font-weight: 200;
  font-style: normal;
}
.nav-menu.open {
  transform: translateY(0);
}
.nav-menu ul {
  list-style: none;
  padding: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nav-menu a {
  font-size: 1.6rem;
  color: #fff;
  text-decoration: none;
  position: relative;
  transition: color 0.3s ease;
}
.nav-menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 0%;
  height: 2px;
  background: #838383;
  transition: width 0.3s ease;
}
.nav-menu a:hover {
  color: #838383;
}
.nav-menu a:hover::after {
  width: 100%;
}
.nav-menu i {
  font-size: 18px;
}
.nav-menu a.nolink {
  color: #757575;
  text-decoration: line-through;
}
.nav-menu .disabled {
  color: #888; /* グレーアウト */
  cursor: not-allowed;  /* 禁止マークのカーソル */
  opacity: 0.5;  /* 少し薄く表示 */
  pointer-events: none;  /* クリック無効 */
  font-size: 1.6rem;
  position: relative;
}
.menu-toggle.open .bar:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}
.menu-toggle.open .bar:nth-child(2) {
  opacity: 0;
}
.menu-toggle.open .bar:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}
/* --- language --- */
.language-switch {
  position: absolute;
  right: 110px;
  z-index: 1001;
}
.lang-btn {
  background: transparent;
  border: 1px solid #73bb6c;
  color: #73bb6c;
  font-size: 14px;
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-style: normal;
  padding: 4px 8px;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.3s ease;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
}
/* .lang-btn:hover {
  background: #fff;
  color: #000;
} */
.lang {
  display: none;
}
.lang.active {
  display: block;
}



/* ---------------- PC用横並びナビ ---------------- */
.pc-nav {
  display: none;
}


@media screen and (min-width: 1105px) {
  .header {
    /* justify-content: flex-start;
    gap: 30px; */
  }

  .pc-nav {
    display: block;
  margin-right:100px;
  }

  .pc-nav ul {
    display: flex;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
    white-space: nowrap;
    overflow: hidden;
  }
  .pc-nav i {
    font-size: 12px;
  }

  .pc-nav a,
  .pc-nav .disabled {
    font-size: 14px;
    font-family: "Montserrat", sans-serif;
    font-weight: 200;
    font-style: normal;
    color: #fff;
    text-decoration: none;
  }

  .pc-nav .disabled {
    color: #a9a9a9;
  }

}



/* -------------------------- firstview -------------------------- */
#firstview {
  position: relative;
  height: 100vh;
  left: 50%;
  transform: translateX(-50%);
  overflow: hidden;
  /* overflow-y: hidden; */
  z-index: 100;
  width: 3000px;
}
#firstview .info_bg {
  position: relative;
  height: 100vh;
}
/* --- スクロールボタン --- */
#firstview .link-btn.scroll-btn {
  position: absolute;
  left: 50%;
  bottom: 75px;
  transform: translateX(-50%);
  z-index: 1000;
  width: 300px;
  font-size: 17px;
}
#firstview .btn_img /* 金玉 */{
  position: absolute;
  left: 50%;
  bottom: 135px;
  transform: translateX(-50%);
  z-index: 1001;
  filter: drop-shadow(4px 4px 8px rgba(0, 0, 0, 0.4));
  width: 40px;
}
/* モバイル対応 */
#firstview .link-btn.scroll-btn.side_sao i.fa-angles-down{
  display: inline-block;
}
#firstview .link-btn.scroll-btn.side_sao i.fa-angles-right{
  display: none;
}
@media screen and (max-width: 980px) {
#firstview {
  width: 100%;
}
#firstview .link-btn.scroll-btn {
  font-size: 15px;
  width: 250px;
  padding: 5px;
}
/* --- スクロールボタン --- */
#firstview .link-btn.scroll-btn {
  bottom: 90px;
}
#firstview .btn_img /* 金玉 */{
  bottom: 170px;
}
.env-ios-safari #firstview .link-btn.scroll-btn {
  bottom: 100px;
}
.env-ios-safari #firstview .btn_img /* 金玉 */{
  bottom: 160px;
}
.env-ios-chrome #firstview .link-btn.scroll-btn {
  bottom: 130px;
}
.env-ios-chrome #firstview .btn_img /* 金玉 */{
  bottom: 190px;
}
.env-ios-other #firstview .link-btn.scroll-btn {
  bottom: 20px;
}
.env-ios-other #firstview .btn_img /* 金玉 */{
  bottom: 80px;
}
}

/* ---------- item ---------- */
#firstview img {
  position: absolute;
  transform: translateZ(0);
}
#firstview .ino_mihon { /* 見本 */
  top: -6%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 70;
  width: 1000px;
  opacity: 0.5;
}
#firstview .bg_pr1_t /* グラデ背景 */ {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 70%;
  z-index: 40;
}
.taiyo /* 太陽 */ {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 667;
}
.taiyo-inner /* 太陽inner */ {
  top: -40px;
  left: -40px;
  width: 80px;
}
.glow-image /* 太陽ピカピカ */ {
  filter: brightness(1) drop-shadow(0 0 4px rgba(255, 255, 255, 0.3));
  transition: filter 0.3s ease;
}
.ino_moricircle /* 樹木 */ {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 50;
  transform-origin: center center;
  will-change: transform;
  transform: translate(-50%, -50%) translateZ(0);
}
.ino_moricircle-inner /* 樹木inner */ {
  position: absolute;
  top: -333px;
  left: -333px;
  width: 666px;
  transform-origin: center center;
  will-change: transform;
  transform: translateZ(0);
}
.ino_pyra-wrapper /* ピラミッド-wrapper */ {
  position: absolute;
  bottom: 500px;
  width: 961px;
  z-index: 49;
}
.ino_pyra-inner /* ピラミッド-inner */ {
  left: 100%;
  width: 961px;
}
.ino3 /* 飛び散り3 x: 800 */ {
  top: -4%;
  left: 29%;
  width: 956px;
  z-index: 49;
}
.ino_ufo /* UFO x: -500 */ {
  top: 10%;
  left: 47%;
  width: 200px;
  z-index: 49;
}
.ino_car /* 車 x: -500 */ {
  top: 30%;
  left: 37%;
  width: 365px;
  z-index: 49;
}
.ino6 /* 右顔 */ {
  top: 25%;
  left: 43%;
  width: 400px;
  z-index: 49;
}
.ino_kujira /* くじら x: 800 */ {
  top: 6%;
  left: 32%;
  width: 534px;
  z-index: 49;
}
.ino_flower /* 花女 x: 500 */ {
  position: absolute;
  top: 20%;
  left: 50%;
  z-index: 49;
  height: 100vh;
}
.ino_flower-inner /* 花女inner */ {
  width: 200px;
}
.ino10 /* 左顔 x: -500 */ {
  position: absolute;
  top: 17%;
  left: 42%;
  z-index: 49;
  height: 100vh;
}
.ino10-inner /* 左顔inner */  {
  width: 572px;
}
.ino11 /* 飛び散り11 */ {
  top: -10%;
  left: 27%;
  width: 865px;
  z-index: 50;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
  .ino_moricircle /* 樹木 */ {
}
.ino_moricircle-inner /* 樹木inner */ {
  top: -150px;
  left: -150px;
  width: 300px;
}
.taiyo-inner /* 太陽inner */ {
  top: -30px;
  left: -30px;
  width: 60px;
}
  .ino_pyra /* ピラミッド */ {
  bottom: 5%;
  left: 0%;
    width: 400px;
  }
  .ino3 /* 飛び散り3 */{
  top: 10%;
  left: -20%;
    width: 500px;
  }
  .ino_ufo /* UFO */ {
  top: 25%;
  left: 58%;
    width: 120px;
  }
  .ino_car /* 車 */ {
  top: 40%;
  left: 65%;
    width: 200px;
  }
  .ino6 /* 右顔 */ {
    top: 35%;
  left: -25%;
  width: 220px;
  }
  .ino_kujira /* くじら */ {
    top: 6%;
  left: -100%;
  width: 250px;
  }
  .ino8 /* エッフェル塔（未使用） */ {
    width: 300px;
  }
  .ino_flower /* 花女 */ {
  top: 20%;
  left: -10%;
}
.ino_flower-inner /* 花女inner */ {
    width: 150px;
  }
  .ino10 /* 左顔 */ {
  top: 45%;
  left: 60%;
}
.ino10-inner /* 左顔inner */ {
    width: 280px;
  }
  .ino11 /* 飛び散り11 */ {
  top: 0%;
  left: 5%;
    width: 500px;
  }
}


/* -------------------------- #suguru -------------------------- */
#suguru {
  position: relative;
  height: 1379px;
  left: 50%;
  transform: translateX(-50%);
  width: 3417px;
  overflow: hidden;
  /* background-image: url("images/sora.webp");
  background-position: top; */
  z-index: 2;
}
/* ---------- item1 ---------- */
#suguru img {
  position: absolute;
  margin-top: 180px;
}
#suguru .mihon2 {
  top: -400px;
  left: 50%;
  z-index: 26;
  transform: translateX(-50%);
  width: 100%;
}
#suguru img.sora_white {
   position: absolute;
 margin-top: 0px;
  top: 0;
  left: 0;
  z-index: 9;
  width: 100%;
}
.shiba {
  bottom: 0;
  left: 0;
  z-index: 15;
  width: 100%;
}
.shiba2 {
  bottom: -1000px;
  left: 0;
  z-index: 30;
  width: 100%;
}
.title25-wrapper {
  position: absolute;
  top: -200px;
  width: 100%;
  z-index: 25;
}
.title25-inner {
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.5));  
  width: 950px;
}
.hane-wrapper /* 羽根 */
  {
  position: absolute;
  top: -171px;
  left: 1140px;
}
.hane-inner /* 羽根inner */ {
  z-index: 22;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
  #suguru {
    height: 646px;
    width: 1366px;
  }
  #suguru img {
    margin-top: 20px;
  }
  #suguru .mihon2 {
    top: 0;
    width: 1366px;
  }
  #suguru img.sora_white {
  width: 2000px;
}
.shiba {
  bottom: -21px;
    left: 0;
    width: 1366px;
  }
  .shiba2 {
    bottom: -250px;
    width: 1366px;
  }
.title25-wrapper {
  top: 10px;
}
.title25-inner {
  left: 50%;
  transform: translateX(-50%);
  width: 375px;
}
  .hane-wrapper /* 羽根 */
    {
    top: -250px;
    left: 0;
  }
  .hane-inner {
    top: 81px;
    left: 460px;
    width: 450px;
  }  
}
/* ---------- item2 ---------- */
.hane {
  top: -171px;
  left: 1140px;
  z-index: 22;
}
.kintama {
  top: 640px;
  left: 1260px;
  z-index: 23;
}
.main_obj {
  top: 60px;
  left: 1616px;
  z-index: 21;
}
.mori_a {
  top: 184px;
  left: 1194px;
  z-index: 14;
}
.mori_b {
  top: 126px;
  left: 1174px;
  z-index: 12;
}
.pyramid {
  top: 50px;
  left: 1260px;
  z-index: 11;
}
.shabon {
  top: -140px;
  left: 1363px;
  opacity: .5;
  z-index: 24;
}
.uchusen {
  top: 78px;
  left: 1452px;
  z-index: 13;
}
.iseki_hidari {
  top: -29px;
  left: 1419px;
  z-index: 18;
}
.iseki_migi {
  top: -143px;
  left: 1886px;
  z-index: 17;
}
.suimen {
  top: 890px;
  left: 1212px;
  z-index: 19;
}
.tori_migi {
  top: -119px;
  left: 1877px;
  z-index: 16;
}
.wakusei {
  top: -156px;
  left: 1447px;
  z-index: 16;
}

/* モバイル対応 */
@media screen and (max-width: 980px) {
.hane {
    top: 81px;
    left: 460px;
    width: 450px;
  }
  .kintama {
    top: 412px;
    left: 500px;
    width: 28px;
  }
  .main_obj {
    top: 174px;
    left: 662px;
    width: 272px;
  }
  .mori_a {
    top: 250px;
    left: 461px;
    width: 249px;
  }
  .mori_b {
    top: 223px;
    left: 273px;
    width: 807px;
  }
  .pyramid {
    top: 193px;
    left: 508px;
    width: 142px;
  }
  .shabon {
    top: 119px;
    left: 546px;
    width: 221px;
  }
  .uchusen {
    top: 200px;
    left: 577px;
    width: 85px;
  }
  .iseki_hidari {
    top: 161px;
    left: 564px;
    width: 31px;
  }
  .iseki_migi {
    top: 100px;
    left: 767px;
    width: 27px;
  }
  .suimen {
    top: 514px;
    left: 485px;
    width: 411px;
  }
  .tori_migi {
    top: 100px;
    left: 746px;
    width: 52px;
  }
  .wakusei {
    top: 105px;
    left: 580px;
    width: 236px;
  }
}

/* -------------------------- #photo_day -------------------------- */
section#photo_day {
  position: relative;
  /* height: 100vh; */
  overflow: hidden;
  z-index: 0;
}
section#photo_day::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 110%;
  height: 110%; /* 背景の高さを少し大きめにしてる */
  background-image: url('images/gekisen/昼.webp');
  background-size: contain; /* ここで背景画像のサイズを指定 */
  background-repeat: no-repeat;
  background-position: top center;
  z-index: -1;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  transition: none;
  opacity: 1; /* 背景位置はJSで動かすならそのまま */
  background-position: center calc(50% + var(--bg-offset, 0));
}
section#photo_day .bg {
    position: sticky;
    left: 0;
    top: 0;
    z-index: -1;
}
section#photo_day .bg img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
section#photo_day .bg img.pc {
    display: block;
}
section#photo_day .bg img.sp {
    display: none;
}
/* --- モバイル対応（パララックスOFF） --- */
@media screen and (max-width: 980px) {
section#photo_day .bg img.pc {
    display: none;
}
section#photo_day .bg img.sp {
    display: block;
}
section#photo_day::before {
  background-image: url('images/gekisen/blank_sp.webp');
}
}

/* ---------- bg item ---------- */
section#photo_day .shiba4 /* 上部 */ {
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 61;
  width: 3417px;
  position: absolute;
}
@media screen and (max-width: 980px) {
  section#photo_day .shiba4 {
  top: -21px;
    width: 1366px;
  }
}
section#photo_day .faca_bg_btm /* 下部 */ {
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  min-width: 500px;
  position: absolute;
}
/* ---------- item ---------- */
section#photo_day .ino_ufo_2 /* UFO昼 */ {
  position: absolute;
  top: 5%;
  left: 0;
  width: 125px;
  z-index: 70;
  filter: drop-shadow(0px 0px 20px rgba(0, 0, 0, 0.5));
  opacity: .85;
}
section#photo_day .ino_ufo_2_sp /* UFO昼sp */ {
  display: none;
}
@media screen and (max-width: 980px) {
section#photo_day .ino_ufo_2 /* UFO昼 */ {
  display: none;
}
section#photo_day .ino_ufo_2_sp /* UFO昼sp */ {
  display: block;
  position: absolute;
  top: 30%;
  left: 0;
  transform: translateX(-50%);
  width: 125px;
  z-index: 70;
  filter: drop-shadow(0px 0px 20px rgba(0, 0, 0, 0.5));
  opacity: .85;
  transform: translateZ(0);
}
}

/* ---------- layer2 ---------- */
section#photo_day .layer2 {
  position: absolute;
  width: 100%;
  will-change: transform, opacity;
}
section#photo_day .layer2-middle /* 虹（未使用） */ {
  background-image: url('images/mori_b.webp');
  background-position: center bottom;
  background-size: cover;
  z-index: 2;
  height: 800px;
  min-width: 800px;
}


/* -------------------------- #intro -------------------------- */
section#intro {
  position: relative;
  overflow: hidden;
}
section#intro .info {
  position: relative;
  z-index: 999;
  text-align: center;
  margin: 600px auto 550px auto;
  width: 900px;
}
section#intro .info h2{
  margin: 0 auto 20px auto;
}
@media screen and (max-width: 980px) {
  section#intro .info {
    width: 90%;
  margin: 500px auto 300px auto;
  }
section#intro .info h2{
  margin: 0 auto 20px auto;
}
}
/* iMac対応 */
@media screen and (max-width: 1500px) {
  section#intro .info {
  margin: 500px auto 350px auto;
  }
}






/* ---------- #intro h2 ---------- */
section#intro .info h4 {
  color: #000000;
  line-height: 2;
  font-size: 20px;
}
@media screen and (max-width: 980px) {
  section#intro .info h2 {
    font-size: 60px;
  }
  section#intro .info h4 {
    font-size: 20px;
  }
}
@media screen and (max-width: 600px) {
  section#intro .info h2 {
    font-size: 60px;
  }
  section#intro .info h4 {
          font-size: 14px;
        line-height: 1.7;
  }
}

/* ---------- layer ---------- */
section#intro .layer {
  position: absolute;
  width: 100%;
  will-change: transform, opacity;
}
section#intro .layer-back /* 緑モヤモヤ */
  {
  background-image: url('images/bg_archive6_2.webp');
  background-position: center bottom;
  background-size: cover;
  z-index: 2;
  height: 100%;
  min-width: 800px;
  opacity: 1;
}
section#intro .layer-middle /* 森 */
  {
  background-image: url('images/morimori_bg_2.webp');
  background-position: center bottom;
  background-size: cover;
  z-index: 3;
  height: 900px;
  min-width: 800px;
  opacity: .5;
}
/* ---------- bg item ---------- */
section#intro .morimori_bg_top /* 森上部 */ {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  min-width: 800px;
  position: absolute;
}
/* ---------- item ---------- */
section#intro .kujira-wrapper /* くじら */ {
  top: 100px;
  z-index: 62;
  position: absolute;
}
section#intro .kujira-inner /* くじら */ {
  left: -300px;
  position: absolute;
  width: 700px;
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  transform: translateZ(0);
}
section#intro .pyra-wrapper /* ピラミッド */ {
  bottom: 1000px;
  z-index: 62;
  position: absolute;
}
section#intro .pyra-inner /* ピラミッド */ {
  left: 1000px;
  position: absolute;
  width: 700px;
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  transform: translateZ(0);
}
@media screen and (max-width: 980px) {
section#intro .kujira-wrapper /* くじら */ {
  top: 50px;
}
section#intro .kujira-inner /* くじら */ {
  left: -300px;
  width: 500px;
}
section#intro .pyra-wrapper /* ピラミッド */ {
  bottom: 690px;
  z-index: 62;
}
section#intro .pyra-inner /* ピラミッド */ {
  left: 300px;
  width: 400px;
}
}



/* ---------- btn-box(new) ---------- */
section#intro .btn-box {
  position: relative;
  margin: 0 auto 160px auto;
  z-index: 60;
  height: 333px;
}
/*  btn_bg  */
section#intro .btn-box .btn_bg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
}
section#intro .btn-box .btn_bg .uzu {
  position: absolute;
  top: -100px;
  left: -200px;
  width: 400px;
  height: auto;
}
/*  btn_menu  */
section#intro .btn-box .btn-innerbox {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
}
section#intro .btn-box .btn-innerbox div {
  position: absolute;
  width: 166px;
  height: auto;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
  transition: all 0.3s ease-in-out;
}
section#intro .btn-box .btn-innerbox div.btn_1 {
  top: 0px;
  left: 0px;
}
section#intro .btn-box .btn-innerbox div.btn_2 {
  top: 0px;
  left: 183px;
}
section#intro .btn-box .btn-innerbox div.btn_3 {
  top: 0px;
  left: 366px;
}
section#intro .btn-box .btn-innerbox div.btn_4 {
  top: 0px;
  left: 550px;
}
section#intro .btn-box .btn-innerbox div.btn_5 {
  top: 0px;
  left: 733px;
}
section#intro .btn-box .btn-innerbox div.btn_6 {
  top: 166px;
  left: 83px;
}
section#intro .btn-box .btn-innerbox div.btn_7 {
  top: 166px;
  left: 266px;
}
section#intro .btn-box .btn-innerbox div.btn_8 {
  top: 166px;
  left: 449px;
}
section#intro .btn-box .btn-innerbox div.btn_9 {
  top: 166px;
  left: 633px;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#intro .btn-box {
  margin: 0 auto 100px auto;
  height: 249px;
}
section#intro .btn-box .btn_bg .uzu {
  width: 300px;
    position: absolute;
    top: -30px;
    left: -150px;
}
/*  btn_menu  */
section#intro .btn-box .btn-innerbox {
  width: 307px;
}
section#intro .btn-box .btn-innerbox div img {
  width: 83px;
}
section#intro .btn-box .btn-innerbox div.btn_1 {
  top: 0px;
  left: 0px;
}
section#intro .btn-box .btn-innerbox div.btn_2 {
  top: 0px;
  left: 91px;
}
section#intro .btn-box .btn-innerbox div.btn_3 {
  top: 0px;
  left: 182px;
}
section#intro .btn-box .btn-innerbox div.btn_4 {
  top: 83px;
  left: 41px;
}
section#intro .btn-box .btn-innerbox div.btn_5 {
  top: 83px;
  left: 132px;
}
section#intro .btn-box .btn-innerbox div.btn_6 {
  top: 83px;
  left: 224px;
}
section#intro .btn-box .btn-innerbox div.btn_7 {
  top: 166px;
  left: 0px;
}
section#intro .btn-box .btn-innerbox div.btn_8 {
  top: 166px;
  left: 91px;
}
section#intro .btn-box .btn-innerbox div.btn_9 {
  top: 166px;
  left: 182px;
}
}


/* -------------------------- #gallery -------------------------- */
section#gallery {
  position: relative;
  overflow: hidden;
}

/* ---------- bg items ---------- */
section#gallery .uchu_bg_btm {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  min-width: 800px;
}


/* ---------- gallery-container ---------- */
.gallery-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.gallery-container .row {
  display: flex;
  width: max-content;
  position: relative;
}
.gallery-container .row img {
  width: 500px;
  height: 500px;
  margin: 150px 30px;
  border-radius: 20px;
  object-fit: cover;
  flex-shrink: 0;
}
.gallery-container .row-1 img {
  margin: 0px 40px 80px;
}
.gallery-container .row-2 img {
  width: 250px;
  height: 250px;
  margin: 0px 20px 500px;
}
/* iMac対応 */
@media screen and (max-width: 1500px) {
  .gallery-container .row-2 img {
    margin: 0px 20px 500px;
  }
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
  .gallery-container .row-1 img {
    width: 150px;
    height: 150px;
    margin: 0px 10px 20px;
  }
.gallery-container .row-2 img {
  width: 100px;
  height: 100px;
  margin: 0px 10px 200px;
}
}


/* -------------------------- #content -------------------------- */
/* ---------- 共通 ---------- */
section#content {
  position: relative;
  overflow: hidden;
}
section#content .info {
  position: relative;
  /* padding: 40px; */
  margin: 200px auto;
  z-index: 60;
  text-align: center;
  /* width: 900px; */
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
  section#content .info {
    /* width: 90%; */
    /* padding: 40px 5%; */
  }
}
section#content .info h2 {
  font-size: 80px;
  /* font-family: "Montserrat", sans-serif;
  font-weight: 200; */
  font-family: "Amatic SC", sans-serif;
  font-weight: 400;
  font-style: normal;
}
section#content .info h3 {
  font-size: 40px;
  /* font-family: "Montserrat", sans-serif;
  font-weight: 200; */
  font-family: "Amatic SC", sans-serif;
  font-weight: 400;
  font-style: normal;
  margin: 0px auto 30px auto;
}
section#content .info h4 span {
  font-size: 35px;
}
/* EN対応 */
section#content .access.info.en p {
  width: 500px;
  text-align: center;
  margin: 0px auto 20px auto;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#content .access.info.en p {
    width: 100%;
    font-size: 14px;
    /* text-align: left; */
  margin: 0px auto 20px auto;
  }
  section#content .info h2 {
    font-size: 60px;
    margin-bottom: 10px;
  }
section#content .info h3 {
  font-size: 38px;
  margin: 0px auto 10px auto;
}
}
/* ---------- overview ---------- */
section#content .info.overview {
  margin: 400px auto 0 auto;
  width: 900px;
}
section#content .info.overview h2 {

}
section#content .info h3 {
  margin: 0px auto 10px auto;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#content .info.overview {
  margin: 150px auto 0 auto;
  width: 75%;
}
}
/* === 日程 --- */
section#content .info.overview h5 {
  font-size: 55px;
}
section#content .info.overview h5.date {
  font-size: 70px;
}
section#content .info.overview h5 span {
  font-size: 40px;
}
section#content .info.overview h5.date span {
  font-size: 50px;
}
section#content .info.overview h5.venue {
  font-size: 29px;
  font-family: "BIZ UDPGothic", serif;
  font-weight: 100;
  color: #000;
}
section#content .info.overview .date25 {
  display: block;
  width: 600px;
  margin: 0px auto 40px auto;
}
section#content .info.overview .location {
  display: block;
  width: 600px;
  margin: 0px auto 40px auto;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#content .info.overview h2.mb30 {
  margin-bottom: -10px;
}
  section#content .info.overview h5 {
    font-size: 40px;
  }
  section#content .info.overview h5.date {
    font-size: 37px;
  margin-bottom: 20px;
  }
  section#content .info.overview h5.date span {
    font-size: 25px;
  }
section#content .info.overview h5.venue {
  font-size: 16px;
  margin-bottom: 20px;
}
section#content .info.overview .date25 {
  width: 100%;
}
section#content .info.overview .location {
  width: 100%;
  margin: 0px auto 20px auto;
}
}


/* venue_gallery */
section .venue_gallery {
  position: relative;
  margin: 0px auto 200px auto;
  z-index: 60;
  text-align: center;
}

/* ==============================
   ギャラリー3枚 横並び
============================== */
.gallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}
.gallery span {
  width: 160px;
  height: 160px;
  overflow: hidden;
  border-radius: 15px;
  display: block;
}
.gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 正方形に切り抜く */
  cursor: pointer;
}

/* ==============================
   モーダル（画像拡大表示）
============================== */
#modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
}
.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 95vw;
  max-height: 95vh;
  overflow: auto;
  background: none;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
}
.modal-content img {
  display: block;
  width: auto;
  height: auto;
  max-width: 95vw;
  max-height: 95vh;
  border-radius: 10px;
}
.modal-close {
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 2rem;
  color: #fff;
  cursor: pointer;
}

/* ==============================
   モバイル対応
============================== */
@media screen and (max-width: 980px) {
  section .venue_gallery {
    margin: 0 auto 100px auto;
  }
  .gallery {
    gap: 15px;
  }
  .gallery span {
    width: 100px;
    height: 100px;
  }
}





/* ---------- ticket ---------- */
section#content .info.ticket {
  margin: 0 auto 400px auto;
}
section#content .info.ticket h4 {
    margin: 0 auto 0 auto;
    color: #000000;
    font-size: 16px;
}
section#content .info.ticket a {
    display: block;
}
section#content .info.ticket .link-btn {
    font-size: 22px;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#content .info.ticket {
  width: 85%;
  margin: 0 auto 100px auto;
}
section#content .info.ticket .mb100 {
  margin: 0 auto 50px auto;
}
section#content .info.ticket .mb50 {
  margin: 0 auto 20px auto;
}
section#content .info.ticket .link-btn {
    font-size: 16px;
}
section#content .info.ticket .link-btn i.fa-ticket{
    font-size: 15px;
}
}

.link-btn.large {
    width: 100%;
  max-width: 600px;
  padding: 10px 0;
  font-size: 25px;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
.link-btn.large {
   max-width: 250px;
 padding: 10px 0;
  font-size: 16px;
}
}

/* テーブル全体のスタイル */
.ticket-table {
  width: 100%;
  max-width: 800px;
  margin: 0 auto 50px auto;
  border-collapse: collapse;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  background-color: #eaf3e3b8;
  border-radius: 10px 10px 0px 0px;
  overflow: hidden;
  font-size: 13px;
}
.ticket-table thead /* 未使用 */{
  background-color: #4e7750;
  color: #fff;
}
.ticket-table th,
.ticket-table td {
  padding: 16px;
  text-align: left;
}
/* .ticket-table th.soldout::before,
.ticket-table td.soldout::before {
    align-items: center;
    background: #dd521c;
    border-radius: 1.5rem;
    color: #fff;
    content: "販売終了";
    display: inline-flex
;
    font-size: 1.4rem;
    height: 3rem;
    justify-content: center;
    margin-left: auto;
    order: 5;
    width: 7.7rem;
    top: 50%;
    transform: translateY(-50%);
    right: 1.9rem;
} */
.ticket-table span {
  font-weight: bold;
    border-radius: 1.5rem;
    color: #fff;
    padding: 5px 7px;
    font-size: 8px;
  }
.ticket-table span.onsale {
background: #d47516;
padding: 5px 11px;
}
.ticket-table span.soldout {
background: #4e7750;
  }
.ticket-table tbody tr /* ボーダーと行のスタイル */ {
border-bottom: 4px solid #4e7750;
}
.ticket-table tbody tr:nth-child(even) {
  background-color: #f2f2f2cd;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
.ticket-table {
  font-size: 10px;
  margin: 0 auto 20px auto;
}
.ticket-table th,
.ticket-table td {
  padding: 10px;
}
}
/* ---------- photo_night ---------- */

section#content .bg {
    position: sticky;
    left: 0;
    top: 0;
    z-index: -1;
}
section#content .bg img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
section#content div.photo_night {
  position: relative;
  /* height: 100vh; */
  overflow: hidden;
  z-index: 60;
}
section#content div.photo_night::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; /* 背景の高さを少し大きめにしてる */
  background-image: url('images/gekisen/夜.webp');
  background-size: contain; /* ここで背景画像のサイズを指定 */
  background-repeat: no-repeat;
  background-position: top center;
  z-index: -1;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  transition: none;
  opacity: 1; /* 背景位置はJSで動かすならそのまま */
  background-position: center calc(50% + var(--bg-offset, 0));
}
section#content .bg img.pc {
    display: block;
}
section#content .bg img.sp {
    display: none;
}
/* --- モバイル対応（パララックスOFF） --- */
@media screen and (max-width: 980px) {
section#content .bg img.pc {
    display: none;
}
section#content .bg img.sp {
    display: block;
}
section#content div.photo_night::before {
  background-image: url('images/gekisen/blank.webp');
}
}

section#content .ino_ufo_3 /* UFO夜 */ {
  position: absolute;
  top: 30%;
  right: -50%;
  width: 125px;
  z-index: 80;
  filter: drop-shadow(0px 0px 20px rgba(0, 0, 0, 0.5));
  opacity: .85;
}
section#content .ino_ufo_3_sp /* UFO夜sp */ {
  display: none;
}
@media screen and (max-width: 980px) {
section#content .ino_ufo_3 /* UFO夜 */ {
  display: none;
}
section#content .ino_ufo_3_sp /* UFO夜sp */ {
  display: block;
  position: absolute;
  top: 100px;
  right: 0;
  transform: translateX(-50%);
  width: 125px;
  z-index: 80;
  filter: drop-shadow(0px 0px 20px rgba(0, 0, 0, 0.5));
  opacity: .85;
  transform: translateZ(0);
}
}

/* ---------- bg items ---------- */
section#content .iseki_bg_top /* 遺跡上部 */
  {
  position: relative;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  /* filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5)); */
  z-index: 61;
  width: 100%;
  min-width: 500px;
  margin-top: -400px;
}

section#content .iseki_bg_mid1 /* 中段1 */
  {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  min-width: 500px;
}

section#content .iseki_bg_mid2 /* 中段2 */
  {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 61;
  width: 100%;
  min-width: 500px;
}

section#content .iseki_bg_btm /* 遺跡下部 */
  {
  position: relative;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 61;
  width: 100%;
  min-width: 500px;
}

/* ---------- access ---------- */
section#content .info.access {
  margin: 100px auto 100px auto;
  padding-top: 100px;
  width: 900px;
}
section#content .info.access h3 {
}
section#content .info.access h4 {
    margin: 0 auto 0 auto;
    font-size: 16px;
}
section#content .info.access h3.place {
  color: #47637f;
}
section#content .info.access.ja h3.place {
    font-family: "Hina Mincho", serif;
  font-weight: 400;
  font-style: normal;
}
section#content .info.access.en h3.place {
   font-family: "BIZ UDPGothic", serif;
   font-size: 26px;
    margin: 0 auto 10px auto;
}
section#content .info.access p.lead {
    font-size: 15px;
    line-height: 1.7;
    margin: 0 auto 30px auto;
}
section#content .info.access p.address {
  font-size: 14px;
  text-align: center;
    margin: 0 auto 20px auto;
}
section#content .info.access p.tcenter {
    text-align: center;
}
section#content .info.access a.textlink {
  width: 100%;
  display: block;
  overflow: hidden;
  margin: 0 auto 20px auto;
}
section#content .info.access .link-btn {
    margin: 0 auto 50px auto;
}
/* --- モバイル対応 --- */
section#content .info.access .title br,
section#content .info.access .cap br {
  display: none;
}
@media screen and (max-width: 980px) {
section#content .info.access .title br,
section#content .info.access .cap br {
  display: block;
}
section#content .info.access {
  margin: 100px auto 100px auto;
  padding-top: 20px;
  width: 85%;
}
section#content .info.access h3.underline {
    margin: 0 auto 10px auto;
}
section#content .info.access.en h3.place {
    font-size: 18px;
    margin: 0 auto 10px auto;
}
section#content .info.access.ja h3.place {
    font-size: 20px;
    margin: 0 auto 0px auto;
}
section#content .info.access p {
    margin: 0 auto 20px auto;
}
section#content .info.access p.address {
    font-size: 12px;
    margin: 0 auto 20px auto;
}
section#content .info.access a.textlink {
    font-size: 12px;
}
section#content .info.access .link-btn {
    margin: 0 auto 15px auto;
}
}
/* --- items --- */
section#content .ino_car /* 車 */ {
  top: -30px;
  left: 140%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 300px;
  position: absolute;
}
/* --- モバイル対応 --- */
section#content .ino_car_sp /* 車 */ {
  display: none;
}
@media screen and (max-width: 980px) {
section#content .ino_car /* 車 */ {
  display: none;
}
section#content .ino_car_sp /* 車 */ {
  display: block;
  top: -60px;
  left: 200px;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 200px;
  position: absolute;
  transform: translateZ(0);
}
}
.map-container {
  max-width: 800px;
  margin: 50px auto;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  border: 4px solid #49a776;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 450px;
}
/* --- モバイル対応 --- */
@media screen and (max-width: 980px) {
.map-container {
  width: 98%;
  height: 320px;
  margin: 0px auto 25px auto;
}
}
.map-container iframe {
  filter: hue-rotate(324deg) saturate(.5) brightness(1);
}



/* ---------- notice ---------- */
section#content .info.notice {
  margin: 0 auto 100px auto;
}
/* spanタイトル装飾 */
section#content .info.notice h2 {
display: inline-block;

}
section#content .info.notice h3 {
display: inline-block;
  position: relative;
  color: #2c3e50;
  font-size: 40px;
    font-family: "Hina Mincho", serif;
  font-weight: 400;
  font-family: "Montserrat", sans-serif;
  font-weight: 200;
  font-style: normal;
  font-family: "Amatic SC", sans-serif;
    font-weight: 400;
    font-style: normal;
  margin: 0px auto 10px auto;
}
section#content .info.notice h3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 5px;
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, #8e44ad, #3498db);
  border-radius: 1px;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
}
/* --- ja対応 --- */
section#content .info.notice.ja h3 {
  font-size: 16px;
  font-family: "Hina Mincho", serif;
  font-weight: 400;
  padding: 8px;
  color: #2c3e50;
  margin: 0px auto 5px auto;
}
section#content .info.notice p.cap {
    text-align: center;
}


/* --- モバイル対応 --- */
@media screen and (max-width: 980px) {
section#content .info.notice {
  width: 85%;
}
section#content .info.notice.ja h3 {
  font-size: 15px;
}
section#content .info.notice.en h3 {
  font-size: 32px;
}
}
/* ---------- media ---------- */
section#content .info.media {
  margin: 0 auto 100px auto;
}
section#content .info.media a {
  display: block;
}
/* --- モバイル対応 --- */
@media screen and (max-width: 980px) {
section#content .info.media {
  margin: 0 auto 30px auto;
}
section#content .info.media button.mb50 {
  margin: 0 auto 20px auto;
}
}


/* ---------- sns ---------- */
section#content .info.sns {
  margin: 0 auto 400px auto;
}
.sns-icons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap; /* 折り返しを有効にする */
  margin: 0px auto 60px;
  background-color: #2e7d5b;
  color: white;
  padding: 5px 20px;
  border: none;
  border-radius: 20px;
  cursor: pointer;
  box-shadow: 0 5px 15px rgba(46, 125, 91, 0.4);
  transition: box-shadow 0.3s, background-color 0.3s;
  text-align: center;
  background-image: url("images/bg_pr2.webp");
  width: 260px; /* 適度な幅を設定（必要に応じて調整） */
}
.sns-icons a {
  color: #fff;
  font-size: 30px;
  transition: color 0.3s ease;
  width: 25%;
  /* 2つで100% → 横に2つ並ぶ */
  margin: 15px auto;
}
@media screen and (max-width: 980px) {
  section#content .info.sns {
    margin: 0 auto 200px auto;
  }
.sns-icons {
   border-radius: 20px;
  padding: 5px 20px;
  width: 160px;
}
.sns-icons a {
  font-size: 20px;
  width: 25%;
  margin: 0 auto;
}
}

section#content .btn {
  position: relative;
  margin: 0 auto 300px auto;
  z-index: 60;
  text-align: center;
}
/* モバイル対応 */
@media screen and (max-width: 980px) {
section#content .btn {
  margin: 0 auto 100px auto;
}
}

/* ---------- bg items ---------- */
section#content .uchu_bg_top {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  position: absolute;
  min-width: 800px;
}
section#content .iseki_bg_middle {
  top: -300px;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  position: relative;
  min-width: 800px;
}
section#content .pyra_bg_btm {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 10;
  width: 100%;
  position: absolute;
  min-width: 800px;
}

/* --- items --- */
section#content .ino8_2 /* エッフェル塔（未使用） */ {
  top: 2400px;
  right: -200px;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 300px;
  position: absolute;
}
section#content .ino_flower_2 /* 花女 */ {
  bottom: 1500px;
  right: -150px;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 59;
  width: 300px;
  position: absolute;
}
@media screen and (max-width: 980px) {
section#content .ino_flower_2 /* 花女 */ {
  bottom: 1250px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 59;
  width: 200px;
  display: none;
}
}
section#content .shabon_2-wrapper {
  bottom: -500px;
  position: absolute;
  width: 100%;
}
section#content .shabon_2-inner {
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 59;
  width: 1000px;
  position: absolute;
  opacity: .5;
}
section#content .hane_2-wrapper {
  top: 600px;
  position: absolute;
  width: 100%;
}
section#content .hane_2-inner {
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 59;
  width: 1000px;
  position: absolute;
  opacity: .75;
}
@media screen and (max-width: 980px) {
section#content .hane_2 {
   top: 400px;
}
}


/* -------------------------- #video -------------------------- */
section#video {
  position: relative;
}
#bg-video {
  position: relative;
  object-fit: cover;
  z-index: -1;
  background: rgba(0, 0, 0, 1);
  width: 100%;
  aspect-ratio: 16 / 9; /* 高さを自動で設定 */
  overflow: hidden;
}
#bg-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
/* ---------- bg items ---------- */
section#video img {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.5));
  z-index: 62;
  width: 100%;
  min-width: 500px;
}
section#video .video_bg_top {
  top: 0px;
}
section#video .video_bg_btm {
  bottom: 0px;
}
/* -------------------------- footer -------------------------- */
.footer {
  position: relative;
  bottom: 0px;
  padding: 40px;
  text-align: center;
  font-size: 12px;
  width: 100%;
  z-index: 500;
  color: white;
  background-image: url("images/footer_bg.webp");
  background-size: cover;
  background-position: center;
}

/* -------------------------- loading Animations -------------------------- */
.bn-loading {
  display: flex;
  position: fixed;
  z-index: 1002;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 1;
  background: #fff;
}
.bn-loading.-loaded {
  -webkit-animation: fade 1s ease .8s forwards;
  animation: fade 1s ease .8s forwards;
  pointer-events: none;
}
.bn-loading__logo {
  width: 200px;
}
.bn-loading__logo #text {
  -webkit-mask: url(#clipmask);
  mask: url(#clipmask);
}
.bn-loading__logo .st0 {
  fill: #000;
}
.bn-loading__logo .mask01 {
  stroke-width: 5.1024;
  stroke-dasharray: 2233;
  stroke-dashoffset: 2233;
  stroke: #fff;
  fill: none;
  stroke-linejoin: round;
  stroke-miterlimit: 10;
}
.-regist .bn-loading__logo .mask01 {
  -webkit-animation: strokeAnimation01 2s linear 0s forwards;
  animation: strokeAnimation01 2s linear 0s forwards;
}
.bn-loading__logo .mask02 {
  stroke-width: 11.3386;
  stroke-dasharray: 212;
  stroke-dashoffset: 212;
  stroke: #fff;
  stroke-linejoin: round;
  stroke-miterlimit: 10;
}
.-regist .bn-loading__logo .mask02 {
  -webkit-animation: strokeAnimation02 .5s ease 1.8s forwards;
  animation: strokeAnimation02 .5s ease 1.8s forwards;
}
@-webkit-keyframes fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes strokeAnimation01 {
  0% {
    stroke-dashoffset: 2233;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes strokeAnimation01 {
  0% {
    stroke-dashoffset: 2233;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@-webkit-keyframes strokeAnimation02 {
  0% {
    stroke-dashoffset: 212;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes strokeAnimation02 {
  0% {
    stroke-dashoffset: 212;
  }
  100% {
    stroke-dashoffset: 0;
  }
}



/* -------------------------- CSS Animations -------------------------- */

.rotate {
  animation: spin 20s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Effects */
.blink {
  animation: blinkEffect 5s ease-in-out infinite;
}
@keyframes blinkEffect {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.bounce1 {
  animation: bounceEffect1 5s ease infinite;
}
@keyframes bounceEffect1 {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
  100% {
    transform: translateY(0px);
  }
}
.bounce2 {
  animation: bounceEffect2 5s ease infinite;
}
@keyframes bounceEffect2 {
  0% {
    transform: translateY(-20px);
  }
  50% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(-20px);
  }
}
.bounce3 {
  animation: bounceEffect3 8s ease infinite;
}
@keyframes bounceEffect3 {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
  100% {
    transform: translateY(0px);
  }
}
.bounce4 {
  animation: bounceEffect4 10s ease infinite;
}
@keyframes bounceEffect4 {
  0% {
    transform: translateY(-20px);
  }
  50% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(-20px);
  }
}
.pulse {
  animation: pulseEffect 2s ease-in-out infinite;
}
@keyframes pulseEffect {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

/* -------------------------- Background Images -------------------------- */
.bg_pr2::before {
  content: "";
  position: fixed;
  /* iOSでも安定して表示される */
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-image: url("images/bg_pr2.webp");
  background-size: cover;
  background-position: center;
  filter: hue-rotate(0deg);
  animation: hueAnim 10s linear infinite;
  z-index: -10;
  pointer-events: none;
}
/* Safari（iOS含む）向け調整 */
@supports (-webkit-touch-callout: none) {
  .bg_pr2::before {
    background-attachment: scroll;
    /* fixed回避 */
  }
}







