@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Baskervville:wght@400..700&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");
/* =========================================================
 base
========================================================= */
/* reset
------------------------------------- */
/*!
 * ress.css • v3.0.1
 * MIT License
 * github.com/filipelinhares/ress
 */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4;
}

*, :after, :before {
  background-repeat: no-repeat;
  box-sizing: inherit;
}

:after, :before {
  text-decoration: inherit;
  vertical-align: inherit;
}

* {
  padding: 0;
  margin: 0;
}

hr {
  overflow: visible;
  height: 0;
}

details, main {
  display: block;
}

summary {
  display: list-item;
}

small {
  font-size: 80%;
}

[hidden] {
  display: none;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

a {
  background-color: transparent;
}

a:active, a:hover {
  outline-width: 0;
}

code, kbd, pre, samp {
  font-family: monospace, monospace;
}

pre {
  font-size: 1em;
}

b, strong {
  font-weight: bolder;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

input {
  border-radius: 0;
}

[disabled] {
  cursor: default;
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

textarea {
  overflow: auto;
  resize: vertical;
}

button, input, optgroup, select, textarea {
  font: inherit;
}

optgroup {
  font-weight: 700;
}

button {
  overflow: visible;
}

button, select {
  text-transform: none;
}

[role=button], [type=button], [type=reset], [type=submit], button {
  cursor: pointer;
  color: inherit;
}

[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button:-moz-focusring {
  outline: 1px dotted ButtonText;
}

[type=reset], [type=submit], button, html [type=button] {
  -webkit-appearance: button;
}

button, input, select, textarea {
  background-color: transparent;
  border-style: none;
}

select {
  -moz-appearance: none;
  -webkit-appearance: none;
}

select::-ms-expand {
  display: none;
}

select::-ms-value {
  color: currentColor;
}

legend {
  border: 0;
  color: inherit;
  display: table;
  white-space: normal;
  max-width: 100%;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit;
}

img {
  border-style: none;
}

progress {
  vertical-align: baseline;
}

@media screen {
  [hidden~=screen] {
    display: inherit;
  }
  [hidden~=screen]:not(:active):not(:focus):not(:target) {
    position: absolute !important;
    clip: rect(0 0 0 0) !important;
  }
}
[aria-busy=true] {
  cursor: progress;
}

[aria-controls] {
  cursor: pointer;
}

[aria-disabled] {
  cursor: default;
}

ul, dl, figure {
  margin: 0;
  padding: 0;
}

dt {
  font-weight: normal;
}

ul, li {
  list-style: none;
}

ol {
  padding-left: 1.5em;
}
ol > li {
  list-style: decimal;
}
ol > li + li {
  margin-top: 0.3em;
}

img, iframe {
  vertical-align: bottom;
  max-width: 100%;
}

img {
  height: auto;
}

button {
  outline: none;
  cursor: pointer;
}

table {
  border-collapse: collapse;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.4;
}

body {
  height: 100%;
  font-feature-settings: "palt";
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.7;
  color: #505050;
  font-size-adjust: none;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media (min-width: 1024px) {
  body {
    font-size: 16px;
    font-size: 1rem;
  }
}

b, strong {
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

a {
  text-decoration: none;
  color: #505050;
}

@media (min-width: 768px) {
  a[href*="tel:"]:not(.l-header__contact.u-hidden-large) {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
.material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

_:lang(x)::-internal-media-controls-overlay-cast-button, img {
  image-rendering: -webkit-optimize-contrast;
}

/*
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
}
*/
.is-fadeIn {
  opacity: 0;
}

/* =========================================================
 component
========================================================= */
/* inner
-------------------------------------- */
.c-inner {
  width: 92%;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1024px) {
  .c-inner {
    width: 88%;
    max-width: 1200px;
  }
}

.c-inner-02 {
  width: 100%;
  padding-right: 35px;
  padding-left: 35px;
}
@media (min-width: 1024px) {
  .c-inner-02 {
    width: 88%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-list__inner {
  max-width: 900px;
}

/* section
-------------------------------------- */
.c-section--bg {
  background: #505050;
}

/* img
-------------------------------------- */
.c-img {
  position: relative;
}

.c-sharpImg img {
  image-rendering: -webkit-optimize-contrast;
}

/* list
-------------------------------------- */
.c-list > li {
  position: relative;
  padding-left: 1em;
}
.c-list > li:before {
  position: absolute;
  left: 0;
  content: "・";
}
.c-list > li + li {
  margin-top: 0.3em;
}
.c-list ul {
  margin-top: 0.3em;
}
.c-list--square > li::before {
  content: "■" !important;
}
.c-list--disc > li::before {
  content: "●" !important;
}
.c-list--att > li::before {
  content: "※" !important;
}
.c-list--row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em 1.5em;
}
.c-list--row > li + li {
  margin-top: 0;
}

.p-link-img {
  position: relative;
}
.p-link-img a {
  display: block;
}
.p-link-img a + a {
  margin-top: 20px;
}
@media (min-width: 1024px) {
  .p-link-img a + a {
    margin-top: 40px;
  }
}
.p-link-img .p-link-img-block {
  overflow: hidden;
  position: relative;
}
@media (max-width: 767px) {
  .p-link-img .p-link-img-block {
    aspect-ratio: 740/240;
  }
}
.p-link-img .p-link-img-block::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background: rgba(80, 80, 80, 0.1);
  transition: 0.5s background-color;
}
.p-link-img .p-link-img-block img {
  width: 100%;
  transition: 0.5s transform;
}
@media (max-width: 767px) {
  .p-link-img .p-link-img-block img {
    object-fit: cover;
  }
}
.p-link-img .p-link-btn-block {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 3;
  padding: 20px;
  height: 100%;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 1024px) {
  .p-link-img .p-link-btn-block {
    gap: 40px;
  }
}
@media (max-width: 767px) {
  .p-link-img .p-link-btn-block {
    justify-content: center;
  }
}
.p-link-img .p-link-btn-block .p-link-btn-text {
  display: flex;
  line-height: 1.2;
  flex-direction: column;
  gap: 5px;
  color: #fff;
  text-align: center;
}
.p-link-img a:hover .p-link-img-block::before {
  background: rgba(80, 80, 80, 0.4);
}
.p-link-img a:hover .p-link-img-block img {
  transform: scale(1.06);
}
.p-link-img a:hover .under-btn-arw::before {
  background: #fff;
}
.p-link-img a:hover .under-btn-arw::after {
  background: #505050;
  clip-path: polygon(35% 40%, 65% 40%, 50% 65%);
}

.under-btn-arw {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 40px;
  width: 40px;
  flex-shrink: 0;
}
.under-btn-arw::before, .under-btn-arw::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #fff;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.under-btn-arw::before {
  background: transparent;
}
.under-btn-arw::after {
  background: #FFF;
  clip-path: polygon(35% 40%, 65% 40%, 50% 65%);
}

/* title
-------------------------------------- */
/* lead
-------------------------------------- */
/* btn
-------------------------------------- */
.c-primaryBtn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  width: 150px;
  height: 27px;
  border-radius: 17.5px;
  overflow: hidden;
  transition: 0.5s border-color, 0.5s background-color;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  border: 1px solid #505050;
}
@media (min-width: 768px) {
  .c-primaryBtn {
    width: 172px;
    height: 37px;
  }
}
.c-primaryBtn--l {
  width: 300px;
  height: 70px;
}
.c-primaryBtn__small {
  width: 200px;
  height: 50px;
}
.c-primaryBtn .circle-button {
  background-color: #fff;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  position: relative;
}
.c-primaryBtn .circle-button::before {
  content: "";
  position: absolute;
  right: 18px;
  width: 6px;
  height: 6px;
  background: #505050;
  border-radius: 50%;
  opacity: 1;
  transition: 0.5s opacity, 0.5s transform;
  transform: translateX(0);
}
.c-primaryBtn .circle-button::after {
  content: "";
  position: absolute;
  left: 15px;
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
  opacity: 0;
  transition: 0.5s opacity, 0.5s transform;
  transform: translateX(-10px);
}
.c-primaryBtn .text {
  position: absolute;
  white-space: nowrap;
  transition: 0.5s opacity, 0.5s transform;
}
.c-primaryBtn .text--ja {
  left: 10px;
  color: #505050;
  font-weight: 400;
  letter-spacing: 0.5px;
  opacity: 1;
  transform: translateX(0);
  font-size: 13px;
  font-size: 0.8125rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
}
@media (min-width: 768px) {
  .c-primaryBtn .text--ja {
    font-size: 14px;
    font-size: 0.875rem;
    left: 18px;
  }
}
.c-primaryBtn .text--en {
  right: 14px;
  left: auto;
  color: #fff;
  opacity: 0;
  transform: translateX(-100px);
  font-family: "Baskerville", serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1;
}
@media (min-width: 768px) {
  .c-primaryBtn .text--en {
    font-size: 16px;
    font-size: 1rem;
  }
}
@media (any-hover: hover) {
  .c-primaryBtn:hover {
    border-color: transparent;
    outline: 1px solid #505050;
    outline-offset: -1px;
  }
  .c-primaryBtn:hover .circle-button {
    background: #505050;
  }
  .c-primaryBtn:hover .circle-button::before {
    opacity: 0;
    transform: translateX(10px);
  }
  .c-primaryBtn:hover .circle-button::after {
    opacity: 1;
    transform: translateX(0);
  }
  .c-primaryBtn:hover .text--ja {
    opacity: 0;
    transform: translateX(80px);
  }
  .c-primaryBtn:hover .text--en {
    opacity: 1;
    transform: translateX(0);
  }
}

.c-singleBtn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  min-width: 100px;
  height: 30px;
  overflow: hidden;
  transition: 0.5s border-color, 0.5s background-color;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  background: transparent;
  border: 1px solid #505050;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 1024px) {
  .c-singleBtn {
    width: 100%;
    height: 40px;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.c-singleBtn.current {
  border: 1px solid #e8e8e8;
  background: #e8e8e8;
}
.c-singleBtn .circle-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
}
.c-singleBtn .circle-button .text {
  white-space: nowrap;
  font-size: 12px;
  font-size: 0.75rem;
  color: #505050;
}
@media (min-width: 1024px) {
  .c-singleBtn .circle-button .text {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.c-singleBtn:hover {
  border: 1px solid #e8e8e8;
  background: #e8e8e8;
}
.c-textBtn {
  border-bottom: 1px solid #505050;
  transition: 0.5s;
}
.c-textBtn .gaibu-link {
  display: inline-block;
  line-height: 1;
}
@media (any-hover: hover) {
  .c-textBtn:hover {
    opacity: 0.6;
    border-bottom: 1px solid transparent;
  }
}

.c-primaryBtn__small {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  width: 180px;
  height: 40px;
  border-radius: 40px;
  border: 1px solid transparent;
  overflow: hidden;
  transition: 0.5s border-color, 0.5s background-color;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  border: 1px solid #000;
}
@media (min-width: 768px) {
  .c-primaryBtn__small {
    width: 180px;
    height: 40px;
  }
}
.c-primaryBtn__small .circle-button {
  background: #fff;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  position: relative;
}
.c-primaryBtn__small .circle-button::before {
  content: "";
  position: absolute;
  right: 20px;
  width: 8px;
  height: 8px;
  background: #000;
  border-radius: 50%;
  opacity: 1;
  transition: 0.5s opacity, 0.5s transform;
  transform: translateX(0);
}
.c-primaryBtn__small .circle-button::after {
  content: "";
  position: absolute;
  left: 20px;
  width: 8px;
  height: 8px;
  background: #2a9cc2;
  border-radius: 50%;
  opacity: 0;
  transition: 0.5s opacity, 0.5s transform;
  transform: translateX(-10px);
}
.c-primaryBtn__small .text {
  position: absolute;
  white-space: nowrap;
  transition: 0.5s opacity, 0.5s transform;
}
.c-primaryBtn__small .text--pre {
  left: 20px;
  color: #000;
  font-weight: 400;
  letter-spacing: 0.5px;
  opacity: 1;
  transform: translateX(0);
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 768px) {
  .c-primaryBtn__small .text--pre {
    font-size: 12px;
    font-size: 0.75rem;
  }
}
.c-primaryBtn__small .text--after {
  right: 20px;
  left: auto;
  color: #2a9cc2;
  opacity: 0;
  transform: translateX(-100px);
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 768px) {
  .c-primaryBtn__small .text--after {
    font-size: 12px;
    font-size: 0.75rem;
  }
}
.c-primaryBtn__small.current {
  border-color: transparent;
  outline: 1px solid #2a9cc2;
  outline-offset: -1px;
}
.c-primaryBtn__small.current .circle-button {
  background: #fff;
}
.c-primaryBtn__small.current .circle-button::before {
  opacity: 0;
  transform: translateX(10px);
}
.c-primaryBtn__small.current .circle-button::after {
  opacity: 1;
  transform: translateX(0);
}
.c-primaryBtn__small.current .text--pre {
  opacity: 0;
  transform: translateX(80px);
}
.c-primaryBtn__small.current .text--after {
  opacity: 1;
  transform: translateX(0);
}
@media (any-hover: hover) {
  .c-primaryBtn__small:hover {
    border-color: transparent;
    outline: 1px solid #2a9cc2;
    outline-offset: -1px;
  }
  .c-primaryBtn__small:hover .circle-button {
    background: #fff;
  }
  .c-primaryBtn__small:hover .circle-button::before {
    opacity: 0;
    transform: translateX(10px);
  }
  .c-primaryBtn__small:hover .circle-button::after {
    opacity: 1;
    transform: translateX(0);
  }
  .c-primaryBtn__small:hover .text--pre {
    opacity: 0;
    transform: translateX(80px);
  }
  .c-primaryBtn__small:hover .text--after {
    opacity: 1;
    transform: translateX(0);
  }
}

.c-primaryBtn02 {
  width: 150px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 10px;
  border-bottom: 1px solid #b3b3b3;
  position: relative;
}
.c-primaryBtn02::before {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0%;
  height: 1px;
  background: #0d0409;
  transition: 0.5s width;
  content: "";
}
.c-primaryBtn02 .primaryBtn02-text {
  position: relative;
  display: block;
  line-height: 1;
}
.c-primaryBtn02 .primaryBtn02-text .primaryBtn02-en {
  transition: 0.3s ease-in-out;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  line-height: 1;
}
.c-primaryBtn02 .primaryBtn02-text .primaryBtn02-ja {
  position: absolute;
  width: 100%;
  left: 1px;
  opacity: 0;
  transition: 0.3s ease-in-out;
  width: 100%;
  white-space: nowrap;
  line-height: 1;
  bottom: 1.6px;
  font-size: 13px;
  font-size: 0.8125rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
}
@media (min-width: 768px) {
  .c-primaryBtn02 .primaryBtn02-text .primaryBtn02-ja {
    font-size: 14px;
    font-size: 0.875rem;
    bottom: 1.6px;
  }
}
.c-primaryBtn02 .primaryBtn02-arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #e64a19;
  width: 20px;
  height: 14px;
  border-radius: 14px;
}
.c-primaryBtn02 .primaryBtn02-arrow .primaryBtn02-arrow-box {
  position: relative;
  overflow: hidden;
  display: flex;
}
.c-primaryBtn02 .primaryBtn02-arrow .primaryBtn02-arrow-before {
  transition: 0.5s ease-in-out;
  transform: translateX(0);
}
.c-primaryBtn02 .primaryBtn02-arrow .primaryBtn02-arrow-after {
  position: absolute;
  left: 0;
  transform: translateX(-10px);
  transition: 0.5s ease-in-out;
}
@media (any-hover: hover) {
  .c-primaryBtn02:hover::before {
    width: 100%;
  }
  .c-primaryBtn02:hover .primaryBtn02-arrow-before {
    transform: translateX(10px);
  }
  .c-primaryBtn02:hover .primaryBtn02-arrow-after {
    transform: translateX(0);
  }
}

.btn-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.c-secondaryBtn {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-right: 1.5em;
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 15px;
  font-size: 0.9375rem;
}
.c-secondaryBtn::before, .c-secondaryBtn::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 1em;
  border-radius: 100%;
  content: "";
}
.c-secondaryBtn::before {
  background: #0d0409;
}
.c-secondaryBtn::after {
  background: #FFF;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
@media (min-width: 1024px) {
  .c-secondaryBtn {
    font-size: 16px;
    font-size: 1rem;
  }
}
.c-secondaryBtn::before, .c-secondaryBtn::after {
  right: 0;
}
@media (any-hover: hover) {
  .c-secondaryBtn {
    transition: 0.5s;
  }
  .c-secondaryBtn::before {
    transition: 0.5s;
  }
  .c-secondaryBtn:hover {
    color: #2a9cc2;
  }
  .c-secondaryBtn:hover::before {
    background: #2a9cc2;
  }
}

.c-tertiaryBtn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 18.75em;
  min-height: 3.75em;
  padding: 0.3em 0.95em;
  background: #2a9cc2;
  border-radius: 3em;
  text-align: center;
  line-height: 1.4;
  color: #FFF;
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  border: 1px solid transparent;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media (min-width: 1024px) {
  .c-tertiaryBtn {
    font-size: 16px;
    font-size: 1rem;
  }
}
@media (any-hover: hover) {
  .c-tertiaryBtn {
    transition: 0.5s color, 0.5s background-color, 0.5s border-color;
  }
  .c-tertiaryBtn:hover {
    color: #2a9cc2;
    background: #FFF;
    border-color: #2a9cc2;
  }
}
.c-tertiaryBtn--secondaryColor {
  background: #505050;
}
@media (any-hover: hover) {
  .c-tertiaryBtn--secondaryColor:hover {
    color: #505050;
    border-color: #505050;
  }
}

a:hover .c-primaryBtn,
a:hover .c-secondaryBtn {
  color: #2a9cc2;
}
a:hover .c-primaryBtn::before,
a:hover .c-secondaryBtn::before {
  background: #2a9cc2;
}

/* link
-------------------------------------- */
.c-link--color {
  color: #036EA9;
}
@media (any-hover: hover) {
  .c-link--color {
    transition: 0.5s opacity;
  }
  .c-link--color:hover {
    opacity: 0.7;
  }
}
.c-link--external {
  display: inline-flex;
  justify-content: flex-start !important;
  align-items: center;
  gap: 0.4em;
}
.c-link--external::after {
  width: 0.8em;
  aspect-ratio: 1/1;
  background: url(../img/common/icon_external.svg) no-repeat center/contain;
  content: "";
}
@media (any-hover: hover) {
  .c-link--external {
    transition: 0.5s color;
  }
  .c-link--external:hover {
    color: #2a9cc2;
  }
  .c-link--external:hover::after {
    background-image: url(../img/common/icon_external_primary.svg);
  }
}
.c-link--externalWhite::after {
  background-image: url(../img/common/icon_external_white.svg);
}
.c-link--download {
  display: inline-flex;
  gap: 0.5em;
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  transition: 0.5s color;
}
.c-link--download::after {
  width: 1.25em;
  aspect-ratio: 1/1;
  background: url(../img/common/icon_download.svg) no-repeat center/contain;
  content: "";
}
@media (any-hover: hover) {
  .c-link--download:hover {
    color: #2a9cc2;
  }
  .c-link--download:hover::after {
    background-image: url(../img/common/icon_download_primary.svg);
  }
}

/* tableWrapper
-------------------------------------- */
@media (max-width: 767px) {
  .c-tableWrapper--maxSmall {
    overflow-x: auto;
    background: linear-gradient(to left, hsla(0, 0%, 100%, 0), white 15px) 0 0/50px 100%, linear-gradient(to left, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2)) 0 0/20px 100%, linear-gradient(to right, hsla(0, 0%, 100%, 0), white 15px) right/50px 100%, linear-gradient(to right, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.2)) right/20px 100%;
    background-repeat: no-repeat;
    background-attachment: local, scroll, local, scroll;
    border-right: 1px solid #CCC;
  }
}

/* table
-------------------------------------- */
.c-table {
  width: 100%;
  table-layout: fixed;
  margin-right: auto;
  margin-left: auto;
}
.c-table th,
.c-table td {
  padding: 1.6em 0;
  border-bottom: 1px solid #e3ded9;
}
.c-table thead th {
  text-align: left;
  color: #2a9cc2;
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

/* tableList
-------------------------------------- */
.c-tableList {
  line-height: 1.5;
}
.c-tableList > div {
  display: flex;
}
@media (max-width: 767px) {
  .c-tableList > div {
    flex-direction: column;
  }
}
.c-tableList dt {
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
@media (min-width: 768px) {
  .c-tableList dd {
    flex: 1;
  }
}
.c-tableList--cell {
  border-top: #e3ded9 1px solid;
}
.c-tableList--cell > div {
  border-bottom: #e3ded9 1px solid;
}
.c-tableList--cell dt {
  padding: 1em;
  background: #F6F6F6;
}
@media (min-width: 768px) {
  .c-tableList--cell dt {
    width: 22%;
    min-width: 180px;
    padding: 1.5em;
  }
}
.c-tableList--cell dd {
  padding: 1em;
}
@media (min-width: 768px) {
  .c-tableList--cell dd {
    padding: 1.5em;
  }
}
.c-tableList--border > div {
  border-bottom: 1px solid #e3ded9;
}
@media (max-width: 767px) {
  .c-tableList--border > div {
    padding: 1em 0;
  }
}
@media (min-width: 768px) {
  .c-tableList--border > div {
    padding: 1.625em 0;
  }
}
@media (max-width: 767px) {
  .c-tableList--border > div > dt {
    font-weight: bold;
    font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    margin-bottom: 0.5em;
  }
}
@media (min-width: 768px) {
  .c-tableList--border > div > dt {
    font-weight: normal;
    position: relative;
    width: 22%;
    min-width: 175px;
  }
}

/* img
-------------------------------------- */
.c-img {
  overflow: hidden;
}
.c-img img {
  width: 100%;
}

/* archiveSelect
-------------------------------------- */
.c-archiveSelect {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  width: 9.375em;
}
.c-archiveSelect::after {
  position: absolute;
  right: 1em;
  width: 6px;
  height: 5px;
  background: #0d0409;
  content: "";
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.c-archiveSelect select {
  width: 100%;
  background: #f2f2f2;
  border-radius: 5px;
  padding: 0.25em 1em;
  cursor: pointer;
  color: #0d0409;
}

/* MV 白ボーダー動き
-------------------------------------- */
.js-dynamic-radius {
  background-color: #fff;
  border-radius: 50%; /* 初期値 */
  position: absolute;
  width: 125vw;
  height: 200px;
  left: 50%;
  top: -50px;
  transform: translate(-50%);
  z-index: 2;
  transition: border-radius 0.1s linear;
}

@media (min-width: 1024px) {
  .js-dynamic-radius {
    height: 300px;
    top: -150px;
  }
}
.dynamic-radius-area {
  position: relative;
}

#section-lead {
  position: relative;
  z-index: 3;
}

/* 画像PC・SPアスペクト比
-------------------------------------- */
.img-sp700 {
  display: block;
  aspect-ratio: 1200/650;
}
@media (max-width: 1023px) {
  .img-sp700 {
    aspect-ratio: 1023/700;
  }
  .img-sp700 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}

.img-large-sp700 {
  display: block;
  aspect-ratio: 1940/650;
}
@media (max-width: 1023px) {
  .img-large-sp700 {
    aspect-ratio: 1023/700;
  }
  .img-large-sp700 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}

.img-sp900 {
  display: block;
  aspect-ratio: 900/650;
}
@media (max-width: 1023px) {
  .img-sp900 {
    aspect-ratio: 1023/900;
  }
  .img-sp900 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}

/* =========================================================
 utility
========================================================= */
.u-fs-test {
  font-family: "Zen Old Mincho", serif !important;
  font-weight: bold !important;
}

/* テキスト
-------------------------------------- */
.u-text-left {
  text-align: left !important;
}

.u-text-center {
  text-align: center !important;
}

@media (min-width: 1024px) {
  .u-text-center-large {
    text-align: center !important;
  }
}

.u-text-right {
  text-align: right !important;
}

.u-fs-xxsmall {
  font-size: 12px;
  font-size: 0.75rem;
}

.u-fs-xsmall {
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 1024px) {
  .u-fs-xsmall {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.u-fs-regular {
  font-size: 15px;
  font-size: 0.9375rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 1.5;
  font-weight: 500;
}
@media (min-width: 1024px) {
  .u-fs-regular {
    font-size: 16px;
    font-size: 1rem;
  }
}

.u-fs-medium {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .u-fs-medium {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.u-fs-large {
  font-size: clamp(18px, 5.641025641vw, 24px);
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .u-fs-large {
    font-size: clamp(24px, 1.875vw, 30px);
  }
}

.u-fs-xLarge {
  font-size: 26px;
  font-size: 1.625rem;
  font-weight: 700;
  letter-spacing: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .u-fs-xLarge {
    font-size: 32px;
    font-size: 2rem;
  }
}

.u-fs-extrasmall {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 2;
}
@media (min-width: 1024px) {
  .u-fs-extrasmall {
    font-size: 24px;
    font-size: 1.5rem;
  }
}

.u-fs-extramedium {
  font-size: clamp(18px, 6.518904824vw, 50px);
  font-weight: 700;
  letter-spacing: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .u-fs-extramedium {
    font-size: 50px;
  }
}

.u-fs-extraLarge {
  font-size: clamp(30px, 7.8125vw, 80px);
  font-weight: 700;
  letter-spacing: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.2;
}
@media (min-width: 1024px) {
  .u-fs-extraLarge {
    font-size: clamp(50px, 7.5vw, 90px);
  }
}

.u-fs-xLarge-en {
  font-size: 32px;
  font-size: 2rem;
  font-family: "Baskerville", serif;
  font-weight: 400;
}
@media (min-width: 1024px) {
  .u-fs-xLarge-en {
    font-size: 40px;
    font-size: 2.5rem;
  }
}

.u-fs-large-en {
  font-size: 20px;
  font-size: 1.25rem;
  font-family: "Baskerville", serif;
  font-weight: 400;
}
@media (min-width: 1024px) {
  .u-fs-large-en {
    font-size: 26px;
    font-size: 1.625rem;
  }
}

.u-fs-medium-en {
  font-size: 16px;
  font-size: 1rem;
  font-family: "Baskerville", serif;
  font-weight: 400;
}
@media (min-width: 1024px) {
  .u-fs-medium-en {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.u-fm-baskervill {
  font-family: "Baskerville", serif;
}

.u-fm-zen-kaku {
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 1.5;
}

.u-color-primary {
  color: #2a9cc2;
}

.u-color-white {
  color: #fff;
}

.u-color-black {
  color: #505050 !important;
}

.u-boder-bottom {
  border-bottom: 1px solid #505050;
}

.u-boder-black {
  border: 1px solid #505050;
}

.u-bg-gray {
  background: #f0f0f0;
}

.u-bg-white {
  background: #fff;
}

/* 字間
----------------------------------------------- */
.u-ls--02 {
  letter-spacing: -0.2rem;
}

.u-ls--05 {
  letter-spacing: -0.5rem;
}

.u-ls--10 {
  letter-spacing: -0.1rem;
}

.u-ls-05 {
  letter-spacing: 0.5rem;
}

/* 表示・非表示
----------------------------------------------- */
.u-hidden {
  display: none !important;
}

.br-sp {
  display: inline;
}

/* 767px以下 → 改行なし */
@media (max-width: 767px) {
  .br-sp {
    display: none;
  }
}
/* 470px以下 → 再び改行あり */
@media (max-width: 470px) {
  .br-sp {
    display: inline;
  }
}
.br-sp-large {
  display: inline;
}

/* 767px以下 → 改行なし */
@media (max-width: 1024px) {
  .br-sp-large {
    display: none;
  }
}
/* 470px以下 → 再び改行あり */
@media (max-width: 470px) {
  .br-sp-large {
    display: inline;
  }
}
@media (min-width: 376px) {
  .u-hidden-xSmall {
    display: none !important;
  }
}

@media (min-width: 521px) {
  .u-hidden-small {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .u-hidden-medium {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .u-hidden-large {
    display: none !important;
  }
}

@media (min-width: 1366px) {
  .u-hidden-xLarge {
    display: none !important;
  }
}

@media (min-width: 1441px) {
  .u-hidden-xxLarge {
    display: none !important;
  }
}

@media (min-width: 2000px) {
  .u-hidden-xxxLarge {
    display: none !important;
  }
}

@media (max-width: 520px) {
  .u-visible-small {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .u-visible-medium {
    display: none !important;
  }
}

@media (max-width: 1023px) {
  .u-visible-large {
    display: none !important;
  }
}

@media (max-width: 1365px) {
  .u-visible-xLarge {
    display: none !important;
  }
}

@media (max-width: 1440px) {
  .u-visible-xxLarge {
    display: none !important;
  }
}

@media (max-width: 1919px) {
  .u-visible-xxxLarge {
    display: none !important;
  }
}

/* gap調整
-------------------------------------- */
.u-gap-medium {
  gap: 30px;
}
@media (min-width: 1024px) {
  .u-gap-medium {
    gap: 60px;
  }
}

/* マージン調整
-------------------------------------- */
.u-pt-mv-none {
  padding-top: 170px;
}
@media (min-width: 1024px) {
  .u-pt-mv-none {
    padding-top: 200px !important;
  }
}

.u-mt-5 {
  margin-top: 5px;
}

.u-mt-10 {
  margin-top: 10px;
}

.u-mt-xxSmall {
  margin-top: 15px !important;
}
@media (min-width: 1024px) {
  .u-mt-xxSmall {
    margin-top: 20px !important;
  }
}

.u-mt-xSmall {
  margin-top: 20px !important;
}
@media (min-width: 1024px) {
  .u-mt-xSmall {
    margin-top: 40px !important;
  }
}

.u-mt-small {
  margin-top: 30px !important;
}
@media (min-width: 1024px) {
  .u-mt-small {
    margin-top: 60px !important;
  }
}

.u-mt-medium {
  margin-top: 40px !important;
}
@media (min-width: 1024px) {
  .u-mt-medium {
    margin-top: 80px !important;
  }
}

.u-mt-large {
  margin-top: 60px !important;
}
@media (min-width: 1024px) {
  .u-mt-large {
    margin-top: 100px !important;
  }
}

.u-mt-xLarge {
  margin-top: 80px !important;
}
@media (min-width: 1366px) {
  .u-mt-xLarge {
    margin-top: 150px !important;
  }
}

.u-mt-xxLarge {
  margin-top: 100px !important;
}
@media (min-width: 1441px) {
  .u-mt-xxLarge {
    margin-top: 200px !important;
  }
}

.u-mb-xxSmall {
  margin-bottom: 15px !important;
}
@media (min-width: 1024px) {
  .u-mb-xxSmall {
    margin-bottom: 20px !important;
  }
}

.u-mb-xSmall {
  margin-bottom: 20px !important;
}
@media (min-width: 1024px) {
  .u-mb-xSmall {
    margin-bottom: 40px !important;
  }
}

.u-mb-small {
  margin-bottom: 30px !important;
}
@media (min-width: 1024px) {
  .u-mb-small {
    margin-bottom: 60px !important;
  }
}

.u-mb-medium {
  margin-bottom: 40px !important;
}
@media (min-width: 1024px) {
  .u-mb-medium {
    margin-bottom: 80px !important;
  }
}

.u-mb-large {
  margin-bottom: 60px !important;
}
@media (min-width: 1024px) {
  .u-mb-large {
    margin-bottom: 100px !important;
  }
}

.u-mb-xLarge {
  margin-bottom: 80px !important;
}
@media (min-width: 1366px) {
  .u-mb-xLarge {
    margin-bottom: 150px !important;
  }
}

.u-mb-xxLarge {
  margin-bottom: 100px !important;
}
@media (min-width: 1441px) {
  .u-mb-xxLarge {
    margin-bottom: 200px !important;
  }
}

.u-mt-0 {
  margin-top: 0 !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-pt-xxSmall {
  padding-top: 15px !important;
}
@media (min-width: 1024px) {
  .u-pt-xxSmall {
    padding-top: 20px !important;
  }
}

.u-pt-xSmall {
  padding-top: 20px !important;
}
@media (min-width: 1024px) {
  .u-pt-xSmall {
    padding-top: 40px !important;
  }
}

.u-pt-small {
  padding-top: 30px !important;
}
@media (min-width: 1024px) {
  .u-pt-small {
    padding-top: 60px !important;
  }
}

.u-pt-medium {
  padding-top: 40px !important;
}
@media (min-width: 1024px) {
  .u-pt-medium {
    padding-top: 80px !important;
  }
}

.u-pt-large {
  padding-top: 60px !important;
}
@media (min-width: 1024px) {
  .u-pt-large {
    padding-top: 100px !important;
  }
}

.u-pt-xLarge {
  padding-top: 80px !important;
}
@media (min-width: 1366px) {
  .u-pt-xLarge {
    padding-top: 150px !important;
  }
}

.u-pt-xxLarge {
  padding-top: 100px !important;
}
@media (min-width: 1441px) {
  .u-pt-xxLarge {
    padding-top: 200px !important;
  }
}

.u-pb-xxSmall {
  padding-bottom: 15px !important;
}
@media (min-width: 1024px) {
  .u-pb-xxSmall {
    padding-bottom: 20px !important;
  }
}

.u-pb-xSmall {
  padding-bottom: 20px !important;
}
@media (min-width: 1024px) {
  .u-pb-xSmall {
    padding-bottom: 40px !important;
  }
}

.u-pb-small {
  padding-bottom: 30px !important;
}
@media (min-width: 1024px) {
  .u-pb-small {
    padding-bottom: 60px !important;
  }
}

.u-pb-medium {
  padding-bottom: 40px !important;
}
@media (min-width: 1024px) {
  .u-pb-medium {
    padding-bottom: 80px !important;
  }
}

.u-pb-large {
  padding-bottom: 60px !important;
}
@media (min-width: 1024px) {
  .u-pb-large {
    padding-bottom: 100px !important;
  }
}

.u-pb-xLarge {
  padding-bottom: 80px !important;
}
@media (min-width: 1366px) {
  .u-pb-xLarge {
    padding-bottom: 150px !important;
  }
}

.u-pb-xxLarge {
  padding-bottom: 100px !important;
}
@media (min-width: 1441px) {
  .u-pb-xxLarge {
    padding-bottom: 200px !important;
  }
}

.u-pt-0 {
  padding-top: 0 !important;
}

.u-pb-0 {
  padding-bottom: 0 !important;
}

.u-pt-75svh {
  padding-top: 50svh !important;
}
@media (min-width: 1024px) {
  .u-pt-75svh {
    padding-top: 75svh !important;
  }
}

/* 寄せ
-------------------------------------- */
.u-align-right {
  margin-left: auto;
}

.u-align-center {
  margin-right: auto;
  margin-left: auto;
}

/* 明度変更
-------------------------------------- */
.u-brightness-105 {
  filter: brightness(105%);
}

.u-brightness-110 {
  filter: brightness(110%);
}

.u-brightness-111 {
  filter: brightness(111%);
}

.u-brightness-112 {
  filter: brightness(112%);
}

.u-brightness-113 {
  filter: brightness(113%);
}

.u-brightness-114 {
  filter: brightness(114%);
}

.u-brightness-115 {
  filter: brightness(115%);
}

.u-brightness-116 {
  filter: brightness(116%);
}

.u-brightness-117 {
  filter: brightness(117%);
}

.u-brightness-118 {
  filter: brightness(118%);
}

.u-brightness-119 {
  filter: brightness(119%);
}

.u-brightness-120 {
  filter: brightness(120%);
}

/* カラーオーバレイ変更
-------------------------------------- */
.u-c-overray-b30 {
  position: relative;
}
.u-c-overray-b30::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0, 1, 66, 0), rgba(0, 1, 66, 0.3));
}

.u-c-overray-b3 {
  position: relative;
}
.u-c-overray-b3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}

.u-c-overray-b2-5 {
  position: relative;
}
.u-c-overray-b2-5::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25));
}

.u-c-overray-b2 {
  position: relative;
}
.u-c-overray-b2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
}

/* グレイスケール
-------------------------------------- */
.u-gray-scale {
  filter: grayscale(1);
}

#header {
  position: fixed;
  width: 75px;
  height: 100vh;
  left: 0;
  background: #fff;
  z-index: 100;
  padding-top: 4.5662100457vh;
  padding-bottom: 4.5662100457vh;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  cursor: pointer;
}
@media (max-width: 959px) {
  #header {
    width: 50px;
    height: auto;
    padding-top: 15px;
    padding-bottom: 15px;
  }
}

.header-content {
  height: 90px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4));
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  z-index: 80;
}

/* サイトロゴ
========================================================= */
.header-logo {
  top: 33px;
  left: 70px;
  left: clamp(30px, 16vw, 80px);
  display: block;
  z-index: 80;
  position: fixed;
  width: clamp(125px, 42vw, 228px);
}
@media (min-width: 768px) {
  .header-logo {
    top: 31px;
  }
}
.header-logo h1 {
  line-height: 0;
}

/* ヘッダーナビ
========================================================= */
.header-naviflex {
  display: flex;
  position: fixed;
  bottom: 20px;
  right: 15px;
  z-index: 999;
  gap: 30px;
  color: #fff;
}
@media (min-width: 1024px) {
  .header-naviflex {
    top: 42px;
    right: 190px;
    bottom: auto;
  }
}
.header-naviflex a {
  color: #fff;
}

.header-chat-bot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: content-box;
  border-radius: 40px;
}
.header-chat-bot > div {
  line-height: 1;
}
.header-chat-bot .white-text {
  color: #969696;
  font-size: 10px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .header-chat-bot .white-text {
    font-size: 12px;
  }
}
.header-chat-bot .blue-text {
  background-color: #505050;
  border-radius: 20px;
  padding: 6px 10px;
  font-size: 12px;
  text-align: center;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  letter-spacing: 0;
  display: flex;
  align-items: center;
  gap: 5px;
}
@media (min-width: 1024px) {
  .header-chat-bot .blue-text {
    font-size: 12px;
  }
}
.header-chat-bot .blue-text .best-pre {
  font-size: 10px;
}

/* 固定予約ボタン
========================================================= */
.reserved-btn {
  pointer-events: auto;
}
.reserved-btn.top-reserved-btn a {
  display: block;
  position: fixed;
  top: 20px;
  right: 20px;
  border-radius: 10px;
  z-index: 80;
  background: #2a9cc2;
  transition: 0.5s border-color, 0.5s background-color;
  width: 120px;
  height: 52px;
}
@media (min-width: 1024px) {
  .reserved-btn.top-reserved-btn a {
    width: 150px;
    height: 70px;
    z-index: 999;
    border-radius: 20px;
    height: 65px;
  }
}
.reserved-btn.top-reserved-btn a .header-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  letter-spacing: 0;
}
.reserved-btn.top-reserved-btn a .header-btn .main-text {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.2;
}
@media (min-width: 1024px) {
  .reserved-btn.top-reserved-btn a .header-btn .main-text {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.reserved-btn.top-reserved-btn a .header-btn .sub-text {
  font-size: 10px;
}
.reserved-btn.top-reserved-btn a:hover {
  background: #fff;
}
.reserved-btn.top-reserved-btn a:hover .header-btn {
  color: #505050;
}
.reserved-btn.bottom-reserved-btn {
  bottom: 0;
}

#language {
  display: inline-block;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  position: fixed;
  right: 25px;
  top: 88px;
}
@media (min-width: 1024px) {
  #language {
    top: 110px;
  }
}
@media (hover: hover) and (pointer: fine) {
  #language:hover .lang-choice {
    max-height: 240px;
    opacity: 1;
    pointer-events: auto;
  }
}
#language #lang-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 8px 14px;
  font-family: "Cormorant Garamond", serif;
  font-size: 13px;
  font-weight: 300;
  letter-spacing: 0.14em;
  color: #505050;
  white-space: nowrap;
  user-select: none;
  transition: border-color 0.3s ease, background 0.3s ease;
  line-height: 1;
  background-color: rgba(255, 255, 255, 0.5);
}
#language #lang-btn::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 0.5px solid #505050;
  border-bottom: 0.5px solid #505050;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}
#language:hover #lang-btn, #language.is-open #lang-btn {
  border-color: rgba(80, 80, 80, 0.3);
}
#language.is-open #lang-btn::after {
  transform: rotate(225deg) translateY(-2px);
}
@media (hover: hover) and (pointer: fine) {
  #language:hover #lang-btn::after {
    transform: rotate(225deg) translateY(-2px);
  }
}
#language .lang-choice {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 100%;
  background: #fff;
  border: 0.5px solid #505050, 0.3;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
  z-index: 200;
}
@media (hover: hover) and (pointer: fine) {
  #language:hover #language .lang-choice {
    max-height: 240px;
    opacity: 1;
    pointer-events: auto;
  }
}
#language .lang-choice ul {
  list-style: none;
  margin: 0;
}
#language .lang-choice li {
  margin: 0;
}
#language .lang-choice li a {
  display: block;
  padding: 5px 16px;
  font-family: "Baskerville", serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: #505050;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease, background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
