@charset "UTF-8";
body {
  color: #453E3B;
}

/* リンク */
a {
  color: #D97E00;
  text-decoration: underline;
}

@media (hover: hover) {
  a:hover {
    text-decoration: none;
    color: #D97E00;
  }
}

#no_script {
  position: relative;
  width: 100%;
  background: #f00;
  color: #fff;
  text-align: center;
  padding: 5px 10px;
  margin: 0;
  font-size: 14px;
  z-index: 100;
}

/* sp */
.sp {
  display: block !important;
}

.sp_off, .pc_tb {
  display: none !important;
}

.sp_inline {
  display: inline !important;
}

/* structure
====================================================================================================================================== */
html,
body {
  width: 100%;
}

html {
  height: 100%;
  scroll-behavior: smooth;
}

body {
  overflow-y: scroll;
  overflow-x: hidden;
}

#container {
  width: 100%;
  line-height: 2.2;
  letter-spacing: 0.05em;
}

.wrapper {
  width: auto;
  padding-left: 25px;
  padding-right: 25px;
}

.wrapper:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

#pc_bg {
  display: none;
}

#main_contents_area {
  position: relative;
  overflow: hidden;
  background-color: #FAF7F0;
}

#page_title_wrap {
  margin-bottom: 3rem;
  background-color: #453E3B;
  position: relative;
  padding-top: 9.5rem;
  padding-bottom: 10px;
}

#page_title_wrap .bg_image {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

#page_title_wrap .bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
}

#page_title_wrap .wrapper {
  position: relative;
  z-index: 2;
  height: 100%;
}

#navibar {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.8rem;
  text-align: left;
  color: #FAF7F0;
  line-height: 1.4;
}

#navibar p {
  margin-bottom: 0;
}

#navibar a {
  color: #FAF7F0;
  font-weight: normal;
}

/* header
====================================================================================================================================== */
#header {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  line-height: 1;
  padding: 26px 0 0;
}

#header.top {
  padding-top: 33px;
}

#header .instagram_link {
  width: 28px;
  position: absolute;
  top: 26px;
  right: 65px;
}

#header .instagram_link img {
  width: 100%;
}

#site_title {
  width: 90px;
  margin-bottom: 0;
}

#site_title img {
  width: 100%;
}

#header.top #site_title {
  width: 160px;
}

#header.top #site_title span {
  display: block;
}

#header.top #site_title .text {
  font-size: 0.7rem;
  font-weight: bold;
  letter-spacing: normal;
  color: #FAF7F0;
  text-align: center;
  margin-bottom: 5px;
}

#button_menu_open,
#button_menu_close {
  position: absolute;
  top: 28px;
  right: 21px;
  width: 24px;
  line-height: 1;
}

#button_menu_open img,
#button_menu_close img {
  width: 100%;
}

#button_menu_open {
  z-index: 3;
}

@media (hover: hover) {
  #header .instagram_link a:hover {
    opacity: 0.7;
  }
  #site_title a:hover {
    opacity: 0.7;
  }
  #button_menu_open a:hover,
  #button_menu_close a:hover {
    opacity: 0.7;
  }
}

#side_menu {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 999999;
  width: 280px;
  height: 100vh;
  box-sizing: border-box;
  background-color: #F2EFE6;
  padding: 85px 20px 0 28px;
  translate: 100%;
  transition: .6s ease-out;
}

#side_menu.opened {
  translate: 0;
  box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.1);
}

.sp_menu_button {
  display: none;
}

/* globalnavi
====================================================================================================================================== */
#globalnavi ul.nav_list {
  margin-bottom: 35px;
}

#globalnavi ul.nav_list li {
  border-bottom: 1px solid #D1C9BC;
}

#globalnavi ul.nav_list li a {
  display: block;
  color: #453E3B;
  padding: 1.55em 0.8em;
  padding-right: 1.6em;
  text-decoration: none;
  font-weight: bold;
  line-height: 1.5;
  position: relative;
}

#globalnavi ul.nav_list li a .smaller {
  font-size: 0.8em;
}

#globalnavi ul.nav_list li a:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 15px;
  translate: 0 -50%;
  width: 5px;
  height: 8px;
  background-color: #453E3B;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

#globalnavi .button_reserve a {
  display: block;
  background-color: #F1B579;
  color: #453E3B;
  padding: 1.55em 0.8em;
  text-decoration: none;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

