﻿/*common.css*/

img {
	vertical-align:bottom;
}
header,footer,section,aside,article,nav {
	display:block;
}

body {
	background-color:#000;
	font-family:"Noto Sans JP",sans-serif;
	font-optical-sizing:auto;
	font-weight:300;
	font-size:100%;
	color:#fff;
}
h1,h2,h3,h4 {
	font-family:"Roboto",sans-serif;
	font-optical-sizing:auto;
}



/*ローディング*/
#loader-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.8s ease, visibility 0.8s ease;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	z-index: 40000;
}
#loader-wrapper.loaded {
	opacity: 0;
	visibility: hidden;
}
.loader {
  width: 50px;
  height: 50px;
  border: 10px solid #fff;
  border-top: 10px solid #999;
  border-radius: 50%;
  animation: spin 1s linear infinite; /* アニメーション指定 */
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
#loader-wrapper p {
  margin-top: 15px;
  font-family: "Roboto";
  color: #fff;
}



/*////////ヘッダーエリア////////*/

/*////////グローバルメニュー////////*/
#nav_area {
	position:relative;
	width:100%;
	max-width:1280px;
	min-height:70px;
	margin:0 auto;
}

h1.logo {
	position:absolute;
	width:400px;
	top:15px;
	left:2%;
	font-weight:900;
	font-size: clamp(1.5rem, 2vw, 2rem);
	color:#000;
}

nav {
	position:absolute;
	display:flex;
	right:3%;
	top:24px;
}
nav ul {
	position:relative;
	display:flex;
}
nav ul li {
	padding:5px 0 0 1.5rem;
	font-weight:bold;
	color:#000;
	transition:color 0.3s ease;
}
nav ul li:hover {
	color:rgba(0,0,0,0.3);
}
nav li a {
  position:relative;
  display:inline-block;
}
nav li a::after {
  position:absolute;
  bottom:-4px;
  left:0;
  content:'';
  width:100%;
  height:2px;
  background:rgba(0,0,0,0.3);
  transform:scale(0,1);
  transform-origin:center top;
  transition:transform .3s;
}
nav li a:hover::after {
  transform:scale(1, 1);
}
/*レスポンシブ　ハンバーガーメニュー*/
.menu-btn {
    position: absolute;
    right: 20px;
    top: 20px;
    width: 30px;
    height: 30px;
    cursor: pointer;
    z-index: 10;
    display: none; /* デスクトップでは非表示 */
}
.menu-btn span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #000;
    transition: all 0.4s;
}
.menu-btn span:nth-of-type(1) { top: 4px; }
.menu-btn span:nth-of-type(2) { top: 14px; }
.menu-btn span:nth-of-type(3) { top: 24px; }

/* ボタンがアクティブ（開いた時）の形 */
.menu-btn.active span:nth-of-type(1) { transform: translateY(10px) rotate(-45deg); }
.menu-btn.active span:nth-of-type(2) { opacity: 0; }
.menu-btn.active span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg); }


@media screen and (max-width: 600px) {
    .menu-btn {
        display: block; /* ボタンを表示 */
    }

    nav {
        display: none; /* 初期状態は非表示 */
    }

    /* メニューが開いた時のスタイル */
    nav.open {
        display: block;
        position: fixed;
        top: 70px;
        right: 0;
        width: 40%;
        height: 100vh;
        background: rgba(255, 255, 255, 0.7);
        z-index: 9;
    }

    nav.open ul {
        flex-direction: column;
        align-items: left;
        height: 100%;
		padding: 20px 0 0 0;
    }

    nav.open ul li {
        padding: 0 0 8px 20px;
        font-size: 1rem;
    }
	p.irai {
		display: none;
	}
}
	
/*依頼ボタン*/
p.irai {
	position: absolute;
	top: 80px;
	right: 1%;
	background-color:#000;
	border: 1px solid #fff;
	font-size: 1.2em;
	padding:6px;
	transition:background-color 0.3s ease;
}
p.irai:hover {
	background-color:#999;
}


/*ヒーロー画像*/
#top_area {
	position: relative;
	background-image:url("../img/top_img01.jpg");
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	height:100vh;
	margin:0 0 60px 0;
}
p.catch {
	position: absolute;
	top: 50%;
	left: 5%;
	font-family:"Shippori Mincho",serif;
	font-weight:800;
	font-style:normal;
	font-size:clamp(1.8rem,8vw,3rem);
	line-height:1.2;
	white-space: nowrap;
	text-shadow: 2px 2px 2px #000;
}


