@charset "utf-8";

.wrap{
  overflow: hidden;
}
body{
    background-color: #fff;
}

/* ----- section-kv ----- */
#kv{
    width: 100%;
        height: 100vh;
    padding: clamp(15px, 2.5vw,30px);
}
.kv-bg{
    width: 100%;
    background-image: url(/wp-content/uploads/2025/03/kv02.webp);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 20px;
    display: inline-block;
    height:  calc(100vh - 60px);
    padding-top: clamp(10px, 7vw,70px);
    padding-left: clamp(10px, 2.5vw,30px);
    padding-right: clamp(10px, 2.5vw,30px);
    overflow: hidden;
    position: relative;
}

.kv-en{
    font-size:min(12vw,180px);
    line-height: 0.94;
    font-family: 'Oswald', sans-serif;
    font-weight: 500;
    text-align: left;
    letter-spacing: -0.02em;
    white-space: nowrap;
    display: inline-block;
}
img.kv01{
    width: min(74vw,760px);

    position: absolute;
    bottom: 0;
    left: 2vw;
}
img.kv03{
    width: min(24vw,260px);
    position: absolute;
    bottom: 4%;
    right: 2vw;
}
.blue02{
    color: #6DB6EB;
}
#kv h1 span{
    display: inline-block;
        background-color: #021F2C;
        padding: 2.2% 2.8% 2.2% 1.4%;
}
#kv h1{
    font-size: clamp(14px,2.7vw,29px);
    line-height: 1;
    color: #fff;
   letter-spacing: normal;
position: absolute;
top: 19%;
right: 14%;
white-space: nowrap;
   font-feature-settings: initial;
display: inline-block;
    text-align: left;

       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;

}
.kv-copy span{
    display: inline-block;
    background-color: #fff;
    padding: 8px 12px;
}
.kv-copy{
    font-size: min(3.6vw,40px);
    line-height: 1;
    color: #021F2C;

    position: absolute;
    font-weight: 600;
    left: 4vw;
    bottom: 4%;

}
@media screen and (max-width: 900px) {
#kv{
  height: 900px;
} 
.kv-bg{

    height: 800px;
   margin-top: clamp(60px, 7vw,30px);
}
#kv h1{
right: 8%;
}
}
@media screen and (max-width: 600px) {
#kv{
    width: 100%;
        height: 500px;
}
.kv-bg {
    border-radius: 10px;
    display: inline-block;
    height: 400px;

}
#kv h1 {
        right: 4%;
    }
}

/* ----- section section01 ----- */
#section01{
    width: 100%;
    padding-top: clamp(40px, 6.666vw,80px);
    position: relative;
}
img.top01{
    display: inline-block;
        width: min(70vw,800px);
}
img.top02{
    width: min(20vw,250px);
    position: absolute;
    right: 4vw;
    top:10%;
}
p.lead{
    font-size: clamp(13px,2vw,24px);
    font-weight: 500;
    font-feature-settings: "palt";
    width: 100%;
    position: absolute;
    top:50%;
    left: 50%;
    transform: translateX(-50%)translateY(-50%);
    white-space: nowrap;
}
.copy{
    font-size: clamp(16px,2.7vw,29px);
    font-weight: 500;
    line-height: 1;
   letter-spacing: initial;
white-space: nowrap;
display: inline-block;
    text-align: left;
}
.copy01{
   color: #fff;
   font-feature-settings: initial;
       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.copy01 span{
    display: inline-block;
        background-color: #021F2C;
        padding:  0.8vw 0.8vw 0.8vw 0.4vw;
}
.posi01{
    position: absolute;
    left: 4vw;
    top:20%;
}

@media screen and (max-width: 600px) {
.posi01{
    top:4%;
}
img.top02 {

    top:0;
}

#section01 .copy01{
       -ms-writing-mode: initial;
  writing-mode: initial;
}
p.lead{

    top:60%;
}
}
/* ----- section section02 ----- */
#section02{
    padding-top: min(5%,80px);
    background: linear-gradient(180deg, #fff 0%, #fff 50%, #F2F2F2 50%, #F2F2F2 100%);
}
.sec02-wrap{
    margin: 0 0 0 8vw;
  background-image: linear-gradient(160deg, rgba(109, 182, 235, 1), rgba(12, 94, 182, 1));
    border-radius: 20px 0 0 20px;
    padding: clamp(20px,8.333vw,100px);
    position: relative;

}
.sec02-inner{
    display: inline-flex;
    gap: min(2.8vw,40px);
    position: relative;
}
.copy02{
   color: #021F2C;
   font-feature-settings: initial;
       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.copy02 span{
    display: inline-block;
        background-color: #fff;
        padding:  0.3vw 0.6vw 0.4vw 0.24vw;
}
.posi02{
    position: absolute;
    top: -20px;
    right: -40px;
}
.top03-wrap{
    position: relative;
    width:min(34vw,480px);
    margin-top: clamp(40px,6.666vw,80px);
}
img.top03{
    width: 100%;
}
#section02 h3{
    font-size: clamp(12px,1.4vw,20px);
    background-color: #fff;
    font-weight: 500;
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 0 8px;

}
@font-face {
 font-family: 'Bahagia';
 src: url('/wp-content/themes/building materials theme 2.0/fonts/Bahagia.ttf') format('truetype'),
 url('/wp-content/themes/building materials theme 2.0/fonts/Bahagia.woff') format('woff');
}
h2.top-h2 {
  font-size: clamp(80px, 15vw, 180px);
  line-height: 1;
  font-family: 'Bahagia', sans-serif;
  position: relative;
  font-weight: 400;
  display: inline-block;
}
h2.top-h2 span.char {
  display: inline-block;
  opacity: 0;
}
h2.top-h2 span.h2-posi {
  font-size: clamp(10px, 1.7vw, 20px);
  font-weight: 600;
  font-feature-settings: "palt";
  white-space: nowrap;
  opacity: 0;
}

