@charset "UTF-8";
/* CSS Document */

*{
	margin: 0;
	padding: 0;
	list-style: none;
	text-decoration: none;
	box-sizing: border-box;
	font-family: 'BIZ UDPGothic', sans-serif;
	font-family: 'Source Code Pro', monospace;
	
}

body{
	width: 100vw;
	height: 100%;
	font-size: 62.5%; /*pxのとき、１０pxになる。remにしたとき1.0rem*/
	font-weight: lighter;
	overflow-x: hidden;
	background-color: #FFFFFF;
	line-height: 1.6;
}

/*ここからヘッダー　各ページ共通*/
.Header{
	position: fixed;
	display: block;
	top: 0;
	width: 100vw;
	height: 120px;
	padding: 80px 10px 0;
	background-color: rgba(255,255,255,0.95);
	z-index: 10;
}

.HeaderTitle{
	position: absolute;
	font-size: 2.0rem;
	font-weight: normal;
	top: 50%;
	transform: translateY(-50%) translateX(0%);
}

.headerMenu{
	position: absolute;
	overflow: hidden;
	font-size: 0.7rem;
	top: 50%;
	right: 50px;
	transform: translateY(-50%) translateX(0%);
}

.headerMenuItem{
	float: left;
	margin-left: 30px;
}

.headerMenuItem a{
	text-decoration: none;
	color:#8A8A8A;
	padding: 6px 0;
}

.headerMenuItem a:hover{
	color: #000000;
}

.headerMenuItem .work{
	color: #000000;
}

/*ここまでヘッダー*/

/* メインコンテンツ */
#contents {
	width: 95%;
	max-width: 1350px;
	margin: 140px auto 0; /* ヘッダーの高さ+余白分を確保 */
	padding: 0 20px;
}

.works-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
    padding: 20px 0;
    max-width: 1400px;
    margin: 0 auto;
}

figure {
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
    padding: 15px;
    transition: all 0.5s ease;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    height: auto; /* 高さを自動調整に変更 */
}

figure:hover {
	background-color: #E2E2E2;
	border-radius: 10px;
	cursor: pointer;
}

.contentImage {
	width: 100%;
	position: relative;
	padding-top: 100%; /* アスペクト比1:1（正方形）*/
	margin-bottom: 1rem;
	background-color: #f8f8f8; /* 画像の背景色 */
}

figure img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: contain; /* アスペクト比を保持したまま、コンテナ内に収める */
	padding: 10px; /* 画像の周りに余白を追加 */
}

figcaption {
	padding-top: 10px;
	font-size: 0.7rem;
	color: #000000;
}

figcaption .title {
	font-weight: bold;
	display: block;
	margin-bottom: 0.5rem;
}

/* フッター */
.footer {
	width: 100%;
	padding: 2rem 0;
	margin-top: 4rem;
	text-align: center;
}

/* レスポンシブ対応 */
@media screen and (max-width: 1200px) {
    .works-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    figure {
        max-width: none; /* 最大幅の制限を解除 */
    }
}

@media screen and (max-width: 768px) {
    .Header {
        height: 80px;
        padding: 40px 20px 0;
    }

    .HeaderTitle {
        font-size: 1.2rem;
        font-weight: bold;
    }

    .headerMenu {
        right: 20px;
        font-size: 0.65rem;
    }

    .headerMenuItem {
        margin-left: 15px;
    }

    #contents {
        width: 100%;
        max-width: none;
        margin: 100px auto 0; /* ヘッダーの高さ+余白分を確保 */
        padding: 0 15px;
    }

    .works-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        padding: 15px 0;
        max-width: none;
    }

    figure {
        width: 100%;
        max-width: none;
        height: auto;
        margin: 0;
        padding: 15px;
        display: flex;
        flex-direction: column;
    }

    .contentImage {
        width: 100%;
        padding-top: 100%;
        margin-bottom: 0.5rem;
    }

    figure img {
        padding: 10px;
    }
}

@media screen and (max-width: 480px) {
    .Header {
        height: 60px;
        padding: 30px 10px 0;
    }

    .HeaderTitle {
        font-size: 1.2rem;
    }

    .headerMenu {
        display: none;
    }

    #contents {
        width: 100%;
        margin: 80px auto 0;
        padding: 0 10px;
    }

    .works-grid {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 10px 0;
        width: 100%;
    }

    figure {
        width: 100%;
        margin: 0 0 15px 0;
        padding: 10px;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .contentImage {
        width: 100%;
        max-width: 300px; /* モバイルでの最大幅を制限 */
        position: relative;
        padding-top: 100%;
        margin-bottom: 0.5rem;
        background-color: #f8f8f8;
    }

    figure img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        padding: 10px;
        object-fit: contain;
    }

    figcaption {
        width: 100%;
        max-width: 300px; /* キャプションも画像と同じ幅に制限 */
        padding-top: 5px;
        font-size: 0.7rem;
        text-align: left;
    }

    /* 不要なスタイルを削除 */
    article {
        margin: 0;
        padding: 10px 0;
    }
}

/* 作品詳細ページ */
.work-detail {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1rem;
}

/* Aboutページ */
.about-content {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1rem;
}

.about-content h2 {
	text-align: center;
	margin-bottom: 2rem;
}