/*ついてくるヘッダー*/
header {
	width: 100%;
	height: 70px;
	position:fixed;
}
.h_bg {
	background-color:rgba(255,255,255,0.8);
	transition:background-color 1.0s ease;
	z-index:10000;
}

.h_bg.scrolled {
	background-color:rgba(255, 255, 255, 0.5);
	backdrop-filter:blur(10px); 
}





article#work h2,article#about h2,article#about h2,article#gallery h2,article#contact h2 {
	font-family:"Roboto",sans-serif;
	font-weight:600;
	font-style:normal;
	font-size:72px;
}
.more {
	width:100%;
	text-align:right;
	transition:opacity 0.3s ease;
}
.more a:hover {
	opacity:0.5;
}

/*////////work////////*/
article#work {
	position: relative;
	width:100%;
	max-width: 1280px;
	margin:0 auto;
	/*background:linear-gradient(180deg,transparent 0%,transparent 30%,#fff 70%);*/
	background-color: #000;
}
section.w_title {
	width: 88%;
	margin: 0 auto 80px auto;
}
section.w_title h2 {
	margin:0 0 32px 0;
}
section.w_title p {
	position: absolute;
	top: 70px;
	right: 5%;
	width: 57vw;
}
section.work_conts {
	width: 88%;
	display:flex;
	justify-content: space-between;
	margin:0 auto;
	padding:0 0 80px 0;
}
div.wp_box {
	width:100%;
	max-width:340px;
	background-color:#000;
	margin:0 0 24px 0;
	padding: 2% 1rem;
}
div.wp_box img {
	width:100%;
	height:auto;
	opacity:1;
	transition:opacity 0.3s ease;
}
div.wp_box img:hover {
	opacity:0.5;
}
div.wp_box h3 {
	border-bottom: 1px solid #fff;
	font-size: 1.2rem;
	font-weight: 600;
	line-height:1.5;
	padding: 0 1% 1px;
}
div.wp_box p {
	color:#fff;
	padding: 0 1% 16px 1%;
}
span.desc {
	font-size:70%;	
}

@media screen and (max-width: 1000px) {
	section.w_title p {
		position: relative;
		top: 0;
		left: 0;
		width: 100%;
	}
	section.work_conts {
		width: 100%;
		flex-direction: column;
		padding:0 0 100px 0;
	}
	div.wp_box {
		width:100%;
		max-width:1000px;
		margin:0;
	}
	
}

/*////////about////////*/
#about {
	position: relative;
	width:100%;
	max-width:1280px;
	background-color:#fff;
	color:#000;
	margin:0 auto 80px auto;
	padding:0 0 100px 0;
}
#about::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image:url("../img/about_bg.jpg");
	background-repeat: no-repeat;
	background-size: 40%;
	background-position: top right;
}
section.ab_text {
	width:47vw;
	padding:12% 0 0 10%;
}
section.ab_text h2 {
	margin:0 0 56px 0;
}
section.ab_text p {
	margin:0 0 16px 0;
}

@media screen and (max-width: 700px) {
	
	#about {
		padding:300px 0 100px 0;
	}
	#about::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;    
		height: 300px;  
		background-image:url("../img/about_bg.jpg");
		background-repeat: no-repeat;
		background-position: top -150px left;
		background-size: 100%;
	}
	section.ab_text {
		width:100%;
		padding:15% 10% 0 10%;
	}
	
}


/*////////gallery////////*/
#gallery {
	width:100%;
	max-width:1280px;
	margin:0 auto;
	padding:0 0 120px 0;
}
#gallery h2 {
	margin:0 0 16px 5%;
}
#gallery ul {
	margin:0 0 120px 5%;
}
#gallery ul li {
	background-image:url(../img/li_yajirusi.png);
	background-repeat:no-repeat;
	background-position:left center;
	padding:0 4px 0 25px;
}
#gallery ul li a {
	opacity:1;
	transition:opacity 0.3s ease;
}
#gallery ul li a:hover {
	opacity:0.5;
}

/*カルーセルコンテナ*/
.mugen_loop {
	width:90%;
	max-width:1280px;
	align-items:center;
	margin:0 auto;
}
.loop_track {
	display:flex;
	overflow-x:auto;
	white-space:nowrap;
	-webkit-overflow-scrolling:touch;	/*iOSでのなめらかスクロール*/
	scroll-behavior:smooth;
	gap:0 16px;
	padding:10px;
	-ms-overflow-style:none;	/*IE,Edge*/
	scrollbar-width:none;	/*Firefox*/
}

.scroll-gallery::-webkit-scrollbar {
	display: none;	/*Chrome,Safari,Opera*/
}


