@charset "UTF-8";
img {
  vertical-align: bottom;
}

body#fairyhouse {
  scroll-margin-top: 100px;
  margin: 0;
  padding: 0;
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  background-attachment: fixed;
  background-size: cover;
  background-position: top center;
  color: #b19552;
}
@media screen and (max-width: 980px) {
  body#fairyhouse {
    background-attachment: unset;
  }
  body#fairyhouse::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
    background-image: url(images/fairyhouse/bg-mb.jpg);
    background-size: cover;
    background-position: top center;
  }
}
@media screen and (min-width: 981px) {
  body#fairyhouse {
    background-image: url(images/fairyhouse/bg.jpg);
  }
}
body#fairyhouse * {
  box-sizing: border-box;
}
@media screen and (max-width: 980px) {
  body#fairyhouse * {
    scroll-margin-top: 20.8dvw;
  }
}
@media screen and (min-width: 981px) {
  body#fairyhouse * {
    scroll-margin-top: 5.208dvw;
  }
}
body#fairyhouse .gothic {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
body#fairyhouse a {
  color: #b19552;
}
body#fairyhouse a:has([data-text]) {
  display: inline-block;
  overflow: hidden;
  position: relative;
}
body#fairyhouse a:has([data-text]) .label {
  overflow: hidden;
}
@media screen and (min-width: 981px) {
  body#fairyhouse a:has([data-text]):hover span[data-text] {
    translate: 0 -100%;
  }
}
body#fairyhouse a:has([data-text]).page__link {
  display: inline-flex;
  align-items: center;
}
@media screen and (max-width: 980px) {
  body#fairyhouse a:has([data-text]).page__link {
    gap: 3.2dvw;
  }
}
@media screen and (min-width: 981px) {
  body#fairyhouse a:has([data-text]).page__link {
    gap: 18px;
  }
}
body#fairyhouse a:has([data-text]) span {
  display: inline-block;
  transition: translate 0.3s;
}
body#fairyhouse a:has([data-text]) span::after {
  display: inline-block;
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
}
body#fairyhouse button {
  font-family: inherit;
}
body#fairyhouse dialog {
  -webkit-appearance: unset;
     -moz-appearance: unset;
          appearance: unset;
  border: none;
  background: transparent;
  color: inherit;
  padding: 0;
}
body#fairyhouse dialog::backdrop {
  background: none;
}
body#fairyhouse dialog[open] {
  display: block;
}

#header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99;
}
@media screen and (max-width: 980px) {
  #header {
    width: 100vw;
    height: 20.8dvw;
    padding-left: 5.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #header {
    padding-left: 2.344dvw;
    padding-right: 2.083dvw;
    height: 5.208dvw;
    transition: background-color 0.3s;
  }
  #header:hover {
    background-color: #FFFBF2;
  }
}
#header .logo {
  aspect-ratio: 338/74;
  height: auto;
  position: relative;
}
@media screen and (max-width: 980px) {
  #header .logo {
    width: 50.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #header .logo {
    width: 17.604dvw;
  }
  #header .logo:hover::before {
    opacity: 0;
  }
  #header .logo:hover::after {
    opacity: 1;
  }
}
#header .logo a {
  position: absolute;
  inset: 0;
  z-index: 1;
}
#header .logo::before, #header .logo::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 981px) {
  #header .logo::before, #header .logo::after {
    transition: opacity 0.3s;
  }
}
#header .logo::before {
  background-image: url(images/fairyhouse/logo.png);
}
#header .logo::after {
  background-image: url(images/fairyhouse/logo-active.png);
  opacity: 0;
}
#header .header__toggle {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 9;
  aspect-ratio: 1/1;
  width: 20.8dvw;
  background: none;
  margin: 0;
  padding: 0;
  border: 0;
}
#header .header__toggle .bar,
#header .header__toggle .bar::before,
#header .header__toggle .bar::after {
  width: 8dvw;
  height: 1px;
  background-color: #B19552;
  position: absolute;
  margin: auto;
  transition: top 0.15s 0.15s, bottom 0.15s 0.15s, rotate 0.15s;
  z-index: 8;
}
#header .header__toggle .bar {
  inset: 0;
  height: 1px;
}
#header .header__toggle .bar::before, #header .header__toggle .bar::after {
  content: "";
  transform-origin: center;
}
#header .header__toggle .bar::before {
  top: -2.4dvw;
  left: 0;
  right: 0;
}
#header .header__toggle .bar::after {
  bottom: -2.4dvw;
  left: 0;
  right: 0;
}
#header .header__toggle.active .bar {
  height: 0;
}
#header .header__toggle.active .bar::before, #header .header__toggle.active .bar::after {
  transition: top 0.15s, bottom 0.15s, rotate 0.15s 0.15s;
}
#header .header__toggle.active .bar::before {
  top: -1px;
  rotate: 30deg;
}
#header .header__toggle.active .bar::after {
  bottom: 0;
  rotate: -30deg;
}
#header .header__toggle.active + .gnav {
  right: 0;
}
@media screen and (min-width: 981px) {
  #header .header__toggle {
    display: none;
  }
}
@media screen and (max-width: 980px) {
  #header .gnav {
    z-index: 8;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9.333dvw;
    width: 82.4dvw;
    height: 100dvh;
    padding-top: 24.8dvw;
    padding-left: 16dvw;
    padding-right: 16dvw;
    padding-bottom: 17.067dvw;
    background-color: #FFFBF2;
    position: absolute;
    top: 0;
    right: -100vw;
    margin: 0;
    transition: right 0.3s;
    overflow: auto;
  }
}
#header .gnav ul {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #header .gnav ul {
    flex-direction: column;
    align-items: normal;
  }
}
@media screen and (min-width: 981px) {
  #header .gnav ul {
    gap: 4.792dvw;
  }
}
@media screen and (max-width: 980px) {
  #header .gnav ul .gnav__logo a {
    padding-bottom: 6.4dvw;
  }
}
@media screen and (max-width: 980px) {
  #header .gnav ul a {
    font-weight: bold;
    font-size: 4.8dvw;
    letter-spacing: 0.02em;
    color: #1d413c;
    border-bottom: 1px solid #D8CAA9;
    width: 100%;
    display: block;
    padding-top: 4.8dvw;
    padding-bottom: 4.8dvw;
  }
}
@media screen and (min-width: 981px) {
  #header .gnav ul a {
    font-size: 18px;
  }
}
#header .gnav ul a span::after {
  color: #1D413C;
}
@media screen and (max-width: 980px) {
  #header .gnav ul .nav__reserve {
    margin-top: 10.4dvw;
  }
}
@media screen and (min-width: 981px) {
  #header .gnav ul .nav__reserve {
    height: 100px;
    width: 144px;
    padding-top: 22px;
  }
}
#header .gnav ul .nav__reserve a {
  display: block;
  position: relative;
}
@media screen and (max-width: 980px) {
  #header .gnav ul .nav__reserve a {
    border: none;
    width: 37.067dvw;
    height: 39.2dvw;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (min-width: 981px) {
  #header .gnav ul .nav__reserve a {
    filter: drop-shadow(0px 0px 0.313dvw #1D413C);
    width: 144px;
    height: 153px;
  }
  #header .gnav ul .nav__reserve a:hover {
    filter: unset;
  }
  #header .gnav ul .nav__reserve a:hover::before {
    opacity: 0;
  }
  #header .gnav ul .nav__reserve a:hover::after {
    opacity: 1;
  }
}
#header .gnav ul .nav__reserve a::before, #header .gnav ul .nav__reserve a::after {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (min-width: 981px) {
  #header .gnav ul .nav__reserve a::before, #header .gnav ul .nav__reserve a::after {
    transition: opacity 0.3s;
  }
}
#header .gnav ul .nav__reserve a::before {
  background-image: url(images/fairyhouse/header-reserve.png);
}
#header .gnav ul .nav__reserve a::after {
  background-image: url(images/fairyhouse/header-reserve-active.png);
  opacity: 0;
}
@media screen and (max-width: 980px) {
  #header .gnav ul .nav__reserve a::after {
    opacity: 1;
  }
}

