@charset "UTF-8";
:root {
  --main-color: $color-green;
  --color-spring: #ffb7c5;
  --color-summer: #4fd3ff;
  --color-autumn: #ff8f2f;
  --color-winter: #4b6cb7;
}

html {
  font-size: 62.5%;
  overflow-y: scroll;
}
@media screen and (max-width: 1400px) {
  html {
    font-size: 0.7142857143vw;
  }
}
@media screen and (min-width: 960px) and (max-width: 999px) {
  html {
    font-size: 1.0416666667vw;
  }
}
@media screen and (max-width: 959px) {
  html {
    font-size: 2.380952381vw;
  }
}

*, *::before, *::after {
  box-sizing: border-box;
}

body, h1, h2, h3, h4, h5, h6, p, address, figure,
div, ul, ol, li, dl, dt, dd,
table, th, td, img, form {
  margin: 0;
  padding: 0;
  border: none;
  font-size: 1.6rem;
  line-height: 1.95em;
  font-style: normal;
  font-weight: normal;
  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Helvetica Neue", "Helvetica", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  text-align: left;
  color: #080808;
  box-sizing: border-box;
}

ul, ol {
  padding-left: 2.5rem;
}

figure {
  line-height: 1;
}
figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
figure figcaption {
  font-size: 1.4rem;
  line-height: 1.25em;
}

a {
  color: #000;
  text-decoration: none;
}
a img {
  transition: opacity 0.3s ease-out;
}
a:hover {
  text-decoration: underline;
  opacity: 0.7;
}

i {
  margin-right: 0.5rem;
}

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

