@media screen and (max-width: 767px) {
  section {
    position: relative;
    z-index: 0;
  }
  section:before {
    content: '';
    background: url("../img/shared/pattern03.jpg") repeat;
    background-size: 11.7vw;
    opacity: 0.5;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: -2;
  }
}

#key {
  padding: 4.5vw 0 0;
}

#key .key-video {
  width: 88vw;
  margin: 0 auto;
  position: relative;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

#key .key-video:before {
  content: '';
  background: url("../img/index/sp_key_frame_top.png") no-repeat center top, url("../img/index/sp_key_frame_bottom.png") no-repeat center bottom, url("../img/index/sp_key_frame_mid.png") repeat-y center;
  background-size: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 1;
}

#key .mainvisual {
  width: 100%;
  height: 132.8vw;
  position: relative;
  padding: 10.2vw 6.6vw;
}

#key .mainvisual video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: 50%;
}

@media screen and (min-width: 768px) {
  #key {
    padding: 2.1vw 0;
    margin: 0.7vw 0 1.0vw;
    position: relative;
    overflow: hidden;
    height: 41.2vw;
    background: url("../img/shared/pattern03.jpg") repeat;
    background-size: 10.4vw;
  }
  #key .key-video {
    width: 56.3vw;
  }
  #key .key-video:before {
    background: url("../img/index/key_video_frame.png") no-repeat center top;
    background-size: 100%;
  }
  #key .mainvisual {
    height: 37.1vw;
    padding: 2.9vw 4.3vw;
  }
  #key .key-slider {
    width: 21.9vw;
    position: absolute;
    top: 0;
    bottom: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  #key .key-slider .img {
    margin-bottom: 3.4vw;
    position: relative;
    z-index: 0;
    overflow: hidden;
  }
  #key .key-slider .img .img-ani {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: -1;
  }
  #key .key-slider .img .img-ani img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation-duration: 20s;
    animation-fill-mode: forwards;
    animation-timing-function: linear;
  }
  #key .key-slider.left {
    left: 0;
  }
  #key .key-slider.left .img1 .img-ani img {
    animation-name: move1;
    transform-origin: center top;
  }
  #key .key-slider.left .img2 .img-ani img {
    animation-name: move2;
    width: 120%;
  }
  #key .key-slider.right {
    right: 0;
  }
  #key .key-slider.right .img1 .img-ani img {
    animation-name: move3;
    transform-origin: right center;
  }
  #key .key-slider.right .img2 .img-ani img {
    animation-name: move4;
    height: 153%;
  }
}

@media screen and (min-width: 768px) and (max-width: 1919px) {
  #key .key-slider .img img {
    width: 100%;
    height: auto;
  }
  #key .key-slider.left .img1 {
    width: 11.9vw;
  }
  #key .key-slider.left .img2 {
    width: 16.4vw;
  }
  #key .key-slider.right .img1 {
    width: 16.8vw;
  }
  #key .key-slider.right .img2 {
    width: 12.4vw;
  }
}

@media screen and (min-width: 1280px) {
  #key {
    background-size: auto;
  }
}

@media screen and (min-width: 1920px) {
  #key {
    padding: 40px 0;
    height: 791px;
    margin: 14px 0 20px;
  }
  #key .key-video {
    width: 1080px;
  }
  #key .mainvisual {
    height: 713px;
    padding: 55px 83px;
  }
  #key .key-slider {
    width: 420px;
  }
  #key .key-slider .img {
    margin-bottom: 66px;
  }
}

.light {
  position: relative;
}

.light img {
  transition-delay: 0.5s;
}

.light .on {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
  opacity: 0;
}

.bg-change {
  position: relative;
}

.bg-change img {
  transition: 0s;
  transition-delay: 0.5s;
}

.bg-change .on {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
  opacity: 0;
}

.bg-op {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -2;
  transition: 0s;
  transition-delay: 0.5s;
}

.active .light .on {
  opacity: 1;
}

.active .light .off {
  opacity: 0;
}

