@charset "UTF-8";

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 10px;
  overflow-x: hidden;
}

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

ul,
ol {
  list-style: none;
}

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

.for-sp {
  display: none;
}

.for-tab {
  display: none;
}

@media screen and (max-width: 1024px) {
  .for-tab {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .for-sp {
    display: block;
  }

  .for-pc {
    display: none;
  }
}

/* ----全体調整---- */

body {
  color: var(--colorBlack);
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  overflow-x: clip;
}

p,
h5,
h4,
h3,
h2,
h1,
a,
dd,
dt,
li,
figcaption,
button,
input,
label {
  font-family: var(--familyNotoSans);
}

.memberbg {
  background-color: var(--colorMemberBg);
}

.color-black {
  color: var(--colorBlack);
}

body:has(.admin_container.auth-bg) {
  background-color: #87a1c0;
}

.pos-re {
  position: relative;
}

/* container */
.container900 {
  padding-inline: 2.5rem;
  margin-inline: auto;
  max-width: 95rem;
}

.container1000 {
  padding-inline: 2.5rem;
  margin-inline: auto;
  max-width: 105rem;
}

.container1140 {
  padding-inline: 2.5rem;
  margin-inline: auto;
  max-width: 119rem;
}

.container1200 {
  padding-inline: 2.5rem;
  margin-inline: auto;
  max-width: 125rem;
}

.container1332 {
  padding-inline: 2.5rem;
  margin-inline: auto;
  max-width: 138.2rem;
}

/* components */
.btn-primary {
  background: var(--colorMember);
  border: 1px solid var(--colorMember);
  border-radius: 1rem;
  color: var(--colorWhite);
  box-shadow: 2px 4px 4px 0px #00000040;
  font-family: var(--familyNotoSerif);
  font-size: 1.5rem;
  letter-spacing: 2.42px;
  padding: 1.4rem;
  transition: all 0.3s;
}

@media (hover: hover) {
  .btn-primary:hover {
    background: var(--colorWhite);
    color: var(--colorMember);
  }
}

.btn-anchor {
  border-radius: 2.5rem;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  justify-content: center;
  font-family: var(--familyNotoSerif);
  font-size: 1.5rem;
  line-height: 3.8rem;
  letter-spacing: 1%;
  padding-block: 0.5rem;
  padding-left: 3rem;
  position: relative;
  text-align: center;
  transition: all 0.3s;
  width: 100%;
  max-width: 30rem;
}

.btn-anchor::after {
  content: "";
  display: block;
  border-right: 1px solid var(--colorWhite);
  border-bottom: 1px solid var(--colorWhite);
  margin-right: 2.7rem;
  transform: rotate(45deg);
  height: 8px;
  width: 8px;
}

.btn-blue {
  background-color: var(--colorMember);
  border: 1px solid var(--colorMember);
  color: var(--colorWhite);
}

.btn-light-greige {
  background-color: #bebeab;
  border: 1px solid #bebeab;
  color: var(--colorBlack);
}

.btn-light-greige::after {
  border-right: 1px solid var(--colorBlack);
  border-bottom: 1px solid var(--colorBlack);
}

@media (hover: hover) {
  .btn-blue:hover {
    background-color: var(--colorWhite);
    color: var(--colorMember);
  }

  .btn-light-greige:hover {
    background-color: var(--colorBlack);
    color: var(--colorWhite);
  }
}

.secFlex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.secTitle__en {
  font-size: 2rem;
  font-family: var(--familyCrimsonPro);
  font-weight: 300;
  letter-spacing: 0.1em;
  color: var(--colorLightBlue);
  padding-left: 3.2rem;
  position: relative;
}

.secTitle__en::before {
  content: "";
  width: 2.1rem;
  height: 1px;
  background: var(--colorLightBlue);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.secTitle__ja {
  font-size: 4.4rem;
  font-family: var(--familyNotoSerif);
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-top: 1.7rem;
}

.moreLink {
  font-size: 1.2rem;
  font-family: var(--familyNotoSans);
  letter-spacing: 0.0833em;
  color: var(--colorBlack);
  width: fit-content;
}

.hasArrow {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  transition: all 0.3s;
}

.hasArrow::after {
  content: "";
  background-image: url(../images/common/icon-arrow-blue.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 3rem;
  height: 3rem;
  transition: all 0.3s;
}

.commonLink {
  background: var(--colorLightBlue);
  max-width: 56rem;
  height: 7.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.11em;
  color: var(--colorWhite);
  box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.25);
  border: 1px solid var(--colorWhite);
  border-radius: 1rem;
  transition: all 0.3s;
}

.commonLink::after {
  content: "";
  background-image: url(../images/common/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 3rem;
  height: 3rem;
  position: absolute;
  right: 2.6rem;
  top: 50%;
  transform: translateY(-50%);
}

.commonLink.commonLink--blue {
  background-color: var(--colorMember);
  border: 1px solid var(--colorMember);
}

@media (hover: hover) {
  .commonLink.commonLink--blue:hover {
    border: 1px solid var(--colorMember);
    color: var(--colorMember);
  }

  .commonLink.commonLink--blue:hover::after {
    background-image: url(../images/common/icon-arrow-darkblue.svg);
  }
}

.moreLink.for-sp {
  display: none;
}

.sp-moreLink {
  background: var(--colorLightBlue);
  max-width: 23rem;
  height: 50px;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  color: var(--colorWhite);
  font-size: 1.3rem;
  position: relative;
}

.sp-moreLink::after {
  content: "";
  background-image: url(../images/common/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 3rem;
  height: 3rem;
}

@media (hover: hover) {
  .hasArrow:hover::after {
    background-image: url(../images/common/icon-arrow-blue-hover.svg);
  }

  .commonLink:hover {
    background: var(--colorWhite);
    color: var(--colorLightBlue);
  }

  .commonLink:hover::after {
    background-image: url(../images/common/icon-arrow-blue.svg);
  }
}

.lowerSecTitle__en {
  font-size: 2.5rem;
  font-weight: 300;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.08em;
  color: var(--colorLightBlue);
  position: relative;
  padding-bottom: 2.3rem;
  text-align: center;
}

.lowerSecTitle__en::after {
  content: "";
  width: 2rem;
  height: 1px;
  background: var(--colorLightBlue);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  display: block;
}

.lowerSecTitle__ja {
  font-size: 3.2rem;
  font-family: var(--familyNotoSerif);
  line-height: 1.875;
  letter-spacing: 0.14em;
  text-align: center;
  margin-top: 0.7rem;
}

@media screen and (max-width: 767px) {
  .moreLink {
    font-size: 1.4rem;
  }

  .moreLink.for-pc {
    display: none;
  }

  .moreLink.for-sp {
    display: flex;
  }

  .secTitle__ja {
    font-size: 2rem;
    margin-top: 0.4rem;
    line-height: 2.2;
  }

  .sp-moreLink {
    display: flex;
  }

  .lowerSecTitle__en {
    font-size: 1.7rem;
    padding-bottom: 2rem;
  }

  .lowerSecTitle__ja {
    font-size: 2.1rem;
    letter-spacing: 0.04em;
    margin-top: 1rem;
  }
}

/* animation */
.js-fadeIn {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.js-fadeIn.is-visible {
  opacity: 1;
}

.js-fadein-now {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.js-fadein-now.is-visible {
  opacity: 1;
}

.js-slideleft {
  opacity: 0;
  left: -20%;
  transition:
    opacity 0.5s,
    left 1s;
}

.js-slideleft.is-visible {
  left: 0;
  opacity: 1;
}

.js-slideright {
  opacity: 0;
  right: -20%;
  transition:
    opacity 0.5s,
    right 1s;
}

.js-slideright.is-visible {
  right: 0;
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .js-slideleft {
    opacity: 1;
    left: unset;
  }
  .js-slideright {
    opacity: 1;
    right: unset;
  }
}

/* swiper */
.sp-swiperNav {
  display: none;
}

.swiper-button-prev {
  background-image: url(../images/common/icon-swiper-arrow.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 8rem;
  height: 8rem;
  transform: rotate(180deg);
  opacity: 0.9;
}

.swiper-button-next {
  background-image: url(../images/common/icon-swiper-arrow.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 8rem;
  height: 8rem;
  opacity: 0.9;
}

.swiper-navigation-icon {
  display: none;
}

@media screen and (max-width: 767px) {
  .swiper-button-prev,
  .swiper-button-next {
    display: none;
  }

  .sp-swiperNav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
    width: 100%;
  }

  .sp-swiperNav__prev,
  .sp-swiperNav__next {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
  }

  .sp-swiperNav__prev::before,
  .sp-swiperNav__next::before {
    content: "";
    display: inline-block;
    width: 0.9rem;
    height: 0.9rem;
    border: 0.13em solid #484848;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
  }

  .sp-swiperNav__prev::before {
    transform: rotate(-135deg);
  }

  .sp-swiperNav__next::before {
    transform: rotate(45deg);
  }

  .sp-swiperNav__prev:disabled::before,
  .sp-swiperNav__next:disabled::before {
    border-color: #ccc;
  }

  .sp-swiperNav__prev:disabled,
  .sp-swiperNav__next:disabled {
    cursor: default;
  }

  .sp-swiperNav__sep {
    font-size: 1.6rem;
    color: #484848;
    line-height: 1;
  }
}

/* header */
.min-h-screen {
  position: relative;
}

.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  transition:
    background-color 0.3s,
    position 0s;
  padding: 0 4.8rem 0 3.1rem;
}

@keyframes slideDown {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}

.header.is-fixed {
  position: fixed;
  background-color: var(--colorWhite);
  border-bottom: 1px solid var(--colorBlack);
  padding: 1.6rem 2.9rem 1rem 2rem;
  animation: slideDown 0.4s ease-out forwards;
}

.header.sub {
  position: sticky;
  top: 0;
  background-color: var(--colorWhite);
  border-bottom: 1px solid var(--colorBlack);
  padding: 1.6rem 2.9rem 1rem 2rem;
}

.header.is-fixed .headerBtn,
.header.sub .headerBtn {
  background: var(--colorMember);
  color: var(--colorWhite);
  border: 1px solid var(--colorWhite);
}

.header__logo {
	width: 15.4rem;
	height: 10rem;
  display: grid;
	align-content	: center;
	justify-content: center;
  gap: 0.7rem;
  transition: all 0.3s;
	background: var(--colorWhite);
	padding-top: 0.8rem;
}

.header.is-fixed .header__logo ,
.header.sub .header__logo {
	width: unset;
	height: unset;
	align-content: unset;
	justify-content: unset;
	padding-top: unset;
}

.header__logo img {
  width: 11.2rem;
}

.header__logo .logo-blue {
  display: none;
}

.header.is-fixed .header__logo .logo-white,
.header.sub .header__logo .logo-white {
  display: none;
}

.header.is-fixed .header__logo .logo-blue,
.header.sub .header__logo .logo-blue {
  display: block;
}

.header.is-fixed .header__logoText,
.header.is-fixed .headerList__item a,
.header.sub .header__logoText,
.header.sub .headerList__item a {
  color: var(--colorBlack);
}

.header.is-fixed .headerDrawer__list li a,
.header.sub .headerDrawer__list li a {
  background-color: #e8ecf0;
}

.header.is-fixed .headerDrawer__list li a.current,
.header.sub .headerDrawer__list li a.current {
  background-color: var(--colorBlack);
  color: var(--colorWhite);
}

@media (hover: hover) {
  .header.is-fixed .headerDrawer__list li a:hover,
  .header.sub .headerDrawer__list li a:hover {
    background-color: var(--colorBlack);
    color: var(--colorWhite);
  }
}

.header.is-fixed .headerList__item.has-child.is-open .headerDrawer,
.header.sub .headerList__item.has-child.is-open .headerDrawer {
  margin-top: 2.8rem;
}

.header.is-fixed .header__logoText,
.header.sub .header__logoText {
  font-size: 1.2rem;
}

.header__logoText {
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  font-family: var(--familyNotoSerif);
  color: var(--colorMember);
  text-align: center;
}

.headerNav {
  display: flex;
  align-items: center;
  gap: 5.5rem;
}

.headerList {
  display: flex;
  gap: 4rem;
}

.headerList__item a {
  color: var(--colorWhite);
  font-size: 1.3rem;
  font-family: var(--familyNotoSerif);
  padding-block: 0.5rem;
  transition: all 0.3s;
}

.headerList__item.has-child {
  position: relative;
}

.headerDrawer {
  position: absolute;
  top: 100%;
  left: 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s ease;
  margin-top: 1.5rem;
}

.headerDrawer::before {
  content: "";
  position: absolute;
  top: -15px;
  left: 0;
  width: 100%;
  height: 15px;
}

.headerList__item.has-child.is-open {
  border-bottom: 1px solid var(--colorWhite);
}

.headerList__item.has-child.is-open .headerDrawer {
  opacity: 1;
  visibility: visible;
  margin-top: 1.5rem;
}

.headerDrawer__list {
  display: grid;
  gap: 0.1rem;
  width: 234px;
}

.headerDrawer__list li {
  width: 100%;
}

.headerDrawer__list li a {
  color: var(--colorWhite);
  font-size: 1.3rem;
  font-family: var(--familyNotoSerif);
  padding: 0.8rem 1rem;
  border: 1px solid var(--colorWhite);
  border-radius: 0.6rem;
}

.headerList__item.has-child:last-child .headerDrawer__list {
  width: max-content;
}

.headerDrawer__list li a:hover {
  background-color: #f9f9f9;
  color: var(--colorLightBlue);
}

.headerBtns {
  display: flex;
  gap: 0.4rem;
}

.headerBtn .icon-hover {
  display: none;
}

.headerBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10rem;
  height: 3.4rem;
  color: var(--colorWhite);
  border: 1px solid var(--colorWhite);
  font-family: var(--familyNotoSerif);
  line-height: 1.2;
  letter-spacing: 1px;
  gap: 0.2rem;
  transition: all 0.3s;
}

.headerBtn.register {
  letter-spacing: 20%;
}

.header.is-fixed .headerBtns .headerBtn.mypage,
.header.sub .headerBtns .headerBtn.mypage {
  background: var(--colorLightBlue);
}

.header.is-fixed .headerBtns .headerBtn.logout,
.header.sub .headerBtns .headerBtn.logout {
  background: #818790;
}

.header .headerBtns .headerBtn.logout button,
.header.is-fixed .headerBtns .headerBtn.logout button,
.header.sub .headerBtns .headerBtn.logout button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  width: 100%;
  height: 100%;
}

.header__admin.sub .headerList__item a {
  color: #3644b5;
}

.header__admin .headerList {
	align-items: center;
}

form:has(.header__adminLogout)  {
	border-radius: 1rem;
	width: 15rem;
	height: 4.5rem;
}

.header__adminLogout {
	background: #3644b5;
	border-radius: 1rem;
}

@media (hover: hover) {
  .header__logo:hover,
  .headerList__item a:hover {
    opacity: 0.7;
  }

  .headerBtn:hover {
    background-color: rgba(72, 72, 72, 0.6);
    mix-blend-mode: multiply;
  }

  .header.is-fixed .headerBtn:hover,
  .header.sub .headerBtn:hover {
    background: var(--colorWhite);
    color: var(--colorMember);
    border: 1px solid var(--colorMember);
  }

  .header.is-fixed .headerBtn:hover .icon-default,
  .header.sub .headerBtn:hover .icon-default {
    display: none;
  }

  .header.is-fixed .headerBtn:hover .icon-hover,
  .header.sub .headerBtn:hover .icon-hover {
    display: block;
  }

  .header.is-fixed .headerBtns .headerBtn.mypage:hover,
  .header.sub .headerBtns .headerBtn.mypage:hover {
    background: var(--colorWhite);
    color: var(--colorLightBlue);
    border: 1px solid var(--colorLightBlue);
  }

  .header.is-fixed .headerBtns .headerBtn.logout:hover,
  .header.sub .headerBtns .headerBtn.logout:hover {
    background: var(--colorWhite);
    color: #818790;
    border: 1px solid #818790;
  }
}

@media screen and (max-width: 1100px) {
  .headerNav {
    gap: 3rem;
  }

  .headerList {
    gap: 2rem;
  }
}

@media screen and (max-width: 1000px) {
  .header {
    padding: 0 3.33vw 0 2.15vw;
  }

  .header.is-fixed,
  .header.sub {
    padding: 1.6vw 2.9vw 1vw 2vw;
  }

  .header__logo {
		width: 10.69vw;
		height: 6.94vw;
    gap: 0.7vw;
		padding-top: 0.55vw;
  }

  .header__logo img {
    width: 7.77vw;
  }

  .header.is-fixed .header__logoText,
  .header.sub .header__logoText {
    font-size: 1.2vw;
  }

  .header__logoText {
    font-size: 0.9vw;
  }

  .headerNav {
    gap: 3vw;
  }

  .headerList {
    gap: 2vw;
  }

  .headerList__item a {
    font-size: 1.3vw;
  }

  .headerBtns {
    gap: 0.4vw;
  }

  .headerBtn {
    width: 10vw;
    height: 4vw;
    gap: 0.2vw;
  }

  .headerDrawer__list li a {
    font-size: 1.3vw;
  }
}

@media screen and (max-width: 767px) {
  .header {
    position: fixed;
    background-color: var(--colorWhite);
    border-bottom: 1px solid var(--colorBlack);
    padding: 1.6rem 1.8rem 1.3rem 1.8rem;
  }

  .header.is-fixed,
  .header.sub {
    animation: none;
    padding: 1.6rem 1.8rem 1.3rem 1.8rem;
  }

  .header.is-fixed .header__logoText,
  .header.sub .header__logoText {
    font-size: 1.2rem;
  }

  .headerNav {
    display: none;
  }

  .header__logo {
    display: flex;
    align-items: center;
    gap: 0.6rem;
		width: unset;
		height: unset;
		align-content: unset;
		justify-content: unset;
		padding-top: unset;
  }

  .header__logo .logo-white {
    display: none !important;
  }

  .header__logo .logo-blue {
    display: block !important;
  }

  .header__logoText {
    color: var(--colorBlack) !important;
    font-size: 1.2rem;
  }

  .header__logo img {
    width: 12rem;
  }

  .headerHamburger {
    width: 2.2rem;
    height: 1.5rem;
    position: relative;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
  }

  .headerHamburger span {
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: var(--colorBlack);
    left: 0;
    transition: 0.3s ease;
  }

  .headerHamburger span:nth-of-type(1) {
    top: 0;
  }
  .headerHamburger span:nth-of-type(2) {
    top: 50%;
    transform: translateY(-50%);
  }
  .headerHamburger span:nth-of-type(3) {
    bottom: 0;
  }

  .headerHamburger.is-active span:nth-of-type(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
  }
  .headerHamburger.is-active span:nth-of-type(2) {
    opacity: 0;
  }
  .headerHamburger.is-active span:nth-of-type(3) {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
  }

  .mobileMenu {
    position: fixed;
    top: 6.14rem;
    left: 0;
    width: 100%;
    height: calc(100svh - 6.14rem);
    background-color: var(--colorBlack);
    overflow-y: auto;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease;
  }

  .mobileMenu.is-open {
    opacity: 1;
    visibility: visible;
  }

  .mobileMenu__inner {
    padding: 1.6rem 2.5rem 4.7rem;
  }

  .mobileMenu__buttons {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-inline: 0.9rem;
  }

  .mobileMenu__btn {
    flex: 1;
    background-color: var(--colorMember);
    color: var(--colorWhite);
    border: 1px solid var(--colorWhite);
    padding: 1rem 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.2rem;
    font-family: var(--familyNotoSerif);
    text-align: center;
  }

  .mobileMenu__btn--mypage {
    background: var(--colorLightBlue);
  }

  .mobileMenu__btn--logout {
    background: #818790;
  }

  .mobileMenu__btn--logout button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .mobileMenu__btn--registration {
    letter-spacing: 0.2em;
  }

  .mobileMenu__btn img {
    width: 1.5rem;
  }

  .mobileMenu__search {
    background-color: var(--colorLightBlue);
    padding: 2rem 2rem 0.5rem;
    color: var(--colorWhite);
    margin-bottom: 1.4rem;
  }

  .mobileMenu__searchTitle {
    font-size: 1.6rem;
    font-family: var(--familyNotoSerif);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    position: relative;
    cursor: pointer;
  }

  .mobileMenu__search:not(.is-open) .mobileMenu__searchTitle {
    margin-bottom: 0;
  }

  .mobileMenu__searchTitle::after {
    content: "＋";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2.2rem;
    font-weight: 300;
  }

  .mobileMenu__search.is-open .mobileMenu__searchTitle::after {
    content: "－";
  }

  .mobileMenu__searchContent {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-out;
    padding-top: 1.5rem;
  }

  .mobileMenu__search.is-open .mobileMenu__searchContent {
    grid-template-rows: 1fr;
  }

  .mobileMenu__searchContentInner {
    overflow: hidden;
  }

  .mobileMenu__searchTitle img {
    width: 1.6rem;
  }

  .mobileMenu__checkbox {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
    font-family: var(--familyNotoSerif);
  }

  .mobileMenu__checkbox,
  .mobileMenu__areaList label {
    position: relative;
  }

  .mobileMenu__search label input {
    width: 1.8rem;
    height: 1.8rem;
    border: none;
  }

  .mobileMenu__search label input:where([type="checkbox"]):checked {
    /* all: unset; */
    color: unset;
    border: none;
    width: 1.8rem;
    height: 1.8rem;
  }

  .mobileMenu__search label:has(input:where([type="checkbox"]):checked)::after {
    content: "";
    position: absolute;
    background-image: url(../images/common/icon-check.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1rem;
    height: 1rem;
    left: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
  }

  .mobileMenu__search input:where([type="checkbox"]):focus,
  .mobileMenu__search input:where([type="radio"]):focus {
    box-shadow: unset !important;
  }

  .mobileMenu__searchSubtitle {
    display: flex;
    align-items: center;
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
  }

  .mobileMenu__searchSubtitle::before,
  .mobileMenu__searchSubtitle::after {
    content: "";
    flex: 1;
    height: 1px;
    background-color: var(--colorWhite);
  }

  .mobileMenu__searchSubtitle span {
    padding: 0 1rem;
    font-size: 1.3rem;
    font-family: var(--familyNotoSerif);
  }

  .mobileMenu__areaList {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem 0;
  }

  .mobileMenu__areaList label {
    font-size: 1.4rem;
    font-family: var(--familyNotoSerif);
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .mobileMenu__searchBtn {
    display: block;
    border: 1px solid var(--colorWhite);
    color: var(--colorWhite);
    text-align: center;
    padding: 1rem;
    font-size: 1.5rem;
    font-family: var(--familyNotoSerif);
    max-width: 22rem;
    width: 100%;
    margin: 1.5rem auto;
    position: relative;
  }

  .mobileMenu__searchBtn::after {
    content: "";
    background-image: url(../images/common/icon-arrow-white.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    right: 1.2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.2rem;
    height: 2.2rem;
  }

  .mobileMenu__nav {
    background-color: var(--colorWhite);
    margin-bottom: 2rem;
  }

  .mobileMenu__navItem {
    border-bottom: 1px solid #e8ecf0;
  }
  .mobileMenu__navItem:last-child {
    border-bottom: none;
  }

  .mobileMenu__navTitle {
    padding: 1.9rem 1.8rem;
    font-size: 1.5rem;
    font-family: var(--familyNotoSerif);
    color: var(--colorBlack);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
  }

  .mobileMenu__navItem.has-child .mobileMenu__navTitle::after {
    content: "＋";
    font-size: 2.2rem;
    font-weight: 300;
    line-height: 1;
  }

  .mobileMenu__navItem.has-child.is-open .mobileMenu__navTitle::after {
    content: "－";
  }

  .mobileMenu__navItem.has-child.is-open .mobileMenu__subNavWrap {
    grid-template-rows: 1fr;
  }

  .mobileMenu__subNavWrap {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-out;
  }

  .mobileMenu__subNav {
    overflow: hidden;
    background: #e8ecf0;
  }

  .mobileMenu__subNav li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.5rem;
    font-family: var(--familyNotoSerif);
    border-bottom: 1px solid var(--colorWhite);
    color: var(--colorBlack);
    padding: 1.275rem 1.8rem 1.275rem 1.8rem;
  }

  .mobileMenu__subNav li:last-child a {
    border-bottom: none;
  }

  .mobileMenu__subNav li a::after {
    content: "";
    width: 2.2rem;
    height: 2.2rem;
    background-image: url(../images/common/icon-arrow-blue.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }

  .mobileMenu__contact {
    color: var(--colorWhite);
    text-align: center;
  }

  .mobileMenu__reserveBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.7rem;
    border: 1px solid var(--colorWhite);
    color: var(--colorWhite);
    padding: 1.5rem;
    font-size: 1.4rem;
    font-family: var(--familyNotoSerif);
    margin-bottom: 2rem;
    height: 7rem;
  }

  .mobileMenu__reserveBtn img {
    width: 1.6rem;
  }

  .mobileMenu__telLead {
    font-size: 1.4rem;
    margin-bottom: 0.7rem;
  }

  .mobileMenu__telWrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1rem;
  }

  .mobileMenu__freeIcon {
    width: 4rem;
  }

  .mobileMenu__tel {
    font-size: 3.8rem;
    font-family: var(--familyCrimsonPro);
    letter-spacing: 0.06em;
    color: var(--colorWhite);
    line-height: 1;
  }

  .mobileMenu__telInfo {
    font-size: 1.3rem;
    font-family: var(--familyNotoSerif);
    letter-spacing: 0.07em;
    line-height: 1.6;
    margin-bottom: 2.15rem;
  }

  .mobileMenu__sns {
    display: flex;
    justify-content: center;
    gap: 1rem;
  }

  .mobileMenu__sns a {
    color: var(--colorWhite);
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mobileMenu__sns svg {
    width: 100%;
    height: 100%;
  }
}

/* footer */
.footer {
  background-color: var(--colorWhite);
  font-family: var(--familyNotoSerif);
  padding: 8rem 2rem 0;
}
.footer a {
  font-family: var(--familyNotoSerif);
}
.footer__contentWrapper {
  margin-inline: auto;
  max-width: 1250px;
}
.footer__content {
  display: flex;
  gap: 7.4rem;
}
.footer__logo a {
  text-align: center;
  transition: all 0.3s;
  width: fit-content;
}
.footer__logo img {
  width: 14.1rem;
}
.footer__logoText {
  font-size: 1.306rem;
  font-family: var(--familyNotoSans);
  letter-spacing: 16%;
  margin-top: 1.5rem;
}
.footer__leadText {
  font-size: 1.5rem;
  letter-spacing: 2px;
  line-height: 1.87;
  margin-top: 1.3rem;
}
.footer__company {
  font-size: 1.4rem;
  letter-spacing: 5%;
  margin-top: 3.2rem;
}
.footer__address {
  font-size: 1.3rem;
  letter-spacing: 5%;
  margin-top: 1rem;
}
.footer__tel {
  width: 28.9rem;
  height: auto;
  margin-top: 1.2rem;
}

.footer__tel a {
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .footer__tel a {
    pointer-events: initial;
  }
}
.footer__infoList {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  margin-top: 1rem;
}
.footer__infoListItem {
  font-size: 1.3rem;
  letter-spacing: 5%;
}
.footer__menuWrap {
  display: flex;
  gap: 4.5rem;
  margin-top: 3rem;
}
.footer__menuCategory {
  font-size: 1.4rem;
  border-bottom: 1px solid var(--colorBlack);
  padding-bottom: 0.6rem;
  width: fit-content;
}
.footer__menuList {
  display: flex;
  flex-direction: column;
  row-gap: 1.2rem;
  margin-top: 2rem;
}
.footer__menuListItem {
  font-size: 1.3rem;
}
.footer__menuListItem--small {
  font-size: 1.1rem;
}
.footer__menuListItem--small a {
  transition: 0.3s;
}
.footer__menuListItem--large {
  font-size: 1.4rem;
}
.footer__menuListItem--large a {
  transition: 0.3s;
}
.footer__menuListItem--large.has-space {
  margin-top: 3rem;
}
.footer__menuListItem,
.footer__menuListItem--large {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.footer__menuListItem::after,
.footer__menuListItem--large::after {
  content: "";
  display: block;
  background-image: url(../images/common/icon-footer-menu.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 0.3rem;
  height: 0.5rem;
}
.footer__linkWrap {
  display: flex;
  gap: 3.4rem;
  align-items: center;
  justify-content: center;
  margin-top: 7rem;
  margin-left: 2rem;
}
.footer__linkList {
  display: flex;
  gap: 3rem;
}
.footer__linkListItem:not(:first-child) {
  border-left: 1px solid var(--colorBlack);
  padding-left: 3rem;
}
.footer__linkListItem a {
  display: flex;
  column-gap: 0.8rem;
  font-size: 1.3rem;
  transition: 0.3s;
}
.footer__linkListItem a::after {
  content: "";
  display: block;
  background-image: url(../images/common/icon-arrow-blue.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 1.8rem;
  height: 1.8rem;
  transition: 0.3s;
}
.footer__snsList {
  display: flex;
  align-items: center;
}
.footer__snsListItem:not(:first-child) {
  margin-left: 0.825rem;
}
.footer__snsListItem:has(.footer__snsLink--large) {
  margin-left: 0.45rem;
}
.footer__snsListItem a {
  transition: all 0.3s;
}
.footer__snsListItem:last-child {
  margin-left: 0.325rem;
}
.footer__snsLink {
  height: 2.55rem;
  width: 2.55rem;
}
.footer__snsLink--large {
  height: 3rem;
  width: 3rem;
}
.footer__holdings {
  display: flex;
  justify-content: center;
  gap: 10.5rem;
  margin-top: 4rem;
  margin-left: 7rem;
}
.footer__holdingsItem {
  display: flex;
  align-items: center;
  column-gap: 1.1rem;
}
.footer__holdingsItemText {
  font-size: 1.2rem;
  letter-spacing: 1px;
}
.footer__holdingsItemIcon {
  margin-top: 1rem;
}
.footer__bottomContent {
  margin-top: 3.124rem;
  padding-block: 2.4rem;
  position: relative;
}

.footer__bottomContent::before {
  content: "";
  background-color: var(--colorBlack);
  position: absolute;
  top: 0;
  left: -2rem;
  height: 0.5px;
  width: 100vw;
}

.footer__bottomContentInner {
  display: flex;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 110rem;
}
.footer .copyright {
  font-size: 1rem;
  letter-spacing: 2px;
}

.footer .privacy__link {
  font-size: 1.2rem;
  letter-spacing: 1px;
}

.footer .privacy__link a {
  transition: all 0.3s;
}

@media (hover: hover) {
  .footer__logo a:hover,
  .footer__menuListItem a:hover,
  .footer__menuListItem--small a:hover,
  .footer__menuListItem--large a:hover,
  .footer__snsListItem a:hover,
  .footer .privacy__link a:hover {
    opacity: 0.7;
  }

  .footer__linkListItem a:hover::after {
    background-image: url(../images/common/icon-arrow-blue-hover.svg);
  }
}

@media screen and (max-width: 767px) {
  .footer {
    padding: 5.3rem 2.5rem 0;
  }

  .footer__content {
    display: block;
  }

  .footer__leadText {
    letter-spacing: 1px;
  }

  .footer__menuWrap.for-pc {
    display: none;
  }

  .footer__linkWrap {
    flex-direction: column;
    gap: 2.35rem;
    margin-top: 2.2rem;
    margin-inline: 2.2rem;
  }

  .footer__linkList {
    flex-direction: column;
    gap: 0.9rem;
    width: 100%;
  }

  .footer__linkListItem:not(:first-child) {
    border-left: none;
    padding-left: 0;
  }

  .footer__linkListItem a {
    border: 1px solid var(--colorBlack);
    display: grid;
    grid-template-columns: auto 1.8rem;
    column-gap: 0.9rem;
    margin-inline: auto;
    padding: 1.3rem;
    padding-left: 4rem;
    text-align: center;
    width: 100%;
    max-width: 40rem;
    transition: all 0.3s;
  }

  .footer__holdings {
    flex-direction: column;
    gap: 4.3rem;
    margin: 3rem auto 0;
  }

  .footer__holdingsZeh {
    margin-inline: auto;
    max-width: 203px;
    width: 100%;
  }

  .footer__holdingsItem {
    flex-direction: column;
  }

  .footer__holdingsItemIcon {
    margin-top: 0.9rem;
  }

  .footer__bottomContentInner {
    flex-direction: column-reverse;
    justify-content: flex-start;
    row-gap: 0.8rem;
  }

  .footer__bottomContent::before {
    left: -2.5rem;
  }
}

/* breadcrumbs */
.breadcrumbs {
  color: #707070;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 0.5rem;
  font-size: 1.2rem;
  padding: 1.2rem 0.6rem;
}

.breadcrumbs li {
  font-family: var(--familyNotoSans);
}

.breadcrumbs li:not(:first-child)::before {
  content: "";
  border-right: 1px solid #84a6cf;
  border-top: 1px solid #84a6cf;
  display: inline-block;
  transform: translateY(-25%) rotate(45deg);
  margin-right: 0.5rem;
  height: 5px;
  width: 5px;
}

.breadcrumbs a {
  display: inline-block;
  font-family: var(--familyNotoSans);
}

/* show password btn */
.show-password {
  background-image: url(../images/common/show-password.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  right: 2.5rem;
  height: 2rem;
  width: 2.6rem;
}

.show-password.slash {
  background-image: url(../images/common/show-password-slash.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

/* validation message */
.error-msg {
  color: #ed1c24;
  text-align: left;
  font-size: 1.6rem;
  margin-block: 0.6rem 1.5rem;
}

@media screen and (max-width: 767px) {
  .label-address {
    display: flex;
    column-gap: 2rem;
  }

  #form_material .label-address .address-error-sp,
  #form_reservation .label-address .address-error-sp {
    margin-block: 0;
  }
}

/* anchorLink */
.anchorLink {
  background: var(--colorMember);
  color: var(--colorWhite);
  font-size: 1.5rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30rem;
  height: 5rem;
  border-radius: 2.5rem;
  position: relative;
  transition: all 0.3s;
  border: 1px solid transparent;
}

.anchorLink::after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: var(--colorWhite);
  line-height: 1;
  width: 0.5em;
  height: 0.5em;
  border: 0.1em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-70%) rotate(135deg);
  transition: all 0.3s;
}

.anchorLink.is-brown {
  background: #bebeab;
  color: var(--colorBlack);
}

.anchorLink.is-brown::after {
  border-color: var(--colorBlack);
}

@media (hover: hover) {
  .anchorLink:hover {
    color: var(--colorMember);
    background: var(--colorWhite);
    border: 1px solid var(--colorMember);
  }

  .anchorLink:hover::after {
    color: var(--colorMember);
  }

  .anchorLink.is-brown:hover {
    color: var(--colorBrown);
    background: var(--colorWhite);
    border: 1px solid var(--colorBrown);
  }
}

/* fixedBtns */
.fixedBtns {
  position: fixed;
  right: 3.3rem;
  top: 32%;
  transform: translateY(-50%);
  display: grid;
  gap: 1.3rem;
  z-index: 11;
}

.fixedBtn {
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: var(--colorWhite);
  width: 12.2rem;
  height: 12.2rem;
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  text-align: center;
  transition: 0.5s;
}

.fixedBtn__reserve {
  background: var(--colorBlack);
  border: 1px solid var(--colorBlack);
}

.fixedBtn__search {
  background: var(--colorLightBlue);
  border: 1px solid var(--colorLightBlue);
}

.sp-fixedBtns {
  display: none;
}

@media (hover: hover) {
  .fixedBtn .icon-hover {
    display: none;
  }

  .fixedBtn__reserve:hover {
    background: #e8ecf0;
    color: var(--colorBlack);
    border: 1px solid var(--colorBlack);
    transform: scale(1.1);
  }

  .fixedBtn__reserve:hover .icon-default {
    display: none;
  }

  .fixedBtn__reserve:hover .icon-hover {
    display: block;
  }

  .fixedBtn__search:hover {
    background: #e8ecf0;
    color: var(--colorLightBlue);
    border: 1px solid var(--colorLightBlue);
    transform: scale(1.1);
  }

  .fixedBtn__search:hover .icon-default {
    display: none;
  }

  .fixedBtn__search:hover .icon-hover {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .fixedBtns {
    display: none;
  }

  .sp-fixedBtns {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    margin: 0.6rem auto 0;
  }

  .sp-fixedBtns.is-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 11;
    margin: 0;
    transition:
      opacity 0.3s ease,
      transform 0.3s ease,
      visibility 0.3s;
  }

  .sp-fixedBtns.is-hidden {
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
  }

  .sp-fixedBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    font-size: 1.5rem;
    color: var(--colorWhite);
    max-width: 17.2rem;
    width: 100%;
    height: 5.3rem;
  }

  .sp-fixedBtn__reserve {
    background: var(--colorBlack);
  }

  .sp-fixedBtn__search {
    background: var(--colorLightBlue);
  }
}

.otherContents__title {
  font-size: 2.8rem;
  font-weight: 300;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.07em;
  color: var(--colorLightBlue);
  text-align: center;
}

.otherContentsList {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.25%;
  margin-top: 4.4rem;
}

.otherContentsList__link {
  position: relative;
  height: 17rem;
  border-radius: 1rem;
  padding: 2.8rem;
  overflow: hidden;
  z-index: 1;
}

.otherContentsList__item.is-caseStudy a {
  padding-top: 2.7rem;
}

.otherContentsList__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: transform 0.3s ease;
  z-index: -2;
}

.otherContentsList__link::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #a2afc0;
  mix-blend-mode: multiply;
  z-index: -1;
}

.otherContentsList__iconLink {
  position: absolute;
  right: 1.6rem;
  bottom: 1.6rem;
  width: 3rem;
  height: 3rem;
  background-image: url(../images/common/icon-arrow-white.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transition: all 0.3s;
}

.otherContentsList__item.is-design a::after {
  background-image: url(../images/common/bg-other-contents_01.png);
}

.otherContentsList__item.is-performance a::after {
  background-image: url(../images/common/bg-other-contents_02.png);
}

.otherContentsList__item.is-afterSupport a::after {
  background-image: url(../images/common/bg-other-contents_03.png);
}

.otherContentsList__item.is-caseStudy a::after {
  background-image: url(../images/common/bg-other-contents_04.png);
}

.otherContentsList__item.is-concept a::after {
  background-image: url(../images/common/bg-other-contents_05.png);
}

.otherContentsList__item.is-voice a::after {
  background-image: url(../images/common/bg-other-contents_06.png);
}

.otherContentsList__item.is-company a::after {
  background-image: url(../images/common/bg-other-contents_07.png);
}

.otherContentsList__item.is-subdivision a::after {
  background-image: url(../images/common/bg-other-contents_08.png);
}

.otherContentsList__item.is-information a::after {
  background-image: url(../images/common/bg-other-contents_09.png);
}

.otherContentsList__item.is-column a::after {
  background-image: url(../images/common/bg-other-contents_10.png);
}

@media (hover: hover) {
  .otherContentsList__link:hover::after {
    transform: scale(1.05);
  }

  .otherContentsList__link:hover .otherContentsList__iconLink {
    background-image: url(../images/common/icon-arrow-white-hover.svg);
  }
}

.otherContentsList__num {
  font-size: 1.5rem;
  font-weight: 300;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.2em;
  color: var(--colorWhite);
}

.otherContentsList__num span {
  font-size: 2.3rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.059em;
  margin-left: 0.5rem;
  position: relative;
  top: 0.2rem;
}

.otherContentsList__title {
  font-size: 2rem;
  letter-spacing: 0.05em;
  margin-top: 1.2rem;
  color: var(--colorWhite);
  line-height: 1.5;
  font-family: var(--familyNotoSerif);
}

@media screen and (max-width: 1024px) {
  .otherContentsList {
    grid-template-columns: 1fr 1fr;
  }
}

@media screen and (max-width: 767px) {
  .otherContents__title {
    font-size: 2.3rem;
    letter-spacing: 0.08em;
  }

  .otherContentsList {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1rem;
  }

  .otherContentsList__link {
    height: 13.7rem;
    padding: 1.5rem 1.9rem;
  }

  .otherContentsList__item.is-caseStudy a {
    padding-top: 1.7rem;
  }

  .otherContentsList__item.is-design a::after {
    background-image: url(../images/common/bg-other-contents_01_sp.png);
  }

  .otherContentsList__item.is-performance a::after {
    background-image: url(../images/common/bg-other-contents_02_sp.png);
  }

  .otherContentsList__item.is-afterSupport a::after {
    background-image: url(../images/common/bg-other-contents_03_sp.png);
  }

  .otherContentsList__item.is-caseStudy a::after {
    background-image: url(../images/common/bg-other-contents_04_sp.png);
  }

  .otherContentsList__item.is-concept a::after {
    background-image: url(../images/common/bg-other-contents_05_sp.png);
  }

  .otherContentsList__item.is-voice a::after {
    background-image: url(../images/common/bg-other-contents_06_sp.png);
  }

  .otherContentsList__item.is-company a::after {
    background-image: url(../images/common/bg-other-contents_07_sp.png);
  }

  .otherContentsList__item.is-subdivision a::after {
    background-image: url(../images/common/bg-other-contents_08_sp.png);
  }

  .otherContentsList__item.is-information a::after {
    background-image: url(../images/common/bg-other-contents_09_sp.png);
  }

  .otherContentsList__item.is-column a::after {
    background-image: url(../images/common/bg-other-contents_10_sp.png);
  }
}

/* reservation */
.reservation {
  padding-block: 9.6rem 10rem;
  background: var(--colorMemberBg);
  position: relative;
}

.reservation__title {
  font-size: 6.8vw;
  font-family: var(--familyCrimsonPro);
  font-weight: 300;
  letter-spacing: 0.07em;
  text-align: center;
  color: var(--colorWhite);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -2vw;
  width: 100%;
}

.reservation__title span {
  font-size: 5.2vw;
}

.reservation__lead {
  font-size: 2.77vw;
  font-family: var(--familyNotoSerif);
  line-height: 1.65;
  letter-spacing: 0.044em;
  text-align: center;
}

.reservation__intro {
  display: flex;
  justify-content: space-between;
  margin-top: 2.6rem;
  padding-inline: 10rem;
}

.reservation__message {
  font-size: 1.5rem;
  font-family: var(--familyNotoSerif);
  line-height: 2.26em;
}

.reservation__contact {
  width: 400px;
}

.commonLink.reservation__contactLink {
  width: 100%;
  height: 10rem;
  background: var(--colorBlack);
  border: none;
  margin-top: 0;
}

.reservation__tel {
  margin-top: 2.4rem;
  display: grid;
  justify-content: center;
}

.reservation__telLead {
  font-size: 1.4rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.17em;
  text-align: center;
  color: #000;
}

.reservation__telNumber {
  font-size: 3.8rem;
  font-weight: 500;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.06em;
  color: #0b318f;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: all 0.3s;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .reservation__telNumber {
    pointer-events: initial;
  }
}

.reservation__telNumber::before {
  content: "";
  background-image: url(../images/common/icon-free-tel.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 4.2rem;
  height: 4.2rem;
}

.reservation__telInfo {
  font-size: 1.3rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.07em;
  text-align: center;
  line-height: 1.43;
  color: #000;
}

.vip {
  padding: 7.2rem 6.8rem 6.7rem;
  position: relative;
  border: 1px solid var(--colorMember);
  background: var(--colorWhite);
  border-radius: 2rem;
  margin-top: 7rem;
}

.vip__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5.1rem;
}

.vipCard {
  position: relative;
  justify-content: center;
  align-items: center;
}

.vipCard::after {
  content: "";
  position: absolute;
  right: -2.5rem;
  top: 0;
  width: 1px;
  height: 100%;
  background: var(--colorBlack);
}

.vipCard:nth-child(3)::after {
  content: none;
}

.vip__title {
  font-size: 1.8rem;
  font-family: var(--familyNotoSerif);
  line-height: 1.667;
  letter-spacing: 0.11em;
  color: var(--colorWhite);
  background: var(--colorMember);
  border-radius: 2.5rem;
  max-width: 60rem;
  width: 100%;
  height: 5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}

.vipCard__label {
  font-size: 1.4rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.17em;
  position: relative;
  color: var(--colorMember);
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 1.34rem;
}

.vipCard__label::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 100%;
  background: var(--colorMember);
}

.vipCard__number {
  font-size: 4rem;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.06em;
}

.vipCard__heading {
  font-size: 1.8rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.13em;
  line-height: 1.667;
  margin-top: 1.24rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.vipCard__image {
  margin-top: 1.3rem;
}

.vipCard__text {
  margin-top: 0.4rem;
  font-size: 1.5rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 1.8px;
  line-height: 1.73;
  text-align: center;
}

.commonLink.vip__link {
  background: var(--colorMember);
  border: none;
  letter-spacing: 5px;
  margin: 2.5rem auto 0;
  max-width: 50rem;
}

@media (hover: hover) {
  .commonLink.reservation__contactLink:hover {
    color: var(--colorBlack);
    background: var(--colorWhite);
  }

  .commonLink.reservation__contactLink:hover::after {
    background-image: url(../images/common/icon-arrow-black.svg);
  }

  .reservation__telNumber:hover {
    opacity: 0.7;
  }
}

@media screen and (min-width: 1440px) {
  .reservation__lead {
    font-size: 4rem;
  }
}

@media screen and (max-width: 1240px) {
  .vip {
    padding: 6.532258vw 5.483871vw 5.403226vw;
    border-radius: 1.612903vw;
    margin-top: 6.048387vw;
  }

  .vip__list {
    gap: 4.112903vw;
  }

  .vipCard::after {
    right: -2.016129vw;
  }

  .vip__title {
    font-size: 1.451613vw;
    border-radius: 2.016129vw;
    max-width: 48.387097vw;
    height: 4.032258vw;
    top: -2.016129vw;
  }

  .vipCard__label {
    font-size: 1.129032vw;
  }

  .vipCard__number {
    font-size: 3.225806vw;
  }

  .vipCard__heading {
    font-size: 1.451613vw;
    margin-top: 1vw;
  }

  .vipCard__image {
    margin-top: 1.048387vw;
  }

  .vipCard__text {
    margin-top: 0.322581vw;
    font-size: 1.209677vw;
  }

  .commonLink.vip__link {
    margin-top: 1.693548vw;
    font-size: 1.29vw;
    width: 45vw;
    height: 6.12vw;
  }
}

@media (hover: hover) {
  .commonLink.vip__link:hover {
    color: var(--colorMember);
    outline: 1px solid var(--colorMember);
    background: var(--colorWhite);
  }

  .commonLink.vip__link:hover::after {
    background-image: url(../images/common/icon-arrow-darkblue.svg);
  }
}

@media screen and (max-width: 1024px) {
  .reservation__intro {
    display: grid;
    justify-content: center;
    gap: 2rem;
  }
}

@media screen and (max-width: 767px) {
  .reservation {
    padding-block: 4rem 4.7rem;
  }

  .reservation__intro {
    padding-inline: 0;
  }

  .reservation__title,
  .reservation__title span {
    font-size: 8vw;
    white-space: nowrap;
  }

  .reservation__lead {
    font-size: 5.33vw;
  }

  .reservation__message {
    line-height: 2em;
  }

  .reservation__contact {
    max-width: 32.5rem;
    margin-inline: auto;
  }

  .commonLink.reservation__contactLink {
    height: 6rem;
    gap: 0.8rem;
    max-width: 32.5rem;
    font-size: 1.5rem;
  }

  .commonLink.reservation__contactLink::after {
    position: unset;
    transform: unset;
  }

  .reservation__tel {
    margin-top: 3.5rem;
  }

  .vip {
    border-radius: 2rem;
    padding: 5.5rem 1.95rem 2.9rem;
    margin-top: 7.4rem;
  }

  .vip__list {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .vipCard {
    padding-bottom: 1.8rem;
    border-bottom: 1px solid var(--colorBlack);
    display: grid;
    grid-template-columns: 29.5vw auto;
    justify-content: unset;
  }

  .vipCard:nth-last-child(1) {
    border-bottom: none;
  }

  .vipCard::after {
    content: none;
  }

  .vipCard__image {
    grid-row: 2 / 3;
    grid-column: 1 / 2;
    width: 29.5vw;
  }

  .vip__title {
    font-size: 1.7rem;
    max-width: unset;
    width: 26.2rem;
    height: 7rem;
    border-radius: 2.5rem;
    top: -2.5rem;
  }

  .vipCard__label {
    font-size: 1.4rem;
    grid-row: 1 / 2;
    grid-column: 1 / 3;
    margin-bottom: 1.1rem;
  }

  .vipCard__number {
    font-size: 4rem;
  }

  .vipCard__heading {
    font-size: 1.6rem;
    grid-row: 2 / 3;
    grid-column: 2 / 3;
    margin-top: 0;
    margin-left: 0.5rem;
    letter-spacing: 0;
    text-align: left;
  }

  .vipCard__text {
    font-size: 1.4rem;
    margin-top: 0.6rem;
    grid-row: 3 / 4;
    grid-column: 1 / 3;
    letter-spacing: 0;
  }

  .commonLink.vip__link {
    max-width: 28.5rem;
    width: 100%;
    height: 6rem;
    font-size: 1.5rem;
    letter-spacing: 0.13em;
    text-align: center;
    margin-top: 2.1rem;
  }

  .commonLink.vip__link::after {
    right: 1.8rem;
  }
}

.mypage__title {
  font-size: 2rem;
  font-weight: 300;
  font-family: var(--familyCrimsonPro);
  letter-spacing: 0.1em;
  text-align: center;
}

.mypage__name {
  font-size: 2rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.16em;
  margin-top: 5rem;
  border-bottom: 2px solid #000;
  width: fit-content;
  margin-inline: auto;
  padding: 0 1rem 1rem;
}

/* イベントフォーム入力画面 */
.eventForm {
  background: #e8ecf0;
  padding-block: 3.7rem 15rem;
}

.eventForm__title {
  font-size: 2.3rem;
  letter-spacing: 0.1em;
  height: 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #b2bdc8;
}

.eventForm__note {
  font-size: 1.5rem;
  letter-spacing: 10%;
  line-height: 1.3;
  margin-top: 3.8rem;
  text-align: center;
}

.eventForm__column {
  display: grid;
  grid-template-columns: 55rem auto;
  margin-top: 3.8rem;
}

.eventForm__please {
  max-width: 66.8rem;
  margin: 8.8rem auto 0;
  border-bottom: 1px solid var(--colorBlack);
  padding-bottom: 1.8rem;
}

.eventForm__please-title {
  font-size: 1.5rem;
  letter-spacing: 0.16em;
  width: 100%;
  position: relative;
  text-align: center;
}

.eventForm__please-title::before,
.eventForm__please-title::after {
  content: "";
  width: 8rem;
  height: 1px;
  background: var(--colorBlack);
  position: absolute;
}

.eventForm__please-title::before {
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.eventForm__please-title::after {
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.eventForm__please-text {
  font-size: 1.3rem;
  font-weight: 400;
  font-family: var(--familyNotoSans);
  line-height: 2.15;
  letter-spacing: 0.18em;
  margin-top: 2.2rem;
}

.eventForm__please-text span {
  font-weight: 700;
}

.eventForm_link {
  background: var(--colorBlack);
  color: var(--colorWhite);
  height: 7.6rem;
  max-width: 56rem;
  width: 100%;
  position: relative;
  border-radius: 1rem;
  font-size: 1.6rem;
  letter-spacing: 0.15em;
  margin: 4rem auto 0;
  display: block;
  transition: all 0.3s;
  box-shadow: 2px 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.eventForm_link::after {
  content: "";
  position: absolute;
  right: 2.3rem;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  background-image: url(../images/common/icon-arrow-white.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

@media (hover: hover) {
  .eventForm_link:hover {
    background: #daae7c;
  }
}

.privacypolicy__outer {
  display: flex;
  margin: 5.7rem auto 0;
  width: fit-content;
}

.privacypolicy__outer .shadow-sm {
  width: 1.6rem;
  height: 1.6rem;
  margin-right: 1.2rem;
}

.privacypolicy__outer .shadow-sm:where([type="checkbox"]):checked {
  color: unset;
  border: none;
  width: 1.6rem;
  height: 1.6rem;
}

.privacypolicy__outer .shadow-sm:has(input:where([type="checkbox"]):checked) {
  content: "";
  position: absolute;
  background-image: url(../images/common/icon-check.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 1rem;
  height: 1rem;
  left: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
}

.privacypolicy__outer .shadow-sm:where([type="checkbox"]):focus,
.privacypolicy__outer .shadow-sm:where([type="radio"]):focus {
  box-shadow: unset !important;
}

.privacypolicy__outer p {
  font-size: 1.5rem;
  letter-spacing: 0.133em;
  font-family: var(--familyNotoSans);
}

.privacypolicy__outer a {
  text-decoration: underline;
  display: inline-block;
  font-family: var(--familyNotoSans);
}

.participation {
  background: var(--colorWhite);
  max-width: 80rem;
  margin: 9.5rem auto 0;
}

.participation__title {
  font-size: 2.3rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.1em;
  height: 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #b2bdc8;
}

.participation__body {
  padding-block: 2.3rem 2.4rem;
}

.participation__telNumber {
  width: 28.9rem;
  margin-inline: auto;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .participation__telNumber {
    pointer-events: initial;
  }
}

.participation__text {
  font-size: 1.2rem;
  letter-spacing: 0.083em;
  margin-top: 1.1rem;
  text-align: center;
}

/* フォーム */
.eventForm__right {
  display: grid;
  align-content: start;
  gap: 2rem;
  max-width: 66.8rem;
}

.eventForm__row {
  display: grid;
  grid-template-columns: 14rem 6rem auto;
  gap: 1.6rem;
}

.eventForm__label {
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.0625em;
  text-align: end;
  padding-top: 0.8rem;
}

.eventForm__required {
  height: 2.4rem;
  background: #ad0000;
  color: var(--colorWhite);
  font-size: 1.2rem;
  font-family: var(--familyNotoSans);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.8rem;
}

.eventForm__any {
  height: 2.4rem;
  background: #c8c8c8;
  color: var(--colorWhite);
  font-size: 1.2rem;
  font-family: var(--familyNotoSans);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.8rem;
}

.eventForm__row input,
.eventForm__row textarea {
  border: 1px solid #b2bdc8;
  padding: 1.2rem 2.5rem;
  background: var(--colorWhite);
  color: var(--colorBlack);
  width: 100%;
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  line-height: 1.5;
  letter-spacing: 0.15em;
}

.eventForm__row input::placeholder .eventForm__row textarea::placeholder {
  color: #c8c8c8 !important;
}

.eventForm__row textarea {
  height: 18.5rem;
}

.eventForm__child {
  display: grid;
  gap: 1.2rem;
}

.eventForm__childItem {
  display: grid;
  align-items: center;
}

.eventForm__childItem:nth-of-type(1),
.eventForm__childItem:nth-of-type(2) {
  grid-template-columns: 3rem auto;
}

.eventForm__childItem:nth-of-type(3) {
  grid-template-columns: 15rem auto;
}

.eventForm__childItem span {
  font-size: 1.6rem;
  letter-spacing: 0.0625em;
}

.eventForm__childItem label {
  font-size: 1.4rem;
  letter-spacing: 0.17em;
}

/*カレンダー */
.calendar {
  background: var(--colorWhite);
  padding: 4.4rem 4rem 3.6rem;
  height: fit-content;
  max-width: 55rem;
}

.month-select-button {
  width: 3rem;
  height: 3rem;
  background-image: url(../images/common/icon-arrow-calender.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

#next.month-select-button {
  transform: rotate(180deg);
}

.calendar__text,
.calendar__note {
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: 0.07em;
  font-family: var(--familyNotoSans);
}

.calendar__text {
  margin-top: 3.8rem;
}

.calendar__note {
  margin-top: 1rem;
}

.month-select-button {
  font-size: 19px;
}

.cal-border {
  width: 420px;
  height: 340px;
  border: solid 1px #fff;
}

.cal-wrap {
  padding: 1rem 0;
}

.cal-header {
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.cal-header h2 {
  font-size: 18px;
  font-weight: 500;
  margin: 0;
}

.cal-nav {
  background: none;
  width: 32px;
  height: 32px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cal-nav:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.cal-grid {
  background-color: #000;
  display: grid;
  max-width: 100%;
  gap: 1px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-top: 3rem;
}

.cal-dow {
  font-size: 16px;
  height: 40px;
  line-height: 40px;
  background-color: #f5f5f5;
  text-align: center;
}

.cal-day {
  text-align: center;
  background-color: #fcfcfc;
  height: 59px;
}

.cal-day.empty .day-num {
  color: #ccc;
}

.day-num,
.tel-badge {
  font-size: 16px;
  margin: 4px 0;
}

.custom-select {
  margin: 0 auto;
  width: 46px;
  height: 24px;
}

.custom-select-display {
  width: 100%;
  height: 100%;
  background-color: #b2bdc8;
  color: #fff;
  font-size: 16px;
  border-radius: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
}

.cal-day.selected .day-num {
  margin-bottom: 0;
}

.cal-day.selected .custom-select-display {
  background-color: unset;
  color: #df9e69;
  font-size: 1.8rem;
  font-weight: 500;
}

.custom-select-dropdown {
  display: none;
  z-index: 100;
  min-width: 30rem;
  background-color: #fff;
}

.custom-select-dropdown::before {
  content: "";
  background-color: rgba(72, 72, 72, 0.8);
  position: fixed;
  inset: 0;
  transition: all 0.5s;
  height: 100dvh;
  width: 100vw;
  z-index: 2;
}

.custom-select-dropdown-inner {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  padding-top: 10rem;
  z-index: 10;
}

.custom-select-date {
  color: var(--colorWhite);
  font-size: 2rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 10%;
  position: relative;
  z-index: 1;
}

.custom-select-txt {
  color: var(--colorWhite);
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 10%;
  margin-top: 1.2rem;
  position: relative;
  z-index: 1;
}

.custom-select-option-wrapper {
  max-height: 60dvh;
  overflow-y: scroll;
  scrollbar-color: #df9e69 transparent;
  scrollbar-width: thin;
  margin-top: 1.4rem;
  padding-right: 1rem;
}

.custom-select-option {
  background-color: var(--colorWhite);
  border-radius: 1rem;
  color: #484848;
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 10%;
  padding: 4px 8px;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  position: relative;
  margin-inline: auto;
  padding: 1.4rem;
  width: 30rem;
  z-index: 1;
}

.custom-select-option:hover {
  background: #df9e69;
  color: var(--colorWhite);
}

.custom-select-option + .custom-select-option {
  margin-top: 1rem;
}

.custom-select-close {
  color: var(--colorWhite);
  cursor: pointer;
  font-family: var(--familyNotoSerif);
  font-size: 1.6rem;
  letter-spacing: 10%;
  margin-top: 1.5rem;
}

.custom-select-close::after {
  content: "×";
  font-size: 2rem;
}

@media screen and (max-width: 1200px) {
  .eventForm__column {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .calendar {
    margin-inline: auto;
  }

  .eventForm__right {
    margin-inline: auto;
  }
}

@media screen and (max-width: 767px) {
  .eventForm {
    padding-block: 2.7rem 7rem;
  }

  .eventForm__title {
    font-size: 1.8rem;
    height: 5rem;
  }

  .eventForm__column {
    margin-top: 5rem;
  }

  .calendar {
    padding: 2rem 2rem 2.8rem 2rem;
  }

  .custom-select {
    width: 3.2rem;
    height: 1.64rem;
    margin-inline: auto;
  }

  .cal-day {
    height: 4rem;
  }

  .custom-select-display {
    font-size: 1.2rem;
  }

  .day-num,
  .tel-badge {
    margin: 0;
  }

  .day-num {
    font-size: 1.3rem;
  }

  .tel-badge {
    font-size: 1.4rem;
    line-height: 1;
  }

  .cal-grid {
    margin-top: 1.3rem;
  }

  .cal-day.selected .custom-select-display {
    font-size: 1.4rem;
  }

  .eventForm__row {
    grid-template-columns: 6rem auto;
    gap: 0.8rem;
  }

  .eventForm__required,
  .eventForm__any {
    margin-top: 0;
    order: 1;
    grid-row: 1 / 2;
    grid-column: 1 / 2;
  }

  .eventForm__label {
    order: 2;
    padding-top: 0;
    text-align: start;
    grid-row: 1 / 2;
    grid-column: 2 / 3;
  }

  .eventForm__row input,
  .eventForm__row textarea,
  .eventForm__child {
    order: 3;
    grid-row: 2 / 3;
    grid-column: 1 / 3;
  }

  .eventForm__row .eventForm__checkboxItem input {
    order: initial;
  }

  .eventForm__row input,
  .eventForm__row textarea {
    font-size: 1.4rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--colorBlack);
  }

  .eventForm__row textarea {
    height: 12rem;
  }

  .eventForm__childItem:nth-of-type(1),
  .eventForm__childItem:nth-of-type(2),
  .eventForm__childItem:nth-of-type(3) {
    display: flex;
    gap: 0.5rem;
  }

  .eventForm__childItem:nth-of-type(3) label {
    width: 7.4rem;
  }

  .eventForm__childItem:nth-of-type(3) input {
    width: calc(100% - 7.9rem);
  }

  .eventForm__please {
    margin-top: 4rem;
  }

  .eventForm__please-title {
    display: block;
    line-height: 1.6;
    text-align: start;
  }

  .eventForm__please-title::before,
  .eventForm__please-title::after {
    content: none;
  }

  .eventForm__please-text {
    font-size: 1.3rem;
    line-height: 2;
    margin-top: 1.8rem;
  }

  .privacypolicy__outer {
    margin-top: 3.2rem;
  }

  .eventForm_link {
    max-width: 27.6rem;
  }

  .participation {
    margin-top: 3.8rem;
  }

  .participation__title {
    font-size: 1.8rem;
    height: 5rem;
  }

  .participation__body {
    padding: 1rem 1.7rem 1.2rem;
  }

  .participation__text {
    text-align: start;
    line-height: 1.6;
    margin-top: 0.6rem;
  }
}

@media screen and (min-width: 500px) {
  .eventForm__please-title br {
    display: none;
  }
}

/* イベントフォーム確認画面 */
.eventConfirm {
  background: #e8ecf0;
  padding-bottom: 13.4rem;
}

.eventConfirm__title {
  font-size: 2.3rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.1em;
  height: 6rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #b2bdc8;
  margin-top: 12.4rem;
}

.eventConfirm__text {
  margin-top: 6rem;
  text-align: center;
  font-size: 1.8rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.134em;
  line-height: 1.6;
}

.eventConfirm__list {
  box-sizing: border-box;
  max-width: 72rem;
  margin: 3.4rem auto 0;
  border-bottom: 1px solid #b2bdc8;
  border-right: 1px solid #b2bdc8;
}

.eventConfirm__list:nth-of-type(2) {
  margin-top: 3.8rem;
}

.eventConfirm__item {
  display: grid;
  grid-template-columns: 17rem auto;
  background: var(--colorWhite);
}

.eventConfirm__label,
.eventConfirm__value {
  border: 1px solid #b2bdc8;
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.15em;
  padding: 1.6rem;
  border-bottom: none;
  border-right: none;
  min-height: 5.7rem;
}

.eventConfirm__label {
  display: flex;
  align-items: center;
  justify-content: center;
}

.eventConfirm__btnWrap {
  margin: 6.7rem auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.6rem;
  max-width: 72rem;
}

.eventConfirm__prev {
  width: 100%;
  height: 7.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 1.4rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.17em;
  color: #7d7d7d;
  background: var(--colorWhite);
  transition: 0.3s;
  border-radius: 1rem;
}

.eventConfirm__prev::before {
  content: "";
  background-image: url(../images/common/icon-arrow-black.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 3rem;
  height: 3rem;
  position: absolute;
  left: 1.8rem;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  transition: 0.3s;
}

.eventConfirm__submit {
  width: 100%;
  height: 7.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 1.4rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.17em;
  color: var(--colorWhite);
  background: #daae7c;
  transition: 0.3s;
  border-radius: 1rem;
}

.eventConfirm__submit::before {
  content: "";
  background-image: url(../images/common/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 3rem;
  height: 3rem;
  position: absolute;
  right: 1.8rem;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.3s;
}

@media (hover: hover) {
  .eventConfirm__prev:hover {
    background: var(--colorBlack);
    color: var(--colorWhite);
  }

  .eventConfirm__prev:hover::before {
    background-image: url(../images/common/icon-arrow-white.svg);
  }

  .eventConfirm__submit:hover {
    background: var(--colorBlack);
  }

  .eventConfirm__submit:hover::before {
    background-image: url(../images/common/icon-arrow-white.svg);
  }
}

@media screen and (max-width: 767px) {
  .eventConfirm {
    padding-bottom: 6.2rem;
  }

  .eventConfirm__title {
    font-size: 1.8rem;
  }

  .eventConfirm__text {
    font-size: 1.6rem;
    line-height: 1.875;
  }

  .eventConfirm__item {
    grid-template-columns: 1fr;
  }

  .eventConfirm__label {
    justify-content: flex-start;
  }

  .eventConfirm__btnWrap {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .eventConfirm__prev,
  .eventConfirm__submit {
    max-width: 26rem;
    margin-inline: auto;
    height: 7.6rem;
  }
}

/* イベントフォーム完了画面 */
.eventThanks {
  background: #e8ecf0;
  padding-bottom: 14.3rem;
  padding-inline: 2.5rem;
}

.eventThanks__title {
  font-size: 2rem;
  font-family: var(--familyNotoSerif);
  text-align: center;
  margin-top: 14.3rem;
}

.eventThanks__text {
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  line-height: 2.25;
  letter-spacing: 0.15em;
  text-align: center;
  margin-top: 3.3rem;
}

.eventThanks .participation__body {
  padding-block: 0;
  margin-top: 3.3rem;
}

.eventThanks__link {
  background: var(--colorBlack);
  border: none;
  margin: 6.5rem auto 0;
}

@media screen and (max-width: 767px) {
  .eventThanks {
    padding-bottom: 8rem;
  }

  .eventThanks__title {
    margin-top: 6rem;
  }

  .eventThanks__text {
    font-size: 1.4rem;
    line-height: 1.85;
    text-align: start;
  }

  .eventThanks__link {
    margin-top: 5.3rem;
  }
}

/* banner */
.banner {
  padding-block: 12.1rem 19rem;
}

.banner__title {
  font-size: 2.6rem;
  font-family: var(--familyNotoSerif);
  line-height: 1.69;
  letter-spacing: 0.06em;
  text-align: center;
  color: #9bb6d7;
}

.bannerColumn {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem 4rem;
  margin-top: 2.1rem;
  margin-inline: 3rem;
}

.bannerColumn__item {
  transition: all 0.3s;
}

@media (hover: hover) {
  .bannerColumn__item:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .banner {
    padding-block: 10.2rem 11.2rem;
  }

  .banner__title {
    font-size: 1.8rem;
  }

  .bannerColumn {
    grid-template-columns: 1fr;
    column-gap: 1.8rem;
    margin: 3.5rem 0 0;
  }
}

/* pagination */
.pagination {
  margin-top: 4.6rem;
}

.pagination__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.3rem;
}

.pagination__item {
  font-size: 1.6rem;
  font-family: var(--familyNotoSerif);
  color: var(--colorBlack);
}

.pagination__item a,
.pagination__item span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.3rem;
  height: 4.3rem;
  transition: all 0.3s;
}

.pagination__item.is-active span {
  background: var(--colorWhite);
  color: var(--colorLightBlue);
}

@media (hover: hover) {
  .pagination__item:not(.is-active):not(.is-disabled) a:hover {
    opacity: 0.6;
  }
}

.pagination__item--prev a,
.pagination__item--prev span,
.pagination__item--next a,
.pagination__item--next span {
  position: relative;
}

.pagination__item--prev a::after,
.pagination__item--prev span::after,
.pagination__item--next a::after,
.pagination__item--next span::after {
  content: "";
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  border-top: 1px solid var(--colorBlack);
}

.pagination__item--prev a::after,
.pagination__item--prev span::after {
  border-left: 1px solid var(--colorBlack);
  transform: rotate(-45deg);
}

.pagination__item--next a::after,
.pagination__item--next span::after {
  border-right: 1px solid var(--colorBlack);
  transform: rotate(45deg);
}

.pagination__item.is-disabled span::after {
  border-color: #ccc;
}

@media screen and (max-width: 767px) {
  .pagination {
    margin-top: 0.8rem;
  }

  .pagination__list {
    gap: 0.4rem;
  }
}

/* 分譲地を探す　ラベル */
.subdivisionCard__imageLabel {
  color: var(--colorLightBlue);
  width: 9rem;
  height: 9rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: -1.8rem;
  top: -2.2rem;
  font-size: 2rem;
  font-family: var(--familyCrimsonPro);
  background: var(--colorWhite);
  border: 1px solid var(--colorLightBlue);
}

.subdivisionCard__imageSection {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  right: 0;
  top: 0;
  padding: 1.4rem 0.65rem 0.65rem;
  width: 14.4rem;
  text-align: center;
}

.subdivisionCard__imageSection--num {
  font-size: 4rem;
  letter-spacing: 0.05em;
  font-family: var(--familyNotoSerif);
  color: var(--colorWhite);
}

.subdivisionCard__imageSection--num span {
  font-size: 1.84rem;
}

.subdivisionCard__imageSection--status {
  width: 100%;
  padding-block: 0.2rem 0.4rem;
  font-size: 1.7rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.13em;
  border: 1px solid var(--colorWhite);
  margin-top: 1.4rem;
  color: var(--colorWhite);
}

.subdivisionCard__imageSection.is-green,
.subdivisionCard__imageSection.property-green {
  background: var(--colorGreen);
}

.subdivisionCard__imageSection.is-brown {
  background: var(--colorBrown);
}

.subdivisionCard__imageSection.is-blue {
  background: var(--colorMember);
}

.subdivisionCard__imageSection.is-gray,
.subdivisionCard__imageSection.border-gray {
  background: #818790;
}

.subdivisionCard__imageSection--status.is-onsale {
  background: var(--colorWhite);
}

.subdivisionCard__imageSection.is-green .subdivisionCard__imageSection--status.is-onsale,
.subdivisionCard__imageSection.property-green .subdivisionCard__imageSection--status.is-onsale {
  color: var(--colorGreen);
}

.subdivisionCard__imageSection.is-brown .subdivisionCard__imageSection--status.is-onsale {
  color: var(--colorBrown);
}

/* ランキング設定 */
.ranking-li {
  border: 1px solid #0a0a0a;
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 10px;
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .subdivisionCard__imageLabel {
    width: 7.2vw;
    height: 7.2vw;
    left: -1.44vw;
    top: -1.76vw;
    font-size: 1.6vw;
  }

  .subdivisionCard__imageSection {
    padding: 1.12vw 0.52vw 0.52vw;
    width: 11.52vw;
  }

  .subdivisionCard__imageSection--num {
    font-size: 3.2vw;
  }

  .subdivisionCard__imageSection--num span {
    font-size: 1.472vw;
  }

  .subdivisionCard__imageSection--status {
    padding-block: 0.16vw 0.32vw;
    font-size: 1.36vw;
    letter-spacing: 0.13em;
    margin-top: 1.12vw;
  }
}

@media screen and (max-width: 767px) {
  .subdivisionCard__imageLabel {
    top: -2.9rem;
    left: -1.2rem;
    font-size: 1.2rem;
    width: 6rem;
    height: 6rem;
  }

  .subdivisionCard__imageSection {
    align-items: center;
    justify-content: center;
    padding: 0.4rem;
    width: 8rem;
  }

  .subdivisionCard__imageSection--num {
    font-size: 3rem;
  }

  .subdivisionCard__imageSection--num span {
    font-size: 1.3rem;
  }

  .subdivisionCard__imageSection--status {
    margin-top: 0.6rem;
    font-size: 1.1rem;
  }
}

.interview__link {
  max-width: 79.9rem;
  width: 100%;
  height: 24rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: var(--colorWhite);
  border-radius: 1.8rem;
  margin: 9.3rem auto 0;
  overflow: hidden;
  background: #7d7d7d;
}

.interview__link span {
  font-size: 1.9rem;
  font-weight: 500;
  font-family: var(--familyNotoSans);
  letter-spacing: 0.105em;
  position: relative;
  z-index: 1;
}

.interview__link::before {
  content: "";
  position: absolute;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 0;
  mix-blend-mode: multiply;
  transition: all 0.3s;
}

.interview__link::after {
  content: "";
  background-image: url(../images/common/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 4.4rem;
  height: 4.4rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 3.9rem;
  z-index: 1;
  transition: all 0.3s;
}

@media (hover: hover) {
  .interview__link:hover::before {
    transform: scale(1.05);
  }

  .interview__link:hover::after {
    background-image: url(../images/common/icon-arrow-white-hover.svg);
  }
}

@media screen and (max-width: 767px) {
  .interview__link {
    max-width: 32.5rem;
    height: 9.25rem;
    padding-left: 2.8rem;
    justify-content: flex-start;
    border-radius: 1rem;
    margin-top: 4rem;
  }

  .interview__link span {
    font-size: 1.5rem;
    letter-spacing: 0;
    line-height: 1.4;
  }

  .interview__link::after {
    width: 3.1rem;
    height: 3.1rem;
    right: 1.7rem;
  }
}

.specialOffer__note {
  margin-top: 2rem;
}

.specialOffer__noteTitle {
  font-size: 1.2rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.1em;
  line-height: 1.67;
}

.specialOffer__noteText {
  font-size: 1.2rem;
  font-family: var(--familyNotoSerif);
  letter-spacing: 0.1em;
  line-height: 1.67;
  margin-top: 0.9rem;
}

.specialOffer__noteArea {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 77rem;
  margin-inline: auto;
}

.specialOffer__noteArea > div {
  font-size: 1.2rem;
  line-height: calc(26 / 12);
  letter-spacing: 10%;
  width: calc((100% - 4rem) / 2);
}

.specialOffer__noteArea > div:last-child {
  border-left: 1px solid var(--colorBlack);
  margin-left: 2rem;
  padding-left: 2rem;
  text-align: left;
}

.specialOffer__noteList {
  margin-top: .5rem;
  text-align: left;
}

.specialOffer__noteList li {
  margin-left: 1em;
  text-indent: -1em;
}

.specialOffer__noteList li::before {
  content: "・";
  display: inline;
}

@media screen and (max-width: 767px) {
  .specialOffer__noteArea {
    flex-direction: column;
  }

  .specialOffer__noteArea > div {
    letter-spacing: 2%;
    width: 100%;
  }

  .specialOffer__noteArea > div:last-child {
    border-left: none;
    margin-left: 0;
    padding-left: 0;
  }

  .specialOffer__noteArea > div + div {
    margin-top: 2.2rem;
  }
}

.companyBanner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4.3rem;
	margin: 5.5rem auto 1.1rem;
}

.companyBanner__item {
	width: 32.5rem;
	border-radius: 1rem;
  box-shadow: 0 0 0.8rem rgb(0 0 0 / 30%);
	position: relative;
}

.companyBanner__item::before {
	height: 0.4rem;
	width: 9.6rem;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 0;
	content: "";
}

.companyBanner__item:nth-of-type(1)::before {
	background: #5282BB;
}

.companyBanner__item:nth-of-type(2)::before {
	background: #D7944D;
}

.companyBanner__item:nth-of-type(3)::before {
	background: #6EB76F;
}

.companyBanner__top {
	padding-block: 2.5rem 2rem;
}

.companyBanner__text {
	font-size: 1.4rem;
	font-weight: 400;
	font-family: var(--familyNotoSans);
	text-align: center;
}

.companyBanner__title {
	font-size: 2.15rem;
	font-weight: 500;
	font-family: var(--familyNotoSans);
	letter-spacing: 0.015em;
	text-align: center;
	margin-top: 1rem;
}

.companyBanner__item:nth-of-type(1) .companyBanner__title {
	color: #5282BB;
}

.companyBanner__item:nth-of-type(2) .companyBanner__title {
	color: #D7944D;
}

.companyBanner__item:nth-of-type(3) .companyBanner__title {
	color: #6EB76F;
}

.companyBanner__bottomText {
	font-size: 1.4rem;
	font-weight: 500;
	font-family: var(--familyNotoSans);
	letter-spacing: 0.001em;
	color: var(--colorWhite);
	position: absolute;
	right: 0.9rem;
	bottom: 0.8rem;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	z-index: 2;
}

.companyBanner__bottom {
	position: relative;
	height: 11.5rem;
	overflow: hidden;
	border-radius: 0 0 1rem 1rem;
}

.companyBanner__bottom::after {
	content: "";
	background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	transition: all 0.3s;
}

.companyBanner__item:nth-of-type(1) .companyBanner__bottom::after {
	background-image: url(../images/common/banner-01.png);
}

.companyBanner__item:nth-of-type(2) .companyBanner__bottom::after {
	background-image: url(../images/common/banner-02.png);
}

.companyBanner__item:nth-of-type(3) .companyBanner__bottom::after {
	background-image: url(../images/common/banner-03.png);
}

.companyBanner__bottom::before {
	content: "";
	width: 100%;
	height: 100%;
	background-image: url(../images/common/img-gradation.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
	position: absolute;
	left: 0;
	top: 0;
	border-radius: 0 0 1rem 1rem;
	mix-blend-mode: multiply;
	z-index: 1;
}

.companyBanner__bottomText::after {
	content: "";
	background-image: url(../images/common/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
	width: 2.6rem;
	height: 2.6rem;
	position: relative;
	transition: all 0.3s;
}

@media (hover: hover) {
	.companyBanner__item:hover .companyBanner__bottomText::after {
		background-image: url(../images/common/icon-arrow-white-hover.svg);
	}

	.companyBanner__item:hover .companyBanner__bottom::after {
		transform: scale(1.05);
	}
}

@media screen and (max-width:767px) {
	.companyBanner {
		gap: 1.5rem;
		margin-block: 4.4rem 0;
	}
}