@charset "UTF-8";
/* 
html5doctor.com Reset Stylesheet v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Marcellus&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Marcellus&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  box-sizing: border-box;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

address {
  font-style: normal;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

/* Slider */
/* Icons */
/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
}
.slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
  outline: none;
  background: transparent;
  color: transparent;
}
.slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 0.25;
}
.slick-prev:before,
.slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: -25px;
}
[dir=rtl] .slick-prev {
  left: auto;
  right: -25px;
}
.slick-prev:before {
  content: "←";
}
[dir=rtl] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: -25px;
}
[dir=rtl] .slick-next {
  left: -25px;
  right: auto;
}
.slick-next:before {
  content: "→";
}
[dir=rtl] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0px;
  font-size: 0px;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}
.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}
.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "•";
  width: 20px;
  height: 20px;
  font-family: "slick";
  font-size: 6px;
  line-height: 20px;
  text-align: center;
  color: black;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
  color: black;
  opacity: 0.75;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* wrap */
/*	textcolor
---------------------------------*/
.clOrange {
  color: #FD5A2A !important;
}

.clBlue {
  color: #2053E0 !important;
}

.clPurple {
  color: #9A70CB !important;
}

.clGreen {
  color: #48BCC6 !important;
}

.clGreen2 {
  color: #51DE72 !important;
}

.clGreen3 {
  color: #3E865A !important;
}

.clRed {
  color: #E84A5C !important;
}

.clBlack {
  color: #000 !important;
}

/*	bgcolor
---------------------------------*/
.bgOrange {
  background: #FD5A2A !important;
}

.bgBlue {
  background: #2053E0 !important;
}

.bgPurple {
  background: #9A70CB !important;
}

.bgGreen {
  background: #48BCC6 !important;
}

.bgGreen2 {
  background: #51DE72 !important;
}

.bgGreen3 {
  color: #3E865A !important;
}

.bgGreen4 {
  background: #03755b !important;
}

.bgRed {
  background: #E84A5C !important;
}

.bgBlack {
  background: #000 !important;
}

.bgGray {
  background: #DEDEDE !important;
}

.bgDarkGold {
  background: #a3805a !important;
}

.bgGold2 {
  background: #7a6a56 !important;
}

/*	bgGrade
---------------------------------*/
.bgGradeWhite {
  background: rgb(255, 255, 255);
  background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0.6) 26%, rgba(255, 255, 255, 0.45) 40%, rgba(255, 255, 255, 0.24) 73%, rgba(255, 255, 255, 0) 100%);
}

.bgGradePink {
  background: rgb(252, 92, 179);
  background: linear-gradient(180deg, rgb(252, 92, 179) 0%, rgb(211, 85, 5) 100%) !important;
}

.bgGold {
  background: rgb(217, 200, 0);
  background: linear-gradient(180deg, rgb(217, 200, 0) 0%, rgb(134, 105, 8) 100%) !important;
}

.bgGreenBlue {
  background: rgb(167, 224, 173);
  background: linear-gradient(180deg, rgb(167, 224, 173) 0%, rgb(32, 159, 190) 100%) !important;
}

/*	radius
---------------------------------*/
.noRadius {
  border-radius: 0 !important;
}

.radius10 {
  border-radius: 10px !important;
  overflow: hidden !important;
}
/*	common
---------------------------------*/
body {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  line-height: 1.875;
}
@media screen and (max-width: 850px) {
  body {
    font-size: 14px;
  }
}

/* link */
a {
  color: #000;
  text-decoration: none;
  transition: 0.4s;
}
a:hover {
  transition: 0.4s;
}

a:active, a:focus {
  outline: none;
}

button {
  cursor: pointer;
}

/* figure */
img {
  max-width: 100%;
  height: auto;
}

/* heading */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* fadein */
.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: all 1s;
}

/* caption */
.img-caption {
  z-index: 0;
  position: relative;
}
.img-caption::before {
  content: attr(data-caption);
  z-index: 1;
  position: absolute;
  bottom: 0;
  right: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
  padding: 3px 10px;
}
.img-caption img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*	clearfix
---------------------------------*/
/* add parent object */
.cl:before, .cl:after {
  content: " ";
  display: table;
}

.cl:after {
  clear: both;
}

.cl {
  *zoom: 1;
  display: block;
}

.block_p {
  display: block !important;
}
@media screen and (max-width: 850px) {
  .block_p {
    display: none !important;
  }
}

.block_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .block_s {
    display: block !important;
  }
}

.inline_p {
  display: inline;
}
@media screen and (max-width: 850px) {
  .inline_p {
    display: none;
  }
}

.inline_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .inline_s {
    display: inline !important;
  }
}

.inline-block_p {
  display: inline-block !important;
}
@media screen and (max-width: 850px) {
  .inline-block_p {
    display: none !important;
  }
}

.inline-block_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .inline-block_s {
    display: inline-block !important;
  }
}

.anc {
  margin-top: -100px;
  padding-top: 100px;
}
.hide {
  display: none !important;
}

.main {
  overflow: hidden;
  margin-top: 140px !important;
}
@media screen and (max-width: 850px) {
  .main {
    margin-top: 0 !important;
  }
}

.inner {
  max-width: 1306px;
  margin: auto;
  padding: 0 60px;
  position: relative;
}
@media screen and (max-width: 850px) {
  .inner {
    padding: 0 15px;
  }
}

.btnTap {
  display: none;
}
@media screen and (max-width: 850px) {
  .btnTap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid #000;
    border-radius: 8px;
    padding: 3px 0;
    margin-top: 10px;
  }
}

.btnCont {
  margin-top: 150px;
  margin-bottom: 50px;
}
.btnCont__box {
  max-width: 700px;
  margin: 0 auto 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}
.btnCont .commonBtn {
  margin: 0 10px 20px;
}
.btnCont__ttl {
  width: 100%;
  display: block;
  font-weight: 600;
  margin: 0 0 20px;
  border-bottom: 1px solid #CCC;
  padding-bottom: 20px;
}

.commonBtn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  background: #CCC;
  font-size: 25px;
  min-width: 230px;
  min-height: 60px;
}
.commonBtn__inner {
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  padding: 0 20px 0 0;
  color: #FFF;
}
.commonBtn__inner:before {
  content: "";
  width: 10px;
  height: 10px;
  background: #FFF;
  border-radius: 100px;
  position: absolute;
  right: 0;
  top: calc(50% - 5px);
}

.commonBtn-type_s {
  font-size: 12px;
  min-width: 130px;
  min-height: 35px !important;
}
.commonBtn-type_s .commonBtn__inner:before {
  width: 6px;
  height: 6px;
  top: calc(50% - 3px);
}

.commonBtn2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  border-radius: 10px;
  padding: 0 60px;
  min-height: 180px;
  min-width: 690px;
  background: #CCC;
  box-sizing: border-box;
  position: relative;
}
.commonBtn2:after {
  content: "";
  position: absolute;
  right: 60px;
  top: calc(50% - 22.5px);
  width: 45px;
  height: 45px;
  background: url("../img/common/icon_arrow_common.svg") no-repeat;
  background-size: 45px;
}
.commonBtn2__inner {
  font-size: 32px;
  color: #FFF;
  font-weight: 600;
  line-height: 1.375;
}

.btn__entry {
  position: relative;
  width: 280px;
  height: 72px;
  text-align: center;
}
.btn__entry a {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  color: #fff;
  margin-top: -2px;
}
.btn__entry:after {
  content: "";
  position: absolute;
  top: calc(50% - 7px);
  right: 22px;
  background: url("../img/common/icon_arrow1.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center;
  width: 9px;
  height: 14px;
}

.fadeUp {
  opacity: 0;
  transform: translate3d(0, 0.4rem, 0);
  transition-duration: 0.7s;
  transition-delay: 0.3s;
  transition-property: opacity, transform;
}
.fadeUp.scrollIn {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.delay06s {
  transition-delay: 0.6s !important;
}

.delay09s {
  transition-delay: 0.9s !important;
}

.slideIn {
  -webkit-mask-image: linear-gradient(to right, black 0%, black 50%, transparent 100%);
          mask-image: linear-gradient(to right, black 0%, black 50%, transparent 100%);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
  -webkit-mask-position: 300% 0;
          mask-position: 300% 0;
}
.slideIn.scrollIn {
  animation: reveal-mask 2s forwards ease-out;
}
@keyframes reveal-mask {
  to {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}

.header {
  height: 140px;
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 15;
  font-family: serif;
  /*========= ぼかしのためのCSS ===============*/
}
@media screen and (min-width: 850px) {
  .header {
    background: #fff !important;
  }
}
@media screen and (max-width: 850px) {
  .header {
    height: 70px;
    display: flex;
    flex-wrap: wrap; /* Safari etc. */
    -ms-justify-content: space-between; /* IE10        */
    justify-content: space-between;
    align-items: center;
  }
}
.header__pcNavInner {
  height: 60px;
  width: 100%;
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.header__ttlLogo {
  width: -moz-fit-content;
  width: fit-content;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  padding: 12px 19px;
  background: #fff;
  line-height: 1.3;
}
@media screen and (max-width: 850px) {
  .header__ttlLogo {
    top: auto;
    align-items: center;
    padding: 3px 10px 6px;
  }
}
.header__logo {
  width: 100px;
  display: block;
  margin-right: 15px;
}
@media screen and (max-width: 850px) {
  .header__logo {
    width: 120px;
    margin-right: 10px;
  }
}
.header__ttl {
  font-size: 14px;
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  font-weight: 400;
}
@media screen and (max-width: 850px) {
  .header__ttl {
    font-size: 9px;
    margin-top: 8px;
    line-height: 1.2;
    position: relative;
    top: 2px;
  }
}
@media screen and (max-width: 850px) {
  .header__pcNav {
    display: none;
  }
}
.header__pcList {
  height: 40px;
  padding: 0 30px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 30px;
  position: relative;
}
@media screen and (max-width: 850px) {
  .header__pcList {
    display: none;
  }
}
@media screen and (max-width: 850px) {
  .header__pcLi-type_spBlock {
    display: block;
    width: calc(33.3333333333% - 5px);
    margin: 0;
  }
  .header__pcLi-type_spBlock + .header__pcLi-type_spBlock {
    border-left: 1px solid #3E865A;
  }
}
.header__pcLink {
  position: relative;
  color: #000;
  font-size: 15px;
  letter-spacing: 0.2em;
}
.header__pcLink::after {
  content: "＞";
}
.header__pcLink.current::after {
  width: 100%;
}
.header__pcLink:not(.entry):hover::after {
  width: 100%;
}
.header__pcLink-type_btn {
  cursor: pointer;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  height: 32px;
  box-sizing: border-box;
  color: #FFF;
  font-size: 12px;
  padding: 0 20px;
  align-content: center;
  position: relative;
}
@media screen and (max-width: 850px) {
  .header__pcLink-type_btn {
    border-radius: 0;
    justify-content: center;
    gap: 5px;
    height: 80px;
    padding: 10px 0 5px;
  }
}
.header__pcLink-type_btn::after {
  display: none;
}
@media screen and (min-width: 851px) {
  .header__pcLink-type_btn.entry .icon {
    display: none;
  }
}
.header__pcLink-type_btn .icon {
  width: 25px;
  aspect-ratio: 1/1;
}
.header__pcLink-type_btn .icon img {
  width: auto;
  height: 25px;
}
.header__pcLink-type_btn span {
  position: relative;
  top: -1px;
}
@media screen and (max-width: 850px) {
  .header__pcLink-type_btn span {
    font-family: "Noto Serif JP", serif;
    font-size: 10px;
    letter-spacing: 0.1em;
  }
}
.header__gNav {
  margin-top: 5px;
}
@media screen and (max-width: 850px) {
  .header__gNav {
    display: none;
  }
}
.header__gList {
  display: flex;
  justify-content: center;
  align-items: center;
}
.header__gLi {
  width: 160px;
  position: relative;
  background: linear-gradient(#000) 100% 50%/1px 80% no-repeat;
}
@media screen and (max-width: 1300px) {
  .header__gLi {
    width: 140px;
  }
}
.header__gLi:last-child {
  background: none;
}
.header__gLink {
  width: 100%;
  height: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 15px;
  line-height: 1.5;
  position: relative;
}
.header__gLink .en {
  color: #7a6a56;
}
.header__gLink .jp {
  color: #000;
}
.header__gLink::after {
  position: absolute;
  content: "";
  display: block;
  width: 80%;
  height: 1px;
  bottom: 0;
  background: #7a6a56;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s;
}
.header__gLink:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.header__gLink.current::after {
  transform: scaleX(1);
  transform-origin: inherit;
}
.header .mainblur {
  filter: blur(8px);
}
.header__spNav {
  position: fixed;
  z-index: -1;
  opacity: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  transition: all 0.1s;
}
@media screen and (max-width: 850px) {
  .header__spNav {
    background: url("../img/common/bg_spnav.png") center no-repeat;
    background-size: 110% auto;
  }
}
.header__spNav.panelactive {
  opacity: 1;
  z-index: 999;
}
.header__spNav.panelactive .header__spLink {
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
.header__spNav.panelactive .header__spLi.current {
  overflow: visible;
  position: relative;
}
.header__spNav.panelactive .header__spLi.current::before {
  content: "";
  position: absolute;
  top: 9px;
  left: -5px;
  translate: -100% 0 0;
  background-color: #fff;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-delay: 0.6s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes slideTextX-100 {
  from {
    transform: translateY(100%); /*要素を右の枠外に移動*/
    opacity: 0;
  }
  to {
    transform: translateY(0); /*要素を元の位置に移動*/
    opacity: 1;
  }
}
.header__spNavInner {
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.header__spNavBg {
  background: url("../img/common/bg_pcnav.png") center no-repeat;
  background-size: cover;
  height: 100%;
}
@media screen and (max-width: 850px) {
  .header__spNavBg {
    height: 100%;
    background: none;
  }
}
.header__spNavWrap {
  max-width: 1274px;
  margin: auto;
  position: relative;
  padding: 155px 60px 70px;
}
@media screen and (max-width: 850px) {
  .header__spNavWrap {
    padding: 70px 0 0 0;
  }
}
.header__spnavList {
  display: none;
  z-index: 999;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
@media screen and (max-width: 850px) {
  .header__spnavList {
    padding: 10px 15px 5px; /* Safari etc. */
    -ms-justify-content: space-between; /* IE10        */
    justify-content: space-between;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 850px) {
  .header__spLi.header__spLi-type_w100 {
    width: 100%;
  }
}
.header__spLi {
  width: calc(25% - 48.5px);
  margin-bottom: 40px;
  overflow: hidden;
  border-bottom: 1px solid #FFF;
  margin-right: 64px;
}
.header__spLi.current {
  overflow: visible;
  position: relative;
}
.header__spLi.current::before {
  content: "";
  position: absolute;
  top: 9px;
  left: -5px;
  transform: translateX(-100%);
  background-color: #fff;
  border-radius: 50%;
  width: 8px;
  height: 8px;
}
@media screen and (min-width: 1601px) {
  .header__spLi:nth-child(4n) {
    margin-right: 0px;
  }
}
@media screen and (max-width: 1600px) {
  .header__spLi {
    width: calc(33.3333333333% - 48.5px);
  }
  .header__spLi:nth-child(3n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 850px) {
  .header__spLi {
    width: calc(50% - 7.5px);
    margin-bottom: 15px;
    overflow: hidden;
    border-bottom: 1px solid #FFF;
    margin-right: 0;
  }
}
.header__spLink {
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.08em;
  color: #FFF;
  font-size: 16px;
  display: block;
  padding-bottom: 10px;
  box-sizing: border-box;
  position: relative;
}
@media screen and (max-width: 850px) {
  .header__spLink {
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: -0.5px;
    padding-bottom: 15px;
  }
}
.header__spLinkInner {
  display: block;
  font-family: "Baskervville", serif;
  letter-spacing: 0.1em;
  opacity: 0.7;
  position: relative;
  font-size: 14px;
  margin-bottom: -5px;
}
@media screen and (max-width: 850px) {
  .header__spLinkInner {
    margin: 0 0 5px;
    font-size: 12px;
  }
}
.header__spNew {
  display: inline-block;
  border-radius: 100px;
  color: #E84A5C;
  border: 1px solid #E84A5C;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  width: 50px;
  height: 25px;
  position: absolute;
  right: 0px;
  top: calc(50% - 5px);
  background: #FFF;
  font-size: 12px;
  justify-content: center;
  align-items: center;
  font-family: "Marcellus";
}
@media screen and (max-width: 850px) {
  .header__spNew {
    height: 23px;
    top: calc(50% - 8px);
  }
}
.header__spTtlLogo {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  position: relative;
  top: 19px;
  max-width: 320px;
  padding: 12px 14px 12px 19px;
  background: #FFF;
}
@media screen and (max-width: 850px) {
  .header__spTtlLogo {
    margin: 0;
    padding: 3px 10px 6px;
    max-width: 250px;
    top: auto;
  }
}
.header__spTtl {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  margin-top: 5px;
}
@media screen and (max-width: 850px) {
  .header__spTtl {
    font-size: 12px;
    position: relative;
    margin: 0;
    top: 2px;
    line-height: 1.2;
  }
}
.header__spLogo {
  width: 150px;
  display: block;
  margin-right: 15px;
}
@media screen and (max-width: 850px) {
  .header__spLogo {
    width: 75px;
    margin-right: 7px;
  }
}
.header__otherNav {
  margin-top: 60px;
}
@media screen and (max-width: 850px) {
  .header__otherNav {
    margin-top: 0;
    margin-bottom: 20px;
    padding: 0 15px;
  }
}
.header__otherNavLink {
  font-size: 14px;
  color: #FFF;
}
@media screen and (max-width: 850px) {
  .header__otherNavLink {
    font-size: 12px;
  }
}
.header__otherNavLi {
  margin-right: 25px;
  display: inline-block;
  vertical-align: top;
}
@media screen and (max-width: 850px) {
  .header__otherNavLi {
    margin-right: 15px;
  }
}
.header__otherNavLi:last-of-type {
  margin-right: 0;
}
.header__otherNavIcon1 {
  width: 27px;
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
}
@media screen and (max-width: 850px) {
  .header__otherNavIcon1 {
    width: 13.5px;
    margin-right: 5px;
  }
}
.header__otherNavIcon2 {
  display: inline-block;
  margin-right: 10px;
  width: 21px;
  vertical-align: middle;
  position: relative;
  top: 2px;
}
@media screen and (max-width: 850px) {
  .header__otherNavIcon2 {
    width: 10.5px;
    top: auto;
    margin-right: 5px;
  }
}
.header__otherNavIcon3 {
  display: inline-block;
  margin-right: 10px;
  width: 15px;
  vertical-align: top;
}
@media screen and (max-width: 850px) {
  .header__otherNavIcon3 {
    width: 8px;
    margin-right: 5px;
    vertical-align: middle;
    position: relative;
    top: -2px;
  }
}
.header__spBtns {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 850px) {
  .header__spBtns {
    display: block;
    padding: 0 15px 150px;
  }
}
.header__spBtnsLi {
  margin-right: 20px;
}
@media screen and (max-width: 850px) {
  .header__spBtnsLi {
    margin: 0 0 15px;
  }
}
.header__spBtnsLi:last-of-type {
  margin: 0;
}
.header__spContactBtn1 {
  font-size: 12px;
  position: absolute;
  right: 15px;
  top: 18px;
  display: flex;
  flex-wrap: wrap;
  height: 32px;
  border: 1px solid #FFF;
  border-radius: 100px;
  width: 130px;
  align-content: center;
}
.header__spContactBtn1:after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 100px;
  background: #FFF;
  position: absolute;
  right: 15px;
  top: calc(50% - 3px);
}
.header__spContactBtn1 span {
  margin-left: 20px;
  position: relative;
  top: -1px;
  color: #FFF;
}
.header__spContactBtn2 {
  border: 1px solid #FFF;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  min-height: 60px;
  min-width: 210px;
  box-sizing: border-box;
  padding: 0 30px;
  font-size: 16px;
  color: #FFF;
  line-height: 1.375;
  font-weight: 500;
  position: relative;
  cursor: pointer;
}
@media screen and (max-width: 850px) {
  .header__spContactBtn2 {
    max-width: 100%;
    min-height: 70px;
    font-size: 20px;
  }
}
.header__spContactBtn2:after {
  content: "";
  background: url("../img/common/icon_arrow1.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center;
  width: 9px;
  height: 14px;
  right: 22px;
  top: calc(50% - 7px);
  position: absolute;
}
.header__spNavHead {
  height: 125px;
  background: rgb(255, 255, 255);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7543631213) 0%, rgba(255, 255, 255, 0.5496847588) 35%, rgba(255, 255, 255, 0.2455911915) 65%, rgba(255, 255, 255, 0.0993923611) 80%, rgba(255, 255, 255, 0) 100%);
  width: 100%;
  padding-top: 11px;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
}
@media screen and (max-width: 850px) {
  .header__spNavHead {
    height: 70px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding-top: 0;
  }
}
.header__triger {
  display: none;
}
@media screen and (max-width: 850px) {
  .header__triger {
    display: block;
    position: fixed;
    z-index: 9999;
    top: 10px;
    right: 10px;
    cursor: pointer;
    transition: 0.4s;
    width: 55px;
    height: 55px;
    background: url("../img/common/btn_open.png") center no-repeat;
    background-size: cover;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
    border-radius: 1000px;
  }
}
.header__trigerCircle {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 100px;
  position: absolute;
  right: 8px;
  top: 2px;
  border: 1px solid #FFF;
}
.header__triger.active {
  background: url("../img/common/btn_close.png") center no-repeat;
  background-size: 65px;
}
@media screen and (max-width: 850px) {
  .header__triger.active {
    background: url("../img/common/btn_close.png") center no-repeat;
    background-size: cover;
  }
}
@media screen and (max-width: 850px) {
  .header__triger-type_mv, .header__trigerLeft-type_mv, .header__trigerRight-type_mv {
    bottom: 75px !important;
    transition: 0.4s;
  }
}
.header__trigerLeft, .header__trigerRight {
  line-height: 1;
  display: none;
}
@media screen and (max-width: 850px) {
  .header__trigerLeft, .header__trigerRight {
    position: fixed;
    z-index: 9999;
    bottom: 35px;
    left: calc(50% - 125px);
    cursor: pointer;
    width: 50px;
    height: 50px;
    background: #F5F5F5;
    background-size: 65px;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
    border-radius: 1000px;
    transition: 0.4s;
    border: 1px solid #FFF;
    display: block;
    font-size: 12px;
    font-weight: 600;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    font-weight: 500;
  }
}
@media screen and (max-width: 850px) {
  .header__trigerRight {
    left: auto;
    right: calc(50% - 125px);
  }
}
.header__trigerContact {
  cursor: pointer;
}

.header__spNav.panelactive .header__spnavList {
  display: flex;
  flex-wrap: wrap;
}

.headerEnttl {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 1.188;
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: 60px;
}
@media screen and (max-width: 850px) {
  .headerEnttl {
    font-size: 21px;
    margin-bottom: 20px;
  }
}

.headerContact {
  position: fixed;
  z-index: -1;
  opacity: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  transition: all 0.1s;
  background: #FFF;
}
.headerContact__closePc {
  position: absolute;
  top: 40px;
  right: 30px;
  width: 90px;
}
.headerContact__closeBtn {
  font-size: 12px;
  position: absolute;
  right: 15px;
  top: 18px;
  display: flex;
  flex-wrap: wrap;
  height: 32px;
  border: 1px solid #FFF;
  border-radius: 100px;
  width: 130px;
  background: #FD5A2A;
  align-content: center;
}
.headerContact__closeBtn:after {
  content: "";
  width: 25px;
  height: 8px;
  background: url("../img/common/icon_close2.svg") center no-repeat;
  background-size: 25px;
  position: absolute;
  right: 15px;
  top: calc(50% - 4px);
}
.headerContact__closeBtn span {
  margin-left: 20px;
  position: relative;
  top: -1px;
  color: #FFF;
}
.headerContact__contactWrap {
  display: flex;
  flex-wrap: wrap; /* Safari etc. */
  -ms-justify-content: space-between; /* IE10        */
  justify-content: space-between;
  max-width: 1266px;
  margin: auto;
  padding: 125px 40px 0;
}
@media screen and (max-width: 850px) {
  .headerContact__contactWrap {
    padding: 80px 15px 0;
  }
}
.headerContact__contactBox {
  width: calc(33.3333333333% - 14px);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.08);
  position: relative;
  background: #FFF;
}
@media screen and (max-width: 850px) {
  .headerContact__contactBox {
    width: 100%;
    display: block;
    margin: 0 0 20px;
    border-radius: 10px;
  }
}
.headerContact__contactBoxInner {
  box-sizing: border-box;
  padding: 10px 20px 30px;
  position: relative;
}
.headerContact__contactTtl {
  font-weight: 600;
}
.headerContact__contactTxt {
  font-size: 14px;
}
@media screen and (max-width: 850px) {
  .headerContact__contactTxt {
    font-size: 12px;
  }
}
.headerContact__contactTxt span {
  font-size: 12px;
  display: block;
}
@media screen and (max-width: 850px) {
  .headerContact__contactTxt span {
    font-size: 10px;
  }
}
.headerContact__contactIcon {
  display: block;
  width: 21px;
  position: absolute;
  right: 20px;
  bottom: 10px;
}
.headerContact__lineBtn {
  display: flex;
  flex-wrap: wrap; /* Safari etc. */
  -ms-justify-content: space-between; /* IE10        */
  justify-content: space-between;
  max-width: 450px;
  height: 100px;
  border: 2px solid #FFF;
  border-radius: 10px;
  color: #FFF;
  background: #43A229;
  font-weight: 600;
  font-size: 20px;
  align-items: center;
  padding: 0 30px;
  box-sizing: border-box;
  margin: 80px auto;
  box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.16);
}
@media screen and (max-width: 850px) {
  .headerContact__lineBtn {
    width: calc(100% - 30px);
    margin: 40px auto;
    height: 75px;
    font-size: 16px;
  }
}
.headerContact__lineBtn span {
  display: inline-block;
  width: 32px;
  position: relative;
  vertical-align: middle;
  position: relative;
  top: -2px;
}
@media screen and (max-width: 850px) {
  .headerContact__lineBtn span {
    width: 22.5px;
  }
}
.headerContact__lineBtn span img {
  vertical-align: bottom;
}
.headerContact__info {
  padding: 40px 0;
  border-top: 1px solid #e0e0e0;
}
@media screen and (max-width: 850px) {
  .headerContact__info {
    padding: 40px 0 100px;
  }
}
.headerContact__infoWrap {
  margin: 0 auto;
  padding: 0 40px;
  max-width: 1266px;
}
@media screen and (max-width: 850px) {
  .headerContact__infoWrap {
    padding: 0 15px;
  }
}
.headerContact__infoTtl {
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
}
@media screen and (max-width: 850px) {
  .headerContact__infoTtl {
    font-size: 12px;
  }
}
.headerContact__infoTel {
  display: block;
  width: 390px;
  margin: 15px auto 25px;
}
@media screen and (max-width: 850px) {
  .headerContact__infoTel {
    width: 315px;
  }
}
.headerContact__infoTxt {
  text-align: center;
  font-size: 14px;
}
@media screen and (max-width: 850px) {
  .headerContact__infoTxt {
    font-size: 12px;
  }
}

.headerContact.panelactive {
  opacity: 1;
  z-index: 9999999;
}

@media screen and (max-width: 850px) {
  .footer__top {
    padding: 20px 0;
    margin-top: 50px;
  }
}
.footer__li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-indent: -1em;
  margin-left: 1em;
}
.footer__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho !important;
  text-align: center !important;
  font-size: 22px !important;
  letter-spacing: 0.08em !important;
  color: #fff !important;
}
.footer__ttl::after {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .footer__ttl {
    font-size: 12px !important;
    letter-spacing: -0.5px !important;
  }
}
.footer__tel {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 12px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 15px auto 25px;
}
.footer__tel .icon {
  background-image: url("../img/common/icon_tel.svg");
  background-size: 26px 26px;
  background-position: center;
  background-repeat: no-repeat;
  border: 1px solid #000;
  border-radius: 50%;
  width: 64px;
  height: 64px;
  filter: invert(1);
}
.footer__tel p {
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  font-size: 50px;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #fff;
}
@media screen and (max-width: 850px) {
  .footer__tel p {
    font-size: 32px;
  }
}
@media screen and (min-width: 850px) {
  .footer__tel.sp {
    display: none;
  }
}
@media screen and (max-width: 850px) {
  .footer__tel.pc {
    display: none;
  }
}
.footer__txt {
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-align: left;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  .footer__txt {
    font-size: 12px;
  }
}
.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  flex-flow: column nowrap;
  justify-content: center;
  margin: 100px 0 0;
}
.footer__bottomInner {
  background-color: #251715;
  padding: 100px 0;
  color: #fff;
}
@media screen and (max-width: 850px) {
  .footer__bottomInner {
    padding: 60px 20px;
  }
}
.footer__bnrs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 40px 0 30px;
}
.footer__bnrs li {
  margin: 0 15px;
}
@media screen and (max-width: 850px) {
  .footer__bnrs li {
    margin: 0 8px;
  }
}
.footer__bnr {
  display: block;
}
.footer__bnr1 {
  width: 212px;
}
@media screen and (max-width: 850px) {
  .footer__bnr1 {
    max-width: 155px;
  }
}
.footer__bnr2 {
  width: 227px;
}
@media screen and (max-width: 850px) {
  .footer__bnr2 {
    max-width: 155px;
  }
}
.footer__otherLinks {
  border-top: 1px solid #E0E0E0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 20px 0 15px;
}
@media screen and (max-width: 850px) {
  .footer__otherLinks {
    padding: 20px 0 30px;
  }
}
.footer__otherLinks li {
  margin: 0 15px;
}
.footer__otherLink {
  font-size: 12px;
}
.footer__copy {
  background: #000;
  color: #FFF;
  text-align: center;
  padding: 20px 0;
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  .footer__copy {
    font-size: 10px;
    padding: 15px 15px 70px;
    line-height: 1.2;
  }
}

.topMv {
  position: relative;
  background: #f8f8f8;
  width: 100%;
  height: auto;
  aspect-ratio: 1920/980;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  .topMv {
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
  }
}
.topMv__ttl {
  position: absolute;
  left: 50%;
  top: 7%;
  transform: translateX(-50%);
  width: min(51.0416666667vw, 980px);
  padding: 0 min(1.5625vw, 30px);
  opacity: 0;
}
@media screen and (max-width: 850px) {
  .topMv__ttl {
    top: 140px;
    width: calc(100% - 60px);
  }
}
.topMv__ttl .text-01 {
  font-family: "Baskervville", serif;
  font-size: 25px;
  line-height: 32px;
  letter-spacing: 0.35em;
  text-align: center;
  color: #7a6a56;
}
.topMv__ttl .text-01 span {
  font-size: 1.7em;
  margin: 0 0.1em;
}
.topMv__ttl .text-02 {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 64.5px;
  line-height: 1;
  letter-spacing: 0.45em;
  text-align: center;
  color: #7a6a56;
  margin: 24px 0 30px;
}
.topMv__ttl .text-03 {
  font-family: "Noto Serif JP", serif;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.2em;
  text-align: center;
}
.topMv.img-caption::before {
  opacity: 0;
}
.topMv.ended {
  background-image: url("../img/top/mv_bg.png");
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
}
@media screen and (max-width: 850px) {
  .topMv.ended {
    background-image: url("../img/top/mv_bg-sp.png");
    background-size: 100% auto;
    background-position: bottom center;
  }
}
.topMv.ended .topMv__ttl {
  opacity: 1;
}
.topMv.ended.img-caption::before {
  opacity: 1;
}
.topMv__controls {
  z-index: 100;
  position: absolute;
  bottom: 4.5%;
  left: 0;
}
@media screen and (max-width: 850px) {
  .topMv__controls {
    bottom: 9.3333333333vw;
  }
}
.topMv__controls .skip,
.topMv__controls .replay {
  pointer-events: none;
  width: min(10.4166666667vw, 200px);
  opacity: 0;
  transition: opacity 0.5s ease;
}
@media screen and (max-width: 850px) {
  .topMv__controls .skip,
  .topMv__controls .replay {
    width: 26.6666666667vw;
  }
}
.topMv__controls .skip.active,
.topMv__controls .replay.active {
  pointer-events: all;
  cursor: pointer;
  display: block;
  opacity: 1;
}
.topMv__controls .replay {
  translate: 0 100% 0;
}
.topMv__vid {
  overflow: hidden;
  z-index: 1;
  position: relative;
  width: 100%;
  height: 100%;
}
.topMv__vid #vimeo-player {
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  aspect-ratio: 1920/980;
  opacity: 0;
}
@media screen and (max-width: 850px) {
  .topMv__vid #vimeo-player {
    width: 100%;
    aspect-ratio: 750/1257;
  }
}
.topMv__vid #vimeo-player iframe {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: auto !important;
  height: auto !important;
  min-width: 100% !important;
  min-height: 100% !important;
  transform: translate(-50%, -50%) !important;
}

