@charset "utf-8";

body{
  background:#E6E6E6;
}

.fv{
  height:100vh;
  height:100svh;
  position:relative;
}

.fv::before{
  content:"";
  position:absolute;
  background:#BFBFBF;
  width:1px;
  height:120px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  bottom:-80px;
  z-index:10;
}

.fv-swiper{
  height:100%;
}

.fv-swiper .swiper-slide{
  overflow:hidden;
}

.fv-swiper .swiper-slide img {
  height: 100vh;
  height:100svh;
  width: 100%;
  object-fit:cover;
}

.fv .swiper-slide-active img,
.fv .swiper-slide-duplicate-active img,
.fv .swiper-slide-prev img {
  animation: zoomUp 7s linear 0s normal both;
}

@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}

.fv .swiper-slide-active.swiper-slide2 img,
.fv .swiper-slide-duplicate-active.swiper-slide2 img,
.fv .swiper-slide-prev.swiper-slide2 img {
  animation: zoomUpMove  7s linear 0s normal both;
}

@keyframes zoomUpMove {
  0% {
    transform: scale(1.1) translateY(3%);
  }
  100% {
    transform: scale(1.1) translateY(-3%);
  }
}

.fv .swiper-slide-active.swiper-slide3 img,
.fv .swiper-slide-duplicate-active.swiper-slide3 img,
.fv .swiper-slide-prev.swiper-slide3 img {
  animation: zoomMove 7s linear 0s normal both;
}

@keyframes zoomMove {
  0% {
    transform: scale(1.2) translateX(3%); /* 少し拡大 */
  }
  100% {
    transform: scale(1.2) translateX(-3%); /* 拡大しながら右へ見せる */
  }
}

.fv .swiper-slide-active.swiper-slide4 img,
.fv .swiper-slide-duplicate-active.swiper-slide4 img,
.fv .swiper-slide-prev.swiper-slide4 img {
  animation: zoomDiagonal 7s linear 0s normal both;
}

@keyframes zoomDiagonal {
  0% {
    transform: scale(1.15) translate(3%, 3%);
  }
  100% {
    transform: scale(1.15) translate(-3%, -3%);
  }
}

.fv-text{
  max-width:650px;
  position:absolute;
  bottom:5rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  z-index: 10;
  width: 60%;
}

.fv-text h1{
  font-size:clamp(1rem, 0.727rem + 0.91vw, 1.75rem);
  text-align:center;
  color:#fff;
}

.fv-bottom-swiper{
  margin:3rem auto;
  max-width:700px;
  width: 80%;
}

.fv-bottom-swiper + p strong{
  display:block;
}

.fv-bottom-swiper .box-shadow::before{
  background:transparent;
}

.fv-bottom{
  position:relative;
  padding:280px 0 120px;
  color:#fff;
  text-align:center;
  font-size:clamp(0.875rem, 0.739rem + 0.45vw, 1.25rem);
  z-index:1;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120113249720330.png) no-repeat center/cover; 
}

.fv-bottom .scroll-list-wrap{
  position:absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index:-1;
}

.fv-bottom .scroll-list-wrap .scroll-list > p{
  color:#5C5048;
  opacity:0.2;
}

.fv-bottom h2{
  font-size:clamp(1.5rem, 1.318rem + 0.61vw, 2rem);
}

.service{
  padding:200px 0 ;
  color:#fff;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120111259552901.png) no-repeat center/cover; 
}

.service-txt{
  text-align:right;
}

.service-txt .lower-title{
  color:#5C5048;
  margin: 0;
}

.service-wrap{
  display:flex;
  justify-content: space-between;
}

.service-item{
  width:30%;
  max-width: 400px;
}

.service-item:nth-child(2){
  margin-top:5rem;
}

.service-item:nth-child(3){
  margin-top:10rem;
}

.service-img{
  position:relative;
  font-size:2.5rem;
}

.service-img::before{
  content:"";
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  z-index:1;
  background:rgba(0,0,0,0.25);
}

.service-item h3{
  font-size:clamp(1.5rem, 1.364rem + 0.45vw, 1.875rem);
  margin:1.5rem 0 1rem;
}

.service-img p{
  writing-mode: vertical-rl;
  position:absolute;
  right:-1rem;
  top:-1rem;
  z-index:10;
  line-height: 1;
  height: max-content;
  color:#E6E6E6;
  text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
}

.scroll-list-wrap{
  position: relative;
  z-index: 10;
}

.scroll-list > p {
  color: #DFDEDE;
  line-height: 1;
  font-size:clamp(5.625rem, 2.67rem + 9.85vw, 13.75rem);
  animation-duration:60s;
}

.voice{
  margin:140px 0 -150px;
}