#language .lang-choice li a:hover {
  color: #fff;
  background: #505050;
}
#language .lang-choice li a:active {
  background: #505050;
}
#language.is-open .lang-choice {
  max-height: 240px;
  opacity: 1;
  pointer-events: auto;
}

/* =========================================================
 gnav
========================================================= */
/* コンテンツ全体のラッパー */
.wrapper {
  position: relative;
  left: 0;
  transition: left 0.5s ease;
  min-height: 100vh;
}

.wrapper.menu-open {
  left: 65%;
}
.wrapper.menu-open::before {
  content: "";
  width: 100%;
  height: 100vh;
  position: fixed;
  background: rgba(0, 0, 0, 0.5);
  z-index: 99;
  display: block;
}
@media (min-width: 768px) {
  .wrapper.menu-open {
    left: 398px;
  }
}

/* 1023px以下用 */
@media (max-width: 1023px) {
  body.no-scroll {
    position: fixed;
    width: 100%;
    overflow: hidden;
  }
}
/* ヘッダー */
header {
  background: #fff;
  color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo {
  font-size: 1.5rem;
  font-weight: bold;
}

/* ハンバーガーボタン */
.hamburger {
  position: fixed;
  left: 0;
  top: 0px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  border: none;
  z-index: 300;
  transition: left 0.5s ease;
  padding: 36px 20px 5px;
}
@media (min-width: 1024px) {
  .hamburger {
    padding: 35px 20px 15px;
    height: 100%;
    background: #fff;
  }
}

.hamburger.active {
  left: 65%;
}
@media (min-width: 768px) {
  .hamburger.active {
    left: 345px;
  }
}
@media (min-width: 1024px) {
  .hamburger.active {
    left: calc(380px + 1rem);
  }
}

.hamburger span {
  width: 20px;
  height: 2px;
  background: #505050;
  margin: 3px 0;
  transition: 0.3s;
}
@media (max-width: 1023px) {
  .hamburger span {
    background: #fff;
  }
}

@media (max-width: 1023px) {
  .hamburger.is-scrolled span {
    background: #505050;
  }
}

.hamburger.active span:nth-child(1) {
  transform: rotate(-45deg) translate(-4.5px, 3.5px);
  background: #505050;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(45deg) translate(-7.5px, -7.2px);
  background: #505050;
}

/* サイドメニュー */
.l-drawer__sns {
  left: 0;
  top: 70px;
  z-index: 90;
  padding-left: 5px;
  position: absolute;
  transition: left 0.5s ease;
}
@media (min-width: 1024px) {
  .l-drawer__sns {
    position: fixed;
    top: auto;
    left: 0;
    bottom: 20px;
    z-index: 310;
    padding-left: 15px;
  }
  .l-drawer__sns .drawer_faq {
    transition: opacity 0.5s;
  }
}
.l-drawer__sns li + li {
  margin-top: 15px;
}
@media (min-width: 1024px) {
  .l-drawer__sns.active {
    left: calc(380px + 1rem);
  }
}
.l-drawer__sns.active .drawer_faq {
  opacity: 0;
  visibility: hidden;
}
.l-drawer__sns li a img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 25px;
}
.l-drawer__sns li a.header-faq {
  display: none;
  border-radius: 50%;
  border: 2px solid #505050;
  width: 23px;
  height: 23px;
  text-align: center;
  line-height: 19px;
  font-weight: 700;
  justify-content: center;
  transition: 0.5s ease;
}
@media (min-width: 1024px) {
  .l-drawer__sns li a.header-faq {
    display: block;
    position: relative;
  }
  .l-drawer__sns li a.header-faq .faq-btn-label {
    position: absolute;
    opacity: 0;
    visibility: hidden;
    transition: 0.5s ease;
    background-color: #505050;
    color: #fff;
    padding: 3px 5px;
    font-size: 10px;
    top: -3px;
    left: 35px;
    white-space: nowrap;
    border-radius: 20px;
    pointer-events: none;
  }
}
@media (any-hover: hover) {
  .l-drawer__sns li a.header-faq:hover {
    border: 2px solid transparent;
    background-color: #505050;
    color: #fff;
  }
  .l-drawer__sns li a.header-faq:hover .faq-btn-label {
    opacity: 1;
    visibility: inherit;
  }
}

/* サイドメニュー */
.side-menu {
  position: fixed;
  left: -80%;
  top: 0;
  width: 80%;
  height: 100%;
  background: #fff;
  transition: left 0.5s ease;
  z-index: 200;
  overflow-y: auto;
  /*IE(Internet Explorer)・Microsoft Edgeへの対応*/
  -ms-overflow-style: none;
  /*Firefoxへの対応*/
  scrollbar-width: none;
}
@media (min-width: 768px) {
  .side-menu {
    width: 400px;
    left: -400px;
  }
}

/*Google Chrome、Safariへの対応*/
.side-menu::-webkit-scrollbar {
  display: none;
}

.side-menu.active {
  left: 0;
}

.side-menu nav {
  margin-top: 30px;
  padding-left: 20px;
  padding-right: 20px;
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .side-menu nav {
    padding-left: 40px;
    padding-right: 40px;
    margin-top: 27px;
    margin-bottom: 80px;
  }
}

.side-menu nav a {
  display: block;
  text-decoration: none;
  transition: background 0.3s;
}

.side-menu nav a:hover {
  background: transparent;
}

