@charset "UTF-8";
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-jp), var(--font-en), ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  font-weight: 700;
}

h3 {
  font-size: 20px;
  margin: 0;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a img:hover {
  opacity: 0.7;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

a {
  color: inherit;
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

a:hover {
  opacity: 0.6;
}

.color-primary {
  color: #178EC5;
}

.color-accent {
  color: #FFAF22;
}

.p-page-info {
  margin-bottom: 56px;
}

@media (max-width: 640px) {
  .p-page-info {
    margin-bottom: 32px;
  }
}
:root {
  --color-bg-white: #fff;
  --color-bg-yellow: #fffcef;
  --color-ink: #1a261a;
  --color-muted: rgba(26, 38, 26, 0.65);
  --color-blue: #178EC5;
  --color-accent: #FFAF22;
  --color-stroke: rgba(26, 38, 26, 0.1);
  --color-white: #fff;
  --color-black: #000;
  --font-jp: Zen Kaku Gothic New, sans-serif;
  --font-en: Montserrat, sans-serif;
  --radius: 16px;
  --radius-sm: 12px;
  --inner-max: 1080px;
  --header-height: 64px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --duration: 0.5s;
}

.l-inner {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.l-grid {
  display: grid;
}
.l-grid--cards {
  gap: 43px;
  grid-template-columns: repeat(4, 1fr);
  padding: 0;
}
@media screen and (max-width: 1024px) {
  .l-grid--cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 50px 30px;
  }
}
@media screen and (max-width: 640px) {
  .l-grid--cards {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
  }
}

.l-grid__item {
  list-style: none;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 120;
  height: 64px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.header-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  max-width: 100%;
  padding: 20px 45px 0;
}

.logo {
  font-weight: 900;
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  color: #1a261a;
}

.hamburger {
  width: 94px;
  height: 37px;
  background: #000;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 9px;
  position: relative;
  z-index: 140;
  margin-top: -15px;
}

.hamburger__icon {
  width: 40px;
  height: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.hamburger__icon span {
  display: block;
  width: 40px;
  height: 2px;
  background: #fff;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.hamburger[aria-expanded=true] .hamburger__icon span:nth-child(1) {
  -webkit-transform: rotate(45deg) translate(5px, 5px);
          transform: rotate(45deg) translate(5px, 5px);
}

.hamburger[aria-expanded=true] .hamburger__icon span:nth-child(2) {
  opacity: 0;
}

.hamburger[aria-expanded=true] .hamburger__icon span:nth-child(3) {
  -webkit-transform: rotate(-45deg) translate(5px, -5px);
          transform: rotate(-45deg) translate(5px, -5px);
}

.hamburger__text {
  position: absolute;
  bottom: -24px;
  font-size: 16px;
  color: #000;
  letter-spacing: 0.05em;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
}

/* オフキャンバスパネル */
.nav-panel {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: 85%;
  max-width: 480px;
  background: #fffcef;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 130;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.nav-panel__inner {
  padding: 149px 72px 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 24px;
}

.nav-panel__close {
  -ms-flex-item-align: end;
      align-self: flex-end;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  background: transparent;
  font-size: 18px;
  cursor: pointer;
}

.nav-panel .nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  margin-top: 8px;
  height: 58vh;
  overflow: scroll;
  overflow-x: hidden;
}

.nav-panel .nav .nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-panel .nav .nav-item {
  position: relative;
  padding: 10px 0;
}

.nav-panel .nav .nav-item::before {
  content: "";
  position: absolute;
  right: 10px;
  top: 25px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 25px;
  height: 25px;
  background: url("../img/icon-nav-item.svg") no-repeat center;
  background-size: contain;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.nav-panel .nav .nav-item:hover::before {
  -webkit-transform: translate(10px, -50%);
          transform: translate(10px, -50%);
}

.nav-panel .nav .nav-item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: url("../img/border-nav.svg") repeat-x;
}

.nav-panel .nav .nav-subitem {
  position: relative;
  padding-bottom: 5px;
  padding-top: 2px;
}

.nav-panel .nav .nav-subitem::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: url("../img/border-nav.svg") repeat-x;
}

.nav-panel .nav .nav-submenu .nav-subitem:last-child::after {
  display: none;
}

.nav-panel .nav a {
  font-size: 18px;
  font-weight: 700;
  color: #1a261a;
  padding: 8px 0;
}

.nav-panel .nav a, .nav-panel .nav button {
  margin-left: 9px;
}

.nav-submenu {
  margin-bottom: -9px;
}

.nav-submenu-toggle {
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: #1a261a;
  background: transparent;
  border: none;
  padding: 8px 0 14px;
  cursor: pointer;
  text-align: left;
  width: 100%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.nav-submenu-toggle:hover {
  opacity: 0.7;
}

.nav-submenu {
  list-style: none;
  padding-left: 0;
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 0.3s ease;
  transition: max-height 0.3s ease;
  position: relative;
}

.nav-submenu.open {
  max-height: 1000px;
}

.nav-submenu a {
  font-size: 16px;
  font-weight: 500;
  color: #1a261a;
  padding: 4px 0;
  display: block;
  position: relative;
}

.nav-submenu a::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 25px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 25px;
  height: 25px;
  background: url("../img/icon-nav-subitem.svg") no-repeat center;
  background-size: contain;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.nav-submenu a:hover::after {
  -webkit-transform: translate(10px, -50%);
          transform: translate(10px, -50%);
}

.nav-panel .nav .nav-submenu .nav-subitem:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: url("../img/border-nav.svg") repeat-x;
}

.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.36);
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 125;
}

/* メニューが開いている状態 */
.is-menu-open {
  overflow: hidden;
}

