@charset "UTF-8";

/**********
works component
***********/

.works_wrapLink {
	display: block;
	text-decoration: none;
	color: inherit;
}

.works_imageBlock {
	text-align: center;
}

.works_imageBlock .circleImage {
	opacity: .6;
}

.works_title {
	font-weight: 600;
	letter-spacing: .012em;
	/* 細く見せたくないのでantialiasedにしない */
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
	font-smoothing: auto;
}

.works_title sup {
	position: relative;
	font-size: .5em;
	top: -1em;
	left: .3em;
}

.works_title sub {
	font-size: .5em;
}

.works_clientName {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .012em;
	/* 細く見せたくないのでantialiasedにしない */
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
	font-smoothing: auto;
}

.works_clientName:empty {
	display: none;
}

.works_clientName span {
	font-size: .67em;/* 12px/18px相当 */
	display: inline-block;
	margin-right: 5px;
}

.works_tagList .tag {
	margin-top: 6px;
	/* 細く見せたくないのでantialiasedにしない */
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
	font-smoothing: auto;
	line-height: 1.2;
}

.works_text {
	margin-top: 41px;
}

/* スマホ */
@media (max-width: 767px) {    

    .works_title {
		font-size: 25px;
		line-height: 1.5;
		margin: 0 0 17px;
	}

	.works_clientName {
		margin: -6px 0 5px;
	}

	.works_imageBlock {
		margin: 24px auto 0;
		padding: 0 40px;
	}

	.works_link {
		margin: -5px 0 0; /* works_linkの上の要素に何がくるかわからないので、-5pxと決めてしまうのは、使い回しにくいので削除したい */
	}

}

/* スマホより大きいとき */
@media (min-width: 768px) {

	.works {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
			-ms-flex-pack: justify;
				justify-content: space-between;
		/* flex itemをstretchのままにしておくと、画像が正円ではなくなるので、何かしら設定すること */
		-webkit-box-align: center;
			-ms-flex-align: center;
				align-items: center;
	}

    .works_title {
		font-size: 36px;
		line-height: 1.3;
		margin: 7px 0 20px;
	}

	.works_clientName {
		margin: 0 0 20px;
		line-height: 1.3;
	}

	.works_tagList {
		font-size: 14px;
	}

	.works_link {
		margin-top: 28px;
	}

}

/**********
works small
***********/

.worksSmall {
	display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
	-webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.worksSmall_imageBlock {
	-webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
}

.worksSmall_imageBlock .circleImage {
	opacity: .6;
}

/* スマホ */
@media (max-width: 767px) {

	.worksSmall_imageBlock {
		/*width: 39.28% 110px / (320px - 20px*2 ) */
		width:25%;
	}

	.worksSmall_textBlock {
		padding: 0 0 0 5%;
	}

	.worksSmall .works_title {
		font-size: 20px;
		margin: .45em 0 .25em;
	}

	.worksSmall .works_clientName {
		font-size: 20px;
		margin: 0 0 5px;
	}

	.worksSmall .tagList {
		font-size: 14px;
	}

	.worksSmall .works_tagList .tag {
		margin-top: .3em;
	}

}

@media (max-width: 480px) {
	.worksSmall_imageBlock {
		width: 39.28% ; /*110px (320px - 20px*2 ) */
	}

	.worksSmall .works_title {
		font-size: 14px;
	}

	.worksSmall .works_clientName {
		font-size: 14px;
	}

	.worksSmall .tagList {
		font-size: 9px;
	}

}

/* スマホより大きいとき */
@media (min-width: 768px) {

	.worksSmall_imageBlock {
		/*width: 220px;*/
		width: 47%;
	}

	.worksSmall_textBlock {
		padding: 0 0 0 18px;
	}

	.worksSmall .works_title {
		font-size: 20px;
		margin: 0 0 3px;
	}

	.worksSmall .works_clientName {
		font-size: 20px;
		margin: 0 0 3px;
	}

	.worksSmall .tagList {
		font-size: 14px;
	}

}

@media all and (-ms-high-contrast:none){
	*::-ms-backdrop, .worksSmall_imageBlock .circleImage {
		display: block;
	}
}

/**********
works list ( works component のスタイルを上書きしているので、works componentの下に書くこと )
***********/


.worksList {
	max-width: 960px;
	margin: 0 auto;
	/* いろんなところで使っているので、marginやpaddingを追加するときは注意！ */
}

.worksList_item {
	border-top: 1px solid #707070;
}

.worksList_item:first-child,
.worksList_item.first-child {
	border-top: none;
}

.worksList_link {
	text-decoration: none;
	display: block;
	max-width: 840px;
	margin-left: auto;
	margin-right: auto;
	transition: all .4s;
}

body:not(.isTouch) .worksList_link:hover .circleImage {
	opacity: 1;
}

body:not(.isTouch) .worksList_link:hover .circleImage img{
	-webkit-transform: scale(1.1);
	-moz-transform: scale(1.1);
	-o-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
}

/* in view animation */

.worksList_item, 
.worksList_item .works_clientName, 
.worksList_item .works_tagList, 
.worksList_item .works_imageBlock, 
.worksList_item .works_link {
	opacity: 0;
	transform: translate3d(0, 5px, 0);
	transition-property: all;
	transition-duration: .6s;
	/*easeInOutCubic*/
	-webkit-transition-timing-function : cubic-bezier(0.645, 0.045, 0.355, 1);
         -o-transition-timing-function : cubic-bezier(0.645, 0.045, 0.355, 1);
            transition-timing-function : cubic-bezier(0.645, 0.045, 0.355, 1);
}

.worksList_item.inView, 
.worksList_item.inView .works_clientName, 
.worksList_item.inView .works_tagList, 
.worksList_item.inView .works_imageBlock, 
.worksList_item.inView .works_link {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.worksList_item.inView {
	transition-delay: 0s;
}

.worksList_item.inView .works_title {
	transition-delay: 0s;
}

.worksList_item.inView .works_clientName {
	transition-delay: .05s;
}

.worksList_item.inView .works_tagList {
	transition-delay: .1s;
}

.worksList_item.inView .works_imageBlock {
	transition-delay: .05s;
}

.worksList_item.inView .works_link {
	transition-delay: .2s;
}


/* スマホ */
@media (max-width: 767px) {    

    .worksList_link {
		padding: 25px 0 35px;
	}

}

/* スマホより大きいとき */
@media (min-width: 768px) {    

    .worksList_link {
		padding: 52px 0;
	}

	.worksList .works_textBlock {
		margin: -7px 0 0;/* works archive *//*デザインで、textBlockが垂直中央より若干上にあげっている*/
	}

	.worksList .works_imageBlock {
		-webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
		max-width: 306px;
		width: 36.43%;/* 306px/840px */
	}

	.worksList .works_link {
		margin-top: 40px;
	}

}

/* スマホより大きいとき */
@media (min-width: 992px) {    
	.worksList .works_imageBlock {
		width: auto;
	}
}

@media all and (-ms-high-contrast:none) and  (min-width: 768px){
	*::-ms-backdrop, .worksList .works_imageBlock .circleImage {
		display: block;
	}
}