#section02 .h2-posi{
    position: absolute;
    top: min(2.9vw,40px);
    left: min(12vw,140px);
}
#section02 .h2-wrap{
    position: absolute;
    top: 40px;
    left: 20px;
}
.btn01 {
  color: #fff;
  font-size: clamp(13px, 1.333vw, 16px);
  width: clamp(220px, 30vw, 300px);
  aspect-ratio: 5 / 1;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #0C5EB6;
  border-radius: 6px;
  margin-top: min(3vw, 50px);
  position: relative;
  overflow: hidden;
  transition: background-color 0.3s ease;
}

.btn-arrow01 {
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
  right: 0.7vw;
  font-size: clamp(6px, 1vw, 12px);
  color: #fff;
  background-color: #6DB6EB;
  width: clamp(16px, 2.5vw, 30px);
  height: clamp(16px, 2.5vw, 30px);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 60px;
  transition: background-color 0.3s ease;
}
.btn-text{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%)translateX(-50%);
  z-index: 1;
}

.btn01::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #6DB6EB;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: 0;
}

.btn01:hover::before {
  transform: scaleX(1);
}

.btn01:hover {
  color: #fff;
}

.btn01:hover .btn-arrow01 {
  background-color: #000;
}

.btn01 > * {
  z-index: 1;
}


@media screen and (max-width: 600px) {
.sec02-inner{
    display: inline-block;
}
.top03-wrap{
    width:200px;
    margin: 16px 0;
}
.sec02-wrap{
    border-radius: 10px 0 0 10px;

}
#section02 .h2-posi{
    top: 16px;
    left: 60px;
}
#section02 .h2-wrap {
    top: 16px;
    left: 16px;
}
.posi02 {
    top: -10px;
    right: -50px;
}

}


/* ----- section section03 ----- */
#section03{
    padding-top: clamp(40px, 10vw,120px);
    padding-bottom: clamp(40px, 10vw,120px);
    background-color: #F2F2F2;
}

.sec03-wrap{
    display: flex;
    gap: 3%;
    position: relative;
}
#section03 .h2-posi{
    position: absolute;
    top: min(2.5vw,30px);
    left: min(9.2vw,110px);
}
.sec03-left{
    width: 63%;
    padding-top: min(6.666%,80px);
}
img.top05{
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
}
.sec03-right{
    width: 34%;
}
#section03 h3{
    font-size: clamp(14px,1.666vw, 20px);
    color: #fff;
    background-color: #0C5EB6;
    border-radius: 4px;
    padding: clamp(4px,0.5333vw,6.4px);
    margin-top: 8px;
}
#section03 h4{
    font-size: clamp(13px,1.333vw, 16px);
    border-bottom: 1px solid #ccc;
    padding: clamp(4px,0.5333vw,6.4px);
    font-weight: 500;
}

.copy03{
   color: #fff;
}
.copy03 span{
    display: inline-block;
        background-color: #021F2C;
        padding: 0.6vw 0.4vw 0.4vw 0.4vw;
}
.posi03{
    position: absolute;
    left: -4vw;
    top:8%;
}
@media screen and (max-width: 600px) {
.sec03-wrap {
    display: block;
}
.sec03-left{
    width: 100%;
}
.sec03-right {
    width: 100%;
    margin-top: 20px;
}
#section03 .h2-posi {
    top: 12px;
    left: 50px;
}
#section03 h3{
    margin-bottom: 2px;
}
}
/* ----- section section04 ----- */
#section04{
    padding-top: min(8.333vw,100px);
    padding-bottom: min(7.5vw,90px);
    position: relative;
    background: linear-gradient(180deg, #fff 0%, #fff 50%, #ECF3FA 50%, #ECF3FA 100%);
}
#section04 .h2-posi{
    position: absolute;
    top: min(2.9vw,40px);
    left: min(8.6vw,100px);
}
ul.sec04-wrap{
    width: 120%;
    margin-left: -10%;
    position: relative;
    padding-top: 80px;
    margin-top: -80px;
}