@media screen and (max-width: 850px) {
  .topInfo.sc {
    position: absolute;
    transition: 0.4s;
  }
}

.topInfo {
  overflow: hidden;
  position: relative;
  width: 100%;
  max-width: 930px;
  padding: 17px 0;
  margin: 0px auto 100px;
}
@media screen and (max-width: 850px) {
  .topInfo {
    transition: 0.4s;
    width: 100%;
    border-radius: 0;
    margin: 60px 0;
    max-width: 100%;
    padding: 8px 0;
  }
}
.topInfo__title {
  font-family: "Baskervville", serif;
  font-size: 26px;
  line-height: 35px;
  letter-spacing: 0.2em;
  text-align: center;
  color: #7a6a56;
}
.topInfo__entry {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 30px;
}
@media screen and (max-width: 850px) {
  .topInfo__entry {
    flex-direction: column;
  }
}
.topInfo__entry .text {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 80px 0;
}
@media screen and (max-width: 850px) {
  .topInfo__entry .text {
    margin: 40px 0 10px;
  }
}
.topInfo__entry .text p {
  font-family: "Baskervville", serif;
  font-size: 40px;
  line-height: 1;
}
.topInfo__entry .text p + p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 20px;
  margin-left: 10px;
}
@media screen and (max-width: 850px) {
  .topInfo__entry .text p + p {
    margin-left: 0;
  }
}
.topInfo__entry .divider {
  background-color: #000;
  width: 97px;
  height: 2px;
}
@media screen and (max-width: 850px) {
  .topInfo__entry .divider {
    display: none;
  }
}
.topInfo__list {
  border-bottom: 2px dashed #7a6a56;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 0 10px;
}
@media screen and (max-width: 850px) {
  .topInfo__list {
    margin: 40px 30px 0;
  }
}
.topInfo__list li p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.topInfo__list li p.date {
  margin-bottom: 10px;
}
.topInfo__dl {
  font-size: 14px;
  display: flex;
  flex-wrap: wrap;
  color: #FFF;
}
@media screen and (max-width: 850px) {
  .topInfo__dl {
    font-size: 12px;
  }
}
.topInfo__dt {
  font-family: "Marcellus";
  width: 150px;
  border-right: 1px dotted #FFF;
  text-align: center;
}
@media screen and (max-width: 850px) {
  .topInfo__dt {
    width: 55px;
  }
}
.topInfo__dd {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  margin-left: 25px;
  color: #FFF;
}
@media screen and (max-width: 850px) {
  .topInfo__dd {
    overflow: hidden;
    margin-left: 15px;
  }
}
.topInfo__link {
  color: #FFF;
  text-decoration: underline;
}
@media screen and (max-width: 850px) {
  .topInfo__link {
    display: inline-block;
    padding-left: 100%;
    white-space: nowrap;
    animation: marquee 15s linear infinite;
  }
}
@keyframes marquee {
  0% {
    transform: translate(0);
  }
  100% {
    transform: translate(-100%);
  }
}

.topUsp {
  background-image: url("../img/top/bg_topusp.png");
  background-size: 100% auto;
  background-position: 0% 20%;
  padding: 50px 0;
  margin-bottom: 80px;
}
@media screen and (max-width: 850px) {
  .topUsp {
    background-size: cover;
    background-position: center;
    padding: 30px 0 16px;
  }
}
.topUsp__wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@media screen and (max-width: 850px) {
  .topUsp__wrap {
    flex-direction: column;
    align-items: center;
  }
}
.topUsp__wrap li {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  padding: 24px;
}
@media screen and (max-width: 850px) {
  .topUsp__wrap li {
    justify-content: center;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 273px;
    padding: 12px 20px;
  }
}
.topUsp__wrap li + li {
  border-left: 1px solid #000;
}
@media screen and (max-width: 850px) {
  .topUsp__wrap li + li {
    border-left: none;
    border-top: 1px solid #000;
  }
}
@media screen and (max-width: 850px) {
  .topUsp__wrap li:nth-child(2) {
    padding-top: 24px;
  }
}
.topUsp__wrap li p {
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 40px;
  letter-spacing: 0.08em;
  text-align: center;
}
@media screen and (max-width: 850px) {
  .topUsp__wrap li p {
    font-size: 18px;
    line-height: 32px;
  }
}
.topUsp__wrap li p span:not(.ruby) {
  color: #A09755;
  font-size: 1.7em;
  font-weight: 600;
  margin: 0 0.1em;
}
.topUsp__wrap li p span:not(.ruby).text {
  font-size: 1.4em;
}
.topUsp__wrap li p .ruby {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translate(-50%, -100%);
  display: inline-block;
  font-size: 12px;
  line-height: 1.8;
  width: 100%;
}
.topUsp__wrap li p .ruby-01 {
  margin-left: 8px;
}
@media screen and (max-width: 850px) {
  .topUsp__wrap li p .ruby-01 {
    font-size: 10px;
  }
}
.topUsp__wrap li p .ruby-02 {
  left: 10px;
  transform: translate(0, -100%);
  width: -moz-fit-content;
  width: fit-content;
  font-size: 10px;
  white-space: nowrap;
}
.topUsp__box {
  min-height: 400px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 25%;
  padding: 10px;
  border-right: 1px solid #6E695B;
}
@media screen and (max-width: 850px) {
  .topUsp__box {
    width: 50%;
    min-height: 165px;
  }
}
.topUsp__box:last-of-type {
  border-right: none;
}
@media screen and (max-width: 850px) {
  .topUsp__box:last-of-type {
    border-top: 1px solid #6E695B;
  }
}
@media screen and (max-width: 850px) {
  .topUsp__box:nth-of-type(2) {
    border: none;
  }
}
@media screen and (max-width: 850px) {
  .topUsp__box:nth-of-type(3) {
    border-top: 1px solid #6E695B;
  }
}
.topUsp__txt {
  color: #FFDA77;
  text-align: center;
  font-size: 36px;
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  line-height: 1.25;
}
@media screen and (max-width: 850px) {
  .topUsp__txt {
    font-size: 20px;
  }
}
.topUsp__txtInner {
  font-weight: 600;
  font-size: 18px;
  display: block;
  font-size: 20px;
  margin-bottom: -40px;
}
@media screen and (max-width: 850px) {
  .topUsp__txtInner {
    margin-bottom: -20px;
    font-size: 16px;
  }
}

.topPlan {
  max-width: 1246px;
  padding: 0 30px;
  position: relative;
  margin: 0 auto 100px;
}
@media screen and (max-width: 1240px) {
  .topPlan {
    padding: 0 15px;
    overflow-x: auto;
  }
}
@media screen and (max-width: 850px) {
  .topPlan {
    padding: 0 0 0 15px;
    overflow-x: hidden;
    max-width: 100%;
    margin: 0 auto 35px;
  }
}
.topPlan__wrap {
  width: 1186px;
  display: flex;
  flex-wrap: wrap; /* Safari etc. */
  -ms-justify-content: space-between; /* IE10        */
  justify-content: space-between;
}
@media screen and (max-width: 850px) {
  .topPlan__wrap {
    width: 100%;
  }
}
.topPlan__inner {
  width: calc(33.3333333333% - 10px);
}
@media screen and (max-width: 850px) {
  .topPlan__inner {
    width: 290px;
    padding: 0;
    margin-right: 15px;
  }
}
.topPlan__box {
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  overflow: hidden;
  position: relative;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;
  cursor: pointer;
  align-items: flex-start;
  transition-property: background-size, opacity;
}
@media screen and (max-width: 850px) {
  .topPlan__box {
    box-sizing: border-box;
    padding: 20px;
  }
}
.topPlan__box:hover {
  opacity: 0.7;
  background-size: 120% 120%;
}
.topPlan__box1 {
  background-image: url("../img/top/bg_plan1.png");
  height: 317.5px;
}
@media screen and (max-width: 850px) {
  .topPlan__box1 {
    height: 243px;
  }
}
.topPlan__box2 {
  background-image: url("../img/top/bg_plan2.png");
  margin-top: 15px;
  height: 317.5px;
}
@media screen and (max-width: 850px) {
  .topPlan__box2 {
    height: 243px;
  }
}
.topPlan__box3 {
  background-image: url("../img/top/bg_plan3.png");
  height: 650px;
}
.topPlan__box3 .topPlan__btn {
  margin-top: 60px;
}
@media screen and (max-width: 850px) {
  .topPlan__box3 {
    height: 501px;
  }
}
.topPlan__box4 {
  background-image: url("../img/top/bg_plan4.png");
  height: 317.5px;
}
@media screen and (max-width: 850px) {
  .topPlan__box4 {
    height: 243px;
  }
}
.topPlan__box5 {
  background-image: url("../img/top/bg_plan5.png");
  margin-top: 15px;
  height: 317.5px;
}
@media screen and (max-width: 850px) {
  .topPlan__box5 {
    height: 243px;
  }
}
.topPlan__boxInner {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: flex-start;
  justify-content: start;
  height: 100%;
  color: #FFF;
}
.topPlan__subTtl {
  position: relative;
  font-family: "Baskervville", serif;
  font-size: 18px;
  letter-spacing: 0.15em;
}
.topPlan__subTtl::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  background-color: rgba(255, 255, 255, 0.5019607843);
  width: 92px;
  height: 1px;
}
.topPlan__ttl {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 22px;
  font-weight: normal;
  line-height: 1.3;
  letter-spacing: 0.15em;
  margin: 10px 0 20px;
}
@media screen and (max-width: 850px) {
  .topPlan__ttl {
    margin: 10px 0;
    font-size: 20px;
  }
}
.topPlan__txt {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  .topPlan__txt {
    font-size: 12px;
    line-height: 1.6;
  }
}
.topPlan__btn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 30px;
  border-radius: 100px;
  background-color: #a39a56;
  font-family: "Noto Sans JP", sans-serif;
  color: #FFF;
  font-size: 13px;
  letter-spacing: 0.1em;
  margin-top: 90px;
}
@media screen and (max-width: 850px) {
  .topPlan__btn {
    margin-top: 40px;
  }
}

.topBrand {
  margin-bottom: 100px;
}
@media screen and (max-width: 850px) {
  .topBrand {
    margin-bottom: 50px;
  }
}
.topBrand__wrap {
  background: #FFF;
  overflow: hidden;
  width: 100%;
  max-width: 1050px;
  height: 295px;
  display: flex;
  flex-wrap: wrap;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.08);
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  .topBrand__wrap {
    display: block;
    height: auto;
  }
}
.topBrand__pic {
  width: 510px;
  height: 100%;
  background: url("../img/top/bg_brand.png") center no-repeat;
  background-size: cover;
}
@media screen and (max-width: 850px) {
  .topBrand__pic {
    background: none;
    width: 100%;
  }
}
.topBrand__pic img {
  width: 100%;
}
.topBrand__box {
  display: flex;
  flex-wrap: wrap;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 850px) {
  .topBrand__box {
    display: block;
    padding: 20px 0 30px;
  }
}
.topBrand__boxInner {
  text-align: center;
}
.topBrand__subTtl {
  font-family: "Marcellus";
  font-size: 28px;
}
@media screen and (max-width: 850px) {
  .topBrand__subTtl {
    font-size: 19px;
  }
}
.topBrand__ttl {
  font-size: 28px;
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  font-weight: 500;
}
@media screen and (max-width: 850px) {
  .topBrand__ttl {
    font-size: 19px;
  }
}

.topConcept {
  position: relative;
  background-image: url("../img/top/bg_concept.png");
  background-size: auto 100%;
  background-position: center;
  background-repeat: no-repeat;
  padding: 140px 0 100px;
  margin-bottom: 120px;
}
@media screen and (max-width: 850px) {
  .topConcept {
    padding: 35px 0;
    margin-bottom: 35px;
  }
}
.topConcept__inner {
  width: 100%;
  max-width: 1366px;
  margin: 0 auto;
}
.topConcept__wrap {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-flow: row nowrap;
  gap: 60px;
  padding: 0;
}
@media screen and (max-width: 850px) {
  .topConcept__wrap {
    flex-flow: column nowrap;
    gap: 30px;
  }
}
.topConcept__pic {
  position: relative;
  width: 100%;
}
@media screen and (max-width: 850px) {
  .topConcept__pic {
    width: 100%;
    padding-bottom: 60px;
  }
}
.topConcept__pic .image img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.topConcept__pic .image.image-01 {
  z-index: 1;
  position: relative;
  width: 547px;
  height: 387px;
  margin-left: auto;
  -webkit-mask-image: linear-gradient(to right, black 0%, black 50%);
          mask-image: linear-gradient(to right, black 0%, black 50%);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 200% 100%;
          mask-size: 200% 100%;
  -webkit-mask-position: -200% 0;
          mask-position: -200% 0;
}
@media screen and (max-width: 850px) {
  .topConcept__pic .image.image-01 {
    width: 250px;
    height: auto;
    aspect-ratio: 547/387;
    margin-left: 0;
    margin: 0 40px 0 auto;
  }
}
.topConcept__pic .image.image-01.scrollIn {
  animation: reveal-mask 3s forwards ease-out;
}
@keyframes reveal-mask {
  to {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}
.topConcept__pic .image.image-02, .topConcept__pic .image.image-03 {
  translate: 0 -10% 0;
  opacity: 0;
  transition: translate 3s 1s ease, opacity 3s 1s ease;
}
.topConcept__pic .image.image-02.scrollIn, .topConcept__pic .image.image-03.scrollIn {
  translate: 0 0 0;
  opacity: 1;
}
.topConcept__pic .image.image-02 {
  width: 274px;
  height: 387px;
  margin-top: -60px;
}
@media screen and (max-width: 850px) {
  .topConcept__pic .image.image-02 {
    width: 120px;
    height: auto;
    aspect-ratio: 274/387;
    margin: -80px 0 0 30px;
  }
}
.topConcept__pic .image.image-03 {
  position: absolute;
  top: 420px;
  right: 80px;
  width: 255px;
  height: 227px;
}
@media screen and (max-width: 850px) {
  .topConcept__pic .image.image-03 {
    top: 160px;
    right: 10px;
    width: 200px;
    height: auto;
    aspect-ratio: 1/1;
  }
}
.topConcept__box {
  flex-shrink: 0;
}
.topConcept__ttl {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0px auto 80px;
}
@media screen and (max-width: 850px) {
  .topConcept__ttl {
    font-size: 19px;
    margin: 20px 30px;
  }
}
.topConcept__subTtl {
  font-family: "Marcellus";
}
@media screen and (max-width: 850px) {
  .topConcept__subTtl {
    text-align: center;
    margin: 0 0 10px;
  }
}
.topConcept__txt {
  font-family: "游明朝体", "Yu Mincho", YuMincho;
  font-size: 18px;
  line-height: 45px;
  letter-spacing: 0.12em;
  padding: 60px 0 0 160px;
}
@media screen and (max-width: 850px) {
  .topConcept__txt {
    font-size: 14px;
    line-height: 32px;
    padding: 0 30px;
  }
}

.topArea__wrap {
  display: flex;
  flex-wrap: wrap; /* Safari etc. */
  -ms-justify-content: space-between; /* IE10        */
  justify-content: space-between;
}
.topArea__box {
  width: calc(33.3333333333% - 14px);
  margin: 0 0 20px;
  background: #FFF;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.16);
  overflow: hidden;
}
@media screen and (max-width: 850px) {
  .topArea__box {
    width: calc(50% - 7.5px);
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.08);
  }
}
.topArea__boxInner {
  padding: 0 30px 30px;
}
@media screen and (max-width: 850px) {
  .topArea__boxInner {
    padding: 0 15px 30px;
  }
}
.topArea__ttl {
  font-size: 18px;
  font-weight: 500;
}
@media screen and (max-width: 850px) {
  .topArea__ttl {
    font-size: 14px;
    line-height: 1.429;
  }
}
.topArea__pic {
  position: relative;
  margin-bottom: 10px;
}
.topArea__plus {
  position: absolute;
  right: 15px;
  top: 15px;
  width: 26px;
  height: 26px;
  border-radius: 100px;
  background: #000;
}
.topArea__plus:before, .topArea__plus:after {
  content: "";
  position: absolute;
  background: #FFF;
}
.topArea__plus:before {
  width: 10px;
  height: 2px;
  left: calc(50% - 5px);
  top: calc(50% - 1px);
}
.topArea__plus:after {
  width: 2px;
  height: 10px;
  left: calc(50% - 1px);
  top: calc(50% - 5px);
}
.topArea__txt {
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic";
  margin-top: 5px;
  line-height: 1.5;
}
@media screen and (max-width: 850px) {
  .topArea__txt {
    font-size: 12px;
  }
}
.topArea__subTtl {
  font-family: "Marcellus";
  font-size: 12px;
}

.topInfoMation {
  width: 100%;
  max-width: 1050px;
  margin: 130px auto;
}
@media screen and (max-width: 850px) {
  .topInfoMation {
    margin-top: 20px;
    padding-top: 35px;
  }
}
.topInfoMation__inner {
  background-image: url("../img/top/bg_topinfo.png");
  background-size: auto 100%;
  background-position: center;
  padding: 60px;
}
@media screen and (max-width: 850px) {
  .topInfoMation__inner {
    padding: 40px 20px;
  }
}
.topInfoMation__inner .btn {
  margin: 40px auto;
}
.topInfoMation__ttl {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 26px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  margin: 0 0 40px;
}
.topInfoMation__notice {
  background: #f6f6f6;
  width: 100%;
  padding: 50px 90px 70px;
}
@media screen and (max-width: 850px) {
  .topInfoMation__notice {
    padding: 40px 30px;
  }
}
.topInfoMation__notice .title {
  border-bottom: 2px solid rgba(0, 0, 0, 0.2509803922);
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 550;
  font-size: 22px;
  line-height: 35px;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 0 0 30px;
  margin: 0 0 40px;
}
.topInfoMation__notice .detail {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 25px;
  letter-spacing: 0.08em;
  margin: 0 0 60px;
}
.topInfoMation__notice .steps {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  gap: 65px;
}
@media screen and (max-width: 850px) {
  .topInfoMation__notice .steps {
    flex-flow: column nowrap;
    gap: 30px;
    margin-left: 35px;
  }
}
.topInfoMation__notice .steps .step {
  display: flex;
  flex-flow: row nowrap;
  align-items: flex-start;
  gap: 15px;
}
.topInfoMation__notice .steps .step .image {
  width: 67px;
  height: 67px;
}
.topInfoMation__notice .steps .step .text .en {
  font-family: "Baskervville", serif;
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.topInfoMation__notice .steps .step .text .en span {
  font-family: "Noto Serif JP", serif;
  font-size: 22px;
  margin-left: 0.3em;
}
.topInfoMation__notice .steps .step .text .jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 19px;
  letter-spacing: 0.06em;
}
.topInfoMation__note {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 18px;
  letter-spacing: 0.08em;
}
.topInfoMation__list {
  border-bottom: 1px dashed #707070;
  padding-bottom: 10px;
  max-width: 945px;
  margin: 0 auto 30px;
}
.topInfoMation__list:last-of-type {
  margin-bottom: 0;
}
.topInfoMation__dt {
  margin-bottom: 5px;
}
.topInfoMation__link {
  color: #002393;
  text-decoration: none;
  text-decoration: underline;
}

.topPageNav {
  width: 100%;
  max-width: 1050px;
  margin: 0 auto 80px;
}
.topPageNav__inner {
  width: 100%;
}
.topPageNav .page-items {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 80px;
}
@media screen and (max-width: 850px) {
  .topPageNav .page-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding: 0 20px;
    margin: 0 0 40px;
  }
}
.topPageNav .page-item {
  background-size: cover;
  background-position: center;
  width: 203px;
  height: 203px;
}
@media screen and (max-width: 850px) {
  .topPageNav .page-item {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
  }
}
.topPageNav .page-item.current {
  position: relative;
}
.topPageNav .page-item.current::after {
  content: "";
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  border: 4px solid #578F5C;
  background-color: rgba(0, 0, 0, 0.35);
  width: calc(100% - 8px);
  height: calc(100% - 8px);
}
.topPageNav .page-item.access {
  background-image: url("../img/top/bg_pagenav-access.png");
}
.topPageNav .page-item.location {
  background-image: url("../img/top/bg_pagenav-location.png");
}
.topPageNav .page-item.plan {
  background-image: url("../img/top/bg_pagenav-plan.png");
}
.topPageNav .page-item.design {
  background-image: url("../img/top/bg_pagenav-design.png");
}
.topPageNav .page-item.quality {
  background-image: url("../img/top/bg_pagenav-quality.png");
}
.topPageNav .page-item a {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  gap: 25px;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 850px) {
  .topPageNav .page-item a {
    gap: 20px;
  }
}
.topPageNav .page-item p {
  position: relative;
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.15em;
  color: #fff;
}
.topPageNav .page-item p::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 3px);
  background-color: rgba(255, 255, 255, 0.3764705882);
  width: 67px;
  height: 1px;
}
.topPageNav .page-item__btn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 30px;
  border-radius: 100px;
  background-color: #a39a56;
  font-family: "Noto Sans JP", sans-serif;
  color: #FFF;
  font-size: 13px;
  letter-spacing: 0.1em;
}
.topPageNav .btn {
  margin: 0 auto;
}