input,
textarea {
  -webkit-appearance: none;
  border: none;
  border-radius: 0;
}
input:focus,
textarea:focus {
  outline: 0;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

@media screen and (min-width: 1000px) {
  .pc-none {
    display: none !important;
  }
  .tb {
    display: none !important;
  }
}
@media screen and (min-width: 960px) {
  .sp {
    display: none !important;
  }
}
@media screen and (min-width: 960px) and (max-width: 999px) {
  .tb {
    display: block !important;
  }
  .tb-none {
    display: none !important;
  }
}
@media screen and (max-width: 999px) {
  .pc {
    display: none !important;
  }
}
@media screen and (max-width: 959px) {
  .sp-none {
    display: none !important;
  }
}
.mt10 {
  margin-top: 10px !important;
}

.mr10 {
  margin-right: 10px !important;
}

.mb10 {
  margin-bottom: 10px !important;
}

.ml10 {
  margin-left: 10px !important;
}

.pt10 {
  padding-top: 10px !important;
}

.pr10 {
  padding-right: 10px !important;
}

.pb10 {
  padding-bottom: 10px !important;
}

.pl10 {
  padding-left: 10px !important;
}

.mt20 {
  margin-top: 20px !important;
}

.mr20 {
  margin-right: 20px !important;
}

.mb20 {
  margin-bottom: 20px !important;
}

.ml20 {
  margin-left: 20px !important;
}

.pt20 {
  padding-top: 20px !important;
}

.pr20 {
  padding-right: 20px !important;
}

.pb20 {
  padding-bottom: 20px !important;
}

.pl20 {
  padding-left: 20px !important;
}

.mt30 {
  margin-top: 30px !important;
}

.mr30 {
  margin-right: 30px !important;
}

.mb30 {
  margin-bottom: 30px !important;
}

.ml30 {
  margin-left: 30px !important;
}

.pt30 {
  padding-top: 30px !important;
}

.pr30 {
  padding-right: 30px !important;
}

.pb30 {
  padding-bottom: 30px !important;
}

.pl30 {
  padding-left: 30px !important;
}

.mt40 {
  margin-top: 40px !important;
}

.mr40 {
  margin-right: 40px !important;
}

.mb40 {
  margin-bottom: 40px !important;
}

.ml40 {
  margin-left: 40px !important;
}

.pt40 {
  padding-top: 40px !important;
}

.pr40 {
  padding-right: 40px !important;
}

.pb40 {
  padding-bottom: 40px !important;
}

.pl40 {
  padding-left: 40px !important;
}

.mt50 {
  margin-top: 50px !important;
}

.mr50 {
  margin-right: 50px !important;
}

.mb50 {
  margin-bottom: 50px !important;
}

.ml50 {
  margin-left: 50px !important;
}

.pt50 {
  padding-top: 50px !important;
}

.pr50 {
  padding-right: 50px !important;
}

.pb50 {
  padding-bottom: 50px !important;
}

.pl50 {
  padding-left: 50px !important;
}

.mt60 {
  margin-top: 60px !important;
}

.mr60 {
  margin-right: 60px !important;
}

.mb60 {
  margin-bottom: 60px !important;
}

.ml60 {
  margin-left: 60px !important;
}

.pt60 {
  padding-top: 60px !important;
}

.pr60 {
  padding-right: 60px !important;
}

.pb60 {
  padding-bottom: 60px !important;
}

.pl60 {
  padding-left: 60px !important;
}

.mt70 {
  margin-top: 70px !important;
}

.mr70 {
  margin-right: 70px !important;
}

.mb70 {
  margin-bottom: 70px !important;
}

.ml70 {
  margin-left: 70px !important;
}

.pt70 {
  padding-top: 70px !important;
}

.pr70 {
  padding-right: 70px !important;
}

.pb70 {
  padding-bottom: 70px !important;
}

.pl70 {
  padding-left: 70px !important;
}

.mt80 {
  margin-top: 80px !important;
}

.mr80 {
  margin-right: 80px !important;
}

.mb80 {
  margin-bottom: 80px !important;
}

.ml80 {
  margin-left: 80px !important;
}

.pt80 {
  padding-top: 80px !important;
}

.pr80 {
  padding-right: 80px !important;
}

.pb80 {
  padding-bottom: 80px !important;
}

.pl80 {
  padding-left: 80px !important;
}

.mt90 {
  margin-top: 90px !important;
}

.mr90 {
  margin-right: 90px !important;
}

.mb90 {
  margin-bottom: 90px !important;
}

.ml90 {
  margin-left: 90px !important;
}

.pt90 {
  padding-top: 90px !important;
}

.pr90 {
  padding-right: 90px !important;
}

.pb90 {
  padding-bottom: 90px !important;
}

.pl90 {
  padding-left: 90px !important;
}

.mt100 {
  margin-top: 100px !important;
}

.mr100 {
  margin-right: 100px !important;
}

.mb100 {
  margin-bottom: 100px !important;
}

.ml100 {
  margin-left: 100px !important;
}

.pt100 {
  padding-top: 100px !important;
}

.pr100 {
  padding-right: 100px !important;
}

.pb100 {
  padding-bottom: 100px !important;
}

.pl100 {
  padding-left: 100px !important;
}

.c-wrap {
  background-color: #fff;
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  padding: 3rem;
  border-radius: 1rem;
}
.c-wrap__wide {
  width: 90%;
  margin: 0 auto;
  padding: 3rem 5rem;
}
@media screen and (max-width: 959px) {
  .c-wrap__wide {
    padding: 3rem 5vw;
  }
}
.c-wrap__fit {
  max-width: 1000px;
  width: 90%;
  margin: 0 auto;
}
.c-wrap__bg.is-gray_dotted {
  background: #f6f6f6 url("../images/bg_dot.png") repeat;
  background-size: 9px auto;
}

.l-404 {
  padding: 6rem 0 0;
}
.l-404__title {
  font-size: 4rem;
  font-weight: bold;
  line-height: 1em;
  text-align: center;
  background: linear-gradient(180deg, #D10A1C 0%, #FF9900 100%);
  background: -webkit-linear-gradient(-90deg, #D10A1C 0%, #FF9900 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.l-404__title.is-sizeL {
  font-size: 11rem;
}

.l-pagetitle {
  background-color: #35a97c;
  background-position: 0 bottom;
  background-repeat: no-repeat;
  background-size: contain;
  padding: 12rem 0 8rem;
}
@media screen and (max-width: 959px) {
  .l-pagetitle__main img {
    height: 2.5rem;
    width: auto;
  }
}
.l-pagetitle__sub {
  color: #fff;
  font-size: 3.6rem;
  font-weight: bold;
}
@media screen and (max-width: 959px) {
  .l-pagetitle__sub {
    font-size: 2.5rem;
  }
}
.l-pagetitle ul {
  list-style: none;
  padding-left: 0;
}
.l-pagetitle ul li {
  position: relative;
  padding-left: 28px;
}
.l-pagetitle ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='%23ffffff' d='M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z'/></svg>");
}
.l-pagetitle ul li a {
  color: #fff;
}
.l-pagetitle figure {
  width: 50%;
  max-width: 500px;
  max-height: 400px;
}
.l-pagetitle figure img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 20px 20px 40px 0 rgba(0, 0, 0, 0.25);
}
.l-contentsTitle__main {
  color: #03995c;
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.25em;
  text-transform: uppercase;
  word-break: break-all;
}
@media screen and (max-width: 959px) {
  .l-contentsTitle__main {
    font-size: 3rem;
  }
  .l-contentsTitle__main img {
    height: 2.5rem;
    width: auto;
  }
}
.l-contentsTitle__sub {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1.3em;
}
@media screen and (max-width: 959px) {
  .l-contentsTitle__sub {
    margin-top: 1.25rem;
    font-size: 2rem;
  }
}
.l-contentsTitle__sub.is-line {
  position: relative;
  padding-left: 2rem;
}
.l-contentsTitle__sub.is-line::before {
  position: absolute;
  content: "";
  width: 6px;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #03995c;
  border-radius: 3px;
}
.l-contentsTitle__sub02 {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
  font-size: 3.61rem;
  font-weight: bold;
  line-height: 1.3em;
}
@media screen and (max-width: 959px) {
  .l-contentsTitle__sub02 {
    margin-top: 1.25rem;
    font-size: 2rem;
  }
}
.l-contentsTitle__bg {
  background-size: 100% auto;
  background-position: center center;
  margin-bottom: 2rem;
  padding: 3rem 2rem;
  color: #fff;
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.25em;
  border-radius: 1rem;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.4);
}
.l-contentsTitle__bg.is-share_plan {
  background-image: url("../images/price_btn_bg01.png");
}
.l-contentsTitle__bg.is-share_discount {
  background-image: url("../images/price_btn_bg02.png");
}
@media screen and (min-width: 960px) {
  .l-contentsTitle__column .text-block {
    width: 55%;
  }
}
.l-contentsTitle__column .text-block p {
  font-size: 1.8rem;
}