img.archive-img{
   width: 100%;
}
.sec04-item{
    width: 18%;
    margin-left: 15px;
    margin-right: 15px;
    height: auto;
    position: relative;
    aspect-ratio: 4 / 3;
}
.sec04-item01{
    margin-top: min(3.57vw,50px);
    margin-bottom: min(3.57vw,50px);
}
.sec04-item02{
    margin-bottom: min(7.14vw,100px);
}
.sec04-item03{
    margin-top: min(7.14vw,100px);
}
.sec04-item04{
    margin-top: min(3.57vw,50px);
    margin-bottom: min(3.57vw,50px);
}
.sec04-item05{
    margin-bottom: min(7.14vw,100px);
}
#section04 h3{
   font-size: clamp(13px,1.166vw, 14px);
   color: #fff;
   background-color: #021F2C;
   position: absolute;
   right:0;
   bottom: 0;
   padding: 2px 10px 1px 10px; 
}
.copy04{
   color: #fff;
   font-feature-settings: initial;
       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.copy04 span{
    display: inline-block;
        background-color: #021F2C;
        padding:  0.3vw 0.6vw 0.4vw 0.14vw;
}
.posi04{
    position: absolute;
    left: 20vw;
    top:13vw;
}

@media screen and (max-width: 600px) {
#section04 .h2-posi {
    top: 16px;
    left: 44px;
}
.posi04 {
    left: 10vw;
}
ul.sec04-wrap{
    width: 90%;
    overflow: initial;
    margin-left: 5%;
 
}
.slick-dots li {
    width: 10px!important;
    height: 10px!important;
}
.sec04-item01, .sec04-item02, .sec04-item03, .sec04-item04, .sec04-item05{
    margin-top: 0;
    margin-bottom: 0;
}

}



/* ----- section section06 ----- */
#section06{
    padding-top: min(10vw,120px);
    padding-bottom: min(5vw,60px);
    background: #fff;
}
.sec06-wrap{
    display: flex;
    position: relative;
}
.sec06-left{
    width: 75vw;
    background: linear-gradient(160deg, rgba(109, 182, 235, 1), rgba(12, 94, 182, 1));
    margin-bottom: min(6.6666vw,80px);
        display: flex;
    align-items: center;
    padding: 40px 0;
}
.sec06-right{
    width: 50vw;
    margin-left: -25vw;
    margin-top: min(9.1666vw,110px);

}
.content1020{
    width: 1020px;
    display: inline-block;
}


.sec06-inner{
    width: 50vw;
}
img.recruit-img{
    width: 100%;
}
#section06 .h2-posi{
    position: absolute;
    top: min(2.9vw,40px);
    left: min(11.6666vw,140px);
}
#section06 p{
    width: min(30vw,300px);
  font-size: clamp(12px, 1.166vw, 14px);
  color: #fff;
  text-align: justify;
  display: inline-block;
}
.copy06{
   color: #fff;
   font-feature-settings: initial;
       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.copy06 span{
    display: inline-block;
        background-color: #021F2C;
        padding:  0.3vw 0.6vw 0.4vw 0.14vw;
}
.posi06{
    position: absolute;
    right: 20vw;
    top: -1.666vw;
}
@media screen and (max-width: 1200px) {
.content1020 {
    width: 80%;
    margin: 0 10%;
}
}
@media screen and (max-width: 600px) {
    .sec06-wrap {
    flex-direction: column-reverse;
}
.sec06-right {
    width: 90%;
    margin-left: 10%;
    margin-top: 0;
    position: relative;
}
#section06 .h2-posi {
    top: 18px;
    left: 64px;
}
.posi06 {
    right: initial;
    left: 20vw;
}
.sec06-left{
    width: 90%;
    padding: 20px 0;
    justify-content: center;
    margin-top: -40px;
    z-index: 3;
    position: relative;
}
#section06 p {
    width: 100%;

}
.sec06-inner{
    width:80%;
}
}
/* ----- section section07 ----- */
#section07{
    padding-top: min(15vw,180px);
    padding-bottom: min(10vw,120px);
    background: linear-gradient(180deg, #fff 0%, #fff 50%, #F2F2F2 50%, #F2F2F2 100%);
}
.sec07-wrap{
    width: min(90vw,1080px);
    position: relative;
    display: inline-block;
}
.company-img{
    width: 100%;
}
#section07 .h2-posi{
    position: absolute;
    top: min(4.1666vw,50px);
    left: min(10vw,120px);
}
#section07 .h2-wrap{
    position: absolute;
    top: -9vw;
    left: 20px;
}
.copy07{
   color: #fff;
}
.copy07 span{
    display: inline-block;
        background-color: #021F2C;
        padding: 0.6vw 0.4vw 0.4vw 0.4vw;
}
.posi07{
    position: absolute;
    right: -4vw;
    top: 13vw;
}
@media screen and (max-width: 600px) {
#section07 .h2-wrap {
    top: -14vw;
}
#section07 .h2-posi {
    position: absolute;
    top: 20px;
    left: 56px;
}
}
/* ----- section section08 ----- */
#section08{

    background-image: url(/wp-content/uploads/2024/12/contact01.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}