.topSlides,
.topRecommend {
  background: #578F5C;
  position: relative;
}
.topSlides__inner,
.topRecommend__inner {
  padding: 60px 20px 100px;
}
@media screen and (max-width: 850px) {
  .topSlides__inner,
  .topRecommend__inner {
    padding: 30px 0px 50px;
  }
}
@media screen and (max-width: 850px) {
  .topSlides__inner .inner,
  .topRecommend__inner .inner {
    padding: 0;
  }
}
.topSlides .headerEnttl,
.topRecommend .headerEnttl {
  color: #FFF;
}
.topSlides .slick-prev,
.topSlides .slick-next,
.topRecommend .slick-prev,
.topRecommend .slick-next {
  width: 45px;
  height: 45px;
  border-radius: 100px;
  background-size: 45px;
  background-repeat: no-repeat;
  background-position: center;
}
@media screen and (max-width: 850px) {
  .topSlides .slick-prev,
  .topSlides .slick-next,
  .topRecommend .slick-prev,
  .topRecommend .slick-next {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
}
.topSlides .slick-prev:before,
.topSlides .slick-next:before,
.topRecommend .slick-prev:before,
.topRecommend .slick-next:before {
  content: none;
}
.topSlides .slick-next,
.topRecommend .slick-next {
  right: -62px;
  background-image: url("../img/common/icon_arrow_next.svg");
}
@media screen and (max-width: 850px) {
  .topSlides .slick-next,
  .topRecommend .slick-next {
    right: 15px;
  }
}
.topSlides .slick-prev,
.topRecommend .slick-prev {
  left: -60px;
  background-image: url("../img/common/icon_arrow_prev.svg");
}
@media screen and (max-width: 850px) {
  .topSlides .slick-prev,
  .topRecommend .slick-prev {
    left: 15px;
    z-index: 10;
  }
}
.topSlides__slide,
.topRecommend__slide {
  padding: 0 15px;
}
@media screen and (max-width: 850px) {
  .topSlides__slide,
  .topRecommend__slide {
    padding: 0 10px;
    width: 297px;
  }
}
.topSlides__link,
.topRecommend__link {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}

.topRecommend {
  background: #578F5C;
  border-top: 1px solid #48BCC6;
}
.topSlides {
  /*&__txts {
    position: absolute;
    left: 15px;
    bottom: 15px;
    padding-right: 15px;
    @media screen and (max-width: $viewport) {}
  }*/
}
.topSlides__link {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  color: #FFF;
  box-sizing: border-box;
}
.topSlides__ttl {
  font-weight: 500;
  font-size: 14px;
  margin: 0 0 5px;
}
.topSlides__txt {
  font-size: 12px;
  line-height: 1.4;
}

.topOther {
  padding: 100px 0;
  background: #F4F4F4;
}
@media screen and (max-width: 850px) {
  .topOther {
    padding: 50px 0 20px;
  }
}
@media screen and (max-width: 850px) {
  .topOther__btn {
    padding: 0 30px 40px;
    margin-top: -20px;
  }
}
.topOther__list {
  display: flex;
  flex-wrap: wrap;
  max-width: 945px;
  margin: auto;
}
@media screen and (max-width: 850px) {
  .topOther__list {
    padding: 0 15px; /* Safari etc. */
    -ms-justify-content: space-between; /* IE10        */
    justify-content: space-between;
  }
}
.topOther__li {
  width: calc(25% - 15px);
  margin-right: 20px;
  margin-bottom: 30px;
}
@media screen and (max-width: 850px) {
  .topOther__li {
    width: calc(50% - 8px);
    margin-bottom: 30px;
    margin-right: 0;
  }
}
.topOther__li:nth-child(4n) {
  margin-right: 0;
}
@media screen and (max-width: 850px) {
  .topOther__txt {
    font-size: 12px;
  }
}

html, body {
  overflow-x: hidden;
}

main.access section {
  width: 100%;
  margin: 0 0 120px;
}
main.access section .mv {
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 364px;
  margin: 0 0 135px;
}
main.access section .mv::before {
  color: #fff;
}
@media screen and (max-width: 850px) {
  main.access section .mv {
    height: 200px;
    margin: 0 0 60px;
  }
}
main.access section .mv__inner {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0;
}
main.access section .mv__inner h2 {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
main.access section .inner {
  max-width: 1170px;
  padding: 0 60px;
}
main.access section .inner + .inner {
  margin: 110px auto 120px;
}
@media screen and (max-width: 850px) {
  main.access section .inner + .inner {
    margin: 60px auto 70px;
  }
}
main.access section .inner:has(.detail__lines) {
  padding: 0 40px;
}
@media screen and (max-width: 850px) {
  main.access section .inner:has(.detail__lines) {
    padding: 0 20px;
  }
}
@media screen and (max-width: 850px) {
  main.access section .inner {
    padding: 0 20px;
  }
}
main.access section .inner .ttl {
  width: 100%;
  padding: 0 70px;
  margin: 0 0 55px;
}
main.access section .inner .ttl h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: normal;
  font-size: 32px;
  line-height: 47px;
  letter-spacing: 0.2em;
  color: #7a6a56;
}
@media screen and (max-width: 850px) {
  main.access section .inner .ttl {
    padding: 0;
    margin: 0 0 20px;
  }
  main.access section .inner .ttl h3 {
    font-size: 26px;
    line-height: 1.8;
  }
}
main.access section .image.full-sized {
  width: 100%;
  padding: 0 70px;
}
@media screen and (max-width: 850px) {
  main.access section .image.full-sized {
    padding: 0;
  }
}
main.access section .image.full-sized img {
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.access .access .mv {
    height: 364px;
    margin: 0 0 135px;
  }
}
main.access .access .ttl {
  position: relative;
}
main.access .access .ttl .side {
  position: absolute;
  top: 0;
  left: -110px;
}
@media screen and (max-width: 850px) {
  main.access .access .ttl .side {
    top: 0;
    left: 0;
    transform: translateY(-200%);
    width: 100%;
  }
}
main.access .access .mv {
  background-image: url("../img/access/bg_access.png");
}
main.access .access .mv__inner {
  align-items: flex-end;
  padding: 0 0 60px;
}
main.access .access .detail {
  display: flex;
  flex-flow: row nowrap;
  gap: 80px;
  padding: 0 0 0 70px;
  margin: 0 0 40px;
}
@media screen and (max-width: 850px) {
  main.access .access .detail {
    flex-flow: column nowrap;
    gap: 40px;
    padding: 0;
  }
}
main.access .access .detail__text {
  flex-shrink: 0;
}
main.access .access .detail__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 35px;
  letter-spacing: 0.08em;
}
main.access .access .detail__text p:first-child {
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 0.15em;
  margin: 0 0 54px;
}
@media screen and (max-width: 850px) {
  main.access .access .detail__text p {
    font-size: 15px;
  }
  main.access .access .detail__text p:first-child {
    font-size: 20px;
    margin: 0 0 160px;
  }
}
main.access .access .detail__images {
  position: relative;
}
@media screen and (max-width: 850px) {
  main.access .access .detail__images {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(250px);
    display: flex;
    flex-flow: row nowrap;
    gap: 10px;
    padding: 0 20px;
  }
}
main.access .access .detail__images .image::before {
  color: #fff;
}
@media screen and (max-width: 850px) {
  main.access .access .detail__images .image::before {
    padding: 0 0.2em 0.5em 0;
  }
}
main.access .access .detail__images .image:first-child {
  width: 314px;
  height: 210px;
  margin: 30px 0 0 180px;
}
@media screen and (max-width: 850px) {
  main.access .access .detail__images .image:first-child {
    width: 100%;
    height: -moz-fit-content;
    height: fit-content;
    aspect-ratio: auto;
    margin: 0;
  }
}
main.access .access .detail__images .image:first-child img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.access .access .detail__images .image:nth-child(2) {
  width: 260px;
  height: 173px;
  margin: -75px 0 0 0;
}
@media screen and (max-width: 850px) {
  main.access .access .detail__images .image:nth-child(2) {
    width: 100%;
    height: -moz-fit-content;
    height: fit-content;
    aspect-ratio: auto;
    margin: 0;
  }
}
main.access .access .detail__images .image:nth-child(2) img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.access .access p.text-between {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  margin: 0 0 80px;
}
@media screen and (max-width: 850px) {
  main.access .access p.text-between {
    font-size: 20px;
  }
}
main.access .access .scroll-note {
  background-color: #7a6a56;
  border-radius: 5px;
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 1;
  color: white;
  padding: 5px 10px;
  margin-left: auto;
  margin-bottom: 10px;
}
main.access .access .scroll-note span {
  display: inline-block;
  margin-right: 0.5em;
  animation: text-arw-move 1s ease infinite;
}
@keyframes text-arw-move {
  0%, 100% {
    translate: 0 0 0;
  }
  80% {
    translate: 15% 0 0;
  }
}
main.access .access .scroll-note + .image.full-sized {
  position: relative;
  margin: 0 0 130px;
}
main.access .access .scroll-note + .image.full-sized .side {
  position: absolute;
  top: 0;
  right: -95px;
}
main.access .access .image.full-sized {
  margin: 0 0 170px;
}
@media screen and (max-width: 850px) {
  main.access .access .image.full-sized {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    margin: 0 0 60px;
  }
  main.access .access .image.full-sized::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }
  main.access .access .image.full-sized::-webkit-scrollbar-track {
    background: #d1d1d1;
    border-radius: 5px;
  }
  main.access .access .image.full-sized::-webkit-scrollbar-thumb {
    background-color: #7a6a56;
    border-radius: 5px;
    border: 2px solid #d1d1d1;
  }
  main.access .access .image.full-sized img {
    width: 200vw;
    max-width: none;
  }
  main.access .access .image.full-sized + .full-sized {
    margin: 0 0 40px;
  }
  main.access .access .image.full-sized + .full-sized p {
    font-size: 18px;
    line-height: 30px;
    margin: 0 0 20px;
  }
}
main.access .access .near {
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.access .access .near {
    margin: 0 0 60px;
  }
}
main.access .access .near .place-images {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 13px;
  width: 100%;
  padding: 0 60px 30px;
}
main.access .access .near .place-images::before {
  right: 50px;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-images {
    display: flex;
    flex-flow: row wrap;
    gap: 10px;
    padding: 0;
  }
  main.access .access .near .place-images::before {
    bottom: -20px;
    right: 0px;
  }
}
main.access .access .near .place-image {
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-end;
  gap: 13px;
  padding: 0 0 13px;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-image {
    gap: 10px;
    width: calc((100% - 10px) / 2);
    padding: 0 0 10px;
  }
}
main.access .access .near .place-image.wide {
  grid-column: span 2;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-image.wide {
    grid-column: auto;
  }
}
main.access .access .near .place-image .image {
  width: 100%;
  height: 100%;
  max-height: 230px;
}
main.access .access .near .place-image .image img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-image .image {
    max-height: none;
    aspect-ratio: 23/18;
  }
  main.access .access .near .place-image .image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
main.access .access .near .place-image p {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 28px;
  text-align: center;
}
main.access .access .near .place-image p .name {
  font-size: 22px;
}
main.access .access .near .place-image p .time {
  font-size: 30px;
}
main.access .access .near .place-image p .note {
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-image p {
    font-size: 14px;
  }
  main.access .access .near .place-image p .name {
    font-size: 16px;
  }
  main.access .access .near .place-image p .time {
    font-size: 24px;
  }
  main.access .access .near .place-image p .note {
    font-size: 10px;
  }
}
main.access .access .near .place-image.wide p {
  font-size: 20px;
  line-height: 32px;
  color: #938300;
}
main.access .access .near .place-image.wide p .name {
  font-size: 28px;
}
main.access .access .near .place-image.wide p .time {
  font-size: 34px;
}
main.access .access .near .place-image.wide p .note {
  font-size: 14px;
}
@media screen and (max-width: 850px) {
  main.access .access .near .place-image.wide p {
    font-size: 16px;
  }
  main.access .access .near .place-image.wide p .name {
    font-size: 18px;
  }
  main.access .access .near .place-image.wide p .time {
    font-size: 26px;
  }
  main.access .access .near .place-image.wide p .note {
    font-size: 12px;
  }
}
main.access .access .schedule {
  display: flex;
  flex-flow: row nowrap;
  gap: 65px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule {
    flex-flow: column nowrap;
    gap: 20px;
  }
}
main.access .access .schedule__menu {
  display: none;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule__menu {
    display: flex;
    flex-flow: row nowrap;
    gap: 10px;
    width: 100%;
  }
}
main.access .access .schedule .table {
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule .table {
    opacity: 1;
    transition: opacity 0.4s 0.2s ease;
  }
  main.access .access .schedule .table.disabled {
    display: none;
    opacity: 0;
  }
}
main.access .access .schedule .table .image {
  width: 100%;
  margin: 0 0 20px;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule .table .image {
    margin: 0 0 10px;
  }
}
main.access .access .schedule .table p {
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: 0;
  text-indent: -1em;
  margin-left: 1em;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule .table p {
    font-size: 10px;
  }
}
main.access .access .schedule .table__title {
  border-radius: 3px;
  background-color: #699495;
  padding: 10px 0;
  margin: 0 0 20px;
}
main.access .access .schedule .table__title > p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 23px;
  text-align: center;
  color: white;
}
@media screen and (max-width: 850px) {
  main.access .access .schedule .table__title {
    border: 1px solid #699495;
    cursor: pointer;
    width: 100%;
    margin: 0;
    transition: 0.5s 0.1s ease;
    transition-property: backround-color;
  }
  main.access .access .schedule .table__title > p {
    font-size: 12px;
  }
  main.access .access .schedule .table__title.disabled {
    background-color: white;
  }
  main.access .access .schedule .table__title.disabled > p {
    color: #699495;
  }
}
main.access .bus .mv {
  background-image: url("../img/access/bg_bus.png");
}
main.access .bus .detail__text {
  position: relative;
  text-align: center;
}
main.access .bus .detail__text img {
  width: calc(100% - 40px);
  max-width: 277px;
}
main.access .bus .detail__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 450;
  font-size: 22px;
  letter-spacing: 0.15em;
  color: #000;
  margin: 0 0 84px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__text p {
    font-size: 18px;
    margin: 0 0 60px;
  }
}
main.access .bus .detail__list .detail-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 30px;
       column-gap: 30px;
  row-gap: 35px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-items {
    grid-template-columns: 1fr;
    -moz-column-gap: 20px;
         column-gap: 20px;
    row-gap: 20px;
  }
}
main.access .bus .detail__list .detail-item {
  background-color: #f5f5f5;
  width: 100%;
  height: auto;
  aspect-ratio: 451/544;
  padding: 22px 35px 0;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item {
    aspect-ratio: auto;
    padding: 20px 20px 25px;
  }
}
main.access .bus .detail__list .detail-item__ribbon {
  background-image: url("../img/access/img_bus-ribbon.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  width: 319px;
  height: 45px;
  margin: 0 0 0 -45px;
}
main.access .bus .detail__list .detail-item__ribbon p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #fff;
  padding: 0 0 8px 20px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__ribbon {
    margin: 0 0 0 -30px;
  }
}
main.access .bus .detail__list .detail-item__title {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 30px;
  letter-spacing: 0.1em;
  margin: 15px 0 25px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__title {
    font-size: 20px;
    line-height: 26px;
  }
}
main.access .bus .detail__list .detail-item__image {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 380/270;
}
main.access .bus .detail__list .detail-item__image img {
  width: 100%;
}
main.access .bus .detail__list .detail-item__image p {
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 0 10px 10px 0;
  font-family: "Noto Serif JP", serif;
  font-size: 25px;
  line-height: 47px;
  letter-spacing: 0.1em;
  color: #fff;
}
main.access .bus .detail__list .detail-item__image p span {
  font-size: 1.7em;
  margin: 0 0.1em;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__image p {
    font-size: 18px;
    line-height: 38px;
  }
}
main.access .bus .detail__list .detail-item__image.dummy {
  background-color: #d1d1d1;
  background-image: linear-gradient(to bottom, transparent 70%, rgba(0, 0, 0, 0.3764705882));
}
main.access .bus .detail__list .detail-item__image.dummy::after {
  content: "photo";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: "Baskervville", serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0.08em;
}
main.access .bus .detail__list .detail-item__text {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  margin: -15px 0 0;
}
main.access .bus .detail__list .detail-item__text .text {
  width: -moz-fit-content;
  width: fit-content;
}
main.access .bus .detail__list .detail-item__text .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.15em;
  text-align: center;
}
main.access .bus .detail__list .detail-item__text .text p span {
  font-size: 1.5em;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__text .text p {
    font-size: 12px;
  }
}
main.access .bus .detail__list .detail-item:has(.detail-item__illust) {
  position: relative;
}
main.access .bus .detail__list .detail-item__illust {
  position: absolute;
  filter: brightness(0) saturate(100%) invert(77%) sepia(6%) saturate(331%) hue-rotate(12deg) brightness(89%) contrast(83%);
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__illust {
    display: none;
  }
}
main.access .bus .detail__list .detail-item__illust.illust-01 {
  top: 35px;
  right: -160px;
  width: 111px;
  height: 55px;
}
main.access .bus .detail__list .detail-item__illust.illust-02 {
  bottom: -140px;
  left: -140px;
  width: 82px;
  height: 100px;
  rotate: -30deg;
}
main.access .bus .detail__list .detail-item__illust.illust-03 {
  bottom: -70px;
  right: -120px;
  width: 80px;
  height: auto;
  aspect-ratio: 69/58;
  rotate: 20deg;
}
main.access .bus .detail__list .detail-item.item01 .detail-item__image {
  position: relative;
}
main.access .bus .detail__list .detail-item.item01 .detail-item__image .icon {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
main.access .bus .detail__list .detail-item.item01 .detail-item__text .text01 {
  position: relative;
  background-image: url("../img/access/img_place-deco1.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 170px;
  height: 120px;
  padding: 10px 0 0;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item01 .detail-item__text .text01 {
    width: 140px;
    height: auto;
    aspect-ratio: 17/12;
  }
}
main.access .bus .detail__list .detail-item.item01 .detail-item__text .text01 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item01 .detail-item__text .text02 {
  position: relative;
  background-image: url("../img/access/img_place-deco2.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 222px;
  height: 118px;
  padding: 10px 0 0;
  margin: 10px 0 0 -10px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item01 .detail-item__text .text02 {
    width: 150px;
    height: auto;
    aspect-ratio: 222/118;
  }
}
main.access .bus .detail__list .detail-item.item01 .detail-item__text .text02 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item02 .detail-item__image {
  position: relative;
}
main.access .bus .detail__list .detail-item.item02 .detail-item__image .icon {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
main.access .bus .detail__list .detail-item.item02 .detail-item__text .text01 {
  position: relative;
  background-image: url("../img/access/img_place-deco3.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 193px;
  height: 122px;
  padding: 10px 0 0;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item02 .detail-item__text .text01 {
    width: 140px;
    height: auto;
    aspect-ratio: 193/122;
  }
}
main.access .bus .detail__list .detail-item.item02 .detail-item__text .text01 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item02 .detail-item__text .text02 {
  position: relative;
  background-image: url("../img/access/img_place-deco4.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 195px;
  height: 102px;
  padding: 10px 0 0;
  margin: 10px 0 0 -10px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item02 .detail-item__text .text02 {
    width: 150px;
    height: auto;
    aspect-ratio: 195/102;
  }
}
main.access .bus .detail__list .detail-item.item02 .detail-item__text .text02 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item03 .detail-item__image {
  position: relative;
}
main.access .bus .detail__list .detail-item.item03 .detail-item__image .icon {
  position: absolute;
  top: 25px;
  right: 0;
  transform: translate(0, -100%);
}
main.access .bus .detail__list .detail-item.item03 .detail-item__text {
  margin: -5px 0 0;
}
main.access .bus .detail__list .detail-item.item03 .detail-item__text .text01 {
  position: relative;
  background-image: url("../img/access/img_place-deco5.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 198px;
  height: 117px;
  padding: 10px 0 0;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item03 .detail-item__text .text01 {
    width: 140px;
    height: auto;
    aspect-ratio: 198/117;
  }
}
main.access .bus .detail__list .detail-item.item03 .detail-item__text .text01 img {
  position: absolute;
  bottom: 0;
  left: 30px;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item03 .detail-item__text .text02 {
  position: relative;
  background-image: url("../img/access/img_place-deco6.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 198px;
  height: 115px;
  padding: 10px 0 0;
  margin: 10px 0 0 -10px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item03 .detail-item__text .text02 {
    width: 150px;
    height: auto;
    aspect-ratio: 198/115;
  }
}
main.access .bus .detail__list .detail-item.item03 .detail-item__text .text02 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item04 .detail-item__image {
  position: relative;
}
main.access .bus .detail__list .detail-item.item04 .detail-item__image img {
  height: 100%;
}
main.access .bus .detail__list .detail-item.item04 .detail-item__image .icon {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text {
  margin: -5px 0 0;
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text .text01 {
  position: relative;
  background-image: url("../img/access/img_place-deco7.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto;
  aspect-ratio: 575/145;
  padding: 10px 0 0;
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text .text01 p {
  font-size: 16px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item04 .detail-item__text .text01 p {
    font-size: 12px;
  }
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text .text01 img {
  position: absolute;
  bottom: 0;
  left: 30px;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text .text02 {
  position: relative;
  background-image: url("../img/access/img_place-deco6.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 198px;
  height: 115px;
  padding: 10px 0 0;
  margin: 10px 0 0 -10px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item.item04 .detail-item__text .text02 {
    width: 150px;
    height: auto;
    aspect-ratio: 198/115;
  }
}
main.access .bus .detail__list .detail-item.item04 .detail-item__text .text02 img {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 0);
}
main.access .bus .detail__list .detail-item__caption {
  font-size: 14px;
  font-family: "Noto Serif JP", serif;
  padding: 20px 0 10px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__list .detail-item__caption {
    font-size: 12px;
    padding: 20px 0 0;
  }
}
main.access .bus .detail__lines {
  border: 1px solid #a09755;
  background-color: #f5f2ea;
  width: 100%;
  padding: 0 0 40px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__lines {
    padding: 0 0 20px;
  }
}
main.access .bus .detail__lines + .detail__lines {
  margin: 20px 0 0;
}
main.access .bus .detail__lines h3 {
  background-color: #a09755;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 26px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  color: white;
  padding: 20px 0;
  margin-bottom: 35px;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__lines h3 {
    font-size: 22px;
  }
}
main.access .bus .detail__lines .image {
  width: calc(100% - 40px);
  max-width: 700px;
  margin: 0 auto 55px;
}
main.access .bus .detail__lines .image img {
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__lines .image {
    margin: 0 auto 30px;
  }
}
main.access .bus .detail__lines .note {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  gap: 40px;
}
main.access .bus .detail__lines .note span {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 35px;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 850px) {
  main.access .bus .detail__lines .note {
    gap: 20px;
  }
  main.access .bus .detail__lines .note span {
    font-size: 12px;
    line-height: 1.4;
  }
}
main.access .bus .limousine {
  width: 100%;
}
main.access .bus .limousine__inner {
  display: flex;
  flex-flow: row nowrap;
  gap: 125px;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__inner {
    flex-flow: column nowrap;
    gap: 60px;
  }
}
main.access .bus .limousine__image {
  width: 40%;
  height: 560px;
}
main.access .bus .limousine__image::before {
  color: white;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__image {
    width: 100%;
    height: 200px;
  }
}
main.access .bus .limousine__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.access .bus .limousine__detail {
  flex-shrink: 0;
  flex-grow: 0;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  width: 60%;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail {
    width: 100%;
    padding: 0 20px;
  }
}
main.access .bus .limousine__detail .title {
  margin: 0 0 50px;
}
main.access .bus .limousine__detail .title .en {
  font-family: "Baskervville", serif;
  font-size: 28px;
  line-height: 35px;
  letter-spacing: 0.2em;
  color: #a39a56;
  margin: 0 0 20px;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .title .en {
    font-size: 24px;
    line-height: 30px;
  }
}
main.access .bus .limousine__detail .title .jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .title .jp {
    font-size: 18px;
    line-height: 30px;
  }
}
main.access .bus .limousine__detail .narita-line {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  height: 240px;
  padding: 10px 0 10px 60px;
  margin: 0 0 60px;
}
main.access .bus .limousine__detail .narita-line::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  background-color: #a39a56;
  width: 2px;
  height: 240px;
}
main.access .bus .limousine__detail .narita-line p {
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .narita-line p {
    font-size: 18px;
  }
}
main.access .bus .limousine__detail .narita-line p:not(.bus)::before,
main.access .bus .limousine__detail .narita-line .airport::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -39px;
  transform: translateY(-50%);
  background-color: #fff;
  border: 1px solid #a39a56;
  border-radius: 50%;
  width: 15px;
  height: 15px;
}
main.access .bus .limousine__detail .narita-line .bus {
  font-size: 27px;
  color: #a39a56;
  padding: 0 0 4px 60px;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .narita-line .bus {
    font-size: 20px;
  }
}
main.access .bus .limousine__detail .narita-line .bus span {
  font-size: 1.8em;
  font-weight: 600;
  margin: 0 0.1em;
}
main.access .bus .limousine__detail .narita-line .bus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
  background-image: url("../img/access/icon_bus.svg");
  width: 37px;
  height: 43px;
}
main.access .bus .limousine__detail .narita-line .airport {
  padding: 0 0 2px 71px;
}
main.access .bus .limousine__detail .narita-line .airport::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background-image: url("../img/access/icon_plane.svg");
  width: 58px;
  height: 23px;
}
main.access .bus .limousine__detail .details {
  display: flex;
  flex-flow: row nowrap;
  gap: 13px;
  width: 100%;
  max-width: 720px;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .details {
    flex-flow: column nowrap;
  }
}
main.access .bus .limousine__detail .details .schedule,
main.access .bus .limousine__detail .details .price {
  background-color: #f2eee5;
  border: 1px solid #a09755;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 20px;
}
main.access .bus .limousine__detail .details .schedule {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #a39a56;
}
main.access .bus .limousine__detail .details .schedule span:not(.strong) {
  font-size: 1.2em;
}
main.access .bus .limousine__detail .details .schedule .strong {
  font-size: 1.5em;
  font-weight: 600;
  margin: 0 0.05em;
}
main.access .bus .limousine__detail .details .price {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #a39a56;
}
main.access .bus .limousine__detail .details .price p:first-child {
  font-size: 16px;
  margin: 0 0 10px;
}
main.access .bus .limousine__detail .details .price p:nth-child(2) {
  font-size: 20px;
}
main.access .bus .limousine__detail .details .price p:nth-child(2) span {
  font-size: 1.3em;
  font-weight: 600;
  margin: 0 0.05em;
}
@media screen and (max-width: 850px) {
  main.access .bus .limousine__detail .details .price p:first-child {
    font-size: 14px;
  }
  main.access .bus .limousine__detail .details .price p:nth-child(2) {
    font-size: 18px;
  }
}
@media screen and (max-width: 850px) {
  main.access .car {
    margin: 0 0 60px;
  }
}
main.access .car .mv {
  background-image: url("../img/access/bg_car.png");
  margin: 0 0 135px;
}
main.access .car .detail__text {
  flex-shrink: 0;
  position: relative;
  margin: 0 0 75px;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__text {
    margin: 0 0 40px;
  }
}
main.access .car .detail__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.15em;
}
main.access .car .detail__text p:first-child {
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2em;
  margin: 0 0 40px;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__text p {
    font-size: 15px;
  }
  main.access .car .detail__text p:first-child {
    font-size: 20px;
    line-height: 30px;
    margin: 0 0 20px;
  }
}
main.access .car .detail__text img {
  position: absolute;
  top: -100px;
  right: -180px;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__text img {
    top: 0;
    right: auto;
    left: 0;
    translate: 0 -100px 0;
  }
}
main.access .car .detail__bnr {
  width: 100%;
  margin: 0 0 90px;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__bnr {
    margin: 0 0 40px;
  }
}
main.access .car .detail__bnr img {
  width: 100%;
}
main.access .car .detail__list .place-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  padding: 0 0 20px;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__list .place-items {
    gap: 10px;
  }
}
main.access .car .detail__list .place-item {
  width: 100%;
}
main.access .car .detail__list .place-item .name {
  border-top: 1px solid #a39a56;
  border-bottom: 1px solid #a39a56;
  background-color: #f8f8f8;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 21px;
  line-height: 1;
  letter-spacing: 0.15em;
  text-align: center;
  color: #a39a56;
  padding: 13px 0;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__list .place-item .name {
    display: flex;
    align-items: center;
    justify-content: center;
    height: -moz-fit-content;
    height: fit-content;
    min-height: 62px;
    font-size: 14px;
    line-height: 1.4;
    padding: 10px 0;
  }
}
main.access .car .detail__list .place-item .image {
  position: relative;
  width: 100%;
  aspect-ratio: 442/243;
}
main.access .car .detail__list .place-item .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.access .car .detail__list .place-item .image p {
  position: absolute;
  bottom: 0;
  right: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 30px;
  line-height: 30px;
  letter-spacing: 0.04em;
  text-align: right;
  color: #fff;
  padding: 0 10px 15px 0;
  filter: drop-shadow(1px 1px 5px black);
}
main.access .car .detail__list .place-item .image p .dist {
  font-size: 1.6em;
  font-weight: 500;
  margin: 0 0.1em;
}
main.access .car .detail__list .place-item .image p span {
  font-size: 0.6em;
}
@media screen and (max-width: 850px) {
  main.access .car .detail__list .place-item .image p {
    font-size: 16px;
    line-height: 16px;
    text-align: right;
    padding: 0 0.2em 0.8em 0;
    filter: drop-shadow(1px 1px 2px #000);
  }
  main.access .car .detail__list .place-item .image p .dist {
    font-size: 1.4em;
  }
}
main.access .taxi .mv {
  background-image: url("../img/access/bg_taxi.png");
}
main.access .taxi .detail__text {
  position: relative;
  text-align: center;
}
main.access .taxi .detail__text img {
  width: calc(100% - 40px);
  max-width: 190px;
}
main.access .taxi .detail__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 450;
  font-size: 22px;
  letter-spacing: 0.15em;
  color: #000;
  margin: 0 0 84px;
}
@media screen and (max-width: 850px) {
  main.access .taxi .detail__text p {
    font-size: 18px;
    margin: 0 0 60px;
  }
}
main.access .taxi .detail__place .place-items {
  display: flex;
  flex-flow: row nowrap;
  gap: 10px;
}
@media screen and (max-width: 850px) {
  main.access .taxi .detail__place .place-items {
    flex-flow: column nowrap;
  }
}
main.access .taxi .detail__place .place-item {
  width: 100%;
  margin: 0 0 30px;
}
main.access .taxi .detail__place .place-item .image {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 447/300;
  margin: 0 0 10px;
}
main.access .taxi .detail__place .place-item .image::before {
  color: white;
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.8)) drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.8));
  padding-bottom: 15px;
}
main.access .taxi .detail__place .place-item .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.access .taxi .detail__place .place-item .image p {
  position: absolute;
  top: 15px;
  left: 15px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.15em;
  color: #fff;
  filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.2509803922));
}
main.access .taxi .detail__place .place-item .image p span {
  font-size: 0.5em;
  padding: 0 0 0 3px;
}
@media screen and (max-width: 850px) {
  main.access .taxi .detail__place .place-item .image p {
    font-size: 26px;
  }
}
main.access .taxi .detail__place .place-item .price {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  color: #a39a56;
}
main.access .taxi .detail__place .place-item .price span:not(.price) {
  font-size: 1.2em;
  margin: 0 0.2em 0 0;
}
main.access .taxi .detail__place .place-item .price .price {
  font-size: 1.5em;
  font-weight: 600;
  margin: 0 0.1em;
}
main.access .taxi .detail__place .note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 0.06em;
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.access .taxi .detail__place .note {
    text-align: left;
  }
}

main.design .mv {
  background-image: url("../img/design/bg_facade.png");
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 364px;
}
main.design .mv::before {
  color: #fff;
}
main.design .mv__inner {
  display: flex;
  align-items: flex-end;
  width: 100%;
  height: 100%;
  padding: 0 0 60px;
}
main.design .mv__inner h2 {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
main.design section {
  width: 100%;
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.design section {
    margin: 0 0 70px;
  }
}
main.design section .inner {
  max-width: 1170px;
  padding: 0 60px;
}
main.design section .inner + .inner {
  margin: 110px auto 120px;
}
@media screen and (max-width: 850px) {
  main.design section .inner + .inner {
    margin: 60px auto 70px;
  }
}
main.design section .inner:has(.detail__lines) {
  padding: 0 40px;
}
@media screen and (max-width: 850px) {
  main.design section .inner:has(.detail__lines) {
    padding: 0 20px;
  }
}
@media screen and (max-width: 850px) {
  main.design section .inner {
    padding: 0 20px;
  }
}
main.design section .inner .section-ttl {
  width: 100%;
}
main.design section .inner .section-ttl h3 {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 35px;
  letter-spacing: 0.2em;
  color: #a3805a;
  margin: 0 auto;
}
main.design section .inner .section-ttl h3::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #a3805a;
  width: 43px;
  height: 2px;
}
@media screen and (max-width: 850px) {
  main.design section .inner .section-ttl {
    padding: 0;
    margin: 0 0 20px;
  }
  main.design section .inner .section-ttl h3 {
    font-size: 26px;
    line-height: 1.8;
  }
}
main.design section .inner .section-ttl + .detail {
  margin-top: 40px;
}
main.design section .inner .detail {
  width: 100%;
}
main.design section .inner .detail__ttl {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  margin: 0 0 40px;
}
main.design section .inner .detail__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.1em;
  text-align: center;
}
main.design section .image.full-sized {
  width: 100%;
  padding: 0 70px;
}
@media screen and (max-width: 850px) {
  main.design section .image.full-sized {
    padding: 0;
  }
}
main.design section .image.full-sized img {
  width: 100%;
}
main.design .facade {
  width: 100%;
  height: auto;
  aspect-ratio: 1920/1040;
  margin: 0 auto;
  background-image: linear-gradient(to bottom, transparent 80%, white), url("../img/design/mv_bg.png");
  background-size: cover, 100% auto;
  background-position: center, bottom center;
  background-repeat: no-repeat;
  padding: 75px 0 0;
}
@media screen and (max-width: 1900px) {
  main.design .facade {
    aspect-ratio: 1920/1060;
  }
}
@media screen and (max-width: 1800px) {
  main.design .facade {
    aspect-ratio: 1920/1100;
  }
}
@media screen and (max-width: 1600px) {
  main.design .facade {
    aspect-ratio: 1920/1180;
  }
}
@media screen and (max-width: 1400px) {
  main.design .facade {
    aspect-ratio: 1920/1250;
  }
}
@media screen and (max-width: 1200px) {
  main.design .facade {
    aspect-ratio: 1920/1300;
  }
}
@media screen and (max-width: 1000px) {
  main.design .facade {
    aspect-ratio: 1920/1350;
  }
}
@media screen and (max-width: 850px) {
  main.design .facade {
    background-image: linear-gradient(to bottom, transparent 90%, white), url("../img/top/mv_bg-sp.png");
    background-size: cover, 100% auto;
    background-position: center, bottom center;
    padding: 60px 0 260px;
  }
}
main.design .facade.img-caption::before {
  bottom: 76px;
}
@media screen and (max-width: 1000px) {
  main.design .facade.img-caption::before {
    bottom: 60px;
  }
}
main.design .designer {
  margin: 0 0 95px;
}
main.design .designer__detail {
  background-image: linear-gradient(145deg, transparent, rgba(255, 255, 255, 0.9) 50%), url(../img/top/bg_topinfo.png);
  background-size: cover;
  background-position: center;
  width: 100%;
  max-width: 960px;
  padding: 60px 70px;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail {
    padding: 40px 20px;
  }
}
main.design .designer__detail .profile {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 60px;
  margin: 0 0 40px;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .profile {
    flex-flow: column nowrap;
    align-items: flex-start;
    gap: 20px;
  }
}
main.design .designer__detail .profile__image {
  width: 100%;
  max-width: 220px;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .profile__image {
    width: 50%;
  }
}
main.design .designer__detail .profile__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.design .designer__detail .profile__detail {
  display: flex;
  flex-flow: column nowrap;
}
main.design .designer__detail .profile__detail .section-ttl {
  margin: 0 0 30px;
}
main.design .designer__detail .profile__detail .section-ttl h3 {
  margin: 0;
}
main.design .designer__detail .profile__detail .section-ttl h3::after {
  left: 0;
  transform: none;
}
main.design .designer__detail .profile__detail .role {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0.06em;
  margin: 0 0 15px;
}
main.design .designer__detail .profile__detail .name__en {
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.06em;
  margin: 0 0 5px;
}
main.design .designer__detail .profile__detail .name__jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 30px;
  letter-spacing: 0.06em;
}
main.design .designer__detail .profile__detail .name__jp span {
  font-size: 0.6em;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .profile__detail .name__jp span {
    font-size: 0.7em;
  }
}
main.design .designer__detail .profile__detail .detail {
  position: relative;
  width: 100%;
  margin: 30px 0 0;
}
main.design .designer__detail .profile__detail .detail span.title {
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: 0.1em;
  color: #919191;
}
main.design .designer__detail .profile__detail .detail p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 21px;
  letter-spacing: 0.12em;
}
main.design .designer__detail .interview {
  position: relative;
  background-color: white;
  border: 1px solid #a3805a;
  width: 100%;
  padding: 35px 55px 40px;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .interview {
    padding: 70px 20px 80px;
  }
}
main.design .designer__detail .interview .side {
  position: absolute;
  top: 10px;
  left: -10px;
  width: 200px;
}
main.design .designer__detail .interview .text {
  width: 100%;
}
main.design .designer__detail .interview .text p.title {
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #a3805a;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .interview .text p.title {
    font-size: 16px;
  }
}
main.design .designer__detail .interview .text p.subtitle {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 16.5px;
  line-height: 24px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #000;
  margin: 20px 0 0;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .interview .text p.subtitle {
    font-size: 13px;
    line-height: 20px;
    margin: 15px 0 0;
  }
}
main.design .designer__detail .interview .text p.detail {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 28px;
  letter-spacing: 0.08em;
  text-align: left;
  color: #000;
  margin: 20px 0 0;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .interview .text p.detail {
    font-size: 12px;
    line-height: 20px;
    margin: 15px 0 0;
  }
}
main.design .designer__detail .interview .more {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 180px;
  height: 40px;
}
@media screen and (max-width: 850px) {
  main.design .designer__detail .interview .more {
    width: 100%;
    height: 60px;
  }
}
main.design .designer__detail .interview .more a {
  display: block;
  width: 100%;
  height: 100%;
}
main.design .designer__detail .interview .more button {
  position: relative;
  border: none;
  background: none;
  background-color: #a3805a;
  width: 100%;
  height: 100%;
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.06em;
  color: white;
}
main.design .designer__detail .interview .more button:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background: url("../img/common/icon_arrow1.svg") no-repeat;
  background-size: cover;
  background-position: center;
  width: 8px;
  aspect-ratio: 9/14;
}
main.design .designer__folio {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-end;
  gap: 160px;
  width: 100%;
  margin: -40px 0 90px;
}
@media screen and (max-width: 850px) {
  main.design .designer__folio {
    flex-flow: column nowrap;
    gap: 20px;
    margin: 0 0 60px;
  }
}
main.design .designer__folio .sub-ttl {
  position: relative;
  background-image: radial-gradient(circle, #bebebe, #7a7a7a);
  -webkit-background-clip: text;
          background-clip: text;
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: 0.06em;
  color: transparent;
  margin: 90px 0 0;
}
@media screen and (max-width: 850px) {
  main.design .designer__folio .sub-ttl {
    margin: 0 auto;
  }
}
main.design .designer__folio .sub-ttl::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(100% + 45px);
  transform: translateY(-50%);
  background-color: #000;
  width: 120px;
  height: 1px;
}
@media screen and (max-width: 850px) {
  main.design .designer__folio .sub-ttl::after {
    top: 100%;
    left: 50%;
    transform: translate(-50%, 100%);
  }
}
main.design .designer__folio .work-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  width: 100%;
  max-width: 630px;
}
@media screen and (max-width: 850px) {
  main.design .designer__folio .work-items {
    gap: 5px;
  }
}
main.design .designer__folio .work-item {
  width: 100%;
  aspect-ratio: 275/180;
}
main.design .designer__folio .work-item .image {
  position: relative;
  width: 100%;
  height: 100%;
}
main.design .designer__folio .work-item .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.design .designer__folio .work-item .image:not(:has(img)) {
  background-color: #989898;
}
main.design .designer__folio .work-item .image:not(:has(img))::after {
  content: "photo";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 20px;
  letter-spacing: 0.15em;
  color: white;
}
main.design .designer__folio .work-item .image::before {
  background-color: rgba(0, 0, 0, 0.4);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  color: white;
}
@media screen and (max-width: 850px) {
  main.design .designer__folio .work-item .image::before {
    font-size: 10px;
    line-height: 1.44;
  }
}
main.design .designer__material {
  background-image: url("../img/design/bg_designer-material.jpg");
  background-size: cover;
  background-position: top center;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 40px;
  width: 100%;
  padding: 50px;
}
@media screen and (max-width: 850px) {
  main.design .designer__material {
    flex-flow: column nowrap;
  }
}
main.design .designer__material .image {
  width: 100%;
  aspect-ratio: 3/2;
}
main.design .designer__material .text {
  width: 100%;
}
main.design .designer__material .text .section-ttl {
  margin: 0 0 40px;
}
main.design .designer__material .text .section-ttl h3 {
  color: white;
  margin: 0;
}
main.design .designer__material .text .section-ttl h3::after {
  left: 0;
  transform: none;
  background-color: white;
}
main.design .designer__material .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: white;
}
main.design .designer__interview {
  pointer-events: none;
  overflow-x: hidden;
  overflow-y: scroll;
  z-index: 10;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  transition: opacity 0.4s ease;
}
main.design .designer__interview.opened {
  pointer-events: all;
  opacity: 1;
}
main.design .designer__interview::before {
  content: "";
  z-index: -1;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.6);
  width: 100%;
  height: 100%;
}
main.design .designer__interview .interview-inner {
  background-color: #fff;
  background-image: url("../img/design/bg_interview-ptn-top.png"), url("../img/design/bg_interview-ptn.png");
  background-size: 100% auto, cover;
  background-position: top center, top center;
  background-repeat: no-repeat, repeat-y;
  width: calc(100% - 40px);
  max-width: 1050px;
  padding: 70px 80px 120px;
  margin: 200px auto 120px;
  border: 1px solid #a3805a;
  box-shadow: 1px 2px 20px rgba(0, 0, 0, 0.3);
  position: relative;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-inner {
    margin: 80px auto 120px;
    padding: 30px 20px 40px;
  }
}
main.design .designer__interview .interview-title {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 25px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #a3805a;
  margin-bottom: 80px;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-title {
    margin-bottom: 30px;
  }
}
main.design .designer__interview .wrapper {
  display: flex;
  flex-flow: row nowrap;
  gap: 40px;
  margin-bottom: 120px;
}
main.design .designer__interview .wrapper:last-child {
  margin-bottom: 0;
}
main.design .designer__interview .wrapper.flex-reverse {
  flex-flow: row-reverse nowrap;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .wrapper {
    flex-flow: column nowrap;
    gap: 30px;
    margin-bottom: 50px;
  }
  main.design .designer__interview .wrapper.flex-reverse {
    flex-flow: column nowrap;
  }
}
main.design .designer__interview .wrapper .profile {
  display: flex;
  flex-flow: column nowrap;
  align-self: center;
  width: 100%;
  max-width: 220px;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .wrapper .profile {
    align-self: center;
  }
}
main.design .designer__interview .wrapper .profile > .image {
  position: relative;
  padding-right: 20px;
}
main.design .designer__interview .wrapper .profile > .image::after {
  content: "DESIGNER";
  position: absolute;
  top: 0;
  right: 20px;
  font-family: "Baskervville", serif;
  font-size: 18px;
  line-height: 18px;
  letter-spacing: 0.06em;
  color: #94afd3;
  writing-mode: vertical-rl;
}
main.design .designer__interview .wrapper .profile .name {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.08em;
}
main.design .designer__interview .wrapper .profile .name__en {
  font-size: 11px;
  line-height: 20px;
}
main.design .designer__interview .wrapper .profile .name__jp {
  font-size: 15px;
  line-height: 25px;
}
main.design .designer__interview .wrapper .image {
  width: 100%;
}
main.design .designer__interview .wrapper .image.column {
  flex-shrink: 0;
  display: flex;
  flex-flow: column nowrap;
  gap: 10px;
  max-width: 300px;
}
main.design .designer__interview .wrapper .image figure::before {
  color: white;
}
main.design .designer__interview .wrapper .image img {
  display: block;
  width: 100%;
  padding-bottom: 24px;
}
main.design .designer__interview .wrapper .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .wrapper .text p {
    font-size: 18px;
    line-height: 1.6;
  }
}
main.design .designer__interview .wrapper .text p + p {
  font-weight: 500;
  font-size: 15px;
  line-height: 35px;
  letter-spacing: 0.08em;
  margin-top: 25px;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .wrapper .text p + p {
    font-size: 14px;
    line-height: 1.8;
  }
}
main.design .designer__interview .interview-entrance {
  margin-bottom: 120px;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-entrance {
    margin-bottom: 50px;
  }
}
main.design .designer__interview .interview-entrance .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  margin-bottom: 45px;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-entrance .title {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.1em;
    margin-bottom: 30px;
  }
}
main.design .designer__interview .interview-entrance > .image {
  width: 100%;
  margin-bottom: 30px;
}
main.design .designer__interview .interview-entrance > .image::before {
  color: white;
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.8)) drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.8));
}
main.design .designer__interview .interview-entrance > .image img {
  display: block;
  width: 100%;
}
main.design .designer__interview .interview-entrance .text {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 35px;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-entrance .text {
    font-size: 14px;
    line-height: 1.8;
  }
}
main.design .designer__interview .interview-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 60px;
  height: 60px;
  background: #a3805a;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
