@charset "utf-8";



/*================================

調整

================================*/

#contents {
                max-width: 1900px;
                }
@media screen and (max-width: 640px) {
#contents {
                max-width: 100%;
                }
	}


#contentswrap {
                max-width: 100%;
                }


/*================================

mainvisual

================================*/

.mainvisual{
	position: relative;
	width: 100%;
                height: 700px;
	margin: 0 auto;
                overflow: hidden;
                background: #000;
	}
@media screen and (max-width: 640px) {
.mainvisual{
                height: 60svh;
	}
	}

.mainvisual .image{
	width: 100%;
                height: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	}

.mainvisual .image img{
	width: auto;
	height: 100%;
	}

.mainvisual .kv{
	position: absolute;
                top: 0;
                left: 0;
	z-index: 2;
	width: 100%;
                height: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
                padding: 0 5%;
	}
@media screen and (max-width: 640px) {
.mainvisual .kv{
	align-items: flex-end;
	justify-content: center;
                padding: 0 0 8% 0;
	}
	}

.mainvisual .kv h2{
                margin: 0;
                padding: 0;
	width: 300px;
	}
@media screen and (max-width: 640px) {
.mainvisual .kv h2{
	width: 50%;
	}
	}

.mainvisual .kv h2 img{
	width: 100%;
	height: auto;
	}



.mainvisual_stories{
	position: relative;
	width: 100%;
                max-height: 800px;
	aspect-ratio: 16 / 8;
	margin: 0 auto;
                overflow: hidden;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories{
                max-height: auto;
	aspect-ratio: 3/4;
	}
	}

.mainvisual_stories .kv_stories{
                position: relative;
	width: 100%;
                height: 100%;
	background-position: right center;
	background-repeat: no-repeat;
	background-size: cover;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories{
	background-position: center center;
	}
	}

.mainvisual_stories .kv_stories > div{
	width: 83%;
                height: 100%;
                margin-left: 17%;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories > div{
	width: 100%;
                height: 100%;
                margin-left: 0;
                padding-top: 10%;
	align-items: center;
	justify-content: flex-start;
	}
	}

.mainvisual_stories .kv_stories > div h2{
	font-size: clamp(36px, 3vw, 46px);
	line-height: 1em;
	font-weight: 500;
                color: #000;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories > div h2{
	font-size: 1.6em;
	}
	}

.mainvisual_stories .kv_stories > div > p{
                margin-top: 1em;
	font-size: 1.1em;
	line-height: 1em;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories > div > p{
	font-size: .9em;
	}
	}

.mainvisual_stories .kv_stories > div a{
	width: auto;
	height: auto;
	background-color: rgba(255, 255, 255, .5);
	text-align: center;
                margin-top: 40px;
                padding: 20px 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	flex-direction: column;
	row-gap: 3rem;
	align-items: stretch;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories > div a{
                position: absolute;
                bottom: 7%;
                left: 30%;
                width: 40%;
                margin-top: 0;
                padding: 15px 0;
	}
	}

.mainvisual_stories .kv_stories > div a:hover{
	background-color: rgba(255, 255, 255, 1);
	}

.mainvisual_stories .kv_stories > div a p{
	display: inline-block;
	font-size: 1em;
	line-height: 1;
	}
@media screen and (max-width: 640px) {
.mainvisual_stories .kv_stories > div a p{
	font-size: .8em;
	}
	}


/*================================

リード

================================*/

.lead {
	text-align: center;
	padding: 7em 0;
	}
@media screen and (max-width: 640px) {
.lead {
	padding: 2.5em 0;
	}
	}

.lead h3{
	margin-bottom: 1.5em;
	font-size: 2.2em;
	line-height: 1em;
	font-weight: bold;
	text-indent: .1em;
	}
@media screen and (max-width: 640px) {
.lead h3{
	margin-bottom: 1em;
	font-size: 1.4em;
	line-height: 1.6em;
	text-indent: 0;
	padding: 0 2vw;
	}
	}

.lead p{
	font-size: 1.2em;
	line-height: 2.2em;
	width: 60%;
	margin: auto;
	}
