section.kv {
	height: 100vh;
}
.kv {
  position: relative;
  overflow: hidden;
}

.kv-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.1);
  z-index: -1;
  will-change: transform;
}
section.kv p.temp{
background-color: #3a3937;
color: #F6F6F6;
padding: .5rem;
}
.kv p:nth-child(1){
    font-size: 3rem;
    line-height: 1.5;
}
@media screen and (max-width: 768px) {
.kv p:nth-child(1){
    font-size: 8vw;
    line-height: 1.5;
}
}
section.sec-service,
section.sec-partner{
    margin:10vw 0;
}

.sec-partner .zoom-bg {
  position: relative;
  overflow: hidden;
}
.sec-partner .zoom-bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../image/partner.webp);
  background-size: contain; /* 要望通り contain に */
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.1);
  transition: transform 2s ease;
  z-index: 0;
}

.sec-partner .zoom-bg.zoomed::before {
  transform: scale(1); /* ズームイン */
}

@media screen and (max-width: 768px) {
  
section.sec-service,
section.sec-partner{
    margin:5vh 0;
}
}

section.kv {
  position: relative;
  overflow: hidden;
}

/* 背景用疑似要素 */
section.kv::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../image/top-kv.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.1); /* 初期状態は拡大 */
  transition: transform 2.5s ease;
  z-index: -1;
}

/* アニメーション後の状態 */
section.kv.zoomed::before {
  transform: scale(1); /* ズームアウト */
}


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

section.kv::before {
  background-image: url(../image/top-kv_sp.webp);
}
}

section.kv .kv-content{
    display: flex;
    justify-content: center;
    flex-direction: column;
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left: 50%;
}
section.kv .kv-content span{
    width: 60px;
    height: 3px;
    background-color: #3a3937;
}
section.kv .kv-content p{
    margin-top: 50px;
}

@media screen and (max-width: 768px) {
    
section.kv .kv-content{
    transform: translate(-50%, -50%);
    left: 50%;
    width: 90%;
}
}
/*******/
section h2{
    font-size:1rem;
    font-weight: normal;
    position: relative;
    padding-left: 80px;
}
section h2:before{
    content:"";
    width: 60px;
    height: 1px;
    background-color: #000;
    position: absolute;
    left: 0;
    top:50%;
    transform: translateY(-50%);
}
section.sec-service{
    position: relative;
    z-index: 0;
}
section.sec-service ul li img{
    max-width: 40px;
}
section.sec-service ul {
  display: flex;
  flex-wrap: wrap; 
  gap:90px 30px; 
  padding: 0;
  margin: 0;
  list-style: none;
    text-align: center;
}

section.sec-service ul li {
  width: calc((100% - 60px) / 3);
  box-sizing: border-box;
  text-align: center;
}

section.sec-service ul li h3{
    text-align: center;
    font-size: 1rem;
    font-weight: normal;
}


@media screen and (max-width: 768px) {
  
section.sec-service ul {
  gap:20px 20px; 
}

section.sec-service ul li h3{
    font-size: .8rem;
}

}
/***********************/

.secBg {
  margin: 10vw 0;
  background-color: #F6EDE5;
  position: relative;
  overflow: hidden;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  z-index: 0;
}
.secBg .bg {
  content:"";
  position: absolute;
  top: 50%; left: 0;
  width: 100%;
  background-image: url("../image/secBg.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  will-change: transform;
  z-index: -1;
  height: 120%;
}
.secBg:before {
  content: "";
  position: absolute;
  height: 300px;
  width: 300%;
  background: #F6F6F6;
  bottom: -200px;
  left: -100%;
  -webkit-transform: rotate(-8deg);
  -ms-transform: rotate(-8deg);
  -o-transform: rotate(-8deg);
  transform: rotate(-8deg);
}

.secBg:after {
  content: "";
  position: absolute;
  height: 300px;
  width: 300%;
  background: #F6F6F6;
  top: -200px;
  left: -100%;
  -webkit-transform: rotate(-8deg);
  -ms-transform: rotate(-8deg);
  -o-transform: rotate(-8deg);
  transform: rotate(-8deg);
}

section.sec-contact{
    padding-bottom: 15vw;
}

@media screen and (max-width: 768px) {
  
section.sec-contact{
  margin-top: 0;
    padding-bottom: 20vh;
}
section.sec-contact .wrap_ttl{
  padding-top: 0;
}
}
section.sec-contact{
  position: relative;
  overflow: auto;
}
.decoration{
  position: relative;
  display: block;
}
img.decoration-message{
  position: absolute;
  bottom: -50px;
  z-index: 1;
  width: 30vw;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(300px, 30vw, 400px);
}
/*****************/
section.secMessage {
  position: relative;
  overflow: hidden;
  min-height: 70vh;
  background-color: #F3EAE5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  padding: 0 10vw;
  z-index: 0;
}

.secMessage .bg {
  content:"";
  position: absolute;
  top: 50%; left: 0;
  width: 100%;
  background-image: url("../image/bg_message.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  will-change: transform;
  z-index: -1;
  height: 100vh;
}
section.secMessage p:nth-child(2),
section.secMessage p:nth-child(3){
font-size: clamp(25px, 5vw, 3rem);
margin-bottom: 0;
padding: 0;
line-height: 1;
}
section.secMessage p:nth-child(4){
margin-top: 5vw;
}
@media screen and (max-width: 768px){

section.secMessage p:nth-child(4){
margin-top: 10vw;
}
}
/*loading**************/
#loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity .8s ease;
}

.loader-inner {
  text-align: center;
}

.logo {
  width: 150px;
  margin-bottom: 30px;
}

.loading-bar {
  width: 150px;
  height: 2px;
  background: #eee;
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}

.loading-progress {
  width: 0%;
  height: 100%;
  background: #333;
  animation: loadBar 2s linear forwards;
}

@keyframes loadBar {
  to {
    width: 100%;
  }
}

#loading-screen.fadeout {
  opacity: 0;
  pointer-events: none;
}
/***************/
section.sec-portfolio a:after{
  background-image: url(../image/icon-key.webp);
  background-repeat: no-repeat;
  background-size: 20px;
  background-position: center;
  content: "";
  width: 25px;
  height: 25px;
  position: absolute;
  z-index: 1;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 0;
  background-color: none;
}
a.btn_black{
margin-top: 5vh;
}