#mv {
  position: relative;
}
@media screen and (max-width: 980px) {
  #mv {
    height: 177.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #mv {
    aspect-ratio: 1920/1080;
    height: auto;
  }
}
#mv::before {
  pointer-events: none;
  content: "";
  position: absolute;
  z-index: 2;
  bottom: 0;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
@media screen and (max-width: 980px) {
  #mv::before {
    background-image: url(images/fairyhouse/mv-front-mb.png);
    aspect-ratio: 375/667;
    width: 100%;
  }
}
@media screen and (min-width: 981px) {
  #mv::before {
    background-image: url(images/fairyhouse/mv-front.png);
    aspect-ratio: 1431/878;
    width: 74.479dvw;
    right: 5.417dvw;
  }
}
#mv .mv__slide {
  position: absolute;
  bottom: 0;
}
@media screen and (max-width: 980px) {
  #mv .mv__slide {
    left: 0;
    right: 0;
  }
}
@media screen and (min-width: 981px) {
  #mv .mv__slide {
    right: 3.75dvw;
    aspect-ratio: 1388/917;
    width: 72.292dvw;
    height: auto;
  }
}
#mv .mv__logo {
  position: absolute;
  z-index: 1;
}
@media screen and (max-width: 980px) {
  #mv .mv__logo {
    top: 31.467dvw;
    width: 59.2dvw;
    left: 0;
    right: 0;
    margin: auto;
  }
}
@media screen and (min-width: 981px) {
  #mv .mv__logo {
    top: 12.5dvw;
    left: 7.76dvw;
    width: 27.083dvw;
  }
}
#mv .mv__catch {
  position: absolute;
  z-index: 1;
  text-shadow: 0px 0px 2px #1d413c;
}
@media screen and (max-width: 980px) {
  #mv .mv__catch {
    top: 66.133dvw;
    left: 8.533dvw;
    right: 8.533dvw;
    font-size: 4.267dvw;
    line-height: 2;
  }
}
@media screen and (min-width: 981px) {
  #mv .mv__catch {
    top: 31.094dvw;
    left: 13.75dvw;
    width: -moz-max-content;
    width: max-content;
    font-size: 0.938dvw;
    letter-spacing: 0.1em;
    line-height: 2.33;
  }
}

#lede {
  background-image: url(images/fairyhouse/lede-bg.png);
  background-size: cover;
  background-position: bottom center;
}
@media screen and (max-width: 980px) {
  #lede {
    background: linear-gradient(#fffbf2 0%, #fffbf2 calc(100% - 97.067dvw), #fff 100%);
    padding-top: 13.067dvw;
    padding-left: 6.4dvw;
    padding-right: 6.4dvw;
    padding-bottom: 12.533dvw;
  }
}
@media screen and (min-width: 981px) {
  #lede {
    padding-top: 196px;
    padding-bottom: 342px;
  }
}
#lede .inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
#lede .lede__item {
  display: flex;
}
@media screen and (max-width: 980px) {
  #lede .lede__item {
    flex-direction: column-reverse;
    gap: 7.467dvw;
    position: relative;
  }
  #lede .lede__item::before {
    content: "";
    position: absolute;
    background-image: url(images/fairyhouse/lede-frame.png);
    background-size: contain;
    background-repeat: no-repeat;
    aspect-ratio: 127/126;
  }
}
@media screen and (max-width: 980px) and (max-width: 980px) {
  #lede .lede__item::before {
    width: 18.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #lede .lede__item {
    justify-content: space-between;
  }
}
#lede .lede__item .image {
  position: relative;
}
#lede .lede__item .image::before {
  content: "";
  position: absolute;
  background-image: url(images/fairyhouse/lede-frame.png);
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 127/126;
}
@media screen and (min-width: 981px) {
  #lede .lede__item .image::before {
    width: 127px;
  }
}
@media screen and (max-width: 980px) {
  #lede .lede__item .text {
    text-align: center;
    font-size: 4dvw;
    line-height: 2;
  }
}
@media screen and (min-width: 981px) {
  #lede .lede__item .text {
    font-size: 18px;
    letter-spacing: 0.1em;
    line-height: 42px;
    color: #b19552;
  }
}
@media screen and (max-width: 980px) {
  #lede .item1 {
    padding-top: 8dvw;
    margin-bottom: 7.2dvw;
  }
  #lede .item1::before {
    top: 0;
  }
}
@media screen and (min-width: 981px) {
  #lede .item1 {
    margin-bottom: 34px;
  }
}
@media screen and (max-width: 980px) {
  #lede .item1 .image {
    width: 54.4dvw;
    padding-left: 6.933dvw;
  }
  #lede .item1 .image::before {
    top: 0;
    left: 0;
  }
}
@media screen and (min-width: 981px) {
  #lede .item1 .image {
    padding-top: 77px;
    padding-left: 100px;
  }
  #lede .item1 .image::before {
    top: 0;
    left: 0;
  }
}
@media screen and (min-width: 981px) {
  #lede .item1 .image img {
    width: 500px;
  }
}
@media screen and (min-width: 981px) {
  #lede .item1 .text {
    text-align: right;
    padding-top: 242px;
    padding-right: 100px;
  }
}
@media screen and (max-width: 980px) {
  #lede .item2::before {
    bottom: 0;
    right: 0;
    rotate: 180deg;
  }
}
@media screen and (min-width: 981px) {
  #lede .item2 {
    flex-direction: row-reverse;
  }
}
@media screen and (max-width: 980px) {
  #lede .item2 .image {
    width: 36dvw;
    margin-right: 6.133dvw;
    margin-left: auto;
    padding-bottom: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #lede .item2 .image {
    padding-right: 100px;
    padding-bottom: 88px;
  }
  #lede .item2 .image::before {
    bottom: 0;
    right: 0;
    scale: -1 -1;
  }
}
@media screen and (min-width: 981px) {
  #lede .item2 .image img {
    width: 408px;
  }
}
@media screen and (min-width: 981px) {
  #lede .item2 .text {
    padding-top: 183px;
    padding-left: 100px;
  }
}
@media screen and (max-width: 980px) {
  #lede .item3 {
    margin-top: -20.533dvw;
  }
  #lede .item3::before {
    bottom: 0;
    left: 0;
    rotate: -90deg;
  }
}
@media screen and (min-width: 981px) {
  #lede .item3 {
    margin-top: -126px;
  }
}
@media screen and (max-width: 980px) {
  #lede .item3 .image {
    width: 54.4dvw;
    padding-left: 6.933dvw;
    padding-bottom: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #lede .item3 .image {
    padding-left: 185px;
    padding-bottom: 80px;
  }
  #lede .item3 .image::before {
    bottom: 0;
    left: 100px;
    scale: 1 -1;
  }
}
@media screen and (max-width: 980px) {
  #lede .item3 .image img {
    width: 33.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #lede .item3 .image img {
    width: 330px;
  }
}
@media screen and (min-width: 981px) {
  #lede .item3 .text {
    padding-left: 185px;
  }
}