body#reserve_guide .l-pagetitle {
  background-image: url("../images/title_bg_reserve_guide.png");
}
@media screen and (max-width: 959px) {
  body#reserve_guide .l-pagetitle__main img {
    height: 8rem;
    width: auto;
  }
}

.l-button__reserve {
  width: 100%;
}
.l-button__reserve a {
  position: relative;
  display: block;
  padding: 1.5rem 3rem 1.5rem 4em;
  background-color: #ff7B00;
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-radius: 50px;
}
.l-button__reserve a span {
  display: block;
  font-size: 1rem;
  line-height: 1rem;
  text-transform: uppercase;
}
.l-button__reserve a::before {
  content: "";
  position: absolute;
  top: calc(50% - 2rem);
  left: 1.2rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: #fff;
  z-index: 1;
}
.l-button__reserve a::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 3.2rem;
  width: 2.5rem;
  height: 2.5rem;
  transform: translate(-50%, -50%);
  background-image: url("../images/icon_calendar.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 2;
}
.l-button__white {
  width: 100%;
}
.l-button__white a {
  position: relative;
  display: block;
  padding: 1.5rem 4rem 1.5rem 1.5rem;
  background-color: #fff;
  color: #222;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 50px;
}
.l-button__white a::before {
  content: "";
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #03995c;
  border-radius: 50%;
}
.l-button__white a::after {
  content: "";
  position: absolute;
  right: calc(2rem + 12px);
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-50%) rotate(-45deg);
  transition: transform 0.25s ease;
}

.l-flex {
  display: flex;
}
@media screen and (min-width: 960px) {
  .l-flex > *:first-child {
    margin-right: 2rem;
  }
}
.l-flex.is-center {
  justify-content: center;
}
.l-flex.is-between {
  justify-content: space-between;
}
.l-flex.is-around {
  justify-content: space-around;
}
.l-flex.is-start {
  justify-content: flex-start;
}
.l-flex.is-end {
  justify-content: flex-end;
}
.l-flex.is-align-start {
  align-items: flex-start;
}
.l-flex.is-align-center {
  align-items: center;
}
.l-flex.is-align-end {
  align-items: flex-end;
}
.l-flex.is-wrap {
  flex-wrap: wrap;
}
@media screen and (max-width: 959px) {
  .l-flex.is-sp__block {
    display: block;
  }
  .l-flex.is-sp__block figure + div {
    margin-top: 1.5rem;
  }
  .l-flex.is-sp__block div + div {
    margin-top: 4rem;
  }
}
.l-flex .is-order1 {
  order: 1;
}
.l-flex .is-order2 {
  order: 2;
}
.l-flex .is-order3 {
  order: 3;
}

.l-list {
  padding-left: 0;
}
.l-list li {
  list-style-position: inside;
  line-height: 1.6em;
  margin-bottom: 0.5rem;
  padding-left: 2.5rem;
  text-indent: -2.5rem;
}
.l-list li::marker {
  color: #03995c;
}
.l-list li strong {
  color: #03995c;
  font-size: 2rem;
  font-weight: bold;
}
.l-list.is-border li {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px dotted #373737;
}

.l-galleryTitle__main {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1.3em;
}
.l-galleryTitle__main .icon {
  width: auto;
  height: 1em;
  padding-right: 1rem;
  vertical-align: text-bottom;
  fill: var(--main-color);
}
.l-galleryTitle__sub {
  position: relative;
  padding-left: 2rem;
  margin-top: 3rem;
  font-size: 2.5rem;
  font-weight: bold;
  line-height: 1.3em;
}
.l-galleryTitle__sub::before {
  position: absolute;
  content: "";
  width: 6px;
  height: 100%;
  top: 0;
  left: 0;
  background-color: var(--main-color);
  border-radius: 3px;
}
.l-gallery__lead {
  padding: 4rem 5%;
  text-align: center;
}
.l-gallery__lead--inner {
  display: inline-block;
  color: #373737;
}
.l-gallery__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  padding-left: 0;
  padding-bottom: 3rem;
}
@media screen and (max-width: 959px) {
  .l-gallery__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.l-gallery__list li {
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 1rem;
}
.l-gallery__list li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.l-gallery .c-wrap__bg {
  padding-bottom: 10rem;
}
@media screen and (min-width: 960px) {
  .l-gallery .c-wrap__bg {
    padding-bottom: 10rem;
  }
}
@media screen and (max-width: 959px) {
  .l-gallery .c-wrap__bg {
    padding-bottom: 8rem;
  }
}
.l-gallery .c-wrap__wide {
  background-color: #fff;
}
.l-gallery .c-wrap__wide .l-accordion details summary::before {
  background-color: #f6f6f6;
}
.l-gallery .c-wrap__wide .l-accordion details summary::after {
  border-color: var(--main-color);
}

#index .l-gallery {
  background-color: #f3f4ee;
}
@media screen and (min-width: 960px) {
  #index .l-gallery {
    padding-bottom: 5rem;
  }
}
@media screen and (max-width: 959px) {
  #index .l-gallery {
    padding-bottom: 3rem;
  }
}
#index .l-gallery::before {
  content: "";
  display: block;
  width: 100%;
  height: 100px;
  background: url("data:image/svg+xml;utf8,<svg ...>") no-repeat top center;
  background-size: cover;
}