.slide {
	flex:0 0 auto;
	width:200px;
}

.slide img {
	width:100%;
	display:block;
	border-radius:0;
	transition:border-radius 0.3s ease,opacity 0.3s ease;
}
.slide img:hover {
	border-radius:20px;
	opacity:0.5;
}


.arrow_box {
	width:100%;
	position:relative;
	font-weight:bold;
	z-index:9999;
}
.arrow_prev button {
	width:30px;
	position:absolute;
	top:0;
	left:0;
	background-color:rgba(255, 255, 255, 0.8);
	color:#000;
	text-align:center;
	padding:5px 4px;
}
.arrow_next button {
	width:30px;
	position:absolute;
	top:0;
	right:0;
	background-color:rgba(255, 255, 255, 0.8);
	color:#000;
	text-align:center;
	padding:5px 4px;
}

/*////////contact////////*/
#contact {
	width:100%;
	max-width:1280px;
	margin:0 auto;
	background-image:url("../img/contact_bg.jpg");
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	min-height:600px;
	margin-bottom:60px;
}
section.contact_btn_box {
	width: 100%;
	max-width: 900px;
	padding: 10% 0 0 10%;
}
section.contact_btn_box h2 {
	text-shadow: 1px 1px 2px #000;
}
.contents_subtext {
	margin:0 0 16px 0;
	text-shadow: 1px 1px 2px #000;
}
.contact_btn {
	width:100%;
	max-width:300px;
	text-align:center;
	background-color:#000;
	margin:0 0 8px 0;
	padding:8px;
	transition:background-color 0.3s ease;
}
.contact_btn:hover {
	background-color:#999;
}


@media screen and (max-width:600px) {
	section.contact_btn_box {
		width:100%;
		max-width:300px;
		margin:0 auto;
		padding: 10% 0 0 0;
	}
}

/*////////フッターエリア////////*/
footer {
	position:relative;
	width:100%;
	max-width:1280px;
	min-height:300px;
	margin:24px auto 0;
}
.copy {
	position:absolute;
	width:45vw;
	top:0;
	left:5%;
}
.sitemap {
	position:absolute;
	width:35vw;
	top:0;
	right:5%;
	border-left:1px solid #fff;
	padding:0 0 0 24px;
}

p.footer_logo {
	font-size:150%;
	transition:opacity 0.3s ease;
}
p.copyright {
	margin:0 0 16px 0;
}
.sns {
	display:flex;
	transition:opacity 0.3s ease;
}
.sns h3 {
	border-right:1px solid #fff;
	font-size:120%;
	margin:0 8px 0 0;
	padding:0 8px 0 0;
}
img.insta {
	max-width:30px;
	heigth:auto;
	margin:0 8px 0 0;
}
.sitemap h3 {
	font-size:120%;
	border-bottom:1px solid #fff;
}
.sitemap ul {
	width:90%;
	margin:0 auto;
}
.sitemap ul li {
	background-image:url(../img/li_yajirusi.png);
	background-repeat:no-repeat;
	background-position:right center;
}
footer a {
	transition:opacity 0.3s ease;
}
footer a:hover {
	opacity:0.5;
}
@media screen and (max-width: 600px) {
	footer {
		width:80%;
		margin: 0 auto 100px;
		padding: 0 2%;
	}
	.copy {
		position:relative;
		width:100%;
		top:0;
		left: 0;
		margin: 0 0 32px 0;
	}
	.sitemap {
		position: relative;
		width:100%;
		top:0;
		left: 0;
		border-left: none;
		padding: 0;
	}
	.sitemap ul {
		width: 100%;
	}
}



