@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap');

/* reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}
q:before,q:after{content:'';}
object,embed{vertical-align:top;}
legend{display:none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
img,abbr,acronym,fieldset{border:0;}

/* Fullscreen Image Overlay */
#fullscreen-overlay {
	display: none; /* 初期状態では非表示 */
    position: fixed; /* その場にとどまる */
    z-index: 1000; /* 最前面に表示 */
    left: 0;
    top: 0;
    width: 100%; /* 全幅 */
    height: 100%; /* 全高 */
    overflow: auto; /* 必要に応じてスクロール可能にする */
    background-color: rgba(0, 0, 0, 0.9);
    align-items: center;
    justify-content: center;
	pointer-events: auto;
}

#fullscreen-image {
    max-width: 100%;
    max-height: 100%;
	margin: 0 auto;
}

#close-button {
    position: absolute;
    top: 0px;
    right: 20px;
    color: #bbb;
    font-size: 70px;
    text-decoration: none;
	font-weight: 100;
    transition: 0.3s;
    cursor: pointer;
}

#close-button:hover,
#close-button:focus {
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}

#fixed-contact-button {
    display: none; /* 初期状態では非表示 */
    position: fixed; /* 画面に追従 */
    bottom: 0;
    left: 50%; /* 水平方向の中央に配置するための基準点 */
    transform: translateX(-50%); /* 中央揃え */
    z-index: 990; /* 他の要素より手前に表示 */
    width: 100%; /* ボタンの幅 */
    max-width: 439px; /* 最大幅 */
    text-align: center;
}

#fixed-contact-button .btn {
    padding: 12px 0;
    background-image: linear-gradient(45deg, #005EE2, #000D0F);
    color: #ffffff;
    width: 100%;
    height: auto; /* autoに変更 */
    display: block; /* Flexboxの子要素として適切に振る舞うため */
    font-size: 14px; /* フォントサイズ調整 */
    font-weight: 200;
    line-height: 1.6;
}

@media screen and (max-width: 439px) {
    #fixed-contact-button {
        width: 100%;
        bottom: 0;
    }
}

/* PC表示での調整 (style.cssの@media screen and (min-width: XXXpx) の中に含める) */
@media screen and (min-width: 440px) {
    #fixed-contact-button {
        display: none !important; /* PCでは表示しない */
    }
}


/* header */
.header{
	text-align: center;
	padding: 120px;
}
.menu{
	z-index: 999;
	display: flex;
	background: #fff;
	position: fixed;
	width: 100%;
}

/* nav */
#g-nav{
	position:fixed;
	z-index: -1;
	opacity: 0;
	top:0;
	width:100%;
	background: #000000;
	transition: all 0.3s ease;
}
#g-nav.panelactive{
	opacity: 1;
	z-index:99;
	height: 100vh;
}
#g-nav ul {
    display: none;
    position: absolute;
    z-index: 99;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}
#g-nav.panelactive ul {
    display: block;
}
#g-nav li{
  	list-style: none;
  	text-align: center;
}
#g-nav li a{
  	color: #ffffff;
  	text-decoration: none;
  	padding:10px;
  	display: block;
  	letter-spacing: 0.1em;
  	font-size: 20px;
  	padding-bottom: 40px;
}
.openbtn{
  	position:fixed;
  	z-index: 100;
  	top:5px;
  	right: 5px;
  	cursor: pointer;
  	width: 50px;
  	height:50px;
}
.openbtn span{
	display: inline-block;
	transition: all .4s ease;
	position: absolute;
	left: 14px;
	height: 3px;
	background-color: #000000;
	width: 45%;
}
.active span{
	background-color: #fff;
}
.openbtn span:nth-of-type(1) {
  	top:15px;
}
.openbtn span:nth-of-type(2) {
  	top:23px;
}
.openbtn span:nth-of-type(3) {
  	top:31px;
}
.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 13px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
}
.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}
.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 13px;
    transform: translateY(-6px) rotate(45deg);
    width: 50%;
}

