@charset "utf-8";


.gjs-dashed .swiper{
  overflow:visible;
  height:100%;
}

html { scroll-behavior: smooth;}

body{
  font-size:16px;
  font-family: "Zen Old Mincho", serif;
  color:#282828;
  font-weight: 400;
  background: #FFFFFF;
  word-break: auto-phrase;
}

h1,h2,h3,h4,h5{
  margin:0;
  font-weight: 400;
  line-height:1.5;
}

h1 strong,h2 strong,h3 strong,h4 strong,h5 strong{
  font-weight: 400;
}

p{
  margin:0;
  line-height: calc(42 / 16);
}

.sp{
  display:none;
}

a{
  color: #282828;
  cursor: pointer;
  display:block;
  transition:0.3s;
  font-weight:500;
}

a:hover{
  color: #282828;
  text-decoration:none;
}


a p{
  line-height:1;
}

.bg-gray{
  padding:260px 15% 120px;
  background:#F1F0EF;
}

.bg-gray h1{
  font-size:clamp(1.25rem, 0.614rem + 2.12vw, 3rem);
  margin-bottom:140px;
}

img{
  width:100%;
  object-fit: contain;
}

.main{
  padding:10rem 0;
  border-left: 15px solid #529EA3;
  border-right: 15px solid #529EA3;
  overflow: hidden;
}

.container{
  padding:0 !important;
  max-width: 1920px;
  width: 80%;
}

.btn{
  padding:1rem;
  border:1px solid #c9c9c9;
  width:fit-content;
  min-width:300px;
  text-align:center;
  margin:2rem auto 0;
  font-size:clamp(1rem, 0.955rem + 0.15vw, 1.125rem);
  border-radius: 0;
  display: block;
  position:relative;
}

.btn::before,
.btn::after{
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  border-color: #848580;
  content: "";
  pointer-events: none;
  transition-property: -webkit-clip-path;
  transition-property: clip-path;
  transition-property: clip-path, -webkit-clip-path;
}

.btn::before{
  border-top: 1px solid;
  border-bottom: 1px solid;
  -webkit-clip-path: polygon(100% 100%, 0 0, 0 0, 100% 100%);
  clip-path: polygon(100% 100%, 0 0, 0 0, 100% 100%);
  transition: .26s ease-in-out;
}
.btn::after{
  border-right: 1px solid;
  border-left: 1px solid;
  -webkit-clip-path: polygon(0 100%, 0 100%, 100% 0, 100% 0);
  clip-path: polygon(0 100%, 0 100%, 100% 0, 100% 0);
  transition: .32s ease-in-out;
}
.btn:hover::before,
.btn:hover::after{
  -webkit-clip-path: polygon(0 100%, 0% 0, 100% 0, 100% 100%);
  clip-path: polygon(0 100%, 0% 0, 100% 0, 100% 100%);
}

.btn.white{
  background:#fff;
  color:#282828 !important;
}

.top-title{
  position:relative;
  padding-top:120px;
  writing-mode: vertical-rl;
  letter-spacing: 9px;
  font-size:clamp(1.25rem, 0.614rem + 2.12vw, 3rem);
  margin-bottom:5rem;
}