@media screen and (max-width: 640px) {
.lead p{
	font-size: .9em;
	line-height: 1.8em;
	padding: 0;
	width: 90%;
	}
	}

.lead p span{
	display:block;
	font-size: 1.2em;
	line-height: 1.3em;
	}

/*================================

全て（納入実績）

================================*/

#works.all {
	position: relative;
	width: 100%;
	height: auto;
	margin: 0 auto;
	}
@media screen and (max-width: 640px) {
#works.all {
	margin-top: 6em;
	background-image: none;
	border-top: 1px solid #dedede;
	}
#works.all::after{
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	display: block;
	background-position: center top;
	background-repeat: no-repeat;
	/*background-image: url(../images/product-line.svg);*//*no-line*/
	}
	}

/*-------------------
タイトル周り
--------------------*/

#works.all .title{
	width: 100%;
	height: auto;
	}

#works.all .title{
	position: absolute;
	top: 0;
	left: 0;
	}
@media screen and (max-width: 640px) {
#works.all .title{
	width: 100%;
	height: auto;
	top: -4em;
	left: 0;
	text-align: center;
	}
	}

#works.all .title p{
	padding-left: 2%;
	font-size: 2.2em;
	line-height: 1em;
	letter-spacing: .1em;
	}
@media screen and (max-width: 640px) {
#works.all .title p{
	padding-left: 0;
	font-size: 1.6em;
	}
	}

/*-------------------
カテゴリー
--------------------*/

#works.all .categoly{
	width: 100%;
	height: auto;
	border-top: 1px solid #dedede;
	}

#works.all .categoly.artmuseum{
	position: absolute;
	top: 4em;
	left: 0;
	}
@media screen and (max-width: 640px) {
#works.all .categoly.artmuseum{
	top: 0;
	border-top: none;
	}
	}

#works.all .categoly.shophome{
	position: relative;
	border-top: 1px solid #dedede;
	}
@media screen and (max-width: 640px) {
#works.all .categoly.shophome{
	}
	}

#works.all .categoly p{
	padding-top: 2em;
	padding-left: 2%;
	font-size: 1em;
	line-height: 1em;
	font-weight: 400;
	letter-spacing: .1em;
	}
@media screen and (max-width: 640px) {
#works.all .categoly p{
	padding-top: 3em;
	padding-left: 7%;
	}
	}

#works.all .categoly p:before {
	content: '/';
	display: inline-block;
	padding-right: .3em;
	font-size: 1.8em;
	vertical-align: top;
	}

/*-------------------
全て：一覧
--------------------*/

#works.all .list {
	position: relative;
	width: 78%;
	margin-left: 22%;
                padding-bottom: 50px;
	height: auto;
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
	flex-wrap: wrap;
	flex-direction: row;
	column-gap: 2%;
	row-gap: 50px;
	}
@media screen and (max-width: 640px) {
#works.all .list {
	width: 93%;
	padding-top: 110px;
	margin-left: 7%;
	row-gap: 30px;
	}
#works.all .list.shophome {
	padding-top: 50px;
	}
	}

#works.all .list .inner{
	width: 32%;
	height: auto;
	}
@media screen and (max-width: 640px) {
#works.all .list .inner{
	display: block;
	float: none;
	width: 100%;
	}
	}

#works.all .list .inner div{
	position: relative;
	background-color: #fff;
	}

#works.all .list .inner img{
	width: 100%;
	height: auto;
                pointer-events: none;
	}

#works.all .list .inner div p.cledit{
	position: absolute;
	bottom: 1em;
	right: 1em;
	font-size: .8em;
	color: #fff;
	}

#works.all .list .inner p.en{
	margin-top: .5em;
	padding-right: 2em;
	font-size: 1.2em;
	line-height: 1.3em;
	font-weight: 400;
	}
@media screen and (max-width: 640px) {
#works.all .list .inner p.en{
	font-size: 1.2em;
	}
	}

#works.all .list .inner p.ja{
	margin-top: .5em;
	padding-right: 2em;
	font-size: .9em;
	line-height: 1.3em;
	}