.l-table {
  width: 100%;
  border-collapse: collapse;
}
.l-table th,
.l-table td {
  padding: 1.2rem 1.5rem;
}
.l-table th a,
.l-table td a {
  color: #03995c;
}
.l-table th {
  min-width: 40%;
  font-weight: bold;
}
@media screen and (min-width: 960px) {
  .l-table tr {
    border-bottom: 1px solid #373737;
  }
  .l-table.is-cancel td:not(.cancel-day) {
    text-align: center;
  }
  .l-table.is-cancel td.cancel-day {
    padding-left: 2rem;
  }
  .l-table.is-cancel td.cancel-price {
    width: 40%;
  }
}
@media screen and (max-width: 959px) {
  .l-table {
    border-bottom: 1px dotted #373737;
  }
  .l-table tr,
  .l-table th,
  .l-table td {
    display: block;
    width: 100%;
  }
  .l-table th {
    background-color: #f3f4ee;
  }
  .l-table td + td {
    border-top: 1px dotted #373737;
  }
  .l-table.is-cancel tr:not(:nth-child(1)):not(:nth-child(5)) {
    border-top: 1px dotted #373737;
  }
  .l-table.is-cancel td + td {
    border-top: none;
    padding-top: 0;
  }
}
@media screen and (min-width: 960px) {
  .l-table.is-green {
    border-top: 1px solid #03995c;
  }
  .l-table.is-green tr {
    border-bottom: 1px solid #03995c;
  }
}
@media screen and (max-width: 959px) {
  .l-table.is-green {
    border-bottom: 1px dotted #03995c;
  }
  .l-table.is-green td + td {
    border-top: 1px dotted #03995c;
  }
}