@media screen and (max-width: 850px) {
  main.design .designer__interview .interview-close {
    width: 40px;
    height: 40px;
  }
}
main.design .designer__interview .interview-close .icon::before, main.design .designer__interview .interview-close .icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: 1px;
  background: white;
}
main.design .designer__interview .interview-close .icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
main.design .designer__interview .interview-close .icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
main.design .entrance {
  background-image: url("../img/design/bg_entrance.png");
  background-size: 100% auto;
  background-position: top center;
  background-repeat: repeat-y;
  padding: 100px 0 0;
  margin-bottom: 0;
}
main.design .entrance .inner .section-ttl h3 {
  color: white;
}
main.design .entrance .inner .section-ttl h3::after {
  background-color: white;
}
main.design .entrance .inner .detail {
  color: white;
}
main.design .entrance__image {
  width: 100%;
  margin: 80px 0 0;
}
main.design .entrance__image::before {
  color: white;
}
main.design .entrance__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.design .landscape {
  background-image: linear-gradient(to bottom, #f3eddf, #e1d5bb);
  padding: 120px 0;
}
main.design .landscape .inner .image {
  width: 100%;
  margin: 85px 0 70px;
}
@media screen and (max-width: 850px) {
  main.design .landscape .inner .image {
    margin: 55px 0 70px;
  }
}
main.design .landscape .inner .image img {
  width: 100%;
}
main.design .landscape__list .list-items {
  display: flex;
  flex-flow: row nowrap;
  gap: 12px;
}
@media screen and (max-width: 850px) {
  main.design .landscape__list .list-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}
main.design .landscape__list .list-item {
  border: 2px solid #fff;
  background-image: linear-gradient(-70deg, #f0eadd, #f6f4ec, #f0eadd);
  display: flex;
  flex-flow: column nowrap;
  width: 100%;
  padding: 16px 16px 0;
}
main.design .landscape__list .list-item__image {
  width: 100%;
  aspect-ratio: 215/196;
}
main.design .landscape__list .list-item__image img {
  width: 100%;
  height: 100%;
}
main.design .landscape__list .list-item__image::before {
  background-color: rgba(0, 0, 0, 0.3764705882);
  color: white;
  padding: 1px 5px;
}
main.design .landscape__list .list-item__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0.08em;
  margin: 20px 0;
}
main.design .landscape__list .list-item__text p + p {
  font-size: 13px;
  line-height: 23px;
  letter-spacing: 0.04em;
}
main.design .landscape__list .list-item__text p span {
  font-size: 11px;
}

body:has(.designer__interview.opened), html:has(.designer__interview.opened) {
  overflow-y: hidden;
}

/* site-map-caption を右下に表示 */
.main.design .landscape .img-caption.site-map-caption {
  position: relative;
}

/* 敷地配置イラスト（site-map-caption）だけキャプションを画像下に表示 */
.main.design .landscape .img-caption.site-map-caption::before {
  position: absolute;
  bottom: -30px;
  right: 4px;
  margin: 0;
  display: block;
  content: attr(data-caption);
  font-size: 12px;
  color: #000;
  transform: none;
}

main.location .mv {
  background-image: url("../img/location/bg_location.png");
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 364px;
}
main.location .mv::before {
  color: #fff;
}
@media screen and (max-width: 850px) {
  main.location .mv {
    margin: 0 0 30px;
  }
}
main.location .mv__inner {
  display: flex;
  align-items: flex-end;
  width: 100%;
  height: 100%;
  padding: 0 0 60px;
}
main.location .mv__inner h2 {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
main.location section {
  width: 100%;
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.location section {
    margin: 0 0 70px;
  }
}
main.location section .inner {
  max-width: 1170px;
  padding: 0 60px;
}
main.location section .inner + .inner {
  margin: 110px auto 120px;
}
@media screen and (max-width: 850px) {
  main.location section .inner + .inner {
    margin: 60px auto 70px;
  }
}
main.location section .inner:has(.detail__lines) {
  padding: 0 40px;
}
@media screen and (max-width: 850px) {
  main.location section .inner:has(.detail__lines) {
    padding: 0 20px;
  }
}
@media screen and (max-width: 850px) {
  main.location section .inner {
    padding: 0 20px;
  }
}
main.location section .inner .section-ttl {
  width: 100%;
}
main.location section .inner .section-ttl p {
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 35px;
  line-height: 60px;
  letter-spacing: 0.2em;
  color: #7a6a56;
}
main.location section .inner .section-ttl p + p {
  font-size: 28px;
}
@media screen and (max-width: 850px) {
  main.location section .inner .section-ttl p {
    font-size: 24px;
    line-height: 48px;
  }
  main.location section .inner .section-ttl p + p {
    font-size: 24px;
  }
}
@media screen and (max-width: 850px) {
  main.location section .inner .section-ttl {
    padding: 0;
    margin: 0 0 20px;
  }
}
main.location section .inner .section-ttl + .detail {
  margin-top: 40px;
}
@media screen and (max-width: 850px) {
  main.location section .inner .section-ttl + .detail {
    margin-top: 350px;
  }
}
main.location section .inner .detail {
  width: 100%;
}
main.location section .inner .detail p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 850px) {
  main.location section .inner .detail p {
    font-size: 16px;
  }
}
main.location section .image.full-sized {
  width: 100%;
  padding: 0 70px;
}
@media screen and (max-width: 850px) {
  main.location section .image.full-sized {
    padding: 0;
  }
}
main.location section .image.full-sized img {
  width: 100%;
}
main.location .intro {
  position: relative;
  background-image: url("../img/location/bg_ptn.png");
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  width: 100%;
}
main.location .intro::after {
  display: none;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background-image: url("../img/location/bg_intro-map-grad.png");
  background-size: 100% auto;
  background-position: -200px center;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
}
main.location .intro .inner {
  z-index: 2;
  position: relative;
  padding: 120px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .intro .inner {
    padding: 60px 0 0;
  }
}
main.location .intro .inner .side-ttl {
  position: absolute;
  top: 20px;
  left: 0;
  transform: translateX(-100%);
  width: 136px;
  height: 683px;
}
@media screen and (max-width: 850px) {
  main.location .intro .inner .side-ttl {
    padding: 0;
  }
}
@media screen and (max-width: 850px) {
  main.location .intro .inner .section-ttl {
    text-align: left;
  }
}
main.location .intro .inner .section-ttl p {
  width: 100%;
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .intro .inner .section-ttl p {
    text-align: left;
    padding-left: 20px;
  }
}
main.location .intro .inner .detail {
  padding-right: 10px;
}
main.location .intro .inner .detail p {
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .intro .inner .detail {
    padding-right: 0;
    padding: 0 20px;
  }
  main.location .intro .inner .detail p {
    text-align: left;
  }
}
main.location .intro__texts {
  position: absolute;
  top: 120px;
  left: 0;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.location .intro__texts {
    top: 0;
  }
}
main.location .intro__bg-map {
  width: 100%;
  aspect-ratio: 1109/780;
}
main.location .intro__bg-map::before {
  transform: translate(-130%, -220%);
}
@media screen and (max-width: 850px) {
  main.location .intro__bg-map {
    margin: 80px 0 300px;
  }
  main.location .intro__bg-map::before {
    transform: translate(0, 100%);
  }
}
main.location .intro .nearby {
  position: relative;
  border: 1px solid #a6a298;
  background-color: white;
  width: calc(100% - 120px);
  max-width: 1045px;
  box-shadow: -16.38px 11.47px 40px 0px rgba(44, 41, 33, 0.08);
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby {
    width: calc(100% - 20px);
    margin: 10px;
  }
}
main.location .intro .nearby > .note {
  position: absolute;
  bottom: 0.5em;
  right: 1em;
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
  letter-spacing: 0.04em;
}
main.location .intro .nearby__title {
  width: 100%;
  margin-left: 180px;
  margin-bottom: 45px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__title {
    margin: 20px 0;
  }
}
main.location .intro .nearby__title p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 35px;
  line-height: 60px;
  color: #7a6a56;
}
main.location .intro .nearby__title p span {
  font-size: 28px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__title p {
    font-size: 26px;
    line-height: 46px;
    text-align: center;
  }
  main.location .intro .nearby__title p span {
    font-size: 26px;
  }
}
main.location .intro .nearby__inner {
  width: 100%;
  padding: 100px 65px 60px;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner {
    padding: 0 0 20px;
  }
}
main.location .intro .nearby__inner::before {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 127px;
  height: 216px;
  background: url("../img/location/img_nearby2.png") no-repeat center/contain;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner::before {
    top: 140px;
    right: 15px;
    width: 63px;
    height: 108px;
  }
}
main.location .intro .nearby__inner .side-image {
  position: absolute;
  top: -50px;
  left: -50px;
  width: 250px;
  height: 370px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .side-image {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 3/1.1;
  }
  main.location .intro .nearby__inner .side-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
main.location .intro .nearby__inner .side-image__sub-ttl {
  position: absolute;
  top: 0;
  left: calc(100% - 55px);
  width: 270px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .side-image__sub-ttl {
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(102%) contrast(102%) drop-shadow(1px 1px 3px #000);
    width: 220px;
  }
}
main.location .intro .nearby__inner .nearby-content {
  z-index: 2;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content {
    padding: 10px 20px 0;
    margin: 0 0 30px;
  }
}
main.location .intro .nearby__inner .nearby-content .text:first-child {
  width: 75%;
  margin-left: 180px;
  margin-bottom: 50px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text:first-child {
    width: 100%;
    margin-left: 0;
    margin-bottom: 16px;
  }
}
main.location .intro .nearby__inner .nearby-content .text:nth-child(2) {
  width: 33%;
  margin-left: 45px;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text:nth-child(2) {
    width: 100%;
    margin-left: 0;
  }
}
main.location .intro .nearby__inner .nearby-content .text:nth-child(2)::before {
  content: "";
  position: absolute;
  bottom: -16px;
  left: 100%;
  width: 59px;
  height: 94px;
  background: url("../img/location/img_nearby3.png") no-repeat center/contain;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text:nth-child(2)::before {
    bottom: -100px;
    right: 0;
    left: auto;
  }
}
main.location .intro .nearby__inner .nearby-content .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text p {
    font-size: 18px;
  }
}
main.location .intro .nearby__inner .nearby-content .text p + p {
  font-size: 14px;
  line-height: 2;
  margin-top: 20px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text p + p {
    font-size: 12px;
    line-height: 1.8;
    margin-top: 20px;
  }
}
main.location .intro .nearby__inner .nearby-content .text p:not(:has(+ p)) {
  font-size: 14px;
  line-height: 2.3;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-content .text p:not(:has(+ p)) {
    font-size: 12px;
    line-height: 1.8;
  }
}
main.location .intro .nearby__inner .nearby-list {
  height: 350px;
  margin-bottom: 24px;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-list {
    height: 300px;
    margin: 0 20px 30px;
  }
}
main.location .intro .nearby__inner .nearby-list .image {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  position: absolute;
}
main.location .intro .nearby__inner .nearby-list .image img {
  display: block;
}
main.location .intro .nearby__inner .nearby-list .image:first-child {
  z-index: 2;
  width: 463px;
  top: -190px;
  right: 0;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-list .image:first-child {
    width: 188px;
    top: 0;
    right: calc(50% - 30px);
  }
}
main.location .intro .nearby__inner .nearby-list .image:nth-child(2) {
  z-index: 1;
  width: 509px;
  bottom: 0;
  left: 0;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-list .image:nth-child(2) {
    width: 157px;
    bottom: auto;
    top: 110px;
    left: 50%;
  }
}
main.location .intro .nearby__inner .nearby-list .image:last-child {
  box-shadow: none;
  z-index: 1;
  width: 362px;
  bottom: 0;
  right: 0;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-list .image:last-child {
    width: 188px;
    right: calc(50% - 30px);
  }
}
main.location .intro .nearby__inner .nearby-map {
  background-color: #f7f3e7;
  display: flex;
  flex-flow: row nowrap;
  gap: 40px;
  width: 100%;
  padding: 40px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map {
    flex-flow: column nowrap;
    width: calc(100% - 40px);
    padding: 30px 20px;
    margin: 0 auto;
  }
}
main.location .intro .nearby__inner .nearby-map .image {
  width: 100%;
  max-width: 270px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .image {
    max-width: none;
  }
}
main.location .intro .nearby__inner .nearby-map .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
main.location .intro .nearby__inner .nearby-map .image::before {
  top: 100%;
  left: 0;
  padding-left: 0;
}
main.location .intro .nearby__inner .nearby-map .text {
  width: 100%;
}
main.location .intro .nearby__inner .nearby-map .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0.1em;
}
main.location .intro .nearby__inner .nearby-map .text p + p {
  font-weight: 500;
  font-size: 13px;
  line-height: 28px;
  letter-spacing: 0.06em;
  margin: 20px 0 10px;
}
main.location .intro .nearby__inner .nearby-map .color {
  width: 100%;
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  gap: 5px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper {
    flex-flow: column nowrap;
    gap: 10px;
    margin: 0 0 20px;
  }
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper p {
  flex-grow: 0;
  flex-shrink: 0;
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Noto Serif JP", serif;
  font-size: 13.5px;
  letter-spacing: 0.04em;
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-items {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  -moz-column-gap: 10px;
       column-gap: 10px;
  row-gap: 5px;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-items {
    flex-flow: column wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
  }
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 4px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item {
    width: 100%;
  }
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item:nth-child(even) {
    width: -moz-fit-content;
    width: fit-content;
    min-width: 115.37px;
  }
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item .palette {
  background-color: var(--color);
  width: 42px;
  height: 14px;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item .palette {
    width: 24px;
    height: 10px;
  }
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item p {
  font-family: "Noto Serif JP", serif;
  font-size: 11px;
  line-height: 0.9;
}
@media screen and (max-width: 850px) {
  main.location .intro .nearby__inner .nearby-map .color .color__wrapper .color-item p {
    font-size: 12px;
  }
}
main.location .intro .nearby__inner .nearby-map .color .color__wrapper .note {
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
  letter-spacing: 0.04em;
}
main.location .approach {
  position: relative;
  margin: 0;
}
main.location .approach__note {
  z-index: 1;
  position: absolute;
  bottom: 60px;
  right: 20px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 1;
}
@media screen and (max-width: 850px) {
  main.location .approach__note {
    bottom: 25px;
    right: 10px;
  }
}
main.location .approach__title {
  z-index: 1;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
main.location .approach__title h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 35px;
  line-height: 60px;
  text-align: center;
  color: #7a6a56;
}
@media screen and (max-width: 850px) {
  main.location .approach__title h3 {
    font-size: 18px;
    line-height: 44px;
    margin-right: -0.5em;
  }
}
main.location .approach__image {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 850px) {
  main.location .approach__image {
    overflow-y: hidden;
    overflow-x: scroll;
    justify-content: flex-start;
    width: 100%;
    height: -moz-fit-content;
    height: fit-content;
    padding: 60px 0;
  }
  main.location .approach__image img {
    width: 700px;
    max-width: none;
  }
}
main.location .approach .scroll-note {
  width: 80px;
  margin: 20px 20px 0 auto;
}
main.location .approach .scroll-note img {
  display: block;
  width: 100%;
}
@keyframes icon-move {
  0%, 100% {
    translate: 0 0 0;
  }
  70% {
    translate: -10% 0 0;
  }
}
main.location .timetable {
  background-color: #f7f3e7;
  padding: 90px 0 180px;
  margin-bottom: 0;
}
@media screen and (max-width: 850px) {
  main.location .timetable {
    padding: 90px 0 40px;
  }
}
main.location .timetable .position {
  width: 100%;
}
main.location .timetable .position .sub-ttl {
  width: 246px;
  margin: 0 auto;
}
main.location .timetable .position__title {
  width: 100%;
  margin-bottom: 75px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__title {
    margin-bottom: 40px;
  }
}
main.location .timetable .position__title p {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #7a6a56;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__title p {
    font-size: 20px;
    line-height: 32px;
  }
}
main.location .timetable .position__title p + p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  margin-top: 10px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__title p + p {
    font-size: 20px;
    line-height: 32px;
  }
}
main.location .timetable .position__content {
  display: flex;
  flex-flow: row nowrap;
  gap: 45px;
  width: 100%;
  max-width: 940px;
  padding: 0 20px;
  margin: 0 auto 200px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__content {
    flex-flow: column nowrap;
    gap: 20px;
    margin: 0 auto 80px;
  }
}
main.location .timetable .position__content .image {
  position: relative;
  width: 100%;
  max-width: 370px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__content .image {
    max-width: none;
  }
}
main.location .timetable .position__content .image img {
  width: 100%;
  height: 100%;
}
main.location .timetable .position__content .image span {
  position: absolute;
  top: 100%;
  right: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
}
main.location .timetable .position__content .text {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.location .timetable .position__content .text {
    justify-content: flex-start;
    gap: 20px;
  }
}
main.location .timetable .position__content .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 33px;
}
main.location .timetable .position__content .text .detail {
  background-color: #ffffff;
  width: 100%;
  padding: 20px 30px 30px;
}
main.location .timetable .position__content .text .detail > p {
  border-bottom: 1px solid #7a6a56;
  width: 100%;
  font-weight: 600;
  font-size: 16px;
  line-height: 35px;
  letter-spacing: 0.1em;
  text-align: center;
  color: #7a6a56;
}
main.location .timetable .position__content .text .detail > p + p {
  border-bottom: none;
  font-weight: 400;
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 0.06em;
  text-align: left;
  color: #000;
  margin-top: 1em;
}
main.location .timetable .inner {
  position: relative;
}
main.location .timetable .inner .side-ttl {
  z-index: 1;
  position: absolute;
  top: 50px;
  right: -100px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .inner .side-ttl {
    right: 10px;
    width: calc(100% - 20px);
  }
}
main.location .timetable .inner .section-ttl {
  margin: 0 0 100px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .inner .section-ttl {
    margin: 0 0 60px;
  }
}
main.location .timetable .inner .section-ttl p + p {
  font-size: 24px;
  line-height: 35px;
  margin-top: 10px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .inner .section-ttl p + p {
    font-size: 18px;
    line-height: 28px;
  }
}
main.location .timetable .hasBg {
  z-index: 0;
  position: relative;
}
main.location .timetable .hasBg::before {
  content: "";
  z-index: -1;
  position: absolute;
  top: 0;
  left: calc(-50% + 400px);
  background-color: white;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 850px) {
  main.location .timetable .hasBg::before {
    left: 0;
  }
}
main.location .timetable .time {
  width: 100%;
  padding: 50px 0;
}
main.location .timetable .time__inner {
  position: relative;
  width: 100%;
  max-width: 1170px;
  padding: 0 60px 0 100px;
  margin: auto;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time__inner {
    padding: 0 20px;
  }
}
main.location .timetable .time__inner .icon {
  margin: 0 0 20px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time__inner .icon {
    margin: 0 0 10px;
  }
  main.location .timetable .time__inner .icon img {
    max-width: 140px;
  }
}
main.location .timetable .time__inner .content {
  display: flex;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time__inner .content {
    flex-flow: column nowrap;
  }
}
main.location .timetable .time__inner .content__text {
  width: 100%;
  max-width: 325px;
  margin: 40px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time__inner .content__text {
    max-width: 340px;
    margin: 0;
  }
}
main.location .timetable .time__inner .content__text p {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 35px;
  letter-spacing: 0.15em;
}
main.location .timetable .time__inner .content__text p + p {
  font-size: 14px;
  line-height: 30px;
  letter-spacing: 0.1em;
  margin-top: 15px;
}
main.location .timetable .time__inner .content__image {
  position: relative;
}
main.location .timetable .time__inner .content__image .icon {
  position: absolute;
}
main.location .timetable .time__inner .content__image .name {
  position: absolute;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0.04em;
}
main.location .timetable .time__inner .content__image .image img {
  display: block;
  width: 100%;
  max-width: none;
}
main.location .timetable .time__inner .content__image .image.img-caption::before {
  color: white;
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.8)) drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.8));
}
main.location .timetable .time.morning {
  padding: 50px 0 240px;
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning {
    padding: 40px 0 80px;
    margin: 0 0 60px;
  }
}
main.location .timetable .time.morning .content01 {
  gap: 100px;
  padding-left: 60px;
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content01 {
    gap: 40px;
    padding-left: 0;
    margin: 0 0 30px;
  }
}
main.location .timetable .time.morning .content01 .content__image .image01 {
  width: 330px;
  height: 220px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content01 .content__image .image01 {
    width: 300px;
    height: auto;
    aspect-ratio: 330/220;
    margin-left: auto;
  }
}
main.location .timetable .time.morning .content01 .content__image .image02 {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), calc(100% - 60px));
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content01 .content__image .image02 {
    position: relative;
    width: 200px;
    transform: none;
    margin: -12px 0 0 10px;
  }
}
main.location .timetable .time.morning .content01 .content__image .icon {
  top: 0;
  right: 0;
  transform: translate(calc(50% + 30px), calc(-50% - 10px));
  width: 96px;
  height: 93px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content01 .content__image .icon {
    transform: translate(0, -100%);
    width: 60px;
    height: auto;
    aspect-ratio: 96/93;
  }
}
main.location .timetable .time.morning .content01 .content__image .name {
  top: 0;
  right: 0;
  transform: translate(calc(100% + 10px), calc(100% + 30px));
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content01 .content__image .name {
    top: 130px;
    right: 120px;
  }
}
main.location .timetable .time.morning .content02 {
  flex-flow: row-reverse nowrap;
  justify-content: flex-start;
  gap: 250px;
  width: -moz-fit-content;
  width: fit-content;
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content02 {
    flex-flow: column nowrap;
    gap: 40px;
    width: 100%;
    padding-left: 0;
  }
}
main.location .timetable .time.morning .content02 .content__text {
  margin-left: auto;
}
main.location .timetable .time.morning .content02 .content__image {
  width: 100%;
}
main.location .timetable .time.morning .content02 .content__image .image01 {
  width: 330px;
  height: 220px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content02 .content__image .image01 {
    width: 300px;
    height: auto;
  }
}
main.location .timetable .time.morning .content02 .content__image .image02 {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), 50%);
  width: 200px;
  height: 200px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content02 .content__image .image02 {
    position: relative;
    transform: none;
    margin: -20px 0 0 auto;
  }
}
main.location .timetable .time.morning .content02 .content__image .image03 {
  position: absolute;
  top: 100%;
  right: 0;
  transform: translate(30px, -10px);
  width: 205px;
  height: 155px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content02 .content__image .image03 {
    position: relative;
    transform: none;
    width: 200px;
    height: auto;
    margin: -50px 0 0 30px;
  }
}
main.location .timetable .time.morning .content02 .content__image .name {
  top: 0;
  right: 0;
  transform: translate(calc(100% + 10px), 100%);
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.morning .content02 .content__image .name {
    top: 130px;
    right: auto;
    left: 50%;
    transform: translate(calc(-50% - 100px), calc(100% + 30px));
  }
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon {
    padding: 0;
    margin-bottom: 60px;
  }
}
main.location .timetable .time.afternoon .icon {
  margin-left: -40px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .icon {
    margin-left: -20px;
  }
}
main.location .timetable .time.afternoon .content {
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content {
    padding-left: 0;
  }
}
main.location .timetable .time.afternoon .content01 {
  gap: 70px;
  margin: 0 0 120px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content01 {
    gap: 90px;
    margin: 0 0 60px;
  }
}
main.location .timetable .time.afternoon .content01 .content__text {
  max-width: 360px;
  margin-top: 0;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content01 .content__text {
    max-width: none;
  }
}
main.location .timetable .time.afternoon .content01 .content__text p + p {
  word-wrap: break-word;
}
main.location .timetable .time.afternoon .content01 .content__image .image01 {
  z-index: 1;
  position: relative;
  width: 277px;
  height: 210px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content01 .content__image .image01 {
    width: 250px;
    height: auto;
    margin: 0 0 0 20px;
  }
}
main.location .timetable .time.afternoon .content01 .content__image .image02 {
  z-index: 0;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), calc(-50% + 45px));
  width: 218px;
  height: 236px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content01 .content__image .image02 {
    z-index: 1;
    position: relative;
    transform: none;
    width: 200px;
    margin: -15px 0 0 auto;
  }
}
main.location .timetable .time.afternoon .content01 .content__image .icon {
  top: 0;
  left: 0;
  transform: translate(calc(100% + 70px), calc(-100% - 20px));
  width: 112px;
  height: 70px;
}
main.location .timetable .time.afternoon .content01 .content__image .name {
  top: 100%;
  right: 0;
  transform: translate(calc(100% + 10px), -100%);
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content01 .content__image .name {
    top: 130px;
    right: auto;
    left: 50%;
    transform: translate(calc(-50% - 100px), calc(100% + 30px));
    font-size: 10px;
  }
}
main.location .timetable .time.afternoon .content02 {
  position: relative;
  flex-flow: row-reverse nowrap;
  justify-content: flex-start;
  gap: 160px;
  width: -moz-fit-content;
  width: fit-content;
  padding-bottom: 220px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 {
    flex-flow: column nowrap;
    gap: 40px;
    width: 100%;
    padding-bottom: 0;
  }
}
main.location .timetable .time.afternoon .content02 .content__text {
  max-width: 480px;
  margin-top: 20px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__text {
    max-width: none;
  }
}
main.location .timetable .time.afternoon .content02 .content__image .image01 {
  width: 312px;
  height: 208px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__image .image01 {
    width: 80%;
    height: auto;
  }
}
main.location .timetable .time.afternoon .content02 .content__image .image02 {
  position: absolute;
  top: 100%;
  right: 0;
  transform: translate(calc(50% + 10px), -80px);
  width: 216px;
  height: 156px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__image .image02 {
    position: relative;
    transform: none;
    width: 60%;
    margin: -20px 0 0 auto;
  }
}
main.location .timetable .time.afternoon .content02 .content__image .name {
  top: 100%;
  left: 0;
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__image .name {
    text-align: left;
  }
}
main.location .timetable .time.afternoon .content02 .content__single {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 333px;
  height: 190px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__single {
    position: static;
    transform: none;
    width: 100%;
    height: auto;
    aspect-ratio: 333/190;
  }
}
main.location .timetable .time.afternoon .content02 .content__single::before {
  right: auto;
  left: 0;
  bottom: -22px;
  padding-left: 0;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content02 .content__single::before {
    bottom: 0;
  }
}
main.location .timetable .time.afternoon .content02 .content__single:not(:has(img)) {
  background-color: #b6b6b6;
}
main.location .timetable .time.afternoon .content03 {
  gap: 70px;
  margin: 100px 0 60px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 {
    gap: 90px;
    margin: 40px 0 60px;
  }
}
main.location .timetable .time.afternoon .content03 .content__text {
  max-width: 360px;
  margin-top: 0;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 .content__text {
    max-width: none;
  }
}
main.location .timetable .time.afternoon .content03 .content__text p + p {
  word-wrap: break-word;
}
main.location .timetable .time.afternoon .content03 .content__image {
  margin-top: 60px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 .content__image {
    margin-top: -40px;
  }
}
main.location .timetable .time.afternoon .content03 .content__image .image01 {
  z-index: 1;
  position: relative;
  width: 251px;
  height: 263px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 .content__image .image01 {
    width: 250px;
    height: auto;
    margin: 0 0 0 20px;
  }
}
main.location .timetable .time.afternoon .content03 .content__image .image02 {
  z-index: 0;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), -50%);
  width: 287px;
  height: 186px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 .content__image .image02 {
    z-index: 1;
    position: relative;
    transform: none;
    width: 200px;
    margin: -15px 0 0 auto;
  }
}
main.location .timetable .time.afternoon .content03 .content__image .icon {
  top: 0;
  left: 0;
  transform: translate(calc(100% + 70px), calc(-100% - 20px));
  width: 112px;
  height: 70px;
}
main.location .timetable .time.afternoon .content03 .content__image .name {
  top: 0;
  left: 0;
  transform: translate(100%, calc(-100% - 5px));
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.afternoon .content03 .content__image .name {
    top: 100px;
    right: auto;
    left: 50%;
    transform: translate(calc(-50% - 100px), calc(100% + 30px));
  }
}
main.location .timetable .time.evening {
  padding-bottom: 200px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening {
    padding-bottom: 60px;
  }
}
main.location .timetable .time.evening .content01 {
  gap: 105px;
  padding-left: 60px;
  margin-bottom: 100px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content01 {
    gap: 60px;
    padding-left: 0;
    margin-bottom: 60px;
  }
}
main.location .timetable .time.evening .content01 .content__text {
  position: relative;
}
main.location .timetable .time.evening .content01 .content__text .icon {
  position: absolute;
  top: 0;
  left: 100%;
  transform: translate(calc(-100% + 20px), calc(-50% - 20px));
  width: 116px;
  height: 93px;
}
main.location .timetable .time.evening .content01 .content__image .image01 {
  width: 255px;
  height: 170px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content01 .content__image .image01 {
    width: 80%;
    height: auto;
    margin-left: auto;
  }
}
main.location .timetable .time.evening .content01 .content__image .image02 {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(60px, 50%);
  width: 192px;
  height: 125px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content01 .content__image .image02 {
    position: relative;
    transform: none;
    width: 60%;
    height: auto;
    margin: -20px auto 0 0;
  }
}
main.location .timetable .time.evening .content01 .content__image .image03 {
  width: 374px;
  height: 130px;
  margin-top: 35px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content01 .content__image .image03 {
    width: 100%;
    height: auto;
    margin-top: 10px;
  }
}
main.location .timetable .time.evening .content01 .content__image .name {
  top: 0;
  right: 0;
  transform: translate(55px, calc(100% + 20px));
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content01 .content__image .name {
    top: 0;
    right: 0;
    transform: translateY(-100%);
  }
}
main.location .timetable .time.evening .content02 {
  gap: 80px;
  padding-left: 120px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content02 {
    gap: 60px;
    padding-left: 0;
  }
}
main.location .timetable .time.evening .content02 .content__text .more {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 60px;
}
main.location .timetable .time.evening .content02 .content__text .more p {
  font-family: "Noto Serif JP", serif;
  font-size: 19px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #7a6a56;
}
main.location .timetable .time.evening .content02 .content__text .more .btn__entry a {
  font-size: 22px;
}
main.location .timetable .time.evening .content02 .content__image .image01 {
  width: 264px;
  height: 273px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content02 .content__image .image01 {
    width: 60%;
    height: auto;
    margin: 0 0 0 auto;
  }
}
main.location .timetable .time.evening .content02 .content__image .image02 {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), calc(100% - 30px));
  width: 250px;
  height: 174px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content02 .content__image .image02 {
    position: relative;
    transform: none;
    width: 80%;
    height: auto;
    margin: -30px auto 0 0;
  }
}
main.location .timetable .time.evening .content02 .content__image .icon {
  top: 0;
  right: 0;
  transform: translate(calc(100% + 30px), calc(50% - 30px));
  width: 86px;
  height: 73px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content02 .content__image .icon {
    transform: translate(300%, 0%);
  }
}
main.location .timetable .time.evening .content02 .content__image .name {
  top: 0;
  right: 0;
  transform: translate(calc(100% + 5px), 120px);
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.evening .content02 .content__image .name {
    top: 60px;
    right: auto;
    left: 50%;
    transform: translate(calc(-50% - 100px), calc(100% + 30px));
  }
}
main.location .timetable .time.night .content {
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content {
    padding-left: 0;
  }
}
main.location .timetable .time.night .content01 {
  gap: 100px;
  margin-bottom: 240px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content01 {
    gap: 60px;
    margin-bottom: 20px;
  }
}
main.location .timetable .time.night .content01 .image01 {
  z-index: 0;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), -50%);
  width: 270px;
  height: 302px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content01 .image01 {
    position: static;
    transform: none;
    width: 80%;
    height: auto;
    margin: 0 0 0 auto;
  }
}
main.location .timetable .time.night .content01 .image02 {
  z-index: 1;
  position: relative;
  width: 223px;
  height: 210px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content01 .image02 {
    width: 60%;
    height: auto;
    margin: -30px auto 0 0;
  }
}
main.location .timetable .time.night .content01 .image03 {
  z-index: 1;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(50% + 40px), calc(100% + 10px));
  width: 232px;
  height: 154px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content01 .image03 {
    position: relative;
    transform: none;
    width: 90%;
    height: auto;
    margin: -30px auto 0;
  }
}
main.location .timetable .time.night .content01 .icon {
  top: 0;
  left: 0;
  transform: translate(calc(-100% - 100px), -50%);
  width: 49px;
  height: 77px;
}
main.location .timetable .time.night .content01 .name {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(0, calc(-100% - 5px));
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content01 .name {
    position: static;
    text-align: left;
    margin: 50px 0 0;
  }
}
main.location .timetable .time.night .content02 {
  position: relative;
  flex-flow: row-reverse nowrap;
  justify-content: flex-start;
  gap: 290px;
  width: -moz-fit-content;
  width: fit-content;
  padding-left: 0;
  margin: 0 0 200px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content02 {
    flex-flow: column nowrap;
    gap: 60px;
    width: 100%;
    margin: 0 0 80px;
  }
}
main.location .timetable .time.night .content02 .content__text {
  max-width: 360px;
  margin-top: 20px;
}
main.location .timetable .time.night .content02 .content__image .image01 {
  z-index: 1;
  position: relative;
  width: 301px;
  height: 221px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content02 .content__image .image01 {
    width: 80%;
    height: auto;
    margin: 0 auto 0 0;
  }
}
main.location .timetable .time.night .content02 .content__image .image02 {
  z-index: 1;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 30px), calc(100% - 60px));
  width: 229px;
  height: 172px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content02 .content__image .image02 {
    position: relative;
    transform: none;
    width: 60%;
    height: auto;
    margin: -40px 0 0 auto;
  }
}
main.location .timetable .time.night .content02 .content__image .name {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(calc(100% + 10px), calc(-100% - 5px));
  text-align: left;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content02 .content__image .name {
    top: 90px;
    right: auto;
    left: 50%;
    transform: translate(calc(-50% - 100px), calc(100% + 30px));
  }
}
main.location .timetable .time.night .content03 {
  position: relative;
  flex-flow: row-reverse nowrap;
  justify-content: flex-start;
  gap: 290px;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content03 {
    flex-flow: column nowrap;
    gap: 60px;
    width: 100%;
  }
}
main.location .timetable .time.night .content03 .content__text {
  margin-top: 20px;
}
main.location .timetable .time.night .content03 .content__image .image01 {
  z-index: 1;
  position: relative;
  width: 301px;
  height: 221px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content03 .content__image .image01 {
    width: 70%;
    height: auto;
    margin: 0 0 0 auto;
  }
}
main.location .timetable .time.night .content03 .content__image .image02 {
  z-index: 1;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 60px), calc(-50% + 30px));
  width: 204px;
  height: 153px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content03 .content__image .image02 {
    position: relative;
    transform: none;
    width: 80%;
    height: auto;
    margin: -20px auto 0 0;
  }
}
main.location .timetable .time.night .content03 .content__image .image03 {
  z-index: 0;
  position: absolute;
  top: 100%;
  right: 0;
  transform: translate(calc(100% - 60px), calc(-50% + 30px));
  width: 276px;
  height: 183px;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content03 .content__image .image03 {
    z-index: 2;
    position: relative;
    transform: none;
    width: 80%;
    height: auto;
    margin: -20px 0 0 auto;
  }
}
main.location .timetable .time.night .content03 .content__image .name {
  position: absolute;
  top: calc(100% + 5px);
  right: 70px;
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.location .timetable .time.night .content03 .content__image .name {
    position: static;
    text-align: right;
  }
}
main.location .education {
  background-color: #fefdfd;
  width: 100%;
  padding: 220px 0 130px;
  margin-bottom: 0;
}
@media screen and (max-width: 850px) {
  main.location .education {
    padding: 30px 0 60px;
  }
}
main.location .education .inner {
  position: relative;
  margin-bottom: 120px;
}
@media screen and (max-width: 850px) {
  main.location .education .inner {
    margin-bottom: 60px;
  }
}
main.location .education .side-ttl {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(calc(-100% - 45px));
  width: 402px;
  height: 111px;
}
@media screen and (max-width: 850px) {
  main.location .education .side-ttl {
    top: -20px;
    left: 20px;
    width: calc(100% - 140px);
    aspect-ratio: 402/111;
  }
}
main.location .education__illust {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(0%, calc(-50% + 60px));
  width: 337px;
  height: 420px;
  filter: brightness(0) saturate(100%) invert(77%) sepia(12%) saturate(151%) hue-rotate(12deg) brightness(90%) contrast(90%);
}
@media screen and (max-width: 850px) {
  main.location .education__illust {
    right: 0;
    transform: translate(-20px, 0);
    width: 180px;
    height: auto;
  }
}
main.location .education .content {
  display: flex;
}
main.location .education .content__text {
  width: 100%;
  margin: 40px 0 0;
}
main.location .education .content__text .title p {
  font-family: "Baskervville", serif;
  font-size: 18px;
  color: #7a6a56;
  margin-bottom: 15px;
}
main.location .education .content__text p {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  line-height: 45px;
  letter-spacing: 0.15em;
}
main.location .education .content__text p + p {
  font-size: 14px;
  line-height: 30px;
  letter-spacing: 0.1em;
  margin-top: 20px;
}
@media screen and (max-width: 850px) {
  main.location .education .content__text p {
    font-size: 24px;
    line-height: 32px;
    letter-spacing: 0.06em;
  }
  main.location .education .content__text p + p {
    font-size: 12px;
    line-height: 28px;
    letter-spacing: 0.08em;
  }
}
main.location .education .content__image {
  position: relative;
}
main.location .education .content__image .icon {
  position: absolute;
}
main.location .education .content__image .name {
  position: absolute;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0.04em;
}
main.location .education__inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}
main.location .education__content {
  display: flex;
  flex-flow: row nowrap;
  margin: 0 0 180px;
}
main.location .education__content.flex-reverse {
  flex-flow: row-reverse nowrap;
}
@media screen and (max-width: 850px) {
  main.location .education__content {
    flex-flow: column nowrap;
    margin: 0 0 60px;
  }
  main.location .education__content.flex-reverse {
    flex-flow: column nowrap;
  }
}
main.location .education__content:last-child {
  margin: 0 0 80px;
}
main.location .education__content .content-image {
  flex-grow: 0;
  flex-shrink: 0;
  z-index: 2;
  position: relative;
  width: 100%;
  max-width: 685px;
  aspect-ratio: 685/462;
}
main.location .education__content .content-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.location .education__content .content-image p {
  position: absolute;
  top: 100%;
  right: 0;
  transform: translateY(calc(-100% - 20px));
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 20px;
  letter-spacing: 0.08em;
  color: white;
  padding: 0 10px 30px 0;
}
main.location .education__content .content-image p .time {
  font-size: 62px;
}
main.location .education__content .content-image p span:not(.time) {
  font-size: 20px;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-image p {
    font-size: 28px;
    padding-bottom: 0;
  }
  main.location .education__content .content-image p .time {
    font-size: 56px;
  }
}
main.location .education__content .content-images {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 30px;
}
main.location .education__content .content-images.flex-reverse {
  flex-flow: row-reverse nowrap;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-images {
    flex-flow: column-reverse nowrap;
    gap: 5px;
    flex-shrink: 0;
    width: 150px;
  }
  main.location .education__content .content-images.flex-reverse {
    flex-flow: column-reverse nowrap;
  }
  main.location .education__content .content-images .icon {
    width: 60px;
  }
}
main.location .education__content .content-wrapper {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  width: 100%;
  margin: 60px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-wrapper {
    flex-flow: row nowrap;
    gap: 10px;
    padding: 0 10px;
    margin: 0;
  }
}
main.location .education__content .content-text {
  z-index: 1;
  position: relative;
  padding-right: 120px;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-text {
    width: 100%;
    padding-right: 0;
  }
}
main.location .education__content .content-text p {
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
}
main.location .education__content .content-text p + p {
  font-size: 15px;
  line-height: 33px;
  margin: 25px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-text p + p {
    margin: 10px 0 0;
  }
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-text p {
    font-size: 22px;
    line-height: 32px;
  }
  main.location .education__content .content-text p + p {
    font-size: 12px;
    line-height: 28px;
  }
}
main.location .education__content .content-text p:first-child::after {
  content: "";
  position: absolute;
  background-color: black;
  width: 100%;
  height: 1px;
}
@media screen and (max-width: 850px) {
  main.location .education__content .content-text p:first-child::after {
    display: none;
  }
}
main.location .education__content.content01 {
  gap: 90px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content01 {
    gap: 15px;
  }
}
main.location .education__content.content01 .content-text {
  padding-left: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content01 .content-text {
    padding-left: 0;
  }
}
main.location .education__content.content01 .content-text p:first-child::after {
  top: 30px;
  left: 0;
  transform: translateX(calc(-100% - 30px));
}
main.location .education__content.content01 .content-image {
  padding-bottom: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content01 .content-image {
    padding-bottom: 0;
  }
}
main.location .education__content.content01 .content-images .image {
  width: 287px;
  height: 194px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content01 .content-images .image {
    width: 100%;
    height: auto;
  }
}
main.location .education__content.content02 {
  gap: 60px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 {
    gap: 15px;
  }
}
main.location .education__content.content02 .content-wrapper {
  margin-top: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-wrapper {
    margin-top: 0;
  }
}
main.location .education__content.content02 .content-text {
  padding-left: 170px;
  padding-right: 130px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-text {
    padding-left: 0;
    padding-right: 0;
  }
}
main.location .education__content.content02 .content-text p:first-child::after {
  top: 30px;
  right: 0;
  transform: translateX(calc(100% - 60px));
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-text p:first-child::after {
    transform: translateY(-100%);
  }
}
main.location .education__content.content02 .content-image {
  padding-bottom: 60px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-image {
    padding-bottom: 0;
  }
}
main.location .education__content.content02 .content-image p {
  transform: translateY(calc(-100% - 50px));
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-image p {
    transform: translateY(calc(-100% - 15px));
  }
}
main.location .education__content.content02 .content-images .image {
  width: 310px;
  height: 210px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content02 .content-images .image {
    width: 100%;
    height: auto;
  }
}
main.location .education__content.content02 .content-images .icon {
  width: 64px;
  height: 75px;
  filter: brightness(0) saturate(100%) invert(77%) sepia(12%) saturate(151%) hue-rotate(12deg) brightness(90%) contrast(90%);
  margin: -180px -45px 0 0;
}
main.location .education__content.content03 {
  gap: 90px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 {
    gap: 15px;
  }
}
main.location .education__content.content03 .content-text {
  position: relative;
  padding-left: 30px;
  padding-right: 220px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 .content-text {
    padding-left: 0;
    padding-right: 0;
  }
}
main.location .education__content.content03 .content-text p:first-child::after {
  top: 30px;
  left: 0;
  transform: translateX(calc(-100% - 30px));
}
main.location .education__content.content03 .content-text .icon {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(210px, 10px);
  width: 73px;
  height: 52px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 .content-text .icon {
    display: none;
  }
}
main.location .education__content.content03 .content-image {
  padding-bottom: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 .content-image {
    padding-bottom: 0;
  }
}
main.location .education__content.content03 .content-images {
  padding-left: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 .content-images {
    padding-left: 0;
  }
}
main.location .education__content.content03 .content-images .image {
  width: 287px;
  height: 194px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content03 .content-images .image {
    width: 100%;
    height: auto;
    margin-top: auto;
  }
}
main.location .education__content.content04 {
  gap: 60px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 {
    gap: 40px;
  }
}
main.location .education__content.content04 .content-wrapper {
  margin-top: 30px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-wrapper {
    margin-top: 0;
  }
}
main.location .education__content.content04 .content-text {
  padding-left: 240px;
  padding-right: 60px;
  margin-bottom: 90px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-text {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0;
  }
}
main.location .education__content.content04 .content-text p:first-child::after {
  top: 30px;
  right: 0;
  transform: translateX(calc(100% - 60px));
}
main.location .education__content.content04 .content-image {
  padding-bottom: 60px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-image {
    padding-bottom: 0;
  }
}
main.location .education__content.content04 .content-image p {
  transform: translateY(calc(-100% - 50px));
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-image p {
    transform: translateY(calc(-100% - 15px));
  }
}
main.location .education__content.content04 .content-images .image {
  width: 310px;
  height: 210px;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-images .image {
    width: 100%;
    height: auto;
  }
}
main.location .education__content.content04 .content-images .icon {
  width: 155px;
  height: 78px;
  margin: -230px -65px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .education__content.content04 .content-images .icon {
    margin: 0;
  }
}
main.location .public {
  position: relative;
  background-color: #f7f3e7;
  width: 100%;
  padding: 40px 0 10px;
  margin-bottom: 0;
}
main.location .public .bg-image {
  position: absolute;
  top: 0;
  left: 50%;
  width: 645px;
  height: 420px;
}
@media screen and (max-width: 850px) {
  main.location .public .bg-image {
    left: 50%;
    transform: translateX(calc(-50% + 130px));
    width: 100%;
    height: auto;
    aspect-ratio: 645/420;
  }
}
main.location .public__inner {
  position: relative;
  background-image: url("../img/location/img_public-bg.png");
  background-size: 100% auto;
  background-position: bottom center;
  background-repeat: no-repeat;
  width: 100%;
  max-width: 1406px;
  padding: 100px 20px 200px;
  margin: 0 auto;
}
main.location .public__inner .side-ttl {
  position: absolute;
  top: 0;
  left: 0;
  width: 475px;
}
@media screen and (max-width: 850px) {
  main.location .public__inner {
    background-size: 300% auto;
    background-position: bottom left;
    padding: 80px 20px 120px;
  }
  main.location .public__inner .side-ttl {
    top: 140px;
    left: 10px;
    width: calc(100% - 40px);
  }
}
main.location .public__title {
  width: calc(100% - 320px);
  margin: 0 auto;
}
main.location .public__title p {
  font-family: "Baskervville", serif;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: #7a6a56;
  margin-bottom: 15px;
}
main.location .public__title h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 50px;
  letter-spacing: 0.15em;
  margin-left: -0.5em;
  white-space: nowrap;
}
main.location .public__title h3 span {
  font-size: 25px;
  margin-left: 0.5em;
}
main.location .public__title h3 span.notation {
  font-size: 0.7em;
  margin-left: -0.5em;
}
@media screen and (max-width: 850px) {
  main.location .public__title {
    width: 100%;
    margin: 16px 0 0;
  }
  main.location .public__title h3 {
    font-size: 16px;
    line-height: 1.6;
    filter: drop-shadow(0px 0px 3px rgb(255, 255, 255));
  }
  main.location .public__title h3 span {
    font-size: 16px;
  }
}
main.location .public__content {
  position: relative;
  width: calc(100% - 320px);
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.location .public__content {
    width: 100%;
  }
}
main.location .public__content .services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 20px;
       column-gap: 20px;
  row-gap: 30px;
  margin: 70px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .public__content .services {
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 40px 0 0;
  }
}
main.location .public__content .service {
  cursor: pointer;
  position: relative;
  background-color: #fff;
  border: 1px solid #cfc7be;
  border-radius: 10px;
  height: -moz-fit-content;
  height: fit-content;
  min-height: 132px;
  padding: 0 20px 0;
}
@media screen and (max-width: 850px) {
  main.location .public__content .service {
    padding: 0 20px;
  }
}
main.location .public__content .service::after {
  content: "";
  position: absolute;
  top: 60px;
  right: 20px;
  transform: translateY(-50%) rotate(0deg);
  background-image: url("../img/location/icon_arrow-down.svg");
  background-size: cover;
  width: 14px;
  height: 7px;
  transition: transform 0.3s 0.1s ease;
}
@media screen and (max-width: 850px) {
  main.location .public__content .service::after {
    top: auto;
    right: auto;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, calc(-100% - 10px)) rotate(0deg);
  }
}
main.location .public__content .service.original {
  padding-block: 10px;
}
main.location .public__content .service.original::before {
  content: "浦安市オリジナル制度";
  position: absolute;
  top: 10px;
  left: -5px;
  background-image: url("../img/location/bg_public-ribbon.svg");
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  width: 134px;
  height: 22px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: white;
  padding: 0 0 0 15px;
}
main.location .public__content .service.original--chiba::before {
  content: "千葉県オリジナル制度";
}
main.location .public__content .service.opened::after {
  transform: translateY(-50%) rotate(180deg);
}
@media screen and (max-width: 850px) {
  main.location .public__content .service.opened::after {
    transform: translate(-50%, calc(-100% - 10px)) rotate(180deg);
  }
}
main.location .public__content .service .wrapper {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  height: 120px;
}
main.location .public__content .service .wrapper p {
  font-family: "Noto Serif JP", serif;
  font-size: 19px;
  line-height: 28px;
  letter-spacing: 0.06em;
  color: #3d352c;
}
main.location .public__content .service .wrapper p + p {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  margin: 5px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .public__content .service .wrapper p {
    font-size: 18px;
    line-height: 28px;
  }
}
main.location .public__content .service .detail {
  overflow: hidden;
  box-sizing: border-box;
  height: 0;
  transition: height 0.3s 0.1s ease;
}
.service.opened main.location .public__content .service .detail {
  border-top: 1px solid #cfc7be;
}
main.location .public__content .service .detail .image {
  float: left;
  width: 119px;
  height: 76px;
  padding: 10px 0 0;
  margin: 0.5em 0.5em 0 0;
}
main.location .public__content .service .detail p {
  border-top: 1px solid #cfc7be;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  line-height: 23px;
  letter-spacing: 0.04em;
  padding: 10px 0 20px;
}
@media screen and (max-width: 850px) {
  main.location .public__content .service .detail p {
    padding: 10px 0 30px;
  }
}
main.location .ad {
  position: relative;
  background-image: url("../img/location/bg_ad-pic.png"), url("../img/location/bg_ad.png");
  background-size: 100% auto, cover;
  background-position: top center, center;
  background-repeat: no-repeat, repeat-y;
  display: flex;
  justify-content: center;
  padding: 110px 0;
  margin-bottom: 0;
}
main.location .ad .side-ttl {
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translateY(40%);
  width: 100%;
  max-width: 696px;
  aspect-ratio: 696/157;
}
main.location .ad__inner {
  width: 100%;
  max-width: 1440px;
}
main.location .ad__title {
  width: 100%;
  margin: 0 0 150px;
}
@media screen and (max-width: 850px) {
  main.location .ad__title {
    margin: 0 0 60px;
  }
}
main.location .ad__title h2 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 60px;
  letter-spacing: 0.15em;
  text-align: center;
  color: white;
}
@media screen and (max-width: 850px) {
  main.location .ad__title h2 {
    font-size: 32px;
    line-height: 48px;
  }
}
main.location .ad__title .sub-ttl {
  width: 200px;
  margin: 0 auto;
}
main.location .ad__content {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 60px;
  margin: 0 0 80px;
}
@media screen and (max-width: 850px) {
  main.location .ad__content {
    flex-flow: column nowrap;
    gap: 40px;
    margin: 0 0 20px;
  }
}
main.location .ad__content .image {
  flex-shrink: 0;
  flex-grow: 0;
  position: relative;
  width: 100%;
  max-width: 850px;
  aspect-ratio: 850/410;
}
main.location .ad__content .image span {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(0, calc(-100% - 5px));
  display: block;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: white;
}
@media screen and (max-width: 850px) {
  main.location .ad__content .image span {
    position: static;
    transform: none;
    text-align: right;
  }
}
@media screen and (max-width: 850px) {
  main.location .ad__content .text {
    padding: 0 20px;
  }
}
main.location .ad__content .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: white;
}
main.location .ad__content .text p + p {
  margin-top: 2em;
}
main.location .ad__images {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
}
@media screen and (max-width: 850px) {
  main.location .ad__images {
    flex-flow: column nowrap;
    gap: 30px;
  }
}
main.location .ad__images .image img {
  display: block;
}
main.location .ad__images .image.img-caption::before {
  color: white;
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.8)) drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.8));
}
@media screen and (max-width: 850px) {
  main.location .ad__images .image01 {
    width: calc(100% - 40px);
  }
}
main.location .ad__images .image01 .note {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  text-align: right;
  color: white;
}
main.location .ad__images .image02 {
  position: relative;
}
main.location .ad__images .image02 .icon {
  position: absolute;
  top: 50%;
  left: 100%;
  transform: translate(calc(50% + 10px), -50%);
  width: 62px;
  height: 89px;
}
@media screen and (max-width: 850px) {
  main.location .ad__images .image02 {
    align-self: flex-end;
    width: 60%;
  }
  main.location .ad__images .image02::before {
    top: 0;
    bottom: auto;
  }
}
main.location .ad__images .image03 {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(50% - 220px), calc(-50% - 30px));
}
@media screen and (max-width: 850px) {
  main.location .ad__images .image03 {
    align-self: flex-start;
    position: relative;
    transform: none;
    margin: -50px 0 0;
  }
}
main.location .ad__images .image03 .icon {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(0, calc(-100% - 15px));
  width: 95px;
  height: 100px;
}
main.location .shopping {
  padding: 200px 0 20px;
}
@media screen and (max-width: 850px) {
  main.location .shopping {
    padding: 70px 0 20px;
  }
}
main.location .shopping__title {
  position: relative;
  width: 100%;
  margin: 0 0 80px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__title {
    margin: 0 0 60px;
  }
}
main.location .shopping__title p {
  font-family: "Baskervville", serif;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: #7a6a56;
  margin-bottom: 15px;
}
main.location .shopping__title p + p {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  line-height: 45px;
  letter-spacing: 0.15em;
  color: #000;
}
@media screen and (max-width: 850px) {
  main.location .shopping__title p + p {
    font-size: 24px;
    line-height: 48px;
  }
}
main.location .shopping__title .sub-ttl {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-50%, calc(-100% + 50px));
  width: 355px;
  height: 190px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__title .sub-ttl {
    z-index: -1;
    transform: translate(0, -50%);
    width: 100%;
    height: auto;
  }
}
main.location .shopping__title .icon {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(0, -50%);
  width: 175px;
  height: 150px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__title .icon {
    display: none;
  }
}
main.location .shopping__list {
  width: 100%;
}
main.location .shopping__list .shop-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 20px;
       column-gap: 20px;
  row-gap: 40px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-items {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
main.location .shopping__list .shop-item {
  background-color: #f9f7f0;
  display: flex;
  flex-flow: column nowrap;
  gap: 15px;
  width: 100%;
  padding: 40px 0 40px 0;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item {
    gap: 0;
    padding: 20px;
  }
}
main.location .shopping__list .shop-item:first-child {
  grid-column: span 2;
  flex-flow: row nowrap;
  gap: 0;
}
main.location .shopping__list .shop-item:first-child .shop-item__detail {
  padding: 0;
  padding-right: 60px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item:first-child {
    grid-column: 1;
    flex-flow: column nowrap;
    gap: 0;
  }
  main.location .shopping__list .shop-item:first-child .shop-item__detail {
    padding: 0;
    padding-top: 10px;
    padding-right: 0;
  }
}
main.location .shopping__list .shop-item__image {
  flex-shrink: 0;
  position: relative;
  width: 100%;
  max-width: 530px;
  aspect-ratio: 530/310;
  padding-right: 30px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__image {
    max-width: none;
    padding-right: 0;
  }
}
main.location .shopping__list .shop-item__image img {
  display: block;
  width: 100%;
}
main.location .shopping__list .shop-item__image p {
  position: absolute;
  top: 100%;
  right: 40px;
  transform: translateY(calc(-100% - 10px));
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 20px;
  letter-spacing: 0.08em;
  color: white;
}
main.location .shopping__list .shop-item__image p .time {
  font-size: 40px;
}
main.location .shopping__list .shop-item__image p span:not(.time) {
  font-size: 16px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__image p {
    right: 10px;
  }
}
main.location .shopping__list .shop-item__detail {
  padding: 0 20px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__detail {
    padding: 0;
    padding-top: 10px;
  }
}
main.location .shopping__list .shop-item__detail:has(.add) {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
}
main.location .shopping__list .shop-item__detail .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
}
main.location .shopping__list .shop-item__detail .text p + p {
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.1em;
  margin-top: 20px;
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__detail .text p + p {
    margin-top: 10px;
  }
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__detail .text p {
    font-size: 20px;
    line-height: 28px;
  }
}
@media screen and (max-width: 850px) {
  main.location .shopping__list .shop-item__detail .add {
    margin: 20px 0 0;
  }
}
main.location .shopping__list .shop-item__detail .add img {
  display: block;
}
main.location .shopping__list .shop-item__detail .add .note {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  text-align: right;
}
main.location .park__inner {
  width: 100%;
  max-width: 1085px;
  padding: 0 20px;
  margin: 0 auto;
}
main.location .park__title {
  width: 100%;
  margin: 0 0 100px;
}
@media screen and (max-width: 850px) {
  main.location .park__title {
    margin: 0 0 60px;
  }
}
main.location .park__title p {
  font-family: "Baskervville", serif;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: #7a6a56;
  margin-bottom: 15px;
  text-align: center;
}
main.location .park__title p + p {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  line-height: 45px;
  letter-spacing: 0.15em;
  color: #000;
}
@media screen and (max-width: 850px) {
  main.location .park__title p + p {
    font-size: 24px;
    line-height: 35px;
  }
}
main.location .park__title .sub-ttl {
  width: 185px;
  margin: 0 auto;
}
main.location .park__content {
  display: flex;
  flex-flow: row nowrap;
  margin: 0 0 75px;
}
main.location .park__content.flex-reverse {
  flex-flow: row-reverse nowrap;
}
@media screen and (max-width: 850px) {
  main.location .park__content {
    flex-flow: column nowrap;
    margin: 0 0 20px;
  }
  main.location .park__content.flex-reverse {
    flex-flow: column nowrap;
  }
}
main.location .park__content:last-child {
  margin: 0;
}
main.location .park__content .content-image {
  flex-grow: 0;
  flex-shrink: 0;
  z-index: 2;
  position: relative;
  width: 100%;
  max-width: 568px;
  aspect-ratio: 568/414;
}
main.location .park__content .content-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.location .park__content .content-image p {
  position: absolute;
  top: 100%;
  right: 0;
  transform: translateY(-100%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 20px;
  letter-spacing: 0.08em;
  color: white;
  padding: 0 10px 30px 0;
}
main.location .park__content .content-image p .time {
  font-size: 62px;
}
main.location .park__content .content-image p span:not(.time) {
  font-size: 20px;
}
@media screen and (max-width: 850px) {
  main.location .park__content .content-image p {
    font-size: 20px;
    padding: 0 0 10px 0;
  }
  main.location .park__content .content-image p .time {
    font-size: 40px;
  }
  main.location .park__content .content-image p span:not(.time) {
    font-size: 12px;
  }
}
main.location .park__content .content-images {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 30px;
}
main.location .park__content .content-images.flex-reverse {
  flex-flow: row-reverse nowrap;
}
main.location .park__content .content-wrapper {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  width: 100%;
  margin: 20px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .park__content .content-wrapper {
    gap: 10px;
    margin: 20px 0;
  }
}
main.location .park__content .content-text {
  z-index: 1;
  position: relative;
}
main.location .park__content .content-text p {
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 35px;
  letter-spacing: 0.15em;
}
main.location .park__content .content-text p + p {
  font-size: 15px;
  line-height: 25px;
  margin: 25px 0 0;
}
@media screen and (max-width: 850px) {
  main.location .park__content .content-text p + p {
    font-size: 12px;
    margin: 10px 0 0;
  }
}
main.location .park__content .content-text p:first-child::after {
  content: "";
  position: absolute;
  background-color: black;
  width: 100%;
  height: 1px;
}
main.location .park__content .content-text .note {
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  main.location .park__content .content-text .note {
    font-size: 10px;
  }
}
main.location .park__content.content01 {
  gap: 50px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content01 {
    gap: 0;
  }
}
main.location .park__content.content01 .content-text {
  padding-left: 30px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content01 .content-text {
    padding-left: 0;
  }
}
main.location .park__content.content01 .content-text p:first-child::after {
  top: 18px;
  left: 0;
  transform: translateX(calc(-100% - 30px));
}
main.location .park__content.content01 .content-image {
  margin-bottom: 60px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content01 .content-image {
    margin-bottom: 0;
  }
}
main.location .park__content.content01 .content-images {
  position: relative;
  gap: 0;
}
main.location .park__content.content01 .content-images .image {
  width: 100%;
  aspect-ratio: 425/182;
}
main.location .park__content.content01 .content-images .image img {
  width: 100%;
}
main.location .park__content.content01 .content-images .icon {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(0, calc(-100% - 10px));
  width: 96px;
  height: 93px;
}
main.location .park__content.content02 {
  gap: 90px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content02 {
    gap: 0;
  }
}
main.location .park__content.content02 .content-text {
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content02 .content-text {
    padding-left: 0;
  }
}
main.location .park__content.content02 .content-text p:first-child::after {
  top: 18px;
  right: 0;
  transform: translateX(calc(100% - 130px));
}
@media screen and (max-width: 850px) {
  main.location .park__content.content02 .content-text p:first-child::after {
    display: none;
  }
}
main.location .park__content.content02 .content-images .icon {
  margin-bottom: 20px;
}
main.location .park__content.content-images {
  gap: 65px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content-images {
    gap: 20px;
  }
}
main.location .park__content.content-images .content-wrapper {
  position: relative;
  gap: 20px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content-images .content-wrapper {
    gap: 10px;
  }
}
main.location .park__content.content-images .content-wrapper:first-child {
  margin-bottom: 100px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content-images .content-wrapper:first-child {
    margin-bottom: 0;
  }
}
main.location .park__content.content-images .content-wrapper:last-child {
  margin-top: 100px;
}
@media screen and (max-width: 850px) {
  main.location .park__content.content-images .content-wrapper:last-child {
    margin-top: 0;
  }
}
main.location .park__content.content-images .content-icon {
  position: absolute;
}
main.location .park__content.content-images .content-icon.icon01 {
  z-index: 2;
  top: 0;
  left: 0;
  transform: translate(calc(-100% + 40px), calc(-100% + 30px));
  width: 75px;
  height: 100px;
  rotate: -20deg;
}
main.location .park__content.content-images .content-icon.icon02 {
  z-index: 2;
  top: 0;
  right: 0;
  transform: translate(calc(100% - 65px), calc(-100% + 10px));
  width: 115px;
  height: 70px;
  rotate: 20deg;
}
main.location .park__content.content-images .content-image {
  z-index: 1;
  width: 100%;
  aspect-ratio: 420/280;
}
main.location .park__content.content-images .content-image p {
  padding: 0 10px 15px 0;
}
main.location .park__content.content-images .content-image:not(:has(img)) {
  background-image: linear-gradient(to bottom, transparent 70%, rgba(0, 0, 0, 0.3764705882));
  background-color: #d1d1d1;
}
main.location .park__content.content-images .content-text p:first-child::after {
  display: none;
}
main.location .map {
  background-image: url("../img/location/bg_map-ptn.png"), linear-gradient(#595451, #595451);
  background-size: cover;
  background-position: center;
  padding: 110px 0 180px;
}
@media screen and (max-width: 850px) {
  main.location .map {
    padding: 60px 0;
  }
}
main.location .map__inner {
  width: 100%;
  max-width: 1086px;
  padding: 0 20px;
  margin: 0 auto;
}
main.location .map__title {
  position: relative;
  margin: 0 0 70px;
}
@media screen and (max-width: 850px) {
  main.location .map__title {
    margin: 0 0 40px;
  }
}
main.location .map__title p {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.06em;
  color: #f2d9bf;
  text-align: center;
}
main.location .map__title::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 10px);
  background-color: #f2d9bf;
  width: 43px;
  height: 1px;
}
main.location .map__menu {
  width: 100%;
}
main.location .map__menu .menu-items {
  display: flex;
  flex-flow: row nowrap;
  gap: 40px;
  margin-bottom: 60px;
}
@media screen and (max-width: 850px) {
  main.location .map__menu .menu-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 10px;
         column-gap: 10px;
    row-gap: 20px;
    margin-bottom: 40px;
  }
}
main.location .map__menu .menu-item {
  cursor: pointer;
  position: relative;
  box-sizing: border-box;
  border-bottom: 1px solid white;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  width: 100%;
  padding: 0 0 10px;
  opacity: 1;
  transition: opacity 0.4s 0.2s ease;
}
main.location .map__menu .menu-item::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 10px);
  background-image: url("../img/location/icon_arrow-bottom.svg");
  background-size: cover;
  background-position: center;
  width: 13.5px;
  height: 8.5px;
  opacity: 0;
  transition: opacity 0.4s 0.2s ease;
}
main.location .map__menu .menu-item span {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0.04em;
  text-align: center;
  color: white;
  white-space: nowrap;
}
main.location .map__menu .menu-item.current {
  opacity: 0.6;
}
main.location .map__menu .menu-item.current::after {
  opacity: 1;
}
main.location .map__content {
  display: flex;
  flex-flow: row nowrap;
  max-height: 600px;
}
@media screen and (max-width: 850px) {
  main.location .map__content {
    flex-flow: column nowrap;
    max-height: 100vh;
  }
}
main.location .map__content .gmaps {
  width: 100%;
  max-width: 640px;
  aspect-ratio: 640/600;
}
@media screen and (max-width: 850px) {
  main.location .map__content .gmaps {
    max-width: none;
    height: 100%;
  }
}
main.location .map__content .places {
  overflow-y: scroll;
  background-color: #7a6a56;
  width: 100%;
  max-width: 400px;
  padding: 30px;
}
@media screen and (max-width: 850px) {
  main.location .map__content .places {
    max-width: none;
    height: 100%;
    max-height: 50vh;
    padding: 20px;
  }
}
main.location .map__content .places__wrapper {
  counter-reset: list-counter;
  display: none;
  width: 100%;
  height: 100%;
}
main.location .map__content .places__wrapper.current {
  display: revert;
}
main.location .map__content .places__item {
  margin: 0 0 20px;
}
main.location .map__content .places .place-name {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: 0.15em;
  color: white;
}
main.location .map__content .places .place-name span:first-child {
  margin-left: -0.5em;
}
main.location .map__content .places .place-name span:last-child {
  margin-right: -0.5em;
}
main.location .map__content .places .place-items {
  display: flex;
  flex-flow: column nowrap;
}
main.location .map__content .places .place-items:last-child .place-item:last-child {
  border-bottom: none;
}
main.location .map__content .places .place-item {
  counter-increment: list-counter;
  cursor: pointer;
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  gap: 5px;
  padding: 10px 0;
  padding-left: 36px;
}
main.location .map__content .places .place-item > .name {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0.08em;
  color: white;
}
main.location .map__content .places .place-item > .distance {
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0.08em;
  color: white;
}
main.location .map__content .places .place-item + .place-item {
  border-top: 1px solid white;
}
main.location .map__content .places .place-item:last-child {
  border-bottom: 1px solid white;
}
main.location .map__content .places .place-item::before {
  content: counter(list-counter);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: white;
  width: 26px;
  aspect-ratio: 1/1;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 1;
  color: #7a6a56;
}
main.location .section-tabs {
  width: calc(100% - 40px);
  max-width: 1045px;
  margin: 50px auto 90px;
}
main.location .section-tabs > .tabs {
  display: flex;
  flex-flow: row nowrap;
  gap: 20px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.location .section-tabs > .tabs {
    width: 100%;
    flex-flow: column nowrap;
    gap: 20px;
    margin: 0 auto;
  }
}
main.location .section-tabs > .tabs .tab {
  background-color: white;
  border: 1px solid #7a6a56;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
  color: #7a6a56;
  padding: 20px 10px;
}
@media screen and (max-width: 850px) {
  main.location .section-tabs > .tabs .tab {
    font-size: 14px;
    padding: 20px 0;
  }
}
main.location .section-tabs > .tabs .tab span {
  font-size: 1.3em;
  margin-right: 0.1em;
}
main.location .section-tabs > .tabs .tab.current {
  background-color: #7a6a56;
  color: white;
}
main.location .section-tabs > .tabs .tab:hover {
  background-color: #a39a56;
  color: white;
}

