@charset "utf-8";

/* CSS INFORMATION -====================================================
File name : gallery.css
Description :
===================================================================== */

/* =====================================================================
*    gallery
* =================================================================== */
.gallery.sub_wrap {
	padding: calc(100 / 750 * 100%) 0 calc(100 / 750 * 100%);
	background-image: url(../images/gallery/img_lace.png), url(../images/gallery/bg_pattern_dot.png),
		-webkit-gradient(linear, left top, left bottom, from(#d4f2ff), color-stop(25%, #f4fff8), color-stop(50%, #fffed4), color-stop(75%, #fffaf4), to(#ffc4eb));
	background-image: url(../images/gallery/img_lace.png), url(../images/gallery/bg_pattern_dot.png),
		linear-gradient(to bottom, #d4f2ff, #f4fff8 25%, #fffed4 50%, #fffaf4 75%, #ffc4eb);
	background-repeat: repeat-x, repeat, no-repeat;
	background-size: calc(77/750 * 100%) auto, calc(8/750 * 100%), auto;
	position: relative;
}
.gallery.sub_wrap .inner {
	padding-top: calc(350/750 * 100%);
}
.gallery.sub_wrap .inner::before {
	content: "";
	display: block;
	width: calc(813/750 * 100%);
	padding-top: calc(754/750 * 100%);
	background: url(../images/gallery/img_jeweltrico.png) no-repeat center top;
	background-size: contain;
	position: absolute;
	margin-top: calc(-350/750 * 100%);
}
.gallery .sec_ttl {
	margin: 0 0 calc(28 / 750 * 100%);
}

.gallery .sec_contents {
	width: calc(690 / 750 * 100%);
	margin: 0 auto;
	position: relative;
}
.gallery .sec_contents_inner {
	z-index: 3;
	background: rgba(255, 255, 255, .7);
	padding: calc(60/690 * 100%) 0;
}
.gallery .sec_contents::before,
.gallery .sec_contents::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
}
.gallery .sec_contents::before {
	background: url(../images/gallery/img_spark1_sp.png) no-repeat center top;
	background-size: 100% auto;
	width: calc(750/690 * 100%);
	padding-top: calc(730/750 * 100%);
	left: 0;
	top: 0;
	margin-left: calc(-30/750 * 100%);
	margin-top: calc(-453/750 * 100%);
}
.gallery .sec_contents::after {
	background: url(../images/gallery/img_spark2_sp.png) no-repeat center top;
	background-size: 100% auto;
	width: calc(750/690 * 100%);
	padding-top: calc(470/750 * 100%);
	left: 0;
	bottom: 0;
	margin-left: calc(-30/750 * 100%);
	margin-bottom: calc(-108/750 * 100%);
}

.gallery_box {
}
.gallery_list {
}
.gallery_list ul {
	width: calc(640/690 * 100%);
	margin: 0 auto;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.gallery_list ul li {
	width: calc(208/640 * 100%);
	margin: 0 calc(8/640 * 100%) calc(8/640 * 100%) 0;
	background: url(../images/gallery/bg_pattern.png) repeat left top;
	position: relative;
}
.gallery_list ul li:before {
	content: "";
	display: block;
	padding-top: 100%;
}
.gallery_list ul li:nth-child(3n) {
	margin-right: 0;
}
.gallery_list ul li a {
	display: block;
	position: absolute;
	overflow: hidden;
	width: 100%;
	padding-top: 100%;
	top: 0;
	left: 0;
}
.gallery_list ul li a::after {
	content: "";
	display: block;
	position: absolute;
}
.gallery_list ul li a.insta::after {
	width: calc(48/208 * 100%);
	padding-top: calc(48/208 * 100%);
	background: url(../images/gallery/icon_insta.png) no-repeat center #ff2cb2;
	background-size: calc(32/48 * 100%) auto;
	right: 4px;
	bottom: 4px;
}
.gallery_list ul li img {
	position: absolute;
	width: calc(100% - 8px);
	height: calc(100% - 8px);
	top: 4px;
	right: 4px;
	bottom: 4px;
	left: 4px;
	margin: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

@media screen and (min-width: 768px) {
	.gallery.sub_wrap {
		padding: calc(100 / 1200 * 100%) 0 calc(100 / 1200 * 100%);
		background-size: calc(60/1200 * 100%) auto, calc(8/1200 * 100%), auto;
		position: relative;
	}
	.gallery.sub_wrap .inner {
		padding-top: calc(258/1200 * 100%);
	}

	.gallery.sub_wrap .inner::before {
		width: calc(813/1200 * 100%);
		padding-top: calc(754/1200 * 100%);
		margin-top: calc(-338/1200 * 100%);
		margin-left: calc(118/1200 * 100%);
	}
	.gallery .sec_ttl {
		width: calc(662/1000 * 100%);
		margin: 0 auto calc(30 / 1000 * 100%);
	}

	.gallery .sec_contents {
		width: 100%;
	}

	.gallery .sec_contents_inner {
		padding: calc(24/1000 * 100%) 0 calc(40/1000 * 100%);
	}

	.gallery .sec_contents::before {
		background: url(../images/gallery/img_spark1_pc.png) no-repeat center top;
		background-size: 100% auto;
		width: calc(1400/1000 * 100%);
		padding-top: calc(924/1000 * 100%);
		margin-left: calc(-194/1000* 100%);
		margin-top: calc(-335/1000 * 100%);
	}
	.gallery .sec_contents::after {
		background: url(../images/gallery/img_spark2_pc.png) no-repeat center top;
		background-size: 100% auto;
		width: calc(1400/1000 * 100%);
		padding-top: calc(718/1000 * 100%);
		margin-left: calc(-194/1000 * 100%);
		margin-bottom: calc(-75/1000 * 100%);
	}
	.gallery_list ul {
		width: calc(940/1000 * 100%);
	}

	.gallery_list ul li {
		width: calc(290/940 * 100%);
		margin: 0 calc(35/940 * 100%) calc(35/940 * 100%) 0;
	}
	.gallery_list ul li img {
		position: absolute;
		width: calc(100% - 10px);
		height: calc(100% - 10px);
		top: 5px;
		right: 5px;
		bottom: 5px;
		left: 5px;
	}

	.gallery_list ul li a {
	}
	.gallery_list ul li a::after {
	}
	.gallery_list ul li a.insta::after {
		width: calc(38/290 * 100%);
		padding-top: calc(38/290 * 100%);
		background-size: calc(25/38 * 100%) auto;
		right: 5px;
		bottom: 5px;
	}
	.gallery_list ul li a::before {
		position: absolute;
		top: 50%;
		left: 50%;
		z-index: 2;
		display: block;
		content: '';
		width: 0;
		height: 0;
		background: rgba(255, 255, 255, .2);
		border-radius: 100%;
		-webkit-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
		opacity: 0;
	}
	.gallery_list ul li a:hover::before {
		-webkit-animation: circle .75s;
		animation: circle .75s;
	}
	@-webkit-keyframes circle {
		0% {
			opacity: 1;
		}
		40% {
			opacity: 1;
		}
		100% {
			width: 200%;
			height: 200%;
			opacity: 0;
		}
	}
	@keyframes circle {
		0% {
			opacity: 1;
		}
		40% {
			opacity: 1;
		}
		100% {
			width: 200%;
			height: 200%;
			opacity: 0;
		}
	}
}

@media screen and (min-width: 1200px) {
	.gallery.sub_wrap {
		background-size: 60px auto, 8px, auto;
		position: relative;
		padding: 100px 0;
	}
	.gallery .sec_contents::before,
	.gallery .sec_contents::after {
		background-size: 1400px auto;
	}
	.gallery.sub_wrap .inner {
		padding-top: 308px;
	}
	.gallery.sub_wrap .inner::before {
		width: 813px;
		padding-top: 754px;
		margin-top: -338px;
		margin-left: 118px;
	}
}

/* =====================================================================
*    chain
* =================================================================== */
.chain {
	padding: calc(100 / 750 * 100%) 0 calc(180 / 750 * 100%);
	background: url(../images/common/bg_pink.jpg) repeat center top;
	background-size: calc(612 / 750 * 100%) auto;
}

.chain .sec_ttl {
	margin: 0 0 calc(70 / 750 * 100%);
}

.chain_lead {
	width: calc(455 / 750 * 100%);
	margin: 0 auto calc(40 / 750 * 100%);
}

.chain_box {
	width: calc(690 / 750 * 100%);
	margin: 0 auto;
}

.chain_photo_wrap {
	margin: 0 0 calc(15 / 690 * 100%);
	padding: calc(20 / 690 * 100%);
}

.chain_photo_wrap::before,
.chain_photo_wrap::after,
.chain_photo::before,
.chain_photo::after {
	content: "";
	display: block;
	width: calc(30 / 690 * 100%);
	padding-top: calc(30 / 690 * 100%);
	position: absolute;
	top: 0;
	left: 0;
	border-top: 1px solid #14161a;
	border-left: 1px solid #14161a;
}

.chain_photo_wrap::after {
	-webkit-transform: rotate(90deg);
	transform: rotate(90deg);
	left: auto;
	right: 0;
}

.chain_photo::before {
	-webkit-transform: rotate(-90deg);
	transform: rotate(-90deg);
	top: auto;
	bottom: 0;
	margin: 0 0 calc(-20 / 690 * 100%) calc(-20 / 690 * 100%);
}

.chain_photo::after {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
	top: auto;
	bottom: 0;
	left: auto;
	right: 0;
	margin: 0 calc(-20 / 690 * 100%) calc(-20 / 690 * 100%) 0;
}

.chain_photo {
	border: 1px solid #14161a;
}

.chain_next_wrap {
	width: calc(650 / 690 * 100%);
	margin: 0 auto;
}

.chain_next_txt {
	margin: 0 0 calc(45 / 650 * 100%);
}

.chain_next_number {
	color: #14161a;
	font-size: 8rem;
	font-family: "Roboto", sans-serif;
	line-height: 1;
}

.chain_next_number::before {
	content: "#";
	display: inline-block;
	font-size: 6rem;
}

.chain_next_ttl {
	margin: calc(-18 / 650 * 100%) 0 0;
	padding: 0.75em 0;
	border-bottom: 2px solid #14161a;
	color: #14161a;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.5;
}

.chain_next_ttl::before {
	content: "";
	display: block;
	width: calc(480 / 650 * 100%);
	position: absolute;
	top: 0;
	right: 0;
	border-top: 2px solid #14161a;
}

.chain_next_txt2 {
	margin: 0 0 calc(45 / 650 * 100%);
	color: #000;
	font-size: 2.8rem;
	line-height: 1.714;
	letter-spacing: -0.06em;
}

.chain_bnr_free {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	margin: 0 0 calc(45 / 650 * 100%);
	color: #000;
	font-size: 4.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
	text-align: center;
}

.chain_bnr_free::before,
.chain_bnr_free::after {
	content: "";
	display: block;
	width: calc(197 / 650 * 100%);
	padding-top: calc(24 / 650 * 100%);
	background: url(../images/common/line_black.png) repeat-x left top;
	background-size: auto 100%;
}

.chain_bnr .bnr1 {
	width: calc(586 / 650 * 100%);
	margin: 0 auto;
}

@media screen and (min-width: 768px) {
	.chain {
		padding: calc(100 / 1200 * 100%) 0 calc(110 / 1200 * 100%);
		background-size: calc(612 / 1200 * 100%) auto;
	}

	.chain .sec_ttl {
		margin: 0 auto calc(60 / 1000 * 100%);
	}

	.chain_lead {
		width: calc(923 / 1000 * 100%);
		margin: 0 auto calc(55 / 1000 * 100%);
	}

	.chain_box {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		width: 100%;
	}

	.chain_photo_wrap {
		width: calc(574 / 1000 * 100%);
		margin: 0;
		padding: calc(8 / 1000 * 100%);
	}

	.chain_photo_wrap::before,
	.chain_photo_wrap::after,
	.chain_photo::before,
	.chain_photo::after {
		width: calc(20 / 574 * 100%);
		padding-top: calc(20 / 574 * 100%);
		border-width: 2px;
	}

	.chain_photo::before {
		margin: 0 0 calc(-9 / 574 * 100%) calc(-9 / 574 * 100%);
	}

	.chain_photo::after {
		margin: 0 calc(-9 / 574 * 100%) calc(-9 / 574 * 100%) 0;
	}

	.chain_next_wrap {
		width: calc(390 / 1000 * 100%);
		margin: 0;
	}

	.chain_next_txt {
		margin: 0 0 calc(22 / 390 * 100%);
	}

	.chain_next_number {
		font-size: 4.8rem;
	}

	.chain_next_number::before {
		font-size: 3.6rem;
	}

	.chain_next_ttl {
		margin: calc(-14 / 390 * 100%) 0 0;
		padding: 1.04em 0;
		border-width: calc(4 / 1200 * 100vw);
		font-size: 2.4rem;
	}

	.chain_next_ttl::before {
		border-width: calc(4 / 1200 * 100vw);
	}

	.chain_next_txt2 {
		margin: 0 0 calc(22 / 390 * 100%);
		font-size: 1.6rem;
		line-height: 1.625;
		letter-spacing: 0;
	}

	.chain_bnr_free {
		margin: 0 0 calc(20 / 390 * 100%);
		font-size: 2.4rem;
	}

	.chain_bnr_free::before,
	.chain_bnr_free::after {
		width: calc(120 / 390 * 100%);
		padding-top: calc(11 / 390 * 100%);
	}

	.chain_bnr .bnr1 {
		width: 100%;
	}
}

@media screen and (min-width: 1200px) {
	.chain {
		padding: 100px 0 110px;
		background-size: 612px auto;
	}

	.chain_next_ttl,
	.chain_next_ttl::before {
		border-width: 4px;
	}
}

/* =====================================================================
*    lightbox
* =================================================================== */

.lightbox {
	width: 100% !important;
	height: 100% !important;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.lightboxOverlay {
	width: 100% !important;
	opacity: 0.6 !important;
}

.lb-outerContainer {
	width: calc(680 / 750 * 100%) !important;
	border-radius: 0 !important;
	-ms-flex-item-align: center;
	align-self: center;
}

.lb-outerContainer::before {
	content: "";
	display: block;
	width: calc(60 / 680 * 100%);
	padding-top: calc(60 / 680 * 100%);
	background: url(../plugin/lightbox/images/close2.png) no-repeat left top;
	background-size: 100% auto;
	position: absolute;
	top: 0;
	right: 0;
	margin: calc(-80 / 680 * 100%) 0 0;
	pointer-events: none;
}
.lb-container {
	overflow: hidden;
}
.lightbox .lb-image {
	/* width: auto !important;
	height: 100% !important; */
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 auto;
}

.lb-dataContainer {
	width: calc(680 / 750 * 100%) !important;
	padding: 0 !important;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: calc(-330 / 750 * 100%) auto 0;
	display: none !important;
}

.lb-data {
	padding: 0 !important;
}

.lb-data .lb-details {
	display: none;
}

.lb-data .lb-close {
	width: auto;
	height: auto;
	float: none;
	background: none;
}

.lb-data .lb-close::before,
.lb-data .lb-close::after {
	content: "";
	display: block;
	width: 2px;
	padding-top: 12%;
	background-color: #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin: 0 5% 0 auto;
}

.lb-data .lb-close::after {
	position: absolute;
	top: 0;
	right: 0;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}

.lb-nav a {
	opacity: 1 !important;
	background-size: auto 25px !important;
}

@media screen and (min-width: 768px) {
	.lb-outerContainer {
		width: calc(900 / 1100 * 100%) !important;
		max-width: 900px !important;
	}

	.lb-dataContainer {
		width: calc(900 / 1100 * 100%) !important;
		max-width: 900px !important;
		margin: calc(-360 / 1100 * 100%) auto 0;
	}

	.lb-outerContainer::before {
		width: calc(37 / 900 * 100%);
		padding-top: calc(37 / 900 * 100%);
		margin: calc(-47 / 900 * 100%) 0 0;
	}

	.lb-data .lb-close::before,
	.lb-data .lb-close::after {
		padding-top: 6%;
		margin: 0 2.5% 0 auto;
	}

	.lb-nav a {
		background-size: auto 40px !important;
	}
}

@media screen and (min-width: 1100px) {
	.lb-dataContainer {
		margin: -360px auto 0;
	}
}

/* =====================================================================
*    YouTube追加
* =================================================================== */

.movie_cont {
	width: calc(640/690 * 100%);
	background: url(../images/gallery/bg_pattern.png) repeat left top;
	margin: 0 auto calc(8/690 * 100%);
	padding: calc(8/690 * 100%);
}

.movie {
	margin: 0 auto;
}

@media screen and (min-width: 768px) {
	.movie_cont {
		width: calc(648/690 * 100%);
		background: url(../images/gallery/bg_pattern.png) repeat left top;
		margin: 0 auto calc(25/690 * 100%);
		padding: 5px;
	}
}

@media screen and (min-width: 1100px) {
}

/* =====================================================================
*    動画追加
* =================================================================== */

.gallery_movie_photo {}

.gallery_movie_btn::before {
	content: "";
    display: block;
	width: calc(107 / 750 * 100vw);
	height: calc(107 / 750 * 100vw);
	background-color: #fff100;
    border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
    z-index: 2;
}

.gallery_movie_btn::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 2.3vw 0 2.3vw 3.8vw;
    border-color: transparent transparent transparent #14161a;
    position: absolute;
	  top: 0;
	  bottom: 0;
	  left: 1vw;
	  right: 0;
	  margin: auto;
    z-index: 2;
}

@media screen and (min-width: 768px) {
	.gallery_movie_btn::before {
			width: calc(107 / 1200 * 100vw);
			height: calc(107 / 1200 * 100vw);
			-webkit-transition: background-color 0.3s ease;
			transition: background-color 0.3s ease;
	}

	.gallery_movie_photo:hover .gallery_movie_btn::before {
			background-color: #ff2cb2;
	}
}

@media screen and (min-width: 1200px) {
    .gallery_movie_btn::before {
        width: 107px;
        height: 107px;
    }

    .gallery_movie_btn::after {
        border-width: 18px 0 18px 27px;
    }
}