/* オーバーレイ */
.main-nav {
  margin-top: 25px;
}
@media (min-width: 768px) {
  .main-nav {
    margin-top: 45px;
  }
}
.main-nav .main-nav-list + .main-nav-list {
  margin-top: 15px;
}
@media (min-width: 768px) {
  .main-nav .main-nav-list + .main-nav-list {
    margin-top: 15px;
  }
}
.main-nav .main-nav-list a {
  display: flex;
  gap: 10px;
  color: #505050;
  align-items: center;
}
@media (min-width: 768px) {
  .main-nav .main-nav-list a {
    gap: 20px;
  }
}
.main-nav .child-nav {
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  font-size: 0.875rem;
  margin-top: 10px;
}
@media (min-width: 768px) {
  .main-nav .child-nav {
    font-size: 16px;
    font-size: 1rem;
    margin-top: 10px;
  }
}
.main-nav .child-nav a {
  position: relative;
  padding-left: 15px;
}
.main-nav .child-nav a::before {
  content: "";
  width: 10px;
  height: 1px;
  background-color: #505050;
  position: absolute;
  left: 0;
}
.main-nav .nav-en {
  font-family: "Baskerville", serif;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .main-nav .nav-en {
    font-size: 24px;
    font-size: 1.5rem;
  }
}
.main-nav .nav-ja {
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 18px;
  font-size: 1.125rem;
}
@media (min-width: 768px) {
  .main-nav .nav-ja {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.sub-nav .sub-nav-list {
  margin-top: 15px;
}
@media (min-width: 768px) {
  .sub-nav .sub-nav-list {
    margin-top: 30px;
  }
}

.side-menu .humbager-plan {
  left: -80%;
  transition: left 0.3s;
}
@media (min-width: 768px) {
  .side-menu .humbager-plan {
    transition: left 0.5s;
  }
}
.side-menu.active .humbager-plan {
  left: 0;
}
@media (min-width: 768px) {
  .side-menu .humbager-plan {
    left: -400px;
  }
  .side-menu.active .humbager-plan {
    left: 0;
  }
}

.humbager-plan {
  margin-top: 15px;
  bottom: 0px;
  padding-bottom: 20px;
  padding-top: 10px;
  background-color: #fff;
  position: fixed;
  width: 75%;
  left: 0;
}
@media (min-width: 768px) {
  .humbager-plan {
    margin-top: 30px;
    width: 290px;
  }
}
.humbager-plan a {
  display: block;
  z-index: 999;
  overflow: hidden;
  background: transparent;
  transition: 0.5s border-color, 0.5s background, !important;
  will-change: width;
  margin-left: 20px;
}
@media (min-width: 768px) {
  .humbager-plan a {
    margin-left: 40px;
  }
}
.humbager-plan a .humbager-btn {
  display: flex;
  align-items: center;
  max-width: 420px;
  width: 92%;
  height: 100%;
  color: #505050;
  gap: 20px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
}
.humbager-plan a .humbager-btn .main-text {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 500;
}
@media (min-width: 768px) {
  .humbager-plan a .humbager-btn .main-text {
    font-size: 16px;
    font-size: 1rem;
  }
}
.humbager-plan a .humbager-btn .faq-icon {
  border: 2px solid #505050;
  border-radius: 100%;
  width: 23px;
  height: 23px;
  line-height: 19px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-size: 1rem;
  font-weight: bold;
  transition: 0.5s ease;
}
.humbager-plan a .humbager-btn .caption {
  white-space: nowrap;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.6s ease;
}
.humbager-plan a:hover {
  background: #fff;
  border-color: #505050;
}
.humbager-plan a:hover .humbager-btn {
  color: #505050;
}
@media (any-hover: hover) {
  .humbager-plan a:hover .faq-icon {
    border: 2px solid transparent;
    background-color: #505050;
    color: #fff;
  }
}

.drawer-branding {
  width: clamp(125px, 45.6vw, 228px);
}

.side-menu.active .humbager-plan a .caption {
  animation: faqbtn 2s ease forwards;
}

@keyframes faqbtn {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  50% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}
/* =========================================================
 footer
========================================================= */
.l-footer {
  position: relative;
  z-index: 2;
  background-color: #FFF;
}

.l-footer__inner {
  padding-block: 38px 100px;
  display: flex;
  align-items: flex-end;
  gap: 20px;
}
@media (max-width: 1023px) {
  .l-footer__inner {
    flex-direction: column;
    align-items: center;
    gap: 25px;
    padding-block: 38px 60px;
  }
}

.l-footer__pagetop {
  position: fixed;
  z-index: 12;
  right: min(2.7vw, 54px);
  bottom: 10px;
  width: 75px;
}
@media (any-hover: hover) {
  .l-footer__pagetop {
    transition: 0.5s opacity;
  }
  .l-footer__pagetop:hover {
    opacity: 0.7;
  }
}
@media (min-width: 1366px) {
  .l-footer__pagetop {
    bottom: min(2vw, 40px);
    width: max(min(7.5vw, 150px), 75px);
  }
}

.is-pagetop {
  transition: 0.5s;
  opacity: 0;
  pointer-events: none;
}
.is-pagetop--show {
  opacity: 1;
  pointer-events: initial;
}

.footer-addres p {
  color: #9e9a96;
  font-size: 12px;
}
.footer-addres {
  order: 1;
}
@media (max-width: 1023px) {
  .footer-addres {
    order: 2;
  }
}

.l-footer__logo {
  width: 228px;
  margin-inline: auto;
  order: 2;
}
@media (max-width: 1023px) {
  .l-footer__logo {
    margin: 0 auto;
    order: 1;
  }
}
.l-footer__logo a,
.l-footer__logo img {
  display: block;
}
.l-footer__logo img {
  width: 100%;
}
@media (any-hover: hover) {
  .l-footer__logo a {
    transition: 0.5s opacity;
  }
  .l-footer__logo a:hover {
    opacity: 0.7;
  }
}

.l-footer-right {
  order: 3;
}

.l-footer__sns {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
}
@media (max-width: 1023px) {
  .l-footer__sns {
    justify-content: center;
  }
}
.l-footer__sns a {
  display: block;
}
@media (any-hover: hover) {
  .l-footer__sns a {
    transition: 0.5s opacity;
  }
  .l-footer__sns a:hover {
    opacity: 0.7;
  }
}
.l-footer__sns a svg path {
  stroke: #000000;
}

.l-footer__copy {
  margin-top: 25px;
  color: #9e9a96;
  text-align: center;
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 1024px) {
  .l-footer__copy {
    font-size: 12px;
    font-size: 0.75rem;
  }
}

/* =========================================================
 フッダー部分リニューアル
========================================================= */
/* 動画パララックス
-------------------------------------- */
.parallax {
  width: 100%;
  height: 80vh;
  overflow: hidden;
  position: relative;
  z-index: 10;
}
.parallax .bg-video {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  clip-path: inset(0);
}
.parallax .bg-video video,
.parallax .bg-video img {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

.gray-bg {
  background-color: #f0f0f0;
}
.gray-bg .f-lead {
  font-size: 28px;
  font-size: 1.75rem;
  font-weight: normal;
}
@media (min-width: 1024px) {
  .gray-bg .f-lead {
    font-size: 35px;
    font-size: 2.1875rem;
  }
}

/*----------------------------------------------------
	フッター　空室カレンダー
----------------------------------------------------*/
.vacancy_cont .vacancy-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  padding: 0;
  gap: 1rem;
  position: relative;
  z-index: 5;
}
@media screen and (min-width: 768px) {
  .vacancy_cont .vacancy-tabs {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 1rem;
    margin-left: 30px;
    margin-right: 30px;
  }
}
.vacancy_cont .vacancy-tabs li {
  padding: 0.5rem 0.5rem;
  background: #e8e8e8;
  color: #505050;
  cursor: pointer;
  transition: 0.5s border-color, 0.5s background-color;
  text-align: center;
  border: 1px solid #e8e8e8;
  line-height: 1.2;
  position: relative;
  border-radius: 40px;
}
.vacancy_cont .vacancy-tabs li::after {
  transition: 0.5s;
}
.vacancy_cont .vacancy-tabs li {
  font-size: clamp(10px, 1.1428571429vw, 16px);
}
@media (min-width: 1024px) {
  .vacancy_cont .vacancy-tabs li {
    padding: 0.5rem 1rem;
  }
}
.vacancy_cont .vacancy-tabs li.active {
  background: #fff;
  color: #505050;
  border-color: #f5f5f5;
}
.vacancy_cont .vacancy-tabs li:hover {
  background: #fff;
  color: #505050;
  border-color: #f5f5f5;
}
.vacancy_cont .vacancy-body .vacancy-box {
  display: none;
}
.vacancy_cont .vacancy-body .vacancy-box.active {
  display: block;
}

.vacancy {
  width: 100%;
}

.vacancy-content {
  width: 92%;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1024px) {
  .vacancy-content {
    width: 88%;
    max-width: 1200px;
  }
}

.vacancy-calender-content {
  margin-right: auto;
  margin-left: auto;
  padding-top: 20px;
}
@media screen and (min-width: 768px) {
  .vacancy-calender-content {
    padding: 30px 30px 20px;
  }
}
@media (min-width: 1024px) {
  .vacancy-calender-content {
    max-width: 1300px;
  }
}

@media screen and (min-width: 768px) {
  .vacancy_cont h3 {
    margin-bottom: 40px;
  }
  .vacancy {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    align-items: flex-start;
  }
}
.vacancy_calender {
  border-collapse: collapse;
}

@media screen and (min-width: 768px) {
  .vacancy_calender {
    width: calc((100% - 20px) / 2);
  }
  .vacancy_calender:first-child {
    margin-right: 50px;
  }
}
@media screen and (max-width: 767px) {
  .vacancy_calender {
    width: 100%;
  }
  .vacancy_calender:first-child {
    margin-bottom: 30px;
  }
}
.vacancy_calender th,
.vacancy_calender td {
  padding: 5px;
  text-align: center;
}
@media (min-width: 1024px) {
  .vacancy_calender th,
  .vacancy_calender td {
    padding: 10px;
  }
}

.vacancy_calender .month th {
  padding-bottom: 15px;
  font-size: 25px;
  font-size: 25px;
  font-size: 1.5625rem;
  font-family: "Baskerville", serif;
  font-weight: normal;
}

.vacancy_calender .week th,
.vacancy_calender tbody td {
  border: #dfdbd5 solid 1px;
  line-height: 1.5;
  font-family: "Baskerville", serif;
  font-weight: normal;
  width: 14.2857%;
}

.vacancy_calender .week th {
  border: none;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media (min-width: 1024px) {
  .vacancy_calender .week th {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.vacancy_calender tbody td {
  font-size: 15px;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media (min-width: 1024px) {
  .vacancy_calender tbody td {
    font-size: 20px;
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.vacancy_calender .week th:first-child,
.vacancy_calender tbody td:first-child .vacancy_day,
.vacancy_calender tbody .vacancy_day.holiday {
  color: #e64a19;
}

.vacancy_calender .week th:last-child,
.vacancy_calender tbody td:last-child .vacancy_day {
  color: #2a9cc2;
}

.vacancy_calender tbody td a {
  color: #9B8D49;
  text-decoration: none;
}

.vacancy_calender tbody td a:hover {
  text-decoration: underline;
}

.vacancy_day {
  display: block;
  margin-bottom: 10px;
}

/*----------------------------------------------------
	カード
----------------------------------------------------*/
.card-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (min-width: 768px) {
  .card-container {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 40px;
  }
}
.card-container .card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  background-color: #eeebe8;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  overflow: hidden;
  padding-bottom: 20px;
}
.card-container .card figure {
  overflow: hidden;
}
.card-container .card figure img {
  display: block;
  margin-right: auto;
  margin-left: auto;
  transition: scale 0.5s;
}
.card-container .card .card-title {
  transition: opacity 0.5s;
  font-weight: 500;
  margin-top: 15px;
  padding-left: 10px;
  padding-right: 10px;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
@media (min-width: 768px) {
  .card-container .card .card-title {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.card-container .card .card-description {
  margin-top: 10px;
  transition: opacity 0.5s;
}
.card-container .card .footer-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  position: relative;
  margin-top: 45px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .card-container .card .footer-arrow {
    margin-top: 20px;
    width: 30px;
    height: 30px;
    transform: none;
  }
}
.card-container .card .footer-arrow::before, .card-container .card .footer-arrow::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #505050;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.card-container .card .footer-arrow::before {
  background: transparent;
}
.card-container .card .footer-arrow::after {
  background: #505050;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
@media (any-hover: hover) {
  .card-container .card:hover .footer-arrow::before {
    background: #505050;
  }
  .card-container .card:hover .footer-arrow::after {
    background: #fff;
  }
}

/*----------------------------------------------------
	フッダーナビ
----------------------------------------------------*/
.l-footer-nav__inner {
  display: grid;
  gap: 10px 20px;
  grid-template-columns: 1fr;
  grid-auto-flow: dense;
}
@media (min-width: 768px) {
  .l-footer-nav__inner {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .l-footer-nav__inner {
    grid-template-columns: 1fr 1fr;
  }
}

.footer-nav__inner-cont {
  display: flex;
  flex-direction: column;
  gap: 10px 20px;
}
@media (min-width: 1200px) {
  .footer-nav__inner-cont {
    grid-template-columns: 1fr 1fr;
    display: grid;
  }
}
@media (min-width: 1200px) {
  .footer-nav__inner-cont.first-footer-cont {
    grid-template-columns: 1fr 1fr;
  }
}
.footer-nav-sec {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-nav-sec .footer-nav-cont + .footer-nav-cont {
  margin-top: 10px;
}
.footer-nav-sec .footer-nav-cont {
  font-size: 20px;
}
.footer-nav-sec .footer-nav-cont .accordion-toggle {
  cursor: pointer;
  color: #505050;
  position: relative;
}
@media (min-width: 768px) {
  .footer-nav-sec .footer-nav-cont .accordion-toggle {
    display: none;
  }
}
.footer-nav-sec .footer-nav-cont .accordion-toggle::after {
  content: "＋";
  transition: transform 0.3s ease;
  position: absolute;
  right: 0;
}
.footer-nav-sec .footer-nav-cont .accordion-toggle.active::after {
  content: "－";
}
@media (max-width: 767px) {
  .footer-nav-sec .footer-nav-cont .accordion-content a {
    margin-top: 10px;
  }
}
.footer-nav-sec .footer-nav-cont .accordion-content a + a {
  margin-top: 5px;
}
@media (max-width: 767px) {
  .footer-nav-sec .footer-nav-cont .accordion-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s ease, opacity 0.4s ease;
  }
  .footer-nav-sec .footer-nav-cont .accordion-content.open {
    max-height: 500px;
    opacity: 1;
  }
}
@media (min-width: 768px) {
  .footer-nav-sec .footer-nav-cont .accordion-content {
    max-height: none;
    opacity: 1;
    overflow: visible;
    transition: none;
  }
}

.footer-nav-link {
  display: flex;
  gap: 15px;
  align-items: center;
  transition: opacity 0.6s ease;
}
.footer-nav-link .text--en {
  font-family: "Baskerville", serif;
  font-size: 18px;
  font-size: 1.125rem;
}
@media (min-width: 1024px) {
  .footer-nav-link .text--en {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.footer-nav-link .text--ja {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-size: 14px;
  font-size: 0.875rem;
}
@media (min-width: 1024px) {
  .footer-nav-link .text--ja {
    font-size: 16px;
    font-size: 1rem;
  }
}
.footer-nav-link.footer-nav-child .text--ja {
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 1024px) {
  .footer-nav-link.footer-nav-child .text--ja {
    font-size: 14px;
    font-size: 0.875rem;
  }
}
.footer-nav-link.footer-nav-child {
  position: relative;
  padding-left: 15px;
}
.footer-nav-link.footer-nav-child::before {
  content: "";
  width: 10px;
  height: 1px;
  background-color: #000000;
  position: absolute;
  left: 0;
}
@media (any-hover: hover) {
  .footer-nav-link:hover {
    opacity: 0.4;
  }
}

/* hotels
-------------------------------------- */
.home-hotels__title {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-bottom: 25px;
  font-weight: normal;
  text-align: center;
}
@media (min-width: 1024px) {
  .home-hotels__title {
    margin-bottom: 37px;
  }
}
.home-hotels__title .sub {
  font-family: "Baskerville", serif;
  font-size: 36px;
  font-size: 2.25rem;
}
@media (min-width: 1024px) {
  .home-hotels__title .sub {
    font-size: 50px;
    font-size: 3.125rem;
  }
}
.home-hotels__title .main {
  font-size: 16px;
  font-size: 1rem;
}

.home-hotels__list {
  display: grid;
  gap: 5px;
}
@media (min-width: 768px) {
  .home-hotels__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.home-hotels__list .link {
  display: block;
  position: relative;
  overflow: hidden;
}
@media (any-hover: hover) {
  .home-hotels__list .link:hover .home-hotels__list_bg::before {
    background: rgba(80, 80, 80, 0.6);
  }
  .home-hotels__list .link:hover .home-hotels__list_bg img {
    transform: scale(1.06);
  }
}
.home-hotels__list .title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  z-index: 3;
  top: 0;
  right: 1em;
  bottom: 0;
  left: 1em;
  font-weight: normal;
  color: #FFF;
}
.home-hotels__list .title .sub {
  font-family: "Baskerville", serif;
  font-size: 28px;
  font-size: 1.75rem;
}
@media (min-width: 768px) {
  .home-hotels__list .title .sub {
    font-size: max(min(1.5vw, 30px), 18px);
  }
}
.home-hotels__list .title .main {
  font-size: 16px;
  font-size: 1rem;
}
@media (min-width: 768px) {
  .home-hotels__list .title .main {
    font-size: max(min(0.8vw, 16px), 14px);
  }
}
.home-hotels__list .home-hotels__list_bg {
  aspect-ratio: 666/250;
}
.home-hotels__list .home-hotels__list_bg::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background: rgba(80, 80, 80, 0.4);
  transition: 0.5s background-color;
}
.home-hotels__list .home-hotels__list_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s transform;
  transform: scale(1);
}

.l-footer-copy {
  background-color: #e8e8e8;
}
.l-footer-copy .home-title {
  color: #979694;
}
@media (min-width: 768px) {
  .l-footer-copy .home-title .sub {
    font-size: 26px;
    font-size: 1.625rem;
  }
}

/* =========================================================
 main
========================================================= */
.l-main {
  position: relative;
  z-index: 2;
  overflow: clip;
}
/* =========================================================
 container
========================================================= */
.l-container {
  display: grid;
  gap: 60px 40px;
  width: 92%;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 20px;
}
@media (min-width: 1024px) {
  .l-container {
    gap: min(5.3333333333vw, 80px);
    width: 88%;
    max-width: 1200px;
  }
}
@media (min-width: 1024px) {
  .l-container:has(.l-sidebar) {
    grid-template-columns: 1fr max(240px, 25%);
  }
}
.l-container .l-contents {
  margin: 0;
  width: auto;
  max-width: none;
}

/* =========================================================
 contents
========================================================= */
.l-contents {
  width: 92%;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1024px) {
  .l-contents {
    width: 88%;
    max-width: 1200px;
  }
}
/* =========================================================
 sidebar
========================================================= */
/* 予約
========================================================= */
.reserv-open {
  display: block; /* 初期状態で表示 */
}

@media (min-width: 768px) {
  #right-reservation {
    position: fixed;
    z-index: 80;
    right: -800px;
    bottom: 0px;
    width: 100%;
    max-width: 910px;
    height: 90px;
    opacity: 1;
    transition: right 0.5s;
    border-top-left-radius: 20px;
  }
  #right-reservation.is-open {
    right: 0;
  }
  #right-reservation * {
    color: #505050;
    box-sizing: border-box;
  }
  #right-reservation .reservation-form {
    display: flex;
    width: 100%;
    height: 100%;
  }
  #right-reservation .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    flex-basis: 90px;
    max-width: 90px;
    bottom: 20px;
    background-color: #505050;
    border: 1px solid transparent;
    border-radius: 100%;
    padding: 10px 0px;
    gap: 10px;
    margin-right: 20px;
    cursor: pointer;
    transition: 0.5s ease;
  }
  #right-reservation .text::before {
    display: none;
  }
  #right-reservation .text h3 {
    width: 88px;
    flex-shrink: 0;
    line-height: 1;
    font-size: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    letter-spacing: 0;
    font-weight: 500;
  }
  #right-reservation .text h3 .reserve-icon path {
    fill: #fff;
    transition: fill 0.3s ease;
  }
  #right-reservation .text h3.is-hide-panel {
    content: "";
    display: block;
    color: #fff;
    background-color: #000;
    width: 174px;
    height: 90px;
    cursor: pointer;
    margin-left: -134px;
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  #right-reservation .text h3.is-hide-panel:before {
    display: none;
  }
  #right-reservation .text h4 {
    width: 150px;
    flex-shrink: 0;
    line-height: 1;
    font-size: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    letter-spacing: 0;
  }
  #right-reservation .text .reserv-btn-label {
    position: absolute;
    opacity: 0;
    visibility: hidden;
    transition: 0.5s ease;
    background-color: #505050;
    color: #fff;
    padding: 3px 10px;
    font-size: 10px;
    top: -40px;
    left: 13px;
    white-space: nowrap;
    border-radius: 20px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    pointer-events: none;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 768px) and (any-hover: hover) {
  #right-reservation .text:hover {
    background-color: #fff;
    border: 1px solid #505050;
  }
  #right-reservation .text:hover .reserve-icon path {
    fill: #505050;
  }
  #right-reservation .text:hover .reserv-btn-label {
    opacity: 1;
    visibility: inherit;
  }
}
@media (min-width: 768px) {
  #right-reservation .right-reservation-inputs {
    display: flex;
    width: 100%;
    justify-content: space-between;
    background-color: #fff;
  }
  #right-reservation .right-reservation-inputs > div {
    justify-content: space-between;
    flex-basis: 130px;
    max-width: 130px;
    height: 100%;
    padding: 10px;
    position: relative;
  }
  #right-reservation .right-reservation-inputs > div::before {
    content: "";
    width: 1px;
    height: 80%;
    background-color: #e3ded9;
    position: absolute;
    left: -5px;
  }
  #right-reservation .right-reservation-inputs > div.col-01 {
    padding-left: 20px;
    flex-basis: 180px;
    max-width: 180px;
    padding-top: 18px;
    user-select: none;
    caret-color: transparent;
  }
  #right-reservation .right-reservation-inputs > div.col-01::before {
    display: none;
  }
  #right-reservation .right-reservation-inputs > div.col-01 dd {
    line-height: 1;
  }
  #right-reservation .right-reservation-inputs > div.col-02 {
    padding-top: 18px;
  }
  #right-reservation .right-reservation-inputs > div.col-02 dd {
    line-height: 1;
  }
  #right-reservation .right-reservation-inputs > div.col-03 {
    padding-top: 18px;
    width: 22.1052631579%;
    max-width: 22.1052631579%;
    padding: 0;
    flex-basis: 150px;
    background: linear-gradient(to right, #2a9cc2 0%, #2a9cc2 50%, #004977 100%);
  }
  #right-reservation .right-reservation-inputs > div.col-03::before {
    display: none;
  }
  #right-reservation .right-reservation-inputs > div.col-03 dd {
    line-height: 1;
  }
  #right-reservation .right-reservation-inputs dt {
    font-size: 14px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    letter-spacing: 0;
    font-weight: 500;
  }
  #right-reservation .right-reservation-inputs input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font: inherit;
    outline: none;
    background-color: transparent;
    border: none;
    border-radius: 0;
    font-family: "Baskerville", serif;
  }
  #right-reservation #checkin-date {
    font-size: 28px;
    text-align: left;
  }
  #right-reservation #number-of-night {
    font-size: 24px;
    text-align: center;
    width: 2em;
  }
  #right-reservation #roomCount {
    font-size: 24px;
    text-align: center;
    width: 2em;
  }
  #right-reservation #guests-men {
    font-size: 24px;
    text-align: center;
    width: 2em;
  }
  #right-reservation #guests-women {
    font-size: 24px;
    text-align: center;
    width: 2em;
  }
  #right-reservation .right-reservation-night {
    width: 100%;
  }
  #right-reservation .right-reservation-night dd {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  #right-reservation .btnspinner {
    font-size: 28px;
    cursor: pointer;
    font-weight: bold;
  }
  #right-reservation .right-reservation-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font: inherit;
    outline: none;
    border: none;
    border-radius: 0;
    cursor: pointer;
    font-size: 20px;
    background: #2a9cc2;
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    letter-spacing: 0;
    font-weight: 500;
    width: 100%;
    height: 100%;
    padding: 20px;
    display: flex !important;
    justify-content: center;
    align-items: center;
  }
}

/* =========================================================
 project
========================================================= */
.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

html,
body {
  overflow-x: clip;
}

.site-shell {
  padding-left: 0px;
}
@media (min-width: 1024px) {
  .site-shell {
    padding-left: 58px;
  }
}

.site-logo {
  position: fixed;
}

.text-shadow {
  text-shadow: 3px 9px 15px rgba(0, 0, 0, 0.3);
}

.text-shadow02 {
  text-shadow: 8px 5px 8px rgba(0, 0, 0, 0.5);
}

.text-shadow06 {
  text-shadow: 8px 5px 8px rgba(0, 0, 0, 0.6);
}

.category-content {
  background-color: #e64a19;
  padding: 5px 10px;
  color: #fff;
  font-weight: 300;
  border-radius: 20px;
  display: inline-block;
}