/* wrap */
/*	textcolor
---------------------------------*/
.clOrange {
  color: #FD5A2A !important;
}

.clBlue {
  color: #2053E0 !important;
}

.clPurple {
  color: #9A70CB !important;
}

.clGreen {
  color: #48BCC6 !important;
}

.clGreen2 {
  color: #51DE72 !important;
}

.clGreen3 {
  color: #3E865A !important;
}

.clRed {
  color: #E84A5C !important;
}

.clBlack {
  color: #000 !important;
}

/*	bgcolor
---------------------------------*/
.bgOrange {
  background: #FD5A2A !important;
}

.bgBlue {
  background: #2053E0 !important;
}

.bgPurple {
  background: #9A70CB !important;
}

.bgGreen {
  background: #48BCC6 !important;
}

.bgGreen2 {
  background: #51DE72 !important;
}

.bgGreen3 {
  color: #3E865A !important;
}

.bgGreen4 {
  background: #03755b !important;
}

.bgRed {
  background: #E84A5C !important;
}

.bgBlack {
  background: #000 !important;
}

.bgGray {
  background: #DEDEDE !important;
}

.bgDarkGold {
  background: #a3805a !important;
}

.bgGold2 {
  background: #7a6a56 !important;
}

/*	bgGrade
---------------------------------*/
.bgGradeWhite {
  background: rgb(255, 255, 255);
  background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0.6) 26%, rgba(255, 255, 255, 0.45) 40%, rgba(255, 255, 255, 0.24) 73%, rgba(255, 255, 255, 0) 100%);
}