.l-accordion {
  position: relative;
  z-index: 2;
}
.l-accordion details summary {
  position: relative;
  display: block;
  font-weight: bold;
  cursor: pointer;
}
@media screen and (max-width: 959px) {
  .l-accordion details summary {
    padding-right: 4rem;
  }
}
.l-accordion details summary::-webkit-details-marker {
  display: none;
}
.l-accordion details summary::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6rem;
  height: 6rem;
  background: #f3f4ee;
  border-radius: 50%;
}
@media screen and (max-width: 959px) {
  .l-accordion details summary::before {
    right: -0.5em;
    width: 3rem;
    height: 3rem;
  }
}
.l-accordion details summary::after {
  content: "";
  position: absolute;
  right: 21px;
  top: calc(50% - 2px);
  width: 16px;
  height: 16px;
  border-right: 4px solid #03995c;
  border-bottom: 4px solid #03995c;
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.25s ease;
}
@media screen and (max-width: 959px) {
  .l-accordion details summary::after {
    right: 0.1rem;
    width: 1.2rem;
    height: 1.2rem;
    border-right: 2px solid #03995c;
    border-bottom: 2px solid #03995c;
  }
}
.l-accordion details[open] summary::after {
  top: calc(50% + 2px);
  transform: translateY(-50%) rotate(-135deg);
}
@media screen and (min-width: 960px) {
  .l-accordion details .accordion-content .l-flex > div {
    width: 48%;
  }
}
.l-accordion details .accordion-content .copy-text {
  position: relative;
  background-color: #f3f4ee;
  padding: 1rem 1.5rem;
  color: #03995c;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  border-radius: 30px;
  cursor: pointer;
}
.l-accordion details .accordion-content .copied-tooltip {
  position: absolute;
  top: -28px;
  right: 10px;
  background: #03995c;
  color: #fff;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  opacity: 0;
  transform: translateY(5px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.l-accordion details .accordion-content .copied-tooltip.show {
  opacity: 1;
  transform: translateY(0);
}
.l-accordion details .accordion-content p + p {
  margin-top: 2rem;
}

.l-mainVisual {
  position: relative;
}
@media screen and (min-width: 960px) {
  .l-mainVisual {
    padding-top: 100px;
    padding-bottom: 5rem;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual {
    padding-top: 8rem;
    padding-bottom: 3rem;
  }
}
.l-mainVisual .mv {
  position: relative;
  background-color: #fff;
  overflow: hidden;
  width: 90%;
  height: 80vh;
  margin: 0 auto;
  border-radius: 1rem;
}
@media screen and (max-width: 959px) {
  .l-mainVisual .mv {
    width: 90%;
    height: calc(95vh - 18rem);
  }
}
.l-mainVisual .mv .swiper-wrapper {
  padding-left: 0;
  list-style-type: none;
}
.l-mainVisual .mv .swiper-wrapper .swiper-slide {
  width: 100%;
  height: 100vh;
}
.l-mainVisual .mv .swiper-wrapper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.l-mainVisual .mv .swiper-wrapper .swiper-slide.swiper-slide-active img, .l-mainVisual .mv .swiper-wrapper .swiper-slide.swiper-slide-duplicate-active img, .l-mainVisual .mv .swiper-wrapper .swiper-slide.swiper-slide-prev img {
  animation: zoom 20s linear 0s 1 normal both;
}
.l-mainVisual .mv-content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 960px) {
  .l-mainVisual .mv-content .l-button__reserve {
    max-width: 500px;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual .mv-content .l-button__reserve {
    width: 70%;
  }
}
.l-mainVisual .scroll-guide {
  position: absolute;
  top: 73vh;
  left: 2vw;
}
.l-mainVisual .scroll-guide p {
  position: relative;
  padding-top: 9em;
  writing-mode: vertical-rl;
  font-size: 12px;
  color: white;
  letter-spacing: 2px;
  text-transform: uppercase;
  transform: rotate(180deg);
}
.l-mainVisual .scroll-guide p::before {
  content: "";
  position: absolute;
  left: 1.3rem;
  top: 0;
  width: 1px;
  height: 8em;
  background-color: #fff;
}
.l-mainVisual #about {
  position: relative;
  padding-top: 10rem;
}
@media screen and (min-width: 960px) {
  .l-mainVisual #about {
    padding-top: 10rem;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual #about {
    padding-top: 7rem;
  }
}
.l-mainVisual #about .c-wrap__wide {
  background-color: #fff;
  border-radius: 1rem;
}
@media screen and (min-width: 960px) {
  .l-mainVisual #about .c-wrap__wide {
    padding: 5rem 60vw 5rem 5vw;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual #about .c-wrap__wide {
    padding-bottom: 8rem;
  }
}
.l-mainVisual #about figure {
  border-radius: 10px 0 0 10px;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .l-mainVisual #about figure {
    position: absolute;
    right: 0;
    bottom: -3.5vw;
    width: 60vw;
    height: 30em;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual #about figure {
    width: 87%;
    margin-left: 13%;
    margin-top: -5rem;
  }
}
.l-mainVisual .banner.is-projector .c-wrap__wide {
  background: #222 url("../../assets/images/bg02.png") center center no-repeat;
  background-size: 100% auto;
  border-radius: 1rem;
}
@media screen and (max-width: 959px) {
  .l-mainVisual .banner.is-projector .c-wrap__wide {
    background-size: auto 130%;
  }
}
.l-mainVisual .banner.is-projector .c-wrap__wide .img {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
@media screen and (max-width: 959px) {
  .l-mainVisual .banner.is-projector .c-wrap__wide .img {
    grid-template-columns: repeat(2, 1fr);
  }
}
.l-mainVisual .banner.is-projector .c-wrap__wide .img img {
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 1rem;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (min-width: 960px) {
  .l-mainVisual .banner.is-projector .c-wrap__wide {
    margin-top: 13rem;
  }
  .l-mainVisual .banner.is-projector .c-wrap__wide > div {
    width: 50%;
  }
}
@media screen and (max-width: 959px) {
  .l-mainVisual .banner.is-projector .c-wrap__wide {
    margin-top: 5rem;
  }
}
.l-mainVisual .banner.is-projector .c-wrap__wide .l-contentsTitle__sub,
.l-mainVisual .banner.is-projector .c-wrap__wide p {
  color: #fff;
}

body#index .l-mainVisual {
  background: #fff url("../../assets/images/bg01.png") left bottom no-repeat;
  background-size: auto calc(100% - 70vh);
}
@media screen and (min-width: 960px) {
  body#index .l-mainVisual {
    padding-bottom: 22rem;
  }
}
@media screen and (max-width: 959px) {
  body#index .l-mainVisual {
    padding-bottom: 11rem;
  }
}

body#gallery .l-mainVisual {
  background-image: var(--season-bg-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
@media screen and (max-width: 959px) {
  body#gallery .l-mainVisual .mv {
    width: 90%;
    height: calc(80vh - 18rem);
  }
}
body#gallery .l-mainVisual .title {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: 530px;
  z-index: 2;
  line-height: 1;
  text-align: center;
}
@media screen and (min-width: 960px) {
  body#gallery .l-mainVisual .title {
    width: 30%;
  }
}
@media screen and (max-width: 959px) {
  body#gallery .l-mainVisual .title {
    width: 70%;
    bottom: -1px;
  }
}
body#gallery .l-mainVisual .title img {
  vertical-align: bottom;
}
body#gallery .l-mainVisual .illust {
  position: absolute;
  bottom: 9%;
  left: 0;
  width: 100%;
  z-index: 1;
  line-height: 1;
}