@media screen and (min-width: 981px) {
  #facilities {
    margin-top: -196px;
  }
}
#facilities .facilities__head {
  margin: 0;
  text-align: center;
}
@media screen and (max-width: 980px) {
  #facilities .facilities__head {
    background-color: #fff;
  }
}
@media screen and (min-width: 981px) {
  #facilities .facilities__head {
    padding-bottom: 7px;
  }
}
@media screen and (max-width: 980px) {
  #facilities .facilities__head img {
    width: 84.267dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .facilities__head img {
    height: 162px;
  }
}
#facilities .facilities__body {
  position: relative;
  background-color: #fff;
}
@media screen and (max-width: 980px) {
  #facilities .facilities__body {
    padding-top: 11.2dvw;
    background-image: url(images/fairyhouse/facilities-bg-mb.png);
  }
}
@media screen and (min-width: 981px) {
  #facilities .facilities__body {
    background-image: url(images/fairyhouse/facilities-bg.png);
    background-size: 100dvw;
    padding-top: 72px;
  }
}
#facilities .facilities__body::before {
  content: "";
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
@media screen and (max-width: 980px) {
  #facilities .facilities__body::before {
    background-image: url(images/fairyhouse/facilities-border-mb.png);
    top: -1.067dvw;
    height: 2.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .facilities__body::before {
    background-image: url(images/fairyhouse/facilities-border.png);
    top: -7px;
    height: 13px;
  }
}
#facilities .facilities__body .inner {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 980px) {
  #facilities .head {
    width: 74.667dvw;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
}
@media screen and (min-width: 981px) {
  #facilities .head {
    display: flex;
    align-items: center;
    gap: 48px;
  }
}
@media screen and (max-width: 980px) {
  #facilities .facities__subhead {
    width: 50.667dvw;
    margin-bottom: 6.133dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .facities__subhead {
    width: 202px;
  }
}
#facilities .desc {
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #facilities .desc {
    font-size: 4.133dvw;
    letter-spacing: 0.03em;
    line-height: 7.467dvw;
    margin-bottom: 7.733dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .desc {
    font-size: 16px;
    letter-spacing: 0.1em;
    line-height: 26px;
  }
}
#facilities .notice {
  background: #fff;
  border: 1px solid #b19552;
  text-align: center;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #facilities .notice {
    width: 74.667dvw;
    margin-left: auto;
    margin-right: auto;
    padding-top: 3.2dvw;
    padding-bottom: 4dvw;
    font-size: 3.733dvw;
    line-height: 5.867dvw;
    text-align: center;
    margin-bottom: 10.133dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .notice {
    margin-top: 35px;
    font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 24px;
    padding: 11px;
    margin-bottom: 60px;
  }
}
#facilities .wrapper.center {
  text-align: left;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 981px) {
  #facilities .wrapper.center {
    width: -moz-max-content;
    width: max-content;
    margin-bottom: 71px;
  }
}
#facilities .list {
  display: flex;
  align-items: start;
  text-align: left;
  color: #1d413c;
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 980px) {
  #facilities .list {
    flex-direction: column;
    margin-bottom: 6.933dvw;
  }
  #facilities .list.mbyoko {
    flex-direction: row;
  }
  #facilities .list.mbyoko dd {
    padding-top: 0;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 36px;
  }
}
@media screen and (max-width: 980px) {
  #facilities .list:not(:last-of-type) {
    margin-bottom: 12dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list:not(:last-of-type) {
    margin-bottom: 45px;
  }
}
#facilities .list > dt {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #facilities .list > dt {
    gap: 0.8dvw;
    padding-left: 6.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list > dt {
    gap: 7px;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list > dt.w250 {
    width: 250px;
  }
}
#facilities .list > dt::before {
  content: "";
  display: block;
  background-image: url(images/fairyhouse/marker.png);
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 980px) {
  #facilities .list > dt::before {
    width: 5.067dvw;
    height: 6.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list > dt::before {
    width: 22px;
    height: 30px;
  }
}
@media screen and (max-width: 980px) {
  #facilities .list > dd {
    padding-top: 2.933dvw;
    margin-left: 12.8dvw;
    width: calc(100% - 12.8dvw);
  }
}
@media screen and (min-width: 981px) {
  #facilities .list > dd {
    padding-top: 3px;
  }
}
#facilities .list .child {
  display: flex;
}
@media screen and (max-width: 980px) {
  #facilities .list .child {
    gap: 4.533dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities .list .child {
    gap: 24px;
  }
}
#facilities .list .child dt, #facilities .list .child dd {
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 980px) {
  #facilities .list .child dt, #facilities .list .child dd {
    line-height: 6.933dvw;
  }
}
@media screen and (max-width: 980px) {
  #facilities .list .child + .child {
    margin-top: 1.867dvw;
  }
}
@media screen and (max-width: 980px) {
  #facilities .images.for-mb {
    width: 82.667dvw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 13.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #guide {
    margin-bottom: 83px;
  }
}
@media screen and (min-width: 981px) {
  #facilities #guide .photos .photos__item {
    margin-right: 28px;
  }
}
@media screen and (min-width: 981px) {
  #facilities #guide .photos img {
    height: 206px;
  }
}
@media screen and (max-width: 980px) {
  #facilities #price {
    padding-bottom: 17.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price {
    padding-bottom: 145px;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price .head {
    margin-bottom: 50px;
  }
}
@media screen and (max-width: 980px) {
  #facilities #price .list dt {
    font-size: 4.8dvw;
    letter-spacing: 0.05em;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price .list dt {
    width: 292px;
  }
}
#facilities #price .list dd {
  flex: 1;
}
@media screen and (max-width: 980px) {
  #facilities #price .note {
    font-size: 3.733dvw;
    line-height: 5.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price .note {
    margin-top: 13px;
    font-size: 12px;
    line-height: 22px;
  }
}
#facilities #price .modalopener {
  cursor: pointer;
  border: 0;
  position: relative;
  font-family: inherit;
  border-radius: 9999px;
  background-color: #B19552;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #facilities #price .modalopener {
    width: 74.667dvw;
    padding-top: 5.6dvw;
    padding-bottom: 6.4dvw;
    background: linear-gradient(#b19552 0%, #3c2c05 100%);
  }
}
@media screen and (min-width: 981px) {
  #facilities #price .modalopener {
    width: 564px;
    height: 97px;
  }
  #facilities #price .modalopener:hover::after {
    opacity: 1;
  }
}
#facilities #price .modalopener span {
  position: relative;
  z-index: 1;
}
#facilities #price .modalopener::before, #facilities #price .modalopener::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 981px) {
  #facilities #price .modalopener::before, #facilities #price .modalopener::after {
    transition: opacity 0.3s;
  }
}
#facilities #price .modalopener::before {
  border: 1px solid #fff;
  border-radius: 9999px;
  inset: 5px;
  z-index: 1;
}
#facilities #price .modalopener::after {
  background: linear-gradient(#b19552 0%, #3c2c05 100%);
  opacity: 0;
}
@media screen and (max-width: 980px) {
  #facilities #price .modalopener.fuji {
    margin-top: 8.8dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price .modalopener.fuji {
    margin-top: 122px;
  }
}
#facilities #price dialog.fuji {
  outline: none;
  box-shadow: 0px 0px 10px rgba(177, 149, 82, 0.5);
  border-radius: 20px;
}
#facilities #price dialog.fuji .modal__inner {
  position: relative;
  border: none;
  background-color: #fff;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .modal__inner {
    max-width: 86vw;
    padding-top: 13.867dvw;
    padding-left: 5.067dvw;
    padding-right: 5.067dvw;
    padding-bottom: 8.267dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modal__inner {
    width: 1000px;
    inset: 0;
    padding-top: 77px;
    padding-bottom: 71px;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modal__content {
    width: 553px;
    margin-left: auto;
    margin-right: auto;
  }
}
#facilities #price dialog.fuji .modalcloser {
  position: absolute;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .modalcloser {
    top: 4.8dvw;
    right: 4.8dvw;
    gap: 2.667dvw;
    font-size: 12px;
    line-height: 1;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modalcloser {
    top: 24px;
    right: 27px;
    gap: 10px;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
  }
}
#facilities #price dialog.fuji .modalcloser .icon {
  aspect-ratio: 1/1;
  height: auto;
  background-image: url(images/fairyhouse/close.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .modalcloser .icon {
    width: 3.733dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modalcloser .icon {
    width: 12px;
  }
}
#facilities #price dialog.fuji .modal__title {
  margin: 0;
  text-align: center;
  color: #1d413c;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .modal__title {
    gap: 2.667dvw;
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    line-height: 5.867dvw;
    margin-bottom: 3.2dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modal__title {
    gap: 13px;
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 36px;
    margin-bottom: 25px;
  }
}
#facilities #price dialog.fuji .modal__title::before, #facilities #price dialog.fuji .modal__title::after {
  content: "";
  display: block;
  background-image: url(images/fairyhouse/marker.png);
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .modal__title::before, #facilities #price dialog.fuji .modal__title::after {
    width: 5.867dvw;
    height: 8dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .modal__title::before, #facilities #price dialog.fuji .modal__title::after {
    width: 22px;
    height: 30px;
  }
}
#facilities #price dialog.fuji .separetor {
  background-image: url(images/fairyhouse/dot.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .separetor {
    height: 8.267dvw;
    margin-bottom: 3.2dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .separetor {
    height: 57px;
    margin-bottom: 42px;
  }
}
#facilities #price dialog.fuji .tablecaption {
  text-align: center;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .tablecaption {
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    margin-bottom: 2.133dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .tablecaption {
    margin-bottom: 9px;
    font-size: 16px;
    letter-spacing: 0.05em;
  }
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .table__wrapper {
    margin-bottom: 2.133dvw;
    padding: 1.6dvw;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .table__wrapper {
    margin-bottom: 12px;
  }
}
#facilities #price dialog.fuji .table__wrapper .table {
  table-layout: fixed;
}
@media screen and (max-width: 980px) {
  #facilities #price dialog.fuji .note {
    font-size: 3.733dvw;
    line-height: 5.333dvw;
    text-align: left;
    color: #1d413c;
  }
}
@media screen and (min-width: 981px) {
  #facilities #price dialog.fuji .note {
    font-size: 12px;
    line-height: 22px;
    text-align: left;
    color: #1d413c;
  }
}

