@import url("common.css");

/* ローディングオーバーレイ */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: black;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 1;
  transition: opacity 1s ease-out;
}

.loading-overlay.hidden {
  opacity: 0;
}

/* ロゴのフェードイン */
.loading-logo {
  max-width: 300px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 2s ease-in, visibility 0s 1s;
}

.loading-logo.visible {
  opacity: 1;
  visibility: visible;
}
.container_05 {

  background-color: #fff;
}

.scrollbar-text_05 {
  display: inline-block;
  position: absolute;
  bottom: 0;
  padding: 10px 10px 70px;
  color: #fff;
  font-size: 10px;
  font-family: serif;
  line-height: 1;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  writing-mode: vertical-lr;
  left: 50%;
  transform: translateX(-50%);
}

.scrollbar_05 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 1px;
}

.scrollbar_05::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1px;
  height: 60px;
  background: #fff;
  animation: liner 2.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes liner {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  30% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  70% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.full {
  position: relative;
}
.full .img01,
.full .img02,
.full .img03,
.full .img04,
.full .img05,
.full .img06,
.full .img07 {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  height: 100vh;
  margin: 0;
  color: #fff;
  position: relative;
}
.full div.img01 {
  background-image: url(../image/top/top02.jpg);
}
.full div.img02 {
  background-image: url(../image/top/top01.jpg);
}
.full div.img03 {
  background-image: url(../image/top/top03.jpg);
}
.full div.img04 {
  background-image: url(../image/top/top04.jpg);
}
.full div.img05 {
  background-image: url(../image/top/top05.jpg);
}
.full div.img06 {
  background-image: url(../image/top/top06.jpg);
}
.full div.img07 {
  background-image: url(../image/top/top07.jpg);
}
.full .slick-dots {
    bottom: 4%;
    z-index: +1;
}
.full div.img01::before,
.full div.img02::before,
.full div.img03::before,
.full div.img04::before,
.full div.img05::before,
.full div.img06::before,
.full div.img07::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url('../image/common/ami.png') repeat;

  z-index: 1; /* 背景より前面 */
}
.top-cap h2,
.top-cap p {
  position: relative;
  z-index: 200; /* テキストを最前面に */
  font-family: "Baskervville", serif;
  font-weight: 400;
  font-style: normal;
  color: #fff;
}
.top-cap p{
	z-index: 201;
	font-size: 16px;
	margin: 10px 12px 0 0;
}
.top-cap h2{
	font-size: 36px;
letter-spacing: -3px;
}
.top-cap{
	position: absolute;
	
	text-align: right;
	top:50%;
	right: 20px;
}
/*
.img01 .top-cap{
	top:50%;
	right: 20px;
}
.img02 .top-cap{
	top:30%;
	left: 20px;
}
.img03 .top-cap{
	top:40%;
	left: 20%;
}
*/
#works{
	padding: 150px 0 70px;
}
.works-contents{
	display: flex;
	flex-wrap: wrap;
	max-width: 1600px;
	width: 100%;
	margin: 0 auto;
	justify-content: space-between;
	padding: 0 20px;
	gap: 2%;

}
.works {
  width: 32%; /* 画面幅に応じて変動 */
  position: relative; /* 高さを維持するため */
margin-bottom: 2%;
overflow: hidden;
}

.works::before {
  content: "";
  display: block;
  padding-top: calc(100% / 1.618); /* 黄金比の高さを維持 */
}

.works > * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;

  justify-content: space-between;
  text-align: center;
}
.works-contents::after {
display: block;
content:"";
width: 32%;
}

.works img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像をトリミングして枠いっぱいに表示 */
  border-radius: 6px;
  transition: transform 0.5s ease, filter 1s ease; /* スムーズなズームとモノクロからカラーへの遷移 */
  filter: grayscale(100%) brightness(0.7);
}
.works:hover img{
  transform: scale(1.2); /* ズーム効果 */
  filter: grayscale(0%) brightness(1);
}
.works h3 {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 10; /* 最前面に */
 
  color: white;
  
  font-size: 1.2rem;
  width: auto; /* 幅を自動に */
  height: auto; /* 高さを自動に */
  font-family: "Sen", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
 margin: 0 0 0 20px;
  letter-spacing: 1px;
}
.works a{
	position: absolute;
	width: 100%;
	height: 100%;
	top:0;
	left:0;
	z-index: 10;
}
.img-wrapper {
  width: 100%;
  height: 100%;
  border-radius: 6px; /* 角丸を適用 */
  overflow: hidden; /* 画像がはみ出さないようにする */
}