@media screen and (max-width: 640px) {
#works.all .list .inner p.ja{
	line-height: 1.4em;
	}
	}

#works.all .list .inner p.date{
	margin-top: 1em;
	font-size: .8em;
	}
@media screen and (max-width: 640px) {
#works.all .list .inner p.date{
	font-size: .9em;
	}
	}

/*================================

全て（ニュース）

================================*/

#news.all {
	position: relative;
	width: 100%;
	height: auto;
	margin: 2em auto;
                margin-top: 70px;
	}
#news.all::after{
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	display: block;
	background-position: center top;
	background-repeat: no-repeat;
	/*background-image: url(../images/product-line.svg);*//*no-line*/
	}
@media screen and (max-width: 640px) {
#news.all {
	margin-top: 5em;
	background-image: none;
	/*border-top: 1px solid #dedede;*//*no-line*/
	}
	}

/*-------------------
タイトル周り
--------------------*/

#news.all .title{
	width: 100%;
	height: auto;
	}

#news.all .title{
	position: absolute;
	top: 2em;
	left: 0;
	}
@media screen and (max-width: 640px) {
#news.all .title{
	width: 100%;
	height: auto;
	top: -4em;
	left: 0;
	text-align: center;
	}
	}

#news.all .title p{
	padding-left: 2%;
	font-size: 2.2em;
	line-height: 1em;
	letter-spacing: .1em;
	}
@media screen and (max-width: 640px) {
#news.all .title p{
	padding-left: 0;
	font-size: 1.6em;
	}
	}

/*-------------------
カテゴリー
--------------------*/

#news.all .categoly{
	width: 100%;
	height: auto;
	border-top: 1px solid #dedede;
	}

#news.all .categoly.artmuseum{
	position: absolute;
	top: 6em;
	left: 0;
	}
@media screen and (max-width: 640px) {
#news.all .categoly.artmuseum{
	top: 0;
	border-top: none;
	}
	}

#news.all .categoly.shophome{
	position: relative;
	border-top: 1px solid #dedede;
	}
@media screen and (max-width: 640px) {
#news.all .categoly.shophome{
	}
	}

#news.all .categoly p{
	padding-top: 2em;
	padding-left: 5%;
	font-size: 1em;
	line-height: 1em;
	font-weight: 400;
	letter-spacing: .1em;
	}
@media screen and (max-width: 640px) {
#news.all .categoly p{
	padding-top: 3em;
	padding-left: 7%;
	}
	}

#news.all .categoly p:before {
	content: '/';
	display: inline-block;
	padding-right: .3em;
	font-size: 1.8em;
	vertical-align: top;
	}

/*-------------------
全て：一覧
--------------------*/

#news.all .list {
	position: relative;
	width: 78%;
	margin-left: 22%;
                padding-bottom: 50px;
	height: auto;
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
	flex-wrap: wrap;
	flex-direction: row;
	column-gap: 2%;
	row-gap: 50px;
	}
@media screen and (max-width: 640px) {
#news.all .list {
	width: 100%;
	margin-left: 0;
	row-gap: 20px;
	}
	}

#news.all .list .inner{
	width: 23.5%;
	height: auto;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner{
	display: block;
	width: 100%;
	}
	}

#news.all .list .inner .photo{
	display: inline-block;
	background-color: #fff;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner .photo{
	display: table-cell;
	width: 50%;
	padding-right: 4%;
	}
	}

#news.all .list .inner .photo img{
	width: 100%;
	height: auto;
                pointer-events: none;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner .photo img{
	width: 100%;
	height: auto;
	}
	}

#news.all .list .inner .text{
	display: inline-block;
	letter-spacing: normal;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner .text{
	display: table-cell;
	width: 50%;
	padding: 0 1em 0 0;
	vertical-align: middle;
	}
	}

#news.all .list .inner .text p.date{
	margin-top: 1.5em;
	font-size: .8em;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner .text p.date{
	margin-top: 0;
	font-size: .8em;
	}
	}

#news.all .list .inner .text p.ja{
                font-size: .9em;
	margin-top: .8em;
	padding-right: 1em;
	line-height: 1.7em;
	font-weight: 600;
	}
