@charset "utf-8";






.zh-CN { display: none!important; }









/******************************************************************
*******************************************************************
Header
*******************************************************************
******************************************************************/
/*********************************
Header > ヘッダーナビ
*********************************/
.navbar { background-color: rgba(219,219,219,.95); }
body.home .navbar { background-color: rgba(255,255,255,0); }
.navbar > .container-fluid {
	width: 95%!important;
	margin: 0 auto;
	max-width: 1920px;
}
.navbar-brand { width: 22rem; }
@media (max-width: 991.98px) {
	.navbar > .container-fluid { width: 100%!important; }
	.navbar-expand-lg { padding: 2rem 2rem; }
}
.nav-item { margin: 0 0 0 2rem; }
.navbar-expand-lg .navbar-nav .nav-link {
	padding-right: 0!important;
	padding-left: 0!important;
	font-size: calc(1.3rem + 2 * (100vw - 320px)/1600); /*ベースサイズ最小1.3rem - 最大1.5rem*/
}
.navbar-light .navbar-nav .nav-link {
	color: #7f7f7f;
	position: relative;
	display: inline-block;
	text-decoration: none;
}
.navbar-light .navbar-nav .nav-link.current { color: #000; }
.navbar-light .navbar-nav .nav-link::after {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	content: '';
	width: 100%;
	height: 1px;
	background: #000;
	transform: scale(0, 1);
	transform-origin: left top;
	z-index: 1;
	-webkit-transition: bottom .5s ease, transform .5s ease;
			transition: bottom .5s ease, transform .5s ease;
}
.navbar-light .navbar-nav .nav-link:hover {
	color: #000!important;
	opacity: 1!important;
}
.navbar-light .navbar-nav .nav-link.current::after,
.navbar-light .navbar-nav .nav-link:hover::after {
	transform: scale(1, 1);
	opacity: 1!important;
}



/*********************************
Header > 言語ナビ（サブナビ・モーダル共通）
*********************************/
ul.bogo-language-switcher {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
ul.bogo-language-switcher li { margin-left: .5rem; }
ul.bogo-language-switcher li.ja { order: 1; }
ul.bogo-language-switcher li.en-US { order: 2; }
ul.bogo-language-switcher li.zh-CN { order: 3; }
ul.bogo-language-switcher li a {
	position: relative;
	display: inline-block;
	text-decoration: none;
	font-size: calc(1.1rem + 2 * (100vw - 320px)/1600)!important;
}
ul.bogo-language-switcher li,
ul.bogo-language-switcher li a,
ul.bogo-language-switcher li a span { line-height: 1; }
ul.bogo-language-switcher li span a { color: #7f7f7f; }
ul.bogo-language-switcher li.current span a { color: #000; }

ul.bogo-language-switcher li a::after {
	position: absolute;
	bottom: -.5rem;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	content: '';
	width: 100%;
	height: 1px;
	background: #000;
	transform: scale(0, 1);
	transform-origin: left top;
	z-index: 1;
	-webkit-transition: bottom .5s ease, transform .5s ease;
			transition: bottom .5s ease, transform .5s ease;
}
ul.bogo-language-switcher li a:hover {
	color: #000!important;
	opacity: 1!important;
}
ul.bogo-language-switcher li.current a::after,
ul.bogo-language-switcher li a:hover::after {
	transform: scale(1, 1);
	opacity: 1!important;
}



/*********************************
Header > モーダルトリガー
*********************************/
.menu-trigger {
	display: inline-block;
	position: relative;
	width: 25px;
	height: 22px;
	background: none;
	border: none;
	appearance: none;
	pointer-events: auto;
}
.menu-trigger span {
	display: inline-block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #000;
	border-radius: 2px;
}
.menu-trigger span:nth-of-type(1) {	top: 0; }
.menu-trigger span:nth-of-type(2) { top: 10px; }
.menu-trigger span:nth-of-type(3) { bottom: 0; }
.navbar-toggler:focus { box-shadow: 0 0 0 0!important; }



/*********************************
Header > モーダル
*********************************/
@media (min-width: 576px) {
	.modal.menuModal .modal-dialog {
		max-width: 100vw;
	}
}
.modal-content {
	background: none;
	border: none;
}
.close {
	font-weight: 400;
	color: #fff;
	text-shadow: none;
	opacity: 1;
}
.modal-backdrop { background-color: #fff; }
.modal-backdrop.show { opacity: 0.9; }



/*********************************
Header > モーダル > メニューモーダル
*********************************/
.modal.menuModal { background: #dbdbdb; }
.modal.menuModal .modal-close {
	border: none;
	width: 100%;
	padding: 0 2rem;
	max-width: 1920px;
	margin: 2rem auto;
}
.modal button {
	background: none;
	border: none;
	appearance: none;
	pointer-events: auto;
	outline: none;
}
.modal.menuModal button {
	position: relative;
	width: 30px;
	height: 29px;
}
.modal.menuModal button span {
	display: inline-block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #000;
	border-radius: 2px;
	text-shadow: none;
}
.modal.menuModal button span:nth-of-type(1) {
	top: 0;
	transform: translateY(10px) rotate(45deg);
}
.modal.menuModal button span:nth-of-type(2) {
	bottom: 0;
	transform: translateY(-17px) rotate(-45deg);
}
.modal.menuModal .modal-body { padding: 0; }
.modal.menuModal .modal-body ul { padding: 0; }
.modal.menuModal .modal-body ul li a {
	color: #000;
	position: relative;
	display: inline-block;
	text-decoration: none;
}
.modal.menuModal .modal-body ul li a::after {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	content: '';
	width: 100%;
	height: 1px;
	background: #000;
	transform: scale(0, 1);
	transform-origin: left top;
	z-index: 1;
	-webkit-transition: bottom .5s ease, transform .5s ease;
			transition: bottom .5s ease, transform .5s ease;
}
.modal.menuModal .modal-body ul li a:hover { opacity: 1!important; }
.modal.menuModal .modal-body ul li a.current::after,
.modal.menuModal .modal-body ul li a:hover::after {
	transform: scale(1, 1);
	opacity: 1!important;
}



/*********************************
Header > モーダル > メニューモーダル > 言語ナビ
*********************************/
.modal.menuModal .modal-body ul.bogo-language-switcher li {
	margin-left: .25rem;
	margin-right: .25rem;
	text-align: center;
	height: 2rem;
}





/******************************************************************
*******************************************************************
メインコンテンツ以下共通
*******************************************************************
******************************************************************/
main {
	position: relative;
	margin: 12rem 0;
	z-index: 999;
}
.anchor {
	padding-top: 12rem;
	margin-top: -12rem;
}
.sticky-top { top: 12rem!important; }
.slick-slider.sticky-top {
	position: -webkit-sticky!important;
	position: sticky!important;
}



/*********************************
メインコンテンツ以下共通 > box
*********************************/
.box-720 { max-width: 720px; }
.box-960 { max-width: 960px; }
.box-1200 { max-width: 1200px; }
.box-1440 { max-width: 1440px; }
.box-1920 { max-width: 1920px; }
.box-720, .box-960, .box-1200, .box-1440, .box-1920 { width: calc(100% - 5%); }
@media (max-width: 991.98px) { .box-720, .box-960, .box-1200, .box-1440, .box-1920 { width: calc(100% - 10%); } }



/*********************************
メインコンテンツ以下共通 > 改行
*********************************/
@media (max-width: 991.98px) {
	.br-lg::before {
		content: '\A';
		white-space: pre;
	}
}





/******************************************************************
*******************************************************************
TOPページ
*******************************************************************
******************************************************************/
body.home { /** heightはfooterのjsにて100vhの代わりを指定; **/ }
body.home main { margin-top: 0!important; }
body.home .slick-slide {
	/** heightはfooterのjsにて100vhの代わりを指定; **/
	min-height: auto!important;
}
body.home .slider_item {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	width: 100vw;
	/** heightはfooterのjsにて100vhの代わりを指定; **/
	margin: 0;
	text-decoration: none;
}
body.home .slider_item .caption-area {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100vw;
	padding: 2rem 0;
}
body.home .slider_item .caption-area .caption p {
	font-size: calc(1.2rem + 2 * (100vw - 320px)/1600); /*ベースサイズ最小1.2rem - 最大1.4rem*/
	font-style: italic;
	letter-spacing: 0.05rem;
}





/******************************************************************
*******************************************************************
ABOUTページ
*******************************************************************
******************************************************************/
table.about-table th, table.about-table td {
	padding-bottom: .5rem;
	vertical-align: top;
	font-weight: normal;
	line-height: 1.5;
}
table.about-table th, table.about-table td:last-child {
	padding-bottom: 1rem;
}
table.about-table th { width: 8rem; }
table.about-table td { display: block; }


@media (max-width: 575.98px) {
	table.about-table th { width: 5rem; }
}





/******************************************************************
*******************************************************************
WORKS-SINGLEページ
*******************************************************************
******************************************************************/
body.single-works .slick-track { height: 42.5vw; }
body.single-works .slider_item {
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	width: auto;
	height: 37.5vw;
	margin: 0;
	text-decoration: none;
}
@media (max-width: 991.98px) {
	body.single-works .slick-track { height: 67.5vw; }
	body.single-works .slider_item { height: 60vw; }
}
@media (max-width: 767.98px) {
	body.single-works .slick-track { height: 60vh; }
	body.single-works .slider_item { height: 50vh; }
}



body.single-works .slider_item .caption {
	position: absolute;
	text-align: left;
	bottom: -5rem;
	left: 0;
	width: calc(100% - 10rem);
}



body.single-works .slick-counter-area {
	margin-top: calc(-5vw + 3rem);
	display: flex;
	justify-content: flex-end;
}
body.single-works .slick-counter-area .slick-counter {
	text-align: right;
	color: #7f7f7f;
}
body.single-works .slick-counter-area .slick-counter span { color: #7f7f7f; }
body.single-works .slick-counter-area .slick-counter span.counter-current { color: #000; }
@media (max-width: 991.98px) {
	body.single-works .slick-counter-area { margin-top: calc(-7.5vw + 3rem); }
}
@media (max-width: 767.98px) {
	body.single-works .slick-counter-area { margin-top: calc(-10vh + 3rem); }
}



body.single-works .slick-prev,
body.single-works .slick-next {
	position: absolute;
	top: auto;
    bottom: .65rem;
    width: calc(1.3rem + 2 * (100vw - 320px)/1600);
    height: calc(1.3rem + 2 * (100vw - 320px)/1600);
	transform: translate(0, 0);
	z-index: 1000;
}
body.single-works .slick-prev { right: 7rem; left: auto; }
body.single-works .slick-next { right: 5.5rem; }
body.single-works .slick-prev:before { content: '<'; }
body.single-works .slick-next:before { content: '>'; }
body.single-works .slick-prev:before,
body.single-works .slick-next:before {
	font-size: calc(1.3rem + 2 * (100vw - 320px)/1600); /*ベースサイズ最小1.3rem - 最大1.5rem*/
	opacity: 1;
	color: #7f7f7f;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body.single-works .slick-prev:hover:before,
body.single-works .slick-next:hover:before { color: #000; }
body.single-works .works-img:not(:first-child) { margin-top: 5rem; }
body.single-works .works-img img {
	object-fit: contain;
	max-height: 80vh;
}



body.single-works .add-img,
body.single-works .add-img p.img {
	width: auto;
	height: 20rem;
	object-fit: cover;
}
body.single-works .add-img p.img img {
	width: auto;
	height: 20rem;
}



.pswp__bg { background: #dbdbdb!important; }
.pswp__container {
	top: 44px!important;
	bottom: 44px!important;
}
.pswp__img {
	object-fit: contain!important;
	max-height: calc(90vh - 44px)!important;
}
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption,
.pswp__top-bar,
.pswp__caption { background-color: rgba(219,219,219,.85)!important; }

.pswp__top-bar {
	right: 0;
	width: 95%!important;
	margin: auto!important;
}
.pswp__button { transition: opacity .5s ease!important; }
.pswp__button:hover { opacity: .3!important; }
.pswp__button--arrow--left { left: 2%!important; }
.pswp__button--arrow--right { right: 2%!important; }
.pswp__counter {
	font-size: calc(1.3rem + 2 * (100vw - 320px)/1600)!important; /*ベースサイズ最小1.3rem - 最大1.5rem*/
	color: #7f7f7f!important;
	opacity: 1!important;
	padding: 0!important;
}
.pswp__caption__center {
	margin: 0 auto!important;
	padding: 1rem!important;
	width: 95%!important;
	max-width: 1920px!important;
	font-size: calc(1.3rem + 2 * (100vw - 320px)/1600)!important; /*ベースサイズ最小1.3rem - 最大1.5rem*/
	font-style: italic!important;
	line-height: 1.5!important;
	letter-spacing: .05rem!important;
	color: #7f7f7f!important;
	text-align: left!important;
}
@media (max-width: 767.98px) {
	body.single-works .slick-track { height: 60vh; }
	body.single-works .slider_item { height: 50vh; }
}

@media (max-width: 575.98px) {
	.pswp__container {
		top: 0!important;
		bottom: 0!important;
	}
	.pswp__img {
		object-fit: contain!important;
		max-height: none!important;
	}
}



.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}




/******************************************************************
*******************************************************************
CONTACTページ
*******************************************************************
******************************************************************/
#contact table { width: 100%; }
#contact table th {
	font-weight: normal;
	width: 24rem;
}
#contact table td { width: calc(100% - 24rem); }
#contact table th div,
#contact table td div { padding: 1rem 0; }
#contact table td.text-box-s div { max-width: 42rem; }
#contact table th div.wpcf7cf-hidden,
#contact table td div.wpcf7cf-hidden { padding-bottom: 0; }
#contact table span.asterisk:before {
	content: " *";
	font-size: 2rem;
	line-height: 1;
	color: red;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	width: 100%;
	border: none;
	border-radius: 0!important;
	box-shadow: none!important;
	background-color: rgba(255,255,255,1)!important;
	padding: .75rem 1rem .5rem 1rem;
	color: #000!important;
	font-weight: 300!important;
	text-decoration: none!important;
	box-sizing: border-box!important;
	outline: none!important;
	line-height: 1!important;
}
.wpcf7 textarea {
	resize: vertical;
	height: 14rem;
	min-height: 14rem;
	box-sizing: border-box !important;
}
.wpcf7 .check {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-top: 3rem;
	margin-bottom: 5rem;
	font-size: 1.4rem;
	line-height: 1.8;
}
.wpcf7-list-item { margin: 0!important; }
.wpcf7 .check-box {
	width: 2rem;
	padding-right: 2rem;
}
.wpcf7 .kakunin {
	border: .05rem solid #000;
	padding: 4rem;
	font-size: 1.4rem;
	line-height: 1.8;
}
.wpcf7 .button {
	position: relative;
	z-index: 101;
	text-align: center;
	margin-top: 5rem!important;
}
.wpcf7-spinner { display: none!important; }
.wpcf7 input[type="submit"] {
	background: none;
	border: 1px solid #000;
	color: #000;
	padding: 0.5em;
	font-size: 1.5rem;
	line-height: 1.8;
	letter-spacing: 0.1em;
	font-weight: 400;
	box-shadow: none;
	border-radius: 0; 
	width: 100%;
	max-width: 20rem;
	margin: 0 auto;
	padding: 2% 0;
	-webkit-transition: margin .5s, opacity .5s, color .5s, background .5s;
	transition: margin .5s, opacity .5s, color .5s, background .5s;
}
.wpcf7 input[type="submit"]:hover {
	cursor: pointer;
	color: #fff;
	background: #000;
	border: 1px solid #000;
	font-weight: 400;
}
.wpcf7 input[type="submit"][disabled] {
	border: 1px solid #ccc;
	background: transparent;
	color: #ccc;
	font-weight: 400;
}
.wpcf7 input[type="submit"][disabled]:hover {
	cursor: text;
	background: none;
	color: #ccc;
}
.wpcf7 .ajax-loader { display: none!important; }
.wpcf7 span.wpcf7-not-valid-tip {
	position: relative;
	color: #000;
	font-size: 1.2rem;
	line-height: 1.5;
	font-weight: 400;
	width: 100%;
	text-align: center;
	margin: 4px 0 4px 0;
	padding: 4px 10px;
	background: yellow;
	border: 1px solid yellow;
	box-sizing: border-box !important;
	font-family: sans-serif!important;
}
.wpcf7 span.wpcf7-not-valid-tip:after,
.wpcf7 span.wpcf7-not-valid-tip:before {
	bottom: 100%;
	left: 10%;
	border: solid transparent;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}
.wpcf7 span.wpcf7-not-valid-tip:after {
	border-color: rgba(255, 255, 0, 0);
	border-bottom-color: yellow;
	border-width: 10px;
	margin-left: -10px;
}
.wpcf7 span.wpcf7-not-valid-tip:before {
	border-color: rgba(255, 255, 0, 0);
	border-bottom-color: yellow;
	border-width: 11px;
	margin-left: -11px;
}
.wpcf7 .wpcf7-response-output {
	border: 1px solid yellow!important;
	margin: 30px 0 0 0!important;
	padding: 15px 10px!important;
	color: #000;
	border: none!important;
	background: yellow;
	font-weight: 400;
	font-size: 1.2rem;
	line-height: 1.5;
	text-align: center;
	font-family: sans-serif!important;
	box-sizing: border-box !important;
	-webkit-transition: margin .5s;
	transition: margin .5s;
}


@media (max-width: 575.98px) {
	#contact table th,
	#contact table td {
		display: block;
		width: 100%;
	}
	#contact table th div { padding: .5rem 0; }
	#contact table td div { padding: .5rem 0 1.5rem 0; }
	#contact table td.text-box-s div { max-width: inherit; }
}



/******************************************************************
*******************************************************************
404
*******************************************************************
******************************************************************/
body.error404 main { margin: 0!important; }





/******************************************************************
*******************************************************************
Footer
*******************************************************************
******************************************************************/
footer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	padding: 2rem 0;
	z-index: 1000;
	background-color: rgba(219,219,219,.95);
}
body.home footer { display: none!important; }
footer .back-b a {
	display: inline-block;
	background-color: rgba(219,219,219,.95)!important;
	border: .1rem solid #7e7e7e;
	border-radius: 5rem;
	padding: .5rem 1.5rem;
	color: #7e7e7e;
	vertical-align: middle;
}
footer .back-b,
footer .back-blank { height: 2rem; }
footer .back-b a:hover {
	border: .1rem solid #000;
	color: #000;
	opacity: 1!important;
}