.toreserve {
  text-align: center;
}
@media screen and (max-width: 980px) {
  .toreserve {
    padding-top: 7.733dvw;
    padding-bottom: 7.733dvw;
  }
}
@media screen and (min-width: 981px) {
  .toreserve {
    padding-top: 87px;
    padding-bottom: 87px;
  }
}
.toreserve a {
  display: inline-block;
  position: relative;
}
@media screen and (min-width: 981px) {
  .toreserve a::before {
    transition: opacity 0.3s;
  }
  .toreserve a:hover::after {
    opacity: 1;
  }
}
.toreserve a::before, .toreserve a::after {
  position: absolute;
  inset: 0;
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
@media screen and (min-width: 981px) {
  .toreserve a::before, .toreserve a::after {
    transition: opacity 0.3s;
  }
}
.toreserve a::before {
  background-image: url(images/fairyhouse/btn-reserve.png);
}
.toreserve a::after {
  background-image: url(images/fairyhouse/btn-reserve-active.png);
  opacity: 0;
  filter: drop-shadow(0px 0px 12px #ebd9ae);
}
@media screen and (max-width: 980px) {
  .toreserve a::after {
    opacity: 1;
  }
}
@media screen and (max-width: 980px) {
  .toreserve img {
    width: 49.867dvw;
  }
}
@media screen and (min-width: 981px) {
  .toreserve img {
    width: 291px;
  }
}

@media screen and (min-width: 981px) {
  .photos {
    padding-bottom: 36px;
  }
}
.photos .photos__item {
  width: auto;
}
.photos .swiper-scrollbar {
  display: block !important;
  height: 2px;
  background: #E6CF98;
}
.photos .swiper-scrollbar-horizontal {
  width: 100%;
  left: 0;
}
.photos .swiper-scrollbar-drag {
  background: #6A5114;
  border-radius: 2px;
}

@media screen and (max-width: 980px) {
  .table__container {
    padding-left: 8.8dvw;
    margin-left: -12.8dvw;
    width: 100vw;
    margin-bottom: 2.133dvw;
    width: 100vw;
    overflow: auto;
  }
  .table__container .table__wrapper {
    display: inline-block; /* または inline-flex */
  }
}

.table__wrapper {
  background: #e6d4a8;
  border-radius: 6px;
}
@media screen and (max-width: 980px) {
  .table__wrapper {
    padding: 3.733dvw;
  }
}
@media screen and (min-width: 981px) {
  .table__wrapper {
    padding: 10px 20px;
  }
}

table.table {
  border-collapse: collapse;
}
table.table.full {
  width: 100%;
}
table.table th, table.table td {
  position: relative;
  text-align: center;
}
@media screen and (max-width: 980px) {
  table.table th, table.table td {
    padding: 1.867dvw;
    font-size: 3.733dvw;
    white-space: nowrap;
  }
}
@media screen and (min-width: 981px) {
  table.table th, table.table td {
    padding: 10px 30px;
    font-size: 16px;
  }
}
table.table th::before, table.table th::after, table.table td::before, table.table td::after {
  content: "";
  background-color: #fff;
  position: absolute;
}
table.table th::before, table.table td::before {
  width: 1px;
}
@media screen and (max-width: 980px) {
  table.table th::before, table.table td::before {
    top: 1.333dvw;
    bottom: 1.333dvw;
    right: 0;
  }
}
@media screen and (min-width: 981px) {
  table.table th::before, table.table td::before {
    top: 5px;
    bottom: 5px;
    right: 0;
  }
}
table.table th::after, table.table td::after {
  height: 1px;
}
@media screen and (max-width: 980px) {
  table.table th::after, table.table td::after {
    left: 1.333dvw;
    right: 1.333dvw;
    bottom: 0;
  }
}
@media screen and (min-width: 981px) {
  table.table th::after, table.table td::after {
    left: 5px;
    right: 5px;
    bottom: 0;
  }
}
@media screen and (max-width: 980px) {
  table.table th.em, table.table td.em {
    font-size: 4.8dvw;
  }
}
table.table tr td:last-child::before {
  display: none;
}
table.table tr:last-child th::after, table.table tr:last-child td::after {
  display: none;
}

@media screen and (max-width: 980px) {
  #dining {
    background-image: url(images/fairyhouse/dining-bg-mb.jpg);
    background-size: 100% auto;
  }
}
@media screen and (min-width: 981px) {
  #dining {
    background-image: url(images/fairyhouse/dining-bg.jpg);
    background-size: 100% auto;
  }
}
#dining .inner {
  margin-left: auto;
  margin-right: auto;
  background-color: #fff;
}
@media screen and (max-width: 980px) {
  #dining .inner {
    max-width: 82.667dvw;
    padding-top: 10.933dvw;
    padding-bottom: 10.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .inner {
    max-width: 1300px;
    padding-top: 137px;
    padding-left: 150px;
    padding-right: 150px;
  }
}
@media screen and (min-width: 981px) {
  #dining .dining__head {
    margin-bottom: 109px;
  }
}
@media screen and (max-width: 980px) {
  #dining .dining__head img {
    width: 50.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .dining__head img {
    width: 259px;
  }
}
@media screen and (max-width: 980px) {
  #dining .flex {
    flex-direction: column-reverse;
    gap: 8dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .flex {
    gap: 46px;
  }
}
@media screen and (max-width: 980px) {
  #dining .flex .img {
    padding-left: 4dvw;
    padding-right: 4dvw;
    margin-bottom: 8px;
  }
}
@media screen and (min-width: 981px) {
  #dining .flex .img {
    width: 447px;
  }
}
#dining .flex .text {
  flex: 1;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #dining .flex .text {
    padding-left: 6.933dvw;
    font-size: 4.267dvw;
    line-height: 7.467dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .flex .text {
    font-size: 18px;
    letter-spacing: 0.1em;
    line-height: 2.1;
    padding-top: 33px;
  }
}
@media screen and (max-width: 980px) {
  #dining .flex .text .head {
    width: 53.867dvw;
    margin-bottom: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .flex .text .head {
    width: 202px;
    margin-bottom: 34px;
  }
}
#dining .flex .text small {
  display: block;
}
@media screen and (max-width: 980px) {
  #dining .flex .text small {
    margin-top: 5.867dvw;
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    line-height: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .flex .text small {
    margin-top: 30px;
    font-size: 16px;
  }
}
@media screen and (max-width: 980px) {
  #dining .images {
    padding-left: 4dvw;
    padding-right: 4dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .photos {
    margin-top: 60px;
  }
}
@media screen and (min-width: 981px) {
  #dining .photos img {
    height: 213px;
  }
}
@media screen and (min-width: 981px) {
  #dining .serestia {
    padding-bottom: 148px;
  }
}
@media screen and (max-width: 980px) {
  #dining .lily {
    margin-top: 17.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #dining .lily {
    padding-bottom: 112px;
  }
}
@media screen and (min-width: 981px) {
  #dining .lily .flex {
    flex-direction: row-reverse;
  }
}