@media screen and (max-width: 640px) {
#news.all .list .inner .text p.ja{
	padding-right: 0;
	font-size: .8em;
	line-height: 1.3em;
	}
	}

/*-------------------
インフォメーション
--------------------*/

#news.all .information {
	position: relative;
	width: 78%;
	height: auto;
	padding-top: 1em;
	padding-bottom: 4em;
	margin-left: 22%;
	border-top: 1px solid #dedede;
	}
@media screen and (max-width: 640px) {
#news.all .information {
	width: 86%;
	padding-bottom: 2em;
	margin-left: 7%;
	}
	}

#news.all .information ul li{
	margin-bottom: .8em;
	}
#news.all .information ul li:last-child {
	margin-bottom: 0;
	}
@media screen and (max-width: 640px) {
#news.all .information ul li{
	margin-bottom: 1.6em;
	padding-bottom: .8em;
	border-bottom: 1px solid #dedede;
	}
#news.all .information ul li:last-child {
	margin-bottom: 0;
	border-bottom: none;
	}
	}

#news.all .information p.date{
	display: inline-block;
	width: 12em;
	font-size: .8em;
	}
@media screen and (max-width: 640px) {
#news.all .information p.date{
	display: block;
	width: auto;
	}
	}

#news.all .information p.ja{
	display: inline-block;
	font-size: .8em;
	font-weight: 500;
	}
@media screen and (max-width: 640px) {
#news.all .information p.ja{
	display: block;
	margin-top: .8em;
	font-size: .8em;
	line-height: 1.8em;
	}
	}

#news.all .information a p.ja{
	padding-bottom: .4em;
	border-bottom: 1px solid transparent;
	-webkit-transition: all .6s;
	-moz-transition: all .6s;
	-o-transition: all .6s;
	-ms-transition: all .6s;
	transition: all .6s;
	}

#news.all .information a:hover p.ja{
	border-bottom: 1px solid #333;
	}

/*================================

もっと見る

================================*/

.more {
	position: relative;
	padding: 0 0 4em 0;
	}

.more a{
	display: block;
	width: 300px;
	height: auto;
                margin-left: 22%;
	border: 1px solid #dedede;
	background-color: #fff;
	text-align: center;
	}
@media screen and (max-width: 640px) {
.more a{
	width: 86%;
                margin: auto;
	}
	}

.more a:hover{
	border: 1px solid #333;
	}

.more a p{
	display: inline-block;
	font-size: 1em;
	line-height: 4em;
	text-align: center;
	padding-right: 3em;
	background-position: right center;
	background-repeat: no-repeat;
	background-image: url(../images/arrow-right.svg);
	background-size: 25px;
	}

/*-------------------
instafeed
--------------------*/

#instafeed{
	padding: 60px 0;
	border-top: 1px solid #dedede;
	background-color: #f5f5f5;
	}
@media screen and (max-width: 640px) {
#instafeed{
	padding: 50px 0;
	}
	}

#instafeed p{
	font-size: 1.3em;
	letter-spacing: .05em;
	text-align: center;
	}
@media screen and (max-width: 640px) {
#instafeed p{
	font-size: 1.1em;
	}
	}

#instafeed p a{
	-webkit-transition: all .6s;
	-moz-transition: all .6s;
	-o-transition: all .6s;
	-ms-transition: all .6s;
	transition: all .6s;
	border-bottom: transparent;
	}

#instafeed p a:hover{
	border-bottom: 1px solid #000;
	}

#instafeed ul{
	width: 90%;
	margin: auto;
	padding-top: 30px;
	text-align: center;
	font-size: 0;
	letter-spacing: -1em;
	}
@media screen and (max-width: 640px) {
#instafeed ul{
	width: 88%;
	padding-top: 22px;
	}
	}

#instafeed ul li{
	display: inline-block;
	text-align: center;
	width: 23%;
	margin: 0 1%;
	background-color: #000;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	}
@media screen and (max-width: 640px) {
#instafeed ul li{
	width: 46%;
	margin: 8px 2%;
	}
	}

#instafeed ul li img{
	width: 100%;
	height: auto;
	}