@keyframes zoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}
@media screen and (min-width: 960px) {
  .l-information .l-flex {
    width: 90%;
    margin: 0 auto;
  }
}
@media screen and (min-width: 960px) {
  .l-information .l-flex .c-wrap .l-table th {
    width: 8em;
  }
}
.l-information .l-flex .c-wrap .l-table td span {
  display: inline-block;
  background-color: #f3f4ee;
  margin: 2px;
  padding: 0 1rem;
}
.l-information .l-flex .c-wrap .l-list strong {
  color: #f00;
  font-size: 1.6rem;
  font-weight: normal;
}
.l-information .l-flex .c-wrap .text-green {
  padding: 1rem;
  color: #03995c;
  border: 1px solid #03995c;
}
@media screen and (max-width: 959px) {
  .l-information .l-flex .c-wrap {
    width: 90%;
  }
}
@media screen and (min-width: 960px) {
  .l-information #information,
  .l-information #guideline {
    padding-top: 13rem;
  }
}
@media screen and (max-width: 959px) {
  .l-information #information,
  .l-information #guideline {
    padding-top: 7rem;
  }
}

@media screen and (min-width: 960px) {
  body#index .l {
    padding: 13rem 0 15rem;
  }
}
@media screen and (max-width: 959px) {
  body#index .l {
    padding: 7rem 0 10rem;
  }
}
body#index .l-information {
  position: relative;
  background: url("../images/bg01.png") no-repeat center center;
  background-size: cover;
  padding-bottom: 15rem;
}
body#index .l-information::before {
  /* 波 */
  content: "";
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 100"><path fill="%23f3f4ee" d="M0,30 C360,80 1080,-20 1440,30 L1440,0 L0,0 Z" /></svg>');
  width: 100%;
  height: 15rem;
  position: absolute;
  top: 0;
  left: 0;
}

@media screen and (min-width: 960px) {
  .l-reserve_guide__block {
    padding-top: 6rem;
  }
}
@media screen and (max-width: 959px) {
  .l-reserve_guide__block {
    padding-top: 5rem;
  }
}
.l-reserve_guide .cation-txt {
  position: relative;
  background-color: #fff;
  padding: 2rem 0.5rem 2rem 7rem;
  border-radius: 1rem;
  font-size: 2rem;
  font-weight: bold;
}
.l-reserve_guide .cation-txt::before {
  content: "";
  position: absolute;
  left: 2rem;
  top: calc(50% - 2rem);
  width: 4rem;
  height: 4rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'><path fill='%23ff7b00' d='M320 64C334.7 64 348.2 72.1 355.2 85L571.2 485C577.9 497.4 577.6 512.4 570.4 524.5C563.2 536.6 550.1 544 536 544L104 544C89.9 544 76.8 536.6 69.6 524.5C62.4 512.4 62.1 497.4 68.8 485L284.8 85C291.8 72.1 305.3 64 320 64zM320 416C302.3 416 288 430.3 288 448C288 465.7 302.3 480 320 480C337.7 480 352 465.7 352 448C352 430.3 337.7 416 320 416zM320 224C301.8 224 287.3 239.5 288.6 257.7L296 361.7C296.9 374.2 307.4 384 319.9 384C332.5 384 342.9 374.3 343.8 361.7L351.2 257.7C352.5 239.5 338.1 224 319.8 224z'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
}
.l-reserve_guide .agree-label {
  position: relative;
  background: #fff;
  display: block;
  margin-top: 6rem;
  padding: 2rem 2rem 2rem 8rem;
  font-size: 2rem;
  font-weight: bold;
  cursor: pointer;
  border-radius: 1rem;
}
.l-reserve_guide .agree-label::before {
  content: "";
  position: absolute;
  left: 3.5rem;
  top: calc(50% - 1.5rem);
  width: 3rem;
  height: 3rem;
  border: 2px solid #373737;
  border-radius: 4px;
  background: #fff;
  transition: 0.25s ease;
}
.l-reserve_guide .agree-label::after {
  content: "";
  position: absolute;
  left: 4rem;
  top: calc(50% - 0.7rem);
  width: 1.8rem;
  height: 0.8rem;
  border-left: 3px solid transparent;
  border-bottom: 3px solid transparent;
  transform: rotate(-45deg);
  opacity: 0;
  transition: 0.25s ease;
}
.l-reserve_guide .agree-btn {
  display: inline-block;
  margin-top: 6rem;
  font-size: 2.5rem;
  font-weight: bold;
  letter-spacing: 0.1rem;
  pointer-events: none;
  cursor: none;
  transition: opacity 0.6s ease, transform 0.4s ease;
}
.l-reserve_guide .agree-btn a {
  filter: grayscale(1);
}
.l-reserve_guide .agree-check {
  display: none;
}
.l-reserve_guide .agree-check:checked + label.agree-label::before {
  background-color: #fff;
  transform: scale(1.05);
}
.l-reserve_guide .agree-check:checked + label.agree-label::after {
  border-left-color: #373737;
  border-bottom-color: #373737;
  opacity: 1;
}
.l-reserve_guide .agree-check:checked ~ .agree-btn {
  opacity: 1;
  pointer-events: auto;
}
.l-reserve_guide .agree-check:checked ~ .agree-btn a {
  filter: grayscale(0);
  transition: filter 0.2s ease;
}