.btn-arw {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 40px;
  width: 40px;
}
.btn-arw::before, .btn-arw::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #fff;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.btn-arw::before {
  background: transparent;
}
.btn-arw::after {
  background: #FFF;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}

/* kv 
-------------------------------------- */
.p-kv {
  position: relative;
}
@media (max-width: 1023px) {
  .p-kv {
    height: 80vh;
    height: 80svh;
  }
}
@media (min-width: 1024px) {
  .p-kv {
    height: 40vw;
    min-height: 650px;
    max-height: 800px;
  }
}
.p-kv.full-mainvisual {
  height: 100vh;
  height: 100svh;
  max-height: 100%;
  min-height: auto;
  aspect-ratio: auto;
  height: auto;
}
.p-kv.full-mainvisual .p-kv__inner {
  position: relative;
  z-index: 2;
  min-height: 100svh;
  display: flex;
  align-items: center;
}
.p-kv.full-mainvisual .p-kv__inner.first-kv-text {
  margin-top: -100svh;
}
.p-kv.full-mainvisual .p-kv__inner.second-kv-text {
  padding-bottom: 300px;
}
.p-kv.full-mainvisual .p-kv__inner.second-kv-text p {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
}
@media (min-width: 1024px) {
  .p-kv.full-mainvisual .p-kv__inner.second-kv-text p {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.p-kv .p-kv_spec {
  position: absolute;
  bottom: 20px;
  left: 20px;
  max-width: 350px;
  width: 88%;
  padding: 20px;
  z-index: 2;
  background-color: rgba(80, 80, 80, 0.4);
}
.p-kv .p-kv_spec .p-kv_spec_detail {
  color: #fff;
}
.p-kv .p-kv_spec .p-kv_spec_detail .p-kv_spec_flex {
  display: flex;
  gap: 10px;
}
.p-kv .p-kv_spec .p-kv_spec_detail .p-kv_spec_icon {
  display: flex;
  gap: 10px;
  align-items: center;
}
.p-kv .p-kv_spec .p-kv_spec_detail .p-kv_spec_icon span {
  line-height: 0;
}

.p-kv__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.p-kv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-kv__sticky {
  position: sticky;
  top: 0;
  height: 100%;
  height: 100svh;
  height: 100lvh;
  z-index: 1;
}
.p-kv__sticky img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* 最初のテキスト：上下左右ど真ん中 */
.p-kv__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.p-kv__inner.p-kv__inner-text {
  height: 100%;
}

.p-kv__title {
  display: flex;
  flex-direction: column;
  text-align: center;
  color: #FFF;
  font-weight: 300;
}
.p-kv__title .sub {
  line-height: 1.2;
  font-family: "Baskerville", serif;
  font-size: clamp(30px, 15.3846153846vw, 80px);
}
@media (min-width: 521px) {
  .p-kv__title .sub {
    font-size: 80px;
    font-size: 5rem;
  }
}
@media (min-width: 1024px) {
  .p-kv__title .sub {
    font-size: 100px;
    font-size: 6.25rem;
  }
}
.p-kv__title .main {
  font-size: 22px;
  font-size: 1.375rem;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .p-kv__title .main {
    font-size: 26px;
    font-size: 1.625rem;
  }
}

.home-title {
  display: flex;
  flex-direction: column;
  color: #FFF;
  font-weight: normal;
  gap: 10px;
}
@media (min-width: 1024px) {
  .home-title {
    gap: 30px;
  }
}
.home-title .main {
  font-family: "Baskerville", serif;
  font-size: clamp(18px, 18.9743589744vw, 80px);
  line-height: 1;
}
@media (min-width: 1024px) {
  .home-title .main {
    font-size: 120px;
    font-size: 7.5rem;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1600px) {
  .home-title .main {
    font-size: 100px;
    font-size: 6.25rem;
  }
}
.home-title .sub {
  font-size: clamp(18px, 6.1538461538vw, 26px);
  line-height: 1.5;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .home-title .sub {
    font-size: 32px;
    font-size: 2rem;
  }
}
.home-title .sub02 {
  font-weight: 700;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 2;
}
@media (min-width: 1024px) {
  .home-title .sub02 {
    font-size: 16px;
    font-size: 1rem;
  }
}
.home-title .sub03 {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
}
@media (min-width: 1024px) {
  .home-title .sub03 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.lead-content {
  max-width: 750px;
}

.section-title {
  display: flex;
  flex-direction: column;
  color: #FFF;
  font-weight: normal;
  gap: 10px;
}
@media (min-width: 1024px) {
  .section-title {
    gap: 15px;
  }
}
.section-title .main {
  font-family: "Baskerville", serif;
  font-size: 35px;
  font-size: 2.1875rem;
  line-height: 1;
  font-weight: 400 !important;
}
@media (min-width: 768px) {
  .section-title .main {
    font-size: 60px;
    font-size: 3.75rem;
  }
}
.section-title .sub {
  line-height: 1.5;
  font-weight: 700 !important;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media (min-width: 1024px) {
  .section-title .sub {
    font-size: 16px;
    font-size: 1rem;
  }
}

/* pageTitle
-------------------------------------- */
.p-pageTitle {
  margin: 40px 0 50px;
}
@media (min-width: 1024px) {
  .p-pageTitle {
    margin: 90px 0 140px;
  }
}

.p-pageTitle__inner {
  max-width: 1600px;
}

/* access用テキストflex
-------------------------------------- */
.p-access-block-flex {
  display: flex;
  gap: 20px;
  justify-content: space-between;
  flex-direction: column-reverse;
}
@media (min-width: 768px) {
  .p-access-block-flex {
    flex-direction: inherit;
  }
}
.p-access-block-flex .img-blocks {
  max-width: 300px;
}
.p-access-block-flex .access-img-block {
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}
@media (min-width: 768px) {
  .p-access-block-flex .access-img-block {
    width: 30%;
    min-width: 300px;
  }
}

/* breadcrumb
-------------------------------------- */
/* postHead
-------------------------------------- */
/* postBody
-------------------------------------- */
.p-postBody h1:not(.c-sectionSubtitle), .p-postBody h2:not(.c-sectionSubtitle), .p-postBody h3:not(.c-sectionSubtitle), .p-postBody h4:not(.c-sectionSubtitle), .p-postBody h5:not(.c-sectionSubtitle), .p-postBody h6:not(.c-sectionSubtitle) {
  font-weight: normal;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 16px;
  font-size: 1rem;
}
.p-postBody h1:not(.c-sectionSubtitle) + *, .p-postBody h2:not(.c-sectionSubtitle) + *, .p-postBody h3:not(.c-sectionSubtitle) + *, .p-postBody h4:not(.c-sectionSubtitle) + *, .p-postBody h5:not(.c-sectionSubtitle) + *, .p-postBody h6:not(.c-sectionSubtitle) + * {
  margin-top: 0.8em;
}
.p-postBody {
  /* =========================================================
   Editor
  ========================================================= */
}
.p-postBody a:not(.wp-block-button__link) {
  text-decoration: underline;
  color: #036EA9;
}
@media (any-hover: hover) {
  .p-postBody a:not(.wp-block-button__link):hover {
    text-decoration: none;
  }
}
.p-postBody > * + * {
  margin-top: 2em;
}
.p-postBody p strong {
  color: #2a9cc2;
}
.p-postBody * + h2,
.p-postBody * + h3,
.p-postBody * + h4,
.p-postBody * + h5,
.p-postBody * + h6 {
  margin-top: 2em;
}
.p-postBody ul li {
  display: flex;
  position: relative;
}
.p-postBody li + li {
  margin-top: 0.5em;
}
.p-postBody ul:not(.blocks-gallery-grid) li {
  display: list-item;
  padding-left: 1em;
}
.p-postBody ul:not(.blocks-gallery-grid) li:before {
  position: absolute;
  left: 0;
  content: "・";
}
.p-postBody ol {
  padding-left: 1.5em;
}
.p-postBody iframe {
  max-width: 100%;
}
.p-postBody pre {
  white-space: pre-wrap;
}
.p-postBody .alignleft {
  float: left;
  margin: 0 1em 1em 0;
}
.p-postBody .alignright {
  float: right;
  margin: 0 0 1em 1em;
}
.p-postBody .aligncenter {
  margin-right: auto;
  margin-left: auto;
}
.p-postBody figure {
  max-width: 1000px;
  margin: 30px auto;
}
@media (min-width: 1024px) {
  .p-postBody figure {
    margin: 50px auto;
  }
}
.p-postBody figure figcaption {
  margin-top: 1em;
  text-align: center;
}
.p-postBody .wp-block-button__link {
  background: #2a9cc2;
}
.p-postBody .wp-block-columns > * > * + * {
  margin-top: 2em;
}

/* entryList
-------------------------------------- */
/* pager
-------------------------------------- */
.p-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 767px) {
  .p-pager {
    gap: 10px;
    flex-direction: column;
  }
}
.p-pager:has(a) {
  margin-top: 40px;
}
@media (min-width: 521px) {
  .p-pager:has(a) {
    margin-top: 80px;
  }
}
@media (min-width: 768px) {
  .p-pager > * {
    width: 48%;
  }
}
.p-pager a {
  color: #2a9cc2;
  display: inline-flex !important;
  align-items: center;
  gap: 0.8em;
}
.p-pager a span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.p-pager a:before {
  flex-shrink: 0;
  background: #2a9cc2;
  color: #FFF;
  letter-spacing: 0.06em;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  text-decoration: none;
  font-size: 14px;
  font-size: 0.875rem;
}
@media (any-hover: hover) {
  .p-pager a {
    transition: 0.5s opacity;
  }
  .p-pager a:hover {
    opacity: 0.7;
  }
}

.p-pager__next {
  text-align: right;
}
@media (max-width: 767px) {
  .p-pager__next {
    margin-left: auto;
  }
}
.p-pager__next a {
  flex-direction: row-reverse;
}
.p-pager__next a:before {
  padding: 0.2em 0.6em 0.2em 0.8em;
  content: "NEXT >";
}

@media (max-width: 767px) {
  .p-pager__prev {
    margin-right: auto;
  }
}
.p-pager__prev a:before {
  padding: 0.2em 0.8em 0.2em 0.6em;
  content: "< PREV";
}

/* pagination {
-------------------------------------- */
.p-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8em;
  margin-top: 50px;
  font-weight: bold;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 14px;
  font-size: 0.875rem;
}
@media (min-width: 1024px) {
  .p-pagination {
    margin-top: 100px;
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.p-pagination > * {
  min-width: 2em;
  padding: 0.2em 0.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
}
@media (any-hover: hover) {
  .p-pagination a {
    transition: 0.5s color;
  }
  .p-pagination a:hover {
    color: #2a9cc2;
  }
}
.p-pagination .prev,
.p-pagination .next {
  position: relative;
}
.p-pagination .prev::before, .p-pagination .prev::after,
.p-pagination .next::before,
.p-pagination .next::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 2em;
  border-radius: 100%;
  content: "";
}
.p-pagination .prev::before,
.p-pagination .next::before {
  background: #0d0409;
}
.p-pagination .prev::after,
.p-pagination .next::after {
  background: #FFF;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
.p-pagination .prev::before, .p-pagination .prev::after,
.p-pagination .next::before,
.p-pagination .next::after {
  top: 0;
  left: 0;
  transition: 0.5s background-color;
}
@media (any-hover: hover) {
  .p-pagination .prev:hover::before,
  .p-pagination .next:hover::before {
    background: #2a9cc2;
  }
}
.p-pagination .prev::after {
  transform: scale(-1, 1);
}
.p-pagination .current {
  border-color: transparent !important;
  color: #FFF;
  background: #2a9cc2 !important;
  border-radius: 100%;
}

/* lead
-------------------------------------- */
.p-lead__inner {
  max-width: 500px;
}

.p-lead__title {
  margin-bottom: 1em;
  text-align: center;
  font-weight: normal;
  font-size: 22px;
  font-size: 1.375rem;
}
@media (min-width: 1024px) {
  .p-lead__title {
    font-size: 25px;
    font-size: 1.5625rem;
  }
}

@media (min-width: 1024px) {
  .p-lead__text {
    line-height: 2.25;
  }
}

/* localNav
-------------------------------------- */
.p-localNav {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: flex-end;
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .p-localNav {
    gap: 15px;
  }
}
@media (min-width: 1366px) {
  .p-localNav {
    gap: 15px;
  }
}
@media (min-width: 1024px) {
  .p-localNav__col3 {
    justify-content: center;
  }
}
.p-localNav li {
  width: calc((100% - 15px) / 2);
}
@media (min-width: 768px) {
  .p-localNav li {
    width: calc((100% - 20px) / 2);
  }
}
@media (min-width: 1024px) {
  .p-localNav li {
    width: calc((100% - 120px) / 3);
  }
}
@media (min-width: 1366px) {
  .p-localNav li {
    width: calc((100% - 90px) / 4);
  }
}
.p-localNav.p-localengNav li {
  width: 100%;
}
@media (min-width: 521px) {
  .p-localNav.p-localengNav li {
    width: calc((100% - 20px) / 2);
  }
}
@media (min-width: 1024px) {
  .p-localNav.p-localengNav li {
    width: calc((100% - 120px) / 3);
  }
}
@media (min-width: 1366px) {
  .p-localNav.p-localengNav li {
    width: calc((100% - 120px) / 4);
  }
}

@media (max-width: 1400px) {
  .nav-br-hidden {
    display: none;
  }
}

.p-localNav__link {
  display: flex;
  align-items: center;
  position: relative;
  border-radius: 20px;
  padding: 0.3em;
  border: 1px solid #b2b2b2;
  transition: 0.5s border;
}
@media (min-width: 1024px) {
  .p-localNav__link {
    padding: 0.4em 0.8em;
  }
}
.p-localNav__link::before {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0%;
  height: 1px;
  background: #0d0409;
  transition: 0.5s width;
  content: "";
}
.p-localNav__link::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 6px;
  background: currentColor;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transition: transform 0.3s ease;
  position: absolute;
  right: 0.3em;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 1024px) {
  .p-localNav__link::after {
    right: 0.8em;
  }
}
.p-localNav__link.left-arrow:after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 8px;
  background: currentColor;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transition: transform 0.3s ease;
  position: absolute;
  right: 0.5em;
  top: 50%;
  transform: translateY(-50%);
}
@media (any-hover: hover) {
  .p-localNav__link.left-arrow:hover::after {
    transform: translate(2px, -50%);
  }
}
.p-localNav__link .main {
  flex-shrink: 0;
  margin-right: 0.8em;
  font-family: "Baskerville", serif;
  font-size: 16px;
  font-size: 1rem;
}
@media (min-width: 768px) {
  .p-localNav__link .main {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.p-localNav__link .num {
  margin-right: 0.3em;
  color: #fff;
  font-family: "Baskerville", serif;
  background-color: #505050;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.3em;
  height: 1.3em;
  border-radius: 50%;
  line-height: 1;
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 768px) {
  .p-localNav__link .num {
    font-size: 16px;
    font-size: 1rem;
    width: 1.6em;
    height: 1.6em;
    margin-right: 0.8em;
  }
}
.p-localNav__link .sub {
  padding-right: 6px;
  flex: 1;
  font-size: 11px;
  font-size: 0.6875rem;
}
@media (min-width: 768px) {
  .p-localNav__link .sub {
    font-size: 14px;
    font-size: 0.875rem;
    padding-right: 16px;
  }
}
@media (min-width: 1024px) {
  .p-localNav__link .sub {
    padding-right: 10px;
  }
}
@media (any-hover: hover) {
  .p-localNav__link:hover {
    border: 1px solid #505050;
  }
  .p-localNav__link:hover::after {
    transform: translateY(calc(-50% + 2px));
  }
}
.p-localNav__link.eng-nav {
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  transition: 0.5s background;
  width: 100%;
}
.p-localNav__link.eng-nav .main {
  position: absolute;
  opacity: 0;
  color: #fff;
  bottom: 4px;
  padding-left: 2px;
}
.p-localNav__link.eng-nav .sub {
  padding-left: 2px;
}
@media (any-hover: hover) {
  .p-localNav__link.eng-nav:hover {
    border: 1px solid transparent;
    background-color: #505050;
  }
  .p-localNav__link.eng-nav:hover .main {
    opacity: 1;
  }
  .p-localNav__link.eng-nav:hover .sub {
    opacity: 0;
  }
  .p-localNav__link.eng-nav:hover:after {
    background-color: #fff;
  }
}
/* slider
-------------------------------------- */
.p-slider {
  position: relative;
}
.p-slider--wide .swiper {
  margin-inline: calc(50% - 50vw);
}
@media (min-width: 1024px) {
  .p-slider--wide .swiper {
    width: calc(100vw - 60px);
    margin-inline: calc(50% - 50vw + 30px);
  }
}
.p-slider .swiper-slide img {
  width: 100%;
}
.p-slider .swiper-button-next,
.p-slider .swiper-button-prev {
  width: 35px;
  height: 35px;
  margin-top: -17px;
}
@media (min-width: 768px) {
  .p-slider .swiper-button-next,
  .p-slider .swiper-button-prev {
    width: 50px;
    height: 50px;
    margin-top: -25px;
  }
}
.p-slider .swiper-button-next::after,
.p-slider .swiper-button-prev::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url(../img/common/slider_arrow.svg) no-repeat center/contain;
}
.p-slider .swiper-button-next {
  right: 5px;
}
@media (min-width: 768px) {
  .p-slider .swiper-button-next {
    right: 20px;
  }
}
.p-slider .swiper-button-prev {
  left: 5px;
}
@media (min-width: 768px) {
  .p-slider .swiper-button-prev {
    left: 20px;
  }
}
.p-slider .swiper-button-prev::after {
  transform: scale(-1, 1);
}
.p-slider .swiper-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: absolute;
  bottom: 20px !important;
  right: 0px;
  left: 0px;
}
@media (min-width: 768px) {
  .p-slider .swiper-pagination {
    bottom: 20px !important;
    right: 20px;
  }
}
.p-slider .swiper-pagination-bullet {
  margin: 0 !important;
  width: 10px;
  height: 10px;
  background: #727272;
  opacity: 0.4;
  transition: 0.5s opacity, 0.5s background-color;
}
.p-slider .swiper-pagination-bullet-active {
  background: #2a9cc2;
  opacity: 1;
}

.p-lead-sticky {
  position: relative;
  padding-top: 50px;
  z-index: 10;
}
@media (min-width: 1024px) {
  .p-lead-sticky {
    padding-top: 0;
  }
}
.p-lead-sticky .p-lead-sticky-text {
  position: sticky;
  top: 20%;
  z-index: 10;
}
@media (min-width: 1024px) {
  .p-lead-sticky .p-lead-imgs {
    display: flex;
    gap: 400px;
    gap: clamp(150px, 20vw, 400px);
    padding-bottom: 375px;
    justify-content: center;
  }
}
.p-lead-sticky .p-lead-left {
  display: flex;
  gap: 150px;
  gap: clamp(75px, 14.6627565982vw, 150px);
}
@media (min-width: 1024px) {
  .p-lead-sticky .p-lead-left {
    padding-right: clamp(30px, 5vw, 100px);
    flex-direction: column;
    gap: clamp(125px, 12.5vw, 250px);
  }
}
.p-lead-sticky .p-lead-left .p-lead-left02 {
  margin-top: 100px;
  margin-top: clamp(25px, 9.7751710655vw, 100px);
}
@media (min-width: 1024px) {
  .p-lead-sticky .p-lead-left .p-lead-left02 {
    margin-left: auto;
    margin-right: clamp(-100px, -5vw, -30px);
    width: 465px;
    width: clamp(150px, 23.25vw, 465px);
  }
}
.p-lead-sticky .p-lead-right {
  width: clamp(150px, 69.2082111437vw, 708px);
  margin-top: 40px;
}
@media (min-width: 1024px) {
  .p-lead-sticky .p-lead-right figure {
    width: auto;
    margin-top: 330px;
    margin-top: clamp(165px, 16.5vw, 330px);
  }
}

/* 汎用box
-------------------------------------- */
.p-box--floormap {
  display: flex;
}
@media (max-width: 1023px) {
  .p-box--floormap {
    flex-direction: column;
    gap: 30px;
  }
}
@media (min-width: 1024px) {
  .p-box--floormap {
    gap: 70px;
  }
}
@media (min-width: 1024px) {
  .p-box--floormap .p-box__main {
    flex: 1;
  }
}
.p-box--floormap .p-box__img {
  text-align: center;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  max-height: 400px;
  max-width: 400px;
  width: 100%;
}
@media (min-width: 1024px) {
  .p-box--floormap .p-box__img {
    padding-inline: 25px;
    padding-block: 25px;
  }
}
@media (max-width: 1023px) {
  .p-box--floormap .p-box__img {
    padding-inline: 0px;
    padding-block: 15px;
  }
}
.p-box--floormap .p-box__img img {
  width: auto;
  max-height: 350px;
  max-width: 400px;
}
@media (min-width: 1024px) {
  .p-box--floormap .p-box__img img {
    width: auto;
    height: auto;
  }
}
@media (max-width: 1023px) {
  .p-box--floormap .p-box__img img {
    max-width: 300px;
    max-height: 250px;
  }
}
.p-box--text .p-box__main {
  display: flex;
}
@media (max-width: 1023px) {
  .p-box--text .p-box__main {
    flex-direction: column;
  }
}
@media (min-width: 1024px) {
  .p-box--text .p-box__main {
    align-items: flex-start;
    justify-content: space-between;
  }
}
@media (min-width: 1024px) {
  .p-box--text .p-box__list {
    max-width: 350px;
    min-width: 300px;
    width: 100%;
    margin-top: 0.3em;
  }
}
.p-box--split {
  display: flex;
}
@media (max-width: 1023px) {
  .p-box--split {
    flex-direction: column;
    gap: 30px;
  }
}
@media (min-width: 1024px) {
  .p-box--split {
    align-items: center;
    gap: 60px;
  }
  .p-box--splitReverse {
    flex-direction: row-reverse;
  }
}
@media (min-width: 1024px) {
  .p-box--split .p-box__img {
    width: 50%;
  }
}
@media (min-width: 1024px) {
  .p-box--split .p-box__img.large-img {
    width: 60%;
  }
}
.p-box--split .p-box__img.large-img video {
  width: 100%;
  aspect-ratio: 1070/670; /* 元のサイズの比率 */
  object-fit: cover;
}
@media (min-width: 1024px) {
  .p-box--split .p-box__main {
    flex: 1;
  }
}

.p-box__img img {
  width: 100%;
}

.p-box__title {
  margin-bottom: 0.8em;
}
.p-box__title .p-box__title_category {
  background-color: #e64a19;
  display: inline-block;
  margin-top: 0.15em;
  color: #fff;
  border-radius: 2em;
  padding: 0.1em 0.9em;
  padding-right: 10px;
  font-size: 11px;
  font-size: 0.6875rem;
}

@media (min-width: 1024px) {
  .p-box__text {
    line-height: 2.25;
  }
}

.p-box__list {
  line-height: 1.5;
}
@media (max-width: 1023px) {
  .p-box__list {
    margin-top: 1em;
    padding-top: 1em;
    border-top: 1px solid;
  }
}
.p-box__list > div {
  display: flex;
}
.p-box__list > div + div {
  margin-top: 0.6em;
}
.p-box__list dt {
  font-weight: 400;
}
.p-box__list dd {
  flex: 1;
}
.p-box__list--bordertop {
  margin-top: 1.3em;
  padding-top: 1.5em;
  border-top: 1px solid #e3ded9;
}
.p-box__list--bordertop dt {
  width: 6.25em;
}
.p-box__list--detail dt {
  width: 6.25em;
  position: relative;
}
.p-box__list--detail dt::before {
  content: ":";
  display: block;
  position: absolute;
  right: 25px;
  top: 0;
}
@media (min-width: 1024px) {
  .p-box__list--borderright {
    width: 100%;
    margin-right: 1.5em;
    padding-right: 1.5em;
    border-right: 1px solid #e3ded9;
  }
}
@media (min-width: 1024px) {
  .p-box__list--borderleft {
    margin-left: 1.5em;
    padding-left: 1.5em;
    border-left: 1px solid #e3ded9;
  }
}
.p-box__list--borderleft dt {
  width: 6.25em;
}
@media (min-width: 1024px) {
  .p-box__list--bordernone {
    margin-left: 0em;
    padding-left: 0em;
    border-left: none;
  }
}
.p-box__list--bordernone dt {
  width: 6.25em;
}

.p-box--split-colu3 .column-3 {
  display: flex;
  width: calc(100vw - 60px);
  margin-inline: calc(50% - 50vw + 30px);
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .column-3 {
    justify-content: space-between;
    gap: 115px;
    gap: clamp(20px, 5.75vw, 115px);
  }
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .main-img {
    width: 50.5154639175%;
  }
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .main-text {
    width: 384px;
    min-width: 384px;
  }
}
.p-box--split-colu3 .main-text .p-box-main {
  max-width: 384px;
}
.p-box--split-colu3 .sub-img {
  width: 17.6288659794%;
  margin-top: 90px;
  margin-top: clamp(20px, 5.75vw, 115px);
}
.p-box--split-colu3 .sub-img img {
  width: 100%;
  object-fit: cover;
}

.p-column-3-sub {
  position: relative;
}
.p-column-3-sub .p-column-3-sub-content {
  display: flex;
  gap: 40px;
}
@media (min-width: 1024px) {
  .p-column-3-sub .p-column-3-sub-content {
    gap: clamp(20px, 12.75vw, 255px);
    justify-content: center;
  }
}
.p-column-3-sub .p-column-3-sub-content .sub01 {
  margin-top: clamp(20px, 5.75vw, 115px);
}
@media (min-width: 1024px) {
  .p-column-3-sub .p-column-3-sub-content .sub01 {
    width: clamp(50px, 18vw, 360px);
  }
}
@media (min-width: 1024px) {
  .p-column-3-sub .p-column-3-sub-content .sub02 {
    width: clamp(75px, 29vw, 580px);
  }
}

.p-box--split-colu3 .column-3 {
  display: flex;
  width: calc(100vw - 60px);
  margin-inline: calc(50% - 50vw + 30px);
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .column-3 {
    justify-content: space-between;
    gap: 115px;
    gap: clamp(20px, 5.75vw, 115px);
  }
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .main-img {
    width: 50.5154639175%;
  }
}
@media (min-width: 1024px) {
  .p-box--split-colu3 .main-text {
    width: 384px;
    min-width: 384px;
  }
}
.p-box--split-colu3 .main-text .p-box-main {
  max-width: 384px;
}
.p-box--split-colu3 .sub-img {
  width: 17.6288659794%;
  margin-top: 90px;
  margin-top: clamp(20px, 5.75vw, 115px);
}
.p-box--split-colu3 .sub-img img {
  width: 100%;
  object-fit: cover;
}

.p-swip-column {
  display: flex;
  align-items: center;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  gap: clamp(20px, 5.5vw, 110px);
}
@media (min-width: 1024px) {
  .p-swip-column {
    width: calc(100vw - 60px);
    margin-inline: calc(50% - 50vw + 30px);
  }
}
.p-swip-column .p-swip-column-text {
  width: 92%;
  flex-shrink: 0;
}
@media (min-width: 1024px) {
  .p-swip-column .p-swip-column-text {
    width: 360px;
    max-width: 360px;
    min-width: 360px;
    padding-left: 10px;
    width: 25%;
  }
}
.p-swip-column .p-slider-wrap {
  position: relative;
  width: 70%;
}
@media (max-width: 1023px) {
  .p-swip-column .p-slider-wrap {
    width: 92%;
  }
}
.p-swip-column .p-slider-clip {
  overflow: hidden;
}
.p-swip-column .p-slider {
  overflow: visible;
}
.p-swip-column .is-slider--panel {
  overflow: visible;
  margin-left: 0;
}
@media (min-width: 1024px) {
  .p-swip-column .is-slider--panel {
    width: 77.5862068966%;
  }
}
@media (min-width: 1366px) {
  .p-swip-column .is-slider--panel {
    width: 73.5294117647%;
  }
}
.p-swip-column .is-slider--panel .swiper-slide {
  width: 100%;
  opacity: 0.4;
  transition: opacity 0.5s ease;
}
.p-swip-column .is-slider--panel .swiper-slide.swiper-slide-active {
  opacity: 1;
}
.p-swip-column .is-slider--panel .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}
.p-swip-column .swiper-button-prev,
.p-swip-column .swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
}
@media (max-width: 1023px) {
  .p-swip-column .swiper-button-prev,
  .p-swip-column .swiper-button-next {
    width: 30px;
    height: 30px;
    transform: none;
  }
}
.p-swip-column .swiper-button-prev::before, .p-swip-column .swiper-button-prev::after,
.p-swip-column .swiper-button-next::before,
.p-swip-column .swiper-button-next::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #505050;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.p-swip-column .swiper-button-prev::before,
.p-swip-column .swiper-button-next::before {
  background: transparent;
}
.p-swip-column .swiper-button-prev::after,
.p-swip-column .swiper-button-next::after {
  background: #505050;
}
.p-swip-column .swiper-button-prev {
  left: -22px;
}
@media (max-width: 1023px) {
  .p-swip-column .swiper-button-prev {
    left: -5px;
  }
}
.p-swip-column .swiper-button-prev::after {
  clip-path: polygon(65% 35%, 40% 50%, 65% 65%);
}
body:not(.is-touchdevice) .p-swip-column .swiper-button-prev:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .p-swip-column .swiper-button-prev:hover::after {
  background: #fff;
}
.p-swip-column .swiper-button-next {
  right: -5px;
}
@media (min-width: 1024px) {
  .p-swip-column .swiper-button-next {
    right: calc(21.9827586207% - 22px);
  }
}
@media (min-width: 1366px) {
  .p-swip-column .swiper-button-next {
    right: calc(26.9852941176% - 22px);
  }
}
.p-swip-column .swiper-button-next::after {
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
body:not(.is-touchdevice) .p-swip-column .swiper-button-next:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .p-swip-column .swiper-button-next:hover::after {
  background: #fff;
}

.p-box__notice {
  font-size: 12px;
  font-size: 0.75rem;
}
* + .p-box__notice {
  margin-top: 20px;
}

.p-sticky-clomn2 {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 1024px) {
  .p-sticky-clomn2 {
    position: relative;
    align-items: flex-start;
    flex-direction: inherit;
    gap: clamp(20px, 5vw, 100px);
    width: min(100vw - 60px, 1660px);
    margin-inline: calc(50% - min(100vw - 60px, 1660px) / 2);
  }
  .p-sticky-clomn2 .p-sticky-clomn2-text {
    max-width: 520px;
    position: sticky;
    top: 15%;
    padding-right: 20px;
  }
}

.p-sticky-clomn2-img {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 60px;
}
@media (max-width: 1023px) {
  .p-sticky-clomn2-img {
    display: block;
    padding-top: 80%;
    overflow: hidden;
    position: relative;
  }
}

.p-sticky-clomn2-img-box {
  width: 100%;
  padding-top: 48.24%;
  position: relative;
  overflow: hidden;
}
.p-sticky-clomn2-img-box img {
  width: 100%;
  height: 100%;
  position: absolute;
  object-fit: cover;
  top: 0;
  left: 0;
}
@media (max-width: 1023px) {
  .p-sticky-clomn2-img-box {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding-top: 0;
  }
  .p-sticky-clomn2-img-box img {
    transform: none;
  }
}

.p-sticky-clomn2-img-box_text {
  position: absolute;
  bottom: 0;
  left: 0.5rem;
  color: #fff;
  font-weight: bold;
}

@media (max-width: 1700px) {
  .p-sticky-clomn2-img-box_text {
    left: 3rem;
  }
}
@media (max-width: 1023px) {
  .p-sticky-clomn2-img-box_text {
    left: 0.5rem;
  }
}
/* フロアマップ用モーダル
-------------------------------------- */
/* モーダルトリガー */
.js-modal-trigger {
  position: relative;
  cursor: pointer;
  transition: opacity 0.3s;
}
@media (min-width: 1024px) {
  .js-modal-trigger {
    pointer-events: none;
  }
}

.js-modal-trigger:hover {
  opacity: 0.8;
}

/* +アイコン */
.modal-icon {
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  background-color: #505050;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
}
.modal-icon svg {
  width: 14px;
  height: 14px;
}

/* モーダルオーバーレイ */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.modal-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* モーダルコンテンツ */
.modal-content {
  position: relative;
  max-width: 70%;
  max-height: 70%;
}
@media (min-width: 1024px) {
  .modal-content {
    max-width: 90%;
    max-height: 90%;
  }
}

.modal-image {
  max-width: 100%;
  max-height: 80vh;
  width: auto;
  height: auto;
  display: block;
}
@media (min-width: 1024px) {
  .modal-image {
    max-height: 90vh;
  }
}

/* 閉じるボタン */
.modal-close {
  position: absolute;
  top: -40px;
  right: -40px;
  background: none;
  border: none;
  color: #fff;
  font-size: 40px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  width: 40px;
  height: 40px;
  transition: opacity 0.3s;
}

.modal-close:hover {
  opacity: 0.7;
}

/* 2カラム・3カラムボックス
-------------------------------------- */
.p-boxGrid {
  display: grid;
  gap: 40px;
}
@media (min-width: 1024px) {
  .p-boxGrid--col2 {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }
}
.p-boxGrid--rooms-col2 {
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
@media (max-width: 1023px) {
  .p-boxGrid--col3.sp-col2 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .p-boxGrid--col3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
  }
}
.p-boxGrid--col4 {
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 1024px) {
  .p-boxGrid--col4 {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 30px;
  }
}

.p-link-grid {
  display: grid;
  gap: 40px;
}
@media (min-width: 768px) {
  .p-link-grid--col3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
  }
}

/* infoBox
-------------------------------------- */
.p-info-pd {
  padding-block: 20px;
  padding-inline: 20px;
}
@media (min-width: 1024px) {
  .p-info-pd {
    padding-block: 40px;
    padding-inline: 40px;
  }
}

.p-info-pd-large {
  padding-block: 20px;
}
@media (min-width: 1024px) {
  .p-info-pd-large {
    padding-block: 40px;
  }
}

.p-infoBox {
  display: flex;
  padding-bottom: 15px;
}
@media (max-width: 1023px) {
  .p-infoBox {
    gap: 1em;
    flex-direction: column;
  }
}
@media (min-width: 1024px) {
  .p-infoBox {
    gap: 40px;
  }
}

.p-infoBox + .p-infoBox {
  padding-top: 15px;
}

.p-infoBox__title {
  font-weight: 700;
}
@media (max-width: 1023px) {
  .p-infoBox__title {
    text-align: center;
    padding-bottom: 0.6em;
    border-bottom: 1px solid #e3ded9;
    font-size: 15px;
    font-size: 0.9375rem;
  }
}
@media (min-width: 1024px) {
  .p-infoBox__title {
    display: flex;
    align-items: center;
    width: 130px;
    padding-right: 1em;
    border-right: 1px solid #e3ded9;
    font-size: 16px;
    font-size: 1rem;
  }
}

.p-infoBox__main {
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .p-infoBox__main {
    flex: 1;
    line-height: 1.5;
  }
}
.p-infoBox__main--col3 {
  display: grid;
  gap: 10px;
}
@media (min-width: 768px) {
  .p-infoBox__main--col3 {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 20px;
  }
}
@media (min-width: 1024px) {
  .p-infoBox__main--col3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 30px;
  }
}
.p-infoBox__main--col4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 20px;
}
@media (max-width: 1023px) {
  .p-infoBox__main--col4 {
    font-size: 13px;
    font-size: 0.8125rem;
  }
}
@media (min-width: 1024px) {
  .p-infoBox__main--col4 {
    grid-template-columns: repeat(4, 1fr);
    gap: 10px 30px;
  }
}
.p-infoBox__main--col5 {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) {
  .p-infoBox__main--col5 {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 20px;
  }
}
@media (min-width: 1024px) {
  .p-infoBox__main--col5 {
    grid-template-columns: repeat(5, 1fr);
    gap: 10px 30px;
  }
}
.p-infoBox__main--col6 {
  display: grid;
  gap: 10px;
}
@media (min-width: 768px) {
  .p-infoBox__main--col6 {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 20px;
  }
}
@media (min-width: 1024px) {
  .p-infoBox__main--col6 {
    grid-template-columns: repeat(6, 1fr);
    gap: 10px 30px;
  }
}