.is-menu-open .nav-panel {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.is-menu-open .nav-overlay {
  opacity: 1;
  pointer-events: auto;
}

/* 大きい画面では通常の横並びナビも可能にする（必要なら上書きしてください） */
@media (min-width: 1024px) {
  .nav-panel {
    border-radius: 35px 0 0 35px;
  }
}
@media (max-width: 640px) {
  .logo {
    width: 145px;
  }
  .nav-panel {
    width: 100vw;
  }
  .nav-panel__inner {
    padding: 110px 16px 80px;
  }
  .nav-panel .nav a, .nav-panel .nav button {
    font-size: 16px;
  }
}
.btn {
  display: inline-block;
  padding: 14px 32px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
  text-align: center;
}

.btn-primary {
  color: #fff;
  background: #FFAF22;
}
.btn-primary:hover {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}

.c-title--lv1 {
  position: relative;
  margin-left: 60px;
}
.c-title--lv1 ::before {
  content: "";
  position: absolute;
  left: -60px;
  top: -28px;
  width: 140px;
  height: 65px;
  background: url(../img/deco-cloud.svg);
  background-size: contain;
  background-repeat: no-repeat;
  z-index: -1;
}
.c-title--lv1 h2 {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 90px;
  line-height: 0.8;
}
.c-title--lv1 small {
  font-size: 14px;
}

.c-title--lv1-primary {
  margin-top: 30px;
  color: #178EC5;
}

.c-title--lv1-accent {
  margin-top: 30px;
  color: #FFAF22;
}

.c-page-heading::after {
  content: "";
  position: absolute;
  right: 40px;
  bottom: 20px;
  width: 82px;
  height: 81px;
  background: url("../img/deco-tree.svg") no-repeat center/contain;
}

.c-title--lv2 {
  margin-top: 40px;
}
.c-title--lv2 h2 {
  text-align: center;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  color: #FFAF22;
  font-size: 60px;
}
.c-title--lv2 ::before, .c-title--lv2 ::after {
  content: "";
  width: 82px;
  height: 81px;
  background: url("../img/deco-tree.svg") no-repeat center/contain;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-title--lv2 ::before {
  left: -110px;
}
.c-title--lv2 ::after {
  right: -110px;
}

@media (max-width: 640px) {
  .c-title--lv1 {
    margin-left: 46px;
  }
  .c-title--lv1 ::before {
    width: 100px;
    height: 50px;
    top: -21px;
    left: -46px;
  }
  .c-title--lv1 h2 {
    font-size: 48px;
  }
  .c-title--lv2 ::before, .c-title--lv2 ::after {
    display: none !important;
  }
  .c-title--lv2 img {
    width: 68%;
  }
  .c-page-heading::after {
    display: none;
  }
  .c-title--lv2 h2 {
    font-size: 32px;
  }
}
.sb_instagram_header {
  display: none;
}

.footer-instagram__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-instagram__item a {
  display: block;
}

.footer-instagram__item img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

@media (max-width: 767px) {
  .footer-instagram__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}
.footer {
  margin-top: 100px;
}

.footer-image-wrapper {
  padding-top: 92px;
  position: relative;
}
.footer-image-wrapper::before {
  content: "";
  left: 5%;
  top: 10px;
  width: 106px;
  height: 104px;
  background: url(../img/deco-cloud-1.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  z-index: -1;
}

.deco-nami--footer {
  margin-top: 80px;
  margin-bottom: -30px;
  position: relative;
}
.deco-nami--footer::before {
  content: "";
  right: 20%;
  top: -60px;
  width: 120px;
  height: 125px;
  background: url(../img/deco-cloud-2.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  z-index: 2;
}

.footer-access {
  background-color: #178EC5;
  padding: 48px 0 0;
  position: relative;
  z-index: 1;
  padding-top: 0;
}

.c-title--footer {
  position: absolute;
  top: 50px;
  left: 56%;
}

.footer-access-body {
  padding-top: 60px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.map-wrapper {
  aspect-ratio: 3/2;
  width: 53%;
  max-height: 480px;
}
.map-wrapper iframe {
  border-radius: 0 35px 35px 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.footer-access-txtbox {
  background: #fff;
  border-radius: 35px;
  padding: 50px 40px 40px 80px;
  margin-right: -144px;
  margin-top: 100px;
  width: 53%;
  max-width: 800px;
  border: solid 2px #000;
}

.footer-access-inquiry {
  font-size: 20px;
  margin-bottom: 0px;
}

.footer-access-manager {
  margin-top: 0;
}

.footer-access-directions h3 {
  margin-bottom: -14px;
  margin-left: 48px;
  position: relative;
}
.footer-access-directions h3::before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  left: -48px;
}

.footer-access-directions-car h3::before {
  background-image: url(../img/icon-car.svg);
}

.footer-access-directions-train h3::before {
  background-image: url(../img/icon-train.svg);
  height: 36px;
  left: -37px;
  bottom: -2px;
}

.footer-access-sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 10px;
}

.footer-access-privacy {
  font-size: 12px;
  margin-left: 16px;
}

.footer-copy {
  text-align: center;
  padding: 16px 0;
  background-color: #178EC5;
  display: block;
  font-size: 12px;
  color: #fff;
}

/* タブレット */
@media (max-width: 1024px) {
  .deco-nami--footer {
    margin-bottom: -10px;
  }
  .c-title--footer {
    top: 40px;
    left: 16px;
  }
  .footer-access-body {
    padding-top: 150px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 16px;
  }
  .map-wrapper,
  .footer-access-txtbox {
    width: 100%;
    margin-right: 0;
    margin-top: 0;
  }
  .map-wrapper {
    margin-right: 60px;
    padding-left: 30px;
  }
  .footer-access-txtbox {
    margin-left: 60px;
    max-width: none;
  }
}
/* スマートフォン */
@media (max-width: 640px) {
  .deco-nami--footer::before {
    right: 16px;
    top: -46px;
    width: 100px;
    height: 105px;
  }
  .footer-access-body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 16px;
  }
  .c-title--footer {
    top: 50px;
  }
  .map-wrapper,
  .footer-access-txtbox {
    width: 100%;
  }
  .map-wrapper {
    margin-right: 32px;
    padding: 0;
  }
  .footer-access-txtbox {
    padding: 24px 11% 32px 6%;
    margin-left: 32px;
    border-radius: 35px 0 0 35px;
  }
}
.hero {
  width: 100%;
  position: relative;
  overflow: hidden;
}

.deco-nami--hero {
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 100%;
  height: auto;
}

@media (max-width: 1024px) {
  .l-inner {
    padding-left: 24px;
    padding-right: 24px;
  }
  .nav {
    gap: 20px;
  }
  .nav a {
    font-size: 13px;
  }
  .section {
    padding: 56px 0;
  }
  .section-head {
    margin-bottom: 32px;
  }
}
@media (max-width: 640px) {
  .l-inner {
    padding-left: 16px;
    padding-right: 16px;
  }
  .nav {
    gap: 20px;
  }
  .nav a {
    font-size: 13px;
  }
  .section {
    padding: 56px 0;
  }
  .section-head {
    margin-bottom: 32px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .feature-card,
  .btn {
    -webkit-transition: none;
    transition: none;
  }
}
.show-pc-only {
  display: none;
}
@media (min-width: 1025px) {
  .show-pc-only {
    display: block;
  }
}

.show-tb-only {
  display: none;
}
@media (min-width: 641px) and (max-width: 1024px) {
  .show-tb-only {
    display: block;
  }
}

.show-sp-only {
  display: block;
}
@media (min-width: 641px) {
  .show-sp-only {
    display: none;
  }
}

.hide-pc-only {
  display: block;
}
@media (min-width: 1025px) {
  .hide-pc-only {
    display: none;
  }
}

.hide-tb-only {
  display: block;
}
@media (min-width: 641px) and (max-width: 1024px) {
  .hide-tb-only {
    display: none;
  }
}

.hide-sp-only {
  display: none;
}
@media (min-width: 641px) {
  .hide-sp-only {
    display: block;
  }
}

/* 
  KV
*/
.p-kv__inner {
  position: relative;
  max-width: 1200px;
}

.p-kv__img-wrapper {
  width: 100%;
  height: 100%;
}
.p-kv__img-wrapper img {
  position: absolute;
}

.deco-circle-1 {
  top: -30px;
  right: -120px;
}

.deco-cloud {
  top: 110px;
  right: 0;
  z-index: 1;
}

.deco-circle-2 {
  bottom: 17%;
  left: -80px;
}

.deco-cloud-4 {
  bottom: 26%;
  left: -20px;
  z-index: 1;
}

.illust-kv {
  bottom: -8%;
  right: 0;
  z-index: 1;
}

.video-wrapper {
  width: 100%;
  aspect-ratio: 1038/541;
  -webkit-mask-image: url("../img/mask_video-kv.svg");
          mask-image: url("../img/mask_video-kv.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
  position: relative;
  margin-top: 60px;
  overflow: hidden;
}

.video-wrapper video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-kv__title-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 30px;
}

.p-kv__title {
  font-size: 36px;
  font-weight: 900;
  margin: 0;
}

@media (max-width: 1024px) {
  .deco-cloud {
    top: 13%;
  }
  .deco-circle-2 {
    bottom: 23%;
  }
  .deco-cloud-4 {
    bottom: 32%;
  }
  .video-wrapper {
    height: 50vw;
    max-height: 550px;
    margin-top: 100px;
  }
  .p-kv__title-wrapper {
    gap: 20px;
  }
}
@media (max-width: 640px) {
  .p-kv__inner {
    padding: 0 6px;
  }
  .deco-circle-1 {
    top: -65px;
    right: -26px;
    width: 193px;
  }
  .deco-cloud {
    top: -25px;
    right: 1.6px;
    width: 108.68px;
  }
  .deco-cloud-4 {
    width: 95.3px;
    bottom: 37%;
    left: 12px;
  }
  .video-wrapper {
    margin-top: 180px;
  }
}
.p-facility-info {
  margin-top: 50px;
}

.p-facility-info__body {
  background: #fffcef;
  border: solid 2px #000;
  border-radius: 35px;
  padding: 24px 37px;
  margin-top: 48px;
}

.p-facility-info__image-wrapper {
  margin-top: 100px;
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  overflow: hidden;
  position: relative;
}
.p-facility-info__image-wrapper::before {
  content: "";
  position: absolute;
  display: block;
  left: 24px;
  top: 0;
  max-width: 286px;
  width: 26vw;
  height: 102px;
  background: url("../img/img-copy--map.svg") no-repeat center/contain;
}
.p-facility-info__image-wrapper img {
  display: block;
  width: 100%;
  height: auto;
}

.p-facility-info__copy {
  position: absolute;
}

.p-facility-list__inner {
  position: relative;
  margin-top: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.p-facility-list__inner::before {
  content: "";
  position: absolute;
  display: block;
  right: 0;
  top: -200px;
  width: 185px;
  height: 207px;
  background: url("../img/illust-bike.svg") no-repeat center/contain;
}

.p-facility-list__title {
  font-size: 40px;
  margin-bottom: 30px;
}

.p-facility-list__title--experience, .p-facility-list__title--learn {
  color: #178EC5;
}

.p-facility-list__title--eat, .p-facility-list__title--play {
  color: #FFAF22;
}

.p-facility-list__eat, .p-facility-list__learn {
  width: 50%;
  margin-top: 48px;
}
.p-facility-list__eat .l-grid--cards, .p-facility-list__learn .l-grid--cards {
  grid-template-columns: repeat(2, 1fr);
}

.p-facility-list__play {
  margin-top: 48px;
}

.p-facility-list__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
  margin-top: 40px;
}

.p-facility-list__item-title {
  position: absolute;
  top: -52px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 190px;
  height: 75px;
  z-index: 2;
}

.p-facility-list__experience {
  position: relative;
}
.p-facility-list__experience::after {
  content: "";
  position: absolute;
  display: block;
  right: -150px;
  bottom: -150px;
  width: 166px;
  height: 112px;
  background: url("../img/deco-niji.svg") no-repeat center/contain;
  z-index: -1;
}
.p-facility-list__experience .p-facility-list__image-wrapper {
  position: relative;
}
.p-facility-list__experience .p-facility-list__image-wrapper::after {
  content: "";
  position: absolute;
  display: block;
  right: -13px;
  bottom: -13px;
  width: 51px;
  height: 51px;
  background: url("../img/icon-facility-list.svg") no-repeat center/contain;
  z-index: 2;
}

.p-facility-list__eat {
  position: relative;
}
.p-facility-list__eat::after {
  content: "";
  position: absolute;
  display: block;
  left: -170px;
  bottom: -70px;
  width: 193.05px;
  height: 152.27px;
  background: url("../img/deco-cloud-3.svg") no-repeat center/contain;
  z-index: -1;
}

.p-facility-list__learn {
  position: relative;
}
.p-facility-list__learn::after {
  content: "";
  position: absolute;
  display: block;
  right: 0;
  bottom: -100px;
  width: 215px;
  height: 180px;
  background: url("../img/illust-square.svg") no-repeat center/contain;
  z-index: -1;
}

.p-facility-list__image {
  border-radius: 10px;
}

.p-facility-list__description {
  font-size: 14px;
}

@media (max-width: 1024px) {
  .p-facility-info__image-wrapper::before {
    top: -5px;
  }
  .p-facility-list__eat, .p-facility-list__learn {
    width: 100%;
  }
  .p-facility-list__eat .l-grid--cards, .p-facility-list__learn .l-grid--cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .p-facility-list__experience::after {
    right: -50px;
  }
}
@media (max-width: 640px) {
  .p-facility-info__body {
    padding: 16px;
    text-align: center;
  }
  .p-facility-info__image-copy {
    margin-top: 80px;
    margin-bottom: -20px;
  }
  .p-facility-list__inner::before {
    top: -100px;
    width: 140px;
    height: 157px;
  }
  .p-facility-list__title {
    margin-bottom: 20px;
  }
  .p-facility-list__eat .l-grid--cards, .p-facility-list__learn .l-grid--cards {
    grid-template-columns: repeat(1, 1fr);
  }
  .p-facility-list__list {
    gap: 50px;
  }
  .p-facility-list__experience::after {
    right: -30px;
    bottom: -35%;
    width: 142px;
    height: 96px;
  }
  .p-facility-list__eat::after {
    left: -100px;
    bottom: 98%;
    width: 163.1px;
    height: 128px;
  }
  .p-facility-list__learn::after {
    left: 0;
    bottom: -160px;
    width: 199px;
    height: 167px;
  }
  .p-facility-list__play {
    margin-top: 170px;
  }
  .p-facility-info__image-wrapper {
    margin-top: 0;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    padding: 110px 0 100px;
  }
  .p-facility-info__image-wrapper img {
    display: block;
    width: 100%;
    height: auto;
    -ms-touch-action: none;
        touch-action: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    -webkit-user-drag: none;
  }
  .p-facility-info__image-wrapper::before {
    display: none;
  }
}
.p-facility-detail-heading__inner {
  position: relative;
}

.p-facility-detail-heading__description {
  text-align: center;
  font-size: 24px;
  font-weight: 900;
  margin-top: 16px;
}

.p-facility-detail-heading__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 40px;
}

.p-facility-detail-heading__content-inner {
  width: 737px;
  text-align: center;
  border: solid 2px #000;
  border-radius: 35px;
  padding: 32px 20px;
  background: #fffcef;
}

.p-facility-detail-heading__reserve-btn {
  position: absolute;
  top: 140px;
  right: 0;
}

.p-facility-detail-attributes {
  margin-top: 130px;
  position: relative;
  min-height: 480px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-facility-detail-attributes::before {
  content: "";
  position: absolute;
  left: 47%;
  top: -2%;
  width: 122px;
  height: 83px;
  background: url("../img/deco-niji.svg") no-repeat center/contain;
  z-index: 2;
}

.p-facility-detail-attributes__content {
  position: relative;
  width: 46%;
}
.p-facility-detail-attributes__content::after {
  content: "";
  position: absolute;
  display: block;
  left: -40px;
  bottom: -150px;
  width: 100px;
  height: 100px;
  background: url("../img/deco-tree.svg") no-repeat center/contain;
}
.p-facility-detail-attributes__content h3 {
  font-size: 40px;
  color: #FFAF22;
}

.p-facility-detail-attributes__image {
  position: absolute;
  right: 0;
  top: 50%;
  width: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  max-height: 480px;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 35px 0 0 35px;
}

.p-facility-detail-attributes-2 {
  margin-top: 20px;
}
.p-facility-detail-attributes-2::before {
  display: none;
}
.p-facility-detail-attributes-2 .p-facility-detail-attributes__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.p-facility-detail-attributes-2 .p-facility-detail-attributes__image {
  left: 0;
  right: unset;
  border-radius: 0 35px 35px 0;
}
.p-facility-detail-attributes-2 .p-facility-detail-attributes__content::after {
  right: -40px;
  left: unset;
}

.deco-nami--facility-info-top {
  margin-top: 60px;
  margin-bottom: -10px;
  position: relative;
  z-index: -1;
}
.deco-nami--facility-info-top::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
}

.p-facility-detail-info {
  background: #fffcef;
  padding: 50px 0;
}

.page-cafe .p-facility-detail-info {
  background: #007391;
}

.p-facility-detail-info__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 93px;
}

.p-facility-detail-info__guide, .p-facility-detail-info__notes {
  background: #fff;
  border: solid 2px #000;
  border-radius: 35px;
  padding: 80px 50px;
  position: relative;
  width: 100%;
}

.p-facility-detail-info__guide::before {
  content: "";
  position: absolute;
  right: 10px;
  top: -140px;
}

.page-bbq .p-facility-detail-info__guide::before {
  background: url("../img/illust-bbq.svg") no-repeat center/cover;
  width: 191.71px;
  height: 180.9px;
}

.page-heavy .p-facility-detail-info__guide::before {
  background: url("../img/illust-heavy.svg") no-repeat center/cover;
  width: 125px;
  height: 165px;
  top: -86px;
}

.page-bike .p-facility-detail-info__guide::before {
  background: url("../img/illust-bike.svg") no-repeat center/cover;
  width: 170px;
  height: 190px;
  top: -112px;
}

.page-cafe .p-facility-detail-info__guide::before {
  background: url("../img/illust-cafe.svg") no-repeat center/cover;
  width: 155px;
  height: 146px;
  top: -80px;
}

.page-dog .p-facility-detail-info__guide::before {
  background: url("../img/illust-dog.svg") no-repeat center/cover;
  width: 260px;
  height: 200px;
  top: -140px;
}

.page-experience .p-facility-detail-info__guide::before {
  background: url("../img/illust-experience.svg") no-repeat center/cover;
  width: 144px;
  height: 169px;
  top: -110px;
}

.page-playground .p-facility-detail-info__guide::before, .page-challenge .p-facility-detail-info__guide::before, .page-lawn .p-facility-detail-info__guide::before, .page-asphalt .p-facility-detail-info__guide::before {
  background: url("../img/illust-square.svg") no-repeat center/cover;
  width: 196px;
  height: 165px;
  top: -120px;
}

.p-facility-detail-info__title {
  position: absolute;
  top: -40px;
}

.p-facility-detail-info__guide-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #000;
}

.p-facility-detail-info__guide-table tr {
  position: relative;
}
.p-facility-detail-info__guide-table tr::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: url("../img/border-list.svg") repeat-x left bottom;
  background-size: auto 2px;
}