.voice-wrap{
  width:90%;
  margin:0 0 0 auto;
  display: flex;
  justify-content: space-between;
}

.voice-swiper{
  width: calc(100% - 500px);
  margin: 0 0 0 auto;
  max-width: 1200px;
  padding: 1rem;
}

.voice-swiper .swiper-slide{
  background:#fff;
  padding:4rem 5%;
  border-radius:0 150px 0 0;
  box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.03);
}

.voice-swiper .swiper-slide div{
  display: flex;
  align-items:flex-end;
  justify-content: space-between;
}

.voice-swiper .swiper-slide div img{
  width:35%;
}

.voice-swiper .swiper-slide div p{
  width:60%;
}

.voice-swiper .swiper-slide h3{
  font-size:clamp(1.125rem, 1.034rem + 0.3vw, 1.375rem);
  margin:1.5rem 0 1rem;
}

.swiper-arrow{
  display: flex;
  gap: 3rem;
  margin: 4rem 0 0 10%;
}

.voice .swiper-button-next, .voice .swiper-button-prev{
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  transform: none;
}

.voice .swiper-button-prev::after{
  color: transparent;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120104908238539.png) no-repeat center/contain;
}

.voice .swiper-button-next::after{
  color: transparent;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120104908910696.png) no-repeat center/contain;
}

.news{
  padding:550px 0 220px;
  background:#F8F8F8;
}

.news .inner{
  display: flex;
  justify-content: space-between;
}

.news .circle-btn{
  margin:0 ;
}

.newsLink{
  pointer-events:none;
  display: flex;
  justify-content: space-between;    
  align-items: flex-start;
}

.news .circle-btn .circle-inner{
  background:#F8F8F8;
}

.news-main{
  width: calc(100% - 450px);
  max-width: 1000px;
}

.news-main .webgene-item a {
  padding: 3rem 0;
  border-top: 1px solid #DEDEDE;
  position: relative;
}

.news-main .webgene-item:last-of-type a {
  border-bottom: 1px solid #DEDEDE;
}

/*.news-main .webgene-item a::before {
content: "";
position: absolute;
width: 5px;
height: 10px;
top: 50%;
right: 2.5rem;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transition: 0.3s;
z-index: 10;
background: url(https://door-style.co.jp/system_panel/uploads/images/20251117170129441264.png) no-repeat center / contain;
}*/

.news-main .webgene-item a:hover::before {
  right: 2rem;
}


.news-main .webgene-blog article .newsItemTit{
  font-size:1rem;
  font-weight: 600;
}

.newsTextWrap{
  display:flex;
  gap: 20px;
  align-items: center;
  flex-wrap:wrap;
  width: 70%;
}

.newsItemTime{
  color:#726F6F;
  font-size:clamp(0.875rem, 0.83rem + 0.15vw, 1rem);
}

.newsDetailTxt{
  width:100%;
  font-size:14px;
}

.newsItemText{
  display:flex;
  gap: 2rem;
  align-items: center;
}

.newsItemCate{
  padding:4px 1rem;
  color:#fff;
  background:#726F6F;
  font-size:14px;
  line-height:1;
  transition: 0.3s;
}

.news .inner > .circle-btn{
  display:none;
}

.newsDetailImg{
  position:relative;
  width: 25%;
}

.webgene-item-main-image{
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  z-index:10;
  object-fit: cover;
}


.access{
  padding:190px 0 200px;
  position:relative;
}

.access::before{
  content:"";
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  z-index:-2;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120095904868246.png) no-repeat center/cover;
}

