@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: "Noto Serif JP", serif;
  color: #201f2d;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
}

ul,
ol {
  list-style: none;
}

address {
  font-style: normal;
}

.l-wrapper {
  width: 100%;
  display: flex;
  align-items: flex-start;
}

.l-main {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.l-sidebar {
  display: none;
}
@media (min-width: 1024px) {
  .l-sidebar {
    display: block;
    position: sticky;
    top: 0;
    width: 290px;
    flex-shrink: 0;
    height: 100vh;
    background-color: #fff;
  }
}

.l-cta {
  width: 100%;
  background-color: #e8e8e8;
  background-image: url("../images/common/bg_cta_01.jpg");
  background-size: cover;
  background-position: center;
}
.l-cta__inner {
  max-width: 1200px;
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  padding: 123px 0 140px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__inner {
    padding: 80px 80px 90px;
  }
}
@media (max-width: 639px) {
  .l-cta__inner {
    box-sizing: border-box;
    flex-direction: column;
    align-items: stretch;
    gap: 8.5333333333vw;
    padding: 14.6666666667vw 10.2666666667vw 15.2vw;
  }
}
.l-cta__head {
  flex: 1;
}
@media (max-width: 639px) {
  .l-cta__head {
    flex: none;
    width: 100%;
  }
}
@media (max-width: 639px) {
  .l-cta__head .c-heading_lv2 .en {
    margin: 0 0 1.3333333333vw;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1em;
  }
}
@media (max-width: 639px) {
  .l-cta__head .c-heading_lv2 .jp {
    padding-bottom: 1.0666666667vw;
    font-size: 6.4vw;
    line-height: 0.9166666667;
    letter-spacing: 0.1em;
  }
}
.l-cta__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 28px;
  width: 780px;
}
@media (min-width: 1024px) {
  .l-cta__body {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
  }
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__body {
    width: 680px;
  }
}
@media (max-width: 639px) {
  .l-cta__body {
    flex: none;
    align-items: stretch;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    gap: 4.2666666667vw;
  }
}
.l-cta__lead {
  margin-top: 28px;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 2.18;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__lead {
    font-size: 14px;
  }
}
@media (max-width: 639px) {
  .l-cta__lead {
    margin-top: 4.2666666667vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 1.46;
    letter-spacing: 0.05em;
  }
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__tel {
    flex: 1;
    width: 340px;
  }
}
@media (max-width: 639px) {
  .l-cta__tel {
    width: 100%;
  }
}
.l-cta__tel a {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px 32px;
  max-height: 120px;
  border: 1px solid #cbcbcb;
  text-decoration: none;
}
.l-cta__tel a:hover .num {
  opacity: 0.7;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__tel a {
    padding: 24px 22px;
  }
}
@media (max-width: 639px) {
  .l-cta__tel a {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-height: 0;
    max-height: none;
    padding: 2.6666666667vw 3.7333333333vw;
    border-color: #d3d3d5;
  }
}
.l-cta__tel .label {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.94;
  text-align: center;
}
@media (max-width: 639px) {
  .l-cta__tel .label {
    font-size: 3.2vw;
    line-height: 1.7916666667;
    letter-spacing: 0.1em;
  }
}
.l-cta__tel .tel {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
@media (max-width: 639px) {
  .l-cta__tel .tel {
    gap: 1.3333333333vw;
  }
}
.l-cta__tel .prefix {
  font-family: "Cormorant Garamond", serif;
  font-size: 33px;
  font-weight: 500;
  letter-spacing: 0.033em;
  color: #201f2d;
  line-height: 1;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__tel .prefix {
    font-size: 27px;
  }
}
@media (max-width: 639px) {
  .l-cta__tel .prefix {
    font-size: 6.5333333333vw;
    letter-spacing: 0.05em;
  }
}
.l-cta__tel .num {
  font-family: "Noto Serif JP", serif;
  font-size: 33px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #201f2d;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__tel .num {
    font-size: 29px;
  }
}
@media (max-width: 639px) {
  .l-cta__tel .num {
    font-size: 6.5333333333vw;
    letter-spacing: 0.05em;
  }
}
.l-cta__btn {
  flex: 1;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__btn {
    flex: 1;
    width: 340px;
  }
}
@media (max-width: 639px) {
  .l-cta__btn {
    flex: none;
    width: 100%;
    max-width: none;
  }
}
.l-cta__btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 120px;
  width: 100%;
  padding: 24px 32px;
  border: 1px solid #3c3a59;
  background-color: #201f2d;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.l-cta__btn a:hover {
  opacity: 0.9;
}
@media (max-width: 639px) {
  .l-cta__btn a {
    padding: 6.9333333333vw 3.2vw;
    min-height: 20vw;
  }
}
.l-cta__btn-label {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
  line-height: 1.56;
  text-align: center;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-cta__btn-label {
    font-size: 20px;
  }
}
@media (max-width: 639px) {
  .l-cta__btn-label {
    font-size: 4.4vw;
    font-weight: 600;
    letter-spacing: 0.1em;
  }
}

.p-page_hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #e5e5e5;
  background-image: url("../images/common/bg_hero_01.jpg");
  background-size: cover;
  background-position: center;
}
.p-page_hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  min-height: 412px;
  max-width: 1200px;
  margin: 0 auto;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .p-page_hero__inner {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.p-page_hero .c-heading_lv1 .en {
  margin: 0 0 10px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(24px, 3.6vw, 30px);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #201f2d;
  line-height: 1.2;
}
.p-page_hero .c-heading_lv1 .jp {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(34px, 5vw, 50px);
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.2;
}
.p-page_hero .c-heading_lv1 .jp span {
  border-bottom: 1px solid #201f2d;
}

.p-page_bg_hero {
  position: relative;
  width: 100%;
  min-height: 360px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
@media (min-width: 768px) {
  .p-page_bg_hero {
    min-height: 420px;
  }
}
@media (min-width: 1024px) {
  .p-page_bg_hero {
    min-height: 570px;
  }
}
.p-page_bg_hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 87px 0;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .p-page_bg_hero__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
.p-page_bg_hero .c-heading_lv1 {
  color: #fff;
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: column-reverse;
  margin-right: 0;
  margin-left: auto;
  text-shadow: 2px 2px 0 rgba(35, 33, 51, 0.9);
}
.p-page_bg_hero .c-heading_lv1 .en {
  font-family: "Cormorant Garamond", serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.1em;
  position: relative;
  top: 6px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .p-page_bg_hero .c-heading_lv1 .en {
    font-size: 24px;
  }
}
.p-page_bg_hero .c-heading_lv1 .jp {
  font-family: "Shippori Mincho", serif;
  font-size: 45px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.2;
  border-right: 1px solid #fff;
  padding-right: 17px;
  margin-right: 10px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .p-page_bg_hero .c-heading_lv1 .jp {
    font-size: 39px;
  }
}

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  background-color: #fff;
}
@media (min-width: 1024px) {
  .l-header {
    display: none;
  }
}
.l-header__logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-family: "Shippori Mincho", serif;
  font-size: 14px;
  font-weight: 600;
  color: #201f2d;
  letter-spacing: 0.1em;
}
@media (min-width: 768px) {
  .l-header__logo {
    font-size: 18px;
  }
}
.l-header__logo-img {
  display: block;
  width: auto;
  height: auto;
  max-height: 36px;
}
@media (min-width: 768px) {
  .l-header__logo-img {
    max-height: 62px;
  }
}
.l-header__logo-img--sp {
  display: none;
  max-height: 11.7333333333vw;
}
@media (max-width: 1023px) {
  .l-header__logo-img--sp {
    display: block;
  }
}
@media (min-width: 768px) {
  .l-header__logo-img--sp {
    max-height: 4.5833333333vw;
  }
}
@media (max-width: 1023px) {
  .l-header__logo-text {
    display: none;
  }
}
@media (max-width: 1023px) {
  .l-header__logo-img--pc {
    display: none;
  }
}
.l-header__nav-toggle {
  width: 32px;
  height: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
}
.l-header__nav-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: #201f2d;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.l-header__nav-toggle.is-open span:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.l-header__nav-toggle.is-open span:nth-child(2) {
  transform: scaleX(0);
  opacity: 0;
}
.l-header__nav-toggle.is-open span:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}

@media (max-width: 639px) {
  body {
    padding-top: calc(32px + 11.8333333333vw);
  }
}
@media (min-width: 1024px) {
  body {
    padding-top: 0;
  }
}

.l-nav-drawer {
  position: fixed;
  inset: 0;
  z-index: 99;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background-color: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
@media (min-width: 1024px) {
  .l-nav-drawer {
    display: none;
  }
}
.l-nav-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.l-nav-drawer__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 100%;
  min-height: 100dvh;
  margin: 0 auto;
  padding-top: calc(32px + 11.8333333333vw + 18.8vw);
  padding-right: 5.3333333333vw;
  padding-bottom: 8vw;
  padding-left: 5.3333333333vw;
}
@media (min-width: 768px) {
  .l-nav-drawer__inner {
    padding-top: calc(32px + 4.6223958333vw + 7.34375vw);
    padding-right: 2.0833333333vw;
    padding-bottom: 3.125vw;
    padding-left: 2.0833333333vw;
  }
}
.l-nav-drawer__pillars {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  gap: 10.9333333333vw;
}
@media (min-width: 768px) {
  .l-nav-drawer__pillars {
    gap: 4.1666666667vw;
  }
}
.l-nav-drawer__pillar {
  flex: 0 0 auto;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: "Noto Serif JP", serif;
  font-size: 4.9333333333vw;
  font-weight: 600;
  line-height: 1.1621621622;
  letter-spacing: 0.1em;
  color: #201f2d;
  text-decoration: none;
}
@media (min-width: 768px) {
  .l-nav-drawer__pillar {
    font-size: 1.9270833333vw;
  }
}
.l-nav-drawer__pillar:hover {
  opacity: 0.7;
}
.l-nav-drawer__access {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.3333333333vw;
  width: fit-content;
  max-width: 100%;
  margin-top: 12.8vw;
  margin-right: auto;
  margin-left: auto;
  font-family: "Noto Serif JP", serif;
  font-size: 4.2666666667vw;
  font-weight: 600;
  line-height: 1.09375;
  letter-spacing: 0.1em;
  color: #201f2d;
  text-decoration: none;
}
@media (min-width: 768px) {
  .l-nav-drawer__access {
    font-size: 1.6666666667vw;
  }
}
.l-nav-drawer__access:hover {
  opacity: 0.7;
}
.l-nav-drawer__access-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
}
.l-nav-drawer__access-icon img {
  display: block;
  width: 4vw;
  height: auto;
}
@media (min-width: 768px) {
  .l-nav-drawer__access-icon img {
    width: 1.5625vw;
  }
}
.l-nav-drawer__access-label {
  transform: translateY(0.2666666667vw);
}
.l-nav-drawer__recruit {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 9.6vw;
  gap: 3.4666666667vw;
}
@media (min-width: 768px) {
  .l-nav-drawer__recruit {
    margin-top: 3.75vw;
    gap: 1.3541666667vw;
  }
}
.l-nav-drawer__recruit-line {
  display: block;
  width: 64vw;
  max-width: 100%;
  height: 0.2666666667vw;
  background-color: #201f2d;
}
@media (min-width: 768px) {
  .l-nav-drawer__recruit-line {
    width: 25vw;
    height: 0.1041666667vw;
  }
}
.l-nav-drawer__recruit-link {
  font-family: "Noto Serif JP", serif;
  font-size: 4.8vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.1em;
  color: #201f2d;
  text-decoration: none;
}
.l-nav-drawer__recruit-link:hover {
  opacity: 0.7;
}
.l-nav-drawer__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 2.1333333333vw;
  margin-top: 6.4vw;
}
.l-nav-drawer__tel-label {
  font-family: "Cormorant Garamond", serif;
  font-size: 5.7333333333vw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #201f2d;
}
@media (min-width: 768px) {
  .l-nav-drawer__tel-label {
    font-size: 2.2395833333vw;
  }
}
.l-nav-drawer__tel-num {
  font-family: "Noto Serif JP", serif;
  font-size: 6.9333333333vw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #201f2d;
  text-decoration: none;
}
@media (min-width: 768px) {
  .l-nav-drawer__tel-num {
    font-size: 2.7083333333vw;
  }
}
.l-nav-drawer__tel-num:hover {
  opacity: 0.7;
}
.l-nav-drawer__contact {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  width: 76.2666666667vw;
  min-height: 20.1333333333vw;
  margin-top: 10.6666666667vw;
  padding: 3.2vw 2.1333333333vw;
  margin-right: auto;
  margin-left: auto;
  border: 1px solid #3c3a59;
  background-color: #201f2d;
  font-family: "Shippori Mincho", serif;
  font-size: 5.4666666667vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.1em;
  color: #fff;
  text-align: center;
  text-decoration: none;
}
@media (min-width: 768px) {
  .l-nav-drawer__contact {
    width: 29.7916666667vw;
    min-height: 7.8645833333vw;
    margin-top: 4.1666666667vw;
    padding: 1.25vw 0.8333333333vw;
    font-size: 2.1354166667vw;
  }
}
.l-nav-drawer__contact:hover {
  opacity: 0.7;
}
.l-nav-drawer__sns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.4vw;
  width: fit-content;
  margin-top: 9.6vw;
  margin-right: auto;
  margin-left: auto;
  font-family: "Noto Serif JP", serif;
  font-size: 3.8666666667vw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #201f2d;
  text-decoration: none;
}
@media (min-width: 768px) {
  .l-nav-drawer__sns {
    font-size: 1.5104166667vw;
  }
}
.l-nav-drawer__sns:hover {
  opacity: 0.7;
}
.l-nav-drawer__sns-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
}
.l-nav-drawer__sns-icon img {
  display: block;
  width: 6.8vw;
  height: auto;
}
@media (min-width: 768px) {
  .l-nav-drawer__sns-icon img {
    width: 2.65625vw;
  }
}
.l-nav-drawer__sns-text {
  transform: translateY(0.2666666667vw);
}

.l-sidebar__inner {
  position: relative;
  width: 100%;
  height: 100vh;
  padding: 58px 30px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow-y: scroll;
}
.l-sidebar__inner::-webkit-scrollbar {
  background-color: transparent;
  width: 8px;
}
.l-sidebar__inner::-webkit-scrollbar-thumb {
  background-color: #201f2d;
  border-radius: 999px;
}
.l-sidebar__inner::-webkit-scrollbar-track {
  background-color: transparent;
}
.l-sidebar__upper {
  margin-top: 0;
  margin-bottom: auto;
}
.l-sidebar__lower {
  margin-top: auto;
  margin-bottom: 0;
}
.l-sidebar__logo {
  text-align: center;
}
.l-sidebar__logo img {
  width: 200px;
}
.l-sidebar__nav {
  margin-top: 4.5833333333vw;
  display: inline-flex;
  justify-content: center;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
}
.l-sidebar__nav__link {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.35;
  writing-mode: vertical-rl;
  transition: opacity 0.2s ease;
}
.l-sidebar__nav__link span {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
}
.l-sidebar__nav__link span::before {
  content: "";
  display: block;
  width: 1px;
  height: 100%;
  background-color: #201f2d;
  position: absolute;
  right: -2px;
  top: 0;
  transform: scaleY(0%);
  transition: transform 0.2s ease;
  transform-origin: center bottom;
}
.l-sidebar__nav__link:hover span::before {
  transform: scaleY(100%);
  transform-origin: center top;
}
.l-sidebar__access {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin-top: 7.2916666667vw;
}
.l-sidebar__access .icon {
  width: 14px;
}
.l-sidebar__access .icon img {
  vertical-align: middle;
  position: relative;
  top: -2px;
}
.l-sidebar__access-text {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
}
.l-sidebar__recruit {
  width: 220px;
  margin-top: 1.3020833333vw;
}
.l-sidebar__recruit a {
  display: block;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  padding: 10px 0;
  border-top: 1px solid #201f2d;
  border-bottom: 1px solid #201f2d;
}
.l-sidebar__tel {
  display: flex;
  align-items: flex-end;
  margin-top: 2.0833333333vw;
  gap: 6px;
}
.l-sidebar__tel__label {
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #201f2d;
}
.l-sidebar__tel__number a {
  font-family: "Noto Serif JP", serif;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #201f2d;
  display: block;
}
.l-sidebar__contact {
  margin-top: 14px;
}
.l-sidebar__contact a {
  display: block;
  background-color: #201f2d;
  color: #fff;
  font-family: "Shippori Mincho", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease;
  padding: 16px 0;
}
.l-sidebar__contact a:hover {
  opacity: 0.9;
}
.l-sidebar__sns {
  margin-top: 34px;
}
.l-sidebar__sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.l-sidebar__sns .icon {
  width: 24px;
  margin-top: 8px;
}
.l-sidebar__sns__text {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #201f2d;
}

