:root {
  --viewport-width: min(100vw, 1600px);
  --b: calc(var(--viewport-width) / 160);
}

@media screen and (max-width: 550px) {
  :root {
    --viewport-width: max(100vw, 550px);
    --b: calc(var(--viewport-width) / 55);
  }
}
* {
  color: #252526;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
}

html.is-fixed,
body.is-fixed {
  overflow: hidden;
}

body {
  background: #D9D9D9;
}

main {
  overflow: hidden;
}

h1 > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

h2 {
  font-size: max(3.5rem, 20px);
  line-height: 2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 550px) {
  h2 {
    font-size: 2.1rem;
  }
}
h2 > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

h3 > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

h4 > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

p {
  font-size: max(1.6rem, 14px);
  letter-spacing: 0.1em;
  line-height: 3;
}
@media screen and (max-width: 550px) {
  p {
    font-size: 1.4rem;
  }
}
p > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
@media screen and (max-width: 550px) {
  p > span {
    display: inline;
  }
}

section {
  position: relative;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.fixed-banner {
  position: fixed;
  right: 5%;
  bottom: 5%;
  z-index: 10000;
  background: #A69570;
  border-radius: 50%;
}
@media screen and (min-width: 1600px) {
  .fixed-banner {
    right: calc(50% - 750px);
  }
}
.fixed-banner__inner {
  position: relative;
}
.fixed-banner__inner .mask {
  filter: contrast(170%) brightness(1000%) invert(70%);
  border-radius: 50%;
}
.fixed-banner__inner .maskInner a {
  display: block;
  border-radius: 50%;
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
.fixed-banner__inner .maskInner a img {
  width: max(26rem, 200px);
  aspect-ratio: 1/1;
}
@media screen and (max-width: 550px) {
  .fixed-banner__inner .maskInner a img {
    width: 175px;
  }
}
.fixed-banner__inner .maskInner a:hover {
  opacity: 0.8;
  box-shadow: 0 0 2rem rgba(255, 255, 255, 0.3);
}
.fixed-banner__inner .maskInner .closeBtn {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: max(4rem, 35px);
  aspect-ratio: 1/1;
  cursor: pointer;
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
  background: #727171;
  border-radius: 50%;
  z-index: 1000;
}
@media screen and (max-width: 550px) {
  .fixed-banner__inner .maskInner .closeBtn {
    width: 25px;
  }
}
.fixed-banner__inner .maskInner .closeBtn:hover {
  opacity: 0.7;
}
.fixed-banner__inner .maskInner .closeBtn span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: 2px;
  background: #fff;
}
.fixed-banner__inner .maskInner .closeBtn span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
.fixed-banner__inner .maskInner .closeBtn span:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}

svg {
  opacity: 0;
}
svg.concept-title {
  width: max(13rem, 100px);
}
@media screen and (max-width: 550px) {
  svg.concept-title {
    width: 105px;
  }
}
svg.plan-title {
  width: max(26.3rem, 150px);
}
@media screen and (max-width: 550px) {
  svg.plan-title {
    width: 170px;
  }
}
svg.advantage-title {
  width: max(18rem, 120px);
}
@media screen and (max-width: 550px) {
  svg.advantage-title {
    width: 140px;
  }
}
svg.movie-title {
  width: max(23.5rem, 150px);
}
@media screen and (max-width: 550px) {
  svg.movie-title {
    width: 170px;
  }
}
svg.space-title {
  width: max(24.1rem, 150px);
}
@media screen and (max-width: 550px) {
  svg.space-title {
    width: 170px;
  }
}
svg.title1-title {
  width: max(26.9rem, 200px);
}
@media screen and (max-width: 550px) {
  svg.title1-title {
    width: 170px;
  }
}
svg.title2-title {
  width: max(16.4rem, 150px);
}
@media screen and (max-width: 550px) {
  svg.title2-title {
    width: 170px;
  }
}
svg.title3-title {
  width: max(12.7rem, 120px);
}
@media screen and (max-width: 550px) {
  svg.title3-title {
    width: 170px;
  }
}
svg.comfort-title {
  width: max(35.5rem, 230px);
}
@media screen and (max-width: 550px) {
  svg.comfort-title {
    width: 275px;
  }
}
svg.active {
  opacity: 1;
}
svg .path {
  fill: none;
  stroke: #fff;
  stroke-width: 10;
  stroke-miterlimit: 10;
}