@media screen and (max-width: 980px) {
  #access {
    background: linear-gradient(#b19552 0%, #fffdf7 12.32%, #fffdf7 89.66%, #b19552 100%);
    padding-top: 9.6dvw;
    padding-bottom: 29.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #access {
    background: linear-gradient(#b19552 0%, #fffdf7 270px, #fffdf7 calc(100% - 210px), #b19552 100%);
    padding-top: 140px;
    padding-bottom: 217px;
  }
}
#access .inner {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 980px) {
  #access .inner {
    width: 82.667dvw;
  }
}
#access .access__head {
  text-align: center;
  margin: 0;
}
@media screen and (max-width: 980px) {
  #access .access__head {
    margin-bottom: 13.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__head {
    margin-bottom: 60px;
  }
}
@media screen and (min-width: 981px) {
  #access .access__head img {
    width: 387px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__lede {
    flex-direction: column-reverse;
  }
}
@media screen and (min-width: 981px) {
  #access .access__lede {
    gap: 59px;
    align-items: center;
    margin-bottom: 50px;
  }
}
#access .access__lede .image {
  flex-shrink: 0;
}
@media screen and (min-width: 981px) {
  #access .access__lede .image {
    width: 464px;
  }
}
#access .access__lede .text {
  color: #1D413C;
}
@media screen and (max-width: 980px) {
  #access .access__lede .text {
    padding-left: 4dvw;
    padding-right: 4dvw;
  }
}
@media screen and (max-width: 980px) {
  #access .access__lede .text .logo {
    width: 65.333dvw;
    margin-bottom: 1.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__lede .text .logo {
    width: 245px;
    margin-bottom: 9px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__lede .text .label {
    font-size: 3.733dvw;
    letter-spacing: 0.05em;
    margin-bottom: 5.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__lede .text .label {
    font-size: 14px;
    letter-spacing: 0.05em;
    margin-bottom: 49px;
  }
}
#access .access__lede .text .address {
  font-style: normal;
}
@media screen and (max-width: 980px) {
  #access .access__lede .text .address {
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    line-height: 7.467dvw;
    margin-bottom: 6.133dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__lede .text .address {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 34px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__map {
    margin-top: 6.133dvw;
    margin-bottom: 9.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__map {
    margin-bottom: 44px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__map iframe {
    width: 100%;
    height: 40dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__map iframe {
    width: 100%;
    height: 210px;
  }
}
#access .access__way {
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 980px) {
  #access .access__way {
    gap: 13.333dvw;
    padding-left: 4dvw;
    padding-right: 4dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__way {
    gap: 29px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__way .way__item {
    display: flex;
    flex-direction: column;
  }
}
@media screen and (min-width: 981px) {
  #access .access__way .way__item {
    align-items: center;
    gap: 40px;
  }
}
@media screen and (max-width: 980px) {
  #access .access__way .head {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 30.4dvw;
    margin-bottom: 4.533dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__way .head {
    width: 129px;
  }
}
#access .access__way .label {
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #access .access__way .label {
    font-size: 4.267dvw;
    line-height: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #access .access__way .label {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 34px;
  }
}

#forms {
  /*
      input[name=submitConfirm],
      input[name=submitBack],
      input[name=submitConfirm] {
          display: none;
      }
  */
}
@media screen and (max-width: 980px) {
  #forms {
    padding-top: 14.133dvw;
    padding-bottom: 14.133dvw;
    padding-left: 5.6dvw;
    padding-right: 5.6dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms {
    padding-top: 173px;
    padding-bottom: 130px;
  }
}
#forms .forms__inner {
  max-width: 1300px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
}
@media screen and (max-width: 980px) {
  #forms .forms__inner {
    border-radius: 3.467dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .forms__inner {
    border-radius: 15px;
    box-shadow: 0px 0px 10px #b19552;
    padding-top: 138px;
  }
}
#forms .forms__subinner {
  max-width: 1068px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 980px) {
  #forms .forms__subinner {
    padding-top: 9.867dvw;
    width: 74.667dvw;
  }
}
#forms .form__head {
  text-align: center;
  margin: 0;
}
@media screen and (max-width: 980px) {
  #forms .form__head {
    margin-bottom: 5.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__head {
    margin-bottom: 37px;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__head img {
    width: 596px;
  }
}
#forms .form__lede {
  text-align: center;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .form__lede {
    font-size: 4.187dvw;
    letter-spacing: 0.05em;
    line-height: 6.933dvw;
    margin-bottom: 11.467dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__lede {
    font-size: 18px;
    letter-spacing: 0.1em;
    line-height: 38px;
    margin-bottom: 102px;
  }
}
#forms .form__changers {
  display: flex;
  justify-content: center;
  border-bottom: 1px solid #1D413C;
}
@media screen and (max-width: 980px) {
  #forms .form__changers {
    padding-bottom: 5.867dvw;
    margin-bottom: 4.8dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__changers {
    padding-bottom: 30px;
    padding-left: 34px;
    padding-right: 34px;
    margin-bottom: 42px;
  }
}
#forms .form__changers:has(.form__changer.contact.active) {
  border-color: #b19552;
}
#forms .form__changer {
  border: 0;
  width: 50%;
  background-color: #BCD8D4;
  border: 1px solid #1D413C;
  border-radius: 5px;
  cursor: pointer;
  position: relative;
}
@media screen and (max-width: 980px) {
  #forms .form__changer {
    padding-top: 0.8dvw;
    padding-bottom: 1.067dvw;
  }
}
#forms .form__changer.contact {
  background-color: #DEC996;
  border: 1px solid #b19552;
}
#forms .form__changer.active {
  background-color: #1D413C;
}
#forms .form__changer.active::after {
  content: "";
  position: absolute;
  width: 100%;
  background-image: url(images/fairyhouse/tri.png);
  background-repeat: no-repeat;
  background-position: center bottom;
}
@media screen and (max-width: 980px) {
  #forms .form__changer.active::after {
    height: 2.667dvw;
    bottom: -6.4dvw;
    left: 0;
    background-size: auto 2.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__changer.active::after {
    height: 44px;
    bottom: -32px;
    left: 0;
    background-size: auto 14px;
  }
}
#forms .form__changer.active .label::after {
  rotate: 0deg;
}
#forms .form__changer.active.contact {
  background-color: #B19552;
}
#forms .form__changer.active.contact::after {
  border-color: #B19552;
  background-image: url(images/fairyhouse/tri2.png);
}
#forms .form__changer .label {
  text-align: center;
  color: #fff;
}
@media screen and (max-width: 980px) {
  #forms .form__changer .label {
    font-size: 3.733dvw;
    letter-spacing: 0.05em;
    line-height: 6.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__changer .label {
    font-weight: 600;
    font-size: 18px;
    letter-spacing: 0.1em;
    line-height: 38px;
  }
}
#forms .form__changer .label::after {
  content: "";
  display: inline-block;
  rotate: 180deg;
  background-image: url(images/fairyhouse/updown.svg);
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 980px) {
  #forms .form__changer .label::after {
    width: 3.2dvw;
    height: 2.133dvw;
    margin-left: 2.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__changer .label::after {
    vertical-align: middle;
    width: 14px;
    height: 10px;
    margin-left: 17px;
  }
}
@media screen and (max-width: 980px) {
  #forms .form__wrapper {
    padding-bottom: 12.267dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrapper {
    padding-bottom: 138px;
  }
}
#forms .form__wrap {
  display: none;
}
#forms .form__wrap.active {
  display: block;
}
#forms .form__wrap > .note, #forms .form__wrap .thanks {
  border-radius: 8px;
  background: #1d413c;
  text-align: center;
  color: #fff;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap > .note, #forms .form__wrap .thanks {
    padding: 6.133dvw 5.6dvw 3.733dvw;
    font-size: 3.733dvw;
    line-height: 5.867dvw;
    text-align: left;
    margin-bottom: 9.6dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap > .note, #forms .form__wrap .thanks {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 36px;
    padding-top: 38px;
    padding-left: 30px;
    padding-right: 30px;
    padding-bottom: 29px;
    margin-bottom: 53px;
    margin-left: 34px;
    margin-right: 34px;
  }
}
#forms .form__wrap:has(.thanks) > .note {
  display: none;
}
@media screen and (min-width: 981px) {
  #forms .form__wrap dl {
    padding-left: 34px;
    padding-right: 34px;
  }
}
#forms .form__wrap dl + dl {
  border-top: 1px solid #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap dl + dl {
    margin-top: 15.733dvw;
    padding-top: 15.733dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap dl + dl {
    margin-top: 110px;
    padding-top: 118px;
  }
}
#forms .form__wrap form input[type=text],
#forms .form__wrap form input[type=email],
#forms .form__wrap form input[type=number],
#forms .form__wrap form select,
#forms .form__wrap form textarea {
  max-width: 100%;
  font-family: "Noto Sans JP", sans-serif !important;
  border-radius: 4px;
  background: #f3f2e6;
  border: 1px solid #1d413c;
  color: #1d413c;
  padding-left: 10px;
  padding-right: 10px;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form input[type=text],
  #forms .form__wrap form input[type=email],
  #forms .form__wrap form input[type=number],
  #forms .form__wrap form select,
  #forms .form__wrap form textarea {
    max-width: 100%;
    min-height: 14.4dvw;
    font-size: 16px;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form input[type=text],
  #forms .form__wrap form input[type=email],
  #forms .form__wrap form input[type=number],
  #forms .form__wrap form select,
  #forms .form__wrap form textarea {
    font-family: inherit;
    font-size: 18px;
    min-height: 63px;
  }
}
#forms .form__wrap form input[type=text].full,
#forms .form__wrap form input[type=email].full,
#forms .form__wrap form input[type=number].full,
#forms .form__wrap form select.full,
#forms .form__wrap form textarea.full {
  width: 100%;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form input[type=text]#postal,
  #forms .form__wrap form input[type=email]#postal,
  #forms .form__wrap form input[type=number]#postal,
  #forms .form__wrap form select#postal,
  #forms .form__wrap form textarea#postal {
    width: 100%;
  }
}
#forms .form__wrap form input[type=number] {
  width: 166px;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form select {
    -webkit-appearance: none;
    min-width: 26.933dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form select {
    min-width: 166px;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form textarea {
    min-height: 182px;
  }
}
#forms .form__wrap form input[type=checkbox] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  margin: 0;
  background: #fff;
  border: 1px solid #1D413C;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form input[type=checkbox] {
    width: 5.333dvw;
    height: 5.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form input[type=checkbox] {
    width: 26px;
    height: 26px;
  }
}
#forms .form__wrap form input[type=checkbox]::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: auto;
  opacity: 0;
  border: 2px solid;
  border-left: 0;
  border-top: 0;
  border-right-color: #1D413C;
  border-bottom-color: #1D413C;
  transform-origin: center;
  rotate: 45deg;
  aspect-ratio: 3/8;
  height: auto;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form input[type=checkbox]::before {
    width: 0.8dvw;
    height: 2.133dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form input[type=checkbox]::before {
    width: 5px;
  }
}
#forms .form__wrap form input[type=checkbox]:checked::before {
  opacity: 1;
}
#forms .form__wrap form dt, #forms .form__wrap form dd {
  margin: 0;
  padding: 0;
}
#forms .form__wrap form dt {
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form dt {
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    line-height: 4.8dvw;
    margin-bottom: 1.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form dt {
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 38px;
    margin-bottom: 3px;
  }
}
#forms .form__wrap form dt.optional {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form dt.optional {
    gap: 2.4dvw;
    margin-bottom: 3.2dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form dt.optional {
    gap: 9px;
  }
}
#forms .form__wrap form dt.optional::after {
  content: "任意";
  background: #b5b5b5;
  color: #fff;
  border-radius: 4px;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form dt.optional::after {
    padding: 0.533dvw 1.867dvw;
    font-size: 3.2dvw;
    letter-spacing: 0.05em;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form dt.optional::after {
    padding: 2px 7px;
    font-size: 14px;
    letter-spacing: 0.05em;
    line-height: 1.4;
  }
}
#forms .form__wrap form dd {
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .form__wrap form dd {
    margin-bottom: 5.067dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__wrap form dd {
    margin-bottom: 42px;
  }
}
#forms .form__wrap#contact > .note, #forms .form__wrap#contact .thanks {
  background: #B19552;
}
#forms .form__wrap#contact dl + dl {
  border-color: #6A5114;
}
#forms .form__wrap#contact form input[type=text],
#forms .form__wrap#contact form input[type=email],
#forms .form__wrap#contact form input[type=number],
#forms .form__wrap#contact form select,
#forms .form__wrap#contact form textarea {
  background: #F3F2E6;
  border-color: #6A5114;
  color: #6A5114;
}
#forms .form__wrap#contact form input[type=checkbox] {
  border-color: #6A5114;
}
#forms .form__wrap#contact form input[type=checkbox]::before {
  border-right-color: #6A5114;
  border-bottom-color: #6A5114;
}
#forms .form__wrap#contact form dt {
  color: #6A5114;
}
#forms .form__wrap#contact form dd {
  color: #6A5114;
}
#forms .form__wrap#contact .form__item .label {
  color: #6A5114;
}
#forms .form__wrap#contact .agree a {
  color: #6A5114;
}
#forms .form__wrap#contact .submit__link {
  background-color: #B19552;
  color: #fff;
}
#forms .form__wrap#contact .submit__link span {
  position: relative;
  z-index: 1;
}
#forms .form__wrap#contact .submit__link::before, #forms .form__wrap#contact .submit__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 981px) {
  #forms .form__wrap#contact .submit__link::before, #forms .form__wrap#contact .submit__link::after {
    transition: opacity 0.3s;
  }
}
#forms .form__wrap#contact .submit__link::before {
  border: 1px solid #fff;
  border-radius: 9999px;
  inset: 5px;
  z-index: 1;
}
#forms .form__wrap#contact .submit__link::after {
  background: linear-gradient(#efdfbb 0%, #b19552 100%);
}
#forms .form__block {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 980px) {
  #forms .form__block {
    gap: 6.667dvw 5.067dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__block {
    gap: 20px 64px;
  }
}
#forms .form__item {
  align-items: end;
}
#forms .form__item.full {
  width: 100%;
}
#forms .form__item .label {
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .form__item .label {
    display: inline-block;
    font-size: 4.267dvw;
    letter-spacing: 0.05em;
    line-height: 4.8dvw;
    margin-bottom: 1.333dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .form__item .label {
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 38px;
    margin-bottom: 3px;
  }
}
#forms .afterfix {
  display: inline-block;
}
@media screen and (max-width: 980px) {
  #forms .afterfix {
    translate: 0.1em 1.1em;
  }
}
@media screen and (min-width: 981px) {
  #forms .afterfix {
    translate: 0.4em 1.3em;
  }
}
#forms .cafe {
  border-radius: 7px;
  background: #bcd8d4;
  border: 1px solid #1d413c;
}
@media screen and (max-width: 980px) {
  #forms .cafe {
    padding: 5.867dvw 7.2dvw 11.733dvw;
  }
  #forms .cafe .form__block {
    gap: 6.667dvw 4.267dvw !important;
  }
  #forms .cafe .form__block select {
    min-width: unset !important;
    width: 22.4dvw !important;
  }
}
@media screen and (min-width: 981px) {
  #forms .cafe {
    width: -moz-max-content;
    width: max-content;
    padding: 40px 50px 50px 60px;
  }
}
#forms .cafe strong {
  color: #1d413c;
  font-weight: 700;
}
@media screen and (max-width: 980px) {
  #forms .cafe strong {
    display: block;
    text-align: center;
    font-size: 4.213dvw;
    letter-spacing: 0.05em;
    line-height: 26px;
    text-align: center;
    color: #1d413c;
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 981px) {
  #forms .cafe strong {
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 38px;
  }
}
#forms .cafe p {
  display: none;
}
@media screen and (max-width: 980px) {
  #forms .agree {
    display: flex;
    justify-content: center;
    gap: 2.933dvw;
    margin-top: 15.733dvw !important;
    font-size: 3.733dvw;
    letter-spacing: 0.03em;
  }
}
@media screen and (min-width: 981px) {
  #forms .agree {
    font-size: 18px;
    letter-spacing: 0.05em;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
  }
}
#forms .agree .mwform-checkbox-field-text {
  display: none;
}
#forms .agree a {
  text-decoration: underline;
  color: #1d413c;
}
#forms #form_submit {
  display: flex;
  justify-content: center;
  text-align: center;
  border-top: 1px solid;
}
@media screen and (max-width: 980px) {
  #forms #form_submit {
    gap: 6.667dvw;
    padding-top: 21.6dvw;
    margin-top: 13.6dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms #form_submit {
    padding-top: 79px;
    margin-top: 79px;
    gap: 35px;
  }
}
#forms #form_submit br {
  display: none;
}
#forms .mw_wp_form_input .link-back {
  display: none !important;
}
#forms .mw_wp_form_input .link-submit {
  display: none !important;
}
#forms .mw_wp_form_input .agree {
  border-top: 1px solid;
}
@media screen and (max-width: 980px) {
  #forms .mw_wp_form_input .agree {
    padding-top: 21.6dvw;
    margin-top: 13.6dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .mw_wp_form_input .agree {
    padding-top: 79px;
    margin-top: 79px;
  }
}
#forms .mw_wp_form_input #form_submit {
  border-top: none;
  padding-top: 0;
}
#forms .mw_wp_form_preview .afterfix {
  translate: unset;
}
#forms .mw_wp_form_preview .agree {
  display: none;
}
#forms .mw_wp_form_preview .link-confirm {
  display: none !important;
}
#forms .submit__link {
  border: 0;
  position: relative;
  font-family: inherit;
  border-radius: 9999px;
  background-color: #1D413C;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 980px) {
  #forms .submit__link {
    width: 74.667dvw;
    height: 25.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #forms .submit__link {
    width: 564px;
    height: 97px;
  }
  #forms .submit__link:hover::after {
    opacity: 1;
  }
}
#forms .submit__link span {
  position: relative;
  z-index: 1;
}
#forms .submit__link::before, #forms .submit__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 981px) {
  #forms .submit__link::before, #forms .submit__link::after {
    transition: opacity 0.3s;
  }
}
#forms .submit__link::before {
  border: 1px solid #fff;
  border-radius: 9999px;
  inset: 5px;
  z-index: 1;
}
#forms .submit__link::after {
  background: linear-gradient(#66a299 0%, #1d413c 100%);
  opacity: 0;
}
@media screen and (max-width: 980px) {
  #forms .submit__link::after {
    opacity: 1;
  }
}
#forms #form_submit input[type=submit] {
  display: none;
}