.active .bg-change .on {
  opacity: 1;
}

.active .bg-change .off {
  opacity: 0;
}

.active .bg-op {
  opacity: 0.8;
}

#lead {
  padding: 55px 0;
  min-height: 970px;
  position: relative;
  z-index: 0;
  margin-bottom: 1.0vw;
}

#lead .light {
  width: 200px;
  position: absolute;
  top: 0;
  pointer-events: none;
}

#lead .light img {
  width: 100%;
  height: auto;
}

#lead .light.left {
  left: 2%;
}

#lead .light.right {
  right: 2%;
}

#lead .bg-change {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
}

#lead ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 14px;
  row-gap: 16px;
}

#lead ul li a {
  height: 119px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #B39A7F;
  font-size: 24px;
  font-weight: 500;
  line-height: 115%;
  position: relative;
  z-index: 0;
}

#lead ul li a:before {
  content: '';
  background: #ABB6A0;
  position: absolute;
  left: 6px;
  right: 6px;
  top: 6px;
  bottom: 6px;
  z-index: -1;
  transition: 0.3s all ease;
}

#lead ul li a:after {
  content: '';
  background: linear-gradient(180deg, #a57d24 0%, #e7dabe 54%, #aa8534 100%);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -2;
}

#lead ul li a span {
  display: block;
  color: #fff;
  font-weight: 200;
}

#lead ul li a:hover:before {
  background: #CBD2C3;
}

@media screen and (max-width: 1620px) {
  #lead .light {
    width: 150px;
  }
  #lead .light.left {
    left: 0%;
  }
  #lead .light.right {
    right: 0%;
  }
}

@media screen and (max-width: 1500px) {
  #lead .light {
    width: 120px;
  }
  #lead .light.left {
    left: -1%;
  }
  #lead .light.right {
    right: -1%;
  }
}

@media screen and (max-width: 1380px) {
  #lead {
    min-height: 70.3vw;
    padding-top: 4.0vw;
  }
  #lead .wrap {
    max-width: none;
    width: 87.0vw;
  }
  #lead .light {
    width: 7.6vw;
  }
  #lead ul {
    gap: 0.8vw;
  }
  #lead ul li a {
    height: 8.6vw;
    font-size: 1.7vw;
  }
  #lead ul li a:before {
    left: 0.4vw;
    right: 0.4vw;
    top: 0.4vw;
    bottom: 0.4vw;
  }
}

@media screen and (min-width: 1920px) {
  #lead {
    margin-bottom: 20px;
  }
}

.h2-common {
  text-align: center;
  position: relative;
  z-index: 1;
  margin-bottom: 1.3vw;
}

.h2-common:before {
  content: '';
  height: 1px;
  background: #878787;
  position: absolute;
  left: 0;
  right: 0;
  top: 10vw;
  z-index: -1;
}

.h2-common img {
  width: 44vw !important;
  margin: 0 auto;
}

.h2-common .dot {
  display: block;
  width: 1.6vw;
  height: 1.6vw;
  position: absolute;
  top: 9.2vw;
  transform: rotate(45deg);
  background: #878787;
}

.h2-common .dot.left {
  left: 0;
}

.h2-common .dot.right {
  right: 0;
}

@media screen and (min-width: 768px) {
  .h2-common {
    margin: 0;
    width: 367px;
  }
  .h2-common:before {
    display: none;
  }
  .h2-common .dot {
    display: none;
  }
  .h2-common img {
    width: 100% !important;
    height: auto;
  }
}

.slider-common {
  width: 76.8vw;
  margin: 0 auto;
  line-height: 0;
  padding: 0;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.slider-common:before {
  content: '';
  background-image: url("../img/index/sp_slider_frame.png");
  background-repeat: no-repeat;
  background-size: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 2;
}

.slider-common .slick-slide img {
  width: 100%;
  height: 70.2vw;
  object-fit: cover;
  object-position: 50%;
}

.slider-common .slick-arrow {
  width: 5.3vw;
  height: 5.3vw;
  border-radius: 50%;
  border: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: 100%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  font-size: 0;
}

.slider-common .slick-prev {
  background-image: url("../img/shared/prev.png");
  left: -6.7vw;
}

.slider-common .slick-next {
  background-image: url("../img/shared/next.png");
  right: -6.7vw;
}

#ldk {
  padding: 8vw 0 4.8vw;
  position: relative;
  z-index: 0;
}

