@charset "UTF-8";
body {
  font-size: 1rem;
  background: #fff
}
#contents {
  font-family: YakuHanJPs, 'Noto Sans JP', "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  margin: auto;
  padding-top: 0
}
@media screen and (max-width:768px) {
  #contents {
    max-width: 100%
  }
}
#contents p {
  font-size: 1rem;
  font-weight: 400;
  color: #595757;
  line-height: 2
}
@media screen and (max-width:768px) {
  #contents p {
    font-size: .875rem;
    line-height: 1.8
  }
}
#contents img {
  max-width: 100%;
  object-fit: cover;
  vertical-align: bottom
}
#contents .inner {
  width: auto;
  max-width: 1280px;
  padding-block: 100px;
  margin: auto
}
@media screen and (max-width:768px) {
  #contents .inner {
    width: 100%;
    padding: 60px 4.65%
  }
}
@media screen and (max-width:480px) {
  #contents .inner {
    padding-inline: 20px
  }
}
.pc-br {
  display: block
}
.sp-br {
  display: none
}
@media screen and (max-width:480px) {
  .pc-br {
    display: none
  }
  .sp-br {
    display: block
  }
}
.fadeUpTrigger {
  opacity: 0
}
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards
}
@keyframes fadeUpAnime {
  0% {
    transform: translateY(50px);
    opacity: 0
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 1;
    transform: translateY(0)
  }
}
.header {
  background: #fff
}
.area_logo_header {
  align-content: center
}
.nav-wrapper {
  display: flex;
  gap: 45px;
  align-items: center
}
.header .reserve {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 220px;
  height: 60px;
  background: #fff;
  color: #595757;
  font-family: "Noto Serif JP", serif;
  font-size: 1.325rem;
  font-weight: 500;
  letter-spacing: .25em;
  text-align: center;
  border: 1px solid #595757;
  margin: auto;
  transition: .2s ease
}
.header .reserve span {
  font-size: .6em;
  letter-spacing: .08em;
  padding-top: .3em
}
@media (hover:hover) {
  .header .reserve:hover {
    background: #595757;
    color: #fff;
    cursor: pointer;
    transition: .5s ease
  }
}
@media screen and (max-width:1050px) {
  .nav-wrapper {
    height: auto;
    position: relative;
    width: auto;
    padding: 0
  }
}
@media (max-width:600px) {
  .area_logo_header .top-logo img {
    width: 70%;
    max-width: 200px;
    height: auto;
    object-fit: cover;
    margin-left: 0;
    margin-block: auto
  }
  .header > .container, .header.header-under > .container {
    padding: 15px 10px
  }
  .header > .container {
    height: auto
  }
}
@media screen and (max-width:480px) {
  .nav-wrapper {
    gap: 20px
  }
}
.main {
  /*position: relative;
  background: url(../images/main-img01.jpg) no-repeat 45% 100% / cover;
  height: 100vh;*/
  text-align: center
}
@media screen and (max-width:768px) {
  .main {
    height: auto;
    padding-top: 4.25%;
    /*margin-top: 57px;*/
  }
}
.main .obi {
  /*position: absolute;*/
  bottom: -30px;
  left: 0;
  padding-block: 1.3%;
  width: 100%;
  background: #0C4660
}
.main .obi img {
  width: 41.67%;
  max-width: 800px
}
@media screen and (max-width:768px) {
  .main .obi {
    bottom: 0;
    right: 0;
    /*transform: translate(0, 100%);*/
    padding-block: 3.49%
  }
  .main .obi img {
    width: 90.7%
  }
}
#contents .movie .inner {
  max-width: 960px;
  padding-block: 120px
}
.movie .subttl {
  margin: 0 auto 60px;
  width: 14.84%;
  max-width: 190px
}
.movie iframe {
  aspect-ratio: 16 / 9
}
@media screen and (max-width:768px) {
  #contents .movie .inner {
    width: 100%;
    padding-block: 15% 80px
  }
  .movie .subttl {
    margin-bottom: 6.98%;
    width: 27.91%;
    max-width: 120px
  }
}
.img-obi {
  display: flex
}
.img-obi div {
  width: 50%
}
.img-obi div img {
  width: 100%
}
@media screen and (max-width:768px) {
  .img-obi {
    flex-direction: column
  }
  .img-obi div {
    width: 100%
  }
}
.plan-concept {
  background: #0c4660
}
#contents .plan-concept .inner {
  padding-block: 60px 100px
}
@media screen and (max-width:768px) {
  #contents .plan-concept .inner {
    width: 100%;
    padding: 40px 4.65%
  }
}
.plan-concept .subttl {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-size: 2.25rem;
  letter-spacing: .12em;
  text-align: center;
  margin-bottom: 60px
}
.plan-concept .subttl span {
  display: block;
  width: 40.43%;
  max-width: 245px;
  margin: 0 auto 40px
}
#contents .plan-concept p {
  font-family: "Noto Serif JP", serif;
  color: #fff;
  width: 76.17%;
  font-size: 1.25rem;
  margin: 0 auto 50px
}
.plan-concept .size {
  display: flex;
  justify-content: center;
  gap: 20px;
  font-size: 1.0625rem;
  color: #fff
}
@media screen and (max-width:768px) {
  .plan-concept .subttl {
    font-size: 1.5rem;
    text-align: start;
    margin-bottom: 25px
  }
  .plan-concept .subttl span {
    width: 36.51%;
    max-width: 157px;
    margin: 0 0 25px 0
  }
  #contents .plan-concept p {
    width: 100%;
    font-size: .875rem
  }
  .plan-concept .size {
    flex-direction: column;
    gap: 15px
  }
  .plan-concept .size li {
    font-size: .75rem
  }
}
#contents .plan p.notes {
  color: #000;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  margin-bottom: 60px
}
@media screen and (max-width:480px) {
  #contents .plan p.notes {
    margin-bottom: 40px
  }
}
.plan-img {
  margin-bottom: 80px;
  text-align: center
}
.plan-img .flex {
  display: flex;
  gap: 128px;
  justify-content: center
}
.plan-img .flex > * {
  position: relative;
  width: 35%
}
@media screen and (max-width:768px) {
  .plan-img {
    margin-bottom: 40px
  }
  .plan-img .flex {
    flex-direction: column;
    align-items: center;
    gap: 30px
  }
  .plan-img .flex > * {
    width: 60%
  }
}
@media screen and (max-width:480px) {
  .plan-img .flex > * {
    width: 80%
  }
}
.plan-img .popup-btn {
  position: absolute;
  background: #000;
  border: none;
  outline: none;
  padding: 0;
  appearance: none;
  color: #fff;
  padding-top: 3px;
  font-size: 20px;
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
  line-height: 0;
  padding-bottom: 6px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  cursor: pointer
}
@media screen and (max-width:768px) {
  .plan-img .popup-btn {
    font-size: 1.25rem;
    padding-bottom: 0;
    width: 28px;
    height: 28px;
  }
}
@media screen and (max-width:480px) {
  .plan-img .popup-btn {
    font-size: 1.125rem
  }
}
.plan-img .btn1 {
  top: 5%;
  left: 31%
}
.plan-img .btn2 {
  top: 20%;
  right: 10%
}
.plan-img .btn3 {
  bottom: 49%;
  right: 21%
}
.plan-img .btn4 {
  bottom: 40%;
  left: 26%
}
.plan-img .btn5 {
  top: 47%;
  right: 20%
}
@media screen and (max-width:768px) {
  .plan-img .btn1 {
    top: 5%;
    left: 32%
  }
  .plan-img .btn2 {
    top: 19%;
    left: 83%
  }
  .plan-img .btn3 {
    top: 44%;
    left: 61%
  }
  .plan-img .btn4 {
    top: 56%;
    left: 26%
  }
  .plan-img .btn5 {
    top: 60%;
    left: 73%
  }
}
#contents #overlay {
  display: none;
  visibility: visible;
  opacity: .8;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(255, 255, 255, .9);
  width: 100%;
  height: 100%;
  z-index: 1001
}
#contents .popup {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60%;
  max-width: 750px;
  max-height: 80vh;
  z-index: 1001
}
@media screen and (max-width:768px) {
  #contents .popup {
    width: 80%;
    top: 50%
  }
}
@media screen and (max-width:480px) {
  #contents .popup {
    width: calc(100% - 40px);
    top: 50%
  }
}
#contents .closebtn {
  position: absolute;
  top: 0;
  right: -10px;
  transform: translateX(100%);
  width: 35px;
  height: 35px;
  outline: none;
  border: none;
  z-index: 99;
  cursor: pointer
}
@media screen and (max-width:480px) {
  #contents .closebtn {
    top: -20px;
    right: 12px;
    transform: translate(50%, -50%);
    width: 30px;
    height: 30px
  }
}
#contents .closebtn span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background: #595757
}
#contents .closebtn span:nth-of-type(1) {
  top: 0;
  transform: translateY(15px) rotate(-45deg)
}
#contents .closebtn span:nth-of-type(2) {
  bottom: 0;
  transform: translateY(-16px) rotate(45deg)
}
@media screen and (max-width:768px) {
  #contents .closebtn span {
    height: 2px
  }
  #contents .closebtn span:nth-of-type(1) {
    transform: translateY(13px) rotate(-45deg)
  }
  #contents .closebtn span:nth-of-type(2) {
    transform: translateY(-15px) rotate(45deg)
  }
}
.popup-wrap figure {
  margin: 0
}
.popup-wrap img {
  width: 100%;
  aspect-ratio: 154 / 87
}
.popup-wrap.height img {
  aspect-ratio: 5 / 4
}
.popup-wrap figcaption {
  padding-top: 15px;
  line-height: 2;
  color: #595757
}
@media screen and (max-width:480px) {
  .popup-wrap figcaption {
    padding-top: 10px;
    font-size: .875rem;
    line-height: 1.8
  }
}
.lightwell {
  width: 57.19%;
  max-width: 732px;
  margin: auto
}
@media screen and (max-width:768px) {
  .lightwell {
    width: 80%;
    max-width: 510px
  }
}
@media screen and (max-width:480px) {
  .lightwell {
    width: 100%
  }
}
.bg {
  background: #e9e6e3
}
.bg .inner:has(.concept) {
  padding-block: 100px
}
.concept {
  margin-bottom: 120px
}
.concept .flex {
  display: flex;
  justify-content: space-between
}
.concept .img-area {
  width: 45.42%;
  position: relative
}
.concept .img-area .img:nth-child(1) {
  width: 75.54%;
  position: absolute;
  right: 3.06%;
  top: 0
}
.concept .img-area .img:nth-child(2) {
  width: 53.82%;
  position: absolute;
  left: 0;
  bottom: 9.94%
}
.concept .txt-area {
  width: 45.42%
}
.concept .txt-area .subttl {
  color: #595757;
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-feature-settings: "palt";
  letter-spacing: .08em;
  margin-bottom: 60px
}
.concept .txt-area > .flex > li {
  width: calc(100% / 3 - 12px)
}
.concept .txt-area p {
  text-align: start;
  margin-block: 40px 60px
}
@media screen and (max-width:768px) {
  #contents .bg .inner:has(.concept) {
    padding-top: 60px 80px
  }
  .concept {
    margin-bottom: 80px
  }
  .concept > .flex {
    flex-direction: column
  }
  .concept .img-area {
    width: 100%;
    aspect-ratio: 39 / 49
  }
  .concept .img-area .img:nth-child(1) {
    width: 59.49%;
    right: 0
  }
  .concept .img-area .img:nth-child(2) {
    width: 55.13%
  }
  .concept .txt-area {
    width: 100%
  }
  .concept .txt-area .subttl {
    font-size: 1.5rem;
    margin-bottom: 25px
  }
  .concept .txt-area > .flex > li {
    width: calc(100% / 3 - 10px)
  }
  .concept .txt-area p {
    margin-block: 15px 20px
  }
}
.japandiblue .subttl {
  width: 38.59%;
  max-width: 494px;
  margin: 0 auto 35px
}
#contents .japandiblue h2 + p {
  text-align: center;
  margin-bottom: 60px
}
.japandiblue .flex {
  display: flex;
  justify-content: space-between
}
.japandiblue .flex li {
  width: 45.42%
}
.japandiblue .flex li img {
  margin-bottom: 15px
}
.japandiblue .flex li:nth-child(1) .hd {
  width: 32.87%;
  max-width: 215px
}
.japandiblue .flex li:nth-child(2) .hd {
  width: 43.58%;
  max-width: 285px
}
@media screen and (max-width:768px) {
  .japandiblue .subttl {
    width: 73.02%;
    max-width: 314px;
    margin: 0 0 20px 0
  }
  #contents .japandiblue h2 + p {
    font-size: .875rem;
    text-align: start;
    margin-bottom: 40px
  }
  .japandiblue .flex {
    flex-direction: column;
    gap: 40px
  }
  .japandiblue .flex li {
    width: 100%
  }
  .japandiblue .flex li:nth-child(1) .hd {
    width: 36.98%;
    max-width: 159px
  }
  .japandiblue .flex li:nth-child(2) .hd {
    width: 43.49%;
    max-width: 187px
  }
  #contents .japandiblue li p {
    font-size: .875rem
  }
}
.btn-wrap a {
  display: block;
  width: 400px;
  max-width: 45.42%;
  background: #fff;
  color: #595757;
  padding: 18px;
  font-size: 1.125rem;
  font-weight: 600;
  text-align: center;
  border: solid 1px #fff;
  margin: 0 auto;
  transition: .2s ease;
  position: relative
}
.btn-wrap a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-left: 8px solid #595757
}
@media screen and (max-width:1200px) {
  .btn-wrap a {
    width: 500px;
    max-width: 100%
  }
}
@media screen and (max-width:768px) {
  .btn-wrap a {
    width: 400px;
    font-size: 1rem
  }
}
@media (hover:hover) {
  .btn-wrap a:hover {
    color: #fff;
    cursor: pointer;
    transition: .5s ease
  }
}
.access .subttl {
  margin: 0 auto 60px;
  width: 200px;
  max-width: 20.83%
}
.access .map {
  padding: .2em;
  border: 1px solid #ccc;
  margin-bottom: 60px
}
.access .btn-wrap a {
  border: 1px solid #595757
}
.access .btn-wrap a:nth-child(1) {
  margin-bottom: 20px
}
@media screen and (max-width:768px) {
  .access .subttl {
    margin-bottom: 6.98%;
    width: 120px;
    max-width: 27.91%
  }
}
@media (hover:hover) {
  .access .btn-wrap a:hover {
    background: #595757;
    color: #fff;
    border: solid 1px #595757
  }
  .access .btn-wrap a:hover::before {
    border-left: 8px solid #fff
  }
}
.contact {
  background: #0C4660
}
#contents .contact .inner {
  padding-block: 80px
}
.contact .subttl {
  color: #fff;
  font-size: 2rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: .24em;
  text-align: center;
  margin-bottom: 45px
}
.contact .flex {
  display: flex;
  justify-content: space-between
}
.contact .map {
  width: 47%
}
.contact .map iframe {
  border: 0;
  aspect-ratio: 65 / 36
}
.contact .contactbox {
  width: 47%
}
#contents .contactbox p {
  color: #fff;
  line-height: 1
}
#contents .contact p.div {
  font-size: 1.375rem;
  letter-spacing: .09em;
  margin-bottom: 6%
}
#contents .contact p.tel {
  margin-bottom: 3%
}
#contents .contact p.tel img {
  padding: 10px 10px 10px 0
}
#contents .contact p.tel a {
  display: inline-flex;
  align-items: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 3.125rem;
  line-height: 1.2;
  letter-spacing: .03em;
  color: #fff
}
#contents .contact p.time {
  font-size: 1.125rem;
  letter-spacing: .09em;
  margin-bottom: 15px
}
#contents .contact p.notes {
  font-size: .875rem;
  letter-spacing: 0;
  margin-bottom: 6%
}
@media screen and (max-width:1200px) {
  .contact .subttl {
    width: 100%;
    text-align: center
  }
  .contact .flex {
    flex-direction: column-reverse;
    gap: 40px;
    text-align: center
  }
  .contact .map, .contact .contactbox {
    width: 100%
  }
  .contact .map iframe {
    aspect-ratio: 16 / 9
  }
  #contents .contact p.div {
    margin-bottom: 3%
  }
}
@media screen and (max-width:768px) {
  #contents .contact .inner {
    padding-block: 40px
  }
  .contact .subttl {
    font-size: 1.25rem;
    letter-spacing: .12em;
    margin-bottom: 25px
  }
  #contents .contact p.div {
    font-size: .8125rem
  }
  #contents .contact p.tel img {
    width: 16%
  }
  #contents .contact p.tel a {
    font-size: 2.375rem
  }
  #contents .contact p.time {
    font-size: .6875rem;
    margin-bottom: 15px
  }
  #contents .contact p.notes {
    font-size: .65rem;
    margin-bottom: 9.3%
  }
}
.contact .btn-wrap {
  display: flex;
  justify-content: space-between
}
@media screen and (max-width:1200px) {
  .contact .btn-wrap {
    flex-direction: column;
    align-items: center;
    gap: 25px
  }
}
@media screen and (max-width:768px) {
  .contact .btn-wrap {
    gap: 15px
  }
}
.contact .btn-wrap a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 60px;
  padding: 0
}
.contact .btn-wrap a span {
  font-size: .6em;
  letter-spacing: .08em;
  padding-top: .3em
}
@media (hover:hover) {
  .contact .btn-wrap a:hover {
    background: #0C4660;
    border: solid 1px #fff
  }
  .contact .btn-wrap a:hover::before {
    border-left: 8px solid #fff
  }
}
@media screen and (min-width:769px) {
  footer .inner, #l-footer {
    width: auto
  }
  #l-footer .footer-other .m-box-fixed {
    width: 90%
  }
  #l-footer .footer-other .other-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px
  }
  #l-footer .footer-other .other-nav li {
    width: calc(100% / 3);
    padding: 0;
    display: contents
  }
}
#fix-nav {
  display: none
}
@media screen and (max-width:768px) {
  #fix-nav {
    display: block;
    width: 100%;
    position: fixed;
    bottom: -1px;
    right: 0;
    z-index: 100;
    background: #fff;
    padding: .8em;
    text-align: center
  }
  #fix-nav a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 320px;
    height: 60px;
    background: #fff;
    color: #595757;
    font-family: "Noto Serif JP", serif;
    font-size: 1.25rem;
    letter-spacing: .2em;
    border: 1px solid #595757;
    margin: auto
  }
  #fix-nav a span {
    font-size: .6em;
    letter-spacing: .08em;
    padding-top: .3em
  }
  .nav-wrapper .reserve {
    display: none
  }
  .instagram img {
    width: 30px
  }
}
@media screen and (max-width:480px) {
  #fix-nav .request img {
    width: 60%
  }
}
/*20261007*/
.outline .mgt40{
	margin-top: 40px;
}
#contents .outline p.brown{
	font-weight: 500;
}
.outline h2{
	color: #595757;
	line-height: 1.6;
	margin-bottom: 15px;
}
#contents .outline p {
	font-size: 0.8rem;
	color: #595757;
	line-height: 1.6;
	margin-bottom: 0;
}
#contents .outline{
	max-width: 900px;
	margin: 0 auto;
}
@media screen and (max-width:768px) {
  ul.outline{
	padding: 0;
	}
}
/*.outline.inner{
	padding-top: 0;
}*/
@media screen and (max-width:768px) {
  #contents .outline.inner{
	padding-top: 0;
	}
}
.outline > li{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 7px 0;
}
.outline > li{
		border-bottom: 1px dotted #86745f;
}
.outline p {
		margin-top: 0;}
.ol-title{width: 25%;
}
.ol-data{
	width: 73%;
}
#contents .outline p.note{
	font-size: 0.65rem;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 20px;
}
#contents img.width100 {
	width: 100%;
}
#contactbox .name {
    font-size: 15px;
}
#contactbox .tel a {
    font-size: 40px;
}
#contactbox .day {
    font-size: 12px;
}
#contactbox h2 {
    font-size: 16px;
}