.p-infoBox__notice {
  font-size: 12px;
  font-size: 0.75rem;
  margin-top: 1em;
}

.p-infoBox__dl dt {
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid;
}
@media (min-width: 1024px) {
  .p-infoBox__dl dt {
    margin-bottom: 1em;
  }
}
.p-infoBox__dl dd {
  margin-top: 10px;
}
@media (max-width: 767px) {
  .p-infoBox__dl + .p-infoBox__dl {
    margin-top: 1em;
  }
}

/* p-gallery-block
-------------------------------------- */
.p-gallery-block {
  display: grid;
}
.p-gallery-block--col5 {
  gap: 15px;
  grid-template-columns: repeat(3, 1fr);
}
@media (min-width: 1024px) {
  .p-gallery-block--col5 {
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
  }
}

/* sectionHead
-------------------------------------- */
.p-sectionHead {
  display: flex;
}
@media (max-width: 1023px) {
  .p-sectionHead {
    flex-direction: column;
    gap: 16px;
  }
}
@media (min-width: 1024px) {
  .p-sectionHead {
    gap: 50px;
  }
}

@media (max-width: 1023px) {
  .p-sectionHead__title {
    text-align: center;
  }
}
@media (min-width: 1024px) {
  .p-sectionHead__title {
    flex-shrink: 0;
  }
}

.p-sectionHead__text {
  line-height: 1.8;
}
@media (min-width: 1024px) {
  .p-sectionHead__text {
    flex: 1;
    margin-top: 1em;
    line-height: 2.25;
  }
}

/* roomList
-------------------------------------- */
.p-roomList {
  position: relative;
}

.p-roomList__slider {
  margin-right: calc(50% - 50vw) !important;
}

.p-roomList__slide {
  width: 180px !important;
}
@media (min-width: 768px) {
  .p-roomList__slide {
    width: 280px !important;
  }
}
.p-roomList__slide .link {
  display: block;
}
@media (any-hover: hover) {
  .p-roomList__slide .link:hover .img {
    box-shadow: none;
  }
  .p-roomList__slide .link:hover .img::before {
    opacity: 1;
  }
}
.p-roomList__slide .img {
  position: relative;
  aspect-ratio: 280/400;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.25);
  transition: 0.5s box-shadow;
}
.p-roomList__slide .img::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.2);
  content: "";
  opacity: 0;
  transition: 0.5s opacity;
}
.p-roomList__slide .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-roomList__slide .title {
  margin-top: 10px;
  font-weight: normal;
}
.p-roomList__slide .title .sub {
  display: block;
  font-family: "Baskerville", serif;
  font-size: 22px;
  font-size: 1.375rem;
}
@media (min-width: 768px) {
  .p-roomList__slide .title .sub {
    font-size: 30px;
    font-size: 1.875rem;
  }
}
.p-roomList__slide .title .main {
  display: block;
  font-size: 13px;
  font-size: 0.8125rem;
}
@media (min-width: 768px) {
  .p-roomList__slide .title .main {
    font-size: 16px;
    font-size: 1rem;
  }
}

.p-roomList__controlls {
  display: flex;
  gap: 28px;
  align-items: center;
  position: relative;
  margin-top: 35px;
}
@media (min-width: 1024px) {
  .p-roomList__controlls {
    margin-top: 56px;
  }
}
.p-roomList__controlls .swiper-pagination {
  position: relative;
  flex: 1;
  width: auto !important;
  height: 2px !important;
  background: #c9c9c9;
}
.p-roomList__controlls .swiper-pagination-progressbar-fill {
  background: #2a9cc2 !important;
}
.p-roomList__controlls .swiper-button-next,
.p-roomList__controlls .swiper-button-prev {
  position: relative;
  width: 14px;
  height: 24px;
  margin-top: 0;
  right: auto;
  left: auto;
}
.p-roomList__controlls .swiper-button-next::after,
.p-roomList__controlls .swiper-button-prev::after {
  width: 100%;
  height: 100%;
  content: "";
  background: url(../img/common/roomlist_arrow.svg) no-repeat center/contain;
}
@media (any-hover: hover) {
  .p-roomList__controlls .swiper-button-next,
  .p-roomList__controlls .swiper-button-prev {
    transition: 0.5s opacity;
  }
  .p-roomList__controlls .swiper-button-next:hover,
  .p-roomList__controlls .swiper-button-prev:hover {
    opacity: 0.7;
  }
}
.p-roomList__controlls .swiper-button-prev::after {
  transform: scale(-1, 1);
}

/* consent
-------------------------------------- */
.p-consent__inner {
  display: flex;
  gap: 25px;
  padding: 20px;
  border: 1px solid;
}
@media (max-width: 1023px) {
  .p-consent__inner {
    flex-direction: column;
  }
}
@media (min-width: 768px) {
  .p-consent__inner {
    padding: 25px;
  }
}
@media (min-width: 1024px) {
  .p-consent__inner {
    gap: 30px 70px;
    flex-wrap: wrap;
    padding: 40px;
  }
}

.p-consent__title {
  width: 100%;
  text-align: center;
}

@media (min-width: 1024px) {
  .p-consent__main {
    flex: 1;
  }
}
.p-consent__main .text {
  line-height: 1.8;
}
@media (min-width: 1024px) {
  .p-consent__main .text {
    line-height: 2.25;
  }
}
.p-consent__main .notice {
  margin-top: 0.8em;
  font-size: 12px;
  font-size: 0.75rem;
}
.p-consent__main .btn {
  margin-top: 20px;
  text-align: center;
}
@media (min-width: 1024px) {
  .p-consent__main .btn {
    margin-top: 35px;
    text-align: right;
  }
}

@media (min-width: 1024px) {
  .p-consent__img {
    width: 30.3%;
  }
}
.p-consent__img img {
  width: 100%;
}