.p-facility-detail-info__guide-table th {
  width: 220px;
  padding: 18px 16px;
  text-align: left;
  font-weight: 700;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.p-facility-detail-info__guide-table td {
  padding: 18px 16px;
  line-height: 1.7;
}

.p-facility-detail-info__notes-list {
  list-style-position: outside;
  padding-left: 1.5em;
  margin: 0;
}

.p-facility-detail-info__notes-item {
  line-height: 2.2;
}

.page-bike .p-facility-detail-info__notes-list, .page-experience .p-facility-detail-info__notes-list {
  padding-left: 0;
}
.page-bike .p-facility-detail-info__notes-item, .page-experience .p-facility-detail-info__notes-item {
  list-style: none;
  position: relative;
  padding: 18px 0;
  line-height: inherit;
}
.page-bike .p-facility-detail-info__notes-item::after, .page-experience .p-facility-detail-info__notes-item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: url(../img/border-list.svg) repeat-x left bottom;
  background-size: auto 2px;
}
.page-bike .p-facility-detail-info__notes-item p, .page-bike .p-facility-detail-info__notes-item h4, .page-experience .p-facility-detail-info__notes-item p, .page-experience .p-facility-detail-info__notes-item h4 {
  margin: 0;
}
.page-bike .p-facility-detail-info__notes-item .p-facility-detail-info__notes-sublist, .page-experience .p-facility-detail-info__notes-item .p-facility-detail-info__notes-sublist {
  list-style: disc;
  padding-left: 24px;
}