.l-footer {
  position: relative;
  width: 100%;
  background-color: #201f2d;
  color: #fff;
}
.l-footer__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 577px;
  padding: 123px 0 50px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .l-footer__inner {
    padding: 123px 80px 50px;
  }
}
@media (max-width: 639px) {
  .l-footer__inner {
    min-height: 0;
    padding: 18.6666666667vw 9.0666666667vw 19.3333333333vw;
    box-sizing: border-box;
  }
}
.l-footer__upper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 1024px) {
  .l-footer__upper {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }
}
.l-footer__brand {
  display: none;
}
@media (max-width: 639px) {
  .l-footer__brand {
    display: block;
  }
}
.l-footer__brand-sub {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
}
@media (max-width: 639px) {
  .l-footer__brand-sub {
    font-size: 3.8666666667vw;
    line-height: 1;
    letter-spacing: 0.06em;
    color: #fff;
  }
}
.l-footer__brand-main {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
}
@media (max-width: 639px) {
  .l-footer__brand-main {
    margin-top: 2.1333333333vw;
    font-size: 5.7333333333vw;
    line-height: 1;
    letter-spacing: 0.06em;
    color: #fff;
  }
}
.l-footer__logo {
  max-width: 235px;
}
@media (max-width: 639px) {
  .l-footer__logo {
    display: none;
  }
}
.l-footer__logo img {
  display: block;
  height: auto;
}
.l-footer__address {
  margin-top: 50px;
  font-family: "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
}
@media (max-width: 639px) {
  .l-footer__address {
    margin-top: 11.3333333333vw;
    margin-bottom: 0;
  }
}
.l-footer__address .address {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
}
@media (max-width: 639px) {
  .l-footer__address .address {
    font-size: 2.9333333333vw;
    font-weight: 600;
    line-height: 1.545;
    letter-spacing: 0.0467em;
  }
}
.l-footer__tel {
  display: flex;
  gap: 6px;
  align-items: flex-end;
}
@media (max-width: 639px) {
  .l-footer__tel {
    margin-top: 2.2666666667vw;
    align-items: baseline;
    gap: 1.8666666667vw;
    flex-wrap: wrap;
    row-gap: 0.5333333333vw;
  }
}
.l-footer__tel .label {
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
}
@media (max-width: 639px) {
  .l-footer__tel .label {
    font-size: 4.5333333333vw;
    font-weight: 600;
    letter-spacing: 0.06em;
    line-height: 1;
  }
}
.l-footer__tel .tel a {
  font-family: "Shippori Mincho", serif;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
}
@media (max-width: 639px) {
  .l-footer__tel .tel a {
    font-size: 5.3333333333vw;
    font-weight: 600;
    letter-spacing: 0.06em;
  }
}
@media (max-width: 639px) {
  .l-footer__nav {
    width: 100%;
    margin-top: 19.8666666667vw;
    box-sizing: border-box;
  }
}
.l-footer__nav__list {
  display: flex;
  flex-direction: row-reverse;
  gap: 25px;
}
@media (max-width: 639px) {
  .l-footer__nav__list {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    gap: 6.6666666667vw;
    width: 100%;
    padding: 0;
    margin: 0;
  }
}
.l-footer__nav__list__item {
  writing-mode: vertical-rl;
}
@media (min-width: 1024px) {
  .l-footer__nav__list__item--recruit-sp {
    display: none;
  }
}
@media (max-width: 639px) {
  .l-footer__nav__list__item {
    flex: 0 0 auto;
  }
  .l-footer__nav__list__item:nth-child(1) {
    order: 8;
  }
  .l-footer__nav__list__item:nth-child(2) {
    order: 7;
  }
  .l-footer__nav__list__item:nth-child(3) {
    order: 6;
  }
  .l-footer__nav__list__item:nth-child(4) {
    order: 5;
  }
  .l-footer__nav__list__item:nth-child(5) {
    order: 4;
  }
  .l-footer__nav__list__item:nth-child(6) {
    order: 3;
  }
  .l-footer__nav__list__item:nth-child(7) {
    order: 2;
  }
  .l-footer__nav__list__item:nth-child(8) {
    order: 1;
  }
}
.l-footer__nav__list__item a {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
  transition: opacity 0.2s ease;
  display: inline-block;
}
@media (max-width: 639px) {
  .l-footer__nav__list__item a {
    font-size: 3.4666666667vw;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.545;
  }
}
.l-footer__nav__list__item a:hover {
  opacity: 0.8;
}
.l-footer__lower {
  margin-top: 287px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 639px) {
  .l-footer__lower {
    align-items: center;
    margin-top: 6.9333333333vw;
    padding-bottom: 0;
  }
}
.l-footer__privacy-block {
  display: flex;
  flex-flow: row wrap;
  gap: 38px;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
}
@media (max-width: 639px) {
  .l-footer__privacy-block {
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: 100%;
    margin-top: 16.1333333333vw;
    text-align: center;
    font-size: 3.4666666667vw;
  }
}
.l-footer__privacy-block .icon {
  width: 15px;
  margin-left: 5px;
  vertical-align: middle;
  display: inline-block;
}
@media (max-width: 639px) {
  .l-footer__privacy-block .icon {
    width: 2.6666666667vw;
    height: 2.6666666667vw;
    margin-left: 0.9333333333vw;
  }
}
.l-footer__privacy-block .icon img {
  width: 100%;
  height: auto;
  display: block;
}
.l-footer__privacy-link {
  display: inline-flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.l-footer__privacy-link:hover {
  text-decoration: underline;
}
@media (max-width: 639px) {
  .l-footer__privacy-link {
    box-sizing: border-box;
    justify-content: center;
    padding: 0 0 1.6vw;
    font-family: "Noto Serif JP", serif;
    font-size: 3.4666666667vw;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.077;
    border-bottom: 0.1333333333vw solid rgba(255, 255, 255, 0.9);
    width: 41.0666666667vw;
    max-width: 100%;
    margin-inline: auto;
  }
}
@media (min-width: 1024px) {
  .l-footer__privacy-link {
    border-bottom: none;
    padding-bottom: 0;
  }
}
.l-footer__copyright {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
  white-space: nowrap;
}
@media (max-width: 639px) {
  .l-footer__copyright {
    margin-top: 3.0666666667vw;
    font-family: "Cormorant Garamond", serif;
    font-size: 3.4666666667vw;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1;
  }
}
.l-footer__totop {
  position: absolute;
  right: 54px;
  bottom: 52px;
}
@media (max-width: 639px) {
  .l-footer__totop {
    position: static;
    align-self: center;
    margin-top: 8.5333333333vw;
  }
}
.l-footer__totop a {
  text-decoration: none;
  color: inherit;
}
@media (max-width: 639px) {
  .l-footer__totop a {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .l-footer__totop a {
    display: block;
    position: relative;
  }
}
.l-footer__totop a::before {
  content: "";
  flex-shrink: 0;
}
@media (max-width: 639px) {
  .l-footer__totop a::before {
    width: 0.2666666667vw;
    height: 25.3333333333vw;
    margin: 0 0 1.8666666667vw;
    background-color: #fff;
  }
}
@media (min-width: 1024px) {
  .l-footer__totop a::before {
    width: 1px;
    height: 130px;
    margin: 0;
    background-color: #fff;
    position: absolute;
    left: 50%;
    top: -140px;
    transform: translateX(-50%);
    display: block;
  }
}
.l-footer__totop-line {
  height: 130.75px;
  width: 1.5px;
}
.l-footer__totop-text {
  display: block;
  text-align: center;
  font-family: "Cormorant Garamond", serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: #fff;
  text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
}
@media (max-width: 639px) {
  .l-footer__totop-text {
    margin-top: 0;
    font-size: 3.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1;
    text-shadow: none;
  }
}

.c-heading_lv2 {
  margin: 0;
}
.c-heading_lv2 .en {
  margin: 0 0 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.2;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .c-heading_lv2 .en {
    font-size: 18px;
  }
}
@media (max-width: 639px) {
  .c-heading_lv2 .en {
    margin-bottom: 0;
    font-size: 3.2vw;
  }
}
.c-heading_lv2 .jp {
  font-family: "Shippori Mincho", serif;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.3;
  border-bottom: 1px solid #000;
  display: inline-block;
  padding-bottom: 14px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .c-heading_lv2 .jp {
    font-size: 34px;
  }
}
@media (max-width: 639px) {
  .c-heading_lv2 .jp {
    font-size: 6.4vw;
    padding-bottom: 2.2666666667vw;
  }
}

.c-heading_lv3 {
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: column;
  margin-right: 0;
  margin-left: auto;
}
.c-heading_lv3 .en {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  position: relative;
  top: 6px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .c-heading_lv3 .en {
    font-size: 18px;
  }
}
.c-heading_lv3 .jp {
  font-family: "Shippori Mincho", serif;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
  border-right: 1px solid #201f2d;
  padding-right: 3px;
  margin-right: 10px;
  display: inline-flex;
  flex-direction: column;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .c-heading_lv3 .jp {
    font-size: 34px;
  }
}
.c-heading_lv3 .jp > span {
  display: inline-flex;
}
.c-heading_lv3 .jp > span + span {
  display: inline-flex;
  margin-right: 10px;
  padding-right: 4px;
}
.c-heading_lv3 .jp > span + span span {
  border-right: 1px solid #201f2d;
}

.c-breadcrumb {
  padding-top: 18px;
}
@media (max-width: 639px) {
  .c-breadcrumb {
    padding-top: 3.0666666667vw;
  }
}
.c-breadcrumb__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 0;
}
@media (min-width: 640px) and (max-width: 1535px) {
  .c-breadcrumb__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
@media (max-width: 767px) {
  .c-breadcrumb__inner {
    min-width: 0;
  }
}
@media (max-width: 639px) {
  .c-breadcrumb__inner {
    box-sizing: border-box;
    max-width: none;
    padding: 1.6vw 5.3333333333vw;
  }
}
.c-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .c-breadcrumb__list {
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 639px) {
  .c-breadcrumb__list {
    flex-wrap: nowrap;
  }
}
.c-breadcrumb__list__item {
  display: flex;
  align-items: center;
}
.c-breadcrumb__list__item:first-of-type::before {
  content: "";
  display: block;
  background-image: url("../images/common/icon_home_01.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 21px;
  height: 21px;
  margin-right: 8px;
}
.c-breadcrumb__list__item:not(:first-of-type)::before {
  content: "";
  width: 10px;
  height: 10px;
  display: block;
  border-right: 1px solid #201f2d;
  border-bottom: 1px solid #201f2d;
  transform: rotate(-45deg);
  margin-right: 10px;
}
.c-breadcrumb__list__item a:hover {
  text-decoration: underline;
}
@media (max-width: 767px) {
  .c-breadcrumb__list__item.is-current {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
  }
}
@media (max-width: 767px) {
  .c-breadcrumb__list__item:not(.is-current) {
    flex-shrink: 0;
  }
  .c-breadcrumb__list__item a {
    white-space: nowrap;
  }
}
@media (max-width: 639px) {
  .c-breadcrumb__list__item {
    font-family: "Noto Serif JP", serif;
    font-size: 3.2vw;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: #201f2d;
  }
  .c-breadcrumb__list__item:not(.is-current) {
    flex-shrink: 0;
  }
  .c-breadcrumb__list__item a {
    color: inherit;
    white-space: nowrap;
  }
  .c-breadcrumb__list__item:first-of-type::before {
    flex-shrink: 0;
    width: 5.6vw;
    height: 5.3333333333vw;
    margin-right: 1.0666666667vw;
  }
  .c-breadcrumb__list__item:not(:first-of-type)::before {
    width: 2.1333333333vw;
    height: 2.1333333333vw;
    margin-right: 1.3333333333vw;
  }
}
@media (max-width: 767px) {
  .c-breadcrumb__current {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(100%, 14ic);
  }
  @supports not (width: 1ic) {
    .c-breadcrumb__current {
      max-width: min(100%, 14ch);
    }
  }
}

body.home .l-main {
  overflow-x: hidden;
  overflow-y: visible;
}
body.home .l-cta {
  margin-top: 108px;
}
@media (max-width: 639px) {
  body.home .l-cta {
    margin-top: 0vw;
  }
}
body.home img {
  vertical-align: top;
}
body.home .p-hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  isolation: isolate;
  overflow: visible;
  background-image: url(../images/home/hero_01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
body.home .p-hero__title {
  position: absolute;
  left: 220px;
  top: 145px;
  display: flex;
}
body.home .p-hero__title__jp {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: row-reverse;
  gap: 18px;
}
body.home .p-hero__title__jp__item {
  writing-mode: vertical-rl;
  font-family: "Shippori Mincho", serif;
  font-size: 63px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
  white-space: nowrap;
  padding-right: 5px;
  position: relative;
}
body.home .p-hero__title__jp__item::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: -1px;
  width: 1px;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
}
body.home .p-hero__title__jp__item:last-of-type::before {
  height: 84%;
}
body.home .p-hero__title__copy {
  margin-top: 4px;
  font-family: "Cormorant Garamond", serif;
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  line-height: 1.8;
  letter-spacing: 0.2em;
  text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
}
@media (min-width: 640px) {
  body.home .p-hero__title__copy {
    font-size: 12px;
    letter-spacing: 0.12em;
  }
}
@media (min-width: 768px) {
  body.home .p-hero__title__copy {
    margin-top: 0;
    font-size: 14px;
    line-height: 34px;
    letter-spacing: 0.12em;
    margin-left: 24px;
  }
}
@media (min-width: 1024px) {
  body.home .p-hero__title__copy {
    font-size: 17px;
    line-height: 43px;
    letter-spacing: 0.12em;
    margin-left: calc(48px + 14px);
  }
}
body.home .p-hero__jp__sp {
  display: block;
  font-family: "Shippori Mincho", serif;
  font-size: 30px;
  font-weight: 400;
  color: #fff;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
  writing-mode: vertical-rl;
}
@media (min-width: 640px) {
  body.home .p-hero__jp__sp {
    font-size: 38px;
    letter-spacing: 0.12em;
  }
}
@media (min-width: 768px) {
  body.home .p-hero__jp__sp {
    display: none;
  }
}
body.home .p-hero__scroll {
  position: absolute;
  z-index: 3;
  bottom: 0;
  right: 50px;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  display: flex;
}
body.home .p-hero__scroll-text {
  margin: 0;
  margin-inline-end: 2px;
  height: auto;
  width: auto;
  writing-mode: vertical-lr;
  white-space: nowrap;
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: #fff;
}
body.home .p-hero__scroll-line {
  display: block;
  box-sizing: border-box;
  width: 0;
  height: 115px;
  border: 0;
  border-inline-start: 2px solid rgba(255, 255, 255, 0.9);
  position: relative;
}
body.home .p-hero__scroll-line-bar {
  background-color: #5E5E5E;
  width: 2px;
  height: 20px;
  position: absolute;
  left: -2px;
  top: 0;
  z-index: 2;
  animation: scroll-bar-animation 2s 2.5s infinite;
}
@keyframes scroll-bar-animation {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(95px);
  }
}
@media (max-width: 639px) {
  body.home .p-hero {
    min-height: 141.3333333333vw;
    background-image: url(../images/home/hero_01_sp.jpg);
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
  }
  body.home .p-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse 120% 70% at 8% 14%, rgba(176, 194, 222, 0.28) 0%, rgba(176, 194, 222, 0.08) 42%, transparent 62%);
  }
}
@media (max-width: 639px) {
  body.home .p-hero__title {
    position: absolute;
    z-index: 2;
    left: 4.6666666667vw;
    right: 4.6666666667vw;
    top: 32.6666666667vw;
    bottom: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    gap: 4.8vw;
    max-width: calc(100% - 9.3333333333vw);
  }
}
@media (max-width: 639px) {
  body.home .p-hero__title__jp {
    display: flex !important;
    flex-direction: row-reverse;
    justify-content: flex-start;
    align-items: flex-start;
    flex-shrink: 0;
    gap: 3.3333333333vw;
    margin-right: 6vw;
  }
  body.home .p-hero__title__jp__item {
    position: relative;
    font-size: 9.0666666667vw;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.35;
    flex-shrink: 0;
  }
  body.home .p-hero__title__jp__item + body.home .p-hero__title__jp__item {
    padding-right: 2.9333333333vw;
    margin-right: 2.9333333333vw;
  }
}
@media (max-width: 639px) {
  body.home .p-hero__jp__sp {
    display: none !important;
  }
}
@media (max-width: 639px) {
  body.home .p-hero__title__copy {
    margin-top: 0.5333333333vw !important;
    margin-left: 0 !important;
    flex: 0 1 auto;
    align-self: flex-start;
    font-size: 2.2666666667vw;
    font-weight: 600;
    line-height: 2.4;
    letter-spacing: 0.14em;
    white-space: normal;
    text-align: left;
    max-width: 40vw;
  }
}
@media (max-width: 639px) {
  body.home .p-hero__scroll {
    z-index: 3;
    right: 3.7333333333vw;
    bottom: 0vw;
    gap: 1.8666666667vw;
  }
}
@media (max-width: 639px) {
  body.home .p-hero__scroll-text {
    font-size: 2.9333333333vw;
    letter-spacing: 0.18em;
  }
}
@media (max-width: 639px) {
  body.home .p-hero__scroll-line {
    height: 21.3333333333vw;
  }
  body.home .p-hero__scroll-line-bar {
    animation: hero-scroll-bar-sp 2s 2.5s infinite;
  }
}
@media (max-width: 639px) {
  @keyframes hero-scroll-bar-sp {
    0% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(17.3333333333vw);
    }
  }
}
body.home .p-before_after {
  position: relative;
  width: 100%;
  background-image: url(../images/home/image_about_before_01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 639px) {
  body.home .p-before_after {
    background-image: url(../images/home/image_about_before_01_sp.jpg);
  }
}
body.home .p-before_after__inner {
  width: 100%;
  margin: 0 auto;
  max-width: 100%;
}
body.home .p-before_after .pin-spacer {
  background-image: url(../images/home/bg_about_01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
body.home .p-before_after__stack {
  display: grid;
  width: 100%;
  isolation: isolate;
  transform: translateZ(0);
  backface-visibility: hidden;
  background-image: url(../images/home/image_about_before_01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 639px) {
  body.home .p-before_after__stack {
    background-image: url(../images/home/image_about_before_01_sp.jpg);
    will-change: transform;
  }
}
body.home .p-before_after__img {
  grid-area: 1/1;
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3280/1356;
}
body.home .p-before_after__img img {
  width: 100%;
  height: auto;
  display: block;
}
body.home .p-before_after__img--before {
  z-index: 1;
}
body.home .p-before_after__img--after {
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
  transform: translateZ(0);
  backface-visibility: hidden;
}
@media (max-width: 639px) {
  body.home .p-before_after__stack {
    width: 100%;
  }
  body.home .p-before_after__img {
    width: 100%;
    display: block;
    height: auto;
    aspect-ratio: 1500/1470;
  }
  body.home .p-before_after__img img {
    width: 100%;
  }
}
body.home .p-about {
  position: relative;
  width: 100%;
  background-image: url(../images/home/bg_about_01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 190px 0;
}
@media (max-width: 639px) {
  body.home .p-about {
    padding: 16vw 4.6666666667vw 14.9333333333vw;
    box-sizing: border-box;
    min-height: 700px;
  }
}
body.home .p-about__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  writing-mode: vertical-rl;
  direction: ltr;
}
@media (max-width: 639px) {
  body.home .p-about__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0vw;
    max-width: none;
    margin: 0 auto;
  }
}
body.home .p-about .title {
  margin-left: 120px;
}
@media (min-width: 640px) and (max-width: 1023px) {
  body.home .p-about .title {
    margin-left: 80px;
  }
}
@media (max-width: 639px) {
  body.home .p-about .title {
    margin-left: 0;
    margin-right: 0;
    text-align: start;
    height: 47.3333333333vw;
  }
}
body.home .p-about .title .en {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  margin-left: 7px;
}
@media (max-width: 639px) {
  body.home .p-about .title .en {
    font-size: 2.6666666667vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body.home .p-about .title .jp {
  font-family: "Shippori Mincho", serif;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.3;
  border-right: 1px solid #201f2d;
  padding-right: 4px;
}
@media (max-width: 639px) {
  body.home .p-about .title .jp {
    margin-top: 0;
    font-size: 5.3333333333vw;
    padding-right: 0.8vw;
    padding-bottom: 0;
    border-right: 1px solid #201f2d;
    border-bottom: none;
  }
}
body.home .p-about .lead {
  line-height: 2.2;
  letter-spacing: 0.17em;
  font-size: 18px;
  font-weight: 600;
  margin-left: 140px;
}
@media (min-width: 640px) and (max-width: 1023px) {
  body.home .p-about .lead {
    margin-left: 80px;
  }
}
@media (max-width: 639px) {
  body.home .p-about .lead {
    margin-left: 0;
    margin-right: 0;
    margin-top: 10.8vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 1.95;
    letter-spacing: 0.15em;
    text-align: start;
    text-orientation: mixed;
    height: 70.6666666667vw;
  }
}
body.home .p-about .more {
  margin-bottom: 0;
  margin-top: auto;
}
@media (max-width: 639px) {
  body.home .p-about .more {
    writing-mode: horizontal-tb;
    direction: ltr;
    margin-top: 14.1333333333vw;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
    width: 100%;
    max-width: 69.3333333333vw;
    align-self: center;
    text-align: center;
  }
}
body.home .p-about .more a {
  display: flex;
  align-items: center;
  font-size: 18px;
  gap: 12px;
  font-weight: 600;
  letter-spacing: 0.15em;
  line-height: 1.3;
  color: #201f2d;
}
@media (max-width: 639px) {
  body.home .p-about .more a {
    justify-content: center;
    font-size: 3.4666666667vw;
    gap: 1.8666666667vw;
  }
}
body.home .p-blog {
  position: relative;
  width: 100%;
  padding: 146px 16px;
}
@media (min-width: 768px) {
  body.home .p-blog {
    padding: 48px 40px;
  }
}
@media (min-width: 1280px) {
  body.home .p-blog {
    padding: 146px 0;
  }
}
@media (max-width: 639px) {
  body.home .p-blog {
    padding: 30.5333333333vw 4.6666666667vw 17.3333333333vw;
    box-sizing: border-box;
  }
}
body.home .p-blog__inner {
  width: 100%;
  display: flex;
}
@media (min-width: 768px) {
  body.home .p-blog__inner {
    flex-direction: row;
    max-width: 1200px;
    margin: 0 auto;
    justify-content: space-between;
    padding: 0 80px;
  }
}
@media (min-width: 1536px) {
  body.home .p-blog__inner {
    max-width: 1200px;
    margin: 0 auto;
  }
}
@media (max-width: 639px) {
  body.home .p-blog__inner {
    display: flex;
    flex-direction: column;
    max-width: none;
    margin: 0;
    padding: 0;
  }
}
body.home .p-blog__head {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  flex: 1;
}
@media (max-width: 639px) {
  body.home .p-blog__head {
    display: contents;
  }
}
@media (max-width: 639px) {
  body.home .p-blog__title {
    order: 1;
  }
}
body.home .p-blog__title .en {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
@media (max-width: 639px) {
  body.home .p-blog__title .en {
    font-size: 3.2vw;
  }
}
body.home .p-blog__title .jp {
  margin-top: 7px;
  font-family: "Shippori Mincho", serif;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  padding-bottom: 14px;
  border-bottom: 1px solid #201f2d;
  display: inline-block;
}
@media (max-width: 639px) {
  body.home .p-blog__title .jp {
    margin-top: 1.0666666667vw;
    font-size: 6.4vw;
    padding-bottom: 1.8666666667vw;
  }
}
body.home .p-blog__more {
  margin-top: 42px;
  gap: 18px;
}
@media (max-width: 639px) {
  body.home .p-blog__more {
    order: 3;
    margin-top: 10.1333333333vw;
  }
}
body.home .p-blog__more a {
  display: flex;
  align-items: center;
  gap: 18px;
}
@media (max-width: 639px) {
  body.home .p-blog__more a {
    justify-content: center;
    margin: 0 auto;
    gap: 2.4vw;
  }
}
@media (max-width: 639px) {
  body.home .p-blog__more .text {
    font-size: 3.4666666667vw;
  }
}
@media (max-width: 639px) {
  body.home .p-blog__more .icon {
    width: 10vw;
    height: 10vw;
  }
}
body.home .p-blog__body {
  width: 100%;
  max-width: 868px;
}
@media (min-width: 768px) {
  body.home .p-blog__body {
    width: 70%;
  }
}
@media (min-width: 1536px) {
  body.home .p-blog__body {
    max-width: 868px;
  }
}
@media (max-width: 639px) {
  body.home .p-blog__body {
    order: 2;
    width: 100%;
    max-width: none;
    margin-top: 4.8vw;
  }
}
body.home .p-blog__body .text {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 600;
  color: #201f2d;
  white-space: nowrap;
}
body.home .p-blog__body .icon {
  width: 44.38px;
  height: auto;
}
body.home .p-blog__body .icon img {
  vertical-align: middle;
}
body.home .p-blog__list {
  display: flex;
  flex-direction: column;
}
body.home .p-blog__list__item {
  width: 100%;
  border-bottom: 1px solid #d9d9d9;
  transition: border-bottom-color 0.2s ease;
}
body.home .p-blog__list__item:hover {
  border-bottom-color: #201f2d;
}
body.home .p-blog__list__item a {
  display: flex;
  align-items: center;
  padding: 24px 0;
}
@media (max-width: 639px) {
  body.home .p-blog__list__item a {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 5.8666666667vw;
    row-gap: 4.6666666667vw;
    align-items: start;
    padding: 5.6vw 0;
    box-sizing: border-box;
  }
}
body.home .p-blog__list__item .date {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #969696;
  white-space: nowrap;
}
@media (max-width: 639px) {
  body.home .p-blog__list__item .date {
    grid-column: 1;
    grid-row: 1;
    font-size: 3.2vw;
  }
}
body.home .p-blog__list__item .category {
  margin-left: 24px;
  padding: 4px 20px;
  border: 1px solid #969696;
  line-height: 1;
  font-size: 13px;
  white-space: nowrap;
}
@media (max-width: 639px) {
  body.home .p-blog__list__item .category {
    grid-column: 2;
    grid-row: 1;
    margin-left: 0;
    padding: 1.3333333333vw 5.7333333333vw;
    font-size: 2.9333333333vw;
    line-height: 1.2;
  }
}
body.home .p-blog__list__item .title {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  flex: 1;
  margin-left: 15px;
}
@media (max-width: 639px) {
  body.home .p-blog__list__item .title {
    grid-column: 1/4;
    grid-row: 2;
    margin: 0;
    padding-right: 2.1333333333vw;
    font-size: 3.4666666667vw;
    line-height: 1.5;
    white-space: normal;
    align-self: center;
    min-width: 0;
  }
}
body.home .p-blog__list__item .icon {
  margin-right: 0;
  margin-left: auto;
  width: 30px;
  margin-left: 15px;
}
@media (max-width: 639px) {
  body.home .p-blog__list__item .icon {
    grid-column: 4;
    grid-row: 2;
    width: 7.6vw;
    height: auto;
    margin: 0;
    align-self: center;
    justify-self: end;
    opacity: 0.4;
    position: relative;
    bottom: -2.6666666667vw;
  }
}
body.home .p-page_navi .c-heading_lv3 {
  color: #fff;
  position: absolute;
}
body.home .p-page_navi .c-heading_lv3 .jp {
  border-right-color: #fff;
}
body.home .p-page_navi svg,
body.home .p-page_navi img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.home .p-page_navi .arrow {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 80px;
}
body.home .p-page_navi .bg {
  height: 100%;
}
body.home .p-page_navi .upper .facility a {
  min-height: 30.2083333333vw;
  position: relative;
}
body.home .p-page_navi .upper .facility a .c-heading_lv3 {
  right: 99px;
  top: 77px;
}
body.home .p-page_navi .lower {
  display: flex;
  flex-direction: row-reverse;
  margin-top: 1px;
  gap: 1px;
}
body.home .p-page_navi .lower > * {
  flex: 1;
}
body.home .p-page_navi .lower > * a {
  position: relative;
  width: 100%;
  height: 100%;
  display: block;
}
body.home .p-page_navi .lower > * a .c-heading_lv3 {
  right: 71px;
  top: 48px;
}
body.home .p-page_navi .lower .guide {
  min-height: 39.1666666667vw;
}
body.home .p-page_navi .lower .overview_access {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-height: 39.1666666667vw;
}
body.home .p-page_navi .lower .overview_access .overview {
  height: 50%;
}
body.home .p-page_navi .lower .overview_access .access {
  height: 50%;
}
@media (max-width: 639px) {
  body.home .p-page_navi__inner {
    display: flex;
    flex-direction: column;
    gap: 1px;
  }
  body.home .p-page_navi .upper {
    display: contents;
  }
  body.home .p-page_navi .upper .facility a {
    min-height: 80vw;
  }
  body.home .p-page_navi .upper .facility a .c-heading_lv3 {
    right: 4.6666666667vw;
    top: 7.0666666667vw;
  }
  body.home .p-page_navi .guide a {
    min-height: 79.4666666667vw;
  }
  body.home .p-page_navi .overview a {
    min-height: 50vw;
  }
  body.home .p-page_navi .access a {
    min-height: 50vw;
  }
  body.home .p-page_navi .lower {
    display: contents;
    margin-top: 0;
  }
  body.home .p-page_navi .lower > * a .c-heading_lv3 {
    right: 4.6666666667vw;
    top: 7.0666666667vw;
  }
  body.home .p-page_navi .overview_access {
    display: contents;
    min-height: 0 !important;
  }
  body.home .p-page_navi .guide {
    min-height: 0 !important;
  }
  body.home .p-page_navi .overview,
  body.home .p-page_navi .access {
    height: auto !important;
  }
  body.home .p-page_navi .facility,
  body.home .p-page_navi .guide,
  body.home .p-page_navi .overview,
  body.home .p-page_navi .access {
    width: 100%;
  }
  body.home .p-page_navi .facility a,
  body.home .p-page_navi .guide a,
  body.home .p-page_navi .overview a,
  body.home .p-page_navi .access a {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
    height: auto !important;
    box-sizing: border-box;
  }
  body.home .p-page_navi .bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
  }
  body.home .p-page_navi .c-heading_lv3 {
    z-index: 2;
    right: 3.7333333333vw;
    top: 4.8vw;
  }
  body.home .p-page_navi .c-heading_lv3 .en {
    font-size: 4vw;
    top: 0;
  }
  body.home .p-page_navi .c-heading_lv3 .jp {
    font-size: 5.2vw;
    padding-right: 2vw;
  }
  body.home .p-page_navi .arrow {
    z-index: 2;
    width: 13.2vw;
  }
}
body.home .p-recruit {
  margin-top: 108px;
}
@media (min-width: 768px) {
  body.home .p-recruit {
    flex-direction: row;
    max-width: 1200px;
    margin: 108px auto 0;
    justify-content: space-between;
    padding: 0 80px;
  }
}
@media (max-width: 639px) {
  body.home .p-recruit {
    margin-top: 9.6vw;
    padding-right: 4.5333333333vw;
    padding-left: 4.5333333333vw;
  }
}
@media (min-width: 1024px) {
  body.home .p-recruit {
    padding: 0;
  }
}
body.home .p-recruit__inner a {
  display: block;
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
  color: #fff;
  padding-top: 2.9166666667vw;
  padding-bottom: 3.6979166667vw;
  background-image: url(../images/home/bg_recruit_01.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  font-weight: 600;
}
@media (max-width: 639px) {
  body.home .p-recruit__inner a {
    padding-top: 10.9333333333vw;
    padding-bottom: 11.2vw;
    margin-bottom: 14vw;
    background-image: url(../images/home/bg_recruit_01_sp.jpg);
  }
}
body.home .p-recruit__inner .title {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
@media (max-width: 767px) {
  body.home .p-recruit__inner .title {
    font-size: 5.2vw;
  }
}
body.home .p-recruit__inner .title span {
  display: block;
  width: 35.625vw;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 767px) {
  body.home .p-recruit__inner .title span {
    width: 79.2vw;
  }
}
body.home .p-recruit__inner .lead {
  margin-top: 22px;
  font-size: 18px;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  body.home .p-recruit__inner .lead {
    font-size: 3.4666666667vw;
  }
}
body.home .p-recruit__inner .btn {
  margin-top: 31px;
  border: #fff 1px solid;
  text-align: center;
  display: inline-block;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding: 18px 27px 18px 40px;
}
@media (max-width: 767px) {
  body.home .p-recruit__inner .btn {
    font-size: 3.0666666667vw;
    padding: 3.7333333333vw 7.2vw 3.7333333333vw 9.3333333333vw;
    margin-top: 6.1333333333vw;
  }
}
body.home .p-recruit__inner .btn span {
  display: inline-block;
  margin-left: 14px;
}
body.home .p-recruit__inner .btn img {
  vertical-align: middle;
  width: 65px;
}
@media (max-width: 767px) {
  body.home .p-recruit__inner .btn img {
    width: 13.4666666667vw;
  }
}

body.about .p-page_bg_hero {
  background-image: url("../images/about/image_hero_01.jpg");
}
@media (max-width: 639px) {
  body.about .p-page_bg_hero {
    background-image: url("../images/about/image_hero_01_sp.jpg");
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.about .p-page_bg_hero {
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.about .p-page_bg_hero {
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) {
  body.about .p-page_bg_hero__inner {
    max-width: none;
    margin: 0;
    padding: 6.4vw 4.6666666667vw 6.9333333333vw;
    box-sizing: border-box;
  }
  body.about .p-page_bg_hero .c-heading_lv1 {
    text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
  }
  body.about .p-page_bg_hero .c-heading_lv1 .en {
    font-size: 4.9333333333vw;
    font-weight: 700;
    top: 0.5333333333vw;
  }
  body.about .p-page_bg_hero .c-heading_lv1 .jp {
    font-size: 6.4vw;
    font-weight: 600;
    padding-right: 1.8666666667vw;
    margin-right: 1.3333333333vw;
  }
}
@media (max-width: 639px) {
  body.about #about-greeting,
  body.about #about-vision,
  body.about #about-org {
    scroll-margin-top: 10.6666666667vw;
  }
}
@media (max-width: 639px) {
  body.about .p-intro.p-intro--about .c-breadcrumb {
    background-color: #fff;
    padding-bottom: 7.4666666667vw;
  }
}
body.about {
  /* ---------------------------------------------------------------------------
   * ご挨拶
   * ------------------------------------------------------------------------- */
}
body.about .p-greeting {
  margin-top: 158px;
}
body.about .p-greeting__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: row-reverse;
}
body.about .p-greeting__body {
  display: flex;
  flex-direction: row-reverse;
  margin-right: 100px;
}
body.about .p-greeting__body p {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 17.5px;
  margin-left: 2em;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
body.about .p-greeting__body p span {
  display: block;
  font-weight: 600;
}
body.about .p-greeting__body p b {
  writing-mode: horizontal-tb;
  line-height: 1;
  font-weight: 600;
}
body.about .p-greeting__body .signature {
  margin-right: 40px;
  text-align: right;
  font-weight: 600;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.about .p-greeting {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
  body.about .p-greeting__body {
    margin-right: 60px;
  }
  body.about .p-greeting__body p {
    font-size: 17px;
    margin-left: 3em;
  }
  body.about .p-greeting .signature {
    margin-right: 30px;
  }
}
@media (min-width: 640px) and (max-width: 1023px) {
  body.about .p-greeting {
    margin-top: 158px;
  }
  body.about .p-greeting__body {
    margin-right: 30px;
  }
  body.about .p-greeting__body p {
    font-size: 15px;
    margin-left: 3em;
  }
  body.about .p-greeting__body .signature {
    margin-right: 0px;
  }
}
@media (max-width: 639px) {
  body.about .p-greeting {
    margin-top: 11.7333333333vw;
  }
  body.about .p-greeting__inner {
    max-width: none;
    flex-direction: column;
    align-items: stretch;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.about .p-greeting__head {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 6.4vw;
  }
  body.about .p-greeting__head .c-heading_lv3 {
    margin-left: 0;
    margin-right: 0;
  }
  body.about .p-greeting__head .c-heading_lv3 .en {
    font-size: 3.0666666667vw;
    top: 0.6666666667vw;
  }
  body.about .p-greeting__head .c-heading_lv3 .jp {
    font-size: 6.4vw;
  }
  body.about .p-greeting__body {
    flex-direction: column;
    align-items: stretch;
    margin-right: 0;
  }
  body.about .p-greeting__body p:not(.signature) {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    margin-left: 0;
    margin-bottom: 3.7333333333vw;
    font-size: 3.4666666667vw;
    line-height: 2;
    letter-spacing: 0.04em;
    text-align: center;
  }
  body.about .p-greeting__body p:not(.signature):last-of-type {
    margin-bottom: 0;
  }
  body.about .p-greeting__body span {
    text-align: left;
    font-weight: 600;
  }
  body.about .p-greeting__body b {
    font-weight: 600;
  }
  body.about .p-greeting__body .signature {
    margin-top: 12.9333333333vw;
    margin-right: 0;
    text-align: right;
    font-size: 3.4666666667vw;
    letter-spacing: 0.1em;
    writing-mode: horizontal-tb;
    font-weight: 600;
  }
}
body.about {
  /* ---------------------------------------------------------------------------
  * Vision
  * ------------------------------------------------------------------------- */
}
body.about .p-vision {
  margin-top: 172px;
  background-color: #F7F7F7;
  padding: 85px 0 98px;
}
body.about .p-vision__inner {
  max-width: 1200px;
  margin: 0 auto;
}
body.about .p-vision__head {
  display: flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  justify-content: flex-end;
  padding-right: clamp(0px, 1vw, 20px);
  gap: 110px;
}
body.about .p-vision__head .figure {
  margin-top: 75px;
  display: block;
}
body.about .p-vision__title {
  border-bottom: 1px solid #201f2d;
  font-size: 30px;
  padding-bottom: 12px;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #201f2d;
}
body.about .p-vision__title.c-heading_lv3 {
  border-bottom: none;
  padding-bottom: 0;
}
body.about .p-vision__callouts {
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 3.5vw, 32px);
  padding-top: clamp(16px, 2vw, 28px);
  max-width: 540px;
}
@media (min-width: 1024px) {
  body.about .p-vision__callouts {
    margin-left: 0;
  }
}
body.about .p-vision__policy {
  margin-top: 120px;
}
body.about .p-vision__policy__list {
  padding: 0 59px;
}
body.about .p-vision__policy__list__item {
  margin-top: 86px;
  padding-top: 96px;
  display: flex;
  gap: 91px;
  border-top: 1px solid #DFDDE7;
}
body.about .p-vision__policy__list__item:first-of-type {
  margin-top: 78px;
  padding-top: 0;
  border-top: none;
}
body.about .p-vision__policy__list__item .figure {
  width: 287px;
}
body.about .p-vision__policy__list__item .content {
  flex: 1;
}
body.about .p-vision__policy__list__item .content .head {
  display: flex;
  gap: 13px;
  align-items: center;
}
body.about .p-vision__policy__list__item .content .head img {
  vertical-align: top;
}
body.about .p-vision__policy__list__item .content .head .title {
  font-size: 22px;
}
body.about .p-vision__policy__list__item .content .body {
  margin-top: 40px;
}
body.about .p-vision__policy__list__item .content .body .catch,
body.about .p-vision__policy__list__item .content .body .lead,
body.about .p-vision__policy__list__item .content .body li.catch {
  font-weight: 600;
}
body.about .p-vision__policy__list__item .content .body li + li {
  margin-top: 12px;
}
body.about .p-vision__policy__list__item .content .body dl {
  margin-top: 27px;
}
body.about .p-vision__policy__list__item .content .body li:first-of-type dl {
  margin-top: 0;
}
body.about .p-vision__policy__list__item .content .body .catch {
  display: flex;
  background-color: #FFFFFF;
  font-size: 17px;
  padding: 8px 10px;
  gap: 5px;
}
body.about .p-vision__policy__list__item .content .body .catch::before {
  content: "";
  display: block;
  width: 13px;
  height: 13px;
  background-color: #BFBFBF;
  border-radius: 50%;
  position: relative;
  top: 0.5em;
}
body.about .p-vision__policy__list__item .content .body .catch span {
  flex: 1;
}
body.about .p-vision__policy__list__item .content .body .lead {
  margin-top: 8px;
  display: flex;
  gap: 5px;
  font-size: 15px;
}
body.about .p-vision__policy__list__item .content .body .lead::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 12px;
  background: #bfbfbf;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
  position: relative;
  top: 0.4em;
}
body.about .p-vision__policy__list__item .content .body .lead span {
  flex: 1;
}
@media (max-width: 639px) {
  body.about .p-vision {
    margin-top: 17.4666666667vw;
    padding: 20.2666666667vw 0 18.9333333333vw;
  }
  body.about .p-vision__inner {
    max-width: none;
    margin: 0 auto;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.about .p-vision__head {
    flex-direction: column;
    align-items: center;
    padding-right: 0;
    gap: 5.3333333333vw;
  }
  body.about .p-vision__head .c-heading_lv3 {
    margin-left: auto;
    margin-right: auto;
    text-align: left;
    border-bottom: none;
  }
  body.about .p-vision__head .c-heading_lv3 .en {
    font-size: 3.0666666667vw;
    top: 0.6666666667vw;
  }
  body.about .p-vision__head .c-heading_lv3 .jp {
    font-size: 6.4vw;
  }
  body.about .p-vision__head .p-vision__thought {
    width: 100%;
    margin-top: 20.6666666667vw;
  }
  body.about .p-vision__head .p-vision__thought .figure {
    margin-top: 12vw;
    width: 100%;
    display: block;
  }
  body.about .p-vision__head .p-vision__thought .figure img {
    display: block;
    width: 100%;
    height: auto;
  }
  body.about .p-vision__title {
    font-size: 4.6666666667vw;
    padding-bottom: 2.4vw;
    text-align: left;
    box-sizing: border-box;
  }
  body.about .p-vision__thought .p-vision__title, body.about .p-vision__policy .p-vision__title {
    width: 100%;
  }
  body.about .p-vision__policy {
    margin-top: 20.1333333333vw;
  }
  body.about .p-vision__policy > .p-vision__title {
    border-bottom: 1px solid #d6d5d8;
    padding-bottom: 2.1333333333vw;
    margin-bottom: 0;
  }
  body.about .p-vision__policy__list {
    padding: 0;
  }
  body.about .p-vision__policy__list__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0vw;
    align-content: start;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    margin-top: 14.6666666667vw;
    padding-top: 14.6666666667vw;
    box-sizing: border-box;
    background-color: transparent;
    border-top: 1px solid #dfdde7;
  }
  body.about .p-vision__policy__list__item:first-of-type {
    margin-top: 5.3333333333vw;
    padding-top: 0;
    border-top: none;
  }
  body.about .p-vision__policy__list__item > .figure {
    grid-row: 2;
    width: 65.3333333333vw;
    max-width: none;
    margin: 0;
    flex-shrink: 0;
    margin-right: auto;
    margin-left: auto;
    margin-top: 4vw;
  }
  body.about .p-vision__policy__list__item > .figure img {
    display: block;
    width: 100%;
    height: auto;
  }
  body.about .p-vision__policy__list__item > .content {
    display: contents;
  }
  body.about .p-vision__policy__list__item > .content > .head {
    grid-row: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 2.6666666667vw;
    max-width: 65.3333333333vw;
    margin-right: auto;
    margin-left: auto;
  }
  body.about .p-vision__policy__list__item > .content > .head .num {
    position: relative;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 10.9333333333vw;
    height: 10.9333333333vw;
    box-sizing: border-box;
    border: none;
    border-radius: 50%;
    background-color: #201f2d;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.88);
  }
  body.about .p-vision__policy__list__item > .content > .head .num img {
    display: none;
  }
  body.about .p-vision__policy__list__item > .content > .head .num::after {
    font-family: "Shippori Mincho", serif;
    font-size: 3.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #fff;
    line-height: 1;
  }
  body.about .p-vision__policy__list__item > .content > .head .title {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 4.2666666667vw;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: 0.06em;
    color: #201f2d;
  }
  body.about .p-vision__policy__list__item > .content > .body {
    grid-row: 3;
    margin: 0;
    padding: 0;
    list-style: none;
    margin-top: 4.9333333333vw;
  }
  body.about .p-vision__policy__list__item > .content > .body li + li {
    margin-top: 3.2vw;
  }
  body.about .p-vision__policy__list__item > .content > .body dl {
    margin: 0;
  }
  body.about .p-vision__policy__list__item > .content > .body li:first-child dl {
    margin-top: 0;
  }
  body.about .p-vision__policy__list__item > .content > .body .catch {
    display: flex;
    align-items: flex-start;
    margin: 0;
    padding: 3.2vw 2.4vw;
    gap: 1.3333333333vw;
    font-size: 4vw;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.04em;
    color: #201f2d;
    background-color: #fff;
    border-radius: 1.0666666667vw;
    box-sizing: border-box;
  }
  body.about .p-vision__policy__list__item > .content > .body .catch::before {
    flex-shrink: 0;
    width: 3.7333333333vw;
    height: 3.7333333333vw;
    margin-top: 0.45em;
    background-color: #bfbfbf;
    top: auto;
  }
  body.about .p-vision__policy__list__item > .content > .body .catch span {
    flex: 1;
  }
  body.about .p-vision__policy__list__item > .content > .body li.catch {
    margin: 3.3333333333vw;
  }
  body.about .p-vision__policy__list__item > .content > .body .lead {
    display: flex;
    align-items: flex-start;
    margin: 4.9333333333vw 0 0;
    padding: 0;
    gap: 1.0666666667vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: 0.04em;
    color: #201f2d;
    background: transparent;
  }
  body.about .p-vision__policy__list__item > .content > .body .lead::before {
    flex-shrink: 0;
    width: 2.4vw;
    height: 3.3333333333vw;
    margin-top: 0.42em;
    background: #bfbfbf;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    top: auto;
  }
  body.about .p-vision__policy__list__item > .content > .body .lead span {
    flex: 1;
  }
  body.about .p-vision__policy__list__item:nth-child(1) .content .head .num::after {
    content: "01";
  }
  body.about .p-vision__policy__list__item:nth-child(2) .content .head .num::after {
    content: "02";
  }
  body.about .p-vision__policy__list__item:nth-child(3) .content .head .num::after {
    content: "03";
  }
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.about .p-vision__inner {
    width: 100%;
    max-width: 1200px;
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
body.about {
  /* ---------------------------------------------------------------------------
  * 運営法人パネル（1枠／薄いボーダー）
  * ------------------------------------------------------------------------- */
}
body.about .p-organization__inner {
  width: 1200px;
  margin: 0 auto;
  padding-top: 120px;
  padding-bottom: 114px;
  display: flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  justify-content: space-between;
}
body.about .p-organization__head {
  flex: 1;
}
body.about .p-organization__body {
  width: 1020px;
  margin-top: 65px;
  margin-right: 94px;
}
body.about .p-organization__body .title {
  position: absolute;
  left: 0;
  top: 0;
  background-color: #201F2D;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  padding: 5px 24px;
  letter-spacing: 0.1em;
}
body.about .p-organization__body .section {
  border: #D6D5D8 1px solid;
  position: relative;
}
body.about .p-organization__body .section + .section {
  margin-top: 25px;
}
body.about .p-organization__body .section--01 {
  padding: 64px 0 46px;
}
body.about .p-organization__body .section--01 .content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 125px;
}
body.about .p-organization__body .section--01 .content .address {
  font-size: 15px;
  margin-top: 22px;
  letter-spacing: 0.1em;
  font-weight: 600;
  line-height: 1.6;
}
body.about .p-organization__body .section--01 .content .link {
  margin-top: 15px;
}
body.about .p-organization__body .section--01 .content .link a {
  font-size: 15px;
  letter-spacing: 0.1em;
  font-weight: 600;
  border-bottom: 1px solid #201f2d;
}
body.about .p-organization__body .section--01 .content .link a:hover {
  border-bottom: none;
}
body.about .p-organization__body .section--01 .content .link a .icon {
  margin-left: 2px;
}
body.about .p-organization__body .section--02 {
  padding: 51px 84px 51px 97px;
}
body.about .p-organization__body .section--02 .content {
  display: flex;
  justify-content: space-between;
  gap: 76px;
}
body.about .p-organization__body .section--02 .philosophy {
  width: 300px;
}
body.about .p-organization__body .section--02 .philosophy .catch {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  text-align: center;
  line-height: 1.2;
}
body.about .p-organization__body .section--02 .philosophy .catch b {
  display: block;
  font-size: 30px;
  letter-spacing: 0.1em;
  font-weight: 600;
}
body.about .p-organization__body .section--02 .philosophy__list {
  margin-top: 15px;
}
body.about .p-organization__body .section--02 .philosophy__list__item {
  background-color: #F7F7F7;
  border-left: 8px solid #201F2D;
  padding: 18px 14px;
  font-size: 20px;
  letter-spacing: 0.1em;
  font-weight: 600;
}
body.about .p-organization__body .section--02 .philosophy__list__item .label {
  display: flex;
  align-items: center;
}
body.about .p-organization__body .section--02 .philosophy__list__item .num {
  font-size: 28px;
}
body.about .p-organization__body .section--02 .philosophy__list__item .text {
  margin-left: 20px;
}
body.about .p-organization__body .section--02 .philosophy__list__item + .philosophy__list__item {
  margin-top: 8px;
}
body.about .p-organization__body .section--02 .attempt {
  flex: 1;
  margin-top: 30px;
}
body.about .p-organization__body .section--02 .attempt .lead {
  font-weight: 600;
}
body.about .p-organization__body .section--02 .attempt__list {
  border-top: 1px solid #DFDDE7;
  margin-top: 18px;
}
body.about .p-organization__body .section--02 .attempt__list__item {
  border-bottom: 1px solid #DFDDE7;
  padding: 12px 0;
  display: flex;
  font-weight: 600;
}
body.about .p-organization__body .section--02 .attempt__list__item::before {
  content: "◆";
  color: #201F2D;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-right: 4px;
}
@media (max-width: 639px) {
  body.about .p-organization__inner {
    width: 100%;
    max-width: none;
    flex-direction: column;
    align-items: stretch;
    padding-top: 16.8vw;
    padding-right: 4.6666666667vw;
    padding-bottom: 21.6vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.about .p-organization__head {
    display: flex;
    justify-content: center;
    width: 100%;
  }
  body.about .p-organization__head .c-heading_lv3 {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
  body.about .p-organization__head .c-heading_lv3 .en {
    font-size: 3.0666666667vw;
    top: 0.5333333333vw;
  }
  body.about .p-organization__head .c-heading_lv3 .jp {
    font-size: 6.4vw;
  }
  body.about .p-organization__body {
    width: 100%;
    margin-top: 14.6666666667vw;
  }
  body.about .p-organization__body .title {
    font-size: 3.7333333333vw;
    padding: 1.2vw 5.3333333333vw;
    letter-spacing: 0.08em;
  }
  body.about .p-organization__body .section + .section {
    margin-top: 14.1333333333vw;
  }
  body.about .p-organization__body .section--01 {
    padding: 16.4vw 2.6666666667vw 12.6666666667vw;
  }
  body.about .p-organization__body .section--01 .content {
    flex-direction: column;
    gap: 5.3333333333vw;
    align-items: center;
  }
  body.about .p-organization__body .section--01 .content .logo img {
    width: auto;
    max-width: 41.0666666667vw;
    height: auto;
  }
  body.about .p-organization__body .section--01 .content .photo {
    width: 100%;
    max-width: 69.3333333333vw;
  }
  body.about .p-organization__body .section--01 .content .photo img {
    display: block;
    width: 100%;
    height: auto;
  }
  body.about .p-organization__body .section--01 .content .photo figcaption .address {
    font-size: 3.3333333333vw;
    margin-top: 8.6666666667vw;
    text-align: left;
  }
  body.about .p-organization__body .section--01 .content .photo figcaption .link {
    margin-top: 4.1333333333vw;
    text-align: left;
  }
  body.about .p-organization__body .section--01 .content .photo figcaption .link a {
    font-size: 3.4666666667vw;
  }
  body.about .p-organization__body .section--01 .content .photo figcaption .link a .icon {
    width: 2.6666666667vw;
    height: 2.6666666667vw;
    display: inline-block;
  }
  body.about .p-organization__body .section--02 {
    padding: 15.2vw 4.6666666667vw 12.6666666667vw;
    box-sizing: border-box;
  }
  body.about .p-organization__body .section--02 .content {
    flex-direction: column;
    gap: 11.3333333333vw;
    align-items: stretch;
  }
  body.about .p-organization__body .section--02 .philosophy {
    width: 100%;
    max-width: none;
  }
  body.about .p-organization__body .section--02 .philosophy .catch {
    font-size: 3.4666666667vw;
    line-height: 1.5;
  }
  body.about .p-organization__body .section--02 .philosophy .catch b {
    font-size: 6.9333333333vw;
    margin-top: 0.2666666667vw;
    font-weight: 600;
  }
  body.about .p-organization__body .section--02 .philosophy__list {
    margin-top: 3.7333333333vw;
    margin-right: 5.3333333333vw;
    margin-left: 5.3333333333vw;
  }
  body.about .p-organization__body .section--02 .philosophy__list__item {
    padding: 4.8vw 3.7333333333vw;
    font-size: 4.6666666667vw;
    font-weight: 600;
  }
  body.about .p-organization__body .section--02 .philosophy__list__item .num {
    font-size: 6.5333333333vw;
  }
  body.about .p-organization__body .section--02 .philosophy__list__item .text {
    margin-left: 4.2666666667vw;
  }
  body.about .p-organization__body .section--02 .attempt {
    margin-top: 0;
    width: 100%;
  }
  body.about .p-organization__body .section--02 .attempt .lead {
    font-size: 3.4666666667vw;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: 600;
  }
  body.about .p-organization__body .section--02 .attempt__list {
    margin-top: 6.6666666667vw;
  }
  body.about .p-organization__body .section--02 .attempt__list__item {
    font-size: 3.4666666667vw;
    line-height: 1.55;
    padding: 3.6vw 0;
    font-weight: 600;
  }
  body.about .p-organization__body .section--02 .attempt__list__item::before {
    font-size: 3.6vw;
    margin-right: 0.9333333333vw;
  }
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.about .p-organization__inner {
    width: 100%;
    max-width: 1200px;
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
  body.about .p-organization__head {
    min-width: 0;
  }
  body.about .p-organization__body {
    flex: 0 1 820px;
    width: auto;
    max-width: 100%;
    min-width: 0;
  }
}

body.facility #facility-stories,
body.facility #facility-floor,
body.facility #facility-gallery {
  scroll-margin-top: 96px;
}
@media (min-width: 1280px) {
  body.facility #facility-stories,
  body.facility #facility-floor,
  body.facility #facility-gallery {
    scroll-margin-top: 40px;
  }
}
@media (max-width: 639px) {
  body.facility #facility-stories,
  body.facility #facility-floor,
  body.facility #facility-gallery {
    scroll-margin-top: 20vw;
  }
}
body.facility .u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.facility .p-page_bg_hero {
  background-image: url("../images/facility/image_hero_01.jpg");
}
@media (max-width: 639px) {
  body.facility .p-page_bg_hero {
    background-image: url("../images/facility/image_hero_01_sp.jpg");
    min-height: 78.6666666667vw;
  }
  body.facility .p-page_bg_hero__inner {
    max-width: none;
    margin: 0;
    padding: 9.0666666667vw 4.6666666667vw 6.9333333333vw;
    box-sizing: border-box;
  }
  body.facility .p-page_bg_hero .c-heading_lv1 {
    text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
  }
  body.facility .p-page_bg_hero .c-heading_lv1 .en {
    font-size: 4.9333333333vw;
    font-weight: 700;
    top: 0.5333333333vw;
  }
  body.facility .p-page_bg_hero .c-heading_lv1 .jp {
    font-size: 6.4vw;
    font-weight: 600;
    padding-right: 1.8666666667vw;
    margin-right: 1.3333333333vw;
  }
}
@media (max-width: 639px) {
  body.facility .c-breadcrumb {
    background-color: #fff;
    padding-bottom: 7.4666666667vw;
  }
}
body.facility .l-cta {
  margin-top: 44px;
}
body.facility .p-intro {
  background-image: url("../images/common/bg_intro_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
body.facility .p-intro.p-intro--facility {
  padding-bottom: 96px;
}
body.facility .p-intro__inner {
  max-width: 1200px;
  margin: 60px auto 0;
  text-align: center;
}
body.facility .p-intro__inner.p-intro__inner--facility {
  padding-bottom: 60px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-intro__inner.p-intro__inner--facility {
    padding-bottom: 60px;
  }
}
@media (max-width: 639px) {
  body.facility .p-intro.p-intro--facility {
    padding-bottom: 0vw;
  }
  body.facility .p-intro__inner {
    position: relative;
    max-width: none;
    margin: 0 auto 0;
    padding: 37.3333333333vw 4.6666666667vw 13.3333333333vw;
    box-sizing: border-box;
  }
}
body.facility .p-intro__moment {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 1200px;
  margin: 0 auto;
  padding: 30px 0 0;
}
body.facility .p-intro__moment-pic {
  margin: 0;
  overflow: hidden;
}
@media (min-width: 768px) {
  body.facility .p-intro__moment-pic {
    position: absolute;
  }
  body.facility .p-intro__moment-pic.p-intro__moment-pic--a {
    left: 55px;
    top: 0px;
    width: 220px;
  }
}
@media (min-width: 768px) and (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--a {
    left: 40px;
    top: 0px;
  }
}
@media (min-width: 768px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--b {
    right: 0px;
    bottom: -40px;
    width: 254px;
  }
}
@media (min-width: 768px) and (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--b {
    right: 40px;
    bottom: -45px;
  }
}
body.facility .p-intro__moment-pic img {
  display: block;
  width: 100%;
  height: auto;
}
body.facility .p-intro__moment-copy {
  position: relative;
  writing-mode: vertical-rl;
}
body.facility .p-intro__moment-copy .jp {
  margin: 0;
  padding: 32px 0;
  font-family: "Shippori Mincho", serif;
  font-size: 40px;
  font-weight: 600;
  color: #201f2d;
  text-align: start;
  z-index: 1;
  text-shadow: 2px 2px 0 rgba(35, 33, 51, 0.1);
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-intro__moment-copy .jp {
    font-size: 36px;
  }
}
body.facility .p-intro__moment-copy .jp span {
  border-right: 1px solid #201f2d;
  padding-right: 5px;
  display: inline-block;
  margin-right: 10px;
  letter-spacing: 0.2em;
}
body.facility .p-intro__moment-copy .en {
  position: absolute;
  left: 178px;
  bottom: 40px;
  width: 216px;
  font-size: 14px;
  color: #C5C5C5;
  line-height: 3;
  letter-spacing: 0.1em;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  text-align: left;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-intro__moment-copy .en {
    font-size: 13px;
    left: 168px;
    bottom: 60px;
    width: 186px;
    line-height: 2;
  }
}
@media (max-width: 639px) {
  body.facility .p-intro__moment {
    display: grid;
    grid-template-columns: 22.4vw minmax(0, 1fr) 24vw;
    grid-template-rows: auto 1fr auto;
    align-items: center;
    justify-items: center;
    width: 100%;
    max-width: none;
    min-height: 48vw;
    margin: 0 auto;
    padding: 0 0 16vw;
    box-sizing: border-box;
    margin-top: -10.6666666667vw;
    margin-right: -2vw;
    position: static;
  }
  body.facility .p-intro__moment-copy {
    grid-column: 2;
    grid-row: 1/-1;
    justify-self: center;
    position: relative;
  }
  body.facility .p-intro__moment-copy .jp {
    padding: 3.2vw 0;
    font-size: 6.4vw;
    letter-spacing: 0.12em;
    line-height: 1.5;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.facility .p-intro__moment-copy .jp {
    padding: 5.3333333333vw 0;
    letter-spacing: 0.14em;
  }
}
@media (max-width: 639px) {
  body.facility .p-intro__moment-copy .en {
    position: absolute;
    right: -17.3333333333vw;
    bottom: 5.3333333333vw;
    width: 27.4666666667vw;
    max-width: 69.3333333333vw;
    margin: 3.7333333333vw auto 0;
    font-size: 1.8666666667vw;
    line-height: 3;
    letter-spacing: 0.08em;
    text-align: left;
    color: #b8b8b8;
    left: auto;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.facility .p-intro__moment-pic {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
  }
}
@media (max-width: 639px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--a {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    justify-self: start;
    width: 26.6666666667vw;
    max-width: 100%;
    position: absolute;
    top: 4.8vw;
    left: 0;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--a {
    width: 26.6666666667vw;
  }
}
@media (max-width: 639px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--b {
    grid-column: 3;
    grid-row: 3;
    align-self: end;
    justify-self: end;
    width: 30.1333333333vw;
    max-width: 100%;
    position: absolute;
    bottom: 11.3333333333vw;
    right: 0;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.facility .p-intro__moment-pic.p-intro__moment-pic--b {
    width: 31.4666666667vw;
  }
}
body.facility .p-navi {
  margin-top: 72px;
}
body.facility .p-navi__inner {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (min-width: 768px) {
  body.facility .p-navi__inner {
    padding: 0 28px;
  }
}
body.facility .p-navi__list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
@media (min-width: 640px) {
  body.facility .p-navi__list {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 20px;
  }
}
@media (min-width: 768px) {
  body.facility .p-navi__list {
    gap: 32px;
  }
}
body.facility .p-navi__list__item {
  flex: 1;
  min-width: 0;
}
body.facility .p-navi__list__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 12px 6px;
  border: 1px solid #d3d3d5;
  background-color: #fff;
  text-decoration: none;
  color: #201f2d;
  transition: background-color 0.3s ease;
}
@media (min-width: 768px) {
  body.facility .p-navi__list__item a {
    gap: 15px;
    padding: 18px 10px;
    min-height: 0;
  }
}
body.facility .p-navi__list__item a:hover {
  color: #fff;
  background-color: #201f2d;
}
body.facility .p-navi__list__item a:hover .icon svg path {
  fill: #fff;
}
body.facility .p-navi__list__item a .text {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(11px, 2.9vw, 16px);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  text-align: center;
}
@media (min-width: 768px) {
  body.facility .p-navi__list__item a .text {
    font-size: clamp(13px, 1.65vw, 16px);
    letter-spacing: 0.08em;
  }
}
body.facility .p-navi__list__item a .icon {
  display: none;
  flex-shrink: 0;
  opacity: 0.85;
}
@media (min-width: 768px) {
  body.facility .p-navi__list__item a .icon {
    display: flex;
  }
}
@media (max-width: 639px) {
  body.facility .p-navi {
    margin-top: 15.3333333333vw;
  }
  body.facility .p-navi__inner {
    max-width: none;
    padding-right: 13.3333333333vw;
    padding-left: 13.3333333333vw;
    box-sizing: border-box;
  }
  body.facility .p-navi__list {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 3.3333333333vw;
  }
  body.facility .p-navi__list__item {
    flex: 1 1 auto;
    width: 100%;
  }
  body.facility .p-navi__list__item a {
    box-sizing: border-box;
    justify-content: center;
    min-height: 13.3333333333vw;
    padding: 2.9333333333vw 3.7333333333vw;
  }
  body.facility .p-navi__list__item a .text {
    font-size: 3.4666666667vw;
    line-height: 1.8846153846;
    text-align: left;
  }
  body.facility .p-navi__list__item a .icon {
    display: flex;
    width: 4.4vw;
  }
}
body.facility .p-stories {
  margin-top: 220px;
}
body.facility .p-stories__inner {
  max-width: 1200px;
  margin: 0 auto;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-stories__inner {
    padding-left: 80px;
    padding-right: 80px;
  }
}
body.facility .p-stories__row {
  display: flex;
  justify-content: flex-end;
}
body.facility .p-stories__row--pic-left .content {
  margin-left: 244px;
}
body.facility .p-stories__row--pic-right {
  flex-direction: row-reverse;
}
body.facility .p-stories__row--pic-right .content {
  margin-right: 244px;
}
body.facility .p-stories__row:not(:first-of-type) {
  margin-top: 160px;
}
body.facility .p-stories .figure {
  width: 800px;
  height: 407px;
}
body.facility .p-stories .content {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  flex-direction: row-reverse;
}
body.facility .p-stories .content .title {
  margin-left: 25px;
  font-family: "Shippori Mincho", serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.82;
  color: #201f2d;
  writing-mode: vertical-lr;
}
body.facility .p-stories .content .lead {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 2.08;
  display: block;
  display: flex;
  flex-direction: row-reverse;
}
body.facility .p-stories .content .lead span {
  writing-mode: vertical-lr;
  display: block;
}
@media (max-width: 639px) {
  body.facility .p-stories {
    margin-top: 16vw;
  }
  body.facility .p-stories__inner {
    max-width: none;
    margin: 0 auto;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.facility .p-stories__row {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
  }
  body.facility .p-stories__row--pic-left .figure {
    margin-left: -4.6666666667vw;
  }
  body.facility .p-stories__row--pic-right {
    flex-direction: column;
  }
  body.facility .p-stories__row--pic-right .figure {
    position: relative;
    right: -4.6666666667vw;
  }
  body.facility .p-stories__row--pic-left .content, body.facility .p-stories__row--pic-right .content {
    margin-left: 0;
    margin-right: 0;
  }
  body.facility .p-stories__row:not(:first-of-type) {
    margin-top: 12.8vw;
  }
  body.facility .p-stories .figure {
    flex-shrink: 0;
    width: 100%;
    max-width: none;
    height: auto;
  }
  body.facility .p-stories .content {
    flex: 1 1 auto;
    margin-top: 9.2vw;
    padding-right: 0;
    padding-left: 0;
    justify-content: center;
  }
  body.facility .p-stories .content .title {
    margin-left: 2.6666666667vw;
    font-size: 6vw;
  }
  body.facility .p-stories .content .lead {
    font-size: 3.7333333333vw;
    line-height: 2;
  }
  body.facility .p-stories .content .lead span {
    letter-spacing: 0.18em;
  }
}
body.facility .p-floor {
  margin-top: 195px;
  background-color: #F7F7F7;
}
body.facility .p-floor__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding-top: 106px;
  padding-bottom: 140px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-floor__inner {
    padding-left: 80px;
    padding-right: 80px;
  }
}
body.facility .p-floor__layout {
  display: grid;
  gap: 28px;
  align-items: center;
  margin-top: clamp(36px, 5vw, 52px);
}
@media (min-width: 1024px) {
  body.facility .p-floor__layout {
    grid-template-columns: 88px minmax(280px, 1fr) 64px;
    gap: clamp(28px, 3.5vw, 48px) clamp(32px, 4vw, 56px);
    margin-top: 0;
  }
}
body.facility .p-floor__controls {
  display: flex;
  justify-content: center;
}
@media (min-width: 1024px) {
  body.facility .p-floor__controls {
    justify-content: flex-start;
  }
}
body.facility .p-floor__tabs {
  display: flex;
  flex-direction: row;
  gap: 12px;
}
@media (min-width: 1024px) {
  body.facility .p-floor__tabs {
    flex-direction: column;
    gap: 18px;
  }
}
body.facility .p-floor__tab {
  flex-shrink: 0;
  width: 86px;
  height: 86px;
  padding: 0;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
  border-radius: 999px;
  color: #fff;
  border: 1px solid #D3D3D5;
  background-color: #fff;
  box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.2);
  font-size: 20px;
  color: #201f2d;
}
body.facility .p-floor__tab .en {
  font-size: 35px;
  font-weight: 600;
  color: #201f2d;
  line-height: 1;
  transition: color 0.3s ease;
}
body.facility .p-floor__tab:hover {
  border-color: #201f2d;
}
body.facility .p-floor__tab.is-active {
  background: #201f2d;
  border-color: #201f2d;
  box-shadow: none;
  color: #fff;
}
body.facility .p-floor__tab.is-active .en {
  color: #fff;
}
body.facility .p-floor__diagram {
  min-width: 0;
}
body.facility .p-floor__floor-label {
  display: none;
  margin: 0;
}
body.facility .p-floor__stack {
  position: relative;
  width: 100%;
  height: 780px;
  margin: 0 auto;
  overflow: hidden;
}
body.facility .p-floor__stack img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: 0;
  transition: opacity 0.48s ease;
  z-index: 0;
}
body.facility .p-floor__stack img.is-active {
  opacity: 1;
  z-index: 1;
}
body.facility .p-floor__title-wrap {
  align-self: flex-start;
}
body.facility .p-floor__title {
  margin: 0 auto;
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: column;
  gap: 0.85em;
}
body.facility .p-floor__title .en {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #201f2d;
  line-height: 1.25;
  background-color: red;
}
body.facility .p-floor__title .jp {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.38em;
  color: #201f2d;
}
@media (prefers-reduced-motion: reduce) {
  body.facility .p-floor .p-fac-floor__stack img {
    transition: none;
  }
}
@media (max-width: 639px) {
  body.facility .p-floor {
    margin-top: 16vw;
  }
  body.facility .p-floor__inner {
    max-width: none;
    padding-top: 9.6vw;
    padding-right: 4.6666666667vw;
    padding-bottom: 19.0666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.facility .p-floor__layout {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 3.7333333333vw;
    row-gap: 4.8vw;
    align-items: start;
    margin-top: 5.3333333333vw;
  }
  body.facility .p-floor__controls {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    width: auto;
    justify-content: flex-start;
    align-self: flex-end;
  }
  body.facility .p-floor__tabs {
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 4.2666666667vw;
    margin-left: 6.6666666667vw;
  }
  body.facility .p-floor__tab {
    width: 13.0666666667vw;
    height: 13.0666666667vw;
    font-size: 2.9333333333vw;
  }
  body.facility .p-floor__tab .en {
    font-size: 5.3333333333vw;
  }
  body.facility .p-floor__title-wrap {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-self: start;
    margin-top: 0;
  }
  body.facility .p-floor__diagram {
    grid-column: 1/-1;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    gap: 3.7333333333vw;
    width: 100%;
  }
  body.facility .p-floor__floor-label {
    display: block;
    padding: 0;
    font-family: "Shippori Mincho", serif;
    font-size: 4.8vw;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.35;
    color: #201f2d;
  }
  body.facility .p-floor__floor-num {
    letter-spacing: 0.12em;
  }
  body.facility .p-floor__floor-suffix {
    letter-spacing: 0.18em;
  }
  body.facility .p-floor__stack {
    max-height: none;
    aspect-ratio: 520/740;
    width: 84%;
    height: unset;
  }
  body.facility .p-floor .c-heading_lv3 .en {
    font-size: 3.0666666667vw;
    top: 0.6666666667vw;
  }
  body.facility .p-floor .c-heading_lv3 .jp {
    font-size: 6.4vw;
    margin-right: 1.0666666667vw;
    padding-right: 0.4vw;
  }
}
body.facility .p-gallery {
  margin-top: 127px;
  position: relative;
}
body.facility .p-gallery::after {
  content: "";
  display: block;
  width: 100%;
  height: 316px;
  background-color: #F7F7F7;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
body.facility .p-gallery__inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  padding-bottom: 70px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-gallery__inner {
    padding-left: 80px;
    padding-right: 80px;
  }
}
body.facility .p-gallery__layout {
  margin-top: 55px;
  display: flex;
  grid-template-columns: 1fr;
  gap: 7px;
}
body.facility .p-gallery__primary {
  width: 1000px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-gallery__primary {
    width: 88%;
  }
}
body.facility .p-gallery__stage-wrap {
  width: 100%;
}
body.facility .p-gallery__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
  background: #ebebeb;
  touch-action: pan-y;
}
body.facility .p-gallery__stage img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity 0.48s ease;
  z-index: 0;
}
body.facility .p-gallery__stage img.is-active {
  opacity: 1;
  z-index: 1;
}
body.facility .p-gallery__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 19px;
  height: 34px;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  display: grid;
  place-items: center;
  cursor: pointer;
}
body.facility .p-gallery__arrow svg path {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
body.facility .p-gallery__arrow--prev {
  left: 12px;
}
@media (min-width: 768px) {
  body.facility .p-gallery__arrow--prev {
    left: 30px;
  }
}
body.facility .p-gallery__arrow--next {
  right: 12px;
}
@media (min-width: 768px) {
  body.facility .p-gallery__arrow--next {
    right: 30px;
  }
}
body.facility .p-gallery__arrow:hover {
  opacity: 0.7;
}
body.facility .p-gallery__counter {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
}
body.facility .p-gallery__counter-inner {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 999px;
  background: rgba(32, 31, 45, 0.26);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #fff;
  line-height: 1;
  backdrop-filter: blur(5px);
}
body.facility .p-gallery__counter-sep {
  opacity: 0.45;
}
body.facility .p-gallery__thumbs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  justify-content: space-between;
  flex: 1;
}
body.facility .p-gallery__thumb {
  display: block;
  padding: 0;
  margin: 0;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.25s ease, opacity 0.25s ease;
  background-color: #000;
}
body.facility .p-gallery__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.4;
}
body.facility .p-gallery__thumb:hover {
  opacity: 0.7;
}
body.facility .p-gallery__thumb:focus-visible {
  outline: 2px solid #201f2d;
  outline-offset: 2px;
}
body.facility .p-gallery__thumb.is-active img {
  opacity: 1;
}
@media (min-width: 1024px) {
  body.facility .p-gallery__thumb {
    width: 100%;
    max-width: 136px;
  }
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.facility .p-gallery__thumb {
    max-width: 106px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.facility .p-gallery .p-fac-gallery__stage img {
    transition: none;
  }
}
@media (max-width: 639px) {
  body.facility .p-gallery {
    margin-top: 19.3333333333vw;
  }
  body.facility .p-gallery::after {
    display: none;
  }
  body.facility .p-gallery__inner {
    max-width: none;
    padding-right: 4.6666666667vw;
    padding-bottom: 8vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.facility .p-gallery .c-heading_lv2 .en {
    margin-bottom: 1.0666666667vw;
    font-size: 3.2vw;
  }
  body.facility .p-gallery .c-heading_lv2 .jp {
    padding-bottom: 1.0666666667vw;
    font-size: 6.4vw;
  }
  body.facility .p-gallery__layout {
    flex-direction: column;
    align-items: stretch;
    gap: 2.6666666667vw;
    margin-top: 5.3333333333vw;
  }
  body.facility .p-gallery__primary {
    width: 100%;
    max-width: none;
    flex: none;
  }
  body.facility .p-gallery__arrow {
    width: 9.0666666667vw;
    height: 9.0666666667vw;
  }
  body.facility .p-gallery__arrow--prev {
    left: 0.8vw;
  }
  body.facility .p-gallery__arrow--next {
    right: 0.8vw;
  }
  body.facility .p-gallery__arrow svg {
    width: 100%;
    height: 100%;
    vertical-align: middle;
  }
  body.facility .p-gallery__counter {
    bottom: 2.4vw;
  }
  body.facility .p-gallery__counter-inner {
    padding: 2vw 5.3333333333vw;
    font-size: 3.0666666667vw;
  }
  body.facility .p-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.2666666667vw;
    width: 100%;
    flex: none;
    flex-direction: row;
  }
  body.facility .p-gallery__thumbs li {
    min-width: 0;
  }
  body.facility .p-gallery__thumb {
    width: 100%;
    max-width: none;
    aspect-ratio: 3/2;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.facility .p-gallery__thumb {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 639px) {
  body.facility .p-gallery__thumb img {
    width: 100%;
    height: 100%;
  }
}

body.guide .p-page_bg_hero {
  background-image: url("../images/guide/image_hero_01.jpg");
}
@media (max-width: 639px) {
  body.guide .p-page_bg_hero {
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.guide .p-page_bg_hero {
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.guide .p-page_bg_hero {
    min-height: 78.6666666667vw;
  }
}
@media (max-width: 639px) {
  body.guide .p-page_bg_hero__inner {
    max-width: none;
    margin: 0;
    padding: 6.4vw 4.6666666667vw 6.9333333333vw;
    box-sizing: border-box;
  }
  body.guide .p-page_bg_hero .c-heading_lv1 {
    text-shadow: 1.5px 1.5px 0px rgba(35, 33, 51, 0.9);
  }
  body.guide .p-page_bg_hero .c-heading_lv1 .en {
    font-size: 4.9333333333vw;
    font-weight: 700;
    top: 0.5333333333vw;
  }
  body.guide .p-page_bg_hero .c-heading_lv1 .jp {
    font-size: 6.4vw;
    font-weight: 600;
    padding-right: 1.8666666667vw;
    margin-right: 1.3333333333vw;
  }
}
body.guide .p-intro {
  background-image: url("../images/common/bg_intro_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
body.guide .p-intro__inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
  padding-bottom: 117px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.guide .p-intro__inner {
    padding-left: 80px;
    padding-right: 80px;
  }
}
body.guide .p-intro .catch {
  margin-top: 90px;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
  font-family: "Shippori Mincho", serif;
}
body.guide .p-intro .lead {
  margin-top: 35px;
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 2;
}
@media (max-width: 639px) {
  body.guide .p-intro__inner {
    max-width: none;
    margin: 0;
    padding-top: 21.3333333333vw;
    padding-right: 4.6666666667vw;
    padding-bottom: 22.1333333333vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.guide .p-intro .catch {
    margin-top: 7.4666666667vw;
    font-size: 5.8666666667vw;
    letter-spacing: 0.1em;
    line-height: 0.8409090909;
    text-align: left;
  }
  body.guide .p-intro .lead {
    margin-top: 3.7333333333vw;
    font-size: 3.4666666667vw;
    line-height: 2.1153846154;
    letter-spacing: 0.05em;
    text-align: left;
  }
}
body.guide .p-navi {
  margin-top: 55px;
}
body.guide .p-navi__inner {
  max-width: 1040px;
  margin: 0 auto;
}
body.guide .p-navi__list {
  display: flex;
  gap: 32px;
  justify-content: space-between;
}
body.guide .p-navi__list__item {
  flex: 1;
}
body.guide .p-navi__list__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 18px 10px;
  border: 1px solid #d3d3d5;
  background-color: #fff;
  text-decoration: none;
  color: #201f2d;
  transition: background-color 0.3s ease;
}
body.guide .p-navi__list__item a:hover {
  color: #fff;
  background-color: #201F2D;
}
body.guide .p-navi__list__item a:hover .icon svg path {
  fill: #fff;
}
body.guide .p-navi__list__item a .text {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
@media (min-width: 768px) {
  body.guide .p-navi__list__item a .text {
    font-size: 16px;
  }
}
body.guide .p-navi__list__item a .icon {
  display: flex;
  flex-shrink: 0;
  opacity: 0.85;
}
body.guide .p-navi__list__item a .icon img {
  display: block;
}
@media (max-width: 639px) {
  body.guide .p-navi {
    margin-top: 19.4666666667vw;
  }
  body.guide .p-navi__inner {
    max-width: none;
    padding-right: 13.3333333333vw;
    padding-left: 13.3333333333vw;
    box-sizing: border-box;
  }
  body.guide .p-navi__list {
    flex-direction: column;
    gap: 3.3333333333vw;
  }
  body.guide .p-navi__list__item {
    flex: 1 1 auto;
    width: 100%;
  }
  body.guide .p-navi__list__item a {
    box-sizing: border-box;
    justify-content: center;
    min-height: 13.3333333333vw;
    padding: 2.9333333333vw 3.7333333333vw;
  }
  body.guide .p-navi__list__item .text {
    font-size: 3.4666666667vw;
    line-height: 1.8846153846;
  }
}
body.guide .p-flow {
  margin-top: 132px;
}
body.guide .p-flow__inner {
  max-width: 1200px;
  margin: 0 auto;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.guide .p-flow__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
@media (max-width: 639px) {
  body.guide .p-flow {
    margin-top: 11.7333333333vw;
  }
  body.guide .p-flow__inner {
    max-width: none;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.guide .p-flow .c-heading_lv2 .en {
    margin-bottom: 0;
    font-size: 3.2vw;
    line-height: 1;
  }
  body.guide .p-flow .c-heading_lv2 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    padding-bottom: 1.0666666667vw;
    border-bottom-width: 1px;
  }
}
body.guide .p-flow__steps {
  margin-top: 70px;
  position: relative;
  list-style: none;
  --flow-line-y: 70px;
  --flow-dot-start-y: 55px;
}
body.guide .p-flow__steps::before {
  content: "";
  position: absolute;
  left: 18px;
  top: var(--flow-line-y);
  bottom: 36px;
  width: 1px;
  background: linear-gradient(180deg, #d3d3d5 0%, #ababab 100%);
  z-index: 2;
}
@media (min-width: 768px) {
  body.guide .p-flow__steps::before {
    left: 166px;
  }
}
body.guide .p-flow__steps.is-flow-line-dynamic::before {
  bottom: auto;
  height: var(--flow-line-height, 8px);
  z-index: 4;
}
body.guide .p-flow__steps.is-flow-line-dynamic .dot {
  z-index: 5;
}
body.guide .p-flow__steps .dot {
  position: absolute;
  left: 155px;
  top: var(--flow-dot-start-y);
  z-index: 3;
}
body.guide .p-flow__steps .dot img {
  display: block;
}
body.guide .p-flow__steps .dot.is-goal {
  width: 45px;
  border-radius: 50%;
  box-shadow: 0 0 30px #c4c4f4;
  margin-left: -12px;
}
body.guide .p-flow__steps .dot.is-goal img {
  width: 100%;
}
body.guide .p-flow__steps__item {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto 1fr;
  padding: 40px 60px;
  gap: 124px;
}
body.guide .p-flow__steps__item:nth-child(odd) {
  background-color: #F7F7F7;
}
body.guide .p-flow__steps__item:last-child {
  margin-bottom: 0;
}
body.guide .p-flow__steps__item:last-child .content {
  border-bottom: none;
}
body.guide .p-flow__steps__item .step {
  width: 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex-shrink: 0;
}
body.guide .p-flow__steps__item .step .label {
  font-family: "Cormorant Garamond", serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1;
}
body.guide .p-flow__steps__item .step .no {
  margin-top: 6px;
  font-family: "Shippori Mincho", serif;
  font-size: 35px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #201f2d;
  line-height: 1;
}
@media (min-width: 768px) {
  body.guide .p-flow__steps__item .step .no {
    font-size: 35px;
  }
}
body.guide .p-flow__steps__item .title {
  font-family: "Noto Serif JP", serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.4;
  border-bottom: 2px solid #201f2d;
  display: inline-block;
  padding-bottom: 2px;
}
body.guide .p-flow__steps__item .lead {
  margin-top: 12px;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.75;
}
@media (min-width: 768px) {
  body.guide .p-flow__steps__item .lead {
    font-size: 15px;
    line-height: 1.85;
  }
}
body.guide .p-flow__steps__item .docs {
  margin-top: 23px;
  padding: 24px 36px;
  border: 1px solid #D3D3D5;
}
body.guide .p-flow__steps__item .docs .docs_label {
  display: inline-block;
  padding: 4px 14px;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
  background-color: #201f2d;
}
body.guide .p-flow__steps__item .docs .docs_list {
  margin-top: 15px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.85;
  color: #201f2d;
  display: flex;
  list-style: inside;
  list-style-type: disc;
}
body.guide .p-flow__steps__item .docs .docs_list li + li {
  margin-left: 22px;
}
body.guide .p-flow__steps__item .note {
  margin-top: 34px;
  padding: 0 0 0 14px;
  border-left: 4px solid #505050;
  max-width: 650px;
}
body.guide .p-flow__steps__item .note p {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.66;
  color: #201F2D;
}
body.guide .p-flow__steps__item .note p + p {
  margin-top: 10px;
}
body.guide .p-flow__steps__closing {
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
  padding: 0;
  gap: 30px;
}
body.guide .p-flow__steps__closing .content {
  padding-left: 235px;
  flex: 1;
}
body.guide .p-flow__steps__closing .photo {
  width: 436px;
}
body.guide .p-flow__steps__closing .photo img {
  vertical-align: top;
}
body.guide .p-flow__steps__closing .title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #201f2d;
}
body.guide .p-flow__steps__closing .lead {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.9;
  color: #201f2d;
  margin-top: 11px;
}
@media (min-width: 768px) {
  body.guide .p-flow__steps__closing .lead {
    font-size: 18px;
    line-height: 1.85;
  }
}
@media (max-width: 639px) {
  body.guide .p-flow__steps {
    margin-top: 6.9333333333vw;
    --flow-line-y: 8.5333333333vw;
    --flow-dot-start-y: 6.5333333333vw;
  }
  body.guide .p-flow__steps .dot {
    display: block;
    left: 17.3333333333vw;
    transform: translateX(-50%);
    top: var(--flow-dot-start-y);
  }
  body.guide .p-flow__steps .dot.is-goal {
    width: 12.2666666667vw;
    border-radius: 50%;
    box-shadow: 0 0 30px #c4c4f4;
    margin-left: 0vw;
  }
  body.guide .p-flow__steps::before {
    left: 17.3333333333vw;
    top: var(--flow-line-y);
    bottom: 6.4vw;
  }
  body.guide .p-flow__steps__item {
    box-sizing: border-box;
    grid-template-columns: 9.6vw minmax(0, 1fr);
    gap: 12vw;
    padding: 4.2666666667vw 3.7333333333vw 5.3333333333vw 3.7333333333vw;
  }
  body.guide .p-flow__steps__item:nth-child(odd) {
    background-color: #fff;
  }
  body.guide .p-flow__steps__item:nth-child(even) {
    background-color: #F7F7F7;
  }
  body.guide .p-flow__steps__item .step {
    width: auto;
    min-width: 0;
  }
  body.guide .p-flow__steps__item .step .label {
    font-size: 3.0666666667vw;
    line-height: 1;
  }
  body.guide .p-flow__steps__item .step .no {
    margin-top: 0.8vw;
    font-size: 6.6666666667vw;
    line-height: 1;
  }
  body.guide .p-flow__steps__item .title {
    padding-bottom: 0.8vw;
    font-size: 4.2666666667vw;
    line-height: 2.1875;
    border-bottom-width: 0.5333333333vw;
  }
  body.guide .p-flow__steps__item .lead {
    margin-top: 2.4vw;
    font-size: 3.4666666667vw;
    line-height: 1.6538461538;
  }
  body.guide .p-flow__steps__item .docs {
    margin-top: 2.9333333333vw;
    padding: 2.9333333333vw 3.4666666667vw;
  }
  body.guide .p-flow__steps__item .docs .docs_label {
    font-size: 3.4666666667vw;
    line-height: 1.9230769231;
    padding: 0.8vw 1.8666666667vw;
  }
  body.guide .p-flow__steps__item .docs .docs_list {
    flex-direction: column;
    margin-top: 1.8666666667vw;
    font-size: 3.4666666667vw;
    line-height: 1.6538461538;
  }
  body.guide .p-flow__steps__item .docs .docs_list li + li {
    margin-top: 0.8vw;
    margin-left: 0;
  }
  body.guide .p-flow__steps__item .note {
    margin-top: 3.4666666667vw;
    padding-left: 1.8666666667vw;
    border-left-width: 1.0666666667vw;
  }
  body.guide .p-flow__steps__item .note p {
    font-size: 3.4666666667vw;
    line-height: 1.6538461538;
  }
  body.guide .p-flow__steps__closing {
    display: flex;
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0;
    padding: 0;
    overflow: visible;
    background-color: #fff !important;
  }
  body.guide .p-flow__steps__closing .content {
    flex: 1 1 auto;
    padding: 6.6666666667vw 10vw 6.6666666667vw;
  }
  body.guide .p-flow__steps__closing .photo {
    flex: none;
    width: 78%;
    margin-right: 0;
    margin-left: auto;
  }
  body.guide .p-flow__steps__closing .photo img {
    display: block;
    width: 100%;
    height: auto;
  }
  body.guide .p-flow__steps__closing .title {
    border-bottom: none;
    padding-bottom: 0;
    font-size: 4.6666666667vw;
    line-height: 1.3428571429;
  }
  body.guide .p-flow__steps__closing .lead {
    margin-top: 2.6666666667vw;
    font-size: 3.7333333333vw;
    line-height: 1.4285714286;
  }
}
body.guide .p-eligibility {
  margin-top: 148px;
  background-color: #F7F7F7;
}
body.guide .p-eligibility__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 0;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.guide .p-eligibility__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
body.guide .p-eligibility__body {
  margin-top: 55px;
  background-color: #fff;
  padding: 66px 154px;
}
body.guide .p-eligibility__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.guide .p-eligibility__list__item {
  position: relative;
  padding-left: 28px;
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.65;
  color: #201f2d;
}
body.guide .p-eligibility__list__item::before {
  content: "";
  display: block;
  background-color: #201F2D;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 15px;
  height: 15px;
}
body.guide .p-eligibility__note {
  margin: 25px 0 0;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.75;
  color: #555;
  padding-left: 27px;
}
@media (max-width: 639px) {
  body.guide .p-eligibility {
    margin-top: 21.3333333333vw;
  }
  body.guide .p-eligibility__inner {
    max-width: none;
    padding: 9.6vw 6.6666666667vw 11.7333333333vw;
    box-sizing: border-box;
  }
  body.guide .p-eligibility__body {
    margin-top: 5.3333333333vw;
    padding: 6.4vw 4.8vw;
  }
  body.guide .p-eligibility__list__item {
    padding-left: 5.6vw;
    font-size: 4vw;
    line-height: 1.6;
  }
  body.guide .p-eligibility__list__item::before {
    top: 0.38em;
    width: 2.1333333333vw;
    height: 2.1333333333vw;
  }
  body.guide .p-eligibility__note {
    margin-top: 3.7333333333vw;
    padding-left: 4.8vw;
    font-size: 3.4666666667vw;
    line-height: 1.5;
  }
}
body.guide .p-fees__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 97px 0 139px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.guide .p-fees__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
body.guide .p-fees__body {
  margin-top: 87px;
}
body.guide .p-fees__block:not(:first-of-type) {
  margin-top: 87px;
}
body.guide .p-fees .title {
  font-family: "Noto Serif JP", serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #201f2d;
}
body.guide .p-fees .figure {
  margin-top: 25px;
  display: block;
}
body.guide .p-fees .figure img {
  display: block;
  width: 100%;
  height: auto;
}
body.guide .p-fees .note {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.7;
  color: #201f2d;
  margin-top: 30px;
}
@media (min-width: 1280px) {
  body.guide .p-fees .note {
    padding: 0;
  }
}
body.guide .p-fees .btn {
  margin-top: 87px;
}
body.guide .p-fees .btn a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px 24px;
  flex-wrap: wrap;
  width: 100%;
  min-height: 72px;
  padding: 40px 24px;
  background-color: #201f2d;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
body.guide .p-fees .btn a:hover {
  opacity: 0.7;
}
body.guide .p-fees .btn .icon {
  display: flex;
  flex-shrink: 0;
  opacity: 0.95;
}
body.guide .p-fees .btn .icon img {
  display: block;
  width: auto;
  height: auto;
  max-height: 36px;
}
@media (min-width: 768px) {
  body.guide .p-fees .btn .icon img {
    max-height: 42px;
  }
}
body.guide .p-fees .btn .text {
  font-family: "Noto Serif JP", serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
}
@media (max-width: 639px) {
  body.guide .p-fees__inner {
    max-width: none;
    padding: 10.6666666667vw 4.6666666667vw 13.3333333333vw;
    box-sizing: border-box;
  }
  body.guide .p-fees__body {
    margin-top: 14.1333333333vw;
  }
  body.guide .p-fees__block:not(:first-of-type) {
    margin-top: 23.3333333333vw;
  }
  body.guide .p-fees .title {
    font-size: 4.4vw;
    line-height: 1.4;
    text-align: center;
  }
  body.guide .p-fees .figure {
    margin-top: 8.5333333333vw;
  }
  body.guide .p-fees .note {
    margin-top: 3.2vw;
    font-size: 3.4666666667vw;
    line-height: 1.5;
  }
  body.guide .p-fees .btn {
    margin-top: 7.4666666667vw;
  }
  body.guide .p-fees .btn a {
    box-sizing: border-box;
    min-height: 13.3333333333vw;
    padding: 3.7333333333vw 3.2vw;
  }
  body.guide .p-fees .btn .text {
    font-size: 3.7333333333vw;
    line-height: 1.35;
  }
}
body.guide .p-forms {
  background-color: #F7F7F7;
}
body.guide .p-forms__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 105px 0 140px;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.guide .p-forms__inner {
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
  }
}
body.guide .p-forms__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 55px;
}
@media (min-width: 768px) {
  body.guide .p-forms__list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 30px;
  }
}
@media (min-width: 1280px) {
  body.guide .p-forms__list {
    padding: 0;
  }
}
body.guide .p-forms__list__item a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 20px 37px;
  border: 1px solid #201f2d;
  border-radius: 50px;
  background-color: transparent;
  text-decoration: none;
  color: #201f2d;
  transition: background-color 0.2s ease, color 0.2s ease;
}
body.guide .p-forms__list__item a:hover {
  background-color: #E9E9E9;
}
body.guide .p-forms__list__item a:hover .p-guide_forms__btn_ic {
  filter: none;
}
body.guide .p-forms__list__item a .text {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
@media (min-width: 768px) {
  body.guide .p-forms__list__item a .text {
    font-size: 16px;
  }
}
body.guide .p-forms__list__item a .icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  transition: filter 0.2s ease;
}
body.guide .p-forms__list__item a .icon img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 639px) {
  body.guide .p-forms__inner {
    max-width: none;
    padding: 10.6666666667vw 4.6666666667vw 13.3333333333vw;
    box-sizing: border-box;
  }
  body.guide .p-forms__list {
    flex-direction: column;
    gap: 3.2vw;
    margin-top: 11.4666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.guide .p-forms__list {
    flex-direction: column;
  }
}
@media (max-width: 639px) {
  body.guide .p-forms__list__item {
    width: 100%;
    padding-right: 6.4vw;
    padding-left: 6.4vw;
  }
  body.guide .p-forms__list__item a {
    box-sizing: border-box;
    min-height: 11.7333333333vw;
    padding: 2.9333333333vw 4.2666666667vw;
    border-radius: 133.2vw;
    justify-content: center;
  }
  body.guide .p-forms__list__item a .text {
    font-size: 3.4666666667vw;
  }
  body.guide .p-forms__list__item a .icon {
    width: 8.2666666667vw;
    height: 8.2666666667vw;
  }
}
@media (max-width: 639px) {
  body.guide .c-breadcrumb {
    background-color: #fff;
    padding-bottom: 7.4666666667vw;
  }
}

body.access #facility-overview,
body.access #access {
  scroll-margin-top: 4.1666666667vw;
}
@media (max-width: 639px) {
  body.access #facility-overview,
  body.access #access {
    scroll-margin-top: 24vw;
  }
}
body.access .l-cta {
  margin-top: 136px;
}
@media (max-width: 639px) {
  body.access .l-cta {
    margin-top: 18.9333333333vw;
  }
}
body.access .p-overview {
  margin-top: 120px;
}
body.access .p-overview__inner {
  max-width: 1200px;
  margin: 0 auto;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.access .p-overview__inner {
    padding-right: 80px;
    margin-left: 80px;
  }
}
body.access .p-overview__body {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 51px;
}
@media (min-width: 1024px) {
  body.access .p-overview__body {
    flex-direction: row;
    align-items: stretch;
    gap: 46px;
  }
}
body.access .p-overview__figure {
  flex: 0 0 auto;
  margin: 0;
  overflow: hidden;
}
@media (min-width: 1024px) {
  body.access .p-overview__figure {
    width: 501px;
    max-width: 45%;
  }
}
body.access .p-overview__figure img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 501/381;
}
body.access .p-overview__spec {
  flex: 1;
  min-width: 0;
  border-top: 1px solid #cbcbcb;
}
body.access .p-overview__table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
}
body.access .p-overview__table tbody tr {
  border-bottom: 1px solid #cbcbcb;
}
body.access .p-overview__table th,
body.access .p-overview__table td {
  padding: 18px 16px 18px 24px;
  text-align: left;
  vertical-align: top;
  line-height: 1.6;
}
@media (min-width: 768px) {
  body.access .p-overview__table th,
  body.access .p-overview__table td {
    padding: 19px 30px;
  }
}
body.access .p-overview__table th {
  width: 135px;
  background-color: #f7f7f7;
  font-weight: 600;
  white-space: nowrap;
}
@media (min-width: 768px) {
  body.access .p-overview__table th {
    width: 160px;
  }
}
body.access .p-overview__table td {
  background-color: #fff;
}
body.access .p-overview__table a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.access .p-overview__table a:hover {
  text-decoration: none;
}
body.access .p-overview__dot-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 20px;
}
body.access .p-overview__dot-item:last-child {
  margin-right: 0;
}
body.access .p-overview__dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #201f2d;
  flex-shrink: 0;
}
@media (max-width: 639px) {
  body.access .p-overview {
    margin-top: 14.6666666667vw;
  }
  body.access .p-overview__inner {
    max-width: none;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.access .p-overview__header .c-heading_lv2 .en {
    margin-bottom: 1.0666666667vw;
    font-size: 3.2vw;
    line-height: 1;
    margin-bottom: 0;
  }
  body.access .p-overview__header .c-heading_lv2 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    padding-bottom: 1.0666666667vw;
  }
  body.access .p-overview__body {
    flex-direction: column;
    align-items: stretch;
    margin-top: 6.4vw;
    gap: 7.0666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.access .p-overview__body {
    flex-direction: column;
    gap: 5.3333333333vw;
  }
}
@media (max-width: 639px) {
  body.access .p-overview__figure {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.access .p-overview__figure {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 639px) {
  body.access .p-overview__figure img {
    aspect-ratio: auto;
  }
  body.access .p-overview__table {
    font-size: 3.4666666667vw;
  }
  body.access .p-overview__table tbody tr {
    display: block;
    border-bottom: 1px solid #cbcbcb;
  }
  body.access .p-overview__table tbody tr:last-child {
    border-bottom: none;
  }
  body.access .p-overview__table th,
  body.access .p-overview__table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
    border-bottom: none;
  }
  body.access .p-overview__table th {
    padding: 2.4vw 5.3333333333vw 1.0666666667vw;
    font-size: 3.4666666667vw;
    line-height: 3.0769230769;
    white-space: normal;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.access .p-overview__table th {
    width: 100%;
    padding: 2.4vw 5.3333333333vw 1.0666666667vw;
  }
}
@media (max-width: 639px) {
  body.access .p-overview__table td {
    padding: 1.0666666667vw 5.3333333333vw 3.2vw;
    font-size: 3.4666666667vw;
    line-height: 3.1923076923;
    border-bottom: none;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.access .p-overview__table td {
    padding: 1.0666666667vw 5.3333333333vw 3.2vw;
  }
}
@media (max-width: 639px) {
  body.access .p-overview__dot-item {
    margin-right: 4.2666666667vw;
  }
  body.access .p-overview__dot-item:last-child {
    margin-right: 0;
  }
  body.access .p-overview__dot {
    width: 3.7333333333vw;
    height: 3.7333333333vw;
  }
}
body.access .p-detail {
  margin-top: 168px;
}
body.access .p-detail__inner {
  max-width: 1200px;
  margin: 0 auto;
}
@media (min-width: 640px) and (max-width: 1535px) {
  body.access .p-detail__inner {
    padding-right: 80px;
    margin-left: 80px;
  }
}
body.access .p-detail__body {
  margin-top: 60px;
}
body.access .p-detail__map {
  position: relative;
  width: 100%;
  background: #d9d9d9;
}
body.access .p-detail__map-frame {
  display: block;
  width: 100%;
  height: 280px;
  border: 0;
}
@media (min-width: 768px) {
  body.access .p-detail__map-frame {
    height: 400px;
  }
}
@media (min-width: 1024px) {
  body.access .p-detail__map-frame {
    height: 496px;
  }
}
body.access .p-detail__map-address {
  margin-top: 50px;
  display: flex;
  flex-direction: column;
  gap: 44px;
  align-items: center;
  padding: 20px 0 0;
  border-top: 1px solid #cbcbcb;
  border-bottom: 1px solid #cbcbcb;
}
@media (min-width: 768px) {
  body.access .p-detail__map-address {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 30px 0;
    gap: 44px;
  }
}
body.access .p-detail__address {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  line-height: 1.6;
}
body.access .p-detail__btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-shrink: 0;
  min-height: 60px;
  padding: 12px 28px;
  border: 1px solid #201f2d;
  border-radius: 50px;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
body.access .p-detail__btn a .icon {
  position: relative;
  bottom: -3px;
}
body.access .p-detail__btn a .icon svg path {
  transition: fill 0.2s ease;
}
body.access .p-detail__btn a span {
  flex: 0 1 auto;
  text-align: center;
}
body.access .p-detail__btn a:hover {
  background-color: #201f2d;
  color: #fff;
}
body.access .p-detail__btn a:hover .icon svg path.path_01 {
  fill: #fff;
}
body.access .p-detail__btn a:hover .icon svg path.path_02 {
  fill: #201f2d;
}
body.access .p-detail__flow {
  margin-top: 50px;
}
@media (max-width: 639px) {
  body.access .p-detail {
    margin-top: 10.6666666667vw;
  }
  body.access .p-detail__inner {
    max-width: none;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.access .p-detail__header .c-heading_lv2 .en {
    margin-bottom: 0vw;
    font-size: 3.2vw;
    line-height: 1;
  }
  body.access .p-detail__header .c-heading_lv2 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    padding-bottom: 1.0666666667vw;
  }
  body.access .p-detail__body {
    margin-top: 6.4vw;
  }
  body.access .p-detail__map-frame {
    height: 53.3333333333vw;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.access .p-detail__map-frame {
    height: 53.3333333333vw;
  }
}
@media (max-width: 639px) and (min-width: 1024px) {
  body.access .p-detail__map-frame {
    height: 53.3333333333vw;
  }
}
@media (max-width: 639px) {
  body.access .p-detail__map-address {
    flex-direction: column;
    align-items: stretch;
    margin-top: 5.3333333333vw;
    padding: 5.0666666667vw 0;
    gap: 4.2666666667vw;
  }
}
@media (max-width: 639px) and (min-width: 768px) {
  body.access .p-detail__map-address {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 3.7333333333vw 0;
    gap: 4.2666666667vw;
  }
}
@media (max-width: 639px) {
  body.access .p-detail__address {
    font-size: 3.4666666667vw;
    line-height: 1.6538461538;
    text-align: center;
    width: 100%;
  }
  body.access .p-detail__btn {
    width: 100%;
  }
  body.access .p-detail__btn a {
    box-sizing: border-box;
    width: 100%;
    min-height: 11.7333333333vw;
    padding: 2.9333333333vw 3.7333333333vw;
    font-size: 3.4666666667vw;
    gap: 1.6vw;
  }
  body.access .p-detail__btn a .icon {
    bottom: -0.2666666667vw;
  }
  body.access .p-detail__flow {
    margin-top: 6.4vw;
  }
  body.access .p-detail__flow .figure {
    margin: 0;
  }
  body.access .p-detail__flow .figure img {
    display: block;
    width: 100%;
    height: auto;
  }
}
@media (max-width: 639px) {
  body.access .p-page_hero__inner {
    min-height: 65.3333333333vw;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.access .p-page_hero__inner .c-heading_lv1 .en {
    margin: 0 0 1.3333333333vw;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  body.access .p-page_hero__inner .c-heading_lv1 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    letter-spacing: 0.1em;
  }
}

body.contact .l-footer,
body.confirm .l-footer,
body.thanks .l-footer {
  margin-top: 146px;
}
@media (max-width: 639px) {
  body.contact .l-footer,
  body.confirm .l-footer,
  body.thanks .l-footer {
    margin-top: 19.2vw;
  }
}
body.contact .p-contact__inner,
body.confirm .p-contact__inner,
body.thanks .p-contact__inner {
  max-width: 860px;
  margin: 0 auto;
}
body.contact .p-contact__header,
body.confirm .p-contact__header,
body.thanks .p-contact__header {
  margin-top: 136px;
}
body.contact .p-contact__header .lead,
body.confirm .p-contact__header .lead,
body.thanks .p-contact__header .lead {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  letter-spacing: 0.1em;
  font-weight: 600;
  line-height: 2;
}
body.contact .p-contact__body,
body.confirm .p-contact__body,
body.thanks .p-contact__body {
  margin-top: 66px;
}
body.contact .p-contact__body label + label,
body.confirm .p-contact__body label + label,
body.thanks .p-contact__body label + label {
  margin-left: 20px;
}
body.contact .p-contact__body input[type=text], body.contact .p-contact__body input[type=email], body.contact .p-contact__body input[type=tel],
body.confirm .p-contact__body input[type=text],
body.confirm .p-contact__body input[type=email],
body.confirm .p-contact__body input[type=tel],
body.thanks .p-contact__body input[type=text],
body.thanks .p-contact__body input[type=email],
body.thanks .p-contact__body input[type=tel] {
  width: 100%;
  padding: 10px 15px;
  background-color: #ebebeb;
  border-radius: 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  border: none;
  font-family: "Noto Serif JP", serif;
}
body.contact .p-contact__body input[type=checkbox],
body.confirm .p-contact__body input[type=checkbox],
body.thanks .p-contact__body input[type=checkbox] {
  transform: scale(1.3);
  margin-right: 7px;
}
body.contact .p-contact__body textarea,
body.confirm .p-contact__body textarea,
body.thanks .p-contact__body textarea {
  min-width: 100%;
  max-width: 525px;
  min-height: 285px;
  max-height: 485px;
  padding: 4px 15px;
  background-color: #ebebeb;
  border-radius: 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  border: none;
  font-family: "Noto Serif JP", serif;
}
body.contact .p-contact__body dl,
body.confirm .p-contact__body dl,
body.thanks .p-contact__body dl {
  display: flex;
  border-top: 1px solid #d3d3d5;
}
body.contact .p-contact__body dl:last-of-type,
body.confirm .p-contact__body dl:last-of-type,
body.thanks .p-contact__body dl:last-of-type {
  border-bottom: 1px solid #d3d3d5;
}
body.contact .p-contact__body dl dt,
body.contact .p-contact__body dl dd,
body.confirm .p-contact__body dl dt,
body.confirm .p-contact__body dl dd,
body.thanks .p-contact__body dl dt,
body.thanks .p-contact__body dl dd {
  padding: 33px 30px;
}
body.contact .p-contact__body dl dt,
body.confirm .p-contact__body dl dt,
body.thanks .p-contact__body dl dt {
  background-color: #f7f7f7;
  min-width: 283px;
  position: relative;
}
body.contact .p-contact__body dl dt .is-required,
body.confirm .p-contact__body dl dt .is-required,
body.thanks .p-contact__body dl dt .is-required {
  position: absolute;
  top: 35px;
  right: 50px;
  background-color: #b82615;
  padding: 0 13px;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  font-style: normal;
}
body.contact .p-contact__body dl dd,
body.confirm .p-contact__body dl dd,
body.thanks .p-contact__body dl dd {
  flex: 1;
  padding-right: 0;
}
body.contact .p-contact__body dl .postcode,
body.confirm .p-contact__body dl .postcode,
body.thanks .p-contact__body dl .postcode {
  align-items: center;
  display: flex;
}
body.contact .p-contact__body dl .postcode input[type=text],
body.confirm .p-contact__body dl .postcode input[type=text],
body.thanks .p-contact__body dl .postcode input[type=text] {
  width: 185px;
  margin-left: 12px;
}
body.contact .p-contact__body dl .postcode .p-contact__postcode-note,
body.confirm .p-contact__body dl .postcode .p-contact__postcode-note,
body.thanks .p-contact__body dl .postcode .p-contact__postcode-note {
  font-size: 13px;
  font-weight: 500;
  color: #201f2d;
  line-height: 1.46;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
  display: inline-block;
  margin-left: 22px;
}
body.contact .p-contact__body dl .address input[type=text],
body.confirm .p-contact__body dl .address input[type=text],
body.thanks .p-contact__body dl .address input[type=text] {
  margin-top: 14px;
}
body.contact .p-contact__body .privacy,
body.confirm .p-contact__body .privacy,
body.thanks .p-contact__body .privacy {
  font-size: 15px;
  font-weight: 500;
  color: #201f2d;
  line-height: 1.46;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  margin-top: 35px;
}
body.contact .p-contact__body .privacy a,
body.confirm .p-contact__body .privacy a,
body.thanks .p-contact__body .privacy a {
  border-bottom: 1px solid #201f2d;
  margin-right: 10px;
  display: inline-block;
}
body.contact .p-contact__body .privacy a:hover,
body.confirm .p-contact__body .privacy a:hover,
body.thanks .p-contact__body .privacy a:hover {
  border-bottom-color: transparent;
}
body.contact .p-contact__body .privacy .icon,
body.confirm .p-contact__body .privacy .icon,
body.thanks .p-contact__body .privacy .icon {
  margin-left: 4px;
  width: 15px;
  display: inline-block;
}
body.contact .p-contact__body .privacy .icon img,
body.confirm .p-contact__body .privacy .icon img,
body.thanks .p-contact__body .privacy .icon img {
  width: 100%;
}
body.contact .p-contact__body .to_top,
body.contact .p-contact__body .submit,
body.confirm .p-contact__body .to_top,
body.confirm .p-contact__body .submit,
body.thanks .p-contact__body .to_top,
body.thanks .p-contact__body .submit {
  text-align: center;
  margin-top: 35px;
  display: flex;
  gap: 60px;
  justify-content: center;
  align-items: center;
}
body.contact .p-contact__body .to_top input[type=button],
body.contact .p-contact__body .submit input[type=button],
body.confirm .p-contact__body .to_top input[type=button],
body.confirm .p-contact__body .submit input[type=button],
body.thanks .p-contact__body .to_top input[type=button],
body.thanks .p-contact__body .submit input[type=button] {
  appearance: none;
  border: none;
  background: none;
  cursor: pointer;
  font-family: "Noto Serif JP", serif;
  margin-top: 35px;
}
body.contact .p-contact__body .to_top input[type=button],
body.contact .p-contact__body .to_top button[type=back],
body.contact .p-contact__body .submit input[type=button],
body.contact .p-contact__body .submit button[type=back],
body.confirm .p-contact__body .to_top input[type=button],
body.confirm .p-contact__body .to_top button[type=back],
body.confirm .p-contact__body .submit input[type=button],
body.confirm .p-contact__body .submit button[type=back],
body.thanks .p-contact__body .to_top input[type=button],
body.thanks .p-contact__body .to_top button[type=back],
body.thanks .p-contact__body .submit input[type=button],
body.thanks .p-contact__body .submit button[type=back] {
  vertical-align: middle;
  height: 100%;
  margin-right: 20px;
  color: #222;
  font-size: 18px;
}
body.contact .p-contact__body .to_top a,
body.contact .p-contact__body .to_top button,
body.contact .p-contact__body .submit a,
body.contact .p-contact__body .submit button,
body.confirm .p-contact__body .to_top a,
body.confirm .p-contact__body .to_top button,
body.confirm .p-contact__body .submit a,
body.confirm .p-contact__body .submit button,
body.thanks .p-contact__body .to_top a,
body.thanks .p-contact__body .to_top button,
body.thanks .p-contact__body .submit a,
body.thanks .p-contact__body .submit button {
  display: inline-flex;
  justify-content: center;
  gap: 17px;
  align-items: center;
  font-size: 21px;
  letter-spacing: 0.1em;
  transition: opacity 0.2s;
}
body.contact .p-contact__body .to_top a:hover,
body.contact .p-contact__body .to_top button:hover,
body.contact .p-contact__body .submit a:hover,
body.contact .p-contact__body .submit button:hover,
body.confirm .p-contact__body .to_top a:hover,
body.confirm .p-contact__body .to_top button:hover,
body.confirm .p-contact__body .submit a:hover,
body.confirm .p-contact__body .submit button:hover,
body.thanks .p-contact__body .to_top a:hover,
body.thanks .p-contact__body .to_top button:hover,
body.thanks .p-contact__body .submit a:hover,
body.thanks .p-contact__body .submit button:hover {
  opacity: 0.6;
}
body.contact .p-contact__body .to_top .arrow,
body.contact .p-contact__body .submit .arrow,
body.confirm .p-contact__body .to_top .arrow,
body.confirm .p-contact__body .submit .arrow,
body.thanks .p-contact__body .to_top .arrow,
body.thanks .p-contact__body .submit .arrow {
  width: 44px;
}
body.contact .p-contact__body .to_top .arrow img,
body.contact .p-contact__body .submit .arrow img,
body.confirm .p-contact__body .to_top .arrow img,
body.confirm .p-contact__body .submit .arrow img,
body.thanks .p-contact__body .to_top .arrow img,
body.thanks .p-contact__body .submit .arrow img {
  width: 100%;
}
@media (max-width: 639px) {
  body.contact .p-contact__inner,
  body.confirm .p-contact__inner,
  body.thanks .p-contact__inner {
    max-width: none;
    margin: 0;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.contact .p-contact__header,
  body.confirm .p-contact__header,
  body.thanks .p-contact__header {
    margin-top: 16vw;
  }
  body.contact .p-contact__header .lead,
  body.confirm .p-contact__header .lead,
  body.thanks .p-contact__header .lead {
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 2.1153846154;
    letter-spacing: 0.1em;
  }
  body.contact .p-contact__body,
  body.confirm .p-contact__body,
  body.thanks .p-contact__body {
    box-sizing: border-box;
    margin-top: 10.6666666667vw;
  }
  body.contact .p-contact__body label + label,
  body.confirm .p-contact__body label + label,
  body.thanks .p-contact__body label + label {
    margin-left: 0;
  }
  body.contact .p-contact__body input[type=text], body.contact .p-contact__body input[type=email], body.contact .p-contact__body input[type=tel],
  body.confirm .p-contact__body input[type=text],
  body.confirm .p-contact__body input[type=email],
  body.confirm .p-contact__body input[type=tel],
  body.thanks .p-contact__body input[type=text],
  body.thanks .p-contact__body input[type=email],
  body.thanks .p-contact__body input[type=tel] {
    box-sizing: border-box;
    min-height: 9.3333333333vw;
    padding: 1.6vw 2.6666666667vw;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.1em;
  }
  body.contact .p-contact__body input[type=checkbox],
  body.confirm .p-contact__body input[type=checkbox],
  body.thanks .p-contact__body input[type=checkbox] {
    flex-shrink: 0;
    width: 6vw;
    height: 6vw;
    margin: 0 2vw 0 0;
    transform: none;
  }
  body.contact .p-contact__body textarea,
  body.confirm .p-contact__body textarea,
  body.thanks .p-contact__body textarea {
    box-sizing: border-box;
    min-width: 100%;
    max-width: 100%;
    width: 100%;
    min-height: 86.6666666667vw;
    max-height: none;
    padding: 2.6666666667vw;
    font-family: "Noto Serif JP", serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.1em;
  }
  body.contact .p-contact__body dl,
  body.confirm .p-contact__body dl,
  body.thanks .p-contact__body dl {
    display: flex;
    flex-direction: column;
    border-top: 1px solid #d3d3d5;
  }
  body.contact .p-contact__body dl:last-of-type,
  body.confirm .p-contact__body dl:last-of-type,
  body.thanks .p-contact__body dl:last-of-type {
    border-bottom: 1px solid #d3d3d5;
  }
  body.contact .p-contact__body dl dt,
  body.contact .p-contact__body dl dd,
  body.confirm .p-contact__body dl dt,
  body.confirm .p-contact__body dl dd,
  body.thanks .p-contact__body dl dt,
  body.thanks .p-contact__body dl dd {
    padding: 0;
  }
  body.contact .p-contact__body dl dt,
  body.confirm .p-contact__body dl dt,
  body.thanks .p-contact__body dl dt {
    gap: 1.6vw 2.1333333333vw;
    min-width: 0;
    width: 100%;
    background-color: #F7F7F7;
    padding: 4.2666666667vw 4.6666666667vw;
    font-size: 4vw;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  body.contact .p-contact__body dl dt .is-required,
  body.confirm .p-contact__body dl dt .is-required,
  body.thanks .p-contact__body dl dt .is-required {
    position: static;
    margin-left: auto;
    align-self: center;
    box-sizing: border-box;
    min-width: 13.4666666667vw;
    padding: 0.5333333333vw 3.2vw;
    font-size: 3.2vw;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.1em;
    text-align: center;
    margin-left: 4vw;
  }
  body.contact .p-contact__body dl dt .u-md_none,
  body.confirm .p-contact__body dl dt .u-md_none,
  body.thanks .p-contact__body dl dt .u-md_none {
    display: none;
  }
  body.contact .p-contact__body dl dd,
  body.confirm .p-contact__body dl dd,
  body.thanks .p-contact__body dl dd {
    flex: 1 1 auto;
    width: 100%;
    padding: 8vw 4.6666666667vw;
  }
  body.contact .p-contact__body dl .postcode,
  body.confirm .p-contact__body dl .postcode,
  body.thanks .p-contact__body dl .postcode {
    flex-wrap: wrap;
    align-items: center;
    row-gap: 2.1333333333vw;
    column-gap: 1.0666666667vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.1em;
  }
  body.contact .p-contact__body dl .postcode input[type=text],
  body.contact .p-contact__body dl .postcode input[type=tel],
  body.confirm .p-contact__body dl .postcode input[type=text],
  body.confirm .p-contact__body dl .postcode input[type=tel],
  body.thanks .p-contact__body dl .postcode input[type=text],
  body.thanks .p-contact__body dl .postcode input[type=tel] {
    flex: 1 1 auto;
    min-width: 0;
    width: 46.6666666667vw;
    margin-left: 0;
  }
  body.contact .p-contact__body dl .postcode .p-contact__postcode-note,
  body.confirm .p-contact__body dl .postcode .p-contact__postcode-note,
  body.thanks .p-contact__body dl .postcode .p-contact__postcode-note {
    margin-left: 0;
    flex: 1 0 100%;
    margin: 1.0666666667vw 0 0;
    font-size: 3.0666666667vw;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: #201f2d;
  }
  body.contact .p-contact__body dl .address input[type=text],
  body.confirm .p-contact__body dl .address input[type=text],
  body.thanks .p-contact__body dl .address input[type=text] {
    margin-top: 2.6666666667vw;
  }
  body.contact .p-contact__body dl .address input[type=text]:first-child,
  body.confirm .p-contact__body dl .address input[type=text]:first-child,
  body.thanks .p-contact__body dl .address input[type=text]:first-child {
    margin-top: 3.2vw;
  }
  body.contact .p-contact__body .p-contact__checkboxes,
  body.confirm .p-contact__body .p-contact__checkboxes,
  body.thanks .p-contact__body .p-contact__checkboxes {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 4vw;
    row-gap: 3.4666666667vw;
    align-items: center;
  }
  body.contact .p-contact__body .p-contact__checkboxes label,
  body.confirm .p-contact__body .p-contact__checkboxes label,
  body.thanks .p-contact__body .p-contact__checkboxes label {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    margin: 0;
    font-family: "Noto Serif JP", serif;
    font-size: 3.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: #201f2d;
  }
  body.contact .p-contact__body .p-contact__checkboxes label span,
  body.confirm .p-contact__body .p-contact__checkboxes label span,
  body.thanks .p-contact__body .p-contact__checkboxes label span {
    flex: 1;
    min-width: 0;
  }
  body.contact .p-contact__body .p-contact__checkboxes label:nth-child(3),
  body.confirm .p-contact__body .p-contact__checkboxes label:nth-child(3),
  body.thanks .p-contact__body .p-contact__checkboxes label:nth-child(3) {
    grid-column: 1/-1;
  }
  body.contact .p-contact__body .privacy,
  body.confirm .p-contact__body .privacy,
  body.thanks .p-contact__body .privacy {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 2.1333333333vw;
    box-sizing: border-box;
    max-width: 80vw;
    margin-top: 6.4vw;
    margin-right: auto;
    margin-left: auto;
    padding: 0;
    font-size: 3.2vw;
    font-weight: 600;
    line-height: 1.75;
    letter-spacing: 0.1em;
    text-align: left;
  }
  body.contact .p-contact__body .privacy input[type=checkbox],
  body.confirm .p-contact__body .privacy input[type=checkbox],
  body.thanks .p-contact__body .privacy input[type=checkbox] {
    width: 6vw;
    height: 6vw;
    margin-top: 0.5333333333vw;
    transform: none;
  }
  body.contact .p-contact__body .to_top,
  body.contact .p-contact__body .submit,
  body.confirm .p-contact__body .to_top,
  body.confirm .p-contact__body .submit,
  body.thanks .p-contact__body .to_top,
  body.thanks .p-contact__body .submit {
    margin-top: 13.8666666667vw;
    gap: 40px;
  }
  body.contact .p-contact__body .to_top a,
  body.contact .p-contact__body .to_top button,
  body.contact .p-contact__body .submit a,
  body.contact .p-contact__body .submit button,
  body.confirm .p-contact__body .to_top a,
  body.confirm .p-contact__body .to_top button,
  body.confirm .p-contact__body .submit a,
  body.confirm .p-contact__body .submit button,
  body.thanks .p-contact__body .to_top a,
  body.thanks .p-contact__body .to_top button,
  body.thanks .p-contact__body .submit a,
  body.thanks .p-contact__body .submit button {
    gap: 3.2vw;
    font-size: 3.8666666667vw;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 0.724137931;
  }
  body.contact .p-contact__body .to_top input[type=button],
  body.contact .p-contact__body .to_top button[type=back],
  body.contact .p-contact__body .submit input[type=button],
  body.contact .p-contact__body .submit button[type=back],
  body.confirm .p-contact__body .to_top input[type=button],
  body.confirm .p-contact__body .to_top button[type=back],
  body.confirm .p-contact__body .submit input[type=button],
  body.confirm .p-contact__body .submit button[type=back],
  body.thanks .p-contact__body .to_top input[type=button],
  body.thanks .p-contact__body .to_top button[type=back],
  body.thanks .p-contact__body .submit input[type=button],
  body.thanks .p-contact__body .submit button[type=back] {
    margin-top: 13.8666666667vw;
    font-size: 3.4666666667vw;
  }
  body.contact .p-contact__body .to_top .arrow,
  body.contact .p-contact__body .submit .arrow,
  body.confirm .p-contact__body .to_top .arrow,
  body.confirm .p-contact__body .submit .arrow,
  body.thanks .p-contact__body .to_top .arrow,
  body.thanks .p-contact__body .submit .arrow {
    width: 10vw;
  }
}
@media (max-width: 639px) {
  body.contact .p-page_hero__inner,
  body.confirm .p-page_hero__inner,
  body.thanks .p-page_hero__inner {
    min-height: 65.3333333333vw;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.contact .p-page_hero__inner .c-heading_lv1 .en,
  body.confirm .p-page_hero__inner .c-heading_lv1 .en,
  body.thanks .p-page_hero__inner .c-heading_lv1 .en {
    margin: 0 0 1.3333333333vw;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  body.contact .p-page_hero__inner .c-heading_lv1 .jp,
  body.confirm .p-page_hero__inner .c-heading_lv1 .jp,
  body.thanks .p-page_hero__inner .c-heading_lv1 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    letter-spacing: 0.1em;
  }
}

body.blog .l-footer {
  margin-top: 211px;
}
@media (max-width: 639px) {
  body.blog .l-footer {
    margin-top: 19.2vw;
  }
}

body.single-post .l-footer {
  margin-top: 126px;
}
@media (max-width: 639px) {
  body.single-post .l-footer {
    margin-top: 19.2vw;
  }
}

body.blog .p-blog-archive__inner,
body.single-post .p-blog-archive__inner {
  max-width: 868px;
  margin: 0 auto;
}
body.blog .p-blog-archive__list__item a,
body.single-post .p-blog-archive__list__item a {
  display: block;
  padding: 32px 0;
  text-decoration: none;
  border-bottom: 1px solid #d9d9d9;
  transition: border-bottom-color 0.2s ease;
}
@media (min-width: 768px) {
  body.blog .p-blog-archive__list__item a,
  body.single-post .p-blog-archive__list__item a {
    display: flex;
    align-items: center;
  }
}
body.blog .p-blog-archive__list__item a .arrow svg,
body.single-post .p-blog-archive__list__item a .arrow svg {
  fill: #969696;
  transition: fill 0.2s ease;
}
body.blog .p-blog-archive__list__item a:hover,
body.single-post .p-blog-archive__list__item a:hover {
  border-bottom-color: #201f2d;
}
body.blog .p-blog-archive__list__item a:hover .arrow svg,
body.single-post .p-blog-archive__list__item a:hover .arrow svg {
  fill: #201f2d;
}
body.blog .p-blog-archive__list__item .date,
body.single-post .p-blog-archive__list__item .date {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #969696;
  white-space: nowrap;
  min-width: 80px;
  line-height: 1.5;
  padding-top: 2px;
}
body.blog .p-blog-archive__list__item .category,
body.single-post .p-blog-archive__list__item .category {
  flex-shrink: 0;
  margin-left: 20px;
}
body.blog .p-blog-archive__list__item .category span,
body.single-post .p-blog-archive__list__item .category span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 21px;
  border: 1px solid #969696;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  white-space: nowrap;
  text-decoration: none;
  min-width: 98px;
}
body.blog .p-blog-archive__list__item .title,
body.single-post .p-blog-archive__list__item .title {
  flex: 1;
  min-width: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 3.4666666667vw;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #201f2d;
  margin-left: 15px;
  line-height: 1.6;
}
@media (min-width: 768px) {
  body.blog .p-blog-archive__list__item .title,
  body.single-post .p-blog-archive__list__item .title {
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
body.blog .p-blog-pagination,
body.single-post .p-blog-pagination {
  margin-top: 54px;
}
body.blog .p-blog-pagination__inner,
body.single-post .p-blog-pagination__inner {
  max-width: 868px;
  margin: 0 auto;
}
body.blog .p-blog-pagination__list,
body.single-post .p-blog-pagination__list {
  display: flex;
  align-items: center;
  gap: 70px;
}
body.blog .p-blog-pagination__list__item a,
body.single-post .p-blog-pagination__list__item a {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 15px;
  letter-spacing: 0.1em;
}
body.blog .p-blog-pagination__list__item .arrow,
body.single-post .p-blog-pagination__list__item .arrow {
  width: 53px;
  display: inline-block;
}
body.blog .p-blog-pagination__list__item .arrow img,
body.single-post .p-blog-pagination__list__item .arrow img {
  width: 100%;
}
body.blog .p-blog-pagination__list__item.prev a,
body.single-post .p-blog-pagination__list__item.prev a {
  flex-direction: row-reverse;
}
body.blog .p-blog-article__inner,
body.single-post .p-blog-article__inner {
  max-width: 758px;
  margin: 0 auto;
}
body.blog .p-blog-article__header,
body.single-post .p-blog-article__header {
  margin-top: 86px;
}
body.blog .p-blog-article__header .meta,
body.single-post .p-blog-article__header .meta {
  display: flex;
  align-items: center;
  gap: 22px;
}
body.blog .p-blog-article__header .meta .date,
body.single-post .p-blog-article__header .meta .date {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #868686;
}
body.blog .p-blog-article__header .meta .category a,
body.single-post .p-blog-article__header .meta .category a {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #201f2d;
  display: block;
  padding: 4px 14px;
  border: 1px solid #969696;
}
body.blog .p-blog-article__header .title,
body.single-post .p-blog-article__header .title {
  margin-top: 27px;
  font-size: 26px;
  letter-spacing: 0.1em;
}
body.blog .p-blog-article__body,
body.single-post .p-blog-article__body {
  margin-top: 30px;
  font-size: 16px;
  letter-spacing: 0.1em;
}
body.blog .p-blog-article__body h2,
body.single-post .p-blog-article__body h2 {
  font-size: 20px;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin: 40px 0 20px;
}
body.blog .p-blog-article__body h3,
body.single-post .p-blog-article__body h3 {
  border-left: 5px solid #1c1c1c;
  padding-left: 11px;
  margin: 30px 0 20px;
  letter-spacing: 0.1em;
}
body.blog .p-blog-article__body h4,
body.single-post .p-blog-article__body h4 {
  font-size: 14px;
  border-bottom: 1px solid #1c1c1c;
  margin: 30px 0 20px;
  padding-bottom: 10px;
  letter-spacing: 0.1em;
}
body.blog .p-blog-article__body p,
body.single-post .p-blog-article__body p {
  line-height: 1.88;
  letter-spacing: 0.15em;
  font-weight: 600;
  margin: 20px 0;
}
body.blog .p-blog-article__body ol,
body.blog .p-blog-article__body ul,
body.single-post .p-blog-article__body ol,
body.single-post .p-blog-article__body ul {
  list-style: inline;
  padding-left: 30px;
}
body.blog .p-blog-article__body ol li,
body.blog .p-blog-article__body ul li,
body.single-post .p-blog-article__body ol li,
body.single-post .p-blog-article__body ul li {
  line-height: 1.88;
}
body.blog .p-blog-article__body table,
body.single-post .p-blog-article__body table {
  border-collapse: collapse;
}
body.blog .p-blog-article__body table th,
body.blog .p-blog-article__body table td,
body.single-post .p-blog-article__body table th,
body.single-post .p-blog-article__body table td {
  border: 1px solid #1c1c1c;
  padding: 10px 15px;
}
body.blog .p-blog-article__body table th,
body.single-post .p-blog-article__body table th {
  background-color: #1c1c1c;
  color: #fff;
}
body.blog .p-blog-article__body table td,
body.single-post .p-blog-article__body table td {
  background-color: #f5f5f5;
}
@media (max-width: 639px) {
  body.blog .p-page_hero__inner,
  body.single-post .p-page_hero__inner {
    min-height: 65.3333333333vw;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.blog .p-page_hero__inner .c-heading_lv1 .en,
  body.single-post .p-page_hero__inner .c-heading_lv1 .en {
    margin: 0 0 1.3333333333vw;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  body.blog .p-page_hero__inner .c-heading_lv1 .jp,
  body.single-post .p-page_hero__inner .c-heading_lv1 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    letter-spacing: 0.1em;
  }
}

@media (max-width: 639px) {
  body.blog .p-blog-archive {
    margin-top: 20.6666666667vw;
  }
  body.blog .p-blog-archive__inner {
    max-width: none;
    margin: 0;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.blog .p-blog-archive__list__item a {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 2.9333333333vw;
    align-items: start;
    box-sizing: border-box;
    width: 100%;
    padding: 4vw 0 4vw;
    border-bottom: 0.2666666667vw solid #d9d9d9;
  }
  body.blog .p-blog-archive__list__item a:hover {
    border-bottom-color: #201f2d;
  }
  body.blog .p-blog-archive__list__item a:hover .arrow svg {
    fill: #201f2d;
  }
  body.blog .p-blog-archive__list__item .date {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    min-width: 0;
    padding-top: 0;
    font-size: 3.2vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #969696;
  }
  body.blog .p-blog-archive__list__item .category {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: start;
    margin-left: 0;
  }
  body.blog .p-blog-archive__list__item .category span {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24vw;
    padding: 1.3333333333vw 4vw;
    border: 1px solid #969696;
    font-size: 2.9333333333vw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.1em;
    color: #201f2d;
  }
  body.blog .p-blog-archive__list__item .title {
    grid-column: 1/4;
    grid-row: 2;
    margin-top: 4.6666666667vw;
    margin-left: 0;
    min-width: 0;
    font-size: 3.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: #201f2d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.blog .p-blog-archive__list__item .arrow {
    grid-column: 4;
    grid-row: 2;
    align-self: center;
    justify-self: end;
    margin: 0;
  }
  body.blog .p-blog-archive__list__item .arrow svg {
    display: block;
    width: 7.6vw;
    height: auto;
  }
}
@media (max-width: 639px) {
  body.blog .p-blog-pagination {
    margin-top: 20.5333333333vw;
  }
  body.blog .p-blog-pagination__inner {
    max-width: none;
  }
  body.blog .p-blog-pagination__list {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.6vw;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.blog .p-blog-pagination__list__item .arrow {
    box-sizing: border-box;
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 10vw;
    height: 10vw;
  }
  body.blog .p-blog-pagination__list__item .arrow img {
    width: 100%;
    height: auto;
  }
  body.blog .p-blog-pagination__list__item.prev a, body.blog .p-blog-pagination__list__item.next a {
    flex-direction: column-reverse;
    gap: 2vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 0.8076923077;
    letter-spacing: 0.1em;
  }
}

body.single-post .p-blog-pagination__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}
body.single-post .p-blog-pagination__list__item.prev {
  justify-self: start;
}
body.single-post .p-blog-pagination__list__item.next {
  grid-column: 3;
  justify-self: end;
}
body.single-post .p-blog-pagination__list__item--archive {
  grid-column: 2;
  justify-self: center;
  align-self: center;
}
@media (max-width: 639px) {
  body.single-post .p-blog-article__inner {
    padding-right: 5.3333333333vw;
    padding-left: 5.3333333333vw;
    box-sizing: border-box;
  }
  body.single-post .p-blog-article__header {
    margin-top: 20.6666666667vw;
  }
  body.single-post .p-blog-article__header .meta {
    flex-wrap: wrap;
    gap: 2.1333333333vw;
    row-gap: 2.1333333333vw;
  }
  body.single-post .p-blog-article__header .meta .date {
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 3.875;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__header .meta .category a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.6vw 3.2vw;
    font-size: 2.9333333333vw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__header .title {
    margin-top: 4.6666666667vw;
    font-size: 4vw;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__body {
    margin-top: 6.4vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 1.6538461538;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__body p {
    margin: 2.6666666667vw 0;
  }
  body.single-post .p-blog-article__body > img:first-of-type {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    height: auto;
    margin-bottom: 9.3333333333vw;
  }
  body.single-post .p-blog-article__body h2 {
    margin: 8.5333333333vw 0 4.2666666667vw;
    font-size: 4vw;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__body h3 {
    margin: 6.4vw 0 3.2vw;
    padding-left: 2.6666666667vw;
    border-left: 1.0666666667vw solid #1c1c1c;
    font-size: 3.6vw;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__body h4 {
    margin: 6.4vw 0 3.2vw;
    font-size: 2.6666666667vw;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-article__body ul,
  body.single-post .p-blog-article__body ol {
    padding-left: 4vw;
  }
  body.single-post .p-blog-article__body ul li,
  body.single-post .p-blog-article__body ol li {
    line-height: inherit;
    letter-spacing: inherit;
    font-weight: inherit;
  }
  body.single-post .p-blog-article__body blockquote p {
    font-size: 3.4666666667vw;
    line-height: 1.6538461538;
  }
  body.single-post .p-blog-article__body table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    font-size: 3.4666666667vw;
  }
}
@media (max-width: 639px) {
  body.single-post .p-blog-pagination {
    margin-top: 25.6vw;
  }
  body.single-post .p-blog-pagination__inner {
    max-width: none;
  }
  body.single-post .p-blog-pagination__list {
    gap: 1.6vw;
    align-items: center;
  }
  body.single-post .p-blog-pagination__list__item .arrow {
    box-sizing: border-box;
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 10vw;
    height: 10vw;
  }
  body.single-post .p-blog-pagination__list__item .arrow img {
    width: 100%;
    height: auto;
  }
  body.single-post .p-blog-pagination__list__item.prev a, body.single-post .p-blog-pagination__list__item.next a {
    flex-direction: column-reverse;
    gap: 2vw;
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 0.8076923077;
    letter-spacing: 0.1em;
  }
  body.single-post .p-blog-pagination__list__item--archive a {
    font-size: 3.4666666667vw;
    font-weight: 600;
    line-height: 0.8076923077;
    letter-spacing: 0.1em;
  }
}

body.error404 .l-footer {
  margin-top: 146px;
}
@media (max-width: 639px) {
  body.error404 .l-footer {
    margin-top: 19.2vw;
  }
}
body.error404 .p-404__inner {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}
body.error404 .p-404__header {
  margin-top: 136px;
}
body.error404 .p-404__code {
  font-family: "Cormorant Garamond", serif;
  font-size: 96px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  color: #201f2d;
}
body.error404 .p-404__lead {
  margin-top: 32px;
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 2;
}
body.error404 .p-404__body {
  margin-top: 66px;
}
body.error404 .p-404__back {
  display: flex;
  justify-content: center;
  align-items: center;
}
body.error404 .p-404__back a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 17px;
  font-size: 21px;
  letter-spacing: 0.1em;
  transition: opacity 0.2s;
}
body.error404 .p-404__back a:hover {
  opacity: 0.7;
}
body.error404 .p-404__back .arrow {
  width: 44px;
}
body.error404 .p-404__back .arrow img {
  width: 100%;
}
@media (max-width: 639px) {
  body.error404 .p-404__inner {
    max-width: none;
    margin: 0;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.error404 .p-404__header {
    margin-top: 16vw;
  }
  body.error404 .p-404__code {
    font-size: 18.6666666667vw;
  }
  body.error404 .p-404__lead {
    margin-top: 5.3333333333vw;
    font-size: 3.4666666667vw;
    line-height: 2.1153846154;
  }
  body.error404 .p-404__body {
    margin-top: 12.8vw;
  }
  body.error404 .p-404__back a {
    gap: 3.2vw;
    font-size: 3.8666666667vw;
    line-height: 0.724137931;
  }
  body.error404 .p-404__back .arrow {
    width: 10vw;
  }
}
@media (max-width: 639px) {
  body.error404 .p-page_hero__inner {
    min-height: 65.3333333333vw;
    padding-right: 4.6666666667vw;
    padding-left: 4.6666666667vw;
    box-sizing: border-box;
  }
  body.error404 .p-page_hero__inner .c-heading_lv1 .en {
    margin: 0 0 1.3333333333vw;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  body.error404 .p-page_hero__inner .c-heading_lv1 .jp {
    font-size: 6.4vw;
    line-height: 0.9166666667;
    letter-spacing: 0.1em;
  }
}

.u-hidden {
  visibility: hidden;
}

.u-overflow-hidden {
  overflow: hidden;
}

[data-gsap=fade-up],
[data-gsap=fade-in],
[data-gsap=slide-left],
[data-gsap=scale-in] {
  visibility: hidden;
}

.u-hover {
  transition: opacity 0.2s ease;
}
.u-hover:hover {
  opacity: 0.6;
}

@media (min-width: 640px) {
  .u-sm_none {
    display: none !important;
  }
}

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

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

@media (min-width: 1280px) {
  .u-xl_none {
    display: none !important;
  }
}

@media (min-width: 1536px) {
  .u-2xl_none {
    display: none !important;
  }
}