.p-sticky-link {
  overflow: visible;
}
.p-sticky-link .p-content-sticky-link + .p-content-sticky-link .p-content-link-block {
  padding-top: 45px;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link + .p-content-sticky-link .p-content-link-block {
    padding-top: 60px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block {
  position: relative;
  display: flex;
}
@media (max-width: 1023px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block {
    flex-direction: column;
    gap: 40px;
  }
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block {
    gap: 60px;
    align-items: flex-start;
  }
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text {
    position: sticky;
    top: 8vw;
    left: 0;
    width: 400px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text .caption-text {
  margin-top: 10px;
  font-weight: 300;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text .caption-text {
    margin-top: 10px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text .category-content {
  margin-top: 10px;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text .category-content {
    margin-top: 10px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text p {
  margin-top: 20px;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-text p {
    margin-top: 30px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img {
  position: relative;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a {
  display: block;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a + a {
  margin-top: 20px;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a + a {
    margin-top: 40px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-img-block {
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-img-block::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background: rgba(80, 80, 80, 0.1);
  transition: 0.5s background-color;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-img-block {
    max-width: 740px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-img-block img {
  width: 100%;
  transition: 0.5s transform;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-btn-block {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-end;
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 3;
  padding: 20px;
}
@media (min-width: 1024px) {
  .p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-btn-block {
    padding: 40px;
  }
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img .p-sticky-link-btn-block .p-sticky-link-btn-text {
  display: flex;
  line-height: 1.2;
  flex-direction: column;
  gap: 5px;
  color: #fff;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a:hover .p-sticky-link-img-block::before {
  background: rgba(80, 80, 80, 0.4);
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a:hover .p-sticky-link-img-block img {
  transform: scale(1.06);
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a:hover .btn-arw::before {
  background: #fff;
}
.p-sticky-link .p-content-sticky-link .p-sticky-link-block .p-sticky-link-img a:hover .btn-arw::after {
  background: #505050;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}

/* timetable
-------------------------------------- */
.p-timetable.p-timetable-flex {
  display: flex;
  gap: 30px;
  justify-content: center;
}
@media (max-width: 767px) {
  .p-timetable.p-timetable-flex {
    flex-direction: column;
    align-items: center;
  }
}
.p-timetable table {
  width: 100%;
  max-width: 500px;
  border-collapse: collapse;
}
.p-timetable tr {
  font-weight: 300;
  border-bottom: 1px solid #e8e8e8;
}
.p-timetable .p-timetable-attention {
  background-color: #e3ded9;
  padding: 6px 10px;
  text-align: left;
}
.p-timetable th, .p-timetable td {
  padding: 1em;
  text-align: center;
  font-weight: 300;
}
.p-timetable th {
  background-color: #e8e8e8;
}

/* 囲みボックスp-attention-box
-------------------------------------- */
.p-attention-box {
  padding-inline: 20px;
  padding-block: 20px;
  border: 1px solid #e8e8e8;
}
@media (min-width: 1024px) {
  .p-attention-box {
    padding-inline: 40px;
    padding-block: 40px;
  }
}

/* wave
-------------------------------------- */
.p-nami-left01-wave01 {
  position: absolute;
  max-width: 500px;
  overflow: hidden;
  width: 2000px;
  height: 85px;
  left: clamp(-300px, 24.59vw - 501.8px, -125px);
  bottom: 18%;
}
@media (min-width: 1024px) {
  .p-nami-left01-wave01 {
    left: clamp(-250px, -0.5vw, -10px);
    bottom: 10%;
  }
}
.p-nami-left01-wave01 img {
  width: 2000px;
  max-width: max-content;
  animation: wave 16s linear 0s infinite;
  position: absolute;
  z-index: 5;
  top: 0;
  left: -1000px;
}

.p-nami-left01-wave02 {
  position: absolute;
  max-width: 250px;
  overflow: hidden;
  width: 1000px;
  height: 85px;
  left: clamp(-150px, 24.59vw - 501.8px, -55px);
  bottom: 18%;
}
@media (min-width: 1024px) {
  .p-nami-left01-wave02 {
    bottom: 10%;
    left: clamp(-50px, 24.59vw - 501.8px, -10px);
  }
}
.p-nami-left01-wave02 img {
  width: 1000px;
  max-width: max-content;
  animation: subwave 12s linear 0s infinite;
  position: absolute;
  z-index: 5;
  top: 0;
  left: -500px;
}

.p-nami-right01-wave01 {
  position: absolute;
  max-width: 500px;
  overflow: hidden;
  width: 2000px;
  height: 85px;
  top: 20%;
  right: clamp(-300px, 24.59vw - 501.8px, -125px);
}
@media (min-width: 1024px) {
  .p-nami-right01-wave01 {
    right: clamp(-250px, -0.5vw, -10px);
    top: 45%;
  }
}
.p-nami-right01-wave01 img {
  width: 2000px;
  max-width: max-content;
  animation: wave-reverse 16s linear 0s infinite;
  position: absolute;
  z-index: 5;
  top: 0;
  left: -500px;
}

.p-nami-right01-wave02 {
  position: absolute;
  max-width: 250px;
  overflow: hidden;
  width: 1000px;
  height: 85px;
  top: 20%;
  right: clamp(-150px, 24.59vw - 501.8px, -55px);
}
@media (min-width: 1024px) {
  .p-nami-right01-wave02 {
    right: clamp(-250px, -0.5vw, -10px);
    top: 43%;
  }
}
.p-nami-right01-wave02 img {
  width: 1000px;
  max-width: max-content;
  animation: subwave-reverse 12s linear 0s infinite;
  position: absolute;
  z-index: 5;
  left: -250px;
}

.p-nami-left02-wave01 {
  position: absolute;
  max-width: 500px;
  overflow: hidden;
  width: 2000px;
  height: 85px;
  left: clamp(-250px, 24.59vw - 501.8px, -100px);
}
@media (max-width: 1023px) {
  .p-nami-left02-wave01 {
    left: clamp(-300px, 24.59vw - 501.8px, -125px);
  }
}
.p-nami-left02-wave01 img {
  width: 2000px;
  max-width: max-content;
  animation: wave 16s linear 0s infinite;
  position: absolute;
  z-index: 5;
  top: 0;
  left: -1000px;
}

.p-nami-left02-wave02 {
  position: absolute;
  max-width: 250px;
  overflow: hidden;
  width: 1000px;
  height: 85px;
  left: clamp(-50px, 24.59vw - 501.8px, -10px);
}
.p-nami-left02-wave02 img {
  width: 1000px;
  max-width: max-content;
  animation: subwave 12s linear 0s infinite;
  position: absolute;
  z-index: 5;
  top: 0;
  left: -500px;
}

.p-nami-block {
  position: relative;
}

@keyframes subwave {
  100% {
    transform: translateX(500px) translateZ(0);
  }
}
@keyframes wave {
  100% {
    transform: translateX(1000px) translateZ(0);
  }
}
@keyframes subwave-reverse {
  100% {
    transform: translateX(-500px) translateZ(0);
  }
}
@keyframes wave-reverse {
  100% {
    transform: translateX(-1000px) translateZ(0);
  }
}
.nami-mask {
  --mask-position: center center;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/common/mask-nami.png);
  mask-image: url(../img/common/mask-nami.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.nami-mask02 {
  --mask-position: center center;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/common/mask-nami02.png);
  mask-image: url(../img/common/mask-nami02.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.nami-mask-reverse {
  --mask-position: center center;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/common/mask-nami-reverse.png);
  mask-image: url(../img/common/mask-nami-reverse.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.nami-mask02-reverse {
  --mask-position: center center;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/common/mask-nami02-reverse.png);
  mask-image: url(../img/common/mask-nami02-reverse.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* format
-------------------------------------- */
.p-bg-gray01 {
  background-color: #e3ded9;
}

.p-bg-gray02 {
  background-color: #b3b3b3;
}

.p-border-bottom-gray02 {
  border-bottom: 1px solid #b3b3b3;
}

.p-border-bottom-color02 {
  border-bottom: 1px solid #505050;
}

.p-radius20 {
  border-radius: 20px;
  overflow: hidden;
}

/* 色変更
-------------------------------------- */
.color-before span {
  position: relative;
  display: inline-block;
  -webkit-text-fill-color: transparent;
}
.color-before span::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  white-space: nowrap;
  -webkit-text-fill-color: #e8e8e8;
  opacity: 1;
  transition: opacity 1s ease-in-out;
}
.color-before span::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  white-space: nowrap;
  background: linear-gradient(to right, #2a9cc2 0%, #2a9cc2 50%, #004977 100%);
  background-size: 200% auto;
  background-position: 0% 50%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.color-before.color-after span::before {
  opacity: 0;
}
.color-before.color-after span::after {
  opacity: 1;
  animation: gradientShift 8s ease-in-out infinite;
}

@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 70% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
.loop-swiper {
  width: 100%;
  overflow: hidden;
}
.loop-swiper .swiper {
  overflow: visible;
}
.loop-swiper .swiper-slide {
  width: clamp(150px, 25vw, 350px);
}
.loop-swiper .swiper-slide img {
  width: 100%;
  display: block;
}
.loop-swiper .swiper-slide:nth-child(odd) {
  margin-top: 10px;
}
.loop-swiper .swiper-wrapper {
  transition-timing-function: linear !important;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* グレー背景エリア
-------------------------------------- */
.p-right-gray {
  padding-top: 80px;
  padding-bottom: 60px;
  position: relative;
  margin-top: -40px;
}
@media (min-width: 1024px) {
  .p-right-gray {
    padding-top: 150px;
    padding-bottom: 100px;
    margin-top: -65px;
  }
}
.p-right-gray::before {
  content: "";
  position: absolute;
  inset: 0;
  width: calc(100vw - (100vw - 1200px) / 2 + 100px);
  left: auto;
  background-color: #f0f0f0;
  z-index: -1;
}

.p-left-gray {
  padding-top: 80px;
  padding-bottom: 60px;
  position: relative;
  margin-top: -40px;
}
@media (min-width: 1024px) {
  .p-left-gray {
    padding-top: 150px;
    padding-bottom: 100px;
    margin-top: -65px;
  }
}
.p-left-gray::before {
  content: "";
  position: absolute;
  inset: 0;
  width: calc(100vw - (100vw - 1200px) / 2 + 100px);
  background-color: #f0f0f0;
  z-index: -1;
}

/* =========================================================
 home
========================================================= */
/* =========================================================
 Kv
========================================================= */
.kv {
  position: relative;
  height: 100svh;
  min-height: 750px;
}
.kv .lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}

/* =========================================================
 home-bg02
========================================================= */
.home-bg02 {
  position: relative;
  height: 100svh;
  min-height: 750px;
  margin-top: -400px;
}
.home-bg02 .lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.content-scrpll-tab {
  display: none;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .content-scrpll-tab {
    display: block;
  }
}

#index-kv #video04::after {
  content: none !important;
}

/* =========================================================
 home-bg03
========================================================= */
.home-bg03 {
  position: relative;
  min-height: 250px;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .home-bg03 {
    min-height: 1000px;
  }
}
.home-bg03 .lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.bg03-text {
  padding-bottom: 100px;
  padding-top: 50px;
}
@media (min-width: 1024px) {
  .bg03-text {
    padding-bottom: 200px;
    padding-top: 100px;
  }
}

.second-view {
  position: relative;
  overflow: visible;
}
.second-view .second-sticky {
  position: sticky;
  top: 25%;
}

/* bg
========================================================= */
.top {
  position: relative;
}

.bg {
  position: sticky;
  bottom: 0;
  width: 100%;
  height: 100lvh;
  margin-top: -100lvh;
  z-index: -1;
}
.bg .is-set-mask {
  --mask-position: 30% -30%;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/home/mask-vert.webp);
  mask-image: url(../img/home/mask-vert.webp);
  -webkit-mask-size: 800% 300%;
  mask-size: 800% 300%;
  -webkit-mask-position: var(--mask-position);
  mask-position: var(--mask-position);
  visibility: hidden;
  transition: opacity 0.4s ease;
  will-change: opacity, -webkit-mask-image;
}
@media (min-width: 769px) {
  .bg .is-set-mask {
    -webkit-mask-image: url(../img/home/mask.webp);
    mask-image: url(../img/home/mask.webp);
  }
}
.bg .is-set-mask.is-active {
  visibility: inherit;
}
.bg .is-set-mask.is-video-water {
  position: absolute;
  z-index: 2;
}
.bg .is-fade-switch {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}
.bg .is-fade-switch.is-active {
  opacity: 1;
  visibility: inherit;
}
.bg .is-fade-switch.is-video-water {
  position: absolute;
  z-index: 2;
}
.bg .video {
  width: 100%;
  height: 100%;
  height: 104.5lvh;
  top: 0;
  left: 0;
}
.bg .video .swiper {
  height: 104.5lvh;
}
.bg .video .swiper img {
  width: 100%;
  object-fit: cover;
  height: 100% !important;
}
.bg .video video {
  display: block;
  width: 100%;
  height: 100%;
  height: 104.5lvh;
  object-fit: cover;
}
.bg .video figure {
  width: 100%;
  height: 100%;
}
.bg .video figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bg .bg-white {
  background-color: #fff;
}
.bg .first-video::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  background-color: rgba(0, 0, 0, 0.15);
}
.bg .second-video::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  background-color: rgba(0, 153, 180, 0.5);
}
.bg .third-video::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  background-color: rgba(0, 0, 0, 0.15);
}

/* =========================================================
#home-all
========================================================= */
#home-all {
  padding-top: 250px;
}
@media (min-width: 1024px) {
  #home-all {
    padding-top: 350px;
  }
}

/* ニュース
========================================================= */
.home-news li {
  padding: 10px;
  border-top: 1px solid #e3ded9;
  display: flex;
  gap: 20px;
}
.home-news li > a {
  display: block;
  width: 100%;
}
.home-news li:last-child {
  border-bottom: 1px solid #e3ded9;
}
.home-news li .cate {
  margin-right: 10px;
}
.home-news li .date {
  margin-right: 10px;
}

/* オールインクルーシブ
========================================================= */
.all-card {
  display: flex;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 50px;
  /* 1024px以上: 6列 */
}
@media (min-width: 1024px) {
  .all-card {
    margin-top: 80px;
  }
  .all-card .all-card-box {
    width: calc((100% - 100px) / 6);
  }
}
.all-card {
  /* 480px〜1023px: 4列 */
}
@media (min-width: 480px) and (max-width: 1023px) {
  .all-card .all-card-box {
    width: calc((100% - 60px) / 4);
  }
}
.all-card {
  /* 479px以下: 3列 */
}
@media (max-width: 479px) {
  .all-card {
    gap: 10px;
  }
  .all-card .all-card-box {
    width: calc((100% - 20px) / 3);
  }
}
.all-card .all-card-box {
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.all-card .all-card-box::before {
  transition: background 0.5s ease;
  background: rgba(0, 0, 0, 0);
  content: "";
  position: absolute;
  inset: 0;
}
.all-card .all-card-box .index-card-test {
  position: absolute;
  z-index: 1;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  text-align: center;
  color: #fff;
  opacity: 0;
  transition: 0.5s ease;
}
.all-card .all-card-box:hover::before {
  background: rgba(0, 0, 0, 0.85);
}
.all-card .all-card-box:hover .index-card-test {
  opacity: 1;
}

/* home-sticky
-------------------------------------- */
.home-sticky {
  position: relative;
}

.bg-white-sticky {
  position: relative;
  background-color: #fff;
  z-index: 2;
  padding-top: 50px;
}
@media (min-width: 1024px) {
  .bg-white-sticky {
    padding-top: 200px;
  }
}

.bg-white-radius {
  background-color: #fff;
  border-radius: 50%;
  position: absolute;
  width: 125vw;
  height: 200px;
  left: 50%;
  top: -50px;
  transform: translate(-50%);
  z-index: 2;
}
@media (min-width: 1024px) {
  .bg-white-radius {
    height: 400px;
    top: -100px;
  }
}

/* home-room
-------------------------------------- */
.home-room {
  position: relative;
  top: 0;
  height: 100%;
}

.home-room-bg {
  position: sticky;
  top: 0;
  height: 100%;
  height: 100vh;
  height: 100lvh;
  z-index: 1;
}
@media (max-width: 1023px) {
  .home-room-bg {
    height: 104.5lvh;
  }
}
.home-room-bg img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.home-room-scroll-area {
  padding-top: 100svh;
}

.js-room-text {
  opacity: 0;
  transition: opacity 1s ease;
  padding-bottom: 200px;
}
@media (min-width: 1024px) {
  .js-room-text {
    padding-bottom: 400px;
  }
}
.js-room-text.is-visible {
  opacity: 1;
}

.circle-room {
  clip-path: circle(clamp(0px, 25.415vw, 340px) at 50% 50%);
  transition: clip-path 0.1s linear;
  /* 滑らかな遷移 */
}
@media (min-width: 1024px) {
  .circle-room {
    clip-path: circle(260px at 50% 50%);
  }
}

.home-room-text {
  position: relative;
  z-index: 2;
  /* テキストが背景の上に表示されるように */
  display: block;
  min-height: 750px;
  display: flex;
  flex-direction: column;
  gap: 150px;
  padding-bottom: 200px;
}
.home-room-text .home-under-room {
  max-width: 350px;
  margin-left: auto;
  width: 100%;
}
.home-room-text .home-under-room p {
  color: #fff;
  text-align: right;
}
@media (min-width: 1024px) {
  .home-room-text .home-under-room p {
    text-align: left;
  }
}
@media (max-width: 1023px) {
  .home-room-text .home-under-room .c-primaryBtn {
    margin-left: auto;
    display: block;
  }
}

/* home-dining
-------------------------------------- */
.sticky-mask {
  --mask-position: center center;
  will-change: mask-position;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/home/sticky-mask.png);
  mask-image: url(../img/home/sticky-mask.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
.sticky-mask video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sticky-mask-sp {
  --mask-position: center center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/home/sticky-mask-sp.png);
  mask-image: url(../img/home/sticky-mask-sp.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  z-index: -2;
  position: relative;
  margin-left: 20px;
  margin-right: 20px;
  height: clamp(50px, 84.7457627119vw, 650px);
}
.sticky-mask-sp img {
  border-radius: 30%;
}
.sticky-mask-sp video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-dining {
  position: relative;
  z-index: 5;
  display: flex;
  gap: 550px;
  padding-right: 0px;
  gap: clamp(125px, 27.5vw, 550px);
}
@media (max-width: 767px) {
  .home-dining {
    display: block;
  }
}
@media screen and (max-width: 1600px) {
  .home-dining {
    gap: clamp(125px, 34.375vw, 550px);
  }
}
@media (min-width: 1024px) {
  .home-dining {
    padding-right: 70px;
  }
}
@media (min-width: 768px) {
  .home-dining {
    margin-top: clamp(-545px, -27.25vw, -50px);
  }
}
.home-dining .p-nami-right01-wave01 {
  top: -80px;
  z-index: -1;
}
@media (max-width: 1365px) {
  .home-dining .p-nami-right01-wave01 {
    top: 0;
  }
}
@media (max-width: 767px) {
  .home-dining .p-nami-right01-wave01 {
    top: auto;
    bottom: 250px;
  }
}
.home-dining .p-nami-right01-wave02 {
  top: -80px;
  z-index: -1;
}
@media (max-width: 1365px) {
  .home-dining .p-nami-right01-wave02 {
    top: 0;
  }
}
@media (max-width: 767px) {
  .home-dining .p-nami-right01-wave02 {
    top: auto;
    bottom: 250px;
  }
}
.home-dining .p-nami-left01-wave01 {
  top: 40%;
  z-index: -1;
  bottom: 0;
}
@media screen and (max-width: 1600px) {
  .home-dining .p-nami-left01-wave01 {
    top: 60%;
  }
}
@media (max-width: 767px) {
  .home-dining .p-nami-left01-wave01 {
    top: 220px;
    top: clamp(200px, 28.6831812256vw, 220px);
  }
}
.home-dining .p-nami-left01-wave02 {
  top: 40%;
  z-index: -1;
}
@media screen and (max-width: 1600px) {
  .home-dining .p-nami-left01-wave02 {
    top: 60%;
  }
}
@media (max-width: 767px) {
  .home-dining .p-nami-left01-wave02 {
    top: 220px;
    top: clamp(200px, 28.6831812256vw, 220px);
  }
}
.home-dining .dining-left {
  max-width: 660px;
  max-width: clamp(125px, 35.4838709677vw, 660px);
  width: 100%;
}
@media (max-width: 767px) {
  .home-dining .dining-left {
    width: auto;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    max-width: 100%;
  }
}
.home-dining .dinner-left-flex {
  display: flex;
  gap: 130px;
  gap: clamp(50px, 5.376344086vw, 100px);
}
@media screen and (max-width: 1600px) {
  .home-dining .dinner-left-flex {
    flex-direction: column;
  }
}
@media (max-width: 767px) {
  .home-dining .dinner-left-flex {
    padding-left: 4%;
  }
}
@media (max-width: 767px) {
  .home-dining .dinner-left-flex .home-title {
    padding-bottom: clamp(50px, 13.037809648vw, 100px);
  }
}
.home-dining .dinner-left-flex .home-title .sub {
  background: linear-gradient(to right, #2a9cc2 0%, #2a9cc2 50%, #004977 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.home-dining .home-dining-sp-img {
  margin-top: clamp(-50px, -6.518904824vw, -25px);
}
.home-dining .left-menu01-img {
  width: 220px;
  width: clamp(50px, 11.8279569892vw, 220px);
}
.home-dining .left-menu02-img {
  width: 350px;
  width: clamp(140px, 45.6323337679vw, 350px);
}
@media (max-width: 767px) {
  .home-dining .left-menu02-img {
    margin-left: auto;
  }
}
@media (min-width: 768px) {
  .home-dining .left-menu02-img {
    width: 350px;
    width: clamp(50px, 18.8172043011vw, 350px);
    margin-left: clamp(50px, 8.3333333333vw, 155px);
    margin-top: clamp(0px, 5.6451612903vw, 105px);
  }
}
.home-dining .dining-right {
  margin-top: -100px;
  margin-top: clamp(-100px, -13.037809648vw, -25px);
}
@media (min-width: 768px) {
  .home-dining .dining-right {
    max-width: 660px;
    max-width: clamp(125px, 35.4838709677vw, 660px);
    width: 100%;
    margin-top: 0;
  }
}
.home-dining .right-menu01-img {
  width: 230px;
  width: clamp(115px, 29.9869621904vw, 230px);
}
@media (min-width: 768px) {
  .home-dining .right-menu01-img {
    width: 250px;
    width: clamp(50px, 13.4408602151vw, 250px);
    margin-left: clamp(50px, 10.5376344086vw, 196px);
  }
}
.home-dining .right-menu02-img {
  width: 220px;
  width: clamp(50px, 11.8279569892vw, 220px);
  margin-top: clamp(0px, 5.6451612903vw, 105px);
}
.home-dining .dinner-right-flex {
  display: flex;
  gap: 130px;
  gap: clamp(50px, 5.376344086vw, 100px);
  margin-top: clamp(0px, 5.6451612903vw, 105px);
}
@media screen and (max-width: 1600px) {
  .home-dining .dinner-right-flex {
    flex-direction: column;
  }
}
.home-dining .dinner-right-text {
  width: 265px;
}
@media (max-width: 767px) {
  .home-dining .dinner-right-text {
    width: 92%;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (max-width: 767px) {
  .home-dining .dinner-right-text .c-inner {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .home-dining .dinner-right-text .c-primaryBtn {
    display: block;
  }
}

.home-facility {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: row-reverse;
  gap: 550px;
  padding-right: 70px;
  gap: clamp(125px, 27.5vw, 550px);
  margin-top: 150px;
}
@media (max-width: 1023px) {
  .home-facility {
    padding-right: 0;
  }
}
@media (max-width: 767px) {
  .home-facility {
    display: block;
  }
}
@media screen and (max-width: 1600px) {
  .home-facility {
    gap: clamp(125px, 28.125vw, 450px);
  }
}
@media (min-width: 1024px) {
  .home-facility {
    padding-right: 70px;
    margin-top: 300px;
  }
}
.home-facility .p-nami-right01-wave01 {
  top: -80px;
  z-index: -1;
}
@media (max-width: 1365px) {
  .home-facility .p-nami-right01-wave01 {
    top: 0;
  }
}
@media (max-width: 767px) {
  .home-facility .p-nami-right01-wave01 {
    top: auto;
    bottom: 250px;
  }
}
.home-facility .p-nami-right01-wave02 {
  top: -80px;
  z-index: -1;
}
@media (max-width: 1365px) {
  .home-facility .p-nami-right01-wave02 {
    top: 0;
  }
}
@media (max-width: 767px) {
  .home-facility .p-nami-right01-wave02 {
    top: auto;
    bottom: 250px;
  }
}
.home-facility .p-nami-left01-wave01 {
  top: 40%;
  z-index: -1;
  bottom: 0;
}
@media screen and (max-width: 1600px) {
  .home-facility .p-nami-left01-wave01 {
    top: 60%;
  }
}
@media (max-width: 767px) {
  .home-facility .p-nami-left01-wave01 {
    top: 220px;
    top: clamp(200px, 28.6831812256vw, 220px);
  }
}
.home-facility .p-nami-left01-wave02 {
  top: 40%;
  z-index: -1;
}
@media screen and (max-width: 1600px) {
  .home-facility .p-nami-left01-wave02 {
    top: 60%;
  }
}
@media (max-width: 767px) {
  .home-facility .p-nami-left01-wave02 {
    top: 220px;
    top: clamp(200px, 28.6831812256vw, 220px);
  }
}
.home-facility .fc-left {
  max-width: 660px;
  max-width: clamp(125px, 36.5591397849vw, 680px);
  width: 100%;
}
@media (max-width: 1023px) {
  .home-facility .fc-left {
    max-width: 100%;
  }
}
.home-facility .fc-left-flex {
  display: flex;
  gap: 130px;
  gap: clamp(50px, 5.376344086vw, 100px);
}
@media screen and (max-width: 1600px) {
  .home-facility .fc-left-flex {
    flex-direction: column-reverse;
  }
}
@media (max-width: 1023px) {
  .home-facility .fc-left-flex {
    flex-direction: column-reverse;
  }
}
.home-facility .fc-left-flex .home-title {
  display: inline-block;
}
@media (max-width: 767px) {
  .home-facility .fc-left-flex .home-title {
    padding-bottom: clamp(50px, 13.037809648vw, 100px);
  }
}
.home-facility .fc-left-flex .home-title .home-title-inner {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
  gap: 10px;
}
@media (min-width: 521px) {
  .home-facility .fc-left-flex .home-title .home-title-inner {
    display: inline-flex;
    gap: 0px;
  }
}
.home-facility .fc-left-flex .home-title .home-title-inner .sub {
  margin-top: 10px;
  align-self: flex-end;
  text-align: right;
  background: linear-gradient(to right, #2a9cc2 0%, #2a9cc2 50%, #004977 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (min-width: 1024px) {
  .home-facility .fc-left-flex .home-title .home-title-inner .sub {
    margin-top: 30px;
  }
}
@media (max-width: 767px) {
  .home-facility .fc-left-flex .home-title .home-title-inner .sub {
    align-self: flex-start;
    text-align: left;
  }
}
.home-facility .home-facility-sp-img {
  margin-top: clamp(-50px, -6.518904824vw, -25px);
}
.home-facility .left-menu01-img {
  width: 220px;
  width: clamp(50px, 11.8279569892vw, 220px);
  margin-left: clamp(50px, 10.5376344086vw, 196px);
}
.home-facility .left-menu02-img {
  width: 230px;
  width: clamp(115px, 29.9869621904vw, 230px);
}
@media (min-width: 768px) {
  .home-facility .left-menu02-img {
    width: 350px;
    width: clamp(50px, 18.8172043011vw, 350px);
    margin-left: clamp(50px, 8.3333333333vw, 155px);
    margin-top: clamp(0px, 5.6451612903vw, 105px);
  }
}
.home-facility .fc-right {
  margin-top: -100px;
  margin-top: clamp(-100px, -13.037809648vw, -25px);
}
@media (min-width: 768px) {
  .home-facility .fc-right {
    max-width: 660px;
    max-width: clamp(125px, 35.4838709677vw, 660px);
    width: 100%;
    margin-top: 0;
  }
}
@media (max-width: 767px) {
  .home-facility .fc-right {
    width: auto;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    max-width: 100%;
    padding-left: 4%;
  }
}
.home-facility .right-menu01-img {
  width: 230px;
  width: clamp(115px, 29.9869621904vw, 230px);
}
@media (min-width: 768px) {
  .home-facility .right-menu01-img {
    width: 220px;
    width: clamp(50px, 11.8279569892vw, 220px);
  }
}
.home-facility .right-menu02-img {
  width: 350px;
  width: clamp(140px, 45.6323337679vw, 350px);
  margin-left: auto;
}
@media (min-width: 768px) {
  .home-facility .right-menu02-img {
    width: 350px;
    width: clamp(50px, 18.8172043011vw, 350px);
    margin-left: clamp(50px, 10.2150537634vw, 190px);
    margin-top: clamp(0px, 5.6451612903vw, 105px);
  }
}
.home-facility .fc-right-flex {
  display: flex;
  gap: 130px;
  gap: clamp(0px, 1.6129032258vw, 30px);
  margin-top: clamp(0px, 5.6451612903vw, 105px);
}
@media screen and (max-width: 1600px) {
  .home-facility .fc-right-flex {
    flex-direction: column-reverse;
  }
}
@media (max-width: 1365px) {
  .home-facility .fc-right-flex {
    padding-left: 20px;
  }
}
@media (max-width: 767px) {
  .home-facility .fc-right-flex {
    padding-left: 0px;
    flex-direction: column;
    margin-top: -100px;
    margin-top: clamp(-100px, -13.037809648vw, -25px);
    gap: 0;
  }
}
.home-facility .fc-right-text {
  width: 300px;
}
@media (max-width: 767px) {
  .home-facility .fc-right-text {
    width: 92%;
    margin-right: auto;
    margin-left: auto;
    margin-top: clamp(0px, 5.6451612903vw, 105px);
  }
}
@media (max-width: 767px) {
  .home-facility .fc-right-text .c-inner {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .home-facility .fc-right-text .c-primaryBtn {
    display: block;
  }
}
.home-facility .home-fc-sp-img {
  margin-top: clamp(-50px, -6.518904824vw, -5px);
}

.home-dining-img {
  position: sticky;
  top: 20%;
  aspect-ratio: 500/500;
  z-index: 5;
  width: clamp(50px, 25vw, 500px);
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  transition: opacity 0.2s ease-in;
}

.home-facility-img {
  opacity: 0;
}

.home-facility-img.is-visible {
  opacity: 1;
}

.dining-mask {
  opacity: 1;
  transition: opacity 0.8s ease;
}

.fc-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.8s ease;
}

.fc-mask.is-visible {
  opacity: 1;
}

.deco-left {
  position: absolute;
  left: 0px;
  top: 40%;
  z-index: -1;
}
@media screen and (max-width: 1600px) {
  .deco-left {
    top: 60%;
  }
}
@media (max-width: 767px) {
  .deco-left {
    top: 220px;
    top: clamp(200px, 28.6831812256vw, 220px);
  }
}
.deco-left > span {
  display: block;
}
.deco-left .deco-left01 {
  position: absolute;
  top: -20px;
  width: clamp(50px, 14.3125vw, 229px);
}
@media (max-width: 767px) {
  .deco-left .deco-left01 {
    width: clamp(50px, 29.8565840939vw, 229px);
  }
}
.deco-left .deco-left02 {
  width: clamp(75px, 31.85vw, 637px);
}
@media (max-width: 767px) {
  .deco-left .deco-left02 {
    width: clamp(50px, 58.4093872229vw, 448px);
  }
}

.deco-right {
  position: absolute;
  right: 0px;
  top: -80px;
  z-index: -1;
}
@media (max-width: 1365px) {
  .deco-right {
    top: 0;
  }
}
@media (max-width: 767px) {
  .deco-right {
    top: auto;
    bottom: 250px;
  }
}
.deco-right > span {
  display: block;
}
.deco-right .deco-right01 {
  position: absolute;
  right: 0;
  width: clamp(50px, 14.3125vw, 229px);
}
@media (max-width: 767px) {
  .deco-right .deco-right01 {
    width: clamp(50px, 29.8565840939vw, 229px);
  }
}
.deco-right .deco-right02 {
  width: clamp(50px, 31.85vw, 637px);
}
@media (max-width: 767px) {
  .deco-right .deco-right02 {
    width: clamp(50px, 58.4093872229vw, 448px);
  }
}

/* stalker
-------------------------------------- */
.cluster-wrap {
  background: #fff;
  width: 88%;
  margin-left: auto;
  margin-right: auto;
  overflow: visible;
}
@media (min-width: 1024px) {
  .cluster-wrap {
    width: 92%;
  }
}

.columns {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 15px;
  transition: all 0.8s ease;
}

/* 縦列 */
.column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 15px;
  transition: transform 0.8s ease, opacity 0.8s ease;
}

/* 箱 */
.all-incrusive-item {
  color: #505050;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
  transition: transform 0.8s ease, opacity 0.8s ease;
  position: relative;
  overflow: hidden;
}
.all-incrusive-item::before {
  transition: background 0.5s ease;
  background: rgba(0, 0, 0, 0.5);
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
}
@media (min-width: 1024px) {
  .all-incrusive-item::before {
    background: rgba(0, 0, 0, 0);
  }
}
.all-incrusive-item .all-incrusive-text {
  transition: opacity 0.8s ease;
  position: absolute;
  z-index: 2;
  top: 0;
  padding: 20px;
  display: flex;
  height: 100%;
  width: 100%;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 1024px) {
  .all-incrusive-item .all-incrusive-text {
    opacity: 0;
  }
}
.all-incrusive-item .all-incrusive-text .u-fs-medium {
  font-weight: 700;
  color: #fff;
}
.all-incrusive-item .all-incrusive-text h3 {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.all-incrusive-item .all-incrusive-text p {
  display: flex;
  font-size: 14px;
  justify-content: flex-end;
}
.all-incrusive-item .all-incrusive-text p .cate {
  background-color: #505050;
  padding: 6px;
  border-radius: 20px;
  color: #FFF;
  line-height: 1;
}
@media (min-width: 1024px) {
  .all-incrusive-item:hover::before {
    background: rgba(0, 0, 0, 0.5);
  }
  .all-incrusive-item:hover .all-incrusive-text {
    opacity: 1;
  }
}

.p-fixed-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  position: absolute;
  bottom: 20px;
  left: calc(50% - 11px);
  z-index: 3;
  width: 22px;
  opacity: 0;
  transition: opacity 0.2s;
}
@media (min-width: 1024px) {
  .p-fixed-scroll {
    bottom: 30px;
  }
}
.p-fixed-scroll.scroll-pointer {
  position: fixed;
  left: 50px;
  opacity: 1;
}
@media (min-width: 1024px) {
  .p-fixed-scroll.scroll-pointer {
    left: 115px;
  }
}
.p-fixed-scroll .line {
  width: 1px;
  height: 50px;
  background: #FFF;
  animation: scroll 1.5s infinite;
}
@media (min-width: 1024px) {
  .p-fixed-scroll .line {
    height: 150px;
  }
}
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* all-incrusive-item のアニメーション */
.all-incrusive-item {
  transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.8s ease;
  will-change: transform;
}

/* スマホ用 */
/* ▼▼▼ 変更箇所：スマホ用transformにscaleを追加、transitionをバネっぽく変更 ▼▼▼ */
@media (max-width: 767px) {
  .all-incrusive-item {
    transform: translate3d(var(--init-x, 0), var(--init-y, 0), 0) rotate(var(--init-rotation, 0deg)) scale(var(--init-scale, 1));
    transition: transform 3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.8s ease;
  }
  .all-incrusive-item.is-animated {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
  }
}
/* ▲▲▲ 変更箇所ここまで ▲▲▲ */
/* タブレット・デスクトップ用 */
@media (min-width: 768px) {
  .all-incrusive-item {
    transform: translate3d(var(--init-x, 0), var(--init-y, 0), 0) rotate(var(--init-rotation, 0deg));
  }
  .all-incrusive-item.is-animated {
    transform: translate3d(0, 0, 0) rotate(0deg) !important;
  }
}
/* ===============================
   横スクロール対応（1023px以下）
   =============================== */
@media (max-width: 1023px) {
  /* cluster-wrap をスクロール容器にする */
  .cluster-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* width は既存の 88% のまま */
  }
  .cluster-wrap::-webkit-scrollbar {
    display: none;
  }
  /* js-columns：6列を横並びで保持 */
  #js-columns.is-scroll-layout {
    display: flex;
    flex-wrap: nowrap;
    /* 6列 × 列幅 + gap分を明示的に指定 */
    width: max-content;
  }
  /* column：flex:1 を無効化して固定幅 */
  #js-columns.is-scroll-layout .column {
    flex: 0 0 220px;
    width: 220px;
    min-width: 220px;
  }
}
#home-blog .p-boxGrid a {
  transition: 0.5s;
}
@media (any-hover: hover) {
  #home-blog .p-boxGrid a:hover {
    opacity: 0.6;
  }
}
#home-blog .p-box__title {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
#home-blog .p-box__title .cate {
  border: 1px solid #505050;
  width: 150px;
  text-align: center;
  font-size: 13px;
  font-size: 0.8125rem;
}
@media (max-width: 1023px) {
  #home-blog .p-box__title .cate {
    width: 130px;
  }
}
#home-blog .p-box__title .text {
  font-weight: normal;
  font-size: inherit;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
}
#home-blog .p-box__img {
  aspect-ratio: 380/240;
}
#home-blog .p-box__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.circle-wrap {
  width: 160px;
  height: 160px;
  cursor: pointer;
  flex-shrink: 0;
  z-index: 10;
  position: absolute;
  bottom: -5%;
}

.circle-wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  clip-path: circle(50% at 50% 50%);
  display: block;
  transition: filter 0.2s;
}

.circle-wrap:hover video {
  filter: brightness(0.65);
}

.home-play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  pointer-events: none;
}

.home-play-label {
  color: white;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.home-play-triangle {
  width: 40px;
  height: 40px;
  background: white;
  clip-path: polygon(18% 6%, 94% 50%, 18% 94%);
  margin-left: 6px;
  opacity: 0.92;
  transition: transform 0.15s;
}

.circle-wrap:hover .home-play-triangle {
  transform: scale(1.12);
}

.home-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

.home-modal-overlay.open {
  display: flex;
}

.home-modal-box {
  position: relative;
  width: min(90vw, 720px);
  background: #111;
  border-radius: 12px;
  overflow: hidden;
}

.home-modal-box video {
  width: 100%;
  display: block;
  max-height: 75vh;
  object-fit: contain;
  background: #000;
}

.home-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  border-radius: 50%;
  color: white;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  transition: background 0.15s;
}

.home-modal-close:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* =========================================================
 会社概要
========================================================= */
.company-contents > div {
  display: flex;
  border-bottom: 1px solid #505050;
  padding: 1.5em 0;
  gap: 10px;
}
.company-contents > div:first-child {
  border-top: 1px solid #505050;
}
@media (max-width: 520px) {
  .company-contents > div {
    flex-direction: column;
    gap: 5px;
  }
}
.company-contents > div dt {
  width: 10em;
  font-weight: 300;
}
@media (min-width: 521px) {
  .company-contents > div dt {
    text-align: center;
  }
}
.company-contents > div dd {
  width: 90%;
}
.company-contents > div dd ul li {
  width: 90%;
}
.company-contents > div dd ul li a {
  display: inline-block;
}
.company-contents > div dd ul li + li {
  margin-top: 10px;
  padding-top: 10px;
}

/* =========================================================
 プライバシーポリシー
========================================================= */
.privacy_area .p-box__title {
  margin-bottom: 0.4em;
  padding-bottom: 0.4em;
  border-bottom: 1px solid #505050;
}
@media (max-width: 959px) {
  .privacy_area .under-line.tit02 {
    padding-left: 0px;
    padding-right: 0px;
  }
}
.privacy_area .list-type {
  list-style: none;
  counter-reset: listNum;
  margin-top: 1.5em;
}
@media (min-width: 1024px) {
  .privacy_area .list-type {
    margin: 1.5rem 0 0 2rem;
  }
}
.privacy_area .list-type li {
  position: relative;
  counter-increment: listNum;
  padding-left: 2.5em;
}
.privacy_area .list-type li::before {
  content: "（" counter(listNum) "）";
  position: absolute;
  left: 0;
  top: 0;
}
.privacy_area .list-type.list-style01 li {
  padding-left: 3.5em;
}
.privacy_area .list-type.list-style01 li::before {
  content: "方針" counter(listNum) ".";
}
.privacy_area .list-type li + li {
  margin-top: 1em;
}
.privacy_area .add-text {
  margin-top: 1em;
}

.list-box {
  margin-top: 3em;
}

/* Firefox用のclip-path安定化 */
.circle-room,
.js-circle-room,
.home-room-bg,
.video,
.dining-mask,
.fc-mask {
  will-change: clip-path;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* メニューが開いている時の追加の安定化 */
body.no-scroll .circle-room,
body.no-scroll .js-circle-room,
body.no-scroll .home-room-bg,
body.no-scroll .video,
body.no-scroll .dining-mask,
body.no-scroll .fc-mask {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

/* =========================================================
 ニュースリストページ
========================================================= */
/* list
-------------------------------------- */
.news-list-flex {
  display: flex;
  flex-direction: column-reverse;
  margin-top: 20px;
  gap: 50px;
}
@media (min-width: 1024px) {
  .news-list-flex {
    margin-top: 30px;
    gap: 50px;
  }
}

.is-newsDetail {
  width: 100%;
}

.p-featuresList__archive {
  margin-left: auto;
}

.p-featuresList__list .p-newsNav {
  margin-block: 70px;
  position: relative;
  z-index: 50;
}
@media (min-width: 768px) {
  .p-featuresList__list .p-newsNav {
    margin-block: 100px 80px;
  }
}
.p-featuresList__list li {
  border-bottom: 1px solid #505050;
  position: relative;
}
.p-featuresList__list li + li .link {
  padding: 22px 0;
}
@media (min-width: 1024px) {
  .p-featuresList__list li + li .link {
    padding: 30px 0;
  }
}
.p-featuresList__list li + li .btn {
  transform: translateY(-50%);
}
.p-featuresList__list .link {
  display: flex;
  align-items: center;
  gap: 0 16px;
  padding-bottom: 22px;
}
@media (min-width: 1024px) {
  .p-featuresList__list .link {
    gap: 0 40px;
    padding-bottom: 30px;
  }
}
.p-featuresList__list .img {
  width: 200px;
  height: 160px;
}
@media (max-width: 767px) {
  .p-featuresList__list .img {
    width: clamp(120px, 26.075619296vw, 200px);
    height: clamp(80px, 20.8604954368vw, 160px);
  }
}
.p-featuresList__list .img img {
  height: 100%;
  object-fit: cover;
}
.p-featuresList__list .main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  flex: 1;
  column-gap: 10px;
  row-gap: 20px;
}
@media (max-width: 767px) {
  .p-featuresList__list .main {
    column-gap: 10px;
    row-gap: 10px;
  }
}
.p-featuresList__list .date {
  min-width: 5em;
}
@media (min-width: 768px) {
  .p-featuresList__list .date {
    min-width: 5.25em;
  }
}
.p-featuresList__list .category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 0.15em;
  border: 1px solid #505050;
  justify-content: center;
  font-size: 11px;
  font-size: 0.6875rem;
  width: 150px;
}
@media (max-width: 767px) {
  .p-featuresList__list .category {
    width: 130px;
    font-size: 10px;
    font-size: 0.625rem;
  }
}
.p-featuresList__list .category span {
  padding: 0.1em 0.9em;
  color: #505050;
  text-align: center;
}
@media (max-width: 767px) {
  .p-featuresList__list .category span {
    padding: 0.1em 0.3em;
  }
}
.p-featuresList__list .category.category-news span {
  background: #505050;
}
.p-featuresList__list .category.category-landlady span {
  background: #505050;
}
.p-featuresList__list .title {
  font-weight: normal;
  font-size: inherit;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
  width: 85%;
}
@media (max-width: 767px) {
  .p-featuresList__list .title {
    width: 75%;
  }
}
.p-featuresList__list .btn {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(calc(-50% - 16px));
}
@media (max-width: 767px) {
  .p-featuresList__list .btn {
    position: absolute;
    right: 0;
  }
}
@media (min-width: 1024px) {
  .p-featuresList__list .btn {
    transform: translateY(calc(-50% - 20px));
  }
}
@media (min-width: 768px) {
  .p-featuresList__list .btn {
    margin-left: 3em;
  }
}
.p-featuresList__list .btn .c-secondaryBtn {
  font-size: 1.5rem;
}
.p-featuresList__list .btn + .btn {
  transform: translateY(-50%);
}

.news-aside-cate {
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .news-aside-cate {
    margin-bottom: 30px;
  }
}

.news-cate-btn {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
@media (min-width: 1024px) {
  .news-cate-btn {
    gap: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  }
}

.news-aside-catelist {
  padding: 12px 16px;
  background: #e3ded9;
  position: relative;
  font-weight: 300;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .news-aside-catelist {
    margin-bottom: 20px;
  }
}

.news-aside-cate .news-cate-trigger {
  display: none;
}
.news-aside-cate {
  /* ===== 1023px以下 ===== */
}
@media (max-width: 1023px) {
  .news-aside-cate .news-cate-trigger {
    display: block;
    width: 100%;
    padding: 12px 16px;
    background: #f2f2f2;
    border: none;
    font-size: 14px;
    cursor: pointer;
    text-align: left;
    position: relative;
  }
  .news-aside-cate .news-cate-trigger::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 10px;
    height: 10px;
    background: #333;
    transform: translateY(-50%);
    clip-path: polygon(50% 75%, 0 25%, 100% 25%);
    transition: transform 0.3s ease;
  }
  .news-aside-cate .news-cate-btn {
    max-height: 0;
    overflow: hidden;
    padding-top: 0px;
    transition: padding-top 0.5s, max-height 0.5s ease;
  }
  .news-aside-cate.is-open .news-cate-btn {
    max-height: 400px;
    padding-top: 20px;
  }
  .news-aside-cate.is-open .news-cate-trigger::after {
    transform: translateY(-50%) rotate(180deg);
  }
}

/* ===== アーカイブ見出し ===== */
.public-archive {
  position: relative;
  max-width: 120px;
  margin-left: auto;
}
@media (min-width: 1024px) {
  .public-archive {
    max-width: 102px;
  }
}

.public-day {
  padding: 12px 9px;
  background: #e3ded9;
  cursor: pointer;
  position: relative;
  font-weight: 500;
  font-size: 12px;
  /* 三角（clip-path） */
}
.public-day::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 10px;
  height: 10px;
  background: #333;
  transform: translateY(-50%);
  clip-path: polygon(50% 75%, 0 25%, 100% 25%);
  transition: transform 0.3s ease;
}

.public-archive.is-open .public-choice {
  max-height: 1000px;
}
.public-archive.is-open .public-day::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ===== アコーディオン中身 ===== */
.public-choice {
  max-height: 0;
  overflow: hidden;
  background: #e8e8e8;
  transition: max-height 0.4s ease;
  position: absolute;
  width: 102px;
}
.public-choice .public-choice-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.public-choice .public-choice-list li {
  padding: 4px 10px;
  border-bottom: 1px solid #e3ded9;
}
.public-choice .public-choice-list li:last-child {
  border-bottom: none;
}
.public-choice .public-choice-list a {
  display: block;
  text-decoration: none;
  font-size: 12px;
  font-size: 0.75rem;
}
@media (min-width: 1024px) {
  .public-choice .public-choice-list a {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.c-archiveSelect {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  width: 9.375em;
}
.c-archiveSelect::after {
  position: absolute;
  right: 1em;
  width: 6px;
  height: 5px;
  background: #0d0409;
  content: "";
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.c-archiveSelect.p-newsList__archive {
  margin: 30px 0 0 auto;
}
@media (min-width: 768px) {
  .c-archiveSelect.p-newsList__archive {
    margin-top: 60px;
  }
}
.c-archiveSelect select {
  width: 100%;
  background: #f0f0f0;
  border-radius: 5px;
  padding: 0.25em 1em;
  cursor: pointer;
  color: #000;
}

.c-secondaryBtn {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-right: 1.5em;
  font-size: 15px;
  font-size: 0.9375rem;
}
.c-secondaryBtn::before, .c-secondaryBtn::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 1em;
  border-radius: 100%;
  content: "";
}
.c-secondaryBtn::before {
  background: #0d0409;
}
.c-secondaryBtn::after {
  background: #FFF;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
@media (min-width: 1024px) {
  .c-secondaryBtn {
    font-size: 16px;
    font-size: 1rem;
  }
}
.c-secondaryBtn::before, .c-secondaryBtn::after {
  right: 0;
}
@media (any-hover: hover) {
  .c-secondaryBtn {
    transition: 0.5s;
  }
  .c-secondaryBtn::before {
    transition: 0.5s;
  }
  .c-secondaryBtn:hover {
    color: #2a9cc2;
  }
  .c-secondaryBtn:hover::before {
    background: #2a9cc2;
  }
}

.p-featuresList__inner .p-pagination {
  font-weight: 400;
}
.p-featuresList__inner .p-pagination > * {
  line-height: 1.8;
  padding: 0.2em 0.8em;
}
.p-featuresList__inner .p-pagination .current {
  background: #505050 !important;
}

/* =========================================================
 ニュース詳細ページ
========================================================= */
.news-contents-box .news-caption {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 0.5em;
}
.news-contents-box .news-caption .news-category {
  border: 1px solid #505050;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-top: 0.15em;
  color: #505050;
  font-size: 11px;
  font-size: 0.6875rem;
  width: 150px;
}
@media (max-width: 767px) {
  .news-contents-box .news-caption .news-category {
    width: 130px;
    font-size: 10px;
    font-size: 0.625rem;
  }
}
.news-contents-box .img-box img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 2/1;
  max-width: 1200px;
  max-height: 600px;
}
.news-contents-box .p-box__img img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}
.news-contents-box .p-box__text a {
  border-bottom: 1px solid #505050;
  transition: border-color 0.6s ease;
}
.news-contents-box .p-box__text a:hover {
  border-color: transparent;
}
.news-contents-box #pager {
  max-width: 730px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
}
.news-contents-box #pager > li {
  display: block;
}
.news-contents-box #pager > li.pager-list {
  width: 104px;
  text-align: center;
  transition: 0.3s;
}
.news-contents-box #pager > li.pager-list:hover {
  transform: scale(0.9);
}
.news-contents-box #pager > li.pager-arrow {
  width: calc((100% - 104px) / 2);
}
.news-contents-box #pager > li.pager-arrow a {
  font-family: "Baskerville", serif;
  position: relative;
  display: inline-block;
  padding: 0 1em;
  font-size: 20px;
  /* ===== 丸＋三角 ===== */
}
.news-contents-box #pager > li.pager-arrow a::before, .news-contents-box #pager > li.pager-arrow a::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
}
.news-contents-box #pager > li.pager-arrow a {
  /* 外側の丸 */
}
.news-contents-box #pager > li.pager-arrow a::before {
  background: #0d0409;
  border-radius: 50%;
  transition: background-color 0.3s;
  z-index: 1;
}
.news-contents-box #pager > li.pager-arrow a {
  /* 内側の三角 */
}
.news-contents-box #pager > li.pager-arrow a::after {
  background: #fff;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
  transition: background-color 0.3s;
  z-index: 2;
}
.news-contents-box #pager > li.pager-arrow a {
  /* hover：色だけ変更 */
}
@media (any-hover: hover) {
  .news-contents-box #pager > li.pager-arrow a:hover::before {
    background: #2a9cc2;
  }
}
.news-contents-box #pager > li.pager-arrow.prev a {
  padding-left: 2em;
}
.news-contents-box #pager > li.pager-arrow.prev a::before, .news-contents-box #pager > li.pager-arrow.prev a::after {
  left: 0;
}
.news-contents-box #pager > li.pager-arrow.prev a::after {
  transform: translateY(-50%) rotate(180deg);
}
.news-contents-box #pager > li.pager-arrow.next {
  text-align: right;
}
.news-contents-box #pager > li.pager-arrow.next a {
  padding-right: 2em;
}
.news-contents-box #pager > li.pager-arrow.next a::before, .news-contents-box #pager > li.pager-arrow.next a::after {
  right: 0;
}
.news-contents-box p + p {
  margin-top: 1.5rem;
}
.news-contents-box img {
  max-height: 600px;
  object-fit: cover;
}
.news-contents-box .img-box {
  margin-bottom: 30px !important;
}
@media (min-width: 1024px) {
  .news-contents-box .img-box {
    margin-bottom: 60px !important;
  }
}
.news-contents-box .p-box__newstitle {
  margin-bottom: 20px !important;
}
@media (min-width: 1024px) {
  .news-contents-box .p-box__newstitle {
    margin-bottom: 40px !important;
  }
}