a.btn{
  display: block;
  width: 400px;
  
  margin: 100px auto;
  color: #fff;
  border: solid 1px #fff;
  box-sizing: border-box;
  line-height: 58px;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  position: relative;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  font-family: "Sen", sans-serif;
  padding: 10px;
  letter-spacing: 2px;
}
a.btn::before,
a.btn::after{
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
a.btn::before{
  right: 50px;
  width: 19px;
  height: 1px;
  background: #fff;
}
a.btn::after{
  right: 51px;
  width: 12px;
  height: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
a.btn:hover{
  background-color: #fff;
  color: #000;
}
a.btn:hover::before{
  background: #000;
}
a.btn:hover::after{
  border-top: 1px solid #000;
  border-right: 1px solid #000;
}
#about{
	background-color: #fff;
	color: #000;
	padding: 150px 0 200px;
}
.about-contents{
	width: 100%;
	padding: 0 20px;
	max-width: 1000px;
	margin: 0 auto;
	
	justify-content: space-between;
	line-height: 2.4;
	font-size: 14px;
	font-weight: 600;
}
.about-contents a{
	color: #000;
	text-decoration: underline;
}
.change{
	text-align: right;
}
#toggle-btn{
	display: inline-block; /* ボタンを横並びにする */
  border: none; /* 枠線をなくす */
  border-radius: 5px; /* 角丸をつける */
  padding: 10px 15px; /* ボタンの内側の余白 */
  margin: 0 0 5px; /* ボタン同士の余白 */
  background-color: #000; /* ボタンの背景色 */
  color: white; /* ボタンの文字色 */
  text-align: center; /* ボタンのテキストを中央揃えにする */
  text-decoration: none; /* テキストに下線をつけない */
  font-size: 15px; /* テキストのフォントサイズ */
  cursor: pointer; /* マウスポインタを変更する */
}
/*
.about-contents .about-l{
	width: 46%;
}*/
.about-contents .about-r{
	display: flex;
	justify-content: space-between;
}
.about-contents .about-r img{
	width: 49%;
	height: auto;
}
.about-contents .company{
	width: 48%;
}
.about-contents .about-l p{
	margin: 0 0 30px;
	text-align: justify;
text-justify: inter-ideograph;
}
.about-contents p.eng{
	color: #666;
}
.about-contents .works-contents{
	padding: 0;
	margin: 50px 0;
}
#top-contact{
	background-color: #fff;
	color: #000;
	padding: 150px 0 150px;
}
.top-contact-contents{
	width: 100%;
	padding: 0 20px;
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}
.contact-l,.contact-r{
	border:solid #000 1px;
	width: 48%;
	text-align: center;
	font-weight: 600;
	padding: 70px 0;
	transition: 0.3s;
	position: relative;
}
.top-contact-contents h3{
	margin: 0 0 20px;
}
.top-contact-contents h4{
	margin: 20px 0 0;
	font-size: 20px;
	font-family: "Sen", sans-serif;
}
.top-contact-contents h4 em{
	font-size: 16px;
	margin: 0 0 0 10px;
}
.contact-l:hover,.contact-r:hover{
	background-color: #ccc;
}
.contact-l a,.contact-r a{
	width: 100%;
	height: 100%;
	position: absolute;
	top:0;
	left:0;
}
#company{
padding: 150px 0 200px;
}
#company .about-r{
	display: flex;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	color: #fff;
	justify-content: space-between;
	align-items: flex-start
}
#company .about-r img{
	width: 48%;
	border-radius: 6px;
	height: auto;
    vertical-align: bottom;
}
#company .about-r .company{
	width: 48%;
}
#company .about-r p{
	line-height: 2.2;
	font-size: 14px;
}
#company .about-r a{
	color: #fff;
	text-decoration: underline;
}
.hidden {
  opacity: 0;
  transition: opacity 1s ease-out;
}
@media (max-width: 820px) {
	#company .about-r{
		padding: 0 20px;
	}
	.contact-l, .contact-r{
		padding: 38px 0;
	}
	.contact-r img{
		padding: 6px 0;
	}
	
}
@media screen and (max-width: 469px){
	.works-contents{
		display: block;
	}
	.works{
		width: 100%;
	}
	a.btn{
		width: 300px;
		font-size: 18px;
	}
	.about-contents{
		line-height: 2;
	}
	#company .about-r{
		display: block;
	}
	#company .about-r img{
		width: 100%;
		margin: 0 0 30px 0;
	}
	#company .about-r .company {
    width: 100%;
}
.top-contact-contents{
	display: block;
}
.contact-l, .contact-r {
    width: 100%;
    margin: 0 0 20px 0;
}
.top-cap h2{
	font-size: 20px;
}
.top-cap p{
	font-size: 12px;
}

}