.bg01{
    position: absolute;

    width: 100%;
    height: 100%;
}
.sec08-wrap{
      padding-top: min(10vw,120px);
    padding-bottom: min(10vw,120px);

    display: inline-block;
    width: min(75vw,900px);
    background-color: rgba(230, 241, 255, 0.8);
    width: 100%;
}
.sec08-inner{
position: relative;
display: inline-block;
}
#section08 p{
    font-size: clamp(13px, 1.666vw, 20px);
    font-weight: 500;
    margin-bottom: min(1vw, 12px);
}
a.contact-btn{
    font-size: min(4.166vw,50px);
    background-color: #0C5EB6;
    color: #6DB6EB;
    font-weight: 500;
    font-family: 'Oswald',sans-serif;
    width: min(75vw,900px);
    display: inline-block;
    line-height: 1.2;
    border-radius: 6px;
     height: min(15vw,180px);
        position: relative;
        overflow: hidden;
      transition: background-color 0.3s ease;
}
a.contact-btn span{
    color: #fff;
    line-height: 1;
    font-size: clamp(10px, 1.666vw, 20px);
    display: block;
    text-align: center;
}
.btn-arrow02{
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    right: 1vw;
    font-size: min(1.666vw, 20px);
    color: #fff;
    background-color: #6DB6EB;
    width: min(5vw, 60px);
    height: min(5vw, 60px);
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 60px;
    transition: background-color 0.3s ease;
}
#section08 .btn-text{
    top:46%;
}
.contact-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #6DB6EB;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: 0;
}

.contact-btn:hover::before {
  transform: scaleX(1);
}

.contact-btn:hover {
  color: #fff;
}

.contact-btn:hover .btn-arrow02 {
  background-color: #000;
}

.contact-btn > * {
  z-index: 1;
}
.copy08{
   color: #fff;
   font-feature-settings: initial;
       -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.copy08 span{
    display: inline-block;
        background-color: #021F2C;
        padding:  0.3vw 0.6vw 0.4vw 0.14vw;
}
.posi08{
    position: absolute;
    left: 4vw;
    top: -2vw;
}

@media screen and (max-width: 600px) {
.posi08 {
    position: absolute;
    left: -3vw;
}
a.contact-btn{
    font-size: 18px;
     height: 60px;
    width: 300px;
}
}
/* ----- footer ----- */

#footer{
    padding-top: min(5vw,60px);
    padding-bottom: min(5vw,60px);
   background-color: #021F2C;
}
.footer-wrap{
    display: flex;
}
.footer-left{
   width: 30%;
   text-align: left;
}
img.f-logo{
    width: 320px;
}
.footer-right{
   width: 70%;
   text-align: right;
}
#footer p{
    font-size: 12px;
    color: #fff;
    margin-top: min(1.666vw, 20px);
	text-decoration: none!important;
}
.tel-number a{
	color: #fff!important;
	text-decoration: none!important;
}
.f-menu-parent a{
    font-size: 12px;
    color: #fff;
}
.f-menu{
    display: inline-flex;
    flex-wrap: wrap;
    gap: 30px;
}
.btn02{
    color: #fff;
    font-size: clamp(11px,1.166vw, 14px);
    width: clamp(180px,30vw,300px);
    aspect-ratio: 5 / 1;
    height: auto;
    display: inline-flex;
    align-items: center;
    border: 1px solid #fff;
    justify-content: center;
    border-radius: 6px;
    margin-top:  min(6vw,100px);
}
@media screen and (max-width: 600px) {
#footer{
    padding-top: 30px;
    padding-bottom: 30px;
}
.footer-wrap{
    display: block;
}
.footer-left {
    width: 100%;
}
.footer-right {
    width: 100%;
    text-align: left;
    margin-top: 40px;
}
img.f-logo {
    width: 240px;
}
.f-menu-parent a{
    font-size: 12px;
    color: #fff;
}
.btn02{
    margin-top:  10px;
}
}