.deco-light {
  position: absolute;
  aspect-ratio: 1/1;
  background: radial-gradient(circle at 50% 50%, #85988f 10%, #85988f 15%, rgba(133, 152, 143, 0.6) 40%, rgba(133, 152, 143, 0.05) 75%, transparent 100%);
  pointer-events: none;
  filter: blur(20px);
  animation: lightPulse 6s ease infinite;
  z-index: 1;
}

@keyframes lightPulse {
  0% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    opacity: 0.4;
  }
}
.js-parallax {
  overflow: hidden;
}
.js-parallax img, .js-parallax video {
  transform: translateZ(0);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  perspective: 1000;
}

.mask {
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url(../images/mask.svg);
  background-size: 10%;
  background-position: center;
  background-repeat: repeat;
  filter: contrast(170%) brightness(1000%) invert(100%);
  mix-blend-mode: soft-light;
}

.maskInner {
  position: relative;
  width: auto;
  height: auto;
  z-index: 100;
}

.more {
  width: 100%;
  text-align: center;
  margin: 4rem 0;
}
@media screen and (max-width: 550px) {
  .more {
    margin: 2rem 0;
  }
}
.more span {
  position: relative;
  color: #A69570;
  font-size: 2.1rem;
  letter-spacing: 0.1em;
  padding-bottom: 3rem;
}
@media screen and (max-width: 550px) {
  .more span {
    font-size: 1.4rem;
    padding-bottom: 2.5rem;
  }
}
.more span::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 3.5rem;
  aspect-ratio: 1/1;
  border-bottom: 1px solid #A69570;
  border-right: 1px solid #A69570;
  transform: translateX(-56%) rotate(45deg);
}
@media screen and (max-width: 550px) {
  .more span::after {
    width: 3rem;
  }
}

.titleAnim {
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transition-duration: 2s;
}
.titleAnim.loaded {
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

.box-bottom {
  position: relative;
  margin-top: -23rem;
  z-index: -1;
}
@media screen and (max-width: 550px) {
  .box-bottom {
    margin-top: -5rem;
  }
}
.box-bottom__text {
  position: absolute;
  bottom: 28rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  z-index: 10;
}
@media screen and (max-width: 550px) {
  .box-bottom__text {
    bottom: 35%;
  }
}
.box-bottom__text h4 {
  font-size: max(4rem, 28px);
  letter-spacing: 0.1em;
  text-shadow: 0 0 16px #000;
}
@media screen and (max-width: 550px) {
  .box-bottom__text h4 {
    font-size: 2.7rem;
  }
}
.box-bottom__text h4 span {
  display: block;
  margin-bottom: 4rem;
  font-size: max(2.4rem, 16px);
  letter-spacing: 0.1em;
  text-shadow: none;
}
@media screen and (max-width: 550px) {
  .box-bottom__text h4 span {
    font-size: 1.6rem;
    margin-bottom: 3rem;
  }
}
.box-bottom__text p {
  font-size: max(1.4rem, 12px);
}
@media screen and (max-width: 550px) {
  .box-bottom__text p {
    font-size: 1.4rem;
  }
}
.box-bottom.advance__box--bottom .box-bottom__text {
  bottom: 28rem;
}
.box-bottom.resistance__box--bottom .box-bottom__text, .box-bottom.air__box--bottom .box-bottom__text {
  bottom: 22rem;
}
@media screen and (max-width: 768px) {
  .box-bottom.resistance__box--bottom .box-bottom__text, .box-bottom.air__box--bottom .box-bottom__text {
    bottom: calc(50% - 10rem);
    transform: translate(-50%, 50%);
  }
}
@media screen and (max-width: 550px) {
  .box-bottom.resistance__box--bottom .box-bottom__text, .box-bottom.air__box--bottom .box-bottom__text {
    bottom: calc(50% - 2.5rem);
  }
}
.box-bottom.resistance__box--bottom .box-bottom__text h4, .box-bottom.air__box--bottom .box-bottom__text h4 {
  font-size: max(3.3rem, 28px);
  margin-bottom: 5rem;
  line-height: 1.5;
  text-shadow: 0 0 16px #000;
}
@media screen and (max-width: 550px) {
  .box-bottom.resistance__box--bottom .box-bottom__text h4, .box-bottom.air__box--bottom .box-bottom__text h4 {
    font-size: 2.5rem;
    margin-bottom: 3rem;
    text-align: left;
  }
}
.box-bottom.resistance__box--bottom .box-bottom__text h4 span, .box-bottom.air__box--bottom .box-bottom__text h4 span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  margin: 0;
}
.box-bottom.resistance__box--bottom .box-bottom__text p, .box-bottom.air__box--bottom .box-bottom__text p {
  text-shadow: 0 0 16px #000;
}
@media screen and (max-width: 550px) {
  .box-bottom.resistance__box--bottom .box-bottom__text p, .box-bottom.air__box--bottom .box-bottom__text p {
    text-align: left;
  }
}
@media screen and (max-width: 550px) {
  .box-bottom.resistance__box--bottom {
    margin-top: -10rem;
  }
}
.box-bottom.air__box--bottom .js-parallax {
  overflow: visible;
}

