.accessSect {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0 auto;
}
@media print, screen and (min-width: 768px) {
  .accessSect {
    padding: 12rem 0;
    width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect {
    padding: 8rem 0 6rem;
    width: 35rem;
  }
}
.accessSect__top {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .accessSect__top {
    display: grid;
    grid-gap: 8rem 4rem;
    gap: 8rem 4rem;
    grid-template-columns: repeat(4, 20rem) 1fr;
    grid-template-rows: auto auto;
  }
}
.accessSect__crowd {
  overflow: hidden;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .accessSect__crowd {
    border-radius: 0 0 0 3rem;
    height: 40rem;
    position: absolute;
    right: calc((12rem - 0px / 2) * -1);
    right: calc((12rem - var(--scrollbar-width, 0px) / 2) * -1);
    right: calc(calc(12rem - 0px / 2) * -1);
    right: calc(calc(12rem - var(--scrollbar-width, 0px) / 2) * -1);
    top: 0;
    width: 28rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__crowd {
    border-radius: 0 0 0 2rem;
    height: 20rem;
    margin: 2rem 0 0 auto;
    width: calc(100% + 2rem);
  }
}
.accessSect__crowd .accessSect__imageNote {
  bottom: 1rem;
  color: #231815;
  right: 1rem;
  text-shadow: none;
}
.accessSect__crowdImage {
  display: block;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 70% 50%;
     object-position: 70% 50%;
  width: 100%;
}
.accessSect__imageNote {
  bottom: 0.6rem;
  color: #fff;
  font-family: "Shippori Mincho B1", "Noto Serif JP", serif;
  font-size: 1rem;
  letter-spacing: 0.05em;
  line-height: 1;
  position: absolute;
  right: 0.8rem;
  text-shadow: 0 0 0.4rem rgba(0, 0, 0, 0.5);
}
.accessSect__ttl {
  color: #231815;
  font-family: "EB Garamond", serif;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1;
  position: absolute;
}
@media print, screen and (min-width: 768px) {
  .accessSect__ttl {
    font-size: 5.6rem;
    right: 15.2rem;
    top: 5.6rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__ttl {
    font-size: 3.6rem;
    margin: 1.6rem 0 0 auto;
    padding-bottom: 1.2rem;
    position: relative;
    text-align: right;
    width: -moz-fit-content;
    width: fit-content;
  }
}
.accessSect__ttl::after {
  background: #231815;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform-origin: left center;
}
@media print, screen and (min-width: 768px) {
  .accessSect__ttl::after {
    right: calc(-15.2rem - (12rem - 0px / 2));
    right: calc(-15.2rem - (12rem - var(--scrollbar-width, 0px) / 2));
    right: calc(-15.2rem - calc(12rem - 0px / 2));
    right: calc(-15.2rem - calc(12rem - var(--scrollbar-width, 0px) / 2));
    top: calc(100% + 2rem);
  }
}
@media screen and (max-width: 768px) {
  .accessSect__ttl::after {
    bottom: 0;
    right: 0.14em;
  }
}
.accessSect__plane {
  color: #b19f76;
  display: block;
  position: absolute;
}
@media print, screen and (min-width: 768px) {
  .accessSect__plane {
    right: 5rem;
    top: 38.4rem;
    width: 5rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__plane {
    left: 1.5rem;
    top: 17rem;
    width: 5rem;
  }
}
.accessSect__plane svg {
  display: block;
  fill: currentcolor;
  height: auto;
  width: 100%;
}
.accessSect__char {
  display: inline-block;
}
.accessSect__top[data-sai] .accessSect__crowd,
.accessSect__top[data-sai] .accessSect__lead,
.accessSect__top[data-sai] .accessSect__txt {
  opacity: 0;
  transform: translate3d(0, 4rem, 0);
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.accessSect__top[data-sai] .accessSect__char {
  opacity: 0;
  transform: translate3d(0, 0.3em, 0);
  transition: opacity 0.6s ease-out, transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition-delay: calc(0.2s + var(--i) * 0.08s);
}
.accessSect__top[data-sai] .accessSect__ttl::after {
  transform: scaleX(0);
  transition: transform 1s cubic-bezier(0.2, 0.7, 0.3, 1) 0.2s;
}
.accessSect__top[data-sai] .accessSect__plane {
  opacity: 0;
}
.accessSect__top[data-sai] .accessSect__lead {
  transition-delay: 1s;
}
.accessSect__top[data-sai] .accessSect__txt {
  transition-delay: 1.3s;
}
.accessSect__top.sai-animate .accessSect__crowd,
.accessSect__top.sai-animate .accessSect__lead,
.accessSect__top.sai-animate .accessSect__txt,
.accessSect__top.sai-animate .accessSect__char {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.accessSect__top.sai-animate .accessSect__ttl::after {
  transform: scaleX(1);
}
.accessSect__top.sai-animate .accessSect__plane {
  animation: access-plane-glide 2s cubic-bezier(0.2, 0.7, 0.3, 1) 0.9s both;
}
@media (prefers-reduced-motion: reduce) {
  .accessSect__top[data-sai] .accessSect__crowd,
  .accessSect__top[data-sai] .accessSect__lead,
  .accessSect__top[data-sai] .accessSect__txt,
  .accessSect__top[data-sai] .accessSect__char {
    transform: none;
    transition: opacity 0.6s ease-out;
    transition-delay: 0s;
  }
  .accessSect__top[data-sai] .accessSect__ttl::after {
    transform: none;
    transition: none;
  }
  .accessSect__top.sai-animate .accessSect__plane {
    animation: access-plane-fade 0.6s ease-out both;
  }
}
@media print, screen and (min-width: 768px) {
  .accessSect__intro {
    grid-column: 3/6;
    grid-row: 1;
    padding: 17.2rem 20rem 0 0;
    text-align: right;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__intro {
    padding: 3rem 0 0;
  }
}
.accessSect__lead {
  font-weight: 600;
  line-height: 1.6;
}
@media print, screen and (min-width: 768px) {
  .accessSect__lead {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__lead {
    font-size: 1.9rem;
  }
}
.accessSect__txt {
  line-height: 2;
}
@media print, screen and (min-width: 768px) {
  .accessSect__txt {
    font-size: 1.6rem;
    margin-top: 2.4rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__txt {
    font-size: 1.4rem;
    margin-top: 1.6rem;
  }
}
@media print, screen and (min-width: 768px) {
  .accessSect__list {
    display: contents;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__list {
    display: grid;
    grid-gap: 2.4rem 1.6rem;
    gap: 2.4rem 1.6rem;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 4rem;
  }
}
@media print, screen and (min-width: 768px) {
  .accessSect__item {
    padding-top: 13.2rem;
  }
  .accessSect__item:nth-child(n+3) {
    grid-row: 2;
    padding-top: 0;
  }
  .accessSect__item:nth-child(3) {
    grid-column: 1;
  }
  .accessSect__item:nth-child(4) {
    grid-column: 2;
  }
  .accessSect__item:nth-child(5) {
    grid-column: 3;
  }
  .accessSect__item:nth-child(6) {
    grid-column: 4;
  }
}
.accessSect__card {
  display: flex;
  flex-direction: column;
}
.accessSect__en {
  color: #231815;
  font-family: "EB Garamond", serif;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .accessSect__en {
    font-size: 1.6rem;
    margin-bottom: 1.4rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__en {
    font-size: 1.2rem;
    margin-bottom: 1rem;
  }
}
.accessSect__photo {
  display: block;
  position: relative;
}
.accessSect__image {
  display: block;
  height: auto;
  width: 100%;
}
.accessSect__min {
  align-items: baseline;
  color: #44a0ae;
  display: flex;
  font-family: "EB Garamond", serif;
  justify-content: center;
  line-height: 1;
}
@media print, screen and (min-width: 768px) {
  .accessSect__min {
    gap: 0.4rem;
    margin-top: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__min {
    gap: 0.4rem;
    margin-top: 0.8rem;
  }
}
.accessSect__num {
  font-weight: 400;
  letter-spacing: 0;
}
@media print, screen and (min-width: 768px) {
  .accessSect__num {
    font-size: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__num {
    font-size: 3.6rem;
  }
}
.accessSect__unit {
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media print, screen and (min-width: 768px) {
  .accessSect__unit {
    font-size: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__unit {
    font-size: 1.3rem;
  }
}
.accessSect__station {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .accessSect__station {
    align-self: start;
    grid-column: 5;
    grid-row: 2;
    min-width: 0;
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__station {
    margin-top: 3rem;
  }
}
.accessSect__stationImage {
  display: block;
  height: auto;
}
@media print, screen and (min-width: 768px) {
  .accessSect__stationImage {
    max-width: none;
    width: calc(24rem + (12rem - 0px / 2));
    width: calc(24rem + (12rem - var(--scrollbar-width, 0px) / 2));
    width: calc(24rem + calc(12rem - 0px / 2));
    width: calc(24rem + calc(12rem - var(--scrollbar-width, 0px) / 2));
  }
}
@media screen and (max-width: 768px) {
  .accessSect__stationImage {
    width: 100%;
  }
}
.accessSect__stationLabel {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
  bottom: 0;
  color: #fff;
  font-family: "EB Garamond", serif;
  font-weight: 500;
  left: 0;
  letter-spacing: 0.1em;
  line-height: 1;
  position: absolute;
  text-align: center;
  text-shadow: 0 0 0.8rem rgba(0, 0, 0, 0.6);
}
@media print, screen and (min-width: 768px) {
  .accessSect__stationLabel {
    font-size: 2rem;
    padding: 1.2rem 0;
    width: calc(24rem + (12rem - 0px / 2));
    width: calc(24rem + (12rem - var(--scrollbar-width, 0px) / 2));
    width: calc(24rem + calc(12rem - 0px / 2));
    width: calc(24rem + calc(12rem - var(--scrollbar-width, 0px) / 2));
  }
}
@media screen and (max-width: 768px) {
  .accessSect__stationLabel {
    font-size: 1.6rem;
    padding: 1rem 0;
    right: 0;
  }
}
@media print, screen and (min-width: 768px) {
  .accessSect__bottom {
    align-items: flex-start;
    display: flex;
    gap: 3rem;
    margin-top: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__bottom {
    margin-top: 4rem;
  }
}
@media print, screen and (min-width: 768px) {
  .accessSect__route {
    width: 91rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__route {
    position: relative;
    width: calc(100% + 2rem);
  }
}
@media screen and (max-width: 768px) {
  .accessSect__routeScroll {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
    overflow-y: hidden;
    overflow: auto hidden;
  }
}
.accessSect__routeImage {
  display: block;
  height: auto;
}
@media print, screen and (min-width: 768px) {
  .accessSect__routeImage {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__routeImage {
    margin-right: 2rem;
    max-width: none;
    width: 60rem;
  }
}
.accessSect__routeHint {
  display: none;
}
@media screen and (max-width: 768px) {
  .accessSect__routeHint {
    align-items: center;
    backdrop-filter: blur(0.6rem);
    background: rgba(255, 255, 255, 0.72);
    border-radius: 50%;
    bottom: 1.2rem;
    display: flex;
    height: 4.8rem;
    justify-content: center;
    pointer-events: none;
    position: absolute;
    right: 2rem;
    transition: opacity 0.4s ease-out, visibility 0.4s;
    width: 4.8rem;
  }
}
.accessSect__routeHint.is-hidden {
  opacity: 0;
  visibility: hidden;
}
.accessSect__routeHintImage {
  display: block;
  height: auto;
  width: 2.2rem;
}
.accessSect__tj {
  background: #44a0ae;
  color: #fff;
  display: flex;
}
@media print, screen and (min-width: 768px) {
  .accessSect__tj {
    flex-direction: column;
    gap: 2rem;
    margin-top: 2rem;
    padding: 2.8rem 2rem;
    width: 26rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__tj {
    align-items: center;
    gap: 1.6rem;
    margin-top: 2rem;
    padding: 2rem 1.6rem;
  }
}
.accessSect__tjTxt {
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .accessSect__tjTxt {
    font-size: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__tjTxt {
    flex: 1;
    font-size: 1.5rem;
  }
}
.accessSect__tjTxt .lg {
  font-size: 1.5em;
}
.accessSect__tjTxt .num {
  font-family: "EB Garamond", serif;
  font-size: 1.6em;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .accessSect__tjFigure {
    flex-shrink: 0;
    width: 13rem;
  }
}
.accessSect__tjImage {
  display: block;
  height: auto;
  width: 100%;
}
.accessSect__tjCap {
  font-size: 1.4rem;
  line-height: 1.5;
  margin-top: 0.8rem;
}
.accessSect__notes {
  color: #555;
  font-family: "Shippori Mincho B1", "Noto Serif JP", serif;
}
@media print, screen and (min-width: 768px) {
  .accessSect__notes {
    margin-top: 5rem;
  }
}
@media screen and (max-width: 768px) {
  .accessSect__notes {
    margin-top: 3rem;
  }
}
.accessSect__note {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@keyframes access-plane-glide {
  0% {
    opacity: 0;
    transform: translate3d(16rem, 12rem, 0) rotate(18deg) scale(0.8);
  }
  25% {
    opacity: 1;
  }
  65% {
    transform: translate3d(-1.2rem, -1.6rem, 0) rotate(-4deg) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0) scale(1);
  }
}
@keyframes access-plane-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.ctaSect {
  background: linear-gradient(to right, #6ec7d5 0%, #55b0be 50%, #6ec7d5 100%);
  display: flex;
  justify-content: center;
}
@media print, screen and (min-width: 768px) {
  .ctaSect {
    padding: 7.4rem 0;
  }
}
@media screen and (max-width: 768px) {
  .ctaSect {
    padding: 5.73rem 0;
  }
}
.ctaSect__image {
  display: block;
  height: auto;
}
@media print, screen and (min-width: 768px) {
  .ctaSect__image {
    width: 78.1rem;
  }
}
@media screen and (max-width: 768px) {
  .ctaSect__image {
    width: 35rem;
  }
}
.introSect {
  display: flex;
  flex-direction: column;
  letter-spacing: 0.12em;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .introSect {
    gap: 1.2rem;
    padding: 3.2rem 0 6.2rem;
  }
}
@media screen and (max-width: 768px) {
  .introSect {
    gap: 2.6rem;
    padding: 3rem 0 4.6rem;
  }
}
.introSect__lead {
  font-weight: 400;
  line-height: 1.6;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .introSect__lead {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 768px) {
  .introSect__lead {
    font-size: 2rem;
  }
}
.introSect__ref {
  position: relative;
  white-space: nowrap;
}
.introSect__mark {
  bottom: calc(100% + 0.4em);
  font-feature-settings: "halt";
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  position: absolute;
  right: 0;
  white-space: nowrap;
}
@media print, screen and (min-width: 768px) {
  .introSect__mark {
    transform: translateX(50%);
  }
}
@media screen and (max-width: 768px) {
  .introSect__mark {
    font-size: 1rem;
    transform: translateX(5%);
  }
}
.introSect__ttl {
  color: #44a0ae;
  font-weight: 600;
  line-height: 1.6;
}
@media print, screen and (min-width: 768px) {
  .introSect__ttl {
    font-size: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .introSect__ttl {
    font-size: 2.6rem;
  }
}
.locationSect {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0 auto;
}
@media print, screen and (min-width: 768px) {
  .locationSect {
    padding: 10rem 0 0;
    width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect {
    padding: 6rem 0 0;
    width: 35rem;
  }
}
.locationSect__top {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .locationSect__top {
    display: grid;
    grid-template-columns: 28rem 1fr 40rem;
    margin-left: calc((12rem - 0px / 2) * -1);
    margin-left: calc((12rem - var(--scrollbar-width, 0px) / 2) * -1);
    margin-left: calc(calc(12rem - 0px / 2) * -1);
    margin-left: calc(calc(12rem - var(--scrollbar-width, 0px) / 2) * -1);
    width: calc(120rem + (12rem - 0px / 2));
    width: calc(120rem + (12rem - var(--scrollbar-width, 0px) / 2));
    width: calc(120rem + calc(12rem - 0px / 2));
    width: calc(120rem + calc(12rem - var(--scrollbar-width, 0px) / 2));
  }
}
.locationSect__sky {
  overflow: hidden;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .locationSect__sky {
    border-radius: 0 0 3rem;
    height: 40rem;
    width: 28rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__sky {
    border-radius: 0 0 2rem;
    height: 20rem;
    margin-left: -2rem;
    width: calc(100% + 2rem);
  }
}
.locationSect__skyImage {
  display: block;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 30%;
     object-position: 50% 30%;
  width: 100%;
}
.locationSect__imageNote {
  bottom: 1rem;
  color: #231815;
  font-family: "Shippori Mincho B1", "Noto Serif JP", serif;
  font-size: 1rem;
  left: 2rem;
  letter-spacing: 0.05em;
  line-height: 1;
  position: absolute;
}
.locationSect__ttl {
  color: #231815;
  font-family: "EB Garamond", serif;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1;
  position: absolute;
}
@media print, screen and (min-width: 768px) {
  .locationSect__ttl {
    font-size: 5.6rem;
    left: 11rem;
    top: 5.4rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__ttl {
    font-size: 3.6rem;
    left: 0;
    top: 5.6rem;
  }
}
.locationSect__ttl::after {
  background: #231815;
  content: "";
  height: 1px;
  position: absolute;
  right: 0.14em;
  transform-origin: left center;
}
@media print, screen and (min-width: 768px) {
  .locationSect__ttl::after {
    left: -11rem;
    top: calc(100% + 2.2rem);
  }
}
@media screen and (max-width: 768px) {
  .locationSect__ttl::after {
    left: -4rem;
    top: calc(100% + 1.2rem);
  }
}
.locationSect__plane {
  color: #44a0ae;
  display: block;
  position: absolute;
}
@media print, screen and (min-width: 768px) {
  .locationSect__plane {
    left: 19.2rem;
    top: 17.2rem;
    width: 6.8rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__plane {
    left: 27rem;
    top: 12rem;
    width: 5rem;
  }
}
.locationSect__plane svg {
  display: block;
  fill: currentcolor;
  height: auto;
  width: 100%;
}
.locationSect__char {
  display: inline-block;
}
.locationSect__top[data-sai] .locationSect__sky,
.locationSect__top[data-sai] .locationSect__lead,
.locationSect__top[data-sai] .locationSect__txt,
.locationSect__top[data-sai] .locationSect__note,
.locationSect__top[data-sai] .locationSect__main {
  opacity: 0;
  transform: translate3d(0, 4rem, 0);
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.locationSect__top[data-sai] .locationSect__char {
  opacity: 0;
  transform: translate3d(0, 0.3em, 0);
  transition: opacity 0.6s ease-out, transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition-delay: calc(0.2s + var(--i) * 0.08s);
}
.locationSect__top[data-sai] .locationSect__ttl::after {
  transform: scaleX(0);
  transition: transform 1s cubic-bezier(0.2, 0.7, 0.3, 1) 0.2s;
}
.locationSect__top[data-sai] .locationSect__plane {
  opacity: 0;
}
.locationSect__top[data-sai] .locationSect__lead {
  transition-delay: 1s;
}
.locationSect__top[data-sai] .locationSect__main {
  transition-delay: 1.1s;
}
.locationSect__top[data-sai] .locationSect__txt,
.locationSect__top[data-sai] .locationSect__note {
  transition-delay: 1.3s;
}
.locationSect__top.sai-animate .locationSect__sky,
.locationSect__top.sai-animate .locationSect__lead,
.locationSect__top.sai-animate .locationSect__txt,
.locationSect__top.sai-animate .locationSect__note,
.locationSect__top.sai-animate .locationSect__main,
.locationSect__top.sai-animate .locationSect__char {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.locationSect__top.sai-animate .locationSect__ttl::after {
  transform: scaleX(1);
}
.locationSect__top.sai-animate .locationSect__plane {
  animation: location-plane-glide 2s cubic-bezier(0.2, 0.7, 0.3, 1) 0.9s both;
}
@media (prefers-reduced-motion: reduce) {
  .locationSect__top[data-sai] .locationSect__sky,
  .locationSect__top[data-sai] .locationSect__lead,
  .locationSect__top[data-sai] .locationSect__txt,
  .locationSect__top[data-sai] .locationSect__note,
  .locationSect__top[data-sai] .locationSect__main,
  .locationSect__top[data-sai] .locationSect__char {
    transform: none;
    transition: opacity 0.6s ease-out;
    transition-delay: 0s;
  }
  .locationSect__top[data-sai] .locationSect__ttl::after {
    transform: none;
    transition: none;
  }
  .locationSect__top.sai-animate .locationSect__plane {
    animation: location-plane-fade 0.6s ease-out both;
  }
}
@media print, screen and (min-width: 768px) {
  .locationSect__intro {
    padding: 17rem 6rem 0 4rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__intro {
    padding: 3rem 0 0;
  }
}
.locationSect__lead {
  font-weight: 600;
  line-height: 1.6;
}
@media print, screen and (min-width: 768px) {
  .locationSect__lead {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__lead {
    font-size: 1.9rem;
  }
}
.locationSect__txt {
  line-height: 2;
}
@media print, screen and (min-width: 768px) {
  .locationSect__txt {
    font-size: 1.6rem;
    margin-top: 2.4rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__txt {
    font-size: 1.4rem;
    margin-top: 1.6rem;
  }
}
.locationSect__ref {
  position: relative;
  white-space: nowrap;
}
.locationSect__mark {
  bottom: calc(100% - 0.3em);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  position: absolute;
  right: 0;
  transform: translateX(50%);
  white-space: nowrap;
}
.locationSect__note {
  color: #555;
  font-family: "Shippori Mincho B1", "Noto Serif JP", serif;
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding-left: 1em;
  text-indent: -1em;
}
@media print, screen and (min-width: 768px) {
  .locationSect__note {
    margin-top: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__note {
    margin-top: 1.2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .locationSect__main {
    padding-top: 2.8rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__main {
    margin-top: 3rem;
  }
}
.locationSect__mainImage {
  display: block;
  height: auto;
  width: 100%;
}
.locationSect__mainCap {
  display: block;
  margin-top: 1.2rem;
}
.locationSect__mainTxt {
  color: #555;
  display: block;
  line-height: 1.8;
  margin-top: 0.8rem;
}
@media print, screen and (min-width: 768px) {
  .locationSect__mainTxt {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__mainTxt {
    font-size: 1.3rem;
  }
}
.locationSect__name {
  color: #44a0ae;
  font-weight: 600;
  line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
  .locationSect__name {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__name {
    font-size: 1.4rem;
  }
}
.locationSect__distance {
  color: #555;
  line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
  .locationSect__distance {
    font-size: 1.3rem;
    margin-left: 0.6em;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__distance {
    font-size: 1.2rem;
    margin-left: 0.4em;
  }
}
@media print, screen and (min-width: 768px) {
  .locationSect__list {
    align-items: flex-start;
    display: flex;
    gap: 3.6rem;
    margin-top: 8rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__list {
    display: grid;
    grid-gap: 2.4rem 2rem;
    gap: 2.4rem 2rem;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 4rem;
  }
}
@media print, screen and (min-width: 768px) {
  .locationSect__item {
    margin-top: 4.3rem;
    width: 18.4rem;
  }
}
@media print, screen and (min-width: 768px) {
  .locationSect__item--large {
    margin-top: 0;
    width: 32rem;
  }
}
@media screen and (max-width: 768px) {
  .locationSect__item--large {
    grid-column: 1/-1;
  }
}
.locationSect__image {
  display: block;
  height: auto;
  width: 100%;
}
.locationSect__cap {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
}
.locationSect__cap .locationSect__distance {
  margin-left: 0;
}
@keyframes location-plane-glide {
  0% {
    opacity: 0;
    transform: translate3d(-16rem, 12rem, 0) rotate(-18deg) scale(0.8);
  }
  25% {
    opacity: 1;
  }
  65% {
    transform: translate3d(1.2rem, -1.6rem, 0) rotate(4deg) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0) scale(1);
  }
}
@keyframes location-plane-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .topKv {
    padding: 4.1rem 0 4rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv {
    padding: 2rem 0;
  }
}
.topKv__visual {
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .topKv__visual {
    border-bottom-left-radius: 16rem;
    height: 140rem;
    width: 136rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv__visual {
    border-bottom-left-radius: 8rem;
    height: 59.4rem;
    width: 35rem;
  }
}
.topKv__visual .photo {
  height: 100%;
  -webkit-mask-image: radial-gradient(circle closest-side, #000 30%, transparent 100%);
          mask-image: radial-gradient(circle closest-side, #000 30%, transparent 100%);
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 0 0;
          mask-size: 0 0;
}
.topKv__visual.is-loaded .photo {
  animation: top-kv-mask-photo 3.6s cubic-bezier(0.33, 0, 0.2, 1) both, top-kv-glow-photo 2s cubic-bezier(0.22, 1, 0.36, 1) both, top-kv-scale-photo 5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  will-change: filter, transform;
}
.topKv__visual.is-loaded .topKv__hello {
  animation: top-kv-mask-txt 4.2s ease-in-out 0.8s both, top-kv-glow-txt 3.4s cubic-bezier(0.22, 1, 0.36, 1) 0.8s both;
}
.topKv__visual.is-loaded .topKv__copy {
  animation: top-kv-fade-in 2.4s ease-out 2.6s both;
}
.topKv__visual.is-done .photo, .topKv__visual.is-done .topKv__hello, .topKv__visual.is-done .topKv__copy {
  animation: none;
  filter: none;
  -webkit-mask-image: none;
          mask-image: none;
  opacity: 1;
  transform: none;
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  .topKv__visual .photo,
  .topKv__visual .topKv__hello {
    -webkit-mask-image: none;
            mask-image: none;
  }
  .topKv__visual .topKv__copy {
    opacity: 1;
  }
  .topKv__visual.is-loaded .photo, .topKv__visual.is-loaded .topKv__hello, .topKv__visual.is-loaded .topKv__copy {
    animation: none;
  }
}
.topKv__logo {
  align-items: center;
  display: flex;
  flex-direction: column;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
}
@media print, screen and (min-width: 768px) {
  .topKv__logo {
    gap: 6rem;
    top: 13rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv__logo {
    gap: 3.6rem;
    top: 5.5rem;
  }
}
.topKv__hello {
  display: block;
  height: auto;
  -webkit-mask-clip: no-clip;
          mask-clip: no-clip;
  -webkit-mask-image: radial-gradient(circle closest-side, #000 50%, transparent 100%);
          mask-image: radial-gradient(circle closest-side, #000 50%, transparent 100%);
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 0 0;
          mask-size: 0 0;
  max-width: none;
}
@media print, screen and (min-width: 768px) {
  .topKv__hello {
    width: 67.6rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv__hello {
    width: 24rem;
  }
}
.topKv__copy {
  display: block;
  height: auto;
  max-width: none;
  opacity: 0;
}
@media print, screen and (min-width: 768px) {
  .topKv__copy {
    width: 25.4rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv__copy {
    width: 11.4rem;
  }
}
.topKv__caption {
  font-family: "Shippori Mincho B1", "Noto Serif JP", serif;
  letter-spacing: 0.1em;
  position: absolute;
}
@media print, screen and (min-width: 768px) {
  .topKv__caption {
    bottom: 2rem;
    right: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .topKv__caption {
    bottom: 1rem;
    right: 1rem;
  }
}
@keyframes top-kv-mask-photo {
  0% {
    -webkit-mask-size: 0 0;
            mask-size: 0 0;
  }
  100% {
    -webkit-mask-size: 800% 800%;
            mask-size: 800% 800%;
  }
}
@keyframes top-kv-glow-photo {
  0% {
    filter: brightness(1.8);
  }
  100% {
    filter: brightness(1);
  }
}
@keyframes top-kv-scale-photo {
  0% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes top-kv-mask-txt {
  0% {
    -webkit-mask-size: 0 0;
            mask-size: 0 0;
  }
  100% {
    -webkit-mask-size: 400% 1600%;
            mask-size: 400% 1600%;
  }
}
@keyframes top-kv-glow-txt {
  0% {
    filter: drop-shadow(0 0 2rem #fff);
  }
  100% {
    filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0));
  }
}
@keyframes top-kv-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.uspArea {
  align-items: center;
  display: flex;
  flex-direction: column;
  font-feature-settings: "halt";
  letter-spacing: 0.09rem;
  margin: 0 auto;
  text-align: center;
  white-space: nowrap;
}
@media print, screen and (min-width: 768px) {
  .uspArea {
    gap: 2.2rem;
    width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea {
    gap: 1.9rem;
    width: 35rem;
  }
}
.uspArea__separator {
  background: #d2d5da;
  display: block;
  height: 1px;
  width: 100%;
}
.uspArea__item {
  align-items: center;
  display: flex;
  flex-direction: column;
}
@media print, screen and (min-width: 768px) {
  .uspArea__item {
    gap: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea__item {
    gap: 1rem;
  }
}
.uspArea__group {
  display: flex;
  gap: 0.6rem;
}
@media screen and (max-width: 768px) {
  .uspArea__group {
    align-items: center;
    flex-direction: column;
    gap: 1rem;
  }
}
.uspArea__txt {
  line-height: 1.2;
}
.uspArea__txt:before {
  content: "";
  margin-top: calc((1 - 1.2) * 0.5em);
}
.uspArea__txt:after {
  margin-bottom: calc((1 - 1.2) * 0.5em);
}
.uspArea__txt:before, .uspArea__txt:after {
  content: "";
  display: block;
  height: 0;
  width: 0;
}
.uspArea__txt {
  font-weight: 500;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .uspArea__txt {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea__txt {
    font-size: 1.4rem;
  }
}
@media print, screen and (min-width: 768px) {
  .uspArea .xs {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea .xs {
    font-size: 1rem;
  }
}
@media print, screen and (min-width: 768px) {
  .uspArea .m {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea .m {
    font-size: 2.2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .uspArea .lg,
  .uspArea .em,
  .uspArea .num {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea .lg,
  .uspArea .em,
  .uspArea .num {
    font-size: 2.8rem;
  }
}
.uspArea .num {
  color: #44a0ae;
  font-weight: 600;
}
.uspArea .em {
  color: #44a0ae;
  position: relative;
}
.uspArea .lg {
  letter-spacing: 0.05em;
}
.uspArea .note {
  letter-spacing: 0.05em;
}
@media print, screen and (min-width: 768px) {
  .uspArea .note {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .uspArea .note {
    font-size: 1rem;
  }
}
.uspArea .mark {
  bottom: calc(100% - 0.5em);
  color: #231815;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  position: absolute;
  right: 0;
  white-space: nowrap;
}
@media print, screen and (min-width: 768px) {
  .top-usp {
    padding: 7.6rem 0;
  }
}
@media screen and (max-width: 768px) {
  .top-usp {
    padding: 6.9rem 0 5.5rem;
  }
}
.top-divider {
  background: #44a0ae;
  display: block;
  height: 1px;
  margin: 0 auto;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .top-divider {
    width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .top-divider {
    width: 35rem;
  }
}
.top-divider::after {
  background: #44a0ae;
  content: "";
  height: 2px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}
@media print, screen and (min-width: 768px) {
  .top-divider::after {
    width: 27.6rem;
  }
}
@media screen and (max-width: 768px) {
  .top-divider::after {
    width: 13rem;
  }
}
.top-location {
  overflow-x: clip;
}
/*# sourceMappingURL=style.css.map */