.p-facility-detail-info__reserve-btn {
  margin-top: -20px;
}

@media (max-width: 1024px) {
  .c-title--lv2-challenge h2 {
    font-size: 48px;
    line-height: 1;
  }
  .p-facility-detail-heading__reserve-btn {
    top: unset;
    bottom: -20px;
    right: 0;
  }
  .p-facility-detail-attributes {
    padding-bottom: 120px;
  }
  .p-facility-detail-attributes::before {
    display: none;
  }
  .p-facility-detail-attributes__inner {
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    gap: 40px;
  }
  .p-facility-detail-attributes__content {
    padding: 0 24px;
    width: 100%;
  }
  .p-facility-detail-attributes__content::after {
    left: 24px;
    bottom: -120px;
  }
  .p-facility-detail-attributes__image {
    position: unset;
    width: 100%;
    max-height: none;
    overflow: unset;
    -webkit-transform: none;
            transform: none;
    border-radius: 0;
    position: relative;
  }
  .p-facility-detail-attributes__image::before {
    content: "";
    position: absolute;
    left: unset;
    right: 24px;
    top: unset;
    bottom: -40px;
    width: 122px;
    height: 83px;
    background: url("../img/deco-niji.svg") no-repeat center/contain;
    z-index: 2;
  }
  .p-facility-detail-attributes-2 {
    margin-top: 50px;
  }
  .p-facility-detail-attributes-2 .p-facility-detail-attributes__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .p-facility-detail-attributes-2 .p-facility-detail-attributes__content::after {
    right: auto;
    left: auto;
  }
  .p-facility-detail-info__guide-table th {
    width: 180px;
  }
}
@media (max-width: 640px) {
  .p-facility-detail-attributes {
    margin-top: 80px;
    padding-bottom: 100px;
  }
  .p-facility-detail-heading__description {
    font-size: 16px;
    margin-top: 12px;
  }
  .p-facility-detail-heading__inner {
    width: 100%;
    padding: 24px;
  }
  .c-title--lv2-bike img {
    width: 100%;
  }
  .p-facility-detail-attributes__content {
    padding: 0 16px;
  }
  .p-facility-detail-attributes__content::after {
    bottom: -100px;
    left: 16px;
    width: 82px;
    height: 81px;
  }
  .p-facility-detail-attributes__content h3 {
    font-size: 32px;
  }
  .p-facility-detail-attributes__image::before {
    width: 102px;
    height: 69px;
    right: 16px;
  }
  .p-facility-detail-info {
    padding: 80px 0;
  }
  .p-facility-detail-info__inner {
    gap: 75px;
  }
  .p-facility-detail-info__guide, .p-facility-detail-info__notes {
    padding: 60px 16px;
  }
  .p-facility-detail-info__guide::before {
    display: none;
  }
  .p-facility-detail-info__title {
    width: 166px;
  }
  .p-facility-detail-info__guide-table {
    border-collapse: unset;
    border-top: none;
  }
  .p-facility-detail-info__guide-table tbody {
    background: url("../img/border-list.svg") repeat-x left top;
    background-size: auto 2px;
  }
  .p-facility-detail-info__guide-table tr::after {
    display: none;
  }
  .p-facility-detail-info__guide-table td {
    background-image: url("../img/border-list.svg");
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: auto 2px;
  }
  .p-facility-detail-info__guide-table th,
  .p-facility-detail-info__guide-table td {
    display: block;
    width: 100%;
  }
  .p-facility-detail-info__guide-table th {
    padding-bottom: 4px;
  }
  .p-facility-detail-info__guide-table td {
    padding-top: 4px;
    padding-bottom: 20px;
  }
}
.p-concept-attributes {
  margin-top: 40px !important;
}
.p-concept-attributes h3 {
  color: #000;
  font-size: 36px;
}