.bgGradePink {
  background: rgb(252, 92, 179);
  background: linear-gradient(180deg, rgb(252, 92, 179) 0%, rgb(211, 85, 5) 100%) !important;
}

.bgGold {
  background: rgb(217, 200, 0);
  background: linear-gradient(180deg, rgb(217, 200, 0) 0%, rgb(134, 105, 8) 100%) !important;
}

.bgGreenBlue {
  background: rgb(167, 224, 173);
  background: linear-gradient(180deg, rgb(167, 224, 173) 0%, rgb(32, 159, 190) 100%) !important;
}

/*	radius
---------------------------------*/
.noRadius {
  border-radius: 0 !important;
}

.radius10 {
  border-radius: 10px !important;
  overflow: hidden !important;
}
/*	common
---------------------------------*/
body {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  line-height: 1.875;
}
@media screen and (max-width: 850px) {
  body {
    font-size: 14px;
  }
}

/* link */
a {
  color: #000;
  text-decoration: none;
  transition: 0.4s;
}
a:hover {
  transition: 0.4s;
}

a:active, a:focus {
  outline: none;
}

button {
  cursor: pointer;
}

/* figure */
img {
  max-width: 100%;
  height: auto;
}

/* heading */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* fadein */
.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: all 1s;
}

/* caption */
.img-caption {
  z-index: 0;
  position: relative;
}
.img-caption::before {
  content: attr(data-caption);
  z-index: 1;
  position: absolute;
  bottom: 0;
  right: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
  padding: 3px 10px;
}
.img-caption img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*	clearfix
---------------------------------*/
/* add parent object */
.cl:before, .cl:after {
  content: " ";
  display: table;
}

.cl:after {
  clear: both;
}

.cl {
  *zoom: 1;
  display: block;
}

.block_p {
  display: block !important;
}
@media screen and (max-width: 850px) {
  .block_p {
    display: none !important;
  }
}

.block_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .block_s {
    display: block !important;
  }
}

.inline_p {
  display: inline;
}
@media screen and (max-width: 850px) {
  .inline_p {
    display: none;
  }
}

.inline_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .inline_s {
    display: inline !important;
  }
}

.inline-block_p {
  display: inline-block !important;
}
@media screen and (max-width: 850px) {
  .inline-block_p {
    display: none !important;
  }
}

.inline-block_s {
  display: none !important;
}
@media screen and (max-width: 850px) {
  .inline-block_s {
    display: inline-block !important;
  }
}

.anc {
  margin-top: -100px;
  padding-top: 100px;
}
.hide {
  display: none !important;
}

.main {
  overflow: hidden;
  margin-top: 140px !important;
}
@media screen and (max-width: 850px) {
  .main {
    margin-top: 0 !important;
  }
}

.inner {
  max-width: 1306px;
  margin: auto;
  padding: 0 60px;
  position: relative;
}
@media screen and (max-width: 850px) {
  .inner {
    padding: 0 15px;
  }
}

.btnTap {
  display: none;
}
@media screen and (max-width: 850px) {
  .btnTap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid #000;
    border-radius: 8px;
    padding: 3px 0;
    margin-top: 10px;
  }
}

.btnCont {
  margin-top: 150px;
  margin-bottom: 50px;
}
.btnCont__box {
  max-width: 700px;
  margin: 0 auto 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}
.btnCont .commonBtn {
  margin: 0 10px 20px;
}
.btnCont__ttl {
  width: 100%;
  display: block;
  font-weight: 600;
  margin: 0 0 20px;
  border-bottom: 1px solid #CCC;
  padding-bottom: 20px;
}

.commonBtn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  background: #CCC;
  font-size: 25px;
  min-width: 230px;
  min-height: 60px;
}
.commonBtn__inner {
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  padding: 0 20px 0 0;
  color: #FFF;
}
.commonBtn__inner:before {
  content: "";
  width: 10px;
  height: 10px;
  background: #FFF;
  border-radius: 100px;
  position: absolute;
  right: 0;
  top: calc(50% - 5px);
}

.commonBtn-type_s {
  font-size: 12px;
  min-width: 130px;
  min-height: 35px !important;
}
.commonBtn-type_s .commonBtn__inner:before {
  width: 6px;
  height: 6px;
  top: calc(50% - 3px);
}

.commonBtn2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  border-radius: 10px;
  padding: 0 60px;
  min-height: 180px;
  min-width: 690px;
  background: #CCC;
  box-sizing: border-box;
  position: relative;
}
.commonBtn2:after {
  content: "";
  position: absolute;
  right: 60px;
  top: calc(50% - 22.5px);
  width: 45px;
  height: 45px;
  background: url("../img/common/icon_arrow_common.svg") no-repeat;
  background-size: 45px;
}
.commonBtn2__inner {
  font-size: 32px;
  color: #FFF;
  font-weight: 600;
  line-height: 1.375;
}