.flex {
  display: flex;
}

footer {
  background: #1d413c;
}
footer .inner {
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 980px) {
  footer .inner {
    min-width: 82.667dvw;
    padding-top: 10.667dvw;
    padding-bottom: 9.6dvw;
  }
}
@media screen and (min-width: 981px) {
  footer .inner {
    max-width: 1200px;
    padding-top: 52px;
    padding-bottom: 26px;
  }
}
@media screen and (max-width: 980px) {
  footer .footer__logo {
    width: 82.667dvw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 10.667dvw;
  }
}
@media screen and (min-width: 981px) {
  footer .footer__logo {
    width: 368px;
  }
}
footer .flex {
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 980px) {
  footer .flex {
    flex-wrap: wrap;
  }
}
footer .footer__link a {
  aspect-ratio: 224/49;
  height: auto;
  display: block;
  position: relative;
}
@media screen and (max-width: 980px) {
  footer .footer__link a {
    width: 45.6dvw;
    height: 10.133dvw;
    margin-left: 8.8dvw;
  }
}
@media screen and (min-width: 981px) {
  footer .footer__link a {
    width: 224px;
  }
  footer .footer__link a:hover:after {
    opacity: 1;
  }
}
footer .footer__link a::before, footer .footer__link a::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
  transition: opacity 0.3s;
}
footer .footer__link a::before {
  background-image: url(images/fairyhouse/footer-link.png);
}
footer .footer__link a::after {
  background-image: url(images/fairyhouse/footer-link-active.png);
  opacity: 0;
}
@media screen and (max-width: 980px) {
  footer .policylink {
    margin-right: 8.8dvw;
    font-size: 2.667dvw;
  }
}
@media screen and (min-width: 981px) {
  footer .policylink {
    margin-top: 24px;
  }
}
footer .policylink a {
  text-decoration: underline;
}
@media screen and (min-width: 981px) {
  footer .policylink a {
    font-size: 12px;
  }
}