/* =========================================================
 コンタクト詳細ページ
========================================================= */
#contact button,
#contact input,
#contact select,
#contact textarea {
  background-color: #e8e8e8;
  /*border: 1px solid #000;*/
}

#contact .mfp_buttons button {
  padding: 12px 35px;
  border: 1px solid #ddd;
  background-color: #fff;
  transition: color 0.6s;
}
#contact .mfp_buttons button:hover {
  color: #e8e8e8;
}

#contact .home-section__btn a {
  display: flex;
  margin: 0 auto;
}

/* =========================================================
 コンタクト追加詳細ページ
========================================================= */
form#mailformpro .must {
  background-color: #e64a19;
}
form#mailformpro dl dd textarea.max900 {
  resize: both;
  max-width: 720px;
  width: 100%;
  height: 100px;
}
form#mailformpro dl .wide-text dt {
  float: none;
  clear: none;
  text-align: left !important;
  width: 100%;
}
form#mailformpro dl .wide-text dd {
  padding-top: 0;
  padding-left: 0;
  border-top: none;
}
form#mailformpro dl .wide-text dd .check-flex {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
form#mailformpro .mt10 {
  margin-top: 10px !important;
}

.agreement .gray-area {
  padding: 20px;
  background-color: #f7f7f7;
}
.agreement #terms-box {
  padding-left: 10px;
  padding-right: 10px;
  max-height: 500px;
  overflow-y: scroll;
}
.agreement #terms-box ol {
  list-style-type: decimal;
}
.agreement #terms-box ol li {
  position: relative;
  padding-left: 2em;
  list-style: none;
  counter-increment: item;
}
.agreement #terms-box ol li::before {
  content: counter(item) ". ";
  position: absolute;
  left: 0;
  top: 0;
}
.agreement #terms-box .c-tit {
  margin-bottom: 20px;
}
.agreement .check-flex label {
  color: #999;
  /* 初期はグレー */
  cursor: not-allowed;
}
.agreement .check-flex label.enabled {
  color: #000;
  /* スクロール後は黒 */
  cursor: pointer;
}

@media screen and (max-width: 768px) {
  table#mfp_confirm_table tr th {
    white-space: break-spaces;
    width: 150px;
  }
}
/* =========================================================
 FAQ
========================================================= */
.list-area {
  margin: 0 auto 90px;
}
@media (max-width: 959px) {
  .list-area {
    margin-bottom: clamp(45px, 9.39vw, 90px);
  }
}
.list-area .title-tit {
  text-align: center;
  border-bottom: 1px solid #000;
  margin-bottom: 20px;
  padding-bottom: 10px;
}
.list-area.accordion-area {
  list-style: none;
}
.list-area.accordion-area .accordion-trigger {
  cursor: pointer;
  position: relative;
  transition: all 0.5s ease;
}
.list-area.accordion-area .accordion-trigger:after {
  position: absolute;
  content: "";
  width: 13px;
  height: 24px;
  background: url("../img/common/accordion-arrow.png") no-repeat;
  background-size: contain;
  transition: all 0.5s ease;
  bottom: 0;
  right: 3%;
}
.list-area.accordion-area .accordion-trigger.open:after {
  transform: rotate(180deg);
}
.list-area.accordion-area .accordion-box {
  display: none;
}
.list-area .accordion-box {
  display: none;
}
.list-area .accordion-box .list-flex {
  display: flex;
  border-bottom: 1px solid #000;
}
.list-area .accordion-box .list-flex dt {
  flex-basis: 220px;
  max-width: 220px;
  padding: 15px 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  letter-spacing: 0.15em;
  line-height: 2.8125;
}
@media (max-width: 479px) {
  .list-area .accordion-box .list-flex dt {
    flex-basis: 90px;
    max-width: 90px;
    padding: 5px 0px;
    line-height: 1.5;
  }
}
.list-area .accordion-box .list-flex dd {
  flex-basis: calc(100% - 220px);
  max-width: calc(100% - 220px);
  padding: 15px 25px 15px 0;
  display: flex;
  align-items: center;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 1.875;
}
@media (max-width: 479px) {
  .list-area .accordion-box .list-flex dd {
    flex-basis: calc(100% - 90px);
    max-width: calc(100% - 90px);
    padding: 5px 0px 5px 10px;
    line-height: 1.5;
  }
}

.space_area .accordion-box {
  padding-left: 32px;
  padding-right: 32px;
  border-bottom: 1px solid #000;
}
@media (max-width: 959px) {
  .space_area .accordion-box {
    padding-left: 0px;
    padding-right: 0px;
  }
}
.space_area .accordion-box dt {
  width: 100%;
  max-width: 100%;
  padding: 35px 0px 20px 40px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 2.8125;
  display: inline-block;
  position: relative;
}
@media (max-width: 959px) {
  .space_area .accordion-box dt {
    padding: 20px 0px 10px 25px;
    line-height: 1.5;
  }
}
.space_area .accordion-box dt:before {
  content: "Q";
  position: absolute;
  left: 0;
}
.space_area .accordion-box dd {
  width: 100%;
  max-width: 100%;
  padding: 0px 0px 0px 40px;
  font-weight: 400;
  line-height: 1.875;
  letter-spacing: 0.15em;
  margin-inline-start: 0px;
  display: inline-block;
  position: relative;
}
.space_area .accordion-box dd:last-child {
  padding-bottom: 40px;
}
@media (max-width: 959px) {
  .space_area .accordion-box dd:last-child {
    padding-bottom: 20px;
  }
}
@media (max-width: 959px) {
  .space_area .accordion-box dd {
    padding: 0px 0px 0px 25px;
    line-height: 1.5;
  }
}
.space_area .accordion-box dd:before {
  content: "A";
  position: absolute;
  left: 0;
}
.space_area .accordion-box li {
  width: 100%;
  max-width: 100%;
  padding-left: 40px;
  font-weight: 300;
  letter-spacing: 0.15em;
  line-height: 2.8125;
  display: inline-block;
  position: relative;
}
.space_area .accordion-box li:first-child {
  padding-top: 20px;
}
.space_area .accordion-box li:last-child {
  padding-bottom: 40px;
}
@media (max-width: 959px) {
  .space_area .accordion-box li {
    padding-left: 20px;
    line-height: 1.5;
  }
}
.space_area .accordion-box li:before {
  content: "■";
  position: absolute;
  left: 0;
}

.under-line {
  border-bottom: 1px solid #505050;
  transition: 0.4s;
}
.under-line:hover {
  border-bottom: 1px solid transparent;
}

/* =========================================================
 リストページ
========================================================= */
/* ページリンク
-------------------------------------- */
.slider-button-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}
.slider-button-flex .c-singleBtn {
  max-width: 250px;
}
@media (min-width: 480px) {
  .slider-button-flex {
    padding-left: 10px;
  }
}
@media (min-width: 768px) {
  .slider-button-flex {
    padding-left: 6%;
  }
}
@media (min-width: 1024px) {
  .slider-button-flex {
    padding-left: 3%;
  }
}
@media (min-width: 1400px) {
  .slider-button-flex {
    padding-left: 3%;
  }
}