#globalnavi .button_reserve a span {
  display: inline-block;
  padding-left: 2em;
  background: url(../images/icon/i_calendar.svg) no-repeat left center;
  background-size: 1.5em auto;
}

#globalnavi .top_side_links_area {
  display: none;
}

@media (hover: hover) {
  #globalnavi ul.nav_list li a:hover {
    text-decoration: underline;
  }
  #globalnavi .button_reserve a:hover {
    opacity: 0.85;
  }
}

#top_bottom_fixed_area {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 80px;
}

#top_bottom_fixed_area ul {
  display: grid;
  grid-template-columns: 54% 1fr 1fr;
  margin: 0;
  height: 100%;
}

#top_bottom_fixed_area ul li {
  margin: 0;
  padding: 0;
  height: 100%;
}

#top_bottom_fixed_area ul li a {
  display: grid;
  place-items: center;
  height: 100%;
  font-size: 0.9rem;
  font-weight: bold;
  background-color: #F1B579;
  color: #453E3B;
  text-decoration: none;
}

#top_bottom_fixed_area ul li a span {
  display: block;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 1.7em auto;
  padding-top: 1.85em;
}

#top_bottom_fixed_area ul li.link_reserve a {
  font-size: 1rem;
}

#top_bottom_fixed_area ul li.link_reserve a span {
  background-image: url(../images/icon/i_calendar.svg);
  background-position: left center;
  background-size: 1.5em auto;
  padding-top: 0;
  padding-left: 2.1em;
}

#top_bottom_fixed_area ul li.link_contact a {
  background-color: #eda566;
}

#top_bottom_fixed_area ul li.link_contact a span {
  background-image: url(../images/icon/i_contact.svg);
}

#top_bottom_fixed_area ul li.link_access a {
  background-color: #e99553;
}

#top_bottom_fixed_area ul li.link_access a span {
  background-image: url(../images/icon/i_access.svg);
}

#top_bottom_fixed_area ul li:before {
  display: none !important;
}

/* contents
====================================================================================================================================== */
#conts {
  padding: 0 0 8.5rem;
}

#conts > *:last-child {
  margin-bottom: 0;
}

#main_visual {
  background-color: #453E3B;
  height: calc(100dvh - 80px);
  position: relative;
  animation: item_appear 1.5s 0.3s ease-out both;
}

#main_visual .bg_image {
  opacity: 0.75;
  height: 100%;
}

#main_visual .bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#main_visual .catch_copy {
  position: absolute;
  top: 41%;
  left: 50%;
  translate: -50%;
  font-size: 1.15rem;
  letter-spacing: normal;
  line-height: 1.15;
  color: #FAF7F0;
  text-shadow: 0 0 40px #000;
}

#main_visual .catch_copy p {
  margin-bottom: 0;
  display: flex;
  flex-direction: row-reverse;
  gap: 1.5em;
}

#main_visual .catch_copy p span {
  display: block;
  width: 1em;
}

#main_visual .catch_copy p .long_vowel {
  rotate: 90deg;
  scale: 1 -1;
  translate: -0.07em;
}

#main_visual .catch_copy p .period {
  translate: 60% -50%;
}

@keyframes item_appear {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.top_section {
  margin-bottom: 9.5rem;
  text-align: center;
}

.top_section p {
  margin-bottom: 3.5rem;
}

.top_section .text_area {
  margin-bottom: 4.5rem;
}

.top_section .text_area .smaller {
  font-size: 0.78em;
}

#introduction {
  padding: 7.5rem 0;
  margin-bottom: 0;
  background: url(../images/icon/illust_flower.png) no-repeat right 15px bottom;
  background-size: 35px auto;
}

#introduction p {
  margin-bottom: 0;
}

#instagram {
  background-color: #F2EFE6;
  padding: 3.5rem 20px;
}

#instagram h2 {
  width: fit-content;
  font-size: 1rem;
  font-weight: normal;
  padding: 0;
  border: none;
  text-align: center;
  display: flex;
  justify-content: center;
  gap: 0.28em;
  padding-left: 2.3em;
  background: url(../images/icon/sns_i.png) no-repeat left center;
  background-size: 1.6em auto;
  margin: 0 auto 1rem;
}

#instagram ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 2rem !important;
}

#instagram ul li {
  margin: 0;
  padding: 0;
  aspect-ratio: 1/1;
}

#instagram ul li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 7px;
}

#instagram ul li:before {
  display: none !important;
}

#instagram .view_more {
  margin-bottom: 0;
}