.right {
  text-align: right;
}

@media screen and (min-width: 981px) {
  #pp-head {
    background: #fffbf2;
    padding-top: 236px;
    padding-bottom: 138px;
  }
}
#pp-head .inner {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
#pp-head .image {
  text-align: center;
}
@media screen and (max-width: 980px) {
  #pp-head .image {
    background: #fffbf2;
    padding-top: 37.333dvw;
    padding-bottom: 15.2dvw;
  }
}
@media screen and (max-width: 980px) {
  #pp-head .image .head {
    width: 74.667dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-head .image .head {
    width: 466px;
  }
}
#pp-head .image .sub {
  text-align: center;
  color: #1d413c;
}
@media screen and (min-width: 981px) {
  #pp-head .image .sub {
    font-size: 18px;
    letter-spacing: 0.1em;
    line-height: 38px;
    margin-bottom: 51px;
  }
}
@media screen and (max-width: 980px) {
  #pp-head .lede {
    padding-left: 12.533dvw;
    padding-right: 12.533dvw;
    padding-top: 12.8dvw;
    background-color: #fff;
    font-weight: normal;
    font-size: 3.733dvw;
    letter-spacing: 0.01em;
    line-height: 6.4dvw;
    color: #1d413c;
  }
}
@media screen and (min-width: 981px) {
  #pp-head .lede {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 26px;
    color: #1d413c;
  }
}

