@charset "utf-8";

/**
 *
 * フォトアルバム
 *
 */

/*--------------------------------------------------------------------------
  overwrite スタイルの上書き
--------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------
	#Loading
--------------------------------------------------------------------------*/

#Loading{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	z-index: 10000;
}
#Loading p{
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -50px 0 0 -44px;
}

/* .cmn_page_header
-----------------------------------------------------------------*/
@media all and (max-width: 767px){
	.cmn_page_header_ttl img{
		height: 23px;
	}
}


/*----------------------------------------------------------------------
	.content_wrap
----------------------------------------------------------------------*/
.content_wrap{
	padding: 60px 0 80px;
	background: url(../images/bg_plaid.png) repeat 0 0;
}
.content_base{
	position: relative;
	padding: 40px 0 45px;
	background: #fff;
	box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.content_base.loading{
	min-height: 336px;
	background: #fff url(../images/bg_loding.gif) no-repeat 75% 50%;
}
.content_base:before,
.content_base:after{
	content: '';
	position: absolute;
	width: 945px;
	height: 2px;
	left: 7px;
	background: url(../images/bg_line.png) repeat-x 0 0;
	background-size: 9px 1px;
}
.content_base:before{
	top: 5px;
}
.content_base:after{
	bottom: 5px;
}
.content_ttl{
	position: absolute;
	top: 40px;
	width: 50%;
}
.content_base .error_message,
.content_base .not_message{
	padding-top: 160px;
}
.content_base .not_message{
	padding-bottom: 160px;
}
.content_base .error_message p,
.content_base .not_message p{
	float: right;
	width: 50%;
	color: #d91c5c;
	font-size: 15px;
	font-weight: bold;
	text-align: center;
}
.content_base .btn_more{
	margin: 40px auto 0;
	width: 564px;
}
.content_base .btn_more.loading{
	display: none;
}
.content_base .btn_more a{
	display: block;
	color: #fff;
	font-weight: bold;
	font-size: 18px;
	line-height: 64px;
	text-align: center;
	text-decoration: none;
	background: #d91c5c;
	border-radius: 5px;
}
.content_base .btn_more a span{
	padding-left: 30px;
	background: url(../images/ico_arw01.png) no-repeat 0 50%;
	background-size: 16px 10px;
}

@media all and (max-width: 767px){
	.content_wrap{
		padding: 40px 0 50px;
		background-size: 16px 16px;
	}
	.content_base{
		padding: 25px 0;
	}
	.content_base.loading{
		min-height: 100%;
		background: #fff;
	}
	.content_base:before,
	.content_base:after{
		width: 100%;
		left: 0;
		background-position: 50% 0;
		background-size: 6px 1px;
	}
	.content_ttl{
		position: static;
		width: 100%;
	}
	.content_base .error_message{
		padding: 20px 20px 0;
	}
	.content_base .error_message p{
		float: none;
		width: 100%;
	}
	.content_base .btn_more{
		margin: 25px 20px 0;
		width: auto;
	}
	.content_base .btn_more a{
		font-size: 13px;
		line-height: 50px;
	}
	.content_base .btn_more a span{
		padding-left: 18px;
		background-size: 12px 8px;
	}
}


/*----------------------------------------------------------------------
	.units
----------------------------------------------------------------------*/
.units{
}
.units .unit{
	width: 50%;
}
.units .unit a{
	position: relative;
	display: block;
}
.units .unit a:after{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity .5s ease-in-out;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: perspective(0);
	transform: perspective(0);
	background: rgba(255,255,255,.95);
}
.units .unit a:hover:after{
	opacity: 1;
}
.units .unit_group{
	width: 25%;
}
.units .unit_group .unit{
	width: 100%;
}
.units._type01:first-child .unit{
	float: right;
}
.units .unit_img span{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: transparent;
}


/* _type01 */
.units._type01{
	position: relative;
}
.units._type01 .unit_group,
.units._type01 .unit{
	float: right;
}
.units._type01 .unit_group:first-child{
	position: absolute;
	top: 0;
	left: 50%;
}
.units._type01 .unit{
	float: left;
}

/* _type02 */
.units._type02 .unit_group{
	float: right;
}
.units._type02 .unit_group:first-child{
	float: left;
}
.units._type02 .unit{
	float: left;
}

/* _type03 */
.units._type03 .unit_group,
.units._type03 .unit{
	float: left;
}
.units .unit_img img{
	width: 100%;
	height: auto;
}

/* _last */
.units._last .unit_group,
.units._last .unit{
	float: left;
	width: 50%;
}

/* unit_cont */
.units .unit_cont{
	width: 80%;
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	opacity: 0;
	transform: translate(-50%, -50%);
	z-index: 3;
}
.units .unit a:hover .unit_cont{
	opacity: 1;
	transition-delay: 0.1s;
}
.units .unit_date{
	color: #555;
	font-size: 12px;
}
.units .unit_hdg{
	margin-top: 10px;
	color: #000;
	font-size: 18px;
	line-height: 1.4;
}
.units .unit_group .unit_hdg{
	font-size: 14px;
}

@media all and (max-width: 767px){
	.units .unit{
		width: 100%;
		overflow: hidden;
	}
	.units .unit a:hover:after{
		opacity: 0;
	}
	.units .unit_group{
		width: 50%;
	}
	.units .unit a:hover .unit_cont{
		opacity: 0;
	}

	/* _type01 */
	.units._type01 .unit_group,
	.units._type01 .unit{
		float: left;
	}
	.units._type01 .unit_group:first-child{
		position: static;
	}

	/* _last */
	.units._last .unit{
		width: 100%;
	}
	.units._last._single .unit_group{
		width: 100%;
	}
	.units._last._single .unit{
		width: 50%;
	}

}


/*----------------------------------------------------------------------
	.modal
----------------------------------------------------------------------*/
#modal{
	position: absolute;
	z-index: 501;
	width: 640px;
}
#modal_bg{
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: url(../images/bg_sprite.png) repeat 0 0;
	z-index: 500;
	-webkit-transform: translate3d(0, 0, 0);
}
#modal_close_btn{
	position: absolute;
	top: -56px;
	right: 0;
	width: 36px;
	height: 36px;
	cursor: pointer;
	background: url(/shared/images/ico_close02.png) no-repeat 0 0;
	background-size: 36px auto;
}
#modal_controler .prev,
#modal_controler .next{
	position: absolute;
	top: 50%;
	margin-top: -24px;
}
#modal_controler .prev a,
#modal_controler .next a{
	display: block;
	width: 48px;
	height: 48px;
	text-decoration: none;
	text-indent: -9999px;
	background: no-repeat 0 0;
	background-size: 48px 48px;
}
#modal_controler .prev{
	left: -80px;
}
#modal_controler .prev a{
	background-image: url(../images/btn_prev.png);
}
#modal_controler .prev .is-off{
	cursor: default;
	background-image: url(../images/btn_prev_off.png);
}
#modal_controler .next{
	right: -80px;
}
#modal_controler .next a{
	background-image: url(../images/btn_next.png);
}
#modal_controler .next .is-off{
	cursor: default;
	background-image: url(../images/btn_next_off.png);
}
.modal_datas{
	display: none;
}
.modal{
	padding-top: 11px;
	background: #fff url(../images/modal_bg.png) repeat-x 50% 0;
	box-shadow: 0 0px 3px rgba(0,0,0,.15);
}
.modal_inner{
	background: url(../images/modal_cont_bg.png) no-repeat 100% 100%;
	background-size: 147px auto;
}
.modal_img{
	position: relative;
}
.modal_img span{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 100;
	background: url(/shared/images/spacer.png);
	-webkit-touch-callout: none;
	-moz-touch-callout: none;
	touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}