@media (hover: hover) {
  #instagram ul li a:hover {
    opacity: 0.8;
  }
}

#lead_area {
  padding: 7.5rem 0 0;
}

#lead_area h2 {
  font-size: 1.8rem;
  font-weight: normal;
  text-align: center;
  border: none;
  padding: 0;
  margin-bottom: 2.5rem;
}

#lead_area p {
  margin-bottom: 0;
}

.grid_photos {
  display: grid;
  gap: 8px;
  margin-left: -25px;
  margin-right: -25px;
  margin-bottom: 4.5rem !important;
}

.grid_photos li {
  margin: 0 !important;
  padding: 0 !important;
}

.grid_photos li:before {
  display: none !important;
}

.grid_photos li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.grid_photos li figure {
  height: 100%;
  position: relative;
}

.grid_photos li figure figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  font-size: 0.8rem;
  color: #fff;
  line-height: 1;
  background-color: rgba(0, 0, 0, 0.4);
  padding: 6px;
}

.grid_photos.type01 {
  grid-template-columns: 140fr 90fr 140fr;
}

.grid_photos.type01 li:nth-child(1), .grid_photos.type01 li:nth-child(2) {
  aspect-ratio: 4/5;
}

.grid_photos.type01 li:nth-child(1) {
  grid-column: 1 / span 1;
}

.grid_photos.type01 li:nth-child(2) {
  grid-column: 1 / span 1;
  grid-row: 2 / span 1;
}

.grid_photos.type01 li:nth-child(3) {
  grid-column: 2 / span 2;
  grid-row: 1 / span 2;
}

.grid_photos.type01 li:nth-child(4) {
  grid-column: 1 / span 2;
  grid-row: 3 / span 1;
  aspect-ratio: 12/7;
}

.grid_photos.type01 li:nth-child(5) {
  grid-column: 3 / span 1;
  grid-row: 3 / span 1;
}

.grid_photos.type02 li:nth-child(1), .grid_photos.type03 li:nth-child(1) {
  grid-column: 1 / span 2;
}

.grid_photos.type02 li:nth-child(2), .grid_photos.type03 li:nth-child(2) {
  grid-column: 1 / span 1;
  grid-row: 2 / span 2;
}

.grid_photos.type02 {
  grid-template-columns: repeat(2, 1fr);
}

.grid_photos.type02 li:nth-child(1), .grid_photos.type02 li:nth-child(3), .grid_photos.type02 li:nth-child(4) {
  aspect-ratio: 4/3;
}

.grid_photos.type03 {
  grid-template-columns: 240fr 140fr;
}

.grid_photos.type03 li:nth-child(1) {
  aspect-ratio: 3/2;
}

.grid_photos.type03 li:nth-child(2) {
  aspect-ratio: 240/291;
}

.grid_photos.type04 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 2.9fr 1.3fr 1fr 1.3fr;
}

.grid_photos.type04 li:nth-child(1) {
  grid-column: 1 / span 2;
  aspect-ratio: 4/3;
}

.grid_photos.type04 li:nth-child(2) {
  grid-row: 2 / span 2;
}

.grid_photos.type04 li:nth-child(3) {
  grid-row: 4 / span 1;
}

.grid_photos.type04 li:nth-child(4) {
  grid-column: 2 / span 1;
  grid-row: 2 / span 1;
}

.grid_photos.type04 li:nth-child(5) {
  grid-column: 2 / span 1;
  grid-row: 3 / span 2;
}

.grid_photos.type05 {
  grid-template-columns: repeat(2, 1fr);
}

.grid_photos.type05 li {
  aspect-ratio: 4/3;
}

.grid_photos.type05 li:nth-child(1) {
  grid-column: 1 / span 2;
}

.grid_photos.scroll_animation li {
  opacity: 0;
}

.grid_photos.scroll_animation.window_in li {
  animation: item_appear 0.8s ease-in-out both;
}

.grid_photos.scroll_animation.window_in li:nth-child(1) {
  animation-delay: 0.3s;
}

.grid_photos.scroll_animation.window_in li:nth-child(2) {
  animation-delay: 0.6s;
}

.grid_photos.scroll_animation.window_in li:nth-child(3) {
  animation-delay: 0.9s;
}

.grid_photos.scroll_animation.window_in li:nth-child(4) {
  animation-delay: 1.2s;
}

.grid_photos.scroll_animation.window_in li:nth-child(5) {
  animation-delay: 1.5s;
}