body#index .l-reserve_guide {
  position: relative;
}
body#index .l-reserve_guide::before {
  /* 波 */
  content: "";
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 100"><path fill="%23f3f4ee" d="M0,70 C360,120 1080,20 1440,70 L1440,100 L0,100 Z" /></svg>');
  width: 100%;
  height: 15rem;
  position: absolute;
  bottom: -1px;
  left: 0;
  z-index: 3;
}
body#index .l-reserve_guide:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-image: url("../images/bg03.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}
body#index .l-reserve_guide__inner {
  position: relative;
  background: #f3f4ee url("../images/bg_dot.png") repeat;
  background-size: 9px;
  margin-top: -5rem;
  padding-top: 10rem;
  padding-bottom: 10rem;
  padding-left: 2%;
  border-radius: 1rem 0 0 0;
}
@media screen and (min-width: 960px) {
  body#index .l-reserve_guide__inner {
    width: 90%;
    margin-left: 10%;
    padding-right: 10%;
    box-sizing: border-box;
  }
}
@media screen and (max-width: 959px) {
  body#index .l-reserve_guide__inner {
    width: 95%;
    margin-left: 5%;
    padding-top: 5rem;
  }
  body#index .l-reserve_guide__inner .l-contentsTitle__main img {
    height: 6rem;
  }
}
body#index .l-reserve_guide__calendar iframe {
  width: 100%;
  max-width: 1000px;
}
@media screen and (max-width: 959px) {
  body#index .l-reserve_guide__calendar--title {
    margin-top: 6rem;
  }
  body#index .l-reserve_guide__calendar iframe {
    height: 400px;
  }
}

@media screen and (min-width: 960px) {
  body#reserve_guide .l-reserve_guide {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
}
@media screen and (max-width: 959px) {
  body#reserve_guide .l-reserve_guide {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.l-header {
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 5;
}
.l-header .logo {
  line-height: 1rem;
}
@media screen and (min-width: 1000px) {
  .l-header {
    padding: 0.5rem 2rem;
  }
  .l-header__toggle {
    display: none;
  }
  .l-header .l-nav {
    display: flex;
    align-items: center;
  }
  .l-header .l-nav nav {
    background-color: #fff;
    padding: 0 2rem;
    margin-right: 1.5rem;
    border-radius: 50px;
  }
  .l-header .l-nav nav > ul {
    display: flex;
    justify-content: space-between;
    list-style-type: none;
    padding-left: 0;
  }
  .l-header .l-nav nav > ul > li a {
    position: relative;
    display: block;
    padding: 2rem;
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    line-height: 1.75em;
  }
  .l-header .l-nav nav > ul > li a:hover {
    opacity: 0.5;
  }
  .l-header .l-nav nav > ul > li a span {
    display: block;
    font-size: 1rem;
    line-height: 1rem;
    color: #03995c;
    text-transform: uppercase;
  }
  .l-header .l-nav nav > ul > li + li a:before {
    content: "";
    position: absolute;
    background-color: #eaeaea;
    width: 1px;
    height: 50%;
    top: 28%;
    left: 0;
  }
  .l-header .l-nav nav > ul > li > ul {
    display: none;
  }
  .l-header .l-nav .sub-menu {
    display: none;
  }
  .l-header .l-nav .l-button__reserve {
    width: auto;
    min-width: 20rem;
  }
  .l-header .l-nav .l-button__reserve a {
    padding: 1.25rem 3rem 2rem 4em;
    line-height: 1.75em;
  }
}
@media screen and (max-width: 999px) {
  .l-header {
    background-color: #fff;
  }
  .l-header__logo {
    width: 45%;
  }
  .l-header__logo a {
    padding: 0.25rem 0;
    line-height: 1em;
  }
  .l-header__logo--wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    z-index: 5;
    padding: 0.5rem 2rem;
    background-color: #fff;
  }
  .l-header__toggle {
    display: block;
    width: 10%;
    height: 25px;
    padding: 0 2%;
    color: #000;
    text-align: center;
    box-sizing: border-box;
    cursor: pointer;
    order: 3;
  }
  .l-header__toggle span {
    display: block;
    height: 3px;
    width: 100%;
    margin: 0 auto;
    background: #222;
    border-radius: 1px;
    opacity: 1;
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    -moz-transition: 0.25s ease-in-out;
    -o-transition: 0.25s ease-in-out;
    -ms-transition: 0.25s ease-in-out;
    -webkit-transition: 0.25s ease-in-out;
    transition: 0.25s ease-in-out;
  }
  .l-header__toggle span:nth-child(2) {
    margin: 8px auto;
  }
  .l-header__toggle.open span:nth-child(1) {
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    margin-top: 12px;
  }
  .l-header__toggle.open span:nth-child(2) {
    opacity: 0;
    margin-top: 0;
  }
  .l-header__toggle.open span:nth-child(3) {
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    margin-top: -14px;
  }
  .l-header .l-nav__wrap {
    display: none;
    position: fixed;
    z-index: 3;
    width: 100%;
    height: 100vh;
    padding: 12rem 5vw 10vw;
    left: 0;
    top: 0;
    background: #222;
    overflow-y: auto;
  }
  .l-header .l-nav nav {
    margin-top: 5rem;
  }
  .l-header .l-nav nav > ul {
    padding-left: 0;
    list-style-position: inside;
  }
  .l-header .l-nav nav > ul > li {
    margin-bottom: 2.5rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid #373737;
    color: #fff;
  }
  .l-header .l-nav nav > ul > li::marker {
    color: #03995c;
  }
  .l-header .l-nav nav > ul > li.menu-home {
    display: none;
  }
  .l-header .l-nav nav > ul > li a {
    color: #fff;
    font-size: 1.8rem;
  }
  .l-header .l-nav nav > ul > li a span {
    display: none;
  }
  .l-header .l-nav nav > ul > li > ul li::marker {
    color: #03995c;
  }
  .l-header .l-nav nav > ul > li > ul li a {
    font-size: 1.6rem;
  }
}