/*///////サブページ///////*/
/*共通*/
#wrap {
	position:relative;
	top: 70px;
	width: 100%;
	max-width: 1280px;
	background-color:#fff;
	color:#000;
	margin:0 auto 90px auto;
	padding:0 0 20px 0;
}
#page_ttl {
	position:relative;
	max-width:1280px;
	height:400px;
}
.work_ttl {
	background-image:url(../img/work_h2.jpg);
	background-repeat:no-repeat;
	background-position: center;
	margin:0 0 48px 0;
}
.about_ttl {
	background-image:url(../img/about_h2.jpg);
	background-repeat:no-repeat;
	background-position: center;
	margin:0 0 80px 0;
}
.gallery_ttl {
	background-image:url(../img/gallery_h2.jpg);
	background-repeat:no-repeat;
	background-position: center;
}
.contact_ttl {
	background-image:url(../img/contact_h2.jpg);
	background-repeat:no-repeat;
	background-position: center;
	margin:0 0 50px 0;
}
#page_ttl h2 {
	font-family:"Roboto",sans-serif;
	font-size: clamp(2.5rem,4vw,4rem);
	line-height:1;
	font-optical-sizing:auto;
	font-weight:800;
	font-style:normal;
	font-variation-settings:"wdth"100;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	color:#fff;
	margin:0;
	padding:280px 0 0 5%;
}
#page_ttl p {
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	color:#fff;
	padding:0 0 0 5%;
}
#main_cnts {
	position:relative;
	width: 100%;
	max-width:1180px;
	margin:0 auto;
}
#main_cnts h3 {
	font-family:"Roboto",sans-serif;
	font-size:2rem;
	line-height:1;
	font-optical-sizing:auto;
	font-weight:800;
	font-style:normal;
	font-variation-settings:"wdth"100;
	border-bottom:1px solid #000;
}
#main_cnts p.h3_desc {
	margin:0 0 24px 0;
}
.pankuzu {
	padding:0 50px 20px;
	
}
/*上に戻るボタン*/
.back {
	display:block;
	position:sticky;
	z-index:20000;
	width:60px;
	height:60px;
    bottom:30px;
	background-color:#000;
	border:2px solid #fff;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
	color:#fff;
	font-weight:600;
    margin:0 30px 0 auto;
    opacity:0.7;
    transition:background 0.3s ease,transform 0.3s ease;
}
.back:hover {
	transform:scale(1.1);
	background:#5b5b5c;
}

@media screen and (max-width:650px) {
	
	#main_cnts h3 {
		margin: 0 2%;
	}
	#main_cnts p.h3_desc {
		margin:0 2% 24px 2%;
	}
}

/*/////work/////*/
section.first_text {
	margin:0 0 40px 0;
}
article.wo_cnts {
	margin:0 0 40px 0;
}
.tp_box {
	margin:0 0 24px 0;
}
.work_pt_text_box {
	display:flex;
	gap:30px;
}
.work_pt {
	width:40%;
}
.work_pt img {
	margin:0 0 24px 0;
}
.work_text {
	width:430px;
	margin:0 auto;
}
.work_text h4 {
	font-family:"Noto Sans JP",sans-serif;
	font-optical-sizing:auto;
	font-size:1.3rem;
	font-weight:900;
	margin:60px 0 40px 0;
}
.work_text p {
	margin:0 0 40px 0;
}
.work_irai_btn {
	background-color:#d6d6d6;
	padding:24px;
}
.work_irai_btn dl {
	margin:0 0 8px 0;
}
.work_irai_btn dt {
	font-weight:900;
	line-height:1.5;
	border-bottom:1px solid #000;
	margin:0 0 2px 0;
}
.work_irai_btn dd {
	padding:0 0 16px 0;
}
.work_btn {
	display:flex;
	gap:24px;
}
.work_btn a {
	display:block;
	width:50%;
	background-color:#000;
	color:#fff;
	font-weight:500;
	text-align:center;
	padding:8px;
}


@media screen and (max-width:800px) {
	
	section.first_text {
		margin:0 2% 40px;
	}
	
	.tp_box {
		margin:0 0 4px 0;
	}
	.work_pt_text_box {
	display:flex;
	flex-direction: column;
	gap:0;
}
	.work_pt {
		display: flex;
		width: 100%;
		overflow-x: hidden;
	}
	.work_pt img {
		width: 49vw;
		margin:0 4px 0 0;
	}
	.work_text {
		width: 90%;
		margin:0 auto;
	}
	.work_text h4 {
		font-family:"Noto Sans JP",sans-serif;
		font-optical-sizing:auto;
		font-size:5vw;
		font-weight:900;
		margin:60px 0 40px 0;
	}
	.work_text p {
		margin:0 0 40px 0;
	}
	.work_irai_btn {
		background-color:#d6d6d6;
		padding:24px;
	}
	.work_irai_btn dl {
		margin:0 0 8px 0;
	}
	.work_irai_btn dt {
		font-weight:900;
		line-height:1.5;
		border-bottom:1px solid #000;
		margin:0 0 2px 0;
	}
	.work_irai_btn dd {
		padding:0 0 16px 0;
	}
	.work_btn {
		display:flex;
		gap:24px;
	}
	.work_btn a {
		display:block;
		width:50%;
		background-color:#000;
		color:#fff;
		font-weight:500;
		text-align:center;
		padding:8px;
	}
}
/*/////about/////*/
section.about_cnts_box {
	width: 90%;
	margin:0 auto;
	padding:0 0 80px 0;
}
div.about_photo_box {
	display:flex;
	width: 100%;
	gap:2px;
	margin: 0 0 40px 0;
}
div.about_photo_box img {
	width: 25vw;
}