.top-title::before{
  content:"";
  position:absolute;
  width:1px;
  height:100px;
  background:#848580;
  top:0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.ripple-box{
  display:block;
  position:absolute;
  aspect-ratio: 1 / 1;
  z-index:-1;
}

.ripple-box.fadeUp .ripple {
  animation: rip 6s ease-out forwards;
}

.ripple {
  display:block;
  position:absolute;
  background:#fff;
  border-radius:999vh;
  box-shadow:-3px 3px 24px rgba(0,0,0,0.1);
  aspect-ratio:1/1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  opacity:0;
}
.ripple {
  position:absolute;
  z-index:-1;
  animation-delay:2s !important;
}
.ripple:nth-child(2) {
  animation-delay:1s !important;
}
.ripple:nth-child(3) {
  animation-delay:0s !important;
}

@-webkit-keyframes rip 
{
  0%  {
    width:0;
    opacity:1;
  }
  100% {
    width:100%;
    opacity:0;
  }
}

.row{
  margin:0;
}

.slider-wrap{
  overflow: hidden;
}

.autoplay-slider {
  display: flex;
  min-width: 100%;
  width: min-content;
  animation: 60s linear infinite sliderAnimation;
}

.autoplay-slide {
  height: auto;
  width: 300px;
  margin: 0 10px;
  position: relative;
}

@keyframes sliderAnimation{
  100% {
    transform: translateX(-50%);
  }
}


.pankuzu{
  display: flex;
  width:50%;
  justify-content: end;
  margin: 2rem 0 0 auto;
  gap: 2rem;
  flex-wrap: wrap;
}

.pankuzu a{
  color:#D65F71;
  position: relative;
}

.pankuzu a:hover{
  text-decoration:underline;
}

.pankuzu a::before{
  content:"";
  position: absolute;
  width: 1.2rem;
  height: 1px;
  background: #d65f71;
  right: -1.7rem;
  transform: rotate(-60deg);
  top: 0.6rem;
}

.pankuzu p{
  line-height:1;
}

strong{
  font-weight:normal;
  display: inline-block;
}

.text-link{
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  overflow: hidden;
  color: transparent !important;
  display: block;
  text-shadow: 0 1.5em 0 #554844, 0 0 0 #554844;
  transition: text-shadow 0.25s;
  line-height: 1 !important;
  cursor: pointer;
}

.text-link p{
  line-height: 1;
}

.text-inner{
  display: inline-block;
  overflow: hidden;       /* ← 影をはみ出させない */
}

.text-link:hover{
  text-shadow: 0 0 0 #554844, 0 -1.5em 0 #554844;
}


.cta{
  margin-top: 140px;
  color:#fff;
  position:relative;
  text-align:center;
}

.cta-bg{
  position:relative;
  padding:7.5rem 0;
  overflow: hidden;
  background:url(https://nishinmaterial.co.jp/system_panel/uploads/images/20250916163352923580.png) no-repeat center/cover;
}

.cta-bg .container{
  position:relative;
  z-index:10;
}

.cta h2{
  writing-mode: vertical-rl;
  position: absolute;
  top: -23%;
  left: 15%;
  letter-spacing: 15px;
  font-size:clamp(1.5rem, 0.955rem + 1.82vw, 3rem);
  color:#282828;
  line-height: 1;
}

.cta-bg > p{
  writing-mode: vertical-rl;
  position: absolute;
  top: -23%;
  left: 15%;
  letter-spacing: 15px;
  font-size:clamp(1.5rem, 0.955rem + 1.82vw, 3rem);
  color:#282828;
  color:#fff;
  line-height: 1;
}

.cta-btn{
  display:flex;
  gap: 3.5rem;
  justify-content: center;
  margin-top:5rem;
}

.cta-btn .btn{
  margin:0;
  border-color:#fff;
  pointer-events:none;
}

.cta-btn .text-link{
  padding: 16px;
  background:#fff;
  width: fit-content;
  min-width: 300px;
  text-align: center;
  font-size: clamp(1rem, 0.955rem + 0.15vw, 1.125rem);
  border-radius: 0;
  display: block;
}

@keyframes steam01 {
  0% {
    bottom: -600px;
    filter: blur(30px);
    transform: rotateY(0deg);
    transform: scale(0.6, 1);
    opacity: 0
  }
  11% { opacity: 0.1 }
  33% {
    transform: rotateY(40deg);
    transform: scale(1, 1.4);
    opacity: 0.5
  }
  66% {
    transform: rotateY(10deg);
    transform: scaleY(1.8, 1);
    opacity: 0.4
  }
  100% {
    bottom: 0;
    filter: blur(50px);
    transform: rotateY(60deg);
    transform: scaleY(2, 1.8);
    opacity: 0
  }
}
@keyframes steam02 {
  0% {
    bottom: -400px;
    filter: blur(30px);
    transform: rotateY(0deg);
    transform: scale(0.6, 0.6);
    opacity: 0
  }
  11% { opacity: 0.1 }
  33% {
    transform: rotateY(40deg);
    transform: scale(0.8, 1);
    opacity: 0.4
  }
  66% {
    transform: rotateY(2deg);
    transform: scaleY(1, 1.2)
  }
  100% {
    bottom: 0;
    filter: blur(50px);
    transform: rotateY(50deg);
    transform: scaleY(1.2, 1.4);
    opacity: 0
  }
}
.steam01 {
  position: absolute;
  right: 0;
  animation: steam01 10s infinite linear;
  opacity: 0
}
.steam02 {
  position: absolute;
  right: 30%;
  animation: steam02 14s infinite linear;
  opacity: 0
}
.steam03 {
  margin: auto;
  position: absolute;
  right: 0;
  left: 0;
  animation: steam02 12s infinite linear;
  animation-delay: 6s;
  opacity: 0
}
.steam01 img, .steam03 img {
  width: 532px;
  height: 800px
}
.steam02 img {
  width: 399px;
  height: 600px
}


.lower-bg{
  display:flex;
  align-items: flex-start;
  justify-content: space-between;
  padding:220px 0 120px;
}

.lower-left{
  position: sticky;
  top: 10em;
  width: 20%;
  padding-left:5%;
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.lower-fv-txt{
  display: flex;
  flex-direction: row-reverse;
  gap:1.5rem;
}

.lower-left .gray-fv-txt{
   color:#ACACAC;
  font-size:clamp(0.875rem, 0.648rem + 0.76vw, 1.5rem);
  writing-mode: vertical-rl;
  letter-spacing: 4px;
  line-height: 1;
}

.lower-left h1{
  writing-mode: vertical-rl;
  letter-spacing: 9px;
  font-size: clamp(1.5rem, 0.955rem + 1.82vw, 3rem);
  margin-left: auto;
}

.lower-fv-txt h1{
  padding-top:3rem;
}

.lower-anker{
  display: flex;
  flex-direction: column;
  gap:1rem;
  width:fit-content;
}

.lower-anker a{
  font-size:14px;
  color:#ACACAC;
}


body:has(.fadeUpTrigger_office1.isActive) .lower-anker a:first-child{
  color:#282828;
}

body:has(.fadeUpTrigger_office2.isActive) .lower-anker a:nth-child(2){
  color:#282828;
}

body:has(.fadeUpTrigger_office3.isActive) .lower-anker a:nth-child(3){
  color:#282828;
}

body:has(.fadeUpTrigger_office4.isActive) .lower-anker a:nth-child(4){
  color:#282828;
}

body:has(.fadeUpTrigger_office5.isActive) .lower-anker a:nth-child(5){
  color:#282828;
}

.lower-right {
  width: 70%;
  max-width:1260px;
}

.lower-fv-img{
  margin: 10% 0 0;
  aspect-ratio: 1260 / 710;
  object-fit: cover;
}

.lower-fv-bottom{
  position:relative;
  padding:120px 5% 160px 0;
  font-size:clamp(0.875rem, 0.784rem + 0.3vw, 1.125rem);
  overflow:hidden;
}

.lower-fv-bottom .ripple-box {
  width: 42%;
  top: -15%;
  right: 0%;
}

.lower-fv-bottom h2{
  font-size:clamp(1.125rem, 0.807rem + 1.06vw, 2rem);
  margin-bottom:5rem;
}

.lower-right-bg{
  width:90%;
}

.lower-ham-bg{
  position:relative;
}

.lower-ham-bg .hamBtn{
  position: sticky;
  top: 1.5rem;
  margin: 0 0 0  auto;
}

.lower-right .top-title{
  padding-top: 100px;
  margin:0;
  font-size:clamp(1.5rem, 1.136rem + 1.21vw, 2.5rem);
}

.lower-right .top-title::before{
  height:80px;
}

.lower-title{
  position: relative;
  padding-left: 100px;
  font-size:clamp(1.5rem, 1.136rem + 1.21vw, 2.5rem);
  letter-spacing: 6px;
}

.lower-title::before{
  content: "";
  position: absolute;
  width: 80px;
  height: 1px;
  background: #848580;
  top: 50%;
  left: 0%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.bg-grd{
  position:relative;
}

.bg-grd::before{
  content:"";
  position:absolute;
  width:130%;
  height:100%;
  top:0;
  right:0;
  z-index: -1;
  background-image: linear-gradient(90deg, rgba(241,240,239,0), #F1F0EF);
}

.wrap{
  display:flex;
  justify-content: space-between;
  align-items: flex-start;
  padding:80px 0 80px;
  margin-top:4rem;
}

.wrap::before{
  top:100px;
  height:calc(100% - 100px);
}

.wrap > div{
  width:calc(100% - 12.5rem);
}

.flow-txt{
  padding-right:5%;
}

@media screen and (max-width: 1400px) {
  .autoplay-slide{
    width:250px;
  }
}

@media screen and (max-width: 1279px) {
}

@media screen and (max-width: 1024px) {
  .bg-gray{
    padding: 120px 10% 120px;
  }
  .lower-bg{
    flex-direction: column;
    align-items: center;
    padding: 160px 0 120px;
  }
  .lower-right {
    width: 100%;
  }
  .lower-left {
    position: relative;
    top: auto;
    width: 100%;
    padding-left: 0;
    min-height: auto;
  }
  .lower-left h1{
    margin: 0 auto;
  }
  .lower-anker{
    display:none;
  }
  .lower-fv-img {
    margin: 4rem 0 0;
  }
  .lower-ham-bg{
    width: 100%;
    padding: 2.5rem 5% 0;
  }
  .cta-bg > p,
  .cta h2{
    left: 10%;
  }
  .lower-fv-bottom{
    padding: 40px 5% 100px;
  }
  .lower-fv-bottom h2{
    margin-bottom: 2.5rem;
  }
  .lower-fv-txt h1{
    margin:0;
  }
  .lower-fv-txt{
    justify-content: center;
    gap: 1rem;
  }
  .wrap{
    padding: 80px 0 80px 5%;
  }
  .wrap > div {
    width: calc(100% - 8rem);
  }
  .lower-fv-bottom .ripple-box {
    width: 50%;
    top: -20%;
    right: 0%;
  }
}

@media screen and (max-width: 767px) {
  .lower-right-bg .hamBtn{
    top:1rem;
  }
  .bg-gray{
    padding: 120px 5% 120px;
  }
  .top-title{
    letter-spacing: 5px;
  }
  .bg-gray h1{
    margin-bottom: 4rem;
  }
  .sp{
    display:block;
  }
  .pc{
    display:none;
  }
  body{
    font-size:14px;
  }
  .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto{
    padding:0;
  }
  .btn{
    min-width: 240px;
  }
  .autoplay-slide {
    width: 150px;
    margin: 0 4px;
  }
  p{
    line-height: 2;
  }
  .lower-bg{
    padding: 80px 0 120px;
  }
  .lower-right .top-title::before {
    height: 40px;
  }
  .lower-right .top-title {
    padding-top: 60px;
  }
  .lower-title::before{
    width:40px;
  }
  .lower-title{
    letter-spacing: 3px;
  }
  .top-title{
    padding-top: 60px;
  }
  .top-title::before {
    height: 40px;
  }
  .cta {
    margin-top: 80px;
  }
  .cta-bg > p, .cta h2{
    left: 47.5%;
    letter-spacing: 8px;
  }
  .cta-bg{
    padding: 7.5rem 0 2.5rem;
  }
  .cta-btn {
    gap: 1rem;
    margin-top: 2rem;
    flex-direction: column;
    align-items: center;
  }
  .cta-btn .text-link{
    min-width: 240px;
  }
  .wrap{
    flex-direction: column;
    align-items: center;
    gap: 4rem;
    padding:80px 0;
  }
  .wrap > div{
    width:100%;
  }
  .lower-fv-bottom {
    padding: 8px 5% 4rem;
  }
  .lower-fv-bottom h2 {
    margin-bottom: 2rem;
  }
  .lower-fv-bottom .ripple-box {
    width: 80%;
    top: -20%;
    right: -20%;
  }
  .lower-right-bg{
    width:100%;
  }
  .lower-title{
        padding-left: 60px;
  }
}

@media screen and (max-width: 400px) {
  .cta-bg > p, .cta h2{
    left: 45%;
  }
}