.modal_img img{
	width: 100%;
	height: auto;
}
.modal_meta{
	padding: 30px;
}
.modal_date{
	color: #555;
	font-size: 12px;
}
.modal_ttl{
	margin-top: 2px;
	font-size: 18px;
	font-weight: bold;
}
.modal_description{
	margin-top: 10px;
}

@media all and (max-width: 767px){
	#modal{
		width: 320px;
	}
	#modal_close_btn{
		top: -45px;
		width: 31px;
		height: 31px;
		background-size: 31px 31px;
	}
	#modal_controler .prev,
	#modal_controler .next{
		top: 105px;
		margin-top: 0;
		z-index: 100;
	}
	#modal_controler .prev a,
	#modal_controler .next a{
		width: 40px;
		height: 40px;
		background-size: 40px 40px;
	}
	#modal_controler .prev{
		left: -20px;
	}
	#modal_controler .next{
		right: -20px;
	}
	.modal_inner{
		background-size: 77px auto;
	}
	.modal_ttl{
		margin-top: 10px;
		font-size: 14px;
	}
	.modal_meta{
		padding: 20px;
	}
}
@media all and (max-width: 340px){
	#modal{
		width: 280px;
	}
	#modal_controler .prev,
	#modal_controler .next{
		top: 90px;
	}
	#modal_controler .prev{
		left: -20px;
	}
	#modal_controler .next{
		right: -20px;
	}
}