/* common */
body{
	overflow-x: hidden;
	color: #000000;
	background: url(../images/bg.jpg) no-repeat center center fixed;
	background-size: cover;
	font-family:"Raleway","Zen Kaku Gothic New",serif;
	letter-spacing: normal;
	letter-spacing: 1px;
	line-height: 1.8;
	margin: 0 auto;
	opacity: 1;
    transition: opacity 0.5s ease;
}
body.fade-out {
	opacity: 0; /* フェードアウトの状態 */
}
p{
	font-size: 14px;
	color: #000000;
}
a{
	text-decoration: none;
	color: #005EE2;
	cursor: pointer;
}
a:hover{
	opacity: 70%;
	transition: .3s ease;
}
a:active, a:focus,input:active, input:focus{outline:0;}

.title{
	font-size: 34px;
	line-height: 1;
	font-weight: 200;
	margin: 150px 0 50px 0;
}
/* .caption{
	text-align: center;
} */
.detail_caption{
	padding: 30px 12px 80px 12px;
}
.right{
	text-align: right;
}
.left{
	text-align: left;
}
.center{
	text-align: center;
}
.small{
	font-size: 12px !important;
}
.gray{
	color: #888888;
}
.red{
	color: #C24F4F;
}
.new{
	font-size: 11px;
	color: #005EE2;
}
.mt10{
	margin-top: 10px !important;
}
.mt20{
	margin-top: 20px !important;
}
.mt30{
	margin-top: 30px !important;
}
.mt40{
	margin-top: 40px !important;
}
.mt60{
	margin-top: 60px !important;
}
.mt80{
	margin-top: 80px !important;
}
.mt100{
	margin-top: 100px !important;
}
.mt120{
	margin-top: 120px !important;
}
.mt160{
	margin-top: 160px !important;
}
.mt200{
	margin-top: 200px !important;
}
.fade-in {
	opacity: 0;
	transition: opacity 1.5s ease;
}
.fade-in.visible {
	opacity: 1;
}
/* sumie */
.container{
	padding: 0 12px;
	border-bottom: 0.5px solid #555555;
}
.sumie-title{
	font-size: 20px;
	padding-bottom: 15px;
}
.year-title{
	font-size: 18px;
	background-color: #333;
	text-align: center;
	letter-spacing: 2px;
	color: #fff;
}
.sumie_wrap{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 auto;
}
.sumie, .festa{
	padding: 0 0 60px;
	margin: 0 auto;
}
.festa{
	padding: 0 0px 10px;
	flex: 0 0 calc(50% - 20px);
}
.sumie img{
	max-width: 315px;
	height: auto;
}
.yoko_100{
	flex: 0 0 calc(100% - 20px) !important;
}
.yoko_100 img{
	max-width: 100% !important;
	height: auto !important;
}
div.item{
	display: none;
}
.show-more-btn{
	background-color: #ffffff;
	color: #000000;
	text-align: center;
	width: 100%;
	display: inline-block;
}
.buy-btn{
	text-align: center;
	padding: 8px;
	width: 180px;
	display: inline-block;
	background-image: linear-gradient(45deg, #005EE2, #000D0F);
	color: #ffffff;
}
.triangle {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid #000000;
    vertical-align: middle;
}

/* news */
.news{
	padding: 0 24px 100px 24px;
}
.news-txt-box{
	border-bottom: 1px dotted rgba(0, 0, 0, .2);
	padding: 20px 0;
	text-align: left;
}
.news-txt-box a{
	display: inline-block;
	width: 100%;
}
.tag_green , .tag_black , .tag_red{
	background-color: #154E9E;
	color: #ffffff;
	text-align: center;
	font-size: 11px;
	padding: 0 2px;
	border-radius: 50px;
	width: 60px;
	display: inline-block;
	margin: 0 10px 10px 0;
}
.tag_black{
	background-color: #000000;
	color: #ffffff;
}
.tag_red{
	background-color: #C24F4F;
	color: #ffffff;
}
.caution{
	color: #C24F4F;
	padding-left: 10px;
}

/* profile */
.profile{
	border-top: 0.5px solid #555555;
	padding:100px 24px;
	text-align: center;
	padding-bottom: 100px;

}
.name{
	font-size: 26px;
	line-height: 2.5;
	font-weight: 300;
}

/* contact */
.contact, .portfolio{
	border-top: 0.5px solid #555555;
	text-align: left;
	padding: 100px 24px 0 24px;
}
.btn{
	margin-top: 20px;
	padding: 18px 0;
	background-color: #000000;
	width: 100%;
	display: inline-block;
}
.btn_small{
	margin-top: 10px;
	font-size: 14px;
	padding: 8px 0;
	text-align: center;
	width: 180px;
	display: inline-block;
	border: 1px solid #005EE2;
}
.green{
	background-image: linear-gradient(45deg, #005EE2, #000D0F);
	color: #ffffff;
}
.contact a, .portfolio a{
	color: #ffffff;
	font-size: 14px;
	font-weight: 200;
	text-align: center;
	line-height: 1.8;
}

/* sns */
div.sns{
	text-align: center;
	padding: 100px 20px;
	border-bottom: 0.5px solid #555555;
}
.sns img{
	margin: 0 20px;
}

/* footer */
.footer{
	padding: 12px 0;
	text-align: left;
	font-size: 1.5vh;
	text-align: center;
}
.footer a{
	color: #ffffff;
}
.privacy, .profile_page{
	max-width: 800px;
	padding: 200px 20px;
	align-items: center;
	margin: 0 auto;
}
.profile_page{
	max-width: 660px;
}
.title_name{
	letter-spacing: 10px;
	font-size: 26px;
	padding-bottom: 30px;
}

/* copy */
.copy{
	padding: 12px 0;
	text-align: center;
}
.copy p{
	font-size: 12px !important;
	line-height: 3 !important;
}

/* fade in */
.fade-in {
	opacity: 0;
	transform: translateY(100px);
	transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}
.fade-in.visible {
	opacity: 1;
	transform: translateY(0);
}
/* 横スクロールカルーセル（画像ギャラリー）のスタイル */
.carousel-container {
    /* 枠からはみ出した部分を横スクロール可能にする */
    overflow-x: scroll;
    overflow-y: hidden;
    /* スクロールスナップの指定: 横方向の強制的なスナップを有効にする */
    scroll-snap-type: x mandatory; 
    /* スクロールバーを非表示にする（任意） */
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
    white-space: nowrap; /* 画像が改行されないようにする */
    /* スムーズなスクロールアニメーションを追加（任意） */
    scroll-behavior: smooth;
}
/* スクロールバーを非表示にする（Webkit系: Chrome, Safari） */
.carousel-container::-webkit-scrollbar {
    display: none;
}

.carousel-track {
    /* 子要素（スライド）を横並びにする */
    display: flex;
    /* 改行を禁止する（white-space: nowrap; でも可） */
    flex-wrap: nowrap;
    /* 子要素のスペースを詰める */
    width: fit-content;
}

.carousel-slide {
    /* 画像を画面幅いっぱいに表示し、画像同士の間隔を詰める */
    flex: 0 0 100%;
    max-width: 100%;
    margin-right: 0; /* 画像間の隙間をなくす */
    /* スクロールスナップの指定: スライドの開始位置にスナップさせる */
    scroll-snap-align: start;
}

.slide-image {
    width: 100%;
    height: auto;
    /* 画像がインライン要素として隙間を作らないようにブロック要素にする */
    display: block;
}

/* ドットナビゲーションのスタイル */
.carousel-dots {
    text-align: center;
    padding: 20px 0 40px; /* 上下に余白を設定 */
}

.dot {
    display: inline-block;
    height: 8px;
    width: 8px;
    margin: 0 5px;
    background-color: #bbbbbb; /* 非アクティブ時の色 */
    border-radius: 50%; /* 円形にする */
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.dot.active {
    background-color: #005EE2; /* アクティブ時の色 (テーマカラーに合わせて調整) */
}

/* 画像がクリック可能であることを示すドロップシャドウの追加 */
.thumbnail {
    /* box-shadow: X軸のオフセット Y軸のオフセット ぼかしの範囲 スプレッド 色; */
    /* わずかに浮き上がってクリックできることを示唆するシャドウ */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
    /* シャドウとホバー時の変化をスムーズにする */
    transition: box-shadow 0.3s ease-in-out;
    /* クリック可能であることをさらに示すためにカーソルを変更 */
    cursor: pointer;
}

/* マウスホバー時（クリック直前）にシャドウを削除 */
.thumbnail:hover {
    box-shadow: none;
    /* ホバー時に画像をわずかに縮小させると、押せる感じを演出できます (オプション) */
    transform: scale(0.995); 
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
    
}

/* 画像の選択・ドラッグを防止する追加のスタイル */
.zoomable-image {
    /* テキストや要素の選択を完全に無効化 */
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE/Edge */
    user-select: none; /* 標準 */
    /* 画像のドラッグを無効化 (JavaScriptの dragstart と併用) */
    -webkit-user-drag: none; /* Safari */
}

#fullscreen-overlay,
#fullscreen-image {
    /* 全画面表示時にも選択を無効化 */
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
    /* 全画面表示時にもドラッグを無効化 */
    -webkit-user-drag: none;
	}
	.sumie a {
    position: relative;
    display: block; /* 画像のサイズにリンクエリアを合わせる */
	}
	/* NEWバッジのスタイル */
	.new-badge {
    position: absolute;
    top: 15px;
    right: 20px;
    z-index: 10;
    /* 既存のtag_redのスタイルを流用 */
    background-color: #C24F4F;
    color: #ffffff;
    text-align: center;
    font-size: 11px;
    padding: 10px 5px;
    border-radius: 50px;
	}

	/* カテゴリフィルターボタン */
	.filter-btn-container{
		margin: 80px 0 50px 0;
	}
	.filter-btn {
	border: 1px solid #cccccc;
	color: #000000;
	margin: 4px;
	cursor: pointer;
	transition: 0.3s ease;
	border-radius: 50px;
	width: 84px;
	height: 40px;
	background-color: transparent;
	}
	.filter-btn:hover,
	.filter-btn.active {
	color: #005EE2;
	border: 1px solid #005EE2;
	}
	/* 非表示用クラス */
	.sumie.filtered-out {
	display: none !important;
	}

/* for PC */
@media screen and (min-width: 440px) {
	.filter-btn-container{
		margin: 120px 0 80px 0;
	}
	.filter-btn {
		width: 120px;
		height: 40px;
	}
	.title{
		font-size: 30px;
	}
	.detail_caption{
		max-width: 460px;
		margin: 0 auto;
		padding: 40px 0 80px 0;
	}
	.sumie-title{
	font-size: 20px;
	padding-bottom: 20px;
	}
	.sp_only{
		display: none;
	}
	.works{
		display: flex;
		justify-content: space-evenly;
		align-items: center;
		width: 80%;
		margin: 0 auto;
		padding: 100px 0 0;
	}
	.works-box{
		width: 70%;
		margin: 0 auto;
	}
	.news{
		max-width: 600px;
		margin: 0 auto;
	}
	.profile p{
		max-width: 300px;
		margin: 0 auto;
	}
	.contact_txt{
		max-width: 600px;
		margin: 0 auto;
		text-align: center;
	}
	.sumie_wrap{
		display: flex;
		flex-wrap: wrap;
		width: 90%;
		margin: 0 auto;
	}
	.sumie{
		text-align: center;
		margin: 0 auto;
		flex: 0 0 calc(33.33% - 10px);
	}
	.festa{
		padding: 0 0px 40px;
		flex: 0 0 calc(25% - 60px);
	}
	img.tate{
		width:  auto !important;
		height: 70vh !important;
	}
	.yoko_100 img{
		max-width: 80% !important;
		height: auto !important;
	}
	/* PC表示時のカルーセルコンテナの最大幅を設定し、中央に配置 */
    .carousel-container {
        max-width: 460px;
        margin: 0 auto;
		margin-top: 70px;
    }
    /* ドットナビゲーションの位置をカルーセルに合わせて中央揃え */
    .carousel-dots {
        max-width: 800px;
        margin: 0 auto;
    }
	.pc_center{
		text-align: center;
	}
}
@media screen and (min-width: 1200px) {
	.new-badge {
    top: 20px;
    right: 75px;
	}
}