.l-footer {
  position: relative;
  background-color: #222;
  padding-bottom: 4rem;
  /* 波 */
  padding-top: 15rem;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 100"><path fill="%23f3f4ee" d="M0,30 C360,80 1080,-20 1440,30 L1440,0 L0,0 Z" /></svg>');
}
@media screen and (max-width: 959px) {
  .l-footer {
    padding-top: 8rem;
    padding-left: 5vw;
    padding-right: 5vw;
  }
}
@media screen and (min-width: 960px) {
  .l-footer__facility {
    max-width: 400px;
  }
}
.l-footer__facility h2 {
  margin-top: 1rem;
  font-size: 2.2rem;
  font-weight: bold;
  color: #fff;
}
.l-footer__facility p {
  font-size: 1.4rem;
  color: #888;
}
.l-footer__facility p + p {
  margin-top: 0.5rem;
}
.l-footer .l-nav .l-button__reserve {
  display: none;
}
.l-footer .l-nav nav {
  display: flex;
}
@media screen and (max-width: 959px) {
  .l-footer .l-nav nav {
    display: none;
  }
}
@media screen and (min-width: 960px) {
  .l-footer .l-nav nav > ul {
    margin-right: 2rem;
  }
}
.l-footer .l-nav nav > ul > li {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid #373737;
  color: #fff;
}
.l-footer .l-nav nav > ul > li::marker {
  color: #03995c;
}
.l-footer .l-nav nav > ul > li a {
  color: #fff;
  font-size: 1.8rem;
}
.l-footer .l-nav nav > ul > li a span {
  display: none;
}
.l-footer .l-nav nav > ul > li > ul li::marker {
  color: #03995c;
}
.l-footer .l-nav nav > ul > li > ul li a {
  font-size: 1.6rem;
}
.l-footer__link {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid #373737;
}
@media screen and (min-width: 960px) {
  .l-footer__link .l-button__reserve {
    width: 500px;
    margin-right: 10rem;
  }
}
@media screen and (max-width: 959px) {
  .l-footer__link .l-button__reserve + figure {
    width: 80%;
    margin: 4rem auto 0;
  }
}
.l-footer__link figure {
  max-width: 400px;
}
.l-footer__link .privacy-policy {
  margin-top: 50px;
  text-align: center;
}
.l-footer__link .privacy-policy a {
  color: #fff;
  font-size: 1.4rem;
}
.l-footer__copyright {
  margin-top: 3rem;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
}
.l-footer__group {
  position: relative;
  background-color: #f3f4ee;
}
.l-footer__group .c-wrap__wide {
  position: relative;
  top: -7rem;
  background: #373737 url("../images/bg_dot_white.png") repeat;
  background-size: 9px;
  border-radius: 1rem;
  padding: 5rem;
}
.l-footer__group .c-wrap__wide .l-contentsTitle__sub {
  color: #fff;
  margin-top: 1rem;
  font-size: 2rem;
  font-weight: normal;
}
.l-footer__group .c-wrap__wide a {
  display: block;
}
@media screen and (min-width: 960px) {
  .l-footer__group .c-wrap__wide a {
    max-width: 400px;
    margin-left: 3rem;
  }
}
@media screen and (max-width: 959px) {
  .l-footer__group .c-wrap__wide a + a {
    margin-top: 3rem;
  }
}
.l-footer__group .c-wrap__wide figure {
  border-radius: 1rem;
  overflow: hidden;
}
.l-footer__group .c-wrap__wide figure figcaption {
  background-color: #fff;
  padding: 1.5rem 2rem;
  font-weight: bold;
  text-align: center;
}
.l-footer__sns {
  background-color: #f3f4ee;
}
@media screen and (min-width: 960px) {
  .l-footer__sns {
    padding: 4rem 0 10rem;
  }
}
@media screen and (max-width: 959px) {
  .l-footer__sns {
    padding: 5rem 0;
  }
}
@media screen and (min-width: 960px) {
  .l-footer__sns .l-flex > div {
    width: 48%;
  }
}

.page-top {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  right: 20px;
  bottom: 20px;
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 4;
}
.page-top.active {
  opacity: 1;
  visibility: visible;
}
.page-top.absolute {
  position: absolute;
  top: 80px;
  bottom: auto;
}
.page-top::before {
  content: "";
  width: 12px;
  height: 12px;
  border-left: 3px solid #3fb268;
  border-bottom: 3px solid #3fb268;
  transform: rotate(135deg);
  display: block;
}
