@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, #00697B, #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: #00697B;
	cursor: pointer;
}
a:hover, .active{
	opacity: 30%;
	transition: .3s ease;
}
a:active, a:focus,input:active, input:focus{outline:0;}

.title{
	font-size: 34px;
	line-height: 1;
	font-weight: 200;
	margin: 80px 0 0;
}
.caption{
	padding: 80px 0 140px 0;
}
.right{
	text-align: right;
}
.left{
	text-align: left;
}
.center{
	text-align: center;
}
.small{
	font-size: 12px;
}
.gray{
	color: #888888;
}
.red{
	color: #d44c4c;
}
.new{
	font-size: 11px;
	color: #00697B;
}
.mt10{
	margin-top: 10px;
}
.mt20{
	margin-top: 20px;
}
.mt30{
	margin-top: 30px;
}
.mt40{
	margin-top: 40px;
}
.mt100{
	margin-top: 100px;
}
.mt200{
	margin-top: 200px;
}
.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: 16px;
	padding-bottom: 15px;
}
.sumie_wrap{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 auto;
}
.sumie{
	padding: 0 0 80px;
	margin: 0 auto;
	flex: 0 0 calc(50% - 20px);
}
.sumie img{
	padding: 0 0 20px;
	max-width: 343px;
	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, #00697B, #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 20px 100px 20px;
}
.news-txt-box{
	border-bottom: 1px dotted rgba(0, 0, 0, .2);
	padding: 20px 0;
}
.news-txt-box a{
	padding-top: 15px;
	display: inline-block;
	width: 100%;
}
.tag_green , .tag_black{
	background-color: #00697B;
	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;
}
.caution{
	color: #d44c4c;
	padding-left: 10px;
}

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

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

/* contact */
.contact{
	border-top: 0.5px solid #555555;
}
.contact, .portfolio{
	text-align: left;
	padding: 100px 20px 0 20px;
}
.btn{
	margin-top: 20px;
	padding: 18px 0;
	background-color: #000000;
	width: 100%;
	display: inline-block;
}
.green{
	background-image: linear-gradient(45deg, #00697B, #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{
	max-width: 800px;
	padding: 200px 20px;
	align-items: center;
	margin: 0 auto;
}
.title_name{
	letter-spacing: 10px;
	font-size: 26px;
	padding-bottom: 30px;
}

/* copy */
.copy{
	padding: 12px 40px;
	text-align: center;
	font-size: 12px;
}

/* 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);
}

/* for PC */
@media screen and (min-width: 440px) {
	.title{
		font-size: 30px;
	}
	.caption{
		text-align: center;
	}
	.sumie-title{
	font-size: 18px;
	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;
		padding: 200px 0 200px;
	}
	.profile{
		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);
	}
	img.tate{
		width:  auto !important;
		height: 70vh !important;
	}
	.yoko_100 img{
		max-width: 80% !important;
		height: auto !important;
	}

}