.p-concept {
  margin-top: 120px;
}

.p-concept__inner {
  position: relative;
}

.p-concept__wrapper {
  background: #fffcef;
  border-radius: 35px;
  border: solid 2px #000;
  width: 100%;
  max-width: 737px;
  margin: 0 auto;
  margin-bottom: 214px;
  padding: 70px 38px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 40px;
  position: relative;
}

.p-concept__wrapper-img img {
  position: absolute;
  border-radius: 25px;
}

.img-concept-1 {
  left: -10px;
  top: 5%;
  width: 225px;
}

.img-concept-2 {
  right: -80px;
  top: 10%;
  width: 184px;
}

.img-concept-3 {
  left: -102px;
  bottom: -15%;
  width: 225px;
}

.img-concept-4 {
  right: 5px;
  bottom: -3%;
  width: 191px;
}

.p-concept__lead {
  text-align: center;
  line-height: 2;
  text-align: center;
  line-height: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-concept__illust {
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
}
.p-concept__illust img {
  position: absolute;
}

.illust-concept {
  width: 259px;
  bottom: -210px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.illust-concept-left, .illust-concept-right {
  bottom: -210px;
}

.illust-concept-left {
  left: 100px;
}

.illust-concept-right {
  right: 100px;
}

.deco-nami-top {
  margin-bottom: -12px;
  margin-top: 320px;
}

.deco-nami-bottom {
  margin-top: -18px;
}

.p-concept-feature {
  background: #fffcef;
}
.p-concept-feature .illust-umbrella {
  position: absolute;
  left: -40px;
}

.p-concept-feature__inner {
  padding-bottom: 20px;
  position: relative;
}

.p-concept-feature__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-concept-feature__title {
  font-size: 40px;
  color: #FFAF22;
}

.p-concept-feature__list {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 0;
  margin-top: 60px;
}

.p-concept-feature__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-concept-feature__img {
  width: 140%;
}

.p-concept-feature__img-left {
  margin-left: -40%;
}

.p-concept-feature__img-right {
  margin-right: -40%;
}

.p-concept-feature__img-title {
  margin-top: -40px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.p-concept-feature__description {
  text-align: center;
  margin-top: 40px;
}

@media (max-width: 1024px) {
  .img-concept-1 {
    left: 10px;
    top: 45px;
    width: 165px;
  }
  .img-concept-2 {
    right: -20px;
  }
  .img-concept-3 {
    left: -24px;
  }
  .p-concept-feature .illust-umbrella {
    left: 10px;
  }
  .p-concept-feature__list {
    grid-template-columns: 1fr;
    gap: 60px;
  }
  .p-concept-feature__img {
    width: 108%;
  }
  .p-concept-feature__img-left {
    margin-left: 0;
  }
  .p-concept-feature__img-right {
    margin-right: 0;
  }
}
@media (max-width: 640px) {
  .p-concept {
    margin-top: 200px;
    margin-bottom: 200px;
  }
  .p-concept-feature .illust-umbrella {
    width: 98px;
    bottom: -100px;
  }
  .p-concept-feature__inner {
    padding-top: 40px;
    padding-bottom: 20px;
  }
  .p-concept__wrapper {
    padding: 70px 12px;
    margin-bottom: 360px;
  }
  .p-concept__copy {
    width: 240px;
  }
  .p-concept__illust {
    bottom: -90px;
    width: 223px;
  }
  .img-concept-1 {
    top: -25%;
    width: 225px;
  }
  .img-concept-4 {
    bottom: -12%;
  }
  .illust-concept-left, .illust-concept-right {
    bottom: -270px;
  }
  .illust-concept-left {
    left: -60px;
  }
  .illust-concept-right {
    right: -60px;
  }
  .deco-nami-top {
    margin-top: 420px;
  }
  .p-concept-feature__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 20px;
  }
  .p-concept-feature__illust {
    width: 173px;
  }
  .p-concept-feature__title {
    font-size: 24px;
  }
  .p-concept-feature__lead {
    width: 100%;
  }
  .p-concept-feature__img {
    width: 112%;
  }
}
.p-faq-content__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 48px;
}

.p-faq-info__description {
  margin-top: 48px;
}

.p-faq-content__item {
  border: solid 2px #000;
  border-radius: 10px;
}
.p-faq-content__item p {
  margin: 0;
}

.p-faq-content__question {
  background: #000;
}

.p-faq-content__answer {
  min-height: 90px;
}

.p-faq-content__question, .p-faq-content__answer {
  padding: 16px 24px;
}

.p-faq-content__question-text {
  position: relative;
  padding-left: 110px;
  color: #fff;
}
.p-faq-content__question-text::before {
  content: "";
  position: absolute;
  left: 0;
  top: -24px;
  width: 89.39px;
  height: 58.7px;
  background: url("../img/icon-q.svg") no-repeat center/contain;
}

.p-faq-content__answer-text {
  position: relative;
  padding-left: 110px;
}
.p-faq-content__answer-text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 89.39px;
  height: 58.7px;
  background: url("../img/icon-a.svg") no-repeat center/contain;
}