.header {
  position: fixed;
  width: min(100%, 1600px);
  z-index: 99999;
}
.header__nav {
  position: absolute;
  top: 3.5rem;
  right: 2.5%;
}
@media screen and (max-width: 550px) {
  .header__nav {
    top: 2rem;
    right: 5%;
  }
}
.header__nav--list {
  position: fixed;
  top: 0;
  right: 50%;
  transform: translate(80rem, -100%);
  width: max(40rem, 300px);
  height: 100%;
  visibility: hidden;
  opacity: 0;
  background: #5E6964;
  transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
@media screen and (max-width: 550px) {
  .header__nav--list {
    width: 100%;
    height: 100vh;
    right: 0;
    transform: translate(0, -100%);
  }
}
.header__nav--list .maskInner {
  display: grid;
  place-items: center;
  height: 100%;
}
.header__nav--list ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  height: 50%;
  width: 80%;
  gap: 2rem;
}
@media screen and (max-width: 550px) {
  .header__nav--list ul {
    height: 70%;
  }
}
.header__nav--list ul li {
  opacity: 0;
  width: 100%;
  color: #fff;
}
.header__nav--list ul li a {
  font-size: max(2rem, 15px);
  letter-spacing: 0.1em;
  text-align: left;
}
.header__nav--list ul li a span {
  font-size: max(1.4rem, 12px);
  display: block;
  line-height: 2;
  color: #fff;
}
.header__nav--list .btnBox {
  width: 100%;
}
.header__nav--list .btnBox.first {
  margin-top: 5rem;
}
.header__nav--list .btnBox span {
  font-size: max(1.6rem, 14px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 550px) {
  .header__nav--list .btnBox span {
    font-size: 1.4rem;
  }
}
.header__nav--list .btnBox a {
  position: relative;
  display: block;
}
.header__nav--list .btnBox a:hover::after {
  transform: translate(1.5rem, -50%) rotate(45deg);
}
.header__nav--list .btnBox a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2.5rem;
  width: 2.5rem;
  aspect-ratio: 1/1;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
@media screen and (max-width: 550px) {
  .header__nav--list .btnBox a::after {
    right: 4rem;
  }
}
.header__nav--list .btnBox a p {
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 1.5rem;
  font-size: max(1.9rem, 16px);
  transform: translateY(-50%);
  color: #fff;
}
@media screen and (max-width: 550px) {
  .header__nav--list .btnBox a p {
    left: 40px;
    font-size: 1.4rem;
  }
}
.header__nav--list .btnBox a span {
  position: absolute;
  top: 50%;
  right: 5rem;
  font-size: max(1.4rem, 10px);
  transform: translateY(-50%);
}
@media screen and (max-width: 550px) {
  .header__nav--list .btnBox a span {
    right: 6.5rem;
    font-size: 1rem;
  }
}
.header__nav .toggle {
  cursor: pointer;
  position: relative;
  width: 50px;
  aspect-ratio: 1/1;
}
.header__nav .toggle span {
  transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.header__nav .toggle span:nth-of-type(1), .header__nav .toggle span:nth-of-type(2) {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
}
.header__nav .toggle span:nth-of-type(1) {
  top: 15%;
}
.header__nav .toggle span:nth-of-type(2) {
  top: 40%;
}
.header__nav .toggle span:nth-of-type(3) {
  position: absolute;
  bottom: 7.5%;
  left: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0;
}
.header__nav .toggle span.open:nth-of-type(1) {
  top: 20%;
  left: 0;
  transform: rotate(45deg);
}
.header__nav .toggle span.open:nth-of-type(2) {
  top: 20%;
  left: 0;
  transform: rotate(-45deg);
}

.company-logo {
  position: absolute;
  top: 5rem;
  left: 2.5%;
  z-index: 1000;
}
@media screen and (max-width: 768px) {
  .company-logo {
    top: 7rem;
  }
}
@media screen and (max-width: 550px) {
  .company-logo {
    top: 3.5rem;
    left: 5%;
  }
}
.company-logo img {
  width: 200px;
  vertical-align: baseline;
}
@media screen and (max-width: 768px) {
  .company-logo img {
    width: 150px;
    padding: 0.1rem;
  }
}
@media screen and (max-width: 550px) {
  .company-logo img {
    width: auto;
  }
}

.footer {
  position: relative;
  background: url(../images/deco.webp) top center no-repeat;
  background-size: 100%;
  overflow: hidden;
}
@media screen and (max-width: 550px) {
  .footer {
    background-image: none;
  }
}
.footer .bg {
  position: absolute;
  z-index: -1;
  mix-blend-mode: soft-light;
  width: 100%;
  height: 100%;
}
.footer .bg img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.footer .deco-light.deco-light1 {
  width: 40%;
  left: -18%;
  top: -28%;
}
@media screen and (max-width: 550px) {
  .footer .deco-light.deco-light1 {
    width: 100%;
    left: -45%;
    top: 5%;
  }
}
.footer .deco-light.deco-light2 {
  width: 40%;
  right: -18%;
  bottom: -28%;
}
@media screen and (max-width: 550px) {
  .footer .deco-light.deco-light2 {
    width: 100%;
    right: -45%;
    bottom: 5%;
  }
}
.footer .maskInner {
  padding-top: 18rem;
}
@media screen and (max-width: 550px) {
  .footer .maskInner {
    padding-top: 8rem;
  }
}
.footer__top {
  font-weight: 500;
}
@media screen and (max-width: 550px) {
  .footer__top {
    padding: 0 5%;
  }
}
.footer__top h1 {
  text-align: center;
}
.footer__top--btn {
  display: flex;
  justify-content: center;
  margin-top: 80px;
  gap: 2rem;
}
@media screen and (max-width: 550px) {
  .footer__top--btn {
    margin-top: 5rem;
    flex-direction: column;
    gap: 3rem;
  }
}
.footer__top--btn .btnBox {
  width: 44rem;
}
@media screen and (max-width: 1000px) {
  .footer__top--btn .btnBox {
    width: 47%;
  }
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox {
    width: 100%;
  }
}
.footer__top--btn .btnBox span {
  font-size: max(1.6rem, 14px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox span {
    font-size: 1.4rem;
  }
}
.footer__top--btn .btnBox a {
  position: relative;
  display: block;
  margin-top: 2.5rem;
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox a {
    margin-top: 1rem;
  }
}
.footer__top--btn .btnBox a:hover::after {
  transform: translate(1.5rem, -50%) rotate(45deg);
}
.footer__top--btn .btnBox a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 5.5rem;
  width: 2.5rem;
  aspect-ratio: 1/1;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox a::after {
    right: 4rem;
  }
}
.footer__top--btn .btnBox a p {
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 4.5rem;
  font-size: max(1.9rem, 16px);
  transform: translateY(-50%);
  color: #fff;
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox a p {
    left: 40px;
    font-size: 1.4rem;
  }
}
.footer__top--btn .btnBox a span {
  position: absolute;
  top: 50%;
  right: 9rem;
  font-size: max(1.4rem, 10px);
  transform: translateY(-50%);
  color: #fff;
}
@media screen and (max-width: 550px) {
  .footer__top--btn .btnBox a span {
    right: 6.5rem;
    font-size: 1rem;
  }
}
.footer__top__banner {
  width: 90rem;
  margin: max(5.8rem, 50px) auto 0;
}
@media screen and (max-width: 1000px) {
  .footer__top__banner {
    width: calc(94% + 2rem);
  }
}
.footer__top--nav {
  margin-top: 14.5rem;
  padding-bottom: 10rem;
}
@media screen and (max-width: 550px) {
  .footer__top--nav {
    margin-top: 9rem;
    padding-bottom: 8.5rem;
  }
}
.footer__top--nav ul {
  display: flex;
  justify-content: center;
  font-size: max(1.9rem, 14px);
  gap: 7.5rem;
}
@media screen and (max-width: 550px) {
  .footer__top--nav ul {
    flex-direction: column;
    align-items: center;
    gap: 4rem;
    font-size: 1.9rem;
  }
}
.footer__top--nav ul li a {
  letter-spacing: 0.05em;
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
.footer__top--nav ul li a:hover {
  opacity: 0.6;
}
.footer__top--nav ul li a span {
  display: block;
  font-size: max(1.4rem, 10px);
  line-height: 3;
  text-align: center;
}
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.8rem 0;
  font-size: max(1.2rem, 10px);
  font-weight: 500;
  letter-spacing: 0.2em;
  background: #5E6964;
}
@media screen and (max-width: 768px) {
  .footer__bottom {
    flex-direction: column;
    padding: 3.5rem 5% 1rem;
  }
}
@media screen and (max-width: 550px) {
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    font-size: 1.2rem;
  }
}
.footer__bottom ul {
  display: flex;
  gap: 5rem;
  margin-left: 5rem;
}
@media screen and (max-width: 768px) {
  .footer__bottom ul {
    margin-left: 0;
    margin-bottom: 1rem;
  }
}
@media screen and (max-width: 550px) {
  .footer__bottom ul {
    flex-direction: column;
    margin-left: 0;
    margin-bottom: 5rem;
    gap: 2rem;
  }
}
.footer__bottom ul li {
  color: #fff;
}
.footer__bottom p {
  color: #fff;
  margin-right: 5rem;
  font-size: max(1.2rem, 8px);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .footer__bottom p {
    width: 100%;
    text-align: center;
    margin-right: 0;
  }
}
@media screen and (max-width: 550px) {
  .footer__bottom p {
    font-size: 0.8rem;
  }
}

.parts-top {
  position: relative;
  height: 56rem;
  z-index: 100;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .parts-top {
    height: 77rem;
  }
}
@media screen and (max-width: 550px) {
  .parts-top {
    height: auto;
  }
}
.parts-top video {
  aspect-ratio: 2.85/1;
}
@media screen and (max-width: 768px) {
  .parts-top video {
    height: 100%;
    object-fit: cover;
  }
}
@media screen and (max-width: 550px) {
  .parts-top video {
    aspect-ratio: 1/1;
  }
}
.parts-top img {
  object-fit: cover;
  object-position: left;
  height: 100%;
}
.parts-top__title {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.parts-top__title h1 {
  font-size: max(5.7rem, 34px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (max-width: 550px) {
  .parts-top__title h1 {
    font-size: 3rem;
  }
}
.parts-top__title h1 > span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  margin: 0;
}
.parts-top__title > span {
  display: block;
  font-size: max(2.3rem, 20px);
  line-height: 2;
  letter-spacing: 0.1em;
  margin-top: 3.5rem;
}
@media screen and (max-width: 550px) {
  .parts-top__title > span {
    font-size: 1.8rem;
    margin-top: 2rem;
  }
}
.parts-top__title p {
  margin-top: max(3rem, 10px);
}
@media screen and (max-width: 768px) {
  .parts-top__title p br {
    display: none;
  }
}
@media screen and (max-width: 550px) {
  .parts-top__title p {
    margin-top: max(1rem, 10px);
  }
}
.parts-top .strong {
  position: absolute;
  bottom: 0;
  left: 0;
}
@media screen and (max-width: 550px) {
  .parts-top .strong {
    width: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
  .parts-top .strong img {
    width: 100%;
  }
}

#front .top {
  position: relative;
  height: 90rem;
  overflow: hidden;
}
@media screen and (max-width: 550px) {
  #front .top {
    height: 540px;
  }
}
#front .top .deco-light {
  width: 40%;
  top: -30%;
  left: -17%;
}
@media screen and (max-width: 550px) {
  #front .top .deco-light {
    width: 70%;
    top: -15%;
    left: -30%;
  }
}
@media screen and (max-width: 550px) {
  #front .top .maskInner {
    height: 100%;
  }
}
#front .top__bg {
  position: relative;
  width: 90%;
  margin-left: auto;
  z-index: 100;
}
@media screen and (max-width: 550px) {
  #front .top__bg {
    overflow: hidden;
  }
}
#front .top__bg video {
  aspect-ratio: 16/9;
}
@media screen and (max-width: 550px) {
  #front .top__bg video {
    aspect-ratio: 1/1;
  }
}
#front .top__title {
  position: absolute;
  bottom: 7%;
  margin-left: 7%;
  z-index: 1000;
  width: 40%;
  min-width: 400px;
}
@media screen and (max-width: 550px) {
  #front .top__title {
    width: 80%;
    min-width: auto;
  }
}
#front .top__scroll {
  position: absolute;
  width: auto;
  width: max(1.6rem, 10px);
  left: 2%;
  bottom: -1%;
  z-index: 100;
}
@media screen and (max-width: 550px) {
  #front .top__scroll {
    left: 90%;
    bottom: 0;
  }
}
#front .concept {
  width: 100%;
  background: url(../images/deco.webp) bottom center no-repeat;
  background-size: 100%;
  position: relative;
}
#front .concept .deco-light {
  width: 70%;
  bottom: -70%;
  right: -33%;
}
@media screen and (max-width: 550px) {
  #front .concept .deco-light {
    bottom: -15%;
    right: -30%;
  }
}
#front .concept__bg {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 45%;
}
@media screen and (max-width: 768px) {
  #front .concept__bg {
    width: 90%;
  }
}
#front .concept__box {
  display: flex;
  justify-content: center;
  padding: 13rem 0 22rem;
  max-width: 1100px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  #front .concept__box {
    justify-content: space-between;
    flex-direction: column;
    gap: 4rem;
  }
}
@media screen and (max-width: 550px) {
  #front .concept__box {
    padding: 5rem 0 10rem;
  }
}
@media screen and (max-width: 768px) {
  #front .concept__box--text p {
    font-size: 14px;
    text-align: left;
  }
}
#front .concept__box--flex {
  display: flex;
  gap: 3rem;
}
@media screen and (max-width: 768px) {
  #front .concept__box--flex {
    flex-direction: column;
  }
}
#front .concept__box--image {
  margin: auto;
}
#front .advantage {
  position: relative;
  background: url(../images/advantage-bg.webp) top left no-repeat #5E6964;
  background-size: contain;
  z-index: 100;
}
#front .advantage h2, #front .advantage h3, #front .advantage p {
  color: #fff;
}
@media screen and (max-width: 550px) {
  #front .advantage {
    background-image: url(../images/min-advantage-bg.webp);
  }
}
#front .advantage__box {
  padding-top: 13rem;
}
#front .advantage__box p {
  margin-top: 2rem;
}
#front .advantage__box--flex {
  display: flex;
  gap: 4rem;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box--flex {
    flex-direction: column;
  }
}
#front .advantage__box--text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
#front .advantage__box--text h2 {
  margin-top: 1.3rem;
  font-size: max(3.3rem, 20px);
}
#front .advantage__box--text h2 span {
  display: block;
}
#front .advantage__box--text h3 {
  margin-top: 2.8rem;
  font-size: max(2.5rem, 18px);
  line-height: 2;
}
#front .advantage__box a .detail__text {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #252526;
  padding: 4.1rem 4.6rem 4.2rem 4rem;
  margin-top: 3.4rem;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box a .detail__text {
    padding: 7rem;
    margin: 5rem 0 0 auto;
    max-width: 300px;
  }
}
@media screen and (max-width: 550px) {
  #front .advantage__box a .detail__text {
    padding: 3rem;
    margin-top: 2rem;
    max-width: none;
  }
}
#front .advantage__box a .detail__text .txtBox h3 {
  font-size: max(2.3rem, 20px);
  letter-spacing: 0.1em;
  margin: 0;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box a .detail__text .txtBox h3 {
    font-size: max(1.8rem, 16px);
  }
}
#front .advantage__box a .detail__text .txtBtn span {
  position: relative;
  font-size: max(2.1rem, 10px);
  padding-right: 5rem;
  letter-spacing: 0.1em;
  color: #A69570;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box a .detail__text .txtBtn span {
    font-size: max(1.4rem, 10px);
    margin-top: 0rem;
    padding-right: 3rem;
  }
}
#front .advantage__box a .detail__text .txtBtn span::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 3.6rem;
  aspect-ratio: 1/1;
  border-top: 1px solid #A69570;
  border-right: 1px solid #A69570;
  transform: translateY(-50%) rotate(45deg);
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
@media screen and (max-width: 550px) {
  #front .advantage__box a .detail__text .txtBtn span::after {
    width: 2.5rem;
    right: 1rem;
  }
}
#front .advantage__box a .detail__text:hover .txtBtn span::after {
  transform: translate(1.5rem, -50%) rotate(45deg);
}
@media screen and (max-width: 1000px) {
  #front .advantage__box a.pc {
    display: none;
  }
}
@media screen and (max-width: 1000px) {
  #front .advantage__box a.sp {
    display: block;
  }
}
#front .advantage__box--img {
  width: 49.4%;
  height: 100%;
  position: relative;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box--img {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
  }
}
#front .advantage__box--img .js-room-slider {
  position: relative;
  overflow: hidden;
}
#front .advantage__box--img .js-room-slider .swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
}
#front .advantage__box--img .swiper-pagination {
  text-align: right;
  bottom: -22px;
}
#front .advantage__box--img .swiper-pagination-bullet {
  width: max(0.8rem, 5px);
  height: max(0.8rem, 5px);
  margin: 0 max(0.4rem, 4px) !important;
  background: rgba(255, 255, 255, 0.4);
  opacity: 1;
}
#front .advantage__box--img .swiper-pagination-bullet-active {
  background: #fff;
}
#front .advantage__box2 .advantage__box--flex {
  flex-direction: row-reverse;
}
@media screen and (max-width: 1000px) {
  #front .advantage__box2 .advantage__box--flex {
    flex-direction: column;
  }
}
#front .container {
  position: relative;
}
#front .container__bg {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: -1;
}
#front .container__bg.bg1 {
  mix-blend-mode: soft-light;
}
#front .container__flex {
  display: flex;
  gap: 1.7rem;
  margin-top: max(9rem, 50px);
}
@media screen and (max-width: 1000px) {
  #front .container__flex {
    flex-direction: column;
    max-width: 800px;
    margin: max(1.5rem, 15px) auto;
  }
}
#front .container__box--img {
  background-color: #fff;
  padding: 6rem 4rem;
}
@media screen and (max-width: 768px) {
  #front .container__box--img {
    padding: max(2rem, 50px) max(1rem, 10px);
  }
}
#front .container__box--text {
  background-color: #D9D9D9;
  padding: max(5rem, 20px);
}
@media screen and (max-width: 768px) {
  #front .container__box--text {
    padding: max(2rem, 20px);
  }
}
#front .container__box--text h3, #front .container__box--text p {
  color: #5E6964;
}
#front .container__box--text h3 {
  font-size: max(2.3rem, 20px);
  margin-bottom: max(3rem, 20px);
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  #front .container__box--text h3 {
    margin-bottom: max(1.4rem, 14px);
  }
}
#front .container__box--text p {
  font-size: max(1.4rem, 12px);
}
#front .container2 .container__box--img {
  padding: 0;
}
#front .container__bottomtext p {
  margin-top: max(2rem, 12px);
}
@media screen and (max-width: 550px) {
  #front .container__bottomtext p {
    font-size: max(1.2rem, 10px);
  }
}
#front .container__bottomtext2 {
  padding-bottom: max(20rem, 100px);
}
#front .plan {
  padding-bottom: 2rem;
}
#front .plan .deco-light {
  width: 35%;
  left: -15%;
  top: -18%;
}
@media screen and (max-width: 550px) {
  #front .plan .deco-light {
    width: 100%;
    left: -45%;
    top: -30%;
  }
}
#front .plan__box {
  width: max(70%, 400px);
  margin: auto;
  padding-top: 13rem;
}
@media screen and (max-width: 550px) {
  #front .plan__box {
    width: 90%;
    padding-top: 8rem;
  }
}
#front .plan__box--model {
  margin-top: 2rem;
}
@media screen and (max-width: 550px) {
  #front .plan__box--model {
    margin-top: 1rem;
  }
}
#front .plan__box--model a {
  display: flex;
}
@media screen and (max-width: 1000px) {
  #front .plan__box--model a {
    flex-direction: column;
  }
}
#front .plan__box--model a .model__image {
  flex: 1;
  overflow: hidden;
}
#front .plan__box--model a .model__image img {
  width: 100%;
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
#front .plan__box--model a .model__text {
  flex: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5rem;
  background: #252526;
}
@media screen and (max-width: 1000px) {
  #front .plan__box--model a .model__text {
    flex-direction: column;
    padding: 7rem 5rem;
  }
}
@media screen and (max-width: 550px) {
  #front .plan__box--model a .model__text {
    padding: 3rem;
  }
}
#front .plan__box--model a .model__text p {
  width: 60%;
  cursor: pointer;
  font-size: max(1.7rem, 14px);
}
@media screen and (max-width: 1000px) {
  #front .plan__box--model a .model__text p {
    width: 100%;
    text-align: left;
  }
}
#front .plan__box--model a .model__text--btn {
  text-align: right;
}
@media screen and (max-width: 1000px) {
  #front .plan__box--model a .model__text--btn {
    width: 100%;
    margin-top: 5rem;
  }
}
@media screen and (max-width: 550px) {
  #front .plan__box--model a .model__text--btn {
    margin-top: 3rem;
  }
}
#front .plan__box--model a .model__text--btn span {
  position: relative;
  color: #A69570;
  font-size: max(2.1rem, 10px);
  letter-spacing: 0.1em;
  padding-right: 5rem;
}
@media screen and (max-width: 550px) {
  #front .plan__box--model a .model__text--btn span {
    font-size: 1rem;
    padding-right: 3rem;
  }
}
#front .plan__box--model a .model__text--btn span::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 3.6rem;
  aspect-ratio: 1/1;
  border-top: 1px solid #A69570;
  border-right: 1px solid #A69570;
  transform: translateY(-50%) rotate(45deg);
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}
@media screen and (max-width: 550px) {
  #front .plan__box--model a .model__text--btn span::after {
    width: 2.5rem;
    right: 1rem;
  }
}
#front .plan__box--model a:hover .model__image img {
  transform: scale(1.05);
}
#front .plan__box--model a:hover span::after {
  transform: translate(1.5rem, -50%) rotate(45deg);
}
#front .plan__box--movie {
  margin-top: 10rem;
}
@media screen and (max-width: 550px) {
  #front .plan__box--movie {
    margin-top: 8rem;
  }
}
#front .plan__box--movie iframe {
  margin-top: 1rem;
  width: 100%;
  aspect-ratio: 16/9;
}
#front .gallery {
  background-color: #fff;
  padding: max(7rem, 50px) 0;
}
@media screen and (max-width: 550px) {
  #front .gallery {
    padding: max(3rem, 40px) 0;
  }
}
#front .gallery__topcon {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 550px) {
  #front .gallery__topcon {
    flex-direction: column;
  }
}
#front .gallery__textcon {
  display: flex;
  align-items: center;
  gap: max(3.1rem, 20px);
}
@media screen and (max-width: 550px) {
  #front .gallery__textcon {
    flex-direction: column;
    align-items: flex-start;
  }
}
#front .gallery .slider-control {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}
#front .gallery .slider-control.pc {
  display: flex;
}
@media screen and (max-width: 550px) {
  #front .gallery .slider-control.pc {
    display: none;
  }
}
#front .gallery .slider-control.sp {
  display: none;
}
@media screen and (max-width: 550px) {
  #front .gallery .slider-control.sp {
    display: flex;
    justify-content: center;
    margin-top: max(3.6rem, 16px);
  }
}
#front .gallery .swiper-button-prev,
#front .gallery .swiper-button-next {
  position: static;
  margin: 0;
  background-color: #57625D;
  width: max(6.4rem, 40px);
  height: max(6.4rem, 40px);
  border-radius: 50%;
}
@media screen and (max-width: 550px) {
  #front .gallery .swiper-button-prev,
#front .gallery .swiper-button-next {
    width: max(4.4rem, 40px);
    height: max(4.4rem, 40px);
  }
}
#front .gallery .swiper-button-prev:after,
#front .gallery .swiper-button-next:after {
  font-size: max(2.8rem, 18px);
  color: #FFFFFF;
}
@media screen and (max-width: 550px) {
  #front .gallery .swiper-button-prev:after,
#front .gallery .swiper-button-next:after {
    font-size: max(1.8rem, 18px);
  }
}
#front .gallery .swiper-button-prev:after {
  padding-right: 6%;
}
#front .gallery .swiper-button-next:after {
  padding-left: 6%;
}
#front .gallery .swiper-container {
  width: 100%;
  overflow: hidden;
  margin-top: max(2.6rem, 20px);
}
#front .gallery .swiper-container .swiper {
  overflow: visible;
}
#front .gallery .swiper-container .swiper .swiper-wrapper {
  align-items: center;
}
#front .gallery .swiper-container .swiper .swiper-wrapper .swiper-slide {
  width: 26vw;
}
@media screen and (max-width: 768px) {
  #front .gallery .swiper-container .swiper .swiper-wrapper .swiper-slide {
    width: 50vw;
  }
}
@media screen and (max-width: 550px) {
  #front .gallery .swiper-container .swiper .swiper-wrapper .swiper-slide {
    width: 80vw;
  }
}
#front .gallery .swiper-container .swiper .swiper-wrapper .swiper-slide img {
  display: block;
  width: 100%;
}
#front .gallery .popup {
  position: fixed;
  inset: 0;
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}
#front .gallery .popup.is-open {
  display: flex;
}
#front .gallery .popup-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}
#front .gallery .popup-content {
  position: relative;
  z-index: 1;
}
#front .gallery .popup-image {
  max-width: 90vw;
  max-height: 90vh;
  display: block;
}
#front .gallery .popup-close {
  position: absolute;
  top: -40px;
  right: 0;
  color: #fff;
  font-size: 32px;
  background: none;
  border: none;
  cursor: pointer;
}