
* { margin: 0; padding: 0; box-sizing: border-box; }

html { background: #fff; scroll-behavior: smooth;

  scroll-padding-top: calc(min(100vw, 750px) * 0.21); }
body { width: 100%; margin: 0; background: #fff; -webkit-text-size-adjust: 100%; }
.scroller { }

@media (min-width: 751px) {
  body::before, body::after {
    content: ""; position: fixed; left: 0; width: 100%; height: 96px;
    z-index: 0; pointer-events: none;
    background-repeat: repeat-x;
  }
  body::before { top: 0;    background-image: url("../img/wave_top.svg?v=20260721w4");    background-position: top left; }
  body::after  { bottom: 0; background-image: url("../img/wave_bottom.svg?v=20260721w4"); background-position: bottom left; }
}
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.lp {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  background: #fff;
  overflow: hidden;
}
.lp .s {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
}

picture { display: block; line-height: 0; }

.map_embed { position: relative; width: 100%; aspect-ratio: 750 / 461; background: #fff; }
.map_embed iframe { position: absolute; left: 10.13%; top: 4.34%; width: 80.4%; height: 92.41%; border: 0; }

.hero_h1 { margin: 0; padding: 0; font-size: inherit; font-weight: inherit; line-height: 0; }

.yokai_bg { position: relative; display: block; width: 100%; aspect-ratio: 750 / 2170; background: #f3eb5f; }
.yokai_bg .yk-line { position: absolute; left: 9.6%; width: 82.5%; height: 3px; background: var(--ink, #241d1d); }

.ov {
  position: absolute;
  height: auto;
  z-index: 2;
  pointer-events: none;
}

.fixed_line {
  position: fixed;
  right: max(10px, calc(50% - 375px + 10px));
  bottom: calc(48px + env(safe-area-inset-bottom, 0px));
  z-index: 90;
  width: min(83px, 22.13vw);
  line-height: 0;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .3));
  transition: opacity .25s ease, visibility .25s ease;
}
.fixed_line img { width: 100%; height: auto; }

.fixed_line.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.lp-end { display: block; width: 100%; height: 1px; }

.s-link { display: block; }

.hot {
  position: absolute;
  z-index: 5;
  display: block;

}

.anchor { position: absolute; width: 0; height: 0; }
.site_header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 300;
  width: 100%;
  pointer-events: none;

}

.hd_inner { position: relative; width: 100%; max-width: 750px; margin: 0 auto; }
.site_header .hd_bg { display: block; width: 100%; height: auto; }
.site_header .hd_date { position: absolute; left: 4.5%; top: 24%; width: 61.3%; height: auto; }
.site_header .hd_ig { position: absolute; left: 66.5%; top: 19%; width: 8.4%; line-height: 0; pointer-events: auto; }
.site_header .hd_ig img { width: 100%; height: auto; display: block; }

.menu_btn {
  position: absolute; top: 4%; right: 3%; z-index: 2;
  width: clamp(56px, 15vw, 82px); padding: 0; border: 0; background: none;
  cursor: pointer; line-height: 0; pointer-events: auto;
}
.menu_btn img { width: 100%; height: auto; display: block; }
.menu_btn .mb_open { display: none; }
body.menu-open .menu_btn .mb_closed { display: none; }
body.menu-open .menu_btn .mb_open { display: block; }

body.menu-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }

.nav_modal {
  position: fixed; inset: 0; z-index: 200;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: rgba(30, 20, 20, .35);
}
.nav_modal[hidden] { display: none; }
.nav_modal_inner {
  position: relative; width: 100%; max-width: 750px;
  margin: 0 auto; min-height: 100%; background: #fdf9ee;
}
.menu_img { display: block; width: 100%; height: auto; }
.menu_wrap { position: relative; width: 100%; }

.m-hot { position: absolute; z-index: 5; display: block; }

@media (min-width: 960px) {

  .scroller { scrollbar-gutter: stable; }
  .menu_btn  { position: fixed; right: 15px; top: 15px; }
  .fixed_line { right: 15px; width: 112px; }
}