@media (max-width: 640px) {
  .p-faq-content {
    margin-top: 70px;
  }
  .p-faq-info__description {
    margin-top: 24px;
  }
  .p-faq-content__question, .p-faq-content__answer {
    padding: 16px;
  }
  .p-faq-content__question {
    padding-bottom: 34px;
  }
  .p-faq-content__question-text, .p-faq-content__answer-text {
    padding-left: 0;
  }
  .p-faq-content__question-text::before, .p-faq-content__answer-text::before {
    top: -44px;
    width: 62px;
    height: 41px;
  }
}
.p-privacy-info .c-title--lv1__main {
  font-size: 70px;
}

.p-privacy-content__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}

.p-privacy-container__title {
  color: #178EC5;
  font-size: 24px;
  padding-bottom: 10px;
  position: relative;
}
.p-privacy-container__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: url(../img/border-list.svg) repeat-x left bottom;
  background-size: auto 2px;
}

@media (max-width: 1024px) {
  .p-privacy-info .c-page-heading::after {
    display: none;
  }
}
@media (max-width: 640px) {
  .p-privacy-info .c-title--lv1__main {
    font-size: 48px;
  }
}
.p-contact__form {
  max-width: 900px;
  margin: 0 auto;
}
.p-contact__form .form-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 200px; /* ← gridの左列と同じ幅 */
}
@media (max-width: 640px) {
  .p-contact__form .form-label {
    -webkit-box-pack: unset;
        -ms-flex-pack: unset;
            justify-content: unset;
  }
}
.p-contact__form p {
  margin: 30px 0;
}
.p-contact__form p label:has(.form-label) {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 64px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 1024px) {
  .p-contact__form p label:has(.form-label) {
    gap: 24px;
  }
}
@media (max-width: 640px) {
  .p-contact__form p label:has(.form-label) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 10px;
  }
}
.p-contact__form p label:has(.wpcf7-textarea) {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (max-width: 640px) {
  .p-contact__form p label:has(.wpcf7-textarea) {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}
.p-contact__form p label br {
  display: none;
}
.p-contact__form p label > .wpcf7-form-control-wrap {
  grid-column: 2;
}
.p-contact__form p .wpcf7-not-valid-tip {
  position: absolute;
  font-size: 14px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
}
.p-contact__form input[type=text],
.p-contact__form input[type=email],
.p-contact__form input[type=tel],
.p-contact__form select,
.p-contact__form textarea {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 8px 16px;
  border: solid 1px #000;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.p-contact__form select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: url("../img/icon-select-arrow.svg") no-repeat right 16px center;
  background-size: 12px;
  padding-right: 40px;
}
.p-contact__form input:focus,
.p-contact__form textarea:focus,
.p-contact__form select:focus {
  outline: none;
  border-color: #178EC5;
  -webkit-box-shadow: 0 0 0 3px rgba(23, 142, 197, 0.15);
          box-shadow: 0 0 0 3px rgba(23, 142, 197, 0.15);
}
.p-contact__form input::-webkit-input-placeholder, .p-contact__form textarea::-webkit-input-placeholder {
  color: #C2C2C2;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.p-contact__form input::-moz-placeholder, .p-contact__form textarea::-moz-placeholder {
  color: #C2C2C2;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.p-contact__form input:-ms-input-placeholder, .p-contact__form textarea:-ms-input-placeholder {
  color: #C2C2C2;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.p-contact__form input::-ms-input-placeholder, .p-contact__form textarea::-ms-input-placeholder {
  color: #C2C2C2;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.p-contact__form input::placeholder, .p-contact__form textarea::placeholder {
  color: #C2C2C2;
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.p-contact__form select {
  font-size: 14px;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #000;
}
.p-contact__form select:invalid {
  color: #B5B5B5;
}
.p-contact__form .required {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 57px;
  height: 23px;
  border-radius: 14.5px;
  background-color: #178EC5;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  margin-left: 12px;
}
.p-contact__form .wpcf7 form > p:has(.wpcf7-acceptance) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-contact__form .wpcf7 form > p:has(.wpcf7-acceptance) .wpcf7-list-item {
  margin: 0;
}
.p-contact__form .wpcf7 form > p:has(.wpcf7-acceptance) label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
}
.p-contact__form .wpcf7 form > p:last-of-type {
  margin-top: 55px;
}
.p-contact__form .wpcf7-acceptance a {
  text-decoration: underline;
  text-underline-offset: 4px;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.p-contact__form .wpcf7-acceptance a:hover {
  opacity: 0.6;
}
.p-contact__form .wpcf7-acceptance input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 21px;
  height: 21px;
  border: 1px solid #000;
  border-radius: 0;
  background: #fff;
  cursor: pointer;
  display: inline-block;
  position: relative;
}
.p-contact__form .wpcf7-acceptance input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 12px;
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.page-contact .wpcf7-submit {
  width: 167.73px;
  height: 45.17px;
  background: url("../img/btn-confirm.svg") center/contain no-repeat;
  border: none;
  color: transparent;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  display: block;
  margin: 0 auto;
}
.page-contact .wpcf7-submit:hover {
  opacity: 0.7;
}

.page-contact-confirm .wpcf7-previous {
  width: 167.73px;
  height: 45.17px;
  background: url("../img/btn-back.svg") center/contain no-repeat;
  border: none;
  color: transparent;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.page-contact-confirm .wpcf7-previous:hover {
  opacity: 0.7;
}
.page-contact-confirm .wpcf7-submit {
  width: 167.73px;
  height: 45.17px;
  background: url("../img/btn-send.svg") center/contain no-repeat;
  border: none;
  color: transparent;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.page-contact-confirm .wpcf7-submit:hover {
  opacity: 0.7;
}
.page-contact-confirm .wpcf7 form > p:last-of-type {
  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;
  gap: 20px;
  margin-top: 55px;
  position: relative;
}
@media (max-width: 640px) {
  .page-contact-confirm .wpcf7 form > p:last-of-type {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.page-contact-confirm .wpcf7 form > p:last-of-type br {
  display: none;
}
.page-contact-confirm .wpcf7-spinner {
  position: absolute;
  right: -30px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.p-contact__form-text {
  margin-bottom: 76px !important;
}
@media (max-width: 640px) {
  .p-contact__form-text {
    margin-bottom: 48px !important;
  }
}

.wpcf7-submit:hover {
  opacity: 0.7;
}

.p-thanks__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
}
.p-thanks__inner p {
  text-align: center;
  margin: 0;
}

.p-contact-thanks__success {
  font-size: 24px;
}

.p-single__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-single {
  width: 100%;
}

.p-single__meta {
  padding: 16px 32px;
  margin-bottom: 40px;
  position: relative;
}
.p-single__meta ::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: url("../img/border-list.svg") repeat-x left bottom;
  background-size: auto 2px;
}

.p-single__category {
  color: #fff;
  background: #178EC5;
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 4px;
  margin-right: 20px;
}

.p-single__title {
  margin-top: 10px;
}

.p-single__thumbnail {
  margin-bottom: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-single__thumbnail img {
  width: auto;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-single__content {
  margin-bottom: 60px;
}

.p-archive--content {
  position: relative;
}
.p-archive--content .l-grid {
  display: grid;
}
.p-archive--content .l-grid--cards {
  grid-template-columns: repeat(auto-fit, 248px);
  gap: 40px 12px;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  padding: 0;
}
@media screen and (max-width: 1024px) {
  .p-archive--content .l-grid--cards {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 40px 30px;
  }
}
@media screen and (max-width: 640px) {
  .p-archive--content .l-grid--cards {
    gap: 20px;
  }
}

.p-archive__list {
  gap: 29px;
}

.p-archive-card__thumbnail {
  aspect-ratio: 248/215;
  overflow: hidden;
}
.p-archive-card__thumbnail img {
  border-radius: 50% 50% 0 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-archive-card__body {
  border-radius: 0 0 10px 10px;
  color: #fff;
  padding: 10px 12px;
}

.p-archive-card__body-primary {
  background: #178EC5;
}

.p-archive-card__body-accent {
  background: #FFAF22;
}

.p-archive-card__category {
  background: #fff;
  font-size: 12px;
  padding: 0px 6px;
  border-radius: 4px;
  margin-right: 5px;
}

.p-archive-card__category-primary {
  color: #178EC5;
}

.p-archive-card__category-accent {
  color: #FFAF22;
}

.p-archive-card__title {
  font-size: 16px;
}

.p-pagination {
  margin-top: 76px;
}

.p-pagination__list {
  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;
  gap: 10px;
  padding-left: unset;
}

.p-pagination__item {
  list-style: none;
}

.p-pagination__link--number {
  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;
  width: 34px;
  height: 34px;
  border: 1px solid #000;
  border-radius: 50%;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
  background: #fff;
  color: #000;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.p-pagination__link--number:hover {
  background: #178EC5;
  color: #fff;
}

.p-pagination__link--arrow:hover {
  opacity: 0.7;
}

.p-pagination__link--number.is-current {
  background: #178EC5;
  color: #fff;
  pointer-events: none;
}

.p-pagination__link.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}

.p-archive__empty {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-archive__empty p {
  margin-bottom: 0;
}
.p-archive__empty .img-deco {
  position: absolute;
}
.p-archive__empty .deco-star-orange {
  top: -20px;
  right: -60px;
}
.p-archive__empty .deco-cloud-3 {
  bottom: -60px;
  left: -40px;
}

@media (max-width: 1024px) {
  .p-single__meta {
    padding: 16px 0;
  }
  .img-deco {
    display: none;
  }
}



/*. map用 */
:root{
      --bg:#f5f7f3;
      --ink:#1f2a1f;
      --muted:rgba(31,42,31,.65);
      --stroke:rgba(31,42,31,.12);
      --r:22px;
      --dur:520ms;
      --ease:cubic-bezier(.22, 1, .36, 1);
    }

    *{ box-sizing:border-box; }

    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, "Noto Sans JP", "Hiragino Sans", sans-serif;
      /* color:var(--ink); */
      /* background:var(--bg); */
      /* min-height:100svh; */
      /* padding:18px; */
      display:grid;
      place-items:center;
    }

    .wrap{
      width:min(1100px, 100%);
      display:grid;
      gap:14px;
    }

    header h1{
      margin:0;
      font-size:clamp(18px,2.4vw,26px);
    }

    header p{
      margin:6px 0 0;
      color:var(--muted);
      font-size:14px;
      line-height:1.6;
    }

    .grid{
      position: relative;
      display: block;
    }

    /* .grid{
      display:grid;
      grid-template-columns: 1.15fr .85fr;
      gap:14px;
      align-items:start;
    }

    @media (max-width: 900px){
      .grid{ grid-template-columns:1fr; }
    } */

    /* ===== マップ ===== */

    .map{
      position:relative;
      width:100%;
      /* border-radius: calc(var(--r) + 8px);
      border:1px solid rgba(31,42,31,.10);
      background:#fff; */
      overflow:hidden;
    }
    /* .map{
      position:relative;
      border-radius: calc(var(--r) + 8px);
      border:1px solid rgba(31,42,31,.10);
      background:#fff;
      overflow:hidden;
    } */

    .map-viewport{
      position:relative;
      overflow:hidden;
      touch-action:auto;
    }

    .map-inner{
      position:relative;
      aspect-ratio: 983 / 694;
      width:100%;
      transform-origin: 0 0;
    }

    /* .map svg{
      width:100%;
      height:100%;
      display:block;
      pointer-events:none;
    } */

    .map-image{
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      pointer-events: none;
      user-select: none;
      -webkit-user-drag: none;
    }

    /* .spot{
      position:absolute;
      width:44px;
      height:44px;
      border-radius:999px;
      border:1px solid rgba(31,42,31,.20);
      background: rgba(255,255,255,.92);
      display:grid;
      place-items:center;
      cursor:pointer;
      transition: transform 160ms ease, border-color 160ms ease;
      -webkit-tap-highlight-color: transparent;
      z-index:5;
    }

    .spot:hover{ transform: translateY(-1px); }
    .spot:active{ transform: translateY(0) scale(.98); } */

    .spot {
      position: absolute;
      z-index: 5;
      cursor: pointer;
      background: none;
      border: 0;
      padding: 0;
      appearance: none;
      -webkit-appearance: none;
      -webkit-tap-highlight-color: transparent;
      transform: translate(-50%, -50%);
      transition: transform 160ms ease;
    }

    .spot:hover {
      transform: translate(-50%, -50%) translateY(-1px);
    }

    .spot:active {
      transform: translate(-50%, -50%) scale(.98);
    }

    /* .spot .pin{
      width:10px;
      height:10px;
      border-radius:50%;
      background: rgba(60,140,80,.95);
    } */

    .pin {
      display: block;
      width: 100px;
      height: 100px;
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
    }

    .spot.is-active .pin {
      filter: drop-shadow(0 0 6px rgba(60, 140, 80, 0.28));
    }


    /* ===== ピン画像 ===== */
    .spot[data-id="asphalt"] .pin {
      background-image: url("../img/btn-top-map--asphalt.svg");
    }

    .spot[data-id="bbq"] .pin {
      background-image: url("../img/btn-top-map--bbq.svg");
    }

    .spot[data-id="bike"] .pin {
      background-image: url("../img/btn-top-map--bike.svg");
    }

    .spot[data-id="cafe"] .pin {
      background-image: url("../img/btn-top-map--cafe.svg");
    }

    .spot[data-id="challenge"] .pin {
      background-image: url("../img/btn-top-map--challenge.svg");
    }

    .spot[data-id="dog"] .pin {
      background-image: url("../img/btn-top-map--dog.svg");
    }

    .spot[data-id="experience"] .pin {
      background-image: url("../img/btn-top-map--experience.svg");
    }

    .spot[data-id="heavy"] .pin {
      background-image: url("../img/btn-top-map--heavy.svg");
    }

    .spot[data-id="lawn"] .pin {
      background-image: url("../img/btn-top-map--lawn.svg");
    }

    .spot[data-id="playground"] .pin {
      background-image: url("../img/btn-top-map--playground.svg");
    }

    /* .spot.is-active{
      border-color: rgba(60,140,80,.45);
    } */
    

    /* ===== ピン位置（仮） ===== */
    .spot[data-id="asphalt"] {
      left: 16%;
      top: 30%;
    }

    .spot[data-id="bbq"] {
      left: 28%;
      top: 62%;
    }

    .spot[data-id="bike"] {
      left: 42%;
      top: 22%;
    }

    .spot[data-id="cafe"] {
      left: 72%;
      top: 30%;
    }

    .spot[data-id="challenge"] {
      left: 58%;
      top: 46%;
    }

    .spot[data-id="dog"] {
      left: 82%;
      top: 62%;
    }

    .spot[data-id="experience"] {
      left: 22%;
      top: 78%;
    }

    .spot[data-id="heavy"] {
      left: 48%;
      top: 70%;
    }

    .spot[data-id="lawn"] {
      left: 68%;
      top: 74%;
    }

    .spot[data-id="playground"] {
      left: 84%;
      top: 44%;
    }

    .spot-label{
      position:absolute;
      top:50px;
      left:50%;
      transform:translateX(-50%);
      font-size:12px;
      color:var(--ink);
      background: rgba(255,255,255,.95);
      border:1px solid rgba(31,42,31,.12);
      border-radius:999px;
      padding:6px 10px;
      white-space:nowrap;
      opacity:0;
      pointer-events:none;
      transition: opacity 160ms ease;
    }

    .spot:hover .spot-label{ opacity:1; }

    .spot[data-id="flower"]{ left: 16%; top: 30%; }
    .spot[data-id="playground"]{ left: 52%; top: 52%; }
    .spot[data-id="cafe"]{ left: 74%; top: 28%; }
    .spot[data-id="toilet"]{ left: 82%; top: 72%; }

    .map-controls{
      position:absolute;
      right:12px;
      bottom:12px;
      z-index:15;
      display:none;
      gap:8px;
    }

    .map-controls__btn{
      appearance:none;
      border:1px solid rgba(31,42,31,.16);
      background: rgba(255,255,255,.96);
      border-radius:999px;
      padding:10px 12px;
      font-size:14px;
      line-height:1;
      cursor:pointer;
    }

    /* ===== 右：重なりカード ===== */
    .panel{
      /* border-radius: calc(var(--r) + 8px);
      border:1px solid rgba(31,42,31,.10);
      background: rgba(255,255,255,.35);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px); */
      position:absolute;
      right:20px;
      bottom:20px;
      z-index:20;
      width:min(420px, 38vw);
      padding:14px 14px 0;
      overflow:hidden;
    }

    /* .panel-head{
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:12px;
      margin-bottom: 10px;
      padding: 0 2px;
    }

    .panel-head .ttl{
      margin:0;
      font-weight:900;
      font-size: 15px;
      letter-spacing:.02em;
    }

    .panel-head .sub{
      margin:0;
      color: var(--muted);
      font-size: 12.5px;
    } */

    .panel-close{
      display:none;
      appearance:none;
      border:none;
      background:#eef2eb;
      width:44px;
      height:44px;
      border-radius:999px;
      font-size:20px;
      line-height:1;
      cursor:pointer;
      color:var(--ink);
      flex-shrink:0;
    }

    .cards{
      position:relative;
      min-height: 320px;
      display:grid;
      place-items:center;
      padding: 8px 0 10px;
      touch-action: pan-y;
      outline:none;
    }

    .card{
      width: 100%;
      border-radius: var(--r);
      border:1px solid var(--stroke);
      background:#fff;
      box-shadow: var(--shadow);
      padding: 16px 16px 14px;
      display:grid;
      gap: 10px;
      position:absolute;
      will-change: transform, opacity;
      transform-origin: 50% 60%;
    }

    /* 先頭カードの中身を少し遅れて表示 */
    .card__inner{
      display:grid;
      gap: 10px;
      opacity: 1;
      transform: translateY(0);
    }

    .card.is-reveal .card__inner{
      opacity: 0;
      transform: translateY(8px);
      animation: cardContentReveal 480ms cubic-bezier(.22, 1, .36, 1) 120ms forwards;
    }

    @keyframes cardContentReveal{
      to{
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* .card[data-layer="0"]{ transform: translateY(0px) scale(1); opacity:1; z-index:30; }
    .card[data-layer="1"]{ transform: translateY(16px) scale(.97); opacity:.92; z-index:20; }
    .card[data-layer="2"]{ transform: translateY(30px) scale(.945); opacity:.82; z-index:10; } */

    .card[data-layer="0"]{
      transform: translateY(0) rotate(0deg);
      opacity: 1;
      z-index: 30;
    }

    .card[data-layer="1"]{
      transform: translateY(0) rotate(6.67deg);
      opacity: 1;
      z-index: 20;
    }

    .card[data-layer="2"]{
      opacity: 0;
      pointer-events: none;
      z-index: 10;
    }

    .badge{
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-weight:800;
      font-size:12px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(31,42,31,.12);
      background: rgba(245,247,243,.9);
      width: fit-content;
    }

    .dot{
      width:10px;
      height:10px;
      border-radius:50%;
      background: rgba(60,140,80,.9);
    }

    .title{
      margin:0;
      font-size: 18px;
      line-height:1.2;
    }

    .desc{
      margin:0;
      color: var(--muted);
      line-height:1.7;
      font-size: 14px;
    }

    .meta{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .pill{
      font-size:12px;
      border:1px solid rgba(31,42,31,.12);
      border-radius:999px;
      padding:6px 10px;
      background: rgba(245,247,243,.9);
    }

    .is-anim .card{
      transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease);
    }

    .card.is-leaving{
      transform: translateY(-28px) scale(.985) rotate(-0.8deg);
      opacity:0;
    }

    .card.is-entering{
      transform: translateY(38px) scale(.93);
      opacity:0;
    }

    /* .hint{
      display:flex;
      justify-content:space-between;
      gap:12px;
      color: var(--muted);
      font-size:12.5px;
      padding: 0 2px 2px;
    } */

    /* @media (max-width: 520px){
      .hint{ flex-direction:column; gap:6px; }
    } */


    /* PC時は普通のカーソルに戻す */
    @media (min-width: 901px){
      .map-viewport,
      .map-inner{
        cursor: default !important;
      }
    }

    /* クリックできる要素はポインター */
    .spot{
      cursor: pointer;
    }

    /* ===== SP: ボトムシート化 ===== */
    @media (max-width: 900px){
      /* body{
        padding:18px 18px 110px;
        display:block;
      } */

      .map-inner {
        aspect-ratio: 1 / 1;
      }

      .map-controls{
        display:flex;
      }

      .panel{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        width:auto;
        z-index:100;
        padding:56px 16px 12px;
        max-height:70vh;
        overflow:auto;
        transform:translateY(100%);
        transition:transform .45s cubic-bezier(.22,1,.36,1);
      }

      .panel.is-open{
        transform:translateY(0);
      }

      .panel-close{
        display:grid;
        place-items:center;
      }

      .cards{
        min-height:260px;
      }
    }

    @media (prefers-reduced-motion: reduce){
      :root{ --dur: 1ms; }
      .card{ transition:none !important; }
      .panel{ transition:none !important; }
    }