#ldk .deco {
  width: 5.3vw;
  position: absolute;
  top: 1.6vw;
}

#ldk .deco.left {
  left: 11.7vw;
}

#ldk .deco.right {
  right: 11.7vw;
}

@media screen and (min-width: 768px) {
  #ldk {
    padding: 4.9vw 1.0vw 5.7vw;
    margin-bottom: 1vw;
    background: #fff;
  }
  #ldk .wrap {
    position: static;
  }
  #ldk .h2-common {
    width: 19.1vw;
    position: absolute;
    bottom: 6.9vw;
    left: calc(50% - 9.6vw);
  }
  #ldk .light {
    width: 21.5vw;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  #ldk .light img {
    width: 100%;
    height: auto;
  }
  #ldk .bg-op {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: -2;
    background-image: url("../img/index/first_bg.jpg");
  }
  #ldk .row {
    justify-content: space-between;
  }
  #ldk .row img {
    width: 100%;
    height: auto;
  }
  #ldk .row .col-left {
    width: 39.6vw;
  }
  #ldk .row .col-left .img1 {
    margin-bottom: 1.3vw;
  }
  #ldk .row .col-left .img-gr1 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.3vw;
  }
  #ldk .row .col-right {
    width: 39.1vw;
  }
  #ldk .row .col-right .img-gr2 {
    margin-bottom: 1.3vw;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.3vw;
  }
  #ldk .row .col-right .img-gr3 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.3vw;
  }
}

@media screen and (min-width: 1920px) {
  #ldk {
    margin-bottom: 20px;
    padding: 94px 20px 110px;
  }
  #ldk .h2-common {
    width: 367px;
    bottom: 133px;
    left: calc(50% - 184px);
  }
  #ldk .light {
    width: 413px;
  }
  #ldk .row .col-left {
    width: 760px;
  }
  #ldk .row .col-left .img1 {
    margin-bottom: 25px;
  }
  #ldk .row .col-left .img-gr1 {
    gap: 25px;
  }
  #ldk .row .col-right {
    width: 750px;
  }
  #ldk .row .col-right .img-gr2 {
    margin-bottom: 25px;
    gap: 25px;
  }
  #ldk .row .col-right .img-gr3 {
    gap: 25px;
  }
}

.two-section {
  padding: 0 4.3vw;
}

#bedroom {
  padding-bottom: 2.7vw;
}

#main-bedroom {
  padding-bottom: 2.7vw;
  position: relative;
}

#main-bedroom .deco {
  width: 9.3vw;
  position: absolute;
  top: 6.5vw;
}

#main-bedroom .deco.left {
  left: -1.5vw;
}

#main-bedroom .deco.right {
  right: -1.5vw;
}

@media screen and (min-width: 768px) {
  .two-section {
    padding: 2.6vw 0 2.0vw;
    margin-bottom: 1vw;
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
  }
  .two-section img {
    width: 100%;
    height: auto;
  }
  .two-section .h2-common {
    width: 19.1vw;
    position: absolute;
    top: 18.4vw;
    left: calc(50% - 9.6vw);
  }
  .two-section .light {
    width: 6.0vw;
    position: absolute;
    top: 15.8vw;
    left: 50%;
    transform: translateX(-50%);
  }
  .two-section .bg-op {
    background-image: url("../img/shared/pattern02.jpg");
    background-size: auto;
  }
  #bedroom {
    width: 39.6vw;
    padding-bottom: 0;
    margin-left: 11.5vw;
    position: relative;
  }
  #bedroom .img-gr1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 11.1vw;
  }
  #bedroom .img-gr1 .img {
    width: 18.4vw;
  }
  #bedroom .img-gr2 {
    display: flex;
  }
  #bedroom .img-gr2 .img {
    width: 18.4vw;
  }
  #bedroom .img-gr2 .img + .img {
    width: 15.7vw;
    margin-left: 4.3vw;
  }
  #main-bedroom {
    width: 39.6vw;
    padding-bottom: 0;
  }
  #main-bedroom .img-gr1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 11.1vw;
  }
  #main-bedroom .img-gr1 .img {
    width: 18.4vw;
  }
  #main-bedroom .img-gr2 {
    display: flex;
    justify-content: space-between;
  }
  #main-bedroom .img-gr2 .img {
    width: 18.4vw;
  }
}