.index-usp-01__slider {
  overflow: visible;
  padding-bottom: 80px !important;
}
@media (max-width: 1023px) {
  .index-usp-01__slider {
    padding-bottom: 50px !important;
  }
}
.index-usp-01__slider .swiper-slide {
  position: relative;
  width: auto;
}
.index-usp-01__slider .swiper-button-wrapper {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1;
  padding-left: 20px;
  padding-left: 4vw;
}
@media (min-width: 768px) {
  .index-usp-01__slider .swiper-button-wrapper {
    padding-left: 6vw;
  }
}
@media (min-width: 1024px) {
  .index-usp-01__slider .swiper-button-wrapper {
    padding-left: calc(12vw + 65px);
  }
}
@media (min-width: 1400px) {
  .index-usp-01__slider .swiper-button-wrapper {
    padding-left: calc(10vw + 51px);
  }
}
.index-usp-01__slider .swiper-button-wrapper__inner {
  position: relative;
  height: 41px;
  margin: 0;
  max-width: none;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 1200px;
  width: 92%;
}
@media (max-width: 1023px) {
  .index-usp-01__slider .swiper-button-wrapper__inner {
    padding-left: 20px;
  }
}
.index-usp-01__slider .swiper-button-prev,
.index-usp-01__slider .swiper-button-next {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 60px;
  width: 60px;
  margin: 0;
  left: auto;
  right: auto;
  top: 0;
}
.index-usp-01__slider .swiper-button-prev::before, .index-usp-01__slider .swiper-button-prev::after,
.index-usp-01__slider .swiper-button-next::before,
.index-usp-01__slider .swiper-button-next::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #505050;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.index-usp-01__slider .swiper-button-prev::before,
.index-usp-01__slider .swiper-button-next::before {
  background: transparent;
}
.index-usp-01__slider .swiper-button-prev::after,
.index-usp-01__slider .swiper-button-next::after {
  background: #505050;
}
.index-usp-01__slider .swiper-button-prev::after {
  clip-path: polygon(65% 35%, 40% 50%, 65% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider .swiper-button-prev:hover::before {
  background: #e8e8e8;
}
body:not(.is-touchdevice) .index-usp-01__slider .swiper-button-prev:hover::after {
  background: #fff;
}
.index-usp-01__slider .swiper-button-next::after {
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider .swiper-button-next:hover::before {
  background: #e8e8e8;
}
body:not(.is-touchdevice) .index-usp-01__slider .swiper-button-next:hover::after {
  background: #fff;
}
.index-usp-01__slider__pagination {
  position: relative;
  bottom: auto;
  left: auto;
  height: 1px !important;
  background: #e3ded9;
}
.index-usp-01__slider__pagination .swiper-pagination-progressbar-fill {
  background: #505050;
  height: 88%;
}

.slider-button.is-disabled {
  pointer-events: none;
  cursor: default;
  background-color: #fff;
  border: 1px solid #e8e8e8;
}

.swiper-button-next.is-disabled,
.swiper-button-prev.is-disabled {
  opacity: 0.3;
  pointer-events: none;
  cursor: default;
}

.p-room-link-img {
  position: relative;
}
.p-room-link-img a {
  display: block;
}
.p-room-link-img .room-link-img-block {
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  transition: 0.5s;
}
.p-room-link-img .room-link-img-block img {
  width: 100%;
  transition: 0.5s transform;
  border-radius: 10px;
  overflow: hidden;
}
.p-room-link-img .p-room-link-btn-block {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-end;
  z-index: 3;
  padding-block: 20px 0;
}
@media (min-width: 1024px) {
  .p-room-link-img .p-room-link-btn-block {
    padding-block: 20px 0;
  }
}
.p-room-link-img .p-room-link-btn-block .p-room-link-btn-text {
  gap: 10px;
  line-height: 1.2;
  flex-direction: column;
  gap: 5px;
  color: #fff;
}
.p-room-link-img .p-room-link-btn-block .p-room-link-btn-text > span {
  display: block;
  color: #505050;
}
.p-room-link-img .p-room-link-btn-block .p-room-link-btn-text > span.cate {
  display: inline-block;
  background-color: #e64a19;
  font-size: 12px;
  padding: 6px;
  border-radius: 20px;
  color: #FFF;
  line-height: 1;
}
.p-room-link-img a:hover .room-link-img-block {
  opacity: 0.6;
}
.p-room-link-img a:hover .room-link-img-block::before {
  background: rgba(80, 80, 80, 0.4);
}
.p-room-link-img a:hover .btn-arw::before {
  background: #fff;
}
.p-room-link-img a:hover .btn-arw::after {
  background: #505050;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}

.btn-arw {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 40px;
  width: 40px;
  flex-shrink: 0;
}
.btn-arw::before, .btn-arw::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #fff;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.btn-arw::before {
  background: transparent;
}
.btn-arw::after {
  background: #FFF;
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}

.index-usp-01__slider--02 .swiper-button-prev--02,
.index-usp-01__slider--02 .swiper-button-next--02 {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 60px;
  width: 60px;
  margin: 0;
  left: auto;
  right: auto;
  top: 0;
}
.index-usp-01__slider--02 .swiper-button-prev--02::before, .index-usp-01__slider--02 .swiper-button-prev--02::after,
.index-usp-01__slider--02 .swiper-button-next--02::before,
.index-usp-01__slider--02 .swiper-button-next--02::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #505050;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.index-usp-01__slider--02 .swiper-button-prev--02::before,
.index-usp-01__slider--02 .swiper-button-next--02::before {
  background: transparent;
}
.index-usp-01__slider--02 .swiper-button-prev--02::after,
.index-usp-01__slider--02 .swiper-button-next--02::after {
  background: #505050;
}
.index-usp-01__slider--02 .swiper-button-prev--02::after {
  clip-path: polygon(65% 35%, 40% 50%, 65% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider--02 .swiper-button-prev--02:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .index-usp-01__slider--02 .swiper-button-prev--02:hover::after {
  background: #fff;
}
.index-usp-01__slider--02 .swiper-button-next--02::after {
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider--02 .swiper-button-next--02:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .index-usp-01__slider--02 .swiper-button-next--02:hover::after {
  background: #fff;
}
.index-usp-01__slider--02 .index-usp-01__slider--02__pagination {
  position: relative;
  bottom: auto;
  left: auto;
  height: 1px !important;
  background: #e3ded9;
}
.index-usp-01__slider--02 .index-usp-01__slider--02__pagination .swiper-pagination-progressbar-fill {
  background: #505050;
  height: 88%;
}

.index-usp-01__slider--sm {
  overflow: visible;
  padding-bottom: 80px !important;
}
@media (max-width: 1023px) {
  .index-usp-01__slider--sm {
    padding-bottom: 50px !important;
  }
}
.index-usp-01__slider--sm .swiper-slide {
  position: relative;
  width: auto;
}
.index-usp-01__slider--sm .room-link-img-block img {
  width: 100%;
  height: auto;
  aspect-ratio: 3/4;
  object-fit: cover;
}
.index-usp-01__slider--sm .swiper-button-wrapper {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1;
  padding-left: 2vw;
}
@media (min-width: 768px) {
  .index-usp-01__slider--sm .swiper-button-wrapper {
    padding-left: 17vw;
  }
}
@media (min-width: 1024px) {
  .index-usp-01__slider--sm .swiper-button-wrapper {
    padding-left: calc(12vw + 5px);
  }
}
@media (min-width: 1400px) {
  .index-usp-01__slider--sm .swiper-button-wrapper {
    padding-left: calc(20vw + 1px);
  }
}
.index-usp-01__slider--sm .swiper-button-wrapper__inner {
  position: relative;
  height: 40px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 1200px;
  width: 92%;
}
@media (max-width: 1023px) {
  .index-usp-01__slider--sm .swiper-button-wrapper__inner {
    padding-left: 20px;
  }
}
.index-usp-01__slider--sm .swiper-button-prev--sm,
.index-usp-01__slider--sm .swiper-button-next--sm,
.index-usp-01__slider--sm .swiper-button-prev--sm2,
.index-usp-01__slider--sm .swiper-button-next--sm2 {
  position: relative;
  min-width: 2.5em;
  border-radius: 100%;
  font-weight: 300;
  text-align: center;
  height: 60px;
  width: 60px;
  margin: 0;
  cursor: pointer;
}
.index-usp-01__slider--sm .swiper-button-prev--sm::before, .index-usp-01__slider--sm .swiper-button-prev--sm::after,
.index-usp-01__slider--sm .swiper-button-next--sm::before,
.index-usp-01__slider--sm .swiper-button-next--sm::after,
.index-usp-01__slider--sm .swiper-button-prev--sm2::before,
.index-usp-01__slider--sm .swiper-button-prev--sm2::after,
.index-usp-01__slider--sm .swiper-button-next--sm2::before,
.index-usp-01__slider--sm .swiper-button-next--sm2::after {
  position: absolute;
  aspect-ratio: 1/1;
  width: 100%;
  border-radius: 100%;
  content: "";
  border: 1px solid #505050;
  top: 0;
  left: 0;
  transition: 0.5s all;
}
.index-usp-01__slider--sm .swiper-button-prev--sm::before,
.index-usp-01__slider--sm .swiper-button-next--sm::before,
.index-usp-01__slider--sm .swiper-button-prev--sm2::before,
.index-usp-01__slider--sm .swiper-button-next--sm2::before {
  background: transparent;
}
.index-usp-01__slider--sm .swiper-button-prev--sm::after,
.index-usp-01__slider--sm .swiper-button-next--sm::after,
.index-usp-01__slider--sm .swiper-button-prev--sm2::after,
.index-usp-01__slider--sm .swiper-button-next--sm2::after {
  background: #505050;
}
.index-usp-01__slider--sm .swiper-button-prev--sm::after,
.index-usp-01__slider--sm .swiper-button-prev--sm2::after {
  clip-path: polygon(65% 35%, 40% 50%, 65% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-prev--sm:hover::before,
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-prev--sm2:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-prev--sm:hover::after,
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-prev--sm2:hover::after {
  background: #fff;
}
.index-usp-01__slider--sm .swiper-button-next--sm::after,
.index-usp-01__slider--sm .swiper-button-next--sm2::after {
  clip-path: polygon(40% 35%, 65% 50%, 40% 65%);
}
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-next--sm:hover::before,
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-next--sm2:hover::before {
  background: #505050;
}
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-next--sm:hover::after,
body:not(.is-touchdevice) .index-usp-01__slider--sm .swiper-button-next--sm2:hover::after {
  background: #fff;
}
.index-usp-01__slider--sm__pagination,
.index-usp-01__slider--sm .index-usp-01__slider--sm2__pagination {
  position: relative;
  bottom: auto;
  left: auto;
  height: 1px !important;
  background: #e3ded9;
}
.index-usp-01__slider--sm__pagination .swiper-pagination-progressbar-fill,
.index-usp-01__slider--sm .index-usp-01__slider--sm2__pagination .swiper-pagination-progressbar-fill {
  background: #505050;
  height: 88%;
}

.index-usp-01__slider {
  position: relative;
}
.index-usp-01__slider .swiper-button-overlay {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: calc(100% - 80px);
  pointer-events: none;
  z-index: 10;
}
@media (min-width: 1023px) {
  .index-usp-01__slider .swiper-button-overlay {
    width: 70vw;
  }
}
@media (min-width: 1400px) {
  .index-usp-01__slider .swiper-button-overlay {
    width: 78vw;
  }
}
.index-usp-01__slider .swiper-button-overlay .swiper-button-prev,
.index-usp-01__slider .swiper-button-overlay .swiper-button-next,
.index-usp-01__slider .swiper-button-overlay .swiper-button-prev--02,
.index-usp-01__slider .swiper-button-overlay .swiper-button-next--02 {
  pointer-events: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}
.index-usp-01__slider .swiper-button-overlay .swiper-button-prev,
.index-usp-01__slider .swiper-button-overlay .swiper-button-prev--02 {
  left: 0;
}
.index-usp-01__slider .swiper-button-overlay .swiper-button-next,
.index-usp-01__slider .swiper-button-overlay .swiper-button-next--02 {
  right: -0.3%;
}

.large-slide-title {
  padding-left: 4vw;
}
@media (min-width: 768px) {
  .large-slide-title {
    padding-left: 6vw;
  }
}
@media (min-width: 1024px) {
  .large-slide-title {
    padding-left: calc(12vw + 65px);
  }
}
@media (min-width: 1400px) {
  .large-slide-title {
    padding-left: calc(10vw + 51px);
  }
}

.small-slide-title {
  padding-left: 2vw;
}
@media (min-width: 768px) {
  .small-slide-title {
    padding-left: 17vw;
  }
}
@media (min-width: 1024px) {
  .small-slide-title {
    padding-left: calc(12vw + 5px);
  }
}
@media (min-width: 1400px) {
  .small-slide-title {
    padding-left: calc(20vw + 1px);
  }
}

.index-usp-01__slider--sm .swiper-button-overlay,
.index-usp-01__slider--sm2 .swiper-button-overlay {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: calc(100% - 80px);
  pointer-events: none;
  z-index: 10;
  width: 80vw;
}
@media (min-width: 1400px) {
  .index-usp-01__slider--sm .swiper-button-overlay,
  .index-usp-01__slider--sm2 .swiper-button-overlay {
    width: 64vw;
  }
}
.index-usp-01__slider--sm .swiper-button-overlay .swiper-button-prev--sm,
.index-usp-01__slider--sm .swiper-button-overlay .swiper-button-prev--sm2,
.index-usp-01__slider--sm2 .swiper-button-overlay .swiper-button-prev--sm,
.index-usp-01__slider--sm2 .swiper-button-overlay .swiper-button-prev--sm2 {
  pointer-events: auto;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  margin: 0;
}
.index-usp-01__slider--sm .swiper-button-overlay .swiper-button-next--sm,
.index-usp-01__slider--sm .swiper-button-overlay .swiper-button-next--sm2,
.index-usp-01__slider--sm2 .swiper-button-overlay .swiper-button-next--sm,
.index-usp-01__slider--sm2 .swiper-button-overlay .swiper-button-next--sm2 {
  pointer-events: auto;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  margin: 0;
}

.p-aboutSlide {
  position: relative;
  margin-top: 9.75rem;
}
@media (min-width: 1024px) {
  .p-aboutSlide {
    height: 720vh;
  }
}

@media (min-width: 1024px) {
  .p-aboutSlide-inner {
    position: sticky;
    top: 6.25rem;
    height: calc(100vh - 6.25rem);
    left: 0;
  }
}

@media (max-width: 1023px) {
  .p-aboutSlide-wrapper + .p-aboutSlide-wrapper {
    margin-top: 60px;
  }
}

@media (min-width: 1024px) {
  .p-aboutSlide-wrapper {
    width: 100vw;
    margin-left: calc(-1 * var(--padding-x, 1rem));
    height: calc(100vh - 6.25rem);
    position: absolute;
    top: -1px;
    left: 0;
  }
}
@media (min-width: 1200px) {
  .p-aboutSlide-wrapper {
    width: 100vw;
    margin-left: calc(-1 * (100vw - 75rem) / 2);
  }
}

.p-aboutSlide-slide {
  display: flex;
  flex-direction: column-reverse;
  gap: 30px;
}
@media (min-width: 1024px) {
  .p-aboutSlide-slide {
    gap: 0;
    flex-direction: inherit;
    width: 100%;
    height: calc(100vh - 6.25rem);
    padding-left: var(--padding-x, 1rem);
  }
}
@media (min-width: 1200px) {
  .p-aboutSlide-slide {
    padding-left: calc((100vw - 75rem) / 2);
  }
}

@media (min-width: 1024px) {
  .p-aboutSlide-slideleft {
    min-width: 30%;
    max-width: 30%;
    position: relative;
  }
}

@media (min-width: 1024px) {
  .p-aboutSlide-slideright {
    flex: 1;
  }
}
.p-aboutSlide-slideright img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  border-top-left-radius: 20px;
}
@media (max-width: 1023px) {
  .p-aboutSlide-slideright img {
    border-radius: 10px;
  }
}

@media (min-width: 1024px) {
  .p-aboutSlide-textWrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100vh - 6.25rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.5rem 2.125rem 1.625rem 1.875rem;
  }
}

.p-aboutSlide-pagination {
  position: absolute;
  left: -10%;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
@media (max-width: 1400px) {
  .p-aboutSlide-pagination {
    left: 2rem;
  }
}
@media (max-width: 1023px) {
  .p-aboutSlide-pagination {
    display: none;
  }
}

.p-aboutSlide-pagination-bullet {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background-color: rgb(0, 0, 0);
  border: 1px solid rgb(255, 255, 255);
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 0;
}
.p-aboutSlide-pagination-bullet:hover {
  background-color: rgba(255, 255, 255, 0.7);
  transform: scale(1.2);
}
.p-aboutSlide-pagination-bullet.is-active {
  background-color: rgb(255, 255, 255);
  border: 1px solid rgb(0, 0, 0);
  width: 1rem;
  height: 1rem;
}

/* =========================================================
　concept
========================================================= */
.concept_bg02 {
  margin-top: 35vh;
  padding-top: 15vh;
}
@media (min-width: 1024px) {
  .concept_bg02 {
    padding-top: clamp(125px, 12.5vw, 250px) !important;
    padding-top: clamp(125px, 12.5vw, 250px) !important;
  }
}

.concept_inner_bg02 {
  position: relative;
  min-height: 750px;
}
.concept_inner_bg02 .lead {
  justify-content: space-between;
  gap: 30px;
  height: 100%;
  position: relative;
}
@media (max-width: 767px) {
  .concept_inner_bg02 .lead {
    flex-direction: column;
    justify-content: center;
  }
}
.concept_inner_bg02 .lead .concept-sticky {
  padding-bottom: 50px;
  position: sticky;
  height: 100%;
  top: 15%;
}
@media (min-width: 1024px) {
  .concept_inner_bg02 .lead .concept-sticky {
    top: 10%;
  }
}
@media (min-width: 1024px) {
  .concept_inner_bg02 .lead .concept-sticky-text {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
}

.concept_kv {
  height: 100%;
}
.concept_kv .p-kv__inner_concept {
  margin-bottom: 50vh;
  height: 100vh;
}

.concept-scroll-area {
  height: 50vh;
}
@media (min-width: 1024px) {
  .concept-scroll-area {
    height: 50vh;
  }
}

.concept-sticky-block {
  position: relative;
}
.concept-sticky-block .concept-sticky-block-text {
  position: sticky;
  top: 30%;
}

/* =========================================================
　large-column
========================================================= */
@media (min-width: 1024px) {
  .large-column {
    align-items: flex-start;
    width: calc(100vw - 60px);
    margin-inline: calc(50% - 50vw + 60px);
  }
}
@media (min-width: 1024px) {
  .large-column .p-box__main {
    margin-top: 20px;
  }
}
@media (min-width: 1024px) {
  .large-column .p-box__main-box {
    max-width: 350px;
  }
}
.large-column .p-box__main_deco {
  display: flex;
  gap: clamp(50px, 7.8201368524vw, 80px);
  justify-content: center;
  margin-top: 50px;
}
@media (min-width: 1024px) {
  .large-column .p-box__main_deco {
    gap: clamp(50px, 5.5vw, 110px);
    padding-inline: 20px;
    margin-top: clamp(50px, 8vw, 160px);
  }
}
.large-column .p-box__main_deco .deco02 {
  margin-top: clamp(60px, 11.7302052786vw, 120px);
}
@media (min-width: 1024px) {
  .large-column .p-box__main_deco .deco02 {
    margin-top: clamp(50px, 8vw, 160px);
  }
}
.large-column .p-box__main_deco .deco02 video {
  max-width: 280px;
  max-height: 280px;
  object-fit: cover;
  width: clamp(40px, 41.2979351032vw, 280px);
  height: clamp(40px, 41.2979351032vw, 280px);
}
@media (min-width: 1024px) {
  .large-column .p-box__main_deco .deco02 video {
    width: clamp(40px, 14vw, 280px);
    height: clamp(40px, 14vw, 280px);
  }
}
@media (min-width: 1024px) {
  .large-column.p-box--splitReverse .p-box__main-box {
    margin-left: auto;
  }
}

/* =========================================================
　コンセプトテキストMV
========================================================= */
.concept-main-kv {
  position: relative;
  height: 70vw;
}
.concept-main-kv .concept-sticky-kv {
  position: sticky;
  top: 28%;
}

.fade-line {
  display: block;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.fade-line.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 共通 */
/* ===============================
   #video02 / #video03 / #video04 オーバーレイ（::after）
   clip-path ワイプ制御
   =============================== */
#video02,
#video03,
#video04 {
  position: absolute;
}

#video02::after,
#video03::after,
#video04::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  clip-path: inset(100% 0 0 0); /* 初期値：非表示（下から上へ隠れている） */
  transition: clip-path 1s ease-in-out;
  pointer-events: none;
  z-index: 1;
}

/* 出現：下から上へワイプ */
#video02.overlay-active::after,
#video03.overlay-active::after,
#video04.overlay-active::after {
  clip-path: inset(0% 0 0 0);
}

/* 消去：上から下へ縮む */
#video02.overlay-hide::after,
#video03.overlay-hide::after,
#video04.overlay-hide::after {
  clip-path: inset(0 0 100% 0);
}

.googlemap-wrapper {
  position: relative;
}
.googlemap-wrapper::before {
  content: "";
  display: block;
  padding-top: 57%;
}
.googlemap-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sections-overlap-wrap {
  position: relative;
}

#fish {
  position: relative;
  z-index: 2;
  background-color: #fff;
}

#live {
  position: relative;
  z-index: 1;
}

.dinner-sticky .dinner-video-sticky {
  position: relative;
}
.dinner-sticky .dinner-video-sticky .dinner-video-usp {
  position: sticky;
  top: 0;
  height: 100%;
  height: 100lvh;
}
.dinner-sticky .dinner-video-sticky .dinner-video-usp video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dinner-sticky .dinner-video-sticky .dinner-video-usp-spacer {
  height: 100vh;
}
.dinner-sticky .dinner-video-sticky .dinner-video-usp-text {
  position: relative;
  z-index: 3;
  color: #fff;
  height: 80vh;
}

.dinner-video-block .dinner-video-block-top {
  display: flex;
  gap: 40px;
  flex-direction: column-reverse;
}
@media (min-width: 1024px) {
  .dinner-video-block .dinner-video-block-top {
    flex-direction: inherit;
    gap: 230px;
    gap: clamp(0px, 11.5vw, 230px);
  }
}
@media (min-width: 1024px) {
  .dinner-video-block .dinner-video-block-top__reverse {
    flex-direction: row-reverse;
  }
}
.dinner-video-block .dinner-video-block-under {
  display: flex;
  justify-content: flex-end;
  gap: 180px;
  gap: clamp(50px, 9vw, 180px);
  margin-top: 40px;
}
@media (min-width: 1024px) {
  .dinner-video-block .dinner-video-block-under {
    gap: 180px;
    gap: clamp(50px, 9vw, 180px);
    justify-content: flex-end;
  }
}
@media (min-width: 1024px) {
  .dinner-video-block .dinner-video-block-under__reverse {
    flex-direction: row-reverse;
  }
}
.dinner-video-block .dinner-video-block-under .dinner-block-under01 {
  margin-top: 180px;
  margin-top: clamp(50px, 9vw, 180px);
}
@media (min-width: 1024px) {
  .dinner-video-block .dinner-video-block-under .dinner-block-under01 {
    margin-top: 180px;
    margin-top: clamp(50px, 9vw, 180px);
  }
}

.wave-wrap {
  width: 100%;
  max-width: 534px;
}
.wave-wrap canvas {
  display: block;
  width: 100%;
}

.gallery-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.gallery-modal-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

.gallery-modal-content {
  position: relative;
  max-width: 70%;
  max-height: 70%;
}
@media (min-width: 1024px) {
  .gallery-modal-content {
    max-width: 90%;
    max-height: 90%;
  }
}

.gallery-modal-image {
  max-width: 100%;
  max-height: 80vh;
  width: auto;
  height: auto;
  display: block;
}
@media (min-width: 1024px) {
  .gallery-modal-image {
    max-height: 90vh;
  }
}

.gallery-modal-close {
  position: absolute;
  top: -40px;
  right: -40px;
  background: none;
  border: none;
  color: #fff;
  font-size: 40px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  width: 40px;
  height: 40px;
  transition: opacity 0.3s;
}
.gallery-modal-close:hover {
  opacity: 0.7;
}

.gallery-modal-prev,
.gallery-modal-next {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 35px;
  height: 35px;
  background: rgba(0, 0, 0, 0.45);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  outline: none;
  padding: 0;
  transition: background 0.3s;
  z-index: 10000;
}
@media (min-width: 1024px) {
  .gallery-modal-prev,
  .gallery-modal-next {
    width: 70px;
    height: 70px;
  }
}
.gallery-modal-prev:hover,
.gallery-modal-next:hover {
  background: rgba(0, 0, 0, 0.75);
}
.gallery-modal-prev::after,
.gallery-modal-next::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border-bottom: 3px solid #fff;
}

.gallery-modal-prev {
  left: 30px;
}
.gallery-modal-prev::after {
  border-left: 3px solid #fff;
  transform: rotate(45deg);
  margin-left: 4px;
}

.gallery-modal-next {
  right: 30px;
}
.gallery-modal-next::after {
  border-right: 3px solid #fff;
  transform: rotate(-45deg);
  margin-right: 4px;
}

.gallery-modal-counter {
  text-align: center;
  color: #fff;
  margin-top: 12px;
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .gallery-modal-counter {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.all-inclusive-video-block .all-inclusive-video-block-top {
  display: flex;
  gap: 40px;
  flex-direction: column-reverse;
}
@media (min-width: 1024px) {
  .all-inclusive-video-block .all-inclusive-video-block-top {
    flex-direction: row-reverse;
    justify-content: space-between;
    gap: 230px;
    gap: clamp(0px, 11.5vw, 230px);
  }
}
@media (min-width: 1024px) {
  .all-inclusive-video-block .all-inclusive-video-block-top .all-inclusive-block-top-img {
    margin-top: clamp(50px, 7.5vw, 150px);
  }
}
.all-inclusive-video-block .all-inclusive-video-block-under {
  display: flex;
  justify-content: flex-end;
  gap: 180px;
  gap: clamp(50px, 9vw, 180px);
  margin-top: 60px;
}
@media (min-width: 1024px) {
  .all-inclusive-video-block .all-inclusive-video-block-under {
    gap: 180px;
    gap: clamp(50px, 9vw, 180px);
    justify-content: flex-end;
    flex-direction: row-reverse;
    margin-top: 20px;
  }
}
@media (min-width: 1366px) {
  .all-inclusive-video-block .all-inclusive-video-block-under {
    margin-top: clamp(-50px, 50px - 5vw, 50px);
  }
}
.all-inclusive-video-block .all-inclusive-video-block-under .all-inclusive-block-under01 {
  margin-top: 180px;
  margin-top: clamp(50px, 9vw, 180px);
}
@media (min-width: 1024px) {
  .all-inclusive-video-block .all-inclusive-video-block-under .all-inclusive-block-under01 {
    margin-top: 240px;
    margin-top: clamp(50px, 12vw, 240px);
  }
}/*# sourceMappingURL=styles.css.map */