@charset "UTF-8";
@media only screen and (max-width: 768px) {
  .pc {
    display: none;
  }
}

@media print, screen and (min-width: 769px) {
  .sp {
    display: none;
  }
}

.conceptSect {
  color: #ffffff;
  margin: 0 auto;
  position: relative;
  text-align: center;
  z-index: 100;
}

@media print, screen and (min-width: 769px) {
  .conceptSect {
    padding: 160px 0 0;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect {
    padding: calc(104 / 390 * 100vw) 0 0;
  }
}

.conceptSect__heading {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.75;
}

.conceptSect__heading:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.conceptSect__heading:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .conceptSect__heading {
    font-size: 20px;
    margin-top: 96px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect__heading {
    font-size: calc(18 / 390 * 100vw);
    margin-top: calc(80 / 390 * 100vw);
  }
}

.conceptSect__txt {
  line-height: 2.4;
}

.conceptSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2.4) * .5em);
  width: 0;
}

.conceptSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2.4) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .conceptSect__txt {
    font-size: 14px;
    margin-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect__txt {
    font-size: calc(13 / 390 * 100vw);
    margin-top: calc(48 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .conceptSect__logo {
    margin-top: 80px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect__logo {
    margin-top: calc(48 / 390 * 100vw);
    width: calc(109 / 390 * 100vw);
  }
}

.conceptSect__bg {
  height: 100%;
  left: 50%;
  overflow: hidden;
  position: absolute;
  top: 0;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 100vw;
  z-index: -1;
}

.conceptSect__bg .photo,
.conceptSect__bg .photo__pic,
.conceptSect__bg .photo__image {
  height: 100%;
  width: 100%;
}

.conceptSect__bg .photo__image {
  -o-object-fit: cover;
     object-fit: cover;
}

.conceptSect__summaryPerth {
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
  width: 100%;
  z-index: 9;
}

@media print, screen and (min-width: 769px) {
  .conceptSect__summaryPerth {
    margin-top: 92px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect__summaryPerth {
    margin-top: calc(48 / 390 * 100vw);
  }
}

.conceptSect__capFrame {
  bottom: 0;
  position: absolute;
  right: 0;
}

.conceptSect__spLink {
  z-index: 9;
}

@media print, screen and (min-width: 769px) {
  .conceptSect__spLink {
    display: none;
  }
}

.conceptSect__spLink .linkIcon {
  margin: calc(40 / 390 * 100vw) auto 0;
}

.conceptSect .ttlSVG {
  height: auto;
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .conceptSect .ttlSVG {
    margin-top: 56px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect .ttlSVG {
    margin-top: calc(56 / 390 * 100vw);
  }
}

.contentFeatureSect {
  background-color: #ebe7de;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.contentFeatureSect__animationTitle {
  left: 0;
  margin: 0 calc(50% - 50vw);
  position: absolute;
  top: 0;
  width: 100vw;
}

.contentFeatureSect__inner {
  color: #ffffff;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__inner {
    padding-top: 120px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__inner {
    padding: calc(104 / 390 * 100vw) calc(16 / 390 * 100vw) 0;
  }
}

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

.contentFeatureSect__helmet {
  position: relative;
}

.contentFeatureSect__helmet .ttlSVG {
  left: 0;
  opacity: .8;
  position: absolute;
  top: 32px;
  z-index: 2;
}

.contentFeatureSect__head {
  color: #ffffff;
  left: 0;
  position: absolute;
  text-align: center;
  text-shadow: 0 0 8px #000000;
  top: 0;
  width: 100%;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__head {
    padding-top: 120px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__head {
    padding-top: calc(96 / 390 * 100vw);
  }
}

.contentFeatureSect__cont {
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__cont {
    padding-bottom: 205px;
  }
}

.contentFeatureSect__subheading {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.75;
}

.contentFeatureSect__subheading:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.contentFeatureSect__subheading:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__subheading {
    font-size: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__subheading {
    font-size: calc(16 / 390 * 100vw);
  }
}

.contentFeatureSect__spLink {
  bottom: 0;
  left: 50%;
  position: absolute;
  -webkit-transform: translate(-50%, 17px);
          transform: translate(-50%, 17px);
  z-index: 9;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__spLink {
    display: none;
  }
}

.contentFeatureSect__txt {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  opacity: 0;
  -webkit-transform: translateY(10%);
          transform: translateY(10%);
  -webkit-transition: 1s 2.1s ease;
  transition: 1s 2.1s ease;
  line-height: 2;
}

.contentFeatureSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.contentFeatureSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__txt {
    font-size: 20px;
    margin-top: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__txt {
    font-size: calc(16 / 390 * 100vw);
    margin-top: calc(48 / 390 * 100vw);
  }
}

.contentFeatureSect__txt sup {
  font-size: 10px;
  letter-spacing: 0;
  vertical-align: top;
}

.contentFeatureSect__bg {
  overflow: hidden;
  z-index: -1;
}

.contentFeatureSect__bg .photo,
.contentFeatureSect__bg .photo__image {
  height: 100%;
  width: 100%;
}

.contentFeatureSect__bg .photo__pic {
  display: block;
  -webkit-filter: blur(20px);
          filter: blur(20px);
  -webkit-transition: 3s ease filter, 10s ease transform;
  transition: 3s ease filter, 10s ease transform;
  will-change: transform;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__bg .photo__pic {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
}

.contentFeatureSect__bg .capFrame {
  bottom: 0;
  display: grid;
  height: 20px;
  left: 0;
  place-items: center;
  position: absolute;
  text-indent: -.1em;
  width: 20px;
  z-index: 1;
}

.contentFeatureSect__catchcopy {
  background-color: #ffffff;
  color: #000000;
  position: absolute;
  font-family: "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  -webkit-text-orientation: upright;
          text-orientation: upright;
  white-space: nowrap;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__catchcopy {
    font-size: 32px;
    padding: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__catchcopy {
    font-size: calc(18 / 780 * 100vw);
    padding: calc(20 / 780 * 100vw);
  }
}

.contentFeatureSect__catchcopy--tr {
  top: 0;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__catchcopy--tr {
    padding-bottom: 48px;
    padding-top: 32px;
    right: -32px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__catchcopy--tr {
    padding-bottom: calc(32 / 780 * 100vw);
    right: calc(-16 / 780 * 100vw);
  }
}

.contentFeatureSect__catchcopy--bl {
  bottom: 0;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect__catchcopy--bl {
    left: -32px;
    padding-bottom: 32px;
    padding-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect__catchcopy--bl {
    left: calc(-16 / 780 * 100vw);
    padding-top: calc(32 / 780 * 100vw);
  }
}

.contentFeatureSect .ttlSVG path {
  display: block;
  opacity: 0;
  -webkit-transform: translate(-100%, 0);
          transform: translate(-100%, 0);
  -webkit-transition: .6s ease;
  transition: .6s ease;
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect .ttlSVG--yokohama_front {
    margin: 40px auto 0 0;
  }
}

@media only screen and (max-width: 768px) {
  .contentFeatureSect .ttlSVG--yokohama_front {
    margin: calc(27 / 780 * 100vw) auto 0 0;
  }
}

.contentFeatureSect--reverse .contentFeatureSect__helmet .ttlSVG {
  left: unset;
  right: 0;
}

.contentFeatureSect--reverse .contentFeatureSect__helmet .ttlSVG path {
  -webkit-transform: translate(100%, 0);
          transform: translate(100%, 0);
}

.contentFeatureSect--reverse .contentFeatureSect__bg .capFrame {
  left: unset;
  right: 0;
}

.contentFeatureSect--gradient {
  background: -webkit-gradient(linear, left top, right top, from(#669cba), to(#325669));
  background: linear-gradient(90deg, #669cba 0%, #325669 100%);
  color: #ffffff;
}

.contentFeatureSect--gradient .subFeatureSect__heading {
  color: #c9bb94;
}

.contentFeatureSect--gradient .subFeatureSect .caption {
  color: #ffffff;
}

.contentFeatureSect--light .contentFeatureSect__head {
  color: #000000;
  text-shadow: none;
}

.contentFeatureSect.sai-animate .ttlSVG path {
  opacity: 1;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.contentFeatureSect.sai-animate .contentFeatureSect__bg .photo__pic {
  -webkit-filter: blur(0);
          filter: blur(0);
}

@media print, screen and (min-width: 769px) {
  .contentFeatureSect.sai-animate .contentFeatureSect__bg .photo__pic {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

.contentFeatureSect.sai-animate .contentFeatureSect__txt {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.contentFeatureSect.sai-animate .verticalCopy .char {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.floatinArea {
  height: 100%;
  left: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
}

.floatingLinkIcon {
  pointer-events: auto;
  position: absolute;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.floatingLinkIcon {
  left: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  -webkit-transform-origin: center center;
          transform-origin: center center;
  z-index: 1000;
}

@media only screen and (max-width: 768px) {
  .floatingLinkIcon {
    display: none;
  }
}

.floatingLinkIcon__inner {
  position: relative;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.floatingLinkIcon.is-logoMode .linkIcon {
  color: #ffffff;
}

.floatingLinkIcon.is-logoMode .linkIcon__clickIcon {
  opacity: 1;
}

.floatingLinkIcon.is-logoMode .linkIcon:before {
  background: linear-gradient(0deg, rgba(164, 139, 120, 0.3) 0%, rgba(164, 139, 120, 0.3) 100%), linear-gradient(125deg, #f5e4c1 18.64%, #b69972 50%, #c9a570 81.36%);
}

.floatingLinkIcon.is-logoMode .linkIcon .arrowSVG path {
  stroke: #ffffff;
}

.interactiveLinkArea {
  cursor: pointer;
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1000;
}

@media only screen and (max-width: 768px) {
  .interactiveLinkArea {
    display: none;
  }
}

.interactiveLinkArea .linkIcon {
  pointer-events: none;
  position: absolute;
  will-change: transform;
}

.leadUSP {
  margin: 0 calc(50% - 50vw);
  text-align: center;
  width: 100vw;
}

@media print, screen and (min-width: 769px) {
  .leadUSP {
    margin-top: 40px;
    padding: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .leadUSP {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: calc(40 / 390 * 100vw);
    padding: calc(24 / 390 * 100vw) calc(16 / 390 * 100vw);
  }
}

.leadUSP__txt {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  position: relative;
  white-space: nowrap;
  line-height: 1.5;
}

.leadUSP__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.5) * .5em);
  width: 0;
}

.leadUSP__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.5) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .leadUSP__txt {
    font-size: 32px;
    letter-spacing: .05em;
  }
}

@media only screen and (max-width: 768px) {
  .leadUSP__txt {
    font-size: calc(20 / 390 * 100vw);
    letter-spacing: 0;
  }
}

@media print, screen and (min-width: 769px) {
  .leadUSP__txt .line {
    font-size: 22px;
  }
}

@media only screen and (max-width: 768px) {
  .leadUSP__txt .line {
    font-size: calc(14 / 390 * 100vw);
  }
}

.leadUSP__txt sup {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 0;
  opacity: .8;
  vertical-align: top;
}

@media print, screen and (min-width: 769px) {
  .leadUSP__txt sup {
    margin-left: -10px;
  }
}

@media only screen and (max-width: 768px) {
  .leadUSP__txt sup {
    position: absolute;
    right: calc(5 / 390 * 100vw);
    top: calc(10 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .leadUSP__txt + .caption {
    margin-top: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .leadUSP__txt + .caption {
    margin-top: calc(16 / 390 * 100vw);
  }
}

.leadUSP .caption {
  color: #ffffff;
  letter-spacing: .05em;
  opacity: .8;
}

@media only screen and (max-width: 768px) {
  .leadUSP .caption {
    text-align: left;
    width: calc(326 / 390 * 100vw);
  }
}

.linkIcon {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  aspect-ratio: 1 / 1;
  color: #665D55;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-family: "Cormorant Infant", serif;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: .8;
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .linkIcon {
    font-size: 18px;
    gap: 23px;
    height: 140px;
    padding-top: 30px;
    width: 140px;
  }
}

@media only screen and (max-width: 768px) {
  .linkIcon {
    font-size: calc(18 / 390 * 100vw);
    gap: calc(16 / 390 * 100vw);
    height: calc(120 / 390 * 100vw);
    width: calc(120 / 390 * 100vw);
  }
}

.linkIcon:before {
  -webkit-backdrop-filter: blur(12.5px);
          backdrop-filter: blur(12.5px);
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  -webkit-box-shadow: 0 0 50px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 50px rgba(0, 0, 0, 0.1);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

@media only screen and (max-width: 768px) {
  .linkIcon__ttl {
    padding-top: 30px;
  }
}

.linkIcon__svg {
  fill: #000;
  position: absolute;
  top: 18%;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}

@media print, screen and (min-width: 769px) {
  .linkIcon__svg {
    width: 54px;
  }
}

@media only screen and (max-width: 768px) {
  .linkIcon__svg {
    width: calc(36 / 390 * 100vw);
  }
}

.linkIcon__clickIcon {
  position: absolute;
  bottom: 100%;
  left: 50%;
  -webkit-transform: translate(-50%, 40%);
          transform: translate(-50%, 40%);
  height: auto;
  opacity: 0;
  -webkit-transition: .3s;
  transition: .3s;
}

@media print, screen and (min-width: 769px) {
  .linkIcon__clickIcon {
    width: 88px;
  }
}

.linkIcon .rotatingCircle {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  -webkit-transition: 1s;
  transition: 1s;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 3;
}

.linkIcon .rotatingCircle__path {
  stroke-dasharray: 434;
  stroke-dashoffset: 434;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-animation: rotateCircle 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
          animation: rotateCircle 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.linkIcon .arrowSVG {
  -webkit-transition: 1s;
  transition: 1s;
}

@media print, screen and (min-width: 769px) {
  .linkIcon .arrowSVG {
    width: 27px;
  }
}

@media only screen and (max-width: 768px) {
  .linkIcon .arrowSVG {
    width: 27px;
  }
}

@media print, screen and (min-width: 769px) {
  .linkIcon--large {
    font-size: 27px;
    height: 180px;
    width: 180px;
  }
}

.linkIcon--3min:before {
  background: linear-gradient(0deg, rgba(164, 139, 120, 0.3) 0%, rgba(164, 139, 120, 0.3) 100%), linear-gradient(125deg, #f5e4c1 18.64%, #b69972 50%, #c9a570 81.36%);
}

.linkIcon--3min .rotatingCircle {
  opacity: 1;
}

.linkIcon--3min .linkIcon__clickIcon {
  opacity: 1;
}

.linkIcon--3min .arrowSVG {
  position: absolute;
  bottom: 20px;
}

.linkIcon--3min .arrowSVG path {
  stroke: #ffffff;
}

.linkIcon--floating .linkIcon__ttl {
  position: absolute;
  padding-top: 0;
  top: 50%;
  left: 50%;
  width: 100%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  text-align: center;
}

.linkIcon--floating .arrowSVG {
  position: absolute;
  bottom: 20px;
}

.linkIcon--floating:before {
  -webkit-animation: floatingPulse 2s ease-in-out infinite;
          animation: floatingPulse 2s ease-in-out infinite;
}

.linkIcon--floating:after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.2) 45%, rgba(255, 255, 255, 0) 75%);
  z-index: -2;
  -webkit-animation: floatingGlow 2s ease-in-out infinite;
          animation: floatingGlow 2s ease-in-out infinite;
  -webkit-filter: blur(2px);
          filter: blur(2px);
}

.is-logoMode .linkIcon .rotatingCircle {
  opacity: 1;
}

@-webkit-keyframes rotateCircle {
  0% {
    stroke-dashoffset: 434;
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  50% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -434;
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes rotateCircle {
  0% {
    stroke-dashoffset: 434;
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  50% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -434;
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@-webkit-keyframes gradientRotation {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes gradientRotation {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

#circleGradient {
  -webkit-animation: gradientRotation 4s linear infinite;
          animation: gradientRotation 4s linear infinite;
}

@-webkit-keyframes floatingPulse {
  0%, 100% {
    -webkit-backdrop-filter: blur(12.5px);
            backdrop-filter: blur(12.5px);
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-backdrop-filter: blur(15px);
            backdrop-filter: blur(15px);
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
  }
}

@keyframes floatingPulse {
  0%, 100% {
    -webkit-backdrop-filter: blur(12.5px);
            backdrop-filter: blur(12.5px);
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-backdrop-filter: blur(15px);
            backdrop-filter: blur(15px);
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
  }
}

@-webkit-keyframes floatingGlow {
  0%, 100% {
    opacity: 0.4;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    opacity: 0.8;
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
}

@keyframes floatingGlow {
  0%, 100% {
    opacity: 0.4;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    opacity: 0.8;
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
}

.loopText {
  -webkit-animation: loopTextAnimation 20s linear infinite;
          animation: loopTextAnimation 20s linear infinite;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  -webkit-transition: 1.3s 1s;
  transition: 1.3s 1s;
  z-index: 8;
}

.loopText .ttlSVG {
  margin-right: 40px;
}

@media print, screen and (min-width: 769px) {
  .loopText--sky_front {
    top: 160px;
  }
}

@media only screen and (max-width: 768px) {
  .loopText--sky_front {
    top: calc(92 / 390 * 100vw);
  }
}

@-webkit-keyframes loopTextAnimation {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

@keyframes loopTextAnimation {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

.is-visible .loopText {
  opacity: 1;
}

.madoriInfo {
  position: relative;
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .madoriInfo {
    padding-top: 104px;
  }
}

@media only screen and (max-width: 768px) {
  .madoriInfo {
    padding: calc(53 / 390 * 100vw) calc(30 / 390 * 100vw) 0;
  }
}

.madoriInfo__head {
  position: relative;
}

@media only screen and (max-width: 768px) {
  .madoriInfo__head .planFigure__inner {
    gap: calc(10 / 390 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .madoriInfo__head .planFigure__cont {
    padding-bottom: calc(10 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .madoriInfo__head + .madoriInfo__cont {
    margin-top: 80px;
  }
}

@media only screen and (max-width: 768px) {
  .madoriInfo__head + .madoriInfo__cont {
    margin-top: calc(40 / 390 * 100vw);
  }
}

.madoriInfo__spLink {
  z-index: 9;
  text-align: center;
}

@media print, screen and (min-width: 769px) {
  .madoriInfo__spLink {
    display: none;
  }
}

@media only screen and (max-width: 768px) {
  .madoriInfo__spLink {
    margin: calc(0 / 390 * 100vw) auto calc(40 / 390 * 100vw);
  }
}

.madoriInfo__spLink .linkIcon__ttl {
  line-height: 1.25;
  padding-top: 0;
}

@media print, screen and (min-width: 769px) {
  .madoriInfo__cont .planBtnGroup {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

@media only screen and (max-width: 768px) {
  .madoriInfo__cont .planBtnGroup {
    gap: 0;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.madoriInfo__cont .planBtnGroup .caption {
  display: none;
}

.mainSwiper {
  height: 100%;
}

.mainSwiper .swiper-container,
.mainSwiper .swiper-slide {
  height: 100%;
}

.mainSwiper .swiper-pagination {
  bottom: 30px;
  width: 100%;
  z-index: 10;
}

.mainSwiper .swiper-pagination .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.4);
  border-radius: 0;
  height: 4px;
  margin: 0 4px;
  opacity: 1;
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
  width: 40px;
}

.mainSwiper .swiper-pagination .swiper-pagination-bullet-active {
  background: #ffffff;
  width: 60px;
}

.mainVisual {
  overflow: hidden;
  position: relative;
  width: 100%;
  position: relative;
}

@media print, screen and (min-width: 769px) {
  .mainVisual {
    aspect-ratio: 2160 / 1200;
  }
}

.mainVisual:after {
  background: -webkit-gradient(linear, left top, right top, from(#425289), to(#0a194a));
  background: linear-gradient(90deg, #425289 0%, #0a194a 100%);
  content: '';
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100vw;
}

@inclufde pc {
  .mainVisual:after {
    margin: 0 calc(50% - 50vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual:after {
    left: 0;
  }
}

.mainVisual__logo {
  position: absolute;
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__logo {
    bottom: 40px;
    right: 40px;
    width: 276px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__logo {
    bottom: calc(12 / 390 * 100vw);
    right: calc(20 / 390 * 100vw);
    width: calc(140 / 390 * 100vw);
  }
}

.mainVisual__capFrame {
  background-color: rgba(85, 85, 85, 0.7);
  position: absolute;
  z-index: 2;
  bottom: 0;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__capFrame {
    left: 0;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__capFrame {
    right: 0;
    padding: 0 3px;
    letter-spacing: 0;
  }
}

.mainVisual__copy {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: 50%;
  position: absolute;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy {
    gap: calc(32 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy {
    gap: calc(38 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy--skyFront {
    bottom: calc(123 / 1440 * 100vw);
    -webkit-transform: unset;
            transform: unset;
    right: calc(68 / 1440 * 100vw);
    left: auto;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy--skyFront {
    bottom: calc(145 / 390 * 100vw);
    right: calc(28 / 390 * 100vw);
    left: auto;
    -webkit-transform: initial;
            transform: initial;
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy--yokohamaFront {
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy--yokohamaFront {
    top: calc(156 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy--stationFront {
    top: calc(218 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy--stationFront {
    top: calc(140 / 390 * 100vw);
  }
}

.mainVisual__copy--access {
  opacity: 0;
  -webkit-transition: opacity 1s ease-out 2s;
  transition: opacity 1s ease-out 2s;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy--access {
    width: calc(480 / 1440 * 100vw);
    top: calc(72 / 1440 * 100vw);
    -webkit-transform: unset;
            transform: unset;
    left: unset;
    right: calc(141 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy--access {
    top: calc(237 / 780 * 100vw);
    right: calc(52 / 780 * 100vw);
    width: calc(480 / 780 * 100vw);
    left: auto;
    -webkit-transform: initial;
            transform: initial;
  }
}

.mainVisual__copy--lounge {
  opacity: 0;
  -webkit-transition: opacity 1s ease-out .3s;
  transition: opacity 1s ease-out .3s;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

@media print, screen and (min-width: 769px) {
  .mainVisual__copy--lounge {
    width: calc(96 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__copy--lounge {
    width: calc(53 / 390 * 100vw);
  }
}

.mainVisual .mainHeadingSVG {
  -webkit-filter: drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7));
          filter: drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7));
  text-align: center;
  width: 100%;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .mainVisual .mainHeadingSVG--stationFront {
    width: calc(418 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .mainHeadingSVG--stationFront {
    width: calc(213 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual .mainHeadingSVG--yokohamaFront {
    width: calc(503 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .mainHeadingSVG--yokohamaFront {
    width: calc(247 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual .mainHeadingSVG--skyFront {
    width: calc(289 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .mainHeadingSVG--skyFront {
    width: calc(142 / 390 * 100vw);
  }
}

.mainVisual .verticalCopySVG {
  display: block;
  letter-spacing: .44em;
  margin: 0 auto;
  z-index: 9;
}

.mainVisual .verticalCopySVG--skyFront {
  -webkit-filter: drop-shadow(0 0 3px #000) drop-shadow(0 0 10px rgba(0, 0, 0, 0.2)) drop-shadow(0 0 5px rgba(0, 0, 0, 0.8));
          filter: drop-shadow(0 0 3px #000) drop-shadow(0 0 10px rgba(0, 0, 0, 0.2)) drop-shadow(0 0 5px rgba(0, 0, 0, 0.8));
}

@media print, screen and (min-width: 769px) {
  .mainVisual .verticalCopySVG--skyFront {
    width: calc(645 / 1440 * 100vw);
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .verticalCopySVG--skyFront {
    height: 64px;
    width: 225px;
  }
}

.mainVisual .verticalCopySVG--yokohamaFront {
  -webkit-filter: drop-shadow(0 0 3px #172550) drop-shadow(0 0 10px rgba(23, 37, 80, 0.2)) drop-shadow(0 0 5px rgba(23, 37, 80, 0.8));
          filter: drop-shadow(0 0 3px #172550) drop-shadow(0 0 10px rgba(23, 37, 80, 0.2)) drop-shadow(0 0 5px rgba(23, 37, 80, 0.8));
}

@media print, screen and (min-width: 769px) {
  .mainVisual .verticalCopySVG--yokohamaFront {
    width: calc(32 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .verticalCopySVG--yokohamaFront {
    width: calc(22 / 390 * 100vw);
  }
}

.mainVisual .verticalCopySVG--stationFront {
  -webkit-filter: drop-shadow(0 0 3px #172550) drop-shadow(0 0 10px rgba(23, 37, 80, 0.2)) drop-shadow(0 0 5px rgba(23, 37, 80, 0.8));
          filter: drop-shadow(0 0 3px #172550) drop-shadow(0 0 10px rgba(23, 37, 80, 0.2)) drop-shadow(0 0 5px rgba(23, 37, 80, 0.8));
}

@media print, screen and (min-width: 769px) {
  .mainVisual .verticalCopySVG--stationFront {
    width: calc(32 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .verticalCopySVG--stationFront {
    width: calc(22 / 390 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual .mainSwiper .swiper-pagination {
    bottom: -35px;
  }
}

.swiper-slide.swiper-slide-active .mainVisual__copy--access {
  opacity: 1;
}

.swiper-slide.swiper-slide-active .mainVisual__copy--lounge {
  opacity: 1;
}

.mainVisual__inner {
  height: 100%;
  position: relative;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .mainVisual__inner {
    aspect-ratio: 780 / 840;
    margin-bottom: 60px;
  }
}

.mainVisual__frame {
  background-color: #ffffff;
  height: 100%;
  left: 0;
  overflow: hidden;
  -webkit-perspective: 1000;
          perspective: 1000;
  -webkit-transition: opacity 1s ease-out;
  transition: opacity 1s ease-out;
  width: 100%;
  will-change: transform;
}

.mainVisual__frame .heroSVG {
  position: absolute;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame .heroSVG {
    left: 50%;
    top: calc(50 / 1440 * 100vw);
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    width: calc(890 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame .heroSVG {
    left: 50%;
    top: calc(117 / 390 * 100vw);
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    width: calc(340 / 390 * 100vw);
  }
}

.mainVisual__frame .heroSVG path,
.mainVisual__frame .heroSVG line {
  opacity: 0;
  -webkit-transform: translate(4%, 0);
          transform: translate(4%, 0);
  -webkit-transition: 1s ease;
  transition: 1s ease;
}

.mainVisual__frame.is-end {
  opacity: 0;
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--first {
    overflow: hidden;
  }
}

.mainVisual__frame.mainVisual__frame--first .photo {
  display: block;
  -webkit-transition: 5s linear;
  transition: 5s linear;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--first .photo {
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-transform-origin: center -70px;
            transform-origin: center -70px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--first .photo {
    -webkit-transform-origin: center 70%;
            transform-origin: center 70%;
    -webkit-transform: scale(1.1384);
            transform: scale(1.1384);
  }
}

.mainVisual__frame.mainVisual__frame--first .photo:before {
  content: '';
  inset: 0;
  position: absolute;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--first .photo:before {
    background: no-repeat center -140px / 100% auto;
    background-image: url("../imgs/pc/img-mv-01-plot@1.5x.png");
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--first .photo:before {
    background: no-repeat center 70% / 100% auto;
    background-image: url("../imgs/sp/img-mv-01-plot.png");
  }
}

.mainVisual__frame.mainVisual__frame--first .photo:after {
  -webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
          clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
  content: '';
  inset: 0;
  position: absolute;
  -webkit-transition: -webkit-clip-path 2.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s;
  transition: -webkit-clip-path 2.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s;
  transition: clip-path 2.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s;
  transition: clip-path 2.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s, -webkit-clip-path 2.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--first .photo:after {
    background: no-repeat center -140px / 100% auto;
    background-image: url("../imgs/pc/img-mv-01-light@1.5x.png");
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--first .photo:after {
    background: no-repeat center 70% / 100% auto;
    background-image: url("../imgs/sp/img-mv-01-light.png");
  }
}

.mainVisual__frame.mainVisual__frame--first .photo__image {
  -o-object-fit: cover;
     object-fit: cover;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--first .photo__image {
    -o-object-position: center -70px;
       object-position: center -70px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--first .photo__image {
    -o-object-position: center 70%;
       object-position: center 70%;
  }
}

.mainVisual__frame.mainVisual__frame--first.is-active .photo {
  -webkit-transition: 10s linear;
  transition: 10s linear;
}

.mainVisual__frame.mainVisual__frame--first.is-active .photo:after {
  -webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
          clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
}

.mainVisual__frame.mainVisual__frame--first .mainVisual__logo {
  -webkit-filter: drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7));
          filter: drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7)) drop-shadow(0 0 6px rgba(23, 37, 80, 0.7));
}

.mainVisual__frame.mainVisual__frame--02 .photo {
  display: block;
  -webkit-transition: 5s linear;
  transition: 5s linear;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--02 .photo {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--02 .photo {
    -webkit-transform: scale(1.04);
            transform: scale(1.04);
  }
}

.mainVisual__frame.mainVisual__frame--02 .photo__image {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}

.mainVisual__frame.mainVisual__frame--02.is-active .photo {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 10s linear;
  transition: 10s linear;
}

.mainVisual__frame.mainVisual__frame--03 .photo {
  display: block;
  -webkit-transition: 5s linear;
  transition: 5s linear;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--03 .photo {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--03 .photo {
    -webkit-transform: scale(1.04);
            transform: scale(1.04);
  }
}

.mainVisual__frame.mainVisual__frame--03 .photo__image {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}

.mainVisual__frame.mainVisual__frame--03 .photo:after {
  background: no-repeat center center / 100% auto;
  content: '';
  -webkit-filter: blur(10px) brightness(2);
          filter: blur(10px) brightness(2);
  inset: 0;
  opacity: 0;
  position: absolute;
  -webkit-transition: 2s ease 1s;
  transition: 2s ease 1s;
  -webkit-transition-property: opacity,-webkit-filter;
  transition-property: opacity,-webkit-filter;
  transition-property: filter,opacity;
  transition-property: filter,opacity,-webkit-filter;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--03 .photo:after {
    background-image: url("../imgs/pc/img-mv-03-plot@1.5x.png");
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--03 .photo:after {
    background-image: url("../imgs/sp/img-mv-03-plot.png");
  }
}

.mainVisual__frame.mainVisual__frame--03.is-active .photo {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 10s linear;
  transition: 10s linear;
}

.mainVisual__frame.mainVisual__frame--03.is-active .photo:after {
  -webkit-filter: blur(0) brightness(1);
          filter: blur(0) brightness(1);
  opacity: 1;
}

.mainVisual__frame.mainVisual__frame--end .mainVisual__summaryLogo {
  display: none;
  -webkit-filter: blur(10px);
          filter: blur(10px);
  opacity: 0;
  position: absolute;
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: 3s 4s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: 3s 4s cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--end .mainVisual__summaryLogo {
    bottom: 40px;
    right: 40px;
    width: 276px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--end .mainVisual__summaryLogo {
    bottom: calc(29 / 390 * 100vw);
    right: calc(11 / 390 * 100vw);
    width: calc(90 / 390 * 100vw);
  }
}

.mainVisual__frame.mainVisual__frame--end .mainVisual__summaryTxt {
  color: #ffffff;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 2;
  opacity: 0;
  position: absolute;
  -webkit-transition: 1s 3s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: 1s 3s cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--end .mainVisual__summaryTxt {
    font-size: calc(22 / 1440 * 100vw);
    right: calc(300 / 1440 * 100vw);
    top: calc(170 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__frame.mainVisual__frame--end .mainVisual__summaryTxt {
    font-size: calc(11 / 390 * 100vw);
    right: calc(10 / 390 * 100vw);
    top: calc(160 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__frame.mainVisual__frame--end.is-active .photo__image {
    height: 100%;
    margin: 0 0 0 auto;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center center;
       object-position: center center;
    width: 100%;
  }
}

.mainVisual__frame.mainVisual__frame--end.is-active .mainVisual__summaryTxt {
  opacity: 1;
}

.mainVisual__frame.mainVisual__frame--end.is-active .mainVisual__summaryLogo {
  -webkit-filter: blur(0);
          filter: blur(0);
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.mainVisual__frame.is-active .heroSVG path,
.mainVisual__frame.is-active .heroSVG line {
  opacity: 1;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.mainVisual__leadSVG {
  position: absolute;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .mainVisual__leadSVG--01 {
    left: calc(120 / 1440 * 100vw);
    top: 104px;
    width: 240px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__leadSVG--01 {
    left: calc(34 / 390 * 100vw);
    top: calc(475 / 390 * 100vw);
    width: calc(159 / 390 * 100vw);
  }
}

.mainVisual__leadSVG--02, .mainVisual__leadSVG--03 {
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}

@media print, screen and (min-width: 769px) {
  .mainVisual__leadSVG--02, .mainVisual__leadSVG--03 {
    top: 104px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__leadSVG--02, .mainVisual__leadSVG--03 {
    top: calc(132 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__leadSVG--02 {
    width: 297px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__leadSVG--02 {
    width: calc(196 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .mainVisual__leadSVG--03 {
    width: 408px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__leadSVG--03 {
    width: calc(272 / 390 * 100vw);
  }
}

/* z-indexの制御 */
.mainVisual__frame:nth-child(1) {
  z-index: 4;
}

.mainVisual__frame:nth-child(2) {
  z-index: 3;
}

.mainVisual__frame:nth-child(3) {
  z-index: 2;
}

.mainVisual__frame:nth-child(4) {
  z-index: 1;
}

.mainVisual__frame.is-scrollable {
  position: absolute;
}

.mainVisual__frame .photo,
.mainVisual__frame .photo__pic,
.mainVisual__frame .photo__pic img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

.mainVisual__skip {
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid #ffffff;
  border-radius: 20px;
  color: #ffffff;
  cursor: pointer;
  font-size: 14px;
  padding: 8px 24px;
  position: absolute;
  -webkit-transition: background-color .3s;
  transition: background-color .3s;
  z-index: 10;
}

.mainVisual__skip:hover {
  background: rgba(255, 255, 255, 0.3);
}

@media print, screen and (min-width: 769px) {
  .mainVisual__skip {
    right: 20px;
    top: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .mainVisual__skip {
    right: calc(5 / 390 * 100vw);
    bottom: -50px;
  }
}

.movieSect {
  background: -webkit-gradient(linear, left top, left bottom, from(#DCC2DB), to(#A8B6D9));
  background: linear-gradient(180deg, #DCC2DB 0%, #A8B6D9 100%);
  color: #ffffff;
}

@media print, screen and (min-width: 769px) {
  .movieSect {
    padding: 100px 0;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect {
    padding: calc(82 / 390 * 100vw) 0;
  }
}

@media print, screen and (min-width: 769px) {
  .movieSect__head + .movieSect__cont {
    margin-top: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__head + .movieSect__cont {
    margin-top: calc(40 / 390 * 100vw);
  }
}

.movieSect__heading {
  font-family: "Cormorant Infant", serif;
  letter-spacing: .32em;
  line-height: .8;
  text-align: center;
  color: #333333;
}

@media print, screen and (min-width: 769px) {
  .movieSect__heading {
    font-size: 16px;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__heading {
    font-size: calc(16 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .movieSect__heading + .movieSect__subheading {
    margin-top: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__heading + .movieSect__subheading {
    margin-top: calc(40 / 390 * 100vw);
  }
}

.movieSect__subheading {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  text-align: center;
  color: #333333;
  line-height: 1.5;
}

.movieSect__subheading:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.5) * .5em);
  width: 0;
}

.movieSect__subheading:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.5) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .movieSect__subheading {
    font-size: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__subheading {
    font-size: calc(27 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .movieSect__subheading--small {
    font-size: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__subheading--small {
    font-size: calc(16 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .movieSect__subheading .num {
    font-size: 30px;
    font-weight: 400;
  }
}

@media only screen and (max-width: 768px) {
  .movieSect__subheading .num {
    font-size: calc(28 / 390 * 100vw);
    font-weight: 400;
  }
}

.movieSect__cont {
  aspect-ratio: 640 / 360;
  margin: 0 auto;
  position: relative;
}

@media print, screen and (min-width: 769px) {
  .movieSect__cont {
    height: 498px;
  }
}

.movieSect__cont iframe {
  width: 100%;
}

.openingLoading {
  background-color: #ffffff;
  display: grid;
  height: 100vh;
  left: 0;
  place-items: center;
  position: fixed;
  top: 0;
  -webkit-transition: 1s 3s;
  transition: 1s 3s;
  width: 100%;
  z-index: 99999;
  /* 数字3のアニメーション */
  /* テキストのアニメーション */
}

.openingLoading.is-start {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.openingLoading .loadingSVG {
  -webkit-animation: rotate 3s infinite ease-in-out;
          animation: rotate 3s infinite ease-in-out;
}

@media print, screen and (min-width: 769px) {
  .openingLoading .loadingSVG {
    width: 220px;
  }
}

@media only screen and (max-width: 768px) {
  .openingLoading .loadingSVG {
    -webkit-transform: translate(10%, 0);
            transform: translate(10%, 0);
    width: calc(200 / 390 * 100vw);
  }
}

.openingLoading .loadingSVG path[stroke='#333'] {
  -webkit-animation: strokeAnimation 2s cubic-bezier(0.76, 0, 0.24, 1) forwards;
          animation: strokeAnimation 2s cubic-bezier(0.76, 0, 0.24, 1) forwards;
  stroke: #333333;
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}

.openingLoading .loadingSVG path[fill='#333'] {
  -webkit-animation: fillAnimation 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
          animation: fillAnimation 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s;
  /* 数字3が描画された後に開始 */
  fill: #ffffff;
}

.openingLoading .progress {
  background: #f0f0f0;
  border-radius: 1px;
  bottom: -30px;
  height: 2px;
  overflow: hidden;
  position: absolute;
  width: 120px;
}

.openingLoading .progress:after {
  -webkit-animation: progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
          animation: progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  background: #333333;
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.openingLoading .loadingText {
  -webkit-animation: textReveal 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.6s;
          animation: textReveal 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.6s;
  color: #333333;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .05em;
  margin-top: 40px;
  opacity: 0;
}

@-webkit-keyframes scaleIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes scaleIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@-webkit-keyframes fillAnimation {
  0% {
    fill: #ffffff;
  }
  100% {
    fill: #333333;
  }
}

@keyframes fillAnimation {
  0% {
    fill: #ffffff;
  }
  100% {
    fill: #333333;
  }
}

@-webkit-keyframes strokeAnimation {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes strokeAnimation {
  to {
    stroke-dashoffset: 0;
  }
}

@-webkit-keyframes progress {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  50% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

@keyframes progress {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  50% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

@-webkit-keyframes textReveal {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes textReveal {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

.otherGuide {
  overflow: hidden;
  position: relative;
}

@media print, screen and (min-width: 769px) {
  .otherGuide {
    background-image: url("../imgs/pc/bg-other-guide@1.5x.jpg");
    background-position: top center;
    background-size: cover;
    height: auto;
    overflow: visible;
    padding: 160px 0;
  }
}

@media only screen and (max-width: 768px) {
  .otherGuide {
    background-image: url("../imgs/sp/bg-other-guide.jpg");
    background-position: top center;
    background-size: cover;
    overflow: hidden;
    padding: calc(100vw / 390 * 100) 0;
  }
}

.otherGuide__inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media print, screen and (min-width: 769px) {
  .otherGuide__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 100px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 0 auto;
    position: static;
    width: 1200px;
  }
}

@media only screen and (max-width: 768px) {
  .otherGuide__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(60vw / 390 * 100);
    height: 100%;
    padding: 0 calc(60vw / 390 * 100);
    position: relative;
  }
}

.otherCard {
  display: block;
  position: relative;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

@media print, screen and (min-width: 769px) {
  .otherCard {
    width: 368px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: calc(270vw / 390 * 100);
  }
}

@media print, screen and (min-width: 769px) {
  .otherCard:hover .otherCard__visual .photo__image {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  .otherCard:hover .otherCard__button {
    -webkit-transform: translate(10px, 0);
            transform: translate(10px, 0);
  }
}

@media (hover: hover) and (pointer: fine) {
  .otherCard:hover .otherCard__visual .photo__image {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  .otherCard:hover .otherCard__button {
    -webkit-transform: translate(10px, 0);
            transform: translate(10px, 0);
  }
}

.otherCard__visual {
  position: relative;
}

.otherCard__visual .photo {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.otherCard__visual .photo__capFrame {
  left: 0;
  right: unset;
}

.otherCard__visual .photo__image {
  -webkit-transition: -webkit-transform .5s ease-in-out;
  transition: -webkit-transform .5s ease-in-out;
  transition: transform .5s ease-in-out;
  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;
  will-change: transform;
}

.otherCard__button {
  position: absolute;
  right: -45px;
  top: calc(100% - 30px);
  -webkit-transition: -webkit-transform .5s ease-in-out;
  transition: -webkit-transform .5s ease-in-out;
  transition: transform .5s ease-in-out;
  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .otherCard__button .linkIcon {
    height: 140px;
    width: 140px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__button .linkIcon {
    height: calc(120vw / 390 * 100);
    width: calc(120vw / 390 * 100);
  }
}

@media print, screen and (min-width: 769px) {
  .otherCard__button .linkIcon__ttl {
    font-size: 18px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__button .linkIcon__ttl {
    font-size: calc(18vw / 390 * 100);
  }
}

.otherCard__ttl {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #f2f2f2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-family: "Cormorant Infant", serif;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  left: 0;
  line-height: .8;
  position: absolute;
  top: 0;
  -webkit-transform: rotate(90deg) translate(0, 13px);
          transform: rotate(90deg) translate(0, 13px);
  -webkit-transform-origin: top left;
          transform-origin: top left;
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .otherCard__ttl {
    gap: 11px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__ttl {
    font-size: calc(16 / 390 * 100vw);
    gap: calc(11 / 390 * 100vw);
  }
}

.otherCard__ttl:before {
  background-color: #e8eff2;
  content: '';
  display: block;
  height: 1px;
}

@media print, screen and (min-width: 769px) {
  .otherCard__ttl:before {
    width: 80px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__ttl:before {
    width: calc(80vw / 390 * 100);
  }
}

.otherCard__txt {
  color: #ffffff;
  letter-spacing: .08em;
  position: relative;
  z-index: 2;
  line-height: 1.75;
}

.otherCard__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.otherCard__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .otherCard__txt {
    font-size: 13px;
    margin-top: 32px;
    width: 226px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__txt {
    font-size: calc(12vw / 390 * 100);
    margin-top: calc(32vw / 390 * 100);
    width: calc(185vw / 390 * 100);
  }
}

.otherCard__txt + .caption {
  color: #ffffff;
  position: relative;
  z-index: 2;
}

@media print, screen and (min-width: 769px) {
  .otherCard__txt + .caption {
    margin-top: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .otherCard__txt + .caption {
    margin-top: calc(20vw / 390 * 100);
  }
}

.planFigure {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .planFigure {
    width: 922px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.planFigure__inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #ffffff;
  border: 1px solid rgba(153, 153, 153, 0.4);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
}

@media print, screen and (min-width: 769px) {
  .planFigure__inner {
    padding: 32px 119px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    gap: 63px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__inner {
    gap: calc(34 / 390 * 100vw);
    padding: calc(32 / 390 * 100vw) calc(10 / 390 * 100vw);
  }
}

.planFigure__ttl {
  background-color: rgba(85, 85, 85, 0.7);
  color: #ffffff;
  display: grid;
  font-family: "YakuHanJP", "Zen Kaku Gothic New", "Noto SansJapanese", sans-serif;
  line-height: 1;
  margin: 0 auto;
  place-items: center;
  position: relative;
  text-align: center;
  width: 100%;
}

@media print, screen and (min-width: 769px) {
  .planFigure__ttl {
    font-size: 13px;
    height: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__ttl {
    font-size: calc(13 / 390 * 100vw);
    height: calc(32 / 390 * 100vw);
  }
}

.planFigure__price {
  background-color: #555555;
  color: #ffffff;
  font-family: "YakuHanJP", "Zen Kaku Gothic New", "Noto SansJapanese", sans-serif;
  text-align: center;
}

@media print, screen and (min-width: 769px) {
  .planFigure__price {
    font-size: 14px;
    line-height: 1;
    padding: 13px 0 14px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__price {
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.12;
    padding: calc(13 / 390 * 100vw) 0 calc(14 / 390 * 100vw);
  }
}

.planFigure__price .small {
  font-size: 10px;
}

.planFigure__price .num {
  color: #bdaa9a;
}

@media print, screen and (min-width: 769px) {
  .planFigure__price .num {
    font-size: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__price .num {
    font-size: calc(24 / 390 * 100vw);
  }
}

.planFigure__subttl {
  background: linear-gradient(0deg, rgba(164, 139, 120, 0.3) 0%, rgba(164, 139, 120, 0.3) 100%), linear-gradient(125deg, #F5E4C1 18.64%, #B69972 50%, #C9A570 81.36%);
  border: 1px solid #f5e4c1;
  color: #ffffff;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  left: 0;
  letter-spacing: 0.05em;
  line-height: 1.6;
  text-align: center;
  top: 0;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .planFigure__subttl {
    font-size: 18px;
    left: 471px;
    padding: 16px;
    position: absolute;
    top: 87px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__subttl {
    font-size: 14px;
    padding: calc(16 / 390 * 100vw) 0;
    width: 100%;
  }
}

.planFigure__head {
  color: #555555;
  font-family: "Cormorant Infant", serif;
  font-size: 26px;
  line-height: .8;
}

@media print, screen and (min-width: 769px) {
  .planFigure__head {
    padding-top: 123px;
    text-align: left;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__head {
    text-align: center;
    width: 100%;
  }
}

.planFigure__head .alphabet,
.planFigure__head .num {
  font-size: 34px;
}

.planFigure__head .meter {
  font-size: 18px;
}

@media print, screen and (min-width: 769px) {
  .planFigure__cont {
    width: 288px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__cont {
    padding: 0 calc(10 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .planFigure__variationGroup {
    margin-top: 10px;
  }
}

@media print, screen and (min-width: 769px) {
  .planFigure__variation {
    display: inline-block;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__variation {
    margin-top: 10px;
  }
}

@media print, screen and (min-width: 769px) {
  .planFigure__length {
    display: inline-block;
    margin-left: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__length {
    margin-top: 10px;
  }
}

@media print, screen and (min-width: 769px) {
  .planFigure__note {
    margin-top: 16px;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__note {
    margin-top: calc(21 / 390 * 100vw);
  }
}

.planFigure__hanreiList {
  color: #666666;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  font-size: 10px;
  gap: 3px 10px;
  line-height: 1.6;
}

.planFigure__hanreiList + .caption {
  margin-top: 10px;
}

.planFigure__hanreiItem {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 4px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.planFigure__hanreiItem .hanreiSVG {
  height: 10px;
  width: auto;
}

.planFigure__imageCaption {
  background: #777777;
  bottom: 0;
  color: #ffffff;
  font-size: 10px;
  padding: 4px 8px;
  position: absolute;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

@media print, screen and (min-width: 769px) {
  .planFigure__imageCaption {
    left: 0;
  }
}

@media only screen and (max-width: 768px) {
  .planFigure__imageCaption {
    right: 0;
  }
}

.planSect {
  position: relative;
  z-index: 3;
}

.planSect__mainCopy {
  display: block;
  letter-spacing: .15em;
  margin: 0 auto;
  font-family: "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  -webkit-text-orientation: upright;
          text-orientation: upright;
  white-space: nowrap;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

@media print, screen and (min-width: 769px) {
  .planSect__mainCopy {
    font-size: 32px;
    margin-bottom: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__mainCopy {
    font-size: calc(18 / 390 * 100vw);
    margin-bottom: calc(40 / 390 * 100vw);
  }
}

.planSect__mainCopy .yakuhan {
  letter-spacing: -.3em;
}

.planSect__visual {
  position: relative;
}

.planSect__visual .photo,
.planSect__visual .photo__image {
  width: 100%;
}

.planSect__visual .ellipseSVG {
  left: 50%;
  position: absolute;
  top: 0;
  -webkit-transform: translate(-50%, -404px);
          transform: translate(-50%, -404px);
  width: 2400px;
  z-index: -1;
}

.planSect__visual .circleSVG {
  left: 50%;
  position: absolute;
  top: 0;
  -webkit-transform: translate(-50%, calc(-238 / 390 * 100vw));
          transform: translate(-50%, calc(-238 / 390 * 100vw));
  width: calc(960 / 390 * 100vw);
  z-index: -1;
}

.planSect__subVisual {
  left: 50%;
  margin: 0 auto;
  position: absolute;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}

@media print, screen and (min-width: 769px) {
  .planSect__subVisual {
    top: calc(100% - 107px);
    width: 834px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__subVisual {
    padding: 0 calc(24 / 390 * 100vw);
    top: calc(100% - (20 / 390 * 100vw));
    width: 100%;
  }
}

.planSect__subVisual .photo {
  -webkit-filter: drop-shadow(0 12px 24px rgba(162, 148, 134, 0.3));
          filter: drop-shadow(0 12px 24px rgba(162, 148, 134, 0.3));
}

@media print, screen and (min-width: 769px) {
  .planSect__subVisual .photo {
    width: 258px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__subVisual .photo {
    width: calc(120 / 390 * 100vw);
  }
}

.planSect__cont {
  margin: 0 auto;
  text-align: right;
}

@media print, screen and (min-width: 769px) {
  .planSect__cont {
    padding-top: 72px;
    width: 726px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__cont {
    padding: calc(56 / 390 * 100vw) calc(60 / 390 * 100vw) 0;
    width: 100%;
  }
}

.planSect__subheading {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.75;
}

.planSect__subheading:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.planSect__subheading:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .planSect__subheading {
    font-size: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__subheading {
    font-size: calc(16 / 390 * 100vw);
    letter-spacing: 0;
  }
}

@media print, screen and (min-width: 769px) {
  .heading + .planSect__subheading {
    margin-top: 56px;
  }
}

@media only screen and (max-width: 768px) {
  .heading + .planSect__subheading {
    margin-top: calc(56 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .planSect__subheading + .planSect__txt {
    margin-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__subheading + .planSect__txt {
    margin-top: calc(48 / 390 * 100vw);
  }
}

.planSect__txt {
  line-height: 2;
}

.planSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.planSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .planSect__txt {
    font-size: 14px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__txt {
    font-size: calc(13 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .planSect__txt + .photo {
    margin-top: 75px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__txt + .photo {
    margin-top: calc(46 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .planSect__txt + .caption {
    margin-top: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .planSect__txt + .caption {
    margin-top: calc(40 / 390 * 100vw);
  }
}

.planSect .ttlSVG {
  margin: 0 auto;
}

.positionSect {
  margin: 0 auto;
  width: 1000px;
}

@media print, screen and (min-width: 769px) {
  .positionSect {
    padding-top: 104px;
  }
}

.positionSect__heading {
  color: #a48b78;
  font-family: "Cormorant Infant", serif;
  line-height: .8;
}

@media print, screen and (min-width: 769px) {
  .positionSect__heading {
    font-size: 16px;
  }
}

.positionSect__txt {
  font-size: 14px;
  margin-top: 32px;
  line-height: 2;
}

.positionSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.positionSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media only screen and (max-width: 768px) {
  .subConceptSect {
    padding: 0 calc(32 / 390 * 100vw);
  }
}

.subConceptSect__txt {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.75;
}

.subConceptSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.subConceptSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .subConceptSect__txt {
    font-size: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .subConceptSect__txt {
    font-size: 16px;
    letter-spacing: 0;
    white-space: nowrap;
  }
}

.subConceptSect__txt sup {
  font-family: "YakuHanJP", "Zen Kaku Gothic New", "Noto SansJapanese", sans-serif;
  font-size: 10px;
  letter-spacing: 0;
  opacity: .8;
  vertical-align: top;
}

@media print, screen and (min-width: 769px) {
  .subConceptSect__txt + .caption {
    margin-top: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .subConceptSect__txt + .caption {
    margin-top: calc(24 / 390 * 100vw);
    text-align: justify;
  }
}

.subConceptSect .caption {
  color: #f2efed;
}

@media print, screen and (min-width: 769px) {
  .conceptSect__logo + .subConceptSect {
    margin-top: 72px;
  }
}

@media only screen and (max-width: 768px) {
  .conceptSect__logo + .subConceptSect {
    margin-top: calc(48 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__head {
    left: 50%;
    margin-top: -168px;
    max-width: 1440px;
    position: absolute;
    top: 0;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__head {
    margin-top: calc(-124 / 390 * 100vw);
    position: relative;
  }
}

.subFeatureSect__head .capFrame {
  bottom: 0;
  display: grid;
  height: 20px;
  place-items: center;
  position: absolute;
  right: 0;
  text-indent: -.1em;
  width: 20px;
}

.subFeatureSect__head .photo {
  margin: 0 0 0 auto;
  -webkit-mask-image: linear-gradient(135deg, black 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
          mask-image: linear-gradient(135deg, black 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-position: 130% 130%;
          mask-position: 130% 130%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 250% 250%;
          mask-size: 250% 250%;
  -webkit-transition: 3s -webkit-mask-position;
  transition: 3s -webkit-mask-position;
  transition: 3s mask-position;
  transition: 3s mask-position, 3s -webkit-mask-position;
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__head .photo {
    width: calc(692 / 1440 * 100%);
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__head .photo {
    width: calc(330 / 390 * 100vw);
  }
}

.subFeatureSect__head .photo.sai-animate {
  -webkit-animation: mask-animation 3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
          animation: mask-animation 3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  -webkit-mask-position: 0 0;
          mask-position: 0 0;
}

@-webkit-keyframes mask-animation {
  0% {
    -webkit-mask-position: 130% 130%;
            mask-position: 130% 130%;
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  50% {
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
  }
  100% {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes mask-animation {
  0% {
    -webkit-mask-position: 130% 130%;
            mask-position: 130% 130%;
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  50% {
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
  }
  100% {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

.subFeatureSect__cont {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__cont {
    padding-top: 204px;
    width: 1000px;
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__cont {
    margin-top: calc(80 / 390 * 100vw);
    padding-bottom: calc(144 / 390 * 100vw);
    width: calc(270 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__inner {
    width: 374px;
  }
}

.subFeatureSect__heading {
  color: #a48b78;
  font-family: "Cormorant Infant", serif;
  letter-spacing: .32em;
  line-height: .8;
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__heading {
    font-size: 16px;
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__heading {
    font-size: calc(16 / 390 * 100vw);
  }
}

.subFeatureSect__txt {
  letter-spacing: 0;
  line-height: 2;
}

.subFeatureSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.subFeatureSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__txt {
    font-size: 14px;
    margin-top: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__txt {
    font-size: calc(13 / 390 * 100vw);
    margin-top: calc(32 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .subFeatureSect__txt + .caption {
    margin-top: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .subFeatureSect__txt + .caption {
    margin-top: calc(32 / 390 * 100vw);
  }
}

.subFeatureSect--reverse .subFeatureSect__head .photo {
  margin: 0 auto 0 0;
}

.subFeatureSect--reverse .subFeatureSect__head .capFrame {
  left: 0;
  right: auto;
}

.subFeatureSect--reverse .subFeatureSect__cont {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.subUSP {
  background-color: #ebe7de;
}

@media print, screen and (min-width: 769px) {
  .subUSP {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 80px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 48px 0;
  }
}

@media only screen and (max-width: 768px) {
  .subUSP {
    padding: calc(40 / 390 * 100vw) 0;
    text-align: center;
  }
}

@media only screen and (max-width: 768px) {
  .subUSP__head + .subUSP__cont {
    margin-top: calc(24 / 390 * 100vw);
  }
}

.subUSP__ttl {
  color: #333333;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.5;
}

.subUSP__ttl:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.5) * .5em);
  width: 0;
}

.subUSP__ttl:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.5) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .subUSP__ttl {
    font-size: 22px;
  }
}

@media only screen and (max-width: 768px) {
  .subUSP__ttl {
    font-size: calc(20 / 390 * 100vw);
  }
}

.subUSP__ttl + .txt {
  color: #555555;
}

@media print, screen and (min-width: 769px) {
  .subUSP__ttl + .txt {
    margin-top: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .subUSP__ttl + .txt {
    margin-top: calc(24 / 390 * 100vw);
  }
}

.ttlSVG {
  display: block;
}

@media print, screen and (min-width: 769px) {
  .ttlSVG--station_sky_front {
    width: 438px;
  }
}

@media only screen and (max-width: 768px) {
  .ttlSVG--station_sky_front {
    width: calc(326 / 390 * 100vw);
  }
}

.ttlSVG--station_sky_front path,
.ttlSVG--station_sky_front line {
  display: block;
  opacity: 0;
  -webkit-transform: translate(5%, 0);
          transform: translate(5%, 0);
}

.ttlSVG--station_sky_front.sai-animate path,
.ttlSVG--station_sky_front.sai-animate line {
  opacity: 1;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  -webkit-transition: 1.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: 1.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}

@media print, screen and (min-width: 769px) {
  .ttlSVG--station_front {
    width: 36px;
  }
}

@media only screen and (max-width: 768px) {
  .ttlSVG--station_front {
    width: calc(24 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .ttlSVG--yokohama_front {
    width: 36px;
  }
}

@media only screen and (max-width: 768px) {
  .ttlSVG--yokohama_front {
    width: calc(24 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .ttlSVG--sky_front {
    width: 36px;
  }
}

@media only screen and (max-width: 768px) {
  .ttlSVG--sky_front {
    width: calc(24 / 390 * 100vw);
  }
}

.USP {
  background-color: #eaeef4;
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .USP {
    padding: 0 10px 56px;
  }
}

.USP__captionArea {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .USP__captionArea {
    margin-top: 38px;
    width: 1200px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__captionArea {
    margin-top: calc(43 / 390 * 100vw);
    padding: 0 calc(16 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .USP__cvArea + .USP__captionArea {
    margin: 40px auto 0;
  }
}

@media only screen and (max-width: 768px) {
  .USP__cvArea + .USP__captionArea {
    margin: calc(44 / 390 * 100vw) auto 0;
  }
}

.USP .photo {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .USP .photo {
    max-width: 1170px;
  }
}

@media only screen and (max-width: 768px) {
  .USP .photo {
    width: calc(362 / 390 * 100vw);
  }
}

.USP:before {
  background-color: #2276a3;
  content: '';
  display: block;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

@media print, screen and (min-width: 769px) {
  .USP:before {
    height: calc(100% + 100px);
  }
}

@media only screen and (max-width: 768px) {
  .USP:before {
    height: calc(306vw / 390 * 100vw);
  }
}

.USP__cvArea {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media print, screen and (min-width: 769px) {
  .USP__cvArea {
    gap: 16px;
    margin-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__cvArea {
    gap: calc(16 / 390 * 100vw);
    margin-top: calc(40 / 390 * 100vw);
  }
}

.USP__cvBtn {
  color: #ffffff;
  display: grid;
  place-items: center;
}

@media print, screen and (min-width: 769px) {
  .USP__cvBtn {
    font-size: 12px;
    height: 60px;
    width: 155px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__cvBtn {
    font-size: calc(13 / 390 * 100vw);
    height: calc(60 / 390 * 100vw);
    width: calc(155 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .USP__cvBtn:hover {
    opacity: .8;
  }
}

@media (hover: hover) and (pointer: fine) {
  .USP__cvBtn:hover {
    opacity: .8;
  }
}

.USP__cvBtn--map {
  background: #7cb1ce;
}

.USP__cvBtn--entry {
  background: -webkit-gradient(linear, left top, right top, from(#669cba), to(#325669));
  background: linear-gradient(90deg, #669cba 0%, #325669 100%);
}

.USP__conceptArea {
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptArea {
    max-width: 1300px;
    padding: 40px 0;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptArea {
    max-width: calc(100% - 40px);
    padding: calc(40 / 390 * 100vw) 0;
  }
}

.USP__conceptArea:before {
  background-color: #EAEEF4;
  content: '';
  width: 100vw;
  height: 100%;
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

@media print, screen and (min-width: 769px) {
  .USP__conceptArea + .photo {
    margin-top: 32px;
    padding-top: 42px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptArea + .photo {
    margin-top: calc(48 / 390 * 100vw);
    padding-top: calc(40 / 390 * 100vw);
  }
}

.USP__top {
  position: relative;
}

.USP__top:after {
  background: -webkit-gradient(linear, left top, right top, from(#425289), to(#0a194a));
  background: linear-gradient(90deg, #425289 0%, #0a194a 100%);
  content: '';
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100vw;
}

@media print, screen and (min-width: 769px) {
  .USP__top:after {
    margin: 0 calc(50% - 50vw);
  }
}

@media only screen and (max-width: 768px) {
  .USP__top:after {
    left: 0;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__top {
    padding: 40px 0;
  }
}

@media only screen and (max-width: 768px) {
  .USP__top {
    padding: calc(10 / 390 * 100vw) 0 calc(40 / 390 * 100vw);
  }
}

.USP__top .photo {
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .USP__top .photo {
    margin: auto;
    width: 1236px;
  }
}

.USP__bottom {
  position: relative;
}

@media only screen and (max-width: 768px) {
  .USP__bottom {
    padding-bottom: calc(40 / 390 * 100vw);
  }
}

.USP__bottom:after {
  background-color: #2276a3;
  content: '';
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100vw;
}

@media print, screen and (min-width: 769px) {
  .USP__bottom:after {
    margin: 0 calc(50% - 50vw);
  }
}

@media only screen and (max-width: 768px) {
  .USP__bottom:after {
    left: 0;
  }
}

.USP__bottom > .photo {
  margin: auto;
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 769px) {
  .USP__bottom > .photo {
    max-width: 1360px;
    width: calc(1360 / 1440 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .USP__bottom > .photo {
    width: calc(330 / 390 * 100vw);
  }
}

.USP__priceArea {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media print, screen and (min-width: 769px) {
  .USP__priceArea {
    gap: 46px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__priceArea {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(32 / 390 * 100vw);
    margin-top: calc(40 / 390 * 100vw);
  }
}

.USP__priceLink {
  display: block;
  position: relative;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
  z-index: 1;
}

@media only screen and (max-width: 768px) {
  .USP__priceLink {
    margin: 0 auto;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__priceLink:nth-child(1) {
    width: 293px;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__priceLink:nth-child(2) {
    width: 290px;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__priceLink:nth-child(3) {
    width: 306px;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__priceLink:nth-child(4) {
    width: 315px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__priceLink {
    width: calc(320 / 390 * 100vw);
  }
}

.USP__priceLink .photo {
  width: 100%;
}

.USP__priceLink:hover {
  opacity: .8;
}

@media print, screen and (min-width: 769px) {
  .USP__priceLink:not(:last-child):after {
    background-color: #ffffff;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    right: -22px;
    top: 0;
    width: 1px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__priceLink:not(:last-child):after {
    background-color: rgba(153, 153, 153, 0.5);
    bottom: calc(-16 / 390 * 100vw);
    content: '';
    display: block;
    height: 1px;
    position: absolute;
    width: 100%;
  }
}

.USP__conceptHeading {
  font-family: "Cormorant Infant", serif;
  font-size: 16px;
  letter-spacing: .32em;
  text-align: center;
}

.USP__conceptCont {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptCont {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.USP__conceptSubLead, .USP__conceptLead {
  color: #fff;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  -webkit-font-feature-settings: 'palt' on;
          font-feature-settings: 'palt' on;
  letter-spacing: .05em;
}

@media only screen and (max-width: 768px) {
  .USP__conceptSubLead, .USP__conceptLead {
    text-align: center;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__conceptSubLead {
    font-size: 18px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptSubLead {
    font-size: calc(16 / 390 * 100vw);
  }
}

.USP__conceptBox {
  background: -webkit-gradient(linear, left top, right top, from(#eee3ed), to(#c0d3f1)), #ebe7de;
  background: linear-gradient(90deg, #eee3ed 0%, #c0d3f1 100%), #ebe7de;
  color: #947660;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  -webkit-font-feature-settings: 'palt' on;
          font-feature-settings: 'palt' on;
  letter-spacing: .05em;
  text-align: center;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptBox {
    margin-top: 8px;
    padding: 10px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptBox {
    margin-top: 20px;
    padding: 16px;
  }
}

.USP__conceptBox .inner {
  display: block;
  font-size: 20px;
  line-height: 1.25;
}

.USP__conceptBox .inner:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.25) * .5em);
  width: 0;
}

.USP__conceptBox .inner:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.25) * .5em);
  width: 0;
}

.USP__conceptLead {
  color: #555555;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLead {
    font-size: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptLead {
    font-size: calc(20 / 390 * 100vw);
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptBtn {
    margin-top: 12px;
  }
}

@media print, screen and (min-width: 769px) {
  .USP__conceptBtn + .USP__conceptBtn {
    margin-top: 11px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptBtn + .USP__conceptBtn {
    margin-top: calc(14 / 390 * 100vw);
  }
}

.USP__conceptLink {
  background-color: #a48b78;
  display: block;
  -webkit-filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
          filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  -webkit-transition: opacity .3s, -webkit-box-shadow .3s, -webkit-transform .3s;
  transition: opacity .3s, -webkit-box-shadow .3s, -webkit-transform .3s;
  transition: box-shadow .3s, opacity .3s, transform .3s;
  transition: box-shadow .3s, opacity .3s, transform .3s, -webkit-box-shadow .3s, -webkit-transform .3s;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLink {
    width: 326px;
    height: 55px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptLink {
    width: 100%;
    height: calc(55 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLink:hover {
    -webkit-box-shadow: 0 6px 14px rgba(162, 148, 134, 0.3);
            box-shadow: 0 6px 14px rgba(162, 148, 134, 0.3);
    opacity: .8;
    -webkit-transform: translate(0, 5%);
            transform: translate(0, 5%);
  }
  .USP__conceptLink:hover .arrowSVG {
    -webkit-transform: translate(30%, -50%);
            transform: translate(30%, -50%);
  }
}

@media (hover: hover) and (pointer: fine) {
  .USP__conceptLink:hover {
    -webkit-box-shadow: 0 6px 14px rgba(162, 148, 134, 0.3);
            box-shadow: 0 6px 14px rgba(162, 148, 134, 0.3);
    opacity: .8;
    -webkit-transform: translate(0, 5%);
            transform: translate(0, 5%);
  }
  .USP__conceptLink:hover .arrowSVG {
    -webkit-transform: translate(30%, -50%);
            transform: translate(30%, -50%);
  }
}

.USP__conceptLink:before {
  -webkit-animation: shiny 4.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
          animation: shiny 4.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(20%, rgba(255, 255, 255, 0.15)), color-stop(50%, rgba(255, 255, 255, 0.5)), color-stop(80%, rgba(255, 255, 255, 0.15)), to(rgba(255, 255, 255, 0)));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.15) 20%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0.15) 80%, rgba(255, 255, 255, 0) 100%);
  bottom: 0;
  content: '';
  display: block;
  left: -150%;
  margin: auto;
  padding-bottom: 60%;
  position: absolute;
  top: 0;
  -webkit-transform: skewX(-25deg);
          transform: skewX(-25deg);
  width: 60%;
  z-index: 2;
}

.USP__conceptLink .inner {
  line-height: 1;
  color: #ffffff;
  display: block;
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}

.USP__conceptLink .inner:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1) * .5em);
  width: 0;
}

.USP__conceptLink .inner:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLink .inner {
    font-size: 18px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptLink .inner {
    font-size: calc(20 / 390 * 100vw);
  }
}

.USP__conceptLink .inner .small {
  display: block;
  margin-bottom: 5px;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLink .inner .small {
    font-size: 12px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptLink .inner .small {
    font-size: calc(12 / 390 * 100vw);
  }
}

.USP__conceptLink .arrowSVG {
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  -webkit-transition: .3s;
  transition: .3s;
}

@media print, screen and (min-width: 769px) {
  .USP__conceptLink .arrowSVG {
    height: 8px;
    right: 24px;
    width: 10px;
  }
}

@media only screen and (max-width: 768px) {
  .USP__conceptLink .arrowSVG {
    height: calc(10 / 390 * 100vw);
    right: calc(24 / 390 * 100vw);
    width: calc(10 / 390 * 100vw);
  }
}

.USP__conceptLink--touroku {
  background: -webkit-gradient(linear, left top, right top, from(#eee3ed), to(#c0d3f1));
  background: linear-gradient(90deg, #eee3ed 0%, #c0d3f1 100%);
}

.USP__conceptLink--touroku .inner {
  color: #453e32;
}

.USP__conceptLink--touroku .arrowSVG path {
  stroke: #453e32;
}

.verticalCopy {
  display: block;
  left: 50%;
  letter-spacing: .44em;
  margin: 0 auto;
  z-index: 9;
  font-family: "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  -webkit-text-orientation: upright;
          text-orientation: upright;
  white-space: nowrap;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

@media print, screen and (min-width: 769px) {
  .verticalCopy {
    font-size: 32px;
  }
}

@media only screen and (max-width: 768px) {
  .verticalCopy {
    font-size: calc(24 / 390 * 100vw);
  }
}

.verticalCopy .char {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1), transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1), transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.verticalCopy .yakuhan {
  letter-spacing: -.2em;
}

.yokohamaFrontSect {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect {
    width: 100%;
  }
}

@media only screen and (min-width: 769px) and (min-width: 1120px) {
  .yokohamaFrontSect {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    width: 1120px;
  }
}

@media only screen and (min-width: 769px) and (max-width: 1120px) {
  .yokohamaFrontSect {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 0 0 0 20px;
  }
}

.yokohamaFrontSect__head {
  position: relative;
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__head {
    margin-right: calc((100vw - 1120px) / -2);
    width: calc(905 / 1440 * 100vw);
  }
}

@media only screen and (min-width: 1440px) {
  .yokohamaFrontSect__head {
    margin-right: -160px;
    width: 905px;
  }
}

@media only screen and (max-width: 1120px) {
  .yokohamaFrontSect__head {
    width: 600px;
  }
}

.yokohamaFrontSect__head .parallaxPhoto__image {
  width: 100%;
}

.yokohamaFrontSect__head .parallaxPhoto--sub {
  position: absolute;
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__head .parallaxPhoto--sub {
    bottom: 0;
    left: 0;
    -webkit-transform: translate(calc(-202 / 1440 * 100vw), calc(143 / 1440 * 100vw));
            transform: translate(calc(-202 / 1440 * 100vw), calc(143 / 1440 * 100vw));
    width: calc(258 / 1440 * 100vw);
  }
}

@media only screen and (min-width: 769px) and (min-width: 1440px) {
  .yokohamaFrontSect__head .parallaxPhoto--sub {
    -webkit-transform: translate(-202px, 143px);
            transform: translate(-202px, 143px);
    width: 258px;
  }
}

@media only screen and (min-width: 769px) and (max-width: 1120px) {
  .yokohamaFrontSect__head .parallaxPhoto--sub {
    -webkit-transform: translate(-50px, 50px);
            transform: translate(-50px, 50px);
    width: 160px;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__head .parallaxPhoto--sub {
    right: calc(24 / 390 * 100vw);
    top: calc(100% - (20 / 390 * 100vw));
    width: calc(120 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__cont {
    padding-top: 80px;
    width: 293px;
  }
}

@media only screen and (min-width: 769px) and (max-width: 1400px) {
  .yokohamaFrontSect__cont {
    padding-top: 0;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__cont {
    padding: calc(56 / 390 * 100vw) calc(60 / 390 * 100vw) 0;
  }
}

.yokohamaFrontSect__subheading {
  font-family: "YakuHanMP", "Zen Old Mincho", "Noto Serif", "Noto Serif", serif;
  line-height: 1.75;
}

.yokohamaFrontSect__subheading:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.75) * .5em);
  width: 0;
}

.yokohamaFrontSect__subheading:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.75) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__subheading {
    font-size: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__subheading {
    font-size: calc(16 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .heading + .yokohamaFrontSect__subheading {
    margin-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .heading + .yokohamaFrontSect__subheading {
    margin-top: calc(56 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__subheading + .yokohamaFrontSect__txt {
    margin-top: 35px;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__subheading + .yokohamaFrontSect__txt {
    margin-top: calc(48 / 390 * 100vw);
  }
}

.yokohamaFrontSect__txt {
  color: #555555;
  letter-spacing: .1em;
  line-height: 2;
}

.yokohamaFrontSect__txt:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.yokohamaFrontSect__txt:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__txt {
    font-size: 14px;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__txt {
    font-size: calc(13 / 390 * 100vw);
  }
}

@media print, screen and (min-width: 769px) {
  .yokohamaFrontSect__txt + .caption {
    margin-top: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .yokohamaFrontSect__txt + .caption {
    margin-top: calc(40 / 390 * 100vw);
  }
}

#mainContent {
  position: relative;
}

.top-information {
  position: relative;
  z-index: 2;
}

@media only screen and (max-width: 768px) {
  .top-information {
    background-color: #2276a3;
  }
}

.top-information:before {
  background-color: #ffffff;
  border-radius: 40px 40px 0 0;
  -webkit-box-shadow: 0 12px 24px rgba(162, 148, 134, 0.3);
          box-shadow: 0 12px 24px rgba(162, 148, 134, 0.3);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.top-concept {
  position: relative;
  z-index: 5;
}

.top-stationFront {
  position: relative;
  z-index: 4;
}

.top-yokohamaFront {
  position: relative;
  z-index: 3;
}

.top-position {
  position: relative;
  z-index: 3;
}

.top-plan {
  position: relative;
  z-index: 2;
}

.top-guide {
  position: relative;
  z-index: 1;
}

.top-bnr {
  background-color: #f2efed;
}

@media print, screen and (min-width: 769px) {
  .top-bnr {
    padding: 80px 0;
  }
}

@media only screen and (max-width: 768px) {
  .top-bnr {
    padding: 60px 0;
  }
}

@media only screen and (max-width: 768px) {
  .top-bnr .generalBnr {
    margin: 0 auto;
    width: calc(326 / 390 * 100vw);
  }
}