@media screen and (min-width: 1920px) {
  .two-section {
    padding: 50px 0 38px;
    margin-bottom: 20px;
  }
  .two-section .h2-common {
    width: 367px;
    top: 353px;
    left: calc(50% - 184px);
  }
  .two-section .light {
    width: 116px;
    top: 303px;
  }
  #bedroom {
    width: 760px;
    margin-left: 220px;
  }
  #bedroom .img-gr1 {
    margin-bottom: 213px;
  }
  #bedroom .img-gr1 .img {
    width: 354px;
  }
  #bedroom .img-gr2 .img {
    width: 354px;
  }
  #bedroom .img-gr2 .img + .img {
    width: 302px;
    margin-left: 83px;
  }
  #main-bedroom {
    width: 760px;
  }
  #main-bedroom .img-gr1 {
    margin-bottom: 213px;
  }
  #main-bedroom .img-gr1 .img {
    width: 354px;
  }
  #main-bedroom .img-gr2 .img {
    width: 354px;
  }
}

#other {
  padding-bottom: 4.3vw;
  margin-bottom: 4vw;
}

#other .btn {
  width: 44.3vw;
  margin: 5.3vw auto 0;
}

@media screen and (min-width: 768px) {
  #other {
    padding-bottom: 1.3vw;
    margin-bottom: 1.5vw;
    position: relative;
  }
  #other .bg-op {
    background: url("../img/shared/pattern03.jpg") repeat;
    background-size: 10.4vw;
  }
  #other .wrap {
    position: static;
  }
  #other .h2-common {
    width: 19.1vw;
    position: absolute;
    left: calc(50% - 9.6vw);
    bottom: 1.3vw;
  }
  #other .row-img {
    display: flex;
    justify-content: center;
    padding: 1.7vw 0 11.3vw;
  }
  #other .row-img img {
    width: 100%;
    height: auto;
  }
  #other .row-img .single {
    width: 19.1vw;
    margin: 0 0.7vw;
  }
  #other .row-img .col {
    width: 18.4vw;
    margin: 0 0.7vw;
  }
  #other .row-img .col p + p {
    margin-top: 1.9vw;
  }
  #other .light {
    width: 6.2vw;
    position: absolute;
    top: 3.1vw;
  }
  #other .light img {
    width: 100%;
    height: auto;
  }
  #other .light.left {
    left: 3vw;
  }
  #other .light.right {
    right: 3vw;
  }
}

@media screen and (min-width: 1280px) {
  #other .bg-op {
    background-size: auto;
  }
}

@media screen and (min-width: 1920px) {
  #other {
    padding-bottom: 24px;
    margin-bottom: 28px;
  }
  #other .h2-common {
    width: 367px;
    left: calc(50% - 184px);
    bottom: 25px;
  }
  #other .row-img {
    padding: 33px 0 217px;
  }
  #other .row-img .single {
    width: 366px;
    margin: 0 14px;
  }
  #other .row-img .col {
    width: 354px;
    margin: 0 14px;
  }
  #other .row-img .col p + p {
    margin-top: 37px;
  }
  #other .light {
    width: 119px;
    top: 60px;
  }
  #other .light.left {
    left: calc(50% - 900px);
  }
  #other .light.right {
    right: calc(50% - 900px);
  }
}