.about-content .title {
	font-weight: bold;
	margin: 2rem 0 1rem;
	border-bottom: 1px solid #ddd;
	padding-bottom: 0.5rem;
}

.exhibitionEvent {
	margin: 2rem 0;
}

.exhibitionEvent b {
	color: #666;
	margin-right: 1rem;
}

.contact {
	margin-top: 3rem;
}

.contact a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid #ddd;
}

.contact a:hover {
	border-bottom-color: #333;
}

@media screen and (max-width:1024px) {/* 1024pxまでの幅の場合に適応される */
	
}
	
@media screen and (max-width:768px) {/* 768pxまでの幅の場合に適応される */
	
     /*ここからヘッダー　各ページ共通*/
	.Header{
		height: 80px;
		padding: 40px 20px 0;
		
	}

	.HeaderTitle{
		font-size: 1.2rem;
		font-weight: bold;
	}
	
	.headerMenu{
	position: absolute;
	overflow: hidden;
	font-size: 0.65rem;
	top: 50%;
	right: 20px;
	transform: translateY(-50%) translateX(0%);
	}

	.headerMenuItem{
		float: left;
		margin-left: 15px;
	}

	.headerMenuItem a{
		text-decoration: none;
		color:#8A8A8A;
		padding: 6px 0;
	}
	
	/*ここまでヘッダー*/

	
#contents{
	margin: 0 auto;
	width: 97vw;
	margin-top: 120px;
	/*border: 1px solid #ccc*/
}

article{
	margin:0 auto;
	padding: 0px 10px;
	/*border: 1px solid #ccc*/
}

figure {
	display: inline-block;
    justify-content: space-between;
	width: 45.6vw;
	max-width: 900px;
	height: 380px;
	margin-left: 0px;
	margin-bottom: 50px;
	padding-top:10px;
	
	transition-duration: 0.5s;
	/*border: 1px solid #ccc;*/
}

	figure img{
		display: block;
		height: 300px;
		object-fit: contain;
		width: 100%;
		/*border: 1px solid #ccc;*/
	}

}
  
@media screen and (max-width:480px) { /* 480pxまでの幅の場合に適応される */

	
    /*ここからヘッダー　各ページ共通*/
	
	.Header{
		height: 60px;
		padding: 30px 10px 0;
		
	}

	.HeaderTitle{
		font-size: 1.2rem;
		font-weight: bold;
	}

	/*メニュー開閉ボタン*/
	.menu-btn{
 	 	position: fixed;
 	 	top: 7px;
 		right: 15px;
 	 	z-index: 21;
 	 	width: 40px;
 		height: 40px;
 	 	display: flex;
 	 	justify-content: center;
 	 	align-items: center;
		cursor:pointer;
 		color: #fff;
	}
	
	.hamburger_line {
    	position: absolute;
    	left: 8px;
    	width: 25px;
   		height: 1px;
    	background-color: #111;
    	-webkit-transition: all .6s;
    	transition: all .6s;
	}
	
	.hamburger_line_1 {
    	top: 20px;
	}
/*.hamburger_line_2 {
    top: 26px;
}*/
	.hamburger_line_3 {
    	top: 28px;
	}	

	/*メニュー本体*/
	.menu{
	  position: fixed;
	  top: 0;
	  right: 0;
	  z-index: 20;
 	 width: 100vw;
  	height: 100vh;
 	 display: flex;
 	 flex-direction: column;
  	align-items: center;
  	justify-content: center;
  	background:#C1C1C1;
	}
	
	.menu__item{
		text-decoration: none;
 	 width: 100%;
 	 height: auto;
		padding-bottom: 1rem;
 	 text-align: center;
		box-sizing: border-box;
	}
	
	.menu__item a{
		text-decoration: none;
		color:#6A6A6A;
		font-size: 1.2rem;
	}
	
	.menu__item a:hover{
		color:#000000;
	}
	
	.menu__item .work{
	color: #000000;
}

	
/* アニメーション部分-*/

	/* アニメーション前のメニューの状態 */
	.menu{
		transform: translateX(100vw);
		transition: all .3s linear;
	}
	/* アニメーション後のメニューの状態 */
	.menu.is-active{
		transform: translateX(0);
	}
	
	/*PC用メニュー*/
	.headerMenu{
		display: none;
	}
	
	
	/*ここまでヘッダー*/

	#contents{
		position: relative;
		width: 100%;
		margin:0 auto;
		margin-top: 60px;
		/*border: 1px solid #ccc*/
	}

	article{
		margin:0 auto;
		padding: 20px 0;
	}

	figure {
		display: inline-block;
    	justify-content: space-between;
		width: 100vw;
		height: 400px;
		margin-left: 0px;
		margin-bottom: 30px;
		
		transition-duration: 0.5s;
		/*border: 1px solid #ccc;*/
	
	}

	figure:hover {
		background-color:#E2E2E2;
		border-radius:10px;
		cursor:pointer;
	}

	.contentImage{
	}

	figure img{
		display: block;
		height: 300px;
		object-fit: contain;
		width: 100%;
		/*border: 1px solid #ccc;*/
	}

	figcaption{
		padding-top: 10px;
		font-size: 0.7rem;
		text-decoration: none;
		color: #000000;
	}

	figcaption .title{
		font-weight: bold;
	}
}
 