div.about_text_box {
	display:flex;
	margin: 0 auto 40px;
}
div.danraku {
	width: 65vw;
	margin: 0 0 24px;
	padding: 0 10% 0 0;
}
div.sasie {
	width: 30vw;
	margin: 0 0 24px;
}

div.danraku p {
	margin: 0 0 32px 0;	
}
div.sasie img {
	margin: 0 0 2px 0;
	
}
div.danraku dl {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 48px;
}
div.danraku dt {
	width: 30%;
	font-weight: 600;
	border-right: 1px solid #999;
	margin: 2px 0;
	padding: 0 2%;
}
section.about_cnts_box dd {
	width: 70%;
	padding: 2px 2%;
}

@media screen and (max-width: 1000px) {
	
	div.about_text_box {
	flex-direction: column;
	}
	div.danraku {
		width: 100%;
		padding: 0;
	}
	div.sasie {
		display: flex;
		width: 100%;
		gap: 1px;
	}
}

/*/////gallery/////*/
.gall_cnts_menu {
	padding:0 0 80px 0;	
}
.gall_cnts_menu ul {
	margin:0 auto 0 3%;
	padding:40px 0 0 0;
}
.gall_cnts_menu ul li {
	padding:0 0 8px 0;
	transition:opacity 0.3s ease;
	list-style:square;
}
.gall_cnts_menu ul li a {
 	position:relative;
 	display:inline-block;
	opacity:1;
	transition:opacity 0.3s ease,transform 0.3s ease;
	font-size:1rem;
	font-weight:500;
}
.gall_cnts_menu ul li a::after {
  position:absolute;
  bottom:-4px;
  left:0;
  content:'';
  width:100%;
  height:2px;
  background:rgba(0,0,0,0.5);
  transform:scale(0,1);
  transform-origin:left top;
  transition:transform .6s;
}
.gall_cnts_menu ul li a:hover {
	opacity:0.5;
}
.gall_cnts_menu ul li a:hover::after {
  transform:scale(1, 1);
}

/*gallery 写真ページ*/
.gall_cnts_box {
	position:relative;
}

/*サブメニュー*/
.gall_sub_menu_bg {
	position:sticky;
	top:70px;
	left:0;
	z-index:9000;
	margin:0 auto;
	width:100%;
	background-color:rgba(0,0,0,0.8);
	backdrop-filter:blur(10px); 
}
ul.gall_sub_menu {
	display:flex;
	width:1080px;
	margin:0 auto 24px auto;
}
ul.gall_sub_menu li {
	width:200px;
	text-align:center;
	color:#fff;
	padding:16px 0;
}
ul.gall_sub_menu li:nth-child(even) {
 	width:20px;
}
ul.gall_sub_menu li a {
 	position:relative;
 	display:inline-block;
	opacity:1;
	transition:opacity 0.3s ease,transform 0.3s ease;
	font-weight:500;
}
ul.gall_sub_menu li a::after {
  position:absolute;
  bottom:-4px;
  left:0;
  content:'';
  width:100%;
  height:2px;
  background:rgba(255,255,255,0.5);
  transform:scale(0,1);
  transform-origin:left top;
  transition:transform .6s;
}
ul.gall_sub_menu li a:hover {
	opacity:0.5;
}
ul.gall_sub_menu li a:hover::after {
  transform:scale(1, 1);
}

.gallery_layout {
 	position:relative;
 	width:100%;
}
.gall_pt {
	width:70%;
	height:auto;
	margin:0 auto;
	padding: 0 0 32px 0;
}

/*/////form/////*/
.form {
	max-width:700px;
	margin:20px auto;
}
.form_conts {
    max-width:600px;
	border:1px solid #000;
	background:#fff;
    margin:20px auto;
    padding:20px;
}
.form_box {
	display:flex;
	align-items:center;
	margin:0 0 16px 0;
}
.form_label {
	flex:0 0 200px;
	font-weight:600;
	padding:8px 16px;
}
.form_control {
	flex:1;
	border:1px solid #000;
	color:#000;
	padding:8px;
}


span.marker {
	background:linear-gradient(transparent 50%,#cebbfa 50%);
}
span.required {
	background:#FF0004;
	border-radius:4px;
	font-size:80%;
	color:#fff;
	margin:0 0 0 4px;
	padding:2px 3px;
}