.btn__entry {
  position: relative;
  width: 280px;
  height: 72px;
  text-align: center;
}
.btn__entry a {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  color: #fff;
  margin-top: -2px;
}
.btn__entry:after {
  content: "";
  position: absolute;
  top: calc(50% - 7px);
  right: 22px;
  background: url("../img/common/icon_arrow1.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center;
  width: 9px;
  height: 14px;
}

.fadeUp {
  opacity: 0;
  transform: translate3d(0, 0.4rem, 0);
  transition-duration: 0.7s;
  transition-delay: 0.3s;
  transition-property: opacity, transform;
}
.fadeUp.scrollIn {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.delay06s {
  transition-delay: 0.6s !important;
}

.delay09s {
  transition-delay: 0.9s !important;
}

.slideIn {
  -webkit-mask-image: linear-gradient(to right, black 0%, black 50%, transparent 100%);
          mask-image: linear-gradient(to right, black 0%, black 50%, transparent 100%);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
  -webkit-mask-position: 300% 0;
          mask-position: 300% 0;
}
.slideIn.scrollIn {
  animation: reveal-mask 2s forwards ease-out;
}
@keyframes reveal-mask {
  to {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}

/** ***************************************************************************
 * 共用
 * ************************************************************************* */
.main {
  margin-bottom: 0;
  overflow: visible;
}
/** ***************************************************************************
 * ページタイトル
 * ************************************************************************* */
.main .pageHeader {
  background-image: url("../img/quality/pagettl.jpg");
  display: flex;
  align-items: flex-end;
  padding: 0 0 60px;
}
@media screen and (min-width: 850px) {
  .main .pageHeader {
    height: 364px;
  }
}
@media screen and (max-width: 850px) {
  .main .pageHeader {
    background-image: url("../img/quality/pagettl_sp.jpg");
  }
}
.main .pageHeader .ttl {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
.main .pageHeader .ttl::before {
  color: #fff;
}
/** ***************************************************************************
 * ページナビ
 * ************************************************************************* */
.main .pageNav {
  z-index: 3;
  position: relative;
  margin-bottom: 90px;
}
@media screen and (max-width: 850px) {
  .main .pageNav {
    margin-bottom: 50px;
  }
}
.main .pageNav .list {
  color: #348455;
  font-family: "Noto Serif JP", serif;
  font-size: 1.125em;
  font-weight: 700;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  /**
   * プルダウン
   */
}
.main .pageNav .list > li {
  width: calc(33.3333333333% - 4px);
  height: -moz-fit-content;
  height: fit-content;
  margin: 2px;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 850px) {
  .main .pageNav .list > li {
    width: calc(50% - 4px);
  }
}
.main .pageNav .list > li.hover {
  z-index: 10;
}
.main .pageNav .list > li > a {
  height: 100%;
  padding: 0.25em 0.5em;
  border: 1px solid #348455;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.3s ease-in-out 0s, background-color 0.3s ease-in-out 0s;
  color: inherit;
  background-color: transparent;
}
.main .pageNav .list > li.hover > a {
  color: #fff;
  background-color: #348455;
}
.main .pageNav .list > li.active > a {
  color: #fff;
  background: linear-gradient(rgba(52, 132, 85, 0.6), rgb(52, 132, 85) 50%, rgb(52, 132, 85));
}
.main .pageNav .list .anchor {
  width: 100%;
  padding: 1.25em 0.75em;
  border: 1px solid #348455;
  background-color: #fff;
  overflow: hidden;
  position: absolute;
  z-index: 10;
  top: calc(100% - 1px);
  left: 0;
  transition: max-height 0s ease-in-out 0.3s, visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
  max-height: 0;
  visibility: hidden;
  opacity: 0;
}
.main .pageNav .list .anchor li {
  padding: 1px 0;
  line-height: 1.6;
  border-top: 1px dashed #348455;
  border-bottom: 1px dashed #348455;
}
.main .pageNav .list .anchor li a {
  padding: 0.25em 0.5em;
  color: inherit;
  text-align: center;
  display: block;
  transition: background-color 0.3s ease-in-out 0s;
  background-color: transparent;
}
.main .pageNav .list .anchor li a:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.main .pageNav .list .anchor li ~ li {
  border-top: none;
}
.main .pageNav .list > li.hover .anchor {
  transition: max-height 1s ease-in-out 0s, visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
  max-height: 100vh;
  visibility: visible;
  opacity: 1;
}
/** ***************************************************************************
 * 紹介文
 * ************************************************************************* */
#lead .title {
  margin-bottom: 30px;
  color: #348455;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.25em;
  line-height: 2;
  font-size: 1.625em;
  font-weight: 600;
  text-align: center;
}
@media screen and (max-width: 850px) {
  #lead .title {
    margin-bottom: 25px;
    letter-spacing: 0.125em;
    font-size: 1.125em;
  }
}
#lead .content {
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  color: #348455;
  font-family: "Noto Serif JP", serif;
  line-height: 2.5;
  text-align: center;
}
@media screen and (max-width: 850px) {
  #lead .content {
    line-height: 2.25;
  }
}
#lead .ideas {
  margin-top: 30px;
  text-align: center;
}
@media screen and (max-width: 850px) {
  #lead .ideas {
    margin-top: 25px;
  }
}
#lead .ideas a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
}
@media screen and (max-width: 850px) {
  #lead .ideas img {
    max-width: 320px;
  }
}

/** ***************************************************************************
 * 設備一覧
 * ************************************************************************* */
.facilityList {
  /**
   * タイトル / 詳細表示
   */
  /**
   * 設備一覧
   */
}
.facilityList ~ .facilityList {
  margin-top: 300px !important;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 850px) {
  .facilityList ~ .facilityList {
    margin-top: 120px !important;
  }
}
.facilityList ~ .facilityList::before {
  content: "";
  width: 100%;
  border-top: 1px solid rgba(0, 0, 0, 0.125);
  position: absolute;
  z-index: 1;
  top: -160px;
  left: 0;
}
@media screen and (max-width: 850px) {
  .facilityList ~ .facilityList::before {
    top: -70px;
  }
}
.facilityList .contentsHeader {
  margin-bottom: 60px;
  padding: 50px 40px;
  border-radius: 50px;
  background: url("../img/quality/detail_bg.png") repeat;
  overflow: hidden;
  /**
   * タイトル
   */
  /**
   * キャッチコピー
   */
  /**
   * 詳細表示
   */
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader {
    margin-bottom: 30px;
    padding: 0;
    border-radius: 0;
    background: none;
  }
}
.facilityList .contentsHeader .contentsTitle {
  font-family: "Noto Serif JP", serif;
  color: #568358;
  line-height: 1.5;
  letter-spacing: 0.125em;
  font-size: 1.75em;
  font-weight: 700;
  text-align: center;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .contentsTitle {
    font-size: 1.5em;
  }
}
.facilityList .contentsHeader .contentsTitle small {
  font-size: 0.5em;
  font-weight: 500;
}
.facilityList .contentsHeader .contentsTitle::before {
  content: attr(data-en);
  line-height: 1.2;
  font-family: "Marcellus";
  font-size: 0.75em;
  text-align: center;
  display: block;
}
.facilityList .contentsHeader .catchcopy {
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-top: 20px;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.125em;
  font-size: 1.375em;
  text-align: center;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .catchcopy {
    margin-top: 15px;
    font-size: 1.25em;
  }
}
.facilityList .contentsHeader .detail {
  margin-top: 50px;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  /**
   * 番号付き画像
   */
  /**
   * 詳細内容
   */
  /**
   * 閉じるボタン
   */
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail {
    margin-top: 30px;
    display: block;
    position: relative;
    z-index: 1;
  }
}
.facilityList .contentsHeader .detail .detailImage {
  width: 49.73%;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailImage {
    width: 100%;
    margin-bottom: 1.125em;
  }
}
.facilityList .contentsHeader .detail .detailImage .memo {
  width: 100%;
  padding: 0 1em;
  font-family: "Noto Serif JP", serif;
  font-size: 0.75em;
  text-align: center;
  position: absolute;
  z-index: 2;
  top: 100%;
  left: 0;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailImage .memo {
    padding: 0;
  }
}
.facilityList .contentsHeader .detail .detailImage .image {
  vertical-align: top;
}
.facilityList .contentsHeader .detail .detailImage .caption {
  padding: 0.125em 0.5em 0.25em;
  color: #fff;
  letter-spacing: 1px;
  line-height: 1.6;
  font-size: 0.625em;
  background-color: #6e6e6e;
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
}
.facilityList .contentsHeader .detail .detailImage [data-position] {
  cursor: pointer;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: 2;
}
.facilityList .contentsHeader .detail .detailContent {
  width: 45.21%;
  background-color: #fff;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailContent {
    width: auto;
    pointer-events: none;
    position: absolute;
    z-index: 2;
    top: 3%;
    right: 3%;
    bottom: 3%;
    left: 3%;
    transition: visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
    visibility: hidden;
    opacity: 0;
  }
}
.facilityList .contentsHeader .detail .detailContent.active {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
}
.facilityList .contentsHeader .detail .detailContent .body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
}
.facilityList .contentsHeader .detail .detailContent .item {
  height: 0;
  overflow: hidden;
  transition: visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
  visibility: hidden;
  opacity: 0;
  /**
   * ① の詳細内容
   */
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailContent .item {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
  }
}
.facilityList .contentsHeader .detail .detailContent .item ~ .item {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
}
.facilityList .contentsHeader .detail .detailContent .item.active {
  height: auto;
  z-index: 1;
  transition: visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
  visibility: visible;
  opacity: 1;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailContent .item.active {
    position: static;
  }
}
.facilityList .contentsHeader .detail .detailContent .item img {
  vertical-align: top;
}
.facilityList .contentsHeader .detail .detailContent .item:nth-of-type(1) {
  height: auto;
  visibility: visible;
  opacity: 1;
}
.facilityList .contentsHeader .detail .detailContent .item:nth-of-type(1):has(~ .active) {
  height: 0;
  visibility: hidden;
  opacity: 0;
}
.facilityList .contentsHeader .detail .close {
  cursor: pointer;
  display: none;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .close {
    width: 7%;
    padding: 1.5%;
    line-height: 0;
    background-color: #348455;
    display: block;
    position: absolute;
    z-index: 10;
    right: 3%;
    bottom: 97%;
    transition: visibility 0.3s ease-in-out 0s, opacity 0.3s ease-in-out 0s;
    visibility: hidden;
    opacity: 0;
  }
}
.facilityList .contentsHeader .detail .close img {
  vertical-align: top;
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .close img {
    filter: brightness(0) invert(1);
  }
}
@media screen and (max-width: 850px) {
  .facilityList .contentsHeader .detail .detailContent.active + .close {
    visibility: visible;
    opacity: 1;
  }
}
.facilityList .facility {
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
  margin-bottom: -30px;
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
}
.facilityList .facility .item {
  width: calc(25% - 20px);
  margin-left: 10px;
  margin-right: 10px;
  margin-bottom: 30px;
  /**
   * 画像
   */
  /**
   * 内容
   */
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item {
    width: calc(50% - 20px);
  }
}
.facilityList .facility .item.medium {
  width: calc(50% - 20px);
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item.medium {
    width: calc(100% - 20px);
  }
}
.facilityList .facility .item.large {
  width: calc(100% - 20px);
}
.facilityList .facility .item .image {
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}
.facilityList .facility .item .image .caption {
  padding: 0.25em 0.75em 0.375em;
  color: #fff;
  letter-spacing: 1px;
  line-height: 1.2;
  font-size: 0.625em;
  background-color: #6e6e6e;
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
}
.facilityList .facility .item .image img {
  vertical-align: top;
}
.facilityList .facility .item.ideas .image::before {
  content: "";
  width: 28px;
  height: 28px;
  background: url("../img/quality/icon_ideas1.png") center center/100% 100% no-repeat;
  position: absolute;
  z-index: 1;
  top: 7px;
  left: 10px;
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item.ideas .image::before {
    width: 20px;
    height: 20px;
  }
}
.facilityList .facility .item .content {
  font-family: "Noto Serif JP", serif;
  line-height: 1.6;
}
.facilityList .facility .item .content dt {
  margin-bottom: 0.5em;
  color: #348455;
  font-size: 14px;
  font-weight: bold;
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item .content dt {
    font-size: 12px;
  }
}
.facilityList .facility .item .content dd {
  letter-spacing: 0;
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item .content dd {
    font-size: 10px;
  }
}
.facilityList .facility .item .content dd small {
  margin-top: 5px;
  line-height: 1.6;
  font-size: 10px;
  display: block;
}
@media screen and (max-width: 850px) {
  .facilityList .facility .item .content dd small {
    font-size: 8px;
  }
}

/** ***************************************************************************
 * ページトップ
 * ************************************************************************* */
.main .pageTop {
  padding: 10px 0;
  background-color: rgba(0, 0, 0, 0.4);
}
.main .pageTop a {
  color: inherit;
  line-height: 1;
  text-decoration: none;
  text-align: center;
  display: block;
}
.main .pageTop a img {
  width: 40px;
  vertical-align: middle;
  transition: filter 0.3s ease-in-out 0s;
  filter: brightness(0) invert(1);
}
@media screen and (max-width: 850px) {
  .main .pageTop a img {
    width: 30px;
  }
}
.main .pageTop a:hover img {
  filter: brightness(1) invert(0);
}
main.quality .page {
  width: 100%;
  max-width: 1246px;
  margin: 0 auto;
}
main.quality .page + .page {
  margin-top: 60px;
}
main.quality .topPageNav {
  margin-top: 180px;
}
main.quality .machine {
  background-color: #f7f3ec;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 55px 0 100px;
}
@media screen and (max-width: 850px) {
  main.quality .machine {
    flex-flow: column nowrap;
    padding: 40px 10px;
  }
}
main.quality .machine__inner {
  width: 100%;
}
main.quality .machine__title {
  margin-bottom: 60px;
}
main.quality .machine__title p {
  font-family: "Baskervville", serif;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: #7a6a56;
  margin-bottom: 15px;
  text-align: center;
}
main.quality .machine__title h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 46.5px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #7a6a56;
}
main.quality .machine__info {
  background-image: linear-gradient(#ece5d9, #ece5d9);
  background-size: 100% 120px;
  background-position: bottom center;
  background-repeat: no-repeat;
  width: 100%;
  padding: 0 0 55px;
  margin: 0 0 100px;
}
@media screen and (max-width: 850px) {
  main.quality .machine__info {
    background-image: none;
    padding: 0;
    margin: 0 0 40px;
  }
}
main.quality .machine__info .wrapper {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  width: 100%;
  max-width: 1045px;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.quality .machine__info .wrapper {
    flex-flow: column nowrap;
    gap: 30px;
  }
}
main.quality .machine__info .image {
  width: 100%;
  max-width: 275px;
  margin-left: 80px;
}
main.quality .machine__info .image::before {
  transform: translate(100%, -50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.quality .machine__info .image {
    margin-left: 0;
    margin: 0 auto;
    padding-bottom: 30px;
  }
  main.quality .machine__info .image::before {
    transform: none;
  }
}
main.quality .machine__info .text {
  width: 100%;
  padding: 30px 0 0 75px;
}
main.quality .machine__info .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 30px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.quality .machine__info .text {
    padding: 0 10px;
  }
}
main.quality .machine__feature .title {
  font-family: "Noto Serif JP", serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 37px;
  letter-spacing: 0.1em;
  text-align: center;
  color: #7a6a56;
  margin-left: 0.4em;
  margin-bottom: 70px;
}
main.quality .machine__feature .title span:not(.s) {
  font-size: 35px;
  line-height: 60px;
  margin-left: 0.4em;
}
main.quality .machine__feature .title .s {
  font-size: 0.7em;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .title {
    font-size: 18px;
    line-height: 32px;
    margin-left: 0;
    margin-bottom: 20px;
  }
  main.quality .machine__feature .title span:not(.s) {
    font-size: 22px;
    line-height: 55px;
    margin-left: 0.2em;
  }
}
main.quality .machine__feature .list-items {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-items {
    gap: 30px;
  }
}
main.quality .machine__feature .list-item {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  gap: 50px;
  background-color: #fff;
  border: 1px solid #bcb0a1;
  border-radius: 26px;
  width: 100%;
  max-width: 1045px;
  padding: 60px;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item {
    border-radius: 13px;
    flex-flow: column nowrap;
    gap: 20px;
    padding: 30px 20px;
  }
}
main.quality .machine__feature .list-item:has(.list-item__note) {
  flex-flow: column nowrap;
  gap: 30px;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item:has(.list-item__note) {
    gap: 10px;
  }
}
main.quality .machine__feature .list-item:has(.list-item__note) .list-item__image {
  display: flex;
  align-items: center;
}
main.quality .machine__feature .list-item__no {
  position: absolute;
  top: 0;
  left: 60px;
  transform: translateY(calc(-50% - 1px));
  background-image: linear-gradient(to bottom, transparent 50%, #ffffff 50%, #ffffff 100%);
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  font-style: italic;
  line-height: 30px;
  letter-spacing: 0.04em;
  vertical-align: baseline;
  color: #7a6a56;
}
main.quality .machine__feature .list-item__no span {
  font-size: 1.5em;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item__no {
    left: 24px;
    font-size: 18px;
  }
}
main.quality .machine__feature .list-item__wrapper {
  display: flex;
  flex-flow: row nowrap;
  gap: 50px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item__wrapper {
    flex-flow: column nowrap;
    gap: 20px;
  }
}
main.quality .machine__feature .list-item__text {
  width: 100%;
}
main.quality .machine__feature .list-item__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 30px;
  letter-spacing: 0.1em;
  color: #7a6a56;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item__text p {
    font-size: 18px;
  }
}
main.quality .machine__feature .list-item__text p + p {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #000;
  margin-top: 35px;
}
@media screen and (max-width: 850px) {
  main.quality .machine__feature .list-item__text p + p {
    margin-top: 10px;
  }
}
main.quality .machine__feature .list-item__text .note {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 8px;
  line-height: 16px;
  letter-spacing: 0.08em;
}
main.quality .machine__feature .list-item__image {
  width: 100%;
  max-width: 366px;
}
main.quality .machine__feature .list-item__image span {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 8px;
  line-height: 16px;
  letter-spacing: 0.08em;
}
main.quality .machine__feature .list-item__note {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 8px;
  line-height: 16px;
  letter-spacing: 0.08em;
}
main.quality .zeh {
  background-color: #f7f3ec;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 55px 0 100px;
}
main.quality .zeh__inner {
  width: 100%;
}
main.quality .zeh__title {
  margin: 130px 0 60px;
}
main.quality .zeh__title h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 46.5px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #7a6a56;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__title h3 {
    font-size: 24px;
    line-height: 34px;
  }
}
main.quality .zeh__info {
  display: flex;
  flex-flow: row nowrap;
  gap: 40px;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 90px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__info {
    flex-flow: column nowrap;
    align-items: center;
    gap: 20px;
  }
}
main.quality .zeh__info .image {
  width: 100%;
  max-width: 90px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__info .image {
    max-width: 120px;
  }
}
main.quality .zeh__info .text {
  border-left: 1px solid #7a6a56;
  padding-left: 40px;
}
main.quality .zeh__info .text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 30px;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__info .text {
    border: none;
    padding: 0 20px;
  }
  main.quality .zeh__info .text p {
    font-size: 13px;
    line-height: 26px;
  }
}
main.quality .zeh__upper {
  display: flex;
  flex-flow: row nowrap;
  gap: 70px;
  width: 100%;
  max-width: 1045px;
  margin: 0 auto 80px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__upper {
    flex-flow: column nowrap;
    gap: 20px;
    padding: 0 10px;
  }
}
main.quality .zeh__upper .image {
  z-index: 2;
  width: 100%;
  max-width: 400px;
}
main.quality .zeh__upper .text {
  width: 100%;
}
main.quality .zeh__upper .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 35px;
  letter-spacing: 0.15em;
  color: #7a6a56;
}
main.quality .zeh__upper .text p:first-child {
  position: relative;
}
main.quality .zeh__upper .text p:first-child::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(calc(-100% - 20px), 100%);
  background-color: #7a6a56;
  width: 100px;
  height: 1px;
}
main.quality .zeh__upper .text p + p {
  font-size: 15px;
  line-height: 30px;
  color: #000;
  margin-top: 25px;
}
main.quality .zeh__merit {
  background-color: #ece5d9;
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  gap: 60px;
  width: 100%;
  padding: 70px 0;
  margin: 0 0 90px;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__merit {
    flex-flow: column nowrap;
    gap: 20px;
  }
}
main.quality .zeh__merit .caption {
  padding: 0.25em 0.75em 0.375em;
  letter-spacing: 1px;
  line-height: 1.2;
  font-size: 0.625em;
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
}
main.quality .zeh__merit .title p {
  font-family: "Noto Serif JP", serif;
  font-size: 26px;
  line-height: 32px;
  text-align: center;
  color: #684526;
}
main.quality .zeh__merit .title p span {
  font-size: 0.8em;
}
main.quality .zeh__merit .merit-items {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  gap: 20px;
  width: 100%;
  max-width: 785px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__merit .merit-items {
    flex-flow: column nowrap;
    gap: 40px;
    padding: 0 20px;
    margin: 60px 0;
  }
}
main.quality .zeh__merit .merit-item {
  position: relative;
  width: 100%;
}
main.quality .zeh__merit .merit-item__no {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-60%);
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 40px;
  letter-spacing: 0.1em;
  color: #7a6a56;
}
main.quality .zeh__merit .merit-item__no span {
  font-size: 1.5em;
}
main.quality .zeh__merit .merit-item .image {
  width: 100%;
}
main.quality .zeh__merit .merit-item .image img {
  width: 100%;
}
main.quality .zeh__merit .merit-item .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 25px;
  letter-spacing: 0.06em;
}
main.quality .zeh__content {
  width: 100%;
  max-width: 1045px;
  margin: 0 auto 80px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__content {
    padding: 0 20px;
  }
}
main.quality .zeh__content .title p {
  font-family: "Noto Serif JP", serif;
  font-size: 22px;
  line-height: 25px;
  letter-spacing: 0.15em;
  text-align: center;
}
main.quality .zeh__content .title p + p {
  font-size: 15px;
  line-height: 30px;
  letter-spacing: 0.08em;
  margin-top: 35px;
}
main.quality .zeh__content .content {
  display: flex;
  flex-flow: row nowrap;
  gap: 60px;
  margin: 60px 0 0;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__content .content {
    flex-flow: column nowrap;
  }
}
main.quality .zeh__content .image {
  z-index: 2;
  width: 100%;
  max-width: 400px;
}
main.quality .zeh__content .text {
  width: 100%;
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__content .text {
    padding: 0;
  }
}
main.quality .zeh__content .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 35px;
  letter-spacing: 0.15em;
  color: #7a6a56;
}
main.quality .zeh__content .text p:first-child {
  position: relative;
}
main.quality .zeh__content .text p:first-child::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(calc(50% + 80px), 100%);
  background-color: #7a6a56;
  width: 100%;
  height: 1px;
}
@media screen and (max-width: 850px) {
  main.quality .zeh__content .text p:first-child::before {
    display: none;
  }
}
main.quality .zeh__content .text p + p {
  font-size: 15px;
  line-height: 30px;
  color: #000;
  margin-top: 25px;
}