.grid_photos.scroll_animation.window_in li:nth-child(6) {
  animation-delay: 1.8s;
}

.qa_box .qa_price p {
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  line-height: 1.7;
  margin-bottom: 1rem;
}

.qa_box .price_table_wrap {
  margin-bottom: 2.1rem;
}

.qa_box .price_table_wrap .price_table {
  margin-bottom: 0.8rem;
}

.qa_box .price_table_wrap p:last-child {
  margin-bottom: 0;
}

#metime .sub_title {
  background: none;
  border-top: 1px solid #D1C9BC;
  border-bottom: 1px solid #D1C9BC;
  padding: 1em 0;
  margin-bottom: 2.8rem;
  text-align: center;
}

#welcome {
  padding: 0.7rem 0 0;
  margin-bottom: 0;
}

#welcome h2 {
  margin-bottom: 0.15em;
}

#welcome p {
  position: relative;
  z-index: 1;
  font-size: 1.2rem;
  margin-bottom: 0;
}

/* footer
====================================================================================================================================== */
#footer {
  background-color: #453E3B;
  color: #FAF7F0;
  font-size: 0.9rem;
  line-height: 1.8;
  padding: 3.5rem 0;
}

#footer.top {
  padding-bottom: calc(3.5rem + 80px);
}

#footer .footer_info {
  margin-bottom: 40px;
}

#footer .footer_info .org_name {
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 0.1em;
}

#footer .footer_info .org_address a {
  color: #FAF7F0;
  text-decoration: none;
}

#footer .map_area {
  margin-bottom: 40px;
}

#footer .map_area iframe {
  width: 100%;
  vertical-align: bottom;
}

#footer .footer_links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 1em;
  margin-bottom: 40px;
}

#footer .footer_links li {
  line-height: 1.1;
  border-left: 1px solid #FAF7F0;
  padding: 0 0.8em;
}

#footer .footer_links li a {
  color: #FAF7F0;
  text-decoration: underline;
}

#footer .footer_links li:first-child {
  border-left: none;
  padding-left: 0;
}

#footer .footer_links li:last-child {
  padding-right: 0;
}

#footer small {
  display: block;
  font-size: 0.8rem;
  text-align: center;
}

@media (hover: hover) {
  #footer .footer_info .org_address a:hover {
    text-decoration: underline;
  }
  #footer .footer_links li a:hover {
    text-decoration: none;
  }
}

/* イベントカレンダー
====================================================================================================================================== */
.calendar_intro_text {
  font-size: 0.8rem;
  line-height: 1.7;
  letter-spacing: 0.045em;
  margin-bottom: 2.2rem;
}

#month_calendar .calendar_header {
  text-align: center;
  line-height: 1;
  margin-bottom: 8px;
  position: relative;
  min-height: 34px;
}

#month_calendar .calendar_header a {
  display: block;
  width: 34px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
}

#month_calendar .calendar_header a.prev {
  left: 0;
}

#month_calendar .calendar_header a.next {
  right: 0;
}

#month_calendar .calendar_header a img {
  width: 100%;
}

#month_calendar .calendar_header a:hover {
  opacity: 0.7;
}

#month_calendar .calendar_header .ym {
  margin: 0;
  font-weight: normal;
  letter-spacing: 0.03em;
}

#month_calendar .calendar_header .ym .larger {
  font-size: 1.8em;
  font-weight: bold;
  margin-left: 0.2em;
}

#month_calendar table.calendar {
  table-layout: fixed;
  margin-bottom: 2rem;
}

#month_calendar table.calendar th, #month_calendar table.calendar td {
  text-align: center;
  vertical-align: middle;
}

#month_calendar table.calendar th.sun, #month_calendar table.calendar td.sun {
  color: #D97E00;
}

#month_calendar table.calendar th.sat, #month_calendar table.calendar td.sat {
  color: #0080BF;
}

#month_calendar table.calendar thead th {
  background-color: #FAF7F0;
  padding: 0.5em 0;
  font-size: 0.8rem;
  font-weight: normal;
  color: #453E3B;
}

#month_calendar table.calendar tbody td {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: normal;
  padding: 0.3em 0 0.4em;
  background-color: #F2EFE6;
}

#month_calendar table.calendar tbody td:has(a) {
  background-color: #FAF7F0;
}

#month_calendar table.calendar tbody td span {
  color: #453E3B;
}