.access::after{
  content:"";
  position:absolute;
  width:70%;
  height:70%;
  top:0;
  right:0;
  z-index:-1;
  background-image: linear-gradient(to left, #f8f8f8 80%, transparent);
}

.access-wrap{
  display:flex;
  margin-bottom: 3rem;
  justify-content: space-between;
  flex-direction: row-reverse;
  align-items: flex-end;
}

.access-img{
  width:40%;
}

.access-txt{
  max-width: 700px;
  width:55%;
}

.access .info-list{
  color:#1A1919;
  margin-bottom:20px;
}

.access .info-list p:first-child{
  color:#767272;
  width: 100px;
}

.access .info-list p:last-child {
  width: calc(100% - 100px);
}

.access .info-list-wrap{
  margin:0;
  max-width:550px;
}

.insta{
  padding:200px 0 100px;
  position:relative;
  z-index:1;
}

.insta::before{
  content:"";
  position:absolute;
  width:100%;
  height:40%;
  background:url(https://door-style.co.jp/system_panel/uploads/images/20251120102012450255.png) no-repeat center/cover;
  bottom:0;
  left:0;
  z-index:-1;
}

.insta .circle-btn.white .circle-inner{
  background:#767676;
}

.insta .circle-btn.white .circle{
  background: conic-gradient(#BFBFBF calc(var(--p) * 1%), #BFBFBF 0);
}

.insta .circle-btn.white:hover .circle{
  background: conic-gradient(#BFBFBF calc(var(--p) * 1%), rgba(255, 255, 255, 0) 0);
}


@media screen and (max-width: 1600px) {
  .fv-text img{
    width: 85%;
    margin: 0 auto;
    display: block;
  }
  .voice-swiper {
    width: calc(100% - 350px);
  }
  .news-main .webgene-blog article .newsItemTit {
    width: 100%;
  }
  .news-main .webgene-item a {
    padding: 3rem 3rem 3rem 0;
  }
}


@media screen and (max-width: 1280px) {
  .news-main {
    width: calc(100% - 300px);
  }
}

@media screen and (max-width: 1024px) {
  .access {
    padding: 0;
  }
  .access::before{
    display:none;
  }
  .access::after {
    width: 100%;
    height: 90%;
  }
  .access .inner{
    width:100%;
  }
  .access-wrap{
    flex-direction: column-reverse;
    align-items: center;
    gap:1rem;
  }
  .access-img {
    width: 100%;
  }
  .access-img img{
    aspect-ratio: 375 / 165;
    object-fit: cover;
  }
  .access-txt {
    width: 90%;
    max-width: none;
  }
  .access.info iframe{
    width:90%;
    margin:0 auto;
    display: block;
  }
  .news .inner{
    flex-direction: column;
  }
  .news-text .circle-btn{
    display:none;
  }
  .news .inner > .circle-btn{
    display:flex;
    margin:50px auto 0;
  }
  .news-main{
    width:100%;
  }
  .fv-bottom{
    padding: 200px 0 100px;
  }
  .service-wrap{
    margin-top: 5rem;
    flex-direction: column;
    align-items: center;
    gap: 5rem;
  }
  .service-item {
    width: 100%;
  }
  .service-item:nth-child(2), 
  .service-item:nth-child(3) {
    margin-top: 0;
  }
  .voice-wrap {
    width: 95%;
  }
  .voice-swiper {
    width: calc(100% - 240px);
    max-width: 650px;
  }
  .news {
    padding: 300px 0 120px;
  }
  .fv-bottom .scroll-list-wrap{
    top: 40%;
  }
  .insta {
    padding: 120px 0 80px;
  }
  .news-main .webgene-blog .newsTextWrap{
    flex-direction: column;
    align-items: flex-start;
    gap:1rem;
  }
  .newsItemText,
  .news-main .webgene-blog article .newsItemTit{
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .service .inner,
  .fv-text{
    width:90%;
  }
  .fv-text img{
    max-width:280px;
  }
  .fv::before{
    height: 52px;
    bottom: -20px;
  }
  .fv-bottom {
    padding: 80px 0 60px;
  }
  .service {
    padding: 40px 0 80px;
  }
  .service-txt {
    text-align: left;
  }
  .service-txt .lower-title{
    margin-bottom:20px;
  }
  .service-img {
    width: 80%;
    margin: 0 auto;
  }
  .service .circle-btn{
    margin-top:60px;
  }
  .insta {
    padding: 70px 0 60px;
  }
  .access .info-list p:first-child{
    width:90px;
  }
  .access .info-list p:last-child {
    width: calc(100% - 90px);
  }
  .news {
    padding: 200px 0 90px;
  }
  .fv-bottom-swiper + p{
    text-align:left;
  }
  .news-main .webgene-blog article{
    width:100%;
  }
  .news-cate a {
    font-size:14px;
  }
  .newsItemCate {
    padding: 7px 12px;
    font-size: 13px;
  }
  .newsItemText{
    gap: 1.5rem;
  }
  .news-main .webgene-item a{
    padding:30px 0;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
  }
  .newsDetailImg{
    width:80%;
  }
  .newsTextWrap{
    width:100%;
  }
  .news-main .webgene-item{
    margin-bottom:8px;
  }
  .news-main .webgene-item a::before{
    display:none;
  }
  .fv-bottom .circle-btn{
    margin-top:60px;
  }
  .voice-wrap {
    flex-direction: column;
  }
  .voice-swiper {
    width: 100%;
    padding: 1rem 0;
  }
  .swiper-arrow{
    display:none;
  }
  .voice-swiper .swiper-slide div img {
    width: 30%;
  }
  .voice-swiper .swiper-slide div p {
    width: 60%;
  }
  .voice-swiper .swiper-slide{
    padding: 30px 5%;
  }
  .fv-bottom h2 br{
    display:none;
  }
  .fv-bottom-swiper + p strong {
    display: inline;
  }
  .voice {
    margin: 40px 0 -150px;
  }
}