#pp-body {
  background-color: #fff;
  color: #1d413c;
}
@media screen and (max-width: 980px) {
  #pp-body {
    padding-top: 11.2dvw;
    padding-left: 12.533dvw;
    padding-right: 12.533dvw;
    padding-bottom: 21.867dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-body {
    padding-top: 132px;
    padding-bottom: 158px;
  }
}
#pp-body .inner {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 980px) {
  #pp-body .subject {
    font-size: 4.8dvw;
    margin-bottom: 3.2dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-body .subject {
    font-size: 21px;
    margin-bottom: 21px;
  }
}
@media screen and (max-width: 980px) {
  #pp-body p {
    font-weight: normal;
    font-size: 3.733dvw;
    letter-spacing: 0.01em;
    line-height: 6.4dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-body p {
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    letter-spacing: 0.01em;
  }
}
@media screen and (max-width: 980px) {
  #pp-body p + .subject {
    margin-top: 11.2dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-body p + .subject {
    margin-top: 109px;
  }
}
@media screen and (max-width: 980px) {
  #pp-body .pageback__link {
    margin-top: 20dvw;
  }
}
@media screen and (min-width: 981px) {
  #pp-body .pageback__link {
    margin-top: 173px;
  }
}

.pageback__link {
  border: 0;
  position: relative;
  font-family: inherit;
  border-radius: 9999px;
  background-color: #B19552;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #b19552;
}
@media screen and (max-width: 980px) {
  .pageback__link {
    aspect-ratio: 111/47;
    width: 29.6dvw;
  }
}
@media screen and (min-width: 981px) {
  .pageback__link {
    aspect-ratio: 142/60;
    width: 142px;
    height: auto;
  }
  .pageback__link:hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 980px) {
  .pageback__link.link-back {
    background-color: #FFFBF2;
  }
  .pageback__link.link-back .label span {
    color: #b19552;
  }
}
.pageback__link span {
  position: relative;
  z-index: 1;
  color: #fff;
}
@media screen and (min-width: 981px) {
  .pageback__link span {
    font-size: 18px;
    letter-spacing: 0.05em;
  }
}
.pageback__link::before, .pageback__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 981px) {
  .pageback__link::before, .pageback__link::after {
    transition: opacity 0.3s;
  }
}
.pageback__link::after {
  background: linear-gradient(#efdfbb 0%, #b19552 100%);
  opacity: 0;
}

#reservations #form_submit {
  border-color: #1D413C;
}
#reservations .pageback__link {
  background-color: #1D413C;
  border-color: #1D413C;
}
@media screen and (max-width: 980px) {
  #reservations .pageback__link.link-back {
    background-color: #BCD8D4;
  }
  #reservations .pageback__link.link-back .label span {
    color: #1d413c;
  }
}
#reservations .pageback__link::after {
  background: linear-gradient(#66a299 0%, #1d413c 100%);
}

.p-country-name {
  opacity: 0 !important;
}