main.plan {
  /* plan-detail page */
}
main.plan .mv {
  background-image: url("../img/plan/bg_plan.png");
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 364px;
}
main.plan .mv::before {
  color: #fff;
}
main.plan .mv__inner {
  display: flex;
  align-items: flex-end;
  width: 100%;
  height: 100%;
  padding: 0 0 60px;
}
main.plan .mv__inner h2 {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
main.plan:has(.plan-detail) .mv {
  background-image: none;
  background-color: #f5f3eb;
}
main.plan:has(.plan-detail) .mv::before {
  content: "";
}
main.plan:has(.plan-detail) h2 {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 32px;
  line-height: 40px;
  color: #7a6a56;
  padding-left: 0.25em;
  margin: 0 auto;
}
main.plan:has(.plan-detail) h2::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 100%);
  background-color: #7a6a56;
  width: 100%;
  height: 1px;
}
main.plan .intro {
  background-image: url("../img/plan/bg_intro.png"), linear-gradient(white, white);
  background-size: cover, cover;
  background-position: bottom center, center;
  width: 100%;
  padding: 90px 20px;
}
main.plan .intro h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 46.5px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #7a6a56;
  margin: 0 0 48px;
}
main.plan .intro p {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 37px;
  letter-spacing: 0.15em;
  text-align: center;
}
main.plan .intro p + p {
  font-size: 15px;
  line-height: 33px;
  margin-top: 50px;
}
main.plan .section-tabs {
  width: calc(100% - 40px);
  max-width: 800px;
  margin: 50px auto 90px;
}
main.plan .section-tabs > .tabs {
  display: flex;
  flex-flow: row nowrap;
  gap: 20px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.plan .section-tabs > .tabs {
    width: 100%;
    flex-flow: column nowrap;
    gap: 20px;
    margin: 0 auto;
  }
}
main.plan .section-tabs > .tabs .tab {
  background-color: white;
  border: 1px solid #7a6a56;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
  color: #7a6a56;
  padding: 20px 10px;
}
@media screen and (max-width: 850px) {
  main.plan .section-tabs > .tabs .tab {
    font-size: 14px;
    padding: 20px 0;
  }
}
main.plan .section-tabs > .tabs .tab.current {
  background-color: #7a6a56;
  color: white;
}
main.plan .section-tabs > .tabs .tab:hover {
  background-color: #a39a56;
  color: white;
}
main.plan .room {
  background-color: #f6f2ee;
  width: 100%;
  padding: 70px 0;
}
main.plan .room__mv {
  background-image: url("../img/plan/bg_room-plan.png");
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 364px;
}
main.plan .room__mv::before {
  color: #fff;
}
@media screen and (max-width: 850px) {
  main.plan .room__mv {
    margin: 0;
  }
}
main.plan .room__mv__inner {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
}
main.plan .room__mv__inner h2 {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 23px;
  line-height: 35px;
  letter-spacing: 0.25em;
  text-align: center;
  color: #fff;
}
main.plan .room__inner {
  position: relative;
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .room__inner .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2em;
  text-align: center;
  margin-bottom: 80px;
}
main.plan .room__inner .title__en {
  width: 293px;
  margin: 0 auto 10px;
}
main.plan .room__map {
  width: calc(100% - 60px);
  padding: 50px 100px 0;
  margin: 90px auto 0;
}
@media screen and (max-width: 850px) {
  main.plan .room__map {
    width: 100%;
    padding: 20px;
    margin: 60px auto 0;
  }
}
main.plan .room__map .image {
  position: relative;
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
}
main.plan .room__map .image p {
  position: absolute;
  top: 100%;
  right: 0;
  transform: translateY(100%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 12px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.plan .room__map .image p {
    font-size: 10px;
  }
}
main.plan .room__plans {
  width: 100%;
  padding-top: 150px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans {
    padding-top: 60px;
  }
}
main.plan .room__plans .plan-items {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  gap: 30px;
  width: 100%;
}
main.plan .room__plans .plan-items::after {
  content: "";
  width: calc((100% - 120px) / 3);
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  main.plan .room__plans .plan-items::after {
    display: none;
  }
}
main.plan .room__plans .plan-item {
  border-top: 2px solid #7a6a56;
  background-color: white;
  width: calc((100% - 120px) / 3);
  min-width: 300px;
  padding: 15px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item {
    width: 100%;
    min-width: 100%;
    position: relative;
  }
}
main.plan .room__plans .plan-item__detail {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  height: -moz-fit-content;
  height: fit-content;
  min-height: 130px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail {
    flex-flow: column nowrap;
  }
}
main.plan .room__plans .plan-item__detail .type-wrapper {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 82px;
}
main.plan .room__plans .plan-item__detail .type-wrapper > .note {
  border: 1px solid #7a6a56;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1;
  color: #7a6a56;
  padding: 5px 10px;
  margin: 0 0 15px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail .type-wrapper {
    flex-flow: row nowrap;
    align-items: center;
    gap: 10px;
    width: 100%;
  }
  main.plan .room__plans .plan-item__detail .type-wrapper > .note {
    height: -moz-fit-content;
    height: fit-content;
    text-align: center;
    line-height: 1.6;
    padding: 5px 10px;
    margin: 0;
  }
}
main.plan .room__plans .plan-item__detail .type {
  background-color: #f3efe5;
  width: 65px;
  height: 65px;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 18px;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 10px;
}
main.plan .room__plans .plan-item__detail .type span {
  font-size: 26px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail .type {
    width: 55px;
    height: 55px;
    font-size: 10px;
    line-height: 14px;
  }
  main.plan .room__plans .plan-item__detail .type span {
    font-size: 20px;
  }
}
main.plan .room__plans .plan-item__detail .wrapper {
  padding: 10px 10px 10px 0;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail .wrapper {
    min-height: 96px;
  }
}
main.plan .room__plans .plan-item__detail .spec {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0.15em;
  text-align: right;
  margin-top: 10px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail .spec {
    font-size: 11px;
    line-height: 20px;
    text-align: left;
  }
}
main.plan .room__plans .plan-item__detail .spec .xl {
  font-size: 1.5em;
}
main.plan .room__plans .plan-item__detail .spec .l {
  font-size: 1.2em;
}
main.plan .room__plans .plan-item__detail .spec .s {
  font-size: 0.6em;
}
main.plan .room__plans .plan-item__detail .space {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0.15em;
  text-align: right;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__detail .space {
    font-size: 11px;
    line-height: 20px;
    text-align: left;
  }
}
main.plan .room__plans .plan-item__detail .space span {
  font-size: 1.4em;
}
main.plan .room__plans .plan-item__promo {
  border-top: 1px solid #7a6a56;
  border-bottom: 1px solid #7a6a56;
  background-color: #f3efe5;
  padding: 10px 0;
  margin: 10px 0;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__promo {
    margin: 0;
  }
}
main.plan .room__plans .plan-item__promo p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 20px;
  letter-spacing: 0.2em;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__promo p {
    font-size: 9px;
    line-height: 1.8;
    letter-spacing: 0.08em;
  }
}
main.plan .room__plans .plan-item__flat {
  width: -moz-fit-content;
  width: fit-content;
  height: 290px;
  margin: 40px auto;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__flat {
    height: auto;
    margin: 30px auto 50px;
  }
}
main.plan .room__plans .plan-item__flat img {
  width: auto;
  max-height: 100%;
}
main.plan .room__plans .plan-item__more {
  width: 100%;
  text-align: right;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__more {
    position: absolute;
    bottom: 10px;
    left: 0;
    text-align: center;
  }
}
main.plan .room__plans .plan-item__more button {
  position: relative;
  border: none;
  background: none;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.06em;
  padding: 8px 25px 8px 15px;
  color: #000;
}
main.plan .room__plans .plan-item__more button:after {
  content: "";
  position: absolute;
  top: calc(50% + 1px);
  right: 8px;
  transform: translateY(-50%);
  background: url("../img/common/icon_arrow1.svg") no-repeat;
  background-size: cover;
  background-position: center;
  filter: invert(1);
  width: 8px;
  aspect-ratio: 9/14;
}
main.plan .room__plans .plan-item__more .note {
  position: absolute;
  bottom: 5px;
  left: 0;
  background-color: #f5d49c;
  padding: 2px 10px;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
}
@media screen and (max-width: 850px) {
  main.plan .room__plans .plan-item__more .note {
    bottom: 31px;
    left: 50%;
    transform: translateX(-50%);
    padding: 0 8px;
    font-size: 10px;
    white-space: nowrap;
  }
}
main.plan .facility {
  background-color: #faf6f0;
  width: 100%;
  padding: 10px 0 70px;
}
main.plan .facility__inner {
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .facility__upper {
  display: flex;
  flex-flow: row nowrap;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.plan .facility__upper {
    flex-flow: column nowrap;
  }
}
main.plan .facility__upper .image {
  z-index: 1;
  position: relative;
  width: 100%;
}
main.plan .facility__upper .image::before {
  right: auto;
  left: 0;
  color: white;
}
main.plan .facility__upper .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.plan .facility__upper p {
  position: relative;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 38px;
  letter-spacing: 0.15em;
  padding-left: 65px;
  margin: 55px 0 0;
}
main.plan .facility__upper p::after {
  content: "";
  z-index: 0;
  position: absolute;
  top: 18px;
  left: 0;
  transform: translateX(calc(-100% + 45px));
  background-color: black;
  width: 100%;
  height: 1px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__upper p {
    font-size: 22px;
    padding-left: 0;
    margin: 0;
  }
  main.plan .facility__upper p::after {
    display: none;
  }
}
main.plan .facility__content {
  width: 100%;
}
main.plan .facility__content.drying {
  max-width: calc(100% - 320px);
  position: relative;
  background-color: white;
  padding: 130px 0 100px;
  margin: -50px 160px 0;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.drying {
    max-width: none;
    padding: 60px 0 80px;
    margin: 40px 0 0;
  }
}
main.plan .facility__content.drying .side-ttl {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(calc(50% - 120px), -50%);
  width: 580px;
  height: 220px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.drying .side-ttl {
    width: 100%;
    transform: none;
  }
}
main.plan .facility__content.drying .content-title {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 40px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.drying .content-title {
    margin: 60px auto 20px;
  }
}
main.plan .facility__content.drying .content-title p {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0.04em;
  text-align: center;
}
main.plan .facility__content.drying .content-title .wrapper {
  display: flex;
  flex-flow: row nowrap;
  align-items: flex-end;
  gap: 10px;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.drying .content-title .wrapper {
    flex-flow: column nowrap;
    align-items: center;
    gap: 10px;
    margin: 20px 0 0;
  }
}
main.plan .facility__content.drying .content-title .wrapper p {
  font-size: 36px;
  line-height: 36px;
  color: #7a6a56;
}
main.plan .facility__content.drying .content-title .wrapper p span {
  font-size: 50px;
}
main.plan .facility__content.drying .content-title .wrapper .logo {
  width: 145px;
  height: 42px;
}
main.plan .facility__content.drying .content-title .wrapper .deco {
  width: 42px;
  height: 60px;
  rotate: 15deg;
  filter: brightness(0) saturate(100%) invert(77%) sepia(6%) saturate(331%) hue-rotate(12deg) brightness(89%) contrast(83%);
}
main.plan .facility__content.drying p.detail {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0 0 70px;
}
main.plan .facility__content.drying p.detail > .notation {
  font-size: 0.7em;
  margin-left: -0.5em;
}
main.plan .facility__content.drying .merit-items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  -moz-column-gap: 15px;
       column-gap: 15px;
  row-gap: 35px;
  padding: 0 170px;
  margin: 0 0 100px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.drying .merit-items {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    padding: 0 10px;
    margin: 0 0 60px;
  }
}
main.plan .facility__content.drying .merit-item {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 15px;
}
main.plan .facility__content.drying .merit-item__image {
  border-radius: 15px;
  background-color: #f7f3ec;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 110px;
}
main.plan .facility__content.drying .merit-item p {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 20px;
  letter-spacing: 0.04em;
  text-align: center;
}
main.plan .facility__content.points {
  padding: 110px 0;
}
main.plan .facility__content.points .content-title {
  margin: 0 0 35px;
}
main.plan .facility__content.points .content-title p {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.08em;
  text-align: center;
}
main.plan .facility__content.points p.detail {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0 0 70px;
}
main.plan .facility__content.points .point-items {
  counter-reset: list-counter;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
  padding: 0 250px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.points .point-items {
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 15px;
         column-gap: 15px;
    row-gap: 60px;
    padding: 0;
  }
}
main.plan .facility__content.points .point-item {
  counter-increment: list-counter;
  display: flex;
  flex-flow: column nowrap;
  gap: 10px;
}
main.plan .facility__content.points .point-item .image {
  position: relative;
  width: 100%;
}
main.plan .facility__content.points .point-item .image::before {
  color: white;
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.8)) drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.8));
}
main.plan .facility__content.points .point-item .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.plan .facility__content.points .point-item .image p {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-50%);
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 37px;
  letter-spacing: 0.08em;
  color: #7a6a56;
}
main.plan .facility__content.points .point-item .image p::after {
  content: "." counter(list-counter);
  display: inline-block;
  font-size: 1.5em;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.points .point-item .image p {
    transform: translateY(-100%);
  }
}
main.plan .facility__content.points .point-item .text p {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: 0.15em;
  text-align: center;
}
main.plan .facility__content.points .point-item .text p + p {
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0.08em;
  text-align: left;
  margin-top: 20px;
}
@media screen and (max-width: 850px) {
  main.plan .facility__content.points .point-item .text p {
    font-size: 16px;
  }
  main.plan .facility__content.points .point-item .text p + p {
    font-size: 13px;
  }
}
main.plan .facility__more {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 10px;
  width: 100%;
}
main.plan .facility__more p {
  font-family: "Noto Serif JP", serif;
  font-size: 19px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #7a6a56;
}
main.plan .facility__more .btn__entry a {
  font-size: 22px;
}
main.plan .kaji {
  background-image: url("../img/plan/bg_kaji.png");
  background-size: cover;
  padding: 110px 0;
}
main.plan .kaji__inner {
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .kaji__title {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
}
@media screen and (max-width: 850px) {
  main.plan .kaji__title {
    font-size: 20px;
  }
}
main.plan .kaji__detail {
  display: flex;
  flex-flow: row nowrap;
  gap: 60px;
  padding: 0 160px;
  margin: 80px 0;
}
@media screen and (max-width: 850px) {
  main.plan .kaji__detail {
    flex-flow: column nowrap;
    gap: 20px;
    padding: 0;
    margin: 40px 0 60px;
  }
}
main.plan .kaji__detail .wrapper {
  flex-shrink: 0;
  display: flex;
  flex-flow: column nowrap;
  gap: 10px;
}
main.plan .kaji__detail .wrapper p {
  font-family: "Noto Serif JP", serif;
  color: #7a6a56;
  text-align: center;
}
main.plan .kaji__detail .wrapper p:first-child {
  font-size: 22px;
  line-height: 39px;
  letter-spacing: 0.3em;
}
main.plan .kaji__detail .wrapper p:nth-child(2) {
  font-family: "Baskervville", serif;
  font-size: 38px;
  line-height: 39px;
  letter-spacing: 0.08em;
  margin: 0 0 30px;
}
main.plan .kaji__detail .wrapper p:last-child {
  font-size: 18px;
  line-height: 20px;
  letter-spacing: 0.2em;
}
main.plan .kaji__detail > p {
  border-left: 1px solid #7a6a56;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 32px;
  letter-spacing: 0.15em;
  padding-left: 60px;
}
@media screen and (max-width: 850px) {
  main.plan .kaji__detail > p {
    border-left: none;
    padding-left: 0;
  }
}
main.plan .kaji__image {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
main.plan .kaji__image.img-caption::before {
  bottom: 16px;
  right: 10%;
}
main.plan .kaji__image .note {
  font-family: serif;
  text-align: right;
  font-size: 12px;
}
@media screen and (max-width: 850px) {
  main.plan .kaji__image .note {
    font-size: 10px;
  }
}
main.plan .kaji__image img {
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.plan .kaji__image.img-caption {
    overflow: hidden;
    height: 350px;
    margin: 0 0 40px;
  }
  main.plan .kaji__image.img-caption::before {
    bottom: 40px;
    right: 0;
  }
  main.plan .kaji__image.img-caption img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(calc(-50% + 17px), -50%);
    width: auto;
    max-width: none;
    height: 330px;
  }
}
main.plan .moatelier {
  background-color: #ebe5d7;
  background-image: url("../img/plan/bg_moat-ptn.png");
  background-size: cover;
  background-position: center;
  background-blend-mode: overlay;
  width: 100%;
  padding: 120px 0;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier {
    padding: 60px 0 80px;
  }
}
main.plan .moatelier__inner {
  position: relative;
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .moatelier__title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #7a6a56;
  margin: 0 0 70px;
}
main.plan .moatelier__title h3 {
  font-family: "Baskervville", serif;
  font-weight: 500;
  font-size: 65px;
  line-height: 33px;
  letter-spacing: 0.06em;
  margin: 40px 0;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__title h3 {
    font-size: 42px;
  }
}
main.plan .moatelier__content {
  position: relative;
  background-color: #f5eee5;
  background-image: url("../img/plan/bg_moat-content-ptn.png");
  background-size: cover;
  background-position: center;
  background-blend-mode: overlay;
  width: calc(100% - 40px);
  max-width: 1046px;
  padding: 65px 80px;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__content {
    width: 100%;
    padding: 20px;
  }
}
main.plan .moatelier__content .icon {
  position: absolute;
  top: 20px;
  right: 60px;
  width: 128px;
  height: 135px;
}
main.plan .moatelier__content .content-title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  color: #7a6a56;
  margin: 0 0 30px;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__content .content-title {
    font-size: 18px;
  }
}
main.plan .moatelier__content p.detail {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.08em;
  margin: 0 0 60px;
}
main.plan .moatelier__content .content-plan {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__content .content-plan {
    flex-flow: column-reverse nowrap;
    gap: 60px;
  }
}
main.plan .moatelier__content .content-plan__flat {
  width: 100%;
  text-align: center;
}
main.plan .moatelier__content .content-plan__flat img {
  width: 100%;
  max-width: 388px;
}
main.plan .moatelier__content .content-plan__flat span {
  display: block;
  width: 100%;
  max-width: 388px;
  font-family: "Noto Serif JP", serif;
  font-size: 10px;
}
main.plan .moatelier__content .content-plan__detail {
  width: 100%;
}
main.plan .moatelier__content .content-plan__detail .type {
  background-color: #a08f7a;
  width: -moz-fit-content;
  width: fit-content;
  padding: 10px 20px;
  margin-bottom: 20px;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 35px;
  letter-spacing: 0.1em;
  color: white;
}
main.plan .moatelier__content .content-plan__detail .type span {
  font-size: 34px;
  margin-right: 0.1em;
}
main.plan .moatelier__content .content-plan__detail .spec {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 30px;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}
@media screen and (min-width: 850px) {
  main.plan .moatelier__content .content-plan__detail .spec {
    white-space: nowrap;
  }
}
main.plan .moatelier__content .content-plan__detail .spec .xl {
  font-size: 1.5em;
}
main.plan .moatelier__content .content-plan__detail .spec .l {
  font-size: 1.2em;
}
main.plan .moatelier__content .content-plan__detail .spec .s {
  font-size: 0.7em;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__content .content-plan__detail .spec {
    font-size: 18px;
  }
}
main.plan .moatelier__content .content-plan__detail .space {
  border-bottom: 1px solid black;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 35px;
  letter-spacing: 0.1em;
  padding-bottom: 20px;
  margin-bottom: 20px;
}
main.plan .moatelier__content .content-plan__detail .space .xl {
  font-size: 1.5em;
}
main.plan .moatelier__content .content-plan__detail .space .l {
  font-size: 1.2em;
}
@media screen and (max-width: 850px) {
  main.plan .moatelier__content .content-plan__detail .space {
    font-size: 16px;
  }
}
main.plan .moatelier__content .content-plan__detail .detail {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.15em;
  margin-bottom: 40px;
}
main.plan .moatelier__content .content-plan__detail .images {
  display: flex;
  flex-flow: row nowrap;
  gap: 8px;
  width: 100%;
}
main.plan .moatelier__content .content-plan__detail .images .image {
  width: 100%;
}
main.plan .moatelier__content .content-plan__detail .images .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main.plan .moatelier__content .content-plan__detail .images .image.img-caption::before {
  transform: translateY(100%);
}
main.plan .spacious {
  background-color: #f6f2ee;
  width: 100%;
  padding: 90px 0 150px;
  margin: 0 0 100px;
}
@media screen and (max-width: 850px) {
  main.plan .spacious {
    padding: 90px 0 100px;
  }
}
main.plan .spacious__inner {
  position: relative;
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .spacious__inner .sub-ttl {
  width: 350px;
  margin: 0 auto -40px;
}
main.plan .spacious__inner .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  margin: 0 0 60px;
}
main.plan .spacious__inner .space-items {
  display: flex;
  flex-flow: row nowrap;
  gap: 45px;
  width: calc(100% - 40px);
  max-width: 910px;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.plan .spacious__inner .space-items {
    flex-flow: column nowrap;
    gap: 40px;
    width: 100%;
  }
}
main.plan .spacious__inner .space-item {
  width: 100%;
}
main.plan .spacious__inner .space-item__image {
  width: 100%;
  margin-bottom: 20px;
}
main.plan .spacious__inner .space-item__image::before {
  font-family: "Noto Serif JP", serif;
  padding: 10px 10px;
  letter-spacing: 0.1em;
}
main.plan .spacious__inner .space-item__image img {
  width: 100%;
}
main.plan .spacious__inner .space-item__text p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 35px;
  letter-spacing: 0.15em;
}
main.plan .spacious__inner .space-item__text p + p {
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.1em;
  margin-top: 10px;
}
main.plan .spacious__inner .space-item__text p + p .note {
  font-size: 0.8em;
}
@media screen and (max-width: 850px) {
  main.plan .spacious__inner .space-item__text p {
    font-size: 20px;
    text-align: center;
  }
}
main.plan .terrace {
  background: url("../img/plan/bg_terrace.png") no-repeat bottom center/80%;
  width: 100%;
  padding: 0 0 920px;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.plan .terrace {
    background-size: 100% auto, cover;
    padding: 0 0 260px;
  }
}
main.plan .terrace__inner {
  position: relative;
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.plan .terrace__inner {
    padding-top: 100px;
  }
}
main.plan .terrace__inner .side-ttl {
  position: absolute;
  top: 0;
  left: 100px;
  width: 427px;
}
@media screen and (max-width: 850px) {
  main.plan .terrace__inner .side-ttl {
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 85%;
  }
}
main.plan .terrace__title p {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: right;
}
main.plan .terrace__title p + p {
  font-size: 15px;
  line-height: 33px;
  letter-spacing: 0.1em;
  margin-top: 40px;
}
@media screen and (max-width: 850px) {
  main.plan .terrace__title p {
    font-size: 22px;
    text-align: left;
  }
}
main.plan .terrace .note {
  position: absolute;
  bottom: 100px;
  right: 15%;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.plan .terrace .note {
    bottom: 0;
    right: 20px;
    font-size: 12px;
  }
}
main.plan .topPageNav {
  margin-top: 80px;
}
main.plan .plan-detail {
  background-color: #f5f3eb;
  width: 100%;
  padding: 140px 0 100px;
  margin: 0 0 100px;
}
main.plan .plan-detail__inner {
  position: relative;
  width: 100%;
  max-width: 1406px;
  padding: 0 20px;
  margin: 0 auto;
}
main.plan .plan-detail__content {
  border-top: 4px solid #7a6a56;
  background-color: white;
  width: 100%;
  max-width: 1045px;
  margin: 0 auto;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail__content {
    padding: 10px;
  }
}
main.plan .plan-detail__button {
  display: flex;
  flex-flow: row nowrap;
  gap: 40px;
  justify-content: center;
  margin: 80px 0 0;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail__button {
    flex-flow: column nowrap;
    gap: 20px;
  }
  main.plan .plan-detail__button .btn {
    width: 100%;
  }
}
main.plan .plan-detail .plan-item {
  width: 100%;
  padding: 40px 55px;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item {
    width: 100%;
    padding: 10px;
  }
}
main.plan .plan-detail .plan-item__detail {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
}
main.plan .plan-detail .plan-item__detail .type-wrapper {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 10px;
}
main.plan .plan-detail .plan-item__detail .type-wrapper > .note {
  width: 100%;
  border: 1px solid #7a6a56;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #7a6a56;
  padding: 5px 10px;
  margin: 0 0 15px;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .type-wrapper {
    gap: 6px;
  }
  main.plan .plan-detail .plan-item__detail .type-wrapper > .note {
    font-size: 12px;
    line-height: 1.6;
    white-space: nowrap;
    padding: 4px 8px;
    margin: 0;
  }
}
main.plan .plan-detail .plan-item__detail .type {
  background-color: #f3efe5;
  height: -moz-fit-content;
  height: fit-content;
  font-family: "Noto Serif JP", serif;
  font-size: 35px;
  line-height: 35px;
  letter-spacing: 0.15em;
  text-align: center;
  padding: 30px;
}
main.plan .plan-detail .plan-item__detail .type span {
  font-size: 50px;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .type {
    width: 54px;
    height: 54px;
    font-size: 14px;
    line-height: 15px;
    padding: 10px;
  }
  main.plan .plan-detail .plan-item__detail .type span {
    font-size: 20px;
  }
}
main.plan .plan-detail .plan-item__detail .wrapper {
  padding: 10px 10px 10px 0;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .wrapper {
    padding: 0;
  }
}
main.plan .plan-detail .plan-item__detail .spec {
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  line-height: 40px;
  letter-spacing: 0.15em;
}
main.plan .plan-detail .plan-item__detail .spec .xl {
  font-size: 1.5em;
}
main.plan .plan-detail .plan-item__detail .spec .l {
  font-size: 1.2em;
}
main.plan .plan-detail .plan-item__detail .spec .s {
  font-size: 0.6em;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .spec {
    font-size: 18px;
    line-height: 20px;
  }
}
main.plan .plan-detail .plan-item__detail .space {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 0.15em;
  margin-top: 10px;
}
main.plan .plan-detail .plan-item__detail .space span {
  font-size: 1.8em;
}
main.plan .plan-detail .plan-item__detail .space::before {
  content: "□";
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .space {
    font-size: 14px;
    line-height: 16px;
    text-align: right;
  }
}
main.plan .plan-detail .plan-item__detail .other {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 20px;
  letter-spacing: 0.15em;
  margin-top: 6px;
}
main.plan .plan-detail .plan-item__detail .other::before {
  content: "□";
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__detail .other {
    font-size: 12px;
    line-height: 12px;
  }
  main.plan .plan-detail .plan-item__detail .other span {
    display: block;
    margin-left: 10px;
  }
}
main.plan .plan-detail .plan-item__promo {
  border-top: 1px solid #7a6a56;
  border-bottom: 1px solid #7a6a56;
  background-color: #f3efe5;
  padding: 10px 0;
  margin: 20px 0;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__promo {
    padding: 10px 0;
    margin: 10px 0;
  }
}
main.plan .plan-detail .plan-item__promo p {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 39px;
  letter-spacing: 0.2em;
  text-align: center;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__promo p {
    font-size: 14px;
    line-height: 22px;
  }
}
main.plan .plan-detail .plan-item__tab {
  display: flex;
  flex-flow: row nowrap;
  gap: 20px;
  width: 100%;
  margin: 10px 0 0;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__tab {
    width: 100%;
    flex-flow: column nowrap;
    gap: 20px;
    margin: 20px auto 0;
  }
}
main.plan .plan-detail .plan-item__tab > .tab {
  cursor: pointer;
  background-color: white;
  border: 1px solid #7a6a56;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
  color: #7a6a56;
  padding: 20px 10px;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__tab > .tab {
    font-size: 14px;
    padding: 20px 0;
  }
}
main.plan .plan-detail .plan-item__tab > .tab.current {
  background-color: #7a6a56;
  color: white;
}
main.plan .plan-detail .plan-item__tab > .tab:hover {
  background-color: #a39a56;
  color: white;
}
main.plan .plan-detail .plan-item__flat {
  width: 100%;
  max-width: 420px;
  margin: 80px auto 40px;
}
main.plan .plan-detail .plan-item__flat img {
  width: 100%;
}
main.plan .plan-detail .plan-item__note {
  width: 100%;
  max-width: 570px;
}
main.plan .plan-detail .plan-item__note img {
  width: 100%;
}
main.plan .plan-detail .plan-item__terrace {
  width: 100%;
  padding: 50px 55px 80px;
  font-family: "Noto Serif JP", serif;
  position: relative;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__terrace {
    padding: 20px 10px;
  }
}
main.plan .plan-detail .plan-item__terrace::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 85%;
  border-top: 1px solid #7a6a56;
}
main.plan .plan-detail .plan-item__terrace .sub-ttl {
  font-weight: "Baskervville", serif;
  color: #7a6a56;
  text-align: center;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__terrace .sub-ttl {
    font-size: 18px;
  }
}
main.plan .plan-detail .plan-item__terrace .catch {
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__terrace .catch {
    font-size: 14px;
    line-height: 1.6;
  }
}
main.plan .plan-detail .plan-item__terrace .txt {
  width: 90%;
  margin-inline: auto;
  background: #faf8f1;
  padding: 40px 60px;
  font-size: 16px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__terrace .txt {
    width: 100%;
    padding: 20px;
    font-size: 14px;
    letter-spacing: 0.04em;
  }
}
main.plan .plan-detail .plan-item__terrace .image {
  width: 100%;
  margin-bottom: 20px;
}
main.plan .plan-detail .plan-item__terrace .image img {
  width: 100%;
}
main.plan .plan-detail .plan-item__terrace .image.img-caption::before {
  bottom: 50px;
  right: 50px;
}
@media screen and (max-width: 850px) {
  main.plan .plan-detail .plan-item__terrace .image.img-caption::before {
    bottom: 0;
    right: 10px;
  }
}
main.plan .plan-detail .plan-item:has(.plan-item__tab) .plan-item__flat {
  margin: 40px auto;
}
main.plan .plan-detail .plan-item:has(.plan-item__tab) .plan-item__flat img {
  display: none;
}
main.plan .plan-detail .plan-item:has(.plan-item__tab) .plan-item__flat img.visible {
  display: block;
}
main.plan .plan-detail .plan-item:has(.plan-item__tab) .plan-item__note img {
  display: none;
}
main.plan .plan-detail .plan-item:has(.plan-item__tab) .plan-item__note img.visible {
  display: block;
}

main.map .map {
  width: 100%;
  padding: 0 0 200px;
}
main.map .map__inner {
  width: 100%;
}
main.map .map__title {
  position: relative;
  width: 100%;
  padding: 0 0 5px;
  margin: 180px 0 100px;
}
main.map .map__title::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #a3805a;
  width: 42px;
  height: 1px;
}
main.map .map__title p {
  font-family: "Baskervville", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2em;
  text-align: center;
  color: #a3805a;
}
main.map .map__gmaps {
  width: 100%;
  max-width: 1040px;
  padding: 0 20px;
  margin: 0 auto;
}
main.map .map__button {
  margin: 60px auto 0;
}

main.outline .outline {
  width: 100%;
}
main.outline .outline__inner {
  width: 100%;
}
@media screen and (max-width: 850px) {
  main.outline .outline__inner {
    padding: 0 20px;
  }
}
main.outline .outline__title {
  position: relative;
  width: 100%;
  padding: 0 0 5px;
  margin: 180px 0 100px;
}
main.outline .outline__title::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #a3805a;
  width: 42px;
  height: 1px;
}
main.outline .outline__title p {
  font-family: "Baskervville", serif;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2em;
  text-align: center;
  color: #a3805a;
}
main.outline .outline__content {
  width: 100%;
  max-width: 910px;
  margin: 0 auto;
}
main.outline .outline__content .inner01 {
  width: 100%;
}
main.outline .outline__content .ttl {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 35px;
  letter-spacing: 0.15em;
  margin: 0 0 24px;
}
@media screen and (max-width: 850px) {
  main.outline .outline__content .ttl {
    font-size: 18px;
  }
}
main.outline .outline__content .ttl::before {
  content: "";
  display: inline-block;
  background-color: #000;
  width: 1em;
  aspect-ratio: 1/1;
}
main.outline .outline__content .txt {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 30px;
  letter-spacing: 0.15em;
  margin: 0 0 24px;
}
main.outline .outline__content table {
  border: 1px solid #a3805a;
  width: 100%;
  margin: 0 auto 120px;
}
main.outline .outline__content table:last-child {
  margin: 0 auto 190px;
}
main.outline .outline__content tr {
  background-color: #efebe0;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}
main.outline .outline__content tr + tr {
  border-top: 1px solid #a3805a;
}
main.outline .outline__content tr th {
  flex-grow: 0;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 290px;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 25px;
  letter-spacing: 0.15em;
  padding: 20px;
}
@media screen and (max-width: 850px) {
  main.outline .outline__content tr th {
    max-width: 100px;
    font-size: 12px;
    padding: 10px;
  }
}
main.outline .outline__content tr td {
  background-color: #f8f7f6;
  border-left: 1px solid #a3805a;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 25px;
  letter-spacing: 0.15em;
  padding: 20px;
}
@media screen and (max-width: 850px) {
  main.outline .outline__content tr td {
    font-size: 12px;
    padding: 10px;
  }
}

.page {
  position: relative;
  padding: 60px 30px 0;
}
@media screen and (max-width: 850px) {
  .page {
    padding: 40px 15px 0;
  }
}

.pageHeaderSample {
  background-image: url("../img/page/pagettl_sample.png");
}
@media screen and (max-width: 850px) {
  .pageHeaderSample {
    background-image: url("../img/page/pagettl_sample_sp.png");
  }
}

.pageHeader {
  position: relative;
  height: 415px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
@media screen and (max-width: 850px) {
  .pageHeader {
    height: 265px;
  }
}
.pageHeader__wrap {
  position: absolute;
  left: 0;
  top: 0;
  padding: 0 60px;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  padding-bottom: 60px;
}
@media screen and (max-width: 850px) {
  .pageHeader__wrap {
    padding: 0 15px 0;
    align-items: center;
  }
}
.pageHeader__ttl {
  color: #FFF;
  font-size: 32px;
  font-weight: 600;
  line-height: 1.563;
}
@media screen and (max-width: 850px) {
  .pageHeader__ttl {
    font-size: 19px;
  }
}
.pageHeader__subTtl {
  color: #FFF;
  font-size: 20px;
  display: block;
  margin: 0 0 10px;
  font-family: "Marcellus";
}
@media screen and (max-width: 850px) {
  .pageHeader__subTtl {
    font-size: 14px;
  }
}
.pageHeader__mask {
  position: relative;
}
.pageHeader__mask:before {
  content: "";
  background: rgb(0, 0, 0);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 32%, rgba(0, 0, 0, 0.5) 100%);
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  height: 60%;
}

.dummy {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  height: 686px;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  background: #EFEFEF;
  font-size: 32px;
  color: #8D8D8D;
}
@media screen and (max-width: 850px) {
  .dummy {
    font-size: 16px;
  }
}/*# sourceMappingURL=styles.css.map */