#month_calendar table.calendar tbody td a {
  font-weight: bold;
}

#month_calendar .mark_description {
  display: flex;
  gap: 1em;
  font-size: 0.8rem;
  margin-bottom: 0;
}

#month_calendar .mark_description li {
  font-size: inherit;
  margin: 0;
  padding: 0;
}

#month_calendar .mark_description li .link_color {
  color: #D97E00;
}

#month_calendar .mark_description li:before {
  display: none;
}

/* フォーム画面
====================================================================================================================================== */
.enquete_outline {
  font-size: 0.9rem;
  margin-bottom: 2.3rem;
}

.enquete_outline p {
  margin-bottom: 1em;
}

.enquete_outline .notes {
  font-size: 0.9em;
  line-height: 1.7;
  letter-spacing: 0.03em;
  margin-bottom: 0;
}

table.table_form, table.table_form th, table.table_form td {
  border: none;
}

table.table_form tbody th, table.table_form tbody td {
  display: block;
  width: 100%;
  font-size: 1rem;
}

table.table_form tbody th {
  font-weight: bold;
  background: none;
  white-space: normal;
  padding: 0 0 0.3em;
  max-width: initial;
  min-width: initial;
}

table.table_form tbody th .required {
  display: inline-block;
  color: #FAF7F0;
  background-color: #D97E00;
  font-size: 0.8em;
  font-weight: bold;
  line-height: 1;
  padding: 3px 4px;
  margin-left: 0.6em;
}

table.table_form tbody td {
  padding: 0 0 1.7em;
}

table.table_form tbody td .questions_list {
  margin-bottom: 0 !important;
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.2em;
}

table.table_form tbody td .questions_list li {
  margin: 0.3em 0 !important;
  padding: 0 !important;
}

table.table_form tbody td .questions_list li input[type="radio"],
table.table_form tbody td .questions_list li input[type="checkbox"] {
  margin-right: 0.25em;
}

table.table_form tbody td .questions_list li:before {
  display: none;
}

table.table_form tbody td .duration_of_stay {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

table.table_form tbody td .number_of_guests {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #D1C9BC;
}

table.table_form tbody td .number_of_guests:first-of-type {
  padding-top: 0;
}

table.table_form tbody td .number_of_guests .title_text {
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.4;
  margin-bottom: 0;
}

table.table_form tbody td .number_of_guests .title_text .sub_text {
  display: block;
  font-size: 0.9em;
  font-weight: bold;
}

table.table_form tbody td .number_of_guests .select_area {
  display: flex;
  align-items: center;
  gap: 0.3em;
}

table.table_form tbody td .help_text {
  font-size: 0.9em;
  color: #666;
}

table.table_form tbody tr:last-of-type td {
  padding-bottom: 0;
}

form input[type="text"],
form input[type="email"],
form input[type="tel"],
form textarea {
  width: 100%;
  background: #fff;
  border: solid 2px #F2EFE6;
  color: #453E3B;
  outline: none;
  padding: 10px;
  font-size: 0.9rem;
  font-weight: normal;
  border-radius: 0;
  transition: background-color 0.3s, color 0.3s;
}

form textarea {
  height: 180px;
  line-height: 1.6;
}

form input[type="date"],
form select {
  width: fit-content;
  border: 1px solid #D1C9BC;
  border-radius: 4px;
  background-color: #fff;
  font-size: 0.9rem;
  padding: 9px 7px;
}

form select {
  min-width: 80px;
  padding-right: 22px;
  background: #fff url(../images/icon/select_arrow.svg) no-repeat right 10px center;
  background-size: 9px auto;
}

/*confilm*/
#conts .error {
  color: #c00;
  font-weight: bold;
}

#conts .error li {
  position: static;
  padding: 0;
  margin-bottom: 0.5em;
}

#conts .error li:before {
  display: none;
}

/*確認*/
form table {
  margin-bottom: 2em;
}

.form_send h2 {
  margin-top: 1.5em;
  margin-bottom: 1em;
}

form .column02 {
  overflow: hidden;
}

/*form .column02 dt { float:left; width:27%; margin-bottom:0; }
form .column02 dd { float:left; width:73%; }*/
form .form_file_group {
  margin-bottom: 20px;
  overflow: hidden;
}

form .file_list {
  margin-bottom: 10px;
  overflow: hidden;
}

form .form_tit {
  clear: both;
  letter-spacing: 0.2em;
  padding-right: 10px;
}
