@charset "utf-8";
@font-face{font-family:Roboto;font-weight:300;font-display:swap;src:url('./assets/roboto-light.woff2') format('woff2')}
@font-face{font-family:Roboto;font-weight:400;font-display:swap;src:url('./assets/roboto-regular.woff2') format('woff2')}
@font-face{font-family:Roboto;font-weight:500;font-display:swap;src:url('./assets/roboto-medium.woff2') format('woff2')}

/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
}
html {
	font-size: 62.5%;
}
body, table, input, textarea, select, option {
	font-family: 'Noto Sans JP', sans-serif;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
:focus {
	outline: 0;
}
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
img {
	vertical-align: top;
	max-width: 100%;
	height: auto;
}
a,
a:link {
	color: #000000;
	text-decoration: none;
	transition: all 0.3s;
}
a:visited {
	color: #000000;
	transition: all 0.3s;
}
a:hover {
	color: #000000;
	transition: all 0.3s;
}
a[href^="tel:"]:hover,
a[class="hLogo"]:hover {
	opacity: 1;
}
a:active {
	color: #000000;
	transition: all 0.3s;
}
@media all and (min-width: 1150px) {
	a:hover {
		opacity: 0.7;
	}
}
/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
body {
	min-width: 1000px;
	color: #000000;
	font-size: 1.2rem;
	line-height: 1.5;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "palt";
	background-color: #FFF;
}
body.fixed {
	position: fixed;
	width: 100%;
	height: 100%;
	overflow-y: scroll;
}
#container {
	padding-top: 271px;
	text-align: left;
	overflow: hidden;
}
#main {
	padding-bottom: 128px;
}
a[href^="tel:"] {
	cursor: default;
	pointer-events: none;
}
@media all and (min-width: 768px) {
	.sp {
		display: none !important;
	}
	#container {
		position: relative;
	}
}
@media all and (max-width: 1000px) {
	a:hover,
	a:hover img {
		opacity: 1 !important;
	}
}
@media all and (max-width: 767px) {
	body {
		min-width: inherit;
		font-size: 1.2rem;
	}
	body.fixed2 {
		position: fixed;
		width: 100%;
		height: 100%;
	}
	.pc {
		display: none !important;
	}
	a[href^="tel:"] {
		cursor: pointer;
		pointer-events: auto;
	}
	#container {
		padding-top: 189px;
	}
	#main {
		padding-bottom: 92px;
	}
}
/*------------------------------------------------------------
	ヘッダー
------------------------------------------------------------*/
#gHeader {
	padding: 77px 7.2%;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	box-sizing: border-box;
	z-index: 6;
}
#gHeader.color01 {
	background-color: #333232;
}
#gHeader.header01 {
	height: 271px;
	box-sizing: border-box;
}
.meunRBox {
	padding: 25px 10px;
	position: fixed;
	right: 0;
	top: 0;
	width: 70px;
	height: 100%;
	background-color: rgba(21, 21, 21, 0.9);
	box-sizing: border-box;
	cursor: pointer;
	transition: background .3s ease;
	z-index: 11;
}
.tab .meunRBox {
	right: -1px;
}
.menu {
	margin: 0 auto;
	position: absolute;
	top: 25px;
	right: 18px;
	height: 30px;
	width: 30px;
	cursor: pointer;
	z-index: 100;
	transition: opacity .25s ease;
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
	box-sizing: border-box;
}
.tab .menu {
	right: 20px;
}
.menu.active .top {
	-webkit-transform: translateY(3px) translateX(0) rotate(-45deg);
	-ms-transform: translateY(3px) translateX(0) rotate(-45deg);
	transform: translateY(3px) translateX(0) rotate(-45deg);
	background: #fff;
}
.menu.active .bottom {
	-webkit-transform: translateY(-3px) translateX(0) rotate(45deg);
	-ms-transform: translateY(-3px) translateX(0) rotate(45deg);
	transform: translateY(-3px) translateX(0) rotate(45deg);
	background: #fff;
}
.menu span {
	background: #D3D3D3;
	border: none;
	height: 2px;
	width: calc(100% - 10px);
	position: absolute;
	top: 0;
	left: 5px;
	-webkit-transition: all .35s ease;
	transition: all .35s ease;
	cursor: pointer;
}
.menu span:nth-of-type(2) {
	top: 6px;
}
.menuBox {
	position: fixed;
	right: 0;
	top: 0;
	width: 50%;
	height: 100%;
	color: #fff;
	box-sizing: border-box;
	background-color: rgba(21, 21, 21, 0.9);
	overflow-y: auto;
	z-index: 10;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	transition: transform .5s ease-in-out;
}
.menuBox.moveout {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.menuBox .inner {
	width: 100%;
	min-height: 100%;
	display: flex;
	align-items: center;
	position: relative;
}
.menuBox .inner .subBox {
	padding: 100px 90px 87px;
	width: 100%;
}
.menuBox a {
	display: block;
	color: #fff;
	font-family: 'Roboto', sans-serif;
}
.menuBox .naviLink01 {
	margin-bottom: 24px;
}
.menuBox .naviLink01 a {
	font-size: 2.6rem;
	font-weight: 400;
	letter-spacing: 2.4px;
	line-height: 1.43;
}
.menuBox .naviLink02 {
	margin-bottom: 18px;
	width: 97%;
	max-width: 290px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.menuBox .naviLink02 li {
	width: 50%;
	margin-bottom: 7px;
}
.menuBox .naviLink02 a {
	font-size: 1.4rem;
	font-weight: 300;
	letter-spacing: 1.4px;
}
.menuBox .naviLink03 {
	display: flex;
	flex-wrap: wrap;
}
.menuBox .naviLink03 a {
	padding-left: 13px;
	font-size: 1.4rem;
	font-weight: 500;
	position: relative;
	letter-spacing: 1px;
}
.menuBox .naviLink03 li:not(:last-child) {
	margin-right: 24px;
}
.menuBox .naviLink03 a::before {
	content: "";
	position: absolute;
	left: -3px;
	top: 6px;
	width: 6px;
	height: 6px;
	border-top: 1px solid #a8a8a8;
	border-right: 1px solid #a8a8a8;
	transform: rotate(45deg);
}
.menuBox .naviLink04 {
	padding-left: 20px;
	width: calc(100% - 110px);
	position: absolute;
	right: 90px;
	bottom: 34px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	box-sizing: border-box;
}
.menuBox .naviLink04 li {
	margin-right: 22px;
	color: #ACACAC;
	letter-spacing: 0.06em;
}
.menuBox .naviLink04 li:first-child {
	margin-right: 18px;
	margin-bottom: 2px;
}
.menuBox .naviLink04 li:last-child {
	margin-right: 0;
}
.menuBox .sns_menu {
	margin-bottom: 9px;
}
.menuBox .subWrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.menuBox .col01 {
	width: calc(100% - 172px);
}
.menuBox .col02 {
	margin-top: 7px;
	width: 172px;
	position: relative;
	z-index: 12;
}
.menuBox .col02 a {
	display: block;
}
.menuBox .col02 a::after {
	display: none;
}
.menuBox .col02 .photo {
	margin-bottom: 16px;
	overflow: hidden;
}
.menuBox .col02 .photo img {
	width: 100%;
	transition: all 1s ease;
}
.menuBox .col02 p {
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.08em;
}
.menuBox .col02 p .sm {
	margin-top: 7px;
	display: block;
	font-size: 1.1rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.7;
}
@media all and (min-width: 768px) {
	.menuBox .inner .subBox {
		max-width: 484px;
	}
	.menuBox a {
		position: relative;
		display: inline-block;
		text-decoration: none;
	}
	.menuBox a::after {
		position: absolute;
		bottom: 1px;
		left: 0;
		content: '';
		width: 100%;
		height: 1px;
		background: currentColor;
		transform: scale(0, 1);
		transform-origin: right top;
		transition: transform .3s;
	}
	#gHeader {
		min-width: 1000px;
	}
	#gHeader h1 img {
		max-width: inherit;
		width: auto;
		height: 27px;
	}
}
@media all and (min-width: 768px) and (max-width: 1200px) {
	.menuBox .inner .subBox {
		padding: 100px 80px 87px 50px;
	}
}
@media all and (min-width: 768px) and (max-width: 1099px) {
	.menuBox .inner .subBox {
		padding-left: 53px;
		padding: 80px 80px 132px 53px;
	}
	.menuBox .subWrap {
		display: block;
	}
	.menuBox .col01 {
		width: auto;
		max-width: 250px;
	}
	.menuBox .col02 {
		margin-top: 42px;
	}
	.menuBox .naviLink01 {
		margin-bottom: 22px;
	}
	.menuBox .naviLink01 li:not(:last-child) {
		margin-bottom: 4px;
	}
	.menuBox .naviLink01 a {
		font-size: 2.2rem;
		line-height: 1.46;
		letter-spacing: 0.09em;
	}
	.menuBox .naviLink02 {
		margin-bottom: 21px;
	}
	.menuBox .naviLink02 li {
		margin-bottom: 4px;
	}
	.menuBox .naviLink02 a {
		font-size: 1.2rem;
		letter-spacing: 0.07em;
	}
	.menuBox .naviLink03 li:not(:last-child) {
		margin-right: 19px;
	}
	.menuBox .naviLink03 a {
		padding-left: 11px;
		font-size: 1.2rem;
		letter-spacing: 0.055em;
	}
	.menuBox .sns_menu {
		margin: 29px 0 0;
	}
	.menuBox .sns_menu li {
		font-size: 1rem;
	}
	.menuBox .sns_menu li img {
		width: 14px;
	}
	.menuBox .col02 .photo {
		margin-bottom: 22px;
	}
	.menuBox .col02 p .sm {
		margin-top: 6px;
	}
	.menuBox .naviLink04 {
		padding-left: 25px;
		width: 100%;
		right: 0;
		bottom: 55px;
		box-sizing: border-box;
		justify-content: flex-start;
	}
	.menuBox .naviLink04 li {
		font-size: 1.1rem;
		letter-spacing: 0.052em;
	}
	.menuBox .naviLink04 li:first-child {
		width: 100%;
		margin: 0 0 10px;
		font-size: 1rem;
		font-weight: 300;
		color: #ACACAC;
		letter-spacing: 0.089em;
	}
}
@media all and (min-width: 1150px) {
	.meunRBox:hover {
		background-color: #000;
	}
	.menuBox a:hover {
		opacity: 1;
	}
	.menuBox a:hover::after {
		transform-origin: left top;
		transform: scale(1, 1);
	}
	.menuBox .col02 a:hover .photo img {
		transform: scale(1.05);
	}
}
@media all and (max-width: 767px) {
	.meunRBox {
		padding: 17px 10px;
		width: 45px;
	}
	.zIndex {
		opacity: 0 !important;
	}
	#gHeader.header01 {
		padding: 38px 31px;
		height: 189px;
	}
	#gHeader.header02 {
		padding: 38px 25px;
	}
	#gHeader.header01.show01 {
		height: 70px;
		padding-bottom: 0;
	}
	#gHeader.header02.show01 {
		padding: 38px 25px 0;
		height: 70px;
		box-sizing: border-box;
	}
	.menu span {
		left: 2px;
	}
	#gHeader {
		padding: 52px 31px;
		z-index: 11;
	}
	#gHeader h1 a {
		display: block;
		position: relative;
	}
	#gHeader h1 img {
		max-width: inherit;
		width: auto;
		height: 19px;
	}
	#gHeader h1 .white {
		display: block;
		position: absolute;
		left: 0;
		top: 0;
		transition: all ease .5s;
		opacity: 0;
		visibility: hidden;
	}
	#gHeader h1 .black {
		transition: all ease .5s;
	}
	#gHeader.show01 h1 .white {
		opacity: 1;
		visibility: visible;
	}
	#gHeader.show01 h1 .black {
		opacity: 0;
		visibility: hidden;
	}
	.menuBox {
		width: 100%;
	}
	.menuBox .inner .subBox {
		padding: 142px 50px 30px 30px;
	}
	.menuBox .naviLink01 a {
		font-size: 2.3rem;
		letter-spacing: 0.09em;
	}
	.menuBox .naviLink02 a {
		font-size: 1.3rem;
	}
	.menuBox .naviLink01 {
		margin-bottom: 50px;
	}
	.menuBox .naviLink02 {
		margin-bottom: 21px;
		width: auto;
		max-width: 240px;
	}
	.menuBox .naviLink02 li {
		width: 49.5%;
		margin-bottom: 8px;
	}
	.menuBox .sns_menu {
		margin: 39px 0 0;
	}
	.menu {
		top: 18px;
		right: 4.4px;
	}
	.menuBox .naviLink03 li:not(:last-child) {
		margin-right: 31px;
	}
	.menuBox .subWrap {
		margin-bottom: 52px;
		display: block;
		position: relative;
	}
	.menuBox .col01 {
		width: auto;
	}
	.menuBox .col02 {
		margin-top: 0;
		width: 124px;
		position: absolute;
		right: 2px;
		top: 7px;
		z-index: 1;
	}
	.menuBox .col02 .photo {
		margin-bottom: 14px;
	}
	.menuBox .col02 p {
		margin-right: -5px;
		font-size: 1.2rem;
		letter-spacing: 0.06em;
	}
	.menuBox .col02 p .sm {
		margin-top: 5px;
		letter-spacing: 0.04em;
		line-height: 1.46;
	}
	.menuBox .naviLink04 {
		width: auto;
		position: relative;
		right: auto;
		left: auto;
		bottom: auto;
		margin: 0;
		padding: 0;
		justify-content: flex-start;
	}
	.menuBox .naviLink04 li:first-child {
		margin: 0 0 12px;
		width: 100%;
	}
	.menuBox .naviLink04 li {
		letter-spacing: 0.06em;
	}
}
@media all and (max-width: 767px) and (max-height: 700px) {
	.menuBox .inner .subBox {
		padding-top: 90px;
	}
}
@media all and (max-width: 374px) {
	#gHeader {
		padding-right: 48px !important;
	}
}
@media all and (max-width: 359px) {
	.menuBox .inner .subBox {
		padding-left: 20px;
	}
	.menuBox .col02 {
		width: 105px;
	}
	.menuBox .col02 p {
		font-size: 1.1rem;
	}
	.menuBox .col02 p .sm {
		font-size: 1rem;
	}
	.menuBox .naviLink04 li {
		margin-right: 12px;
		letter-spacing: 0;
	}
}
/*------------------------------------------------------------
	フッター
------------------------------------------------------------*/
#gFooter {
	background-color: #292929;
	color: #fff;
	font-size: 1.4rem;
	position: relative;
	font-family: 'Roboto', sans-serif;
	overflow: hidden;
}
#gFooter .fInner {
	padding: 88px 100px 50px 7.2%;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
}
#gFooter a {
	color: #fff;
	font-weight: 400;
	letter-spacing: 0.08em;
}
#gFooter .inner {
	display: flex;
	align-items: flex-start;
}
#gFooter .naviLink01 {
	width: 19.6%;
	max-width: 229px;
}
#gFooter .naviLink01 li {
	margin-bottom: 2px;
}
#gFooter .naviLink01 a {
	font-size: 2.2rem;
}
#gFooter .fLogo {
	margin-bottom: 68px;
}
#gFooter .fLogo img {
	max-width: inherit;
	width: auto;
	height: 24px;
}
#gFooter .naviLink02 {
	margin-top: 4px;
	display: flex;
	flex-wrap: wrap;
	width: 27%;
	max-width: 316px;
}
#gFooter .naviLink02 li {
	margin-bottom: 12px;
	width: 41%;
}
#gFooter .naviLink03 {
	margin: 4px 0 0 -3px;
}
#gFooter .naviLink03 a {
	padding-left: 13px;
	font-size: 1.4rem;
	font-weight: 500;
	position: relative;
	letter-spacing: 1px;
}
#gFooter .naviLink03 li {
	margin-bottom: 12px;
}
#gFooter .naviLink03 a::before {
	content: "";
	position: absolute;
	left: -3px;
	top: 5px;
	width: 6px;
	height: 6px;
	border-top: 1px solid #a8a8a8;
	border-right: 1px solid #a8a8a8;
	transform: rotate(45deg);
}
#gFooter .naviLink04 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	box-sizing: border-box;
}
#gFooter .naviLink04 li {
	margin-right: 22px;
	margin-bottom: -2px;
	color: #ACACAC;
	font-size: 1.2rem;
	letter-spacing: 0.06em;
}
#gFooter .naviLink04 li:first-child {
	margin-right: 18px;
	margin-bottom: -1px;
}
#gFooter .naviLink04 li:last-child {
	margin-right: 0;
}
#gFooter .inner .naviLink05 {
	width: 335px;
	margin: 5px 0 0 auto;
	order: 1;
}
#gFooter .inner .naviLink05 a {
	display: flex;
}
#gFooter .inner .naviLink05 .photo {
	margin: 3px 25px 0 0;
	width: 153px;
	overflow: hidden;
}
#gFooter .inner .naviLink05 .photo img {
	width: 100%;
	transition: all 1s ease;
}
#gFooter .inner .naviLink05 p {
	flex: 1;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.533;
}
#gFooter .inner .naviLink05 p .sm {
	margin-top: 10px;
	display: block;
	font-size: 1.1rem;
	font-weight: 400;
	line-height: 1.727;
	letter-spacing: 0.04em;
}
#gFooter .fBtm {
	margin-right: 20px;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
#gFooter address {
	margin-top: 15px;
	letter-spacing: 0.05em;
	font-style: normal;
	font-size: 1rem;
	color: #A8A8A8;
}
.pagetop {
	padding: 10px;
	position: fixed;
	right: 16px;
	bottom: 5px;
	z-index: 11;
}
.win .pagetop,
.mac .pagetop {
	bottom: 5px;
}
.pad .pagetop {
	bottom: 5px;
}
/*---------instagram追加 START---------*/
.sns_footer {
	text-align: right;
	margin: 15px 23px 20px 0px;
}
.sns_footer li {
	font-size: 12px;
}
.sns_footer li img {
	margin: 1.5px 0px 0px 7px;
}
.sns_menu {
	text-align: left;
	margin: 35px 0px 0 0px;
}
.sns_menu li {
	font-size: 12px;
	letter-spacing: 0.06em;
}
.sns_menu li img {
	margin: 1.2px 7.3px 0px 0px;
}
/*---------instagram追加 END---------*/
@media all and (min-width: 768px) {
	#gFooter li a {
		position: relative;
		display: inline-block;
		text-decoration: none;
	}
	#gFooter li a::after {
		position: absolute;
		bottom: 1px;
		left: 0;
		content: '';
		width: 100%;
		height: 1px;
		background: currentColor;
		transform: scale(0, 1);
		transform-origin: right top;
		transition: transform .3s;
	}
}
@media all and (min-width: 1150px) {
	#gFooter li a:hover {
		opacity: 1;
	}
	#gFooter li a:hover::after {
		transform-origin: left top;
		transform: scale(1, 1);
	}
	#gFooter .inner .naviLink05 a:hover {
		opacity: 1;
	}
	#gFooter .inner .naviLink05 a:hover .photo img {
		transform: scale(1.05);
	}
}
@media all and (max-width: 1099px) {
	#gFooter .inner .naviLink05 {
		margin-right: 22px;
		width: 134px;
	}
	#gFooter .inner .naviLink05 a {
		max-width: 100%;
		display: inline-block;
	}
	#gFooter .inner .naviLink05 .photo {
		margin: 0 0 12px;
		width: 124px;
		max-width: 100%;
	}
	#gFooter .inner .naviLink05 p {
		font-size: 1.2rem;
		letter-spacing: 0.05em;
	}
	#gFooter .inner .naviLink05 p .sm {
		margin-top: 2px;
		letter-spacing: 0.017em;
		line-height: 1.4;
	}
}
@media all and (max-width: 986px) {
	#gFooter .fBtm {
		margin-top: 67px;
		flex-wrap: wrap;
	}
	#gFooter .naviLink04 {
		margin-bottom: 31px;
		width: 100%;
		padding: 0;
		right: 0;
		bottom: 34px;
		justify-content: flex-start;
		order: 1;
	}
	#gFooter .naviLink04 li {
		margin: 3px 22px 0 0;
		font-size: 1.3rem;
	}
	#gFooter .naviLink04 li:first-child {
		margin: 0 0 7px;
		width: 100%;
		font-size: 1.2rem;
	}
	#gFooter .naviLink04 li:last-child {
		margin-right: 0;
	}
	#gFooter address {
		margin-top: 0;
		order: 2;
	}
}
@media all and (min-width: 768px) and (max-width: 1099px) {
	#gFooter .inner .naviLink05 .photo {
		width: 100%;
	}
	#gFooter .inner .naviLink05 p br.pc {
		display: none;
	}
}
@media all and (max-width: 767px) {
	#gFooter .fInner {
		padding: 55px 65px 26px 29px;
	}
	#gFooter .fLogo {
		margin-bottom: 55px;
	}
	#gFooter .fLogo img {
		height: 19px;
	}
	#gFooter a {
		font-size: 1.3rem;
	}
	#gFooter .inner {
		margin-bottom: 18px;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	#gFooter .naviLink01 {
		margin-bottom: 33px;
		width: calc(100% - 140px);
		max-width: initial;
	}
	#gFooter .naviLink01 a {
		font-size: 2rem;
	}
	#gFooter .naviLink02 {
		margin-bottom: 18px;
		width: 91%;
		max-width: 270px;
	}
	#gFooter .naviLink02 li {
		margin-bottom: 7px;
		width: 42%;
	}
	#gFooter .naviLink03 {
		margin: 0;
		width: 100%;
		display: flex;
	}
	#gFooter .naviLink03 li {
		margin-top: 0;
	}
	#gFooter .naviLink03 li:not(:last-child) {
		margin-right: 30px;
	}
	#gFooter .naviLink04 li:first-child {
		margin-bottom: 5px;
	}
	#gFooter .naviLink04 li a {
		letter-spacing: 0.06em;
	}
	#gFooter .inner .naviLink05 {
		margin: 7px 0 30px;
		order: initial;
	}
	#gFooter .fBtm {
		margin: 0;
	}
	#gFooter address {
		margin-top: 0;
		letter-spacing: 0;
		font-size: 0.8rem;
	}
	.pagetop {
		right: 3px;
		bottom: 0 !important;
	}
	/*---------instagram追加 START---------*/
	.sns_footer {
		text-align: left;
		margin: 0px 3px 55px 0px;
	}
	.sns_footer li img {
		float: left;
		margin: 1.5px 8px 0px 0px;
	}
	.sns_menu li {
		font-size: 1.3rem;
	}
	/*---------instagram追加 END---------*/
}
@media all and (max-width: 389px) {
	#gFooter .naviLink04 li {
		margin-right: 15px;
	}
	#gFooter .naviLink04 li:last-child {
		margin-right: 0;
	}
}
@media all and (max-width: 374px) {
	#gFooter .fInner .fLogo {
		margin-right: 19px;
	}
}
@media all and (max-width: 359px) {
	#gFooter .fInner {
		padding-left: 20px;
		padding-right: 55px;
	}
	#gFooter .naviLink01 {
		width: calc(100% - 125px);
	}
	#gFooter .inner .naviLink05 {
		width: 120px;
	}
}
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* clearfix */
.clearfix:after {
	content: "";
	display: block;
	clear: both;
}
/* flex */
.flex, .flexA, .flexB, .flexC {
	display: flex;
	flex-wrap: wrap;
}
.flexA {
	justify-content: space-around;
}
.flexB {
	justify-content: space-between;
}
.flexC {
	justify-content: center;
}
/*------------------------------------------------------------
	common
------------------------------------------------------------*/
.en {
	font-family: 'Roboto', sans-serif;
}
/*------------------------------------------------------------
	comBtn
------------------------------------------------------------*/
.comBtn {
	max-width: 193px;
	margin: 0 auto;
}
.comBtn a {
	padding-bottom: 6px;
	display: block;
	text-align: center;
	letter-spacing: 0.06em;
	font-size: 1.4rem;
	color: #ADADAD;
	border-bottom: 1px solid #707070;
}
@media all and (max-width: 767px) {
	.comBtn a {
		font-size: 1.3rem;
	}
}
/*------------------------------------------------------------
	comBox
------------------------------------------------------------*/
.content {
	margin-right: 70px;
}
.comBox {
	/* max-width: 1100px; */
	margin: 0 auto;
	padding: 0 7.2%;
}
@media all and (max-width: 767px) {
	.content {
		margin-right: 45px;
	}
	.comBox {
		padding: 0 26px;
	}
	.jp {
		display: none;
	}
}
/*------------------------------------------------------------
	comSideTxt
------------------------------------------------------------*/
.comSideTxt {
	height: calc(100% - 100px);
	position: fixed;
	right: 0;
	top: 50%;
	writing-mode: vertical-rl;
	writing-mode: tb-rl;
	color: #fff;
	font-size: 1.4rem;
	z-index: 11;
	width: 39px;
	font-family: 'Roboto', sans-serif;
	transform: translateY(-50%);
	letter-spacing: 0.08em;
}
.comSideTxt01 {
	background-color: transparent;
}
.comSideTxt a {
	color: #fff;
}
.comSideTxt .txt {
	width: 39px;
	height: 100%;
	display: flex;
	justify-content: center;
	line-height: 1;
}
.comSideTxt .txt01 {
	display: flex;
	align-items: flex-end;
}
.comSideTxt01 .txt01 {
	font-weight: 300;
}
.comSideTxt .txt02 {
	margin-top: 23px;
	padding-top: 23px;
	max-height: calc(100% - 120px);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	white-space: nowrap;
	border-top: 1px solid #fff;
	box-sizing: border-box;
}
@media all and (max-width: 767px) {
	.comSideTxt {
		width: 26px;
		font-size: 1.2rem;
	}
	.comSideTxt .txt {
		width: 26px;
	}
	.comSideTxt .txt02 {
		margin-top: 16px;
		padding-top: 16px;
	}
}
/*------------------------------------------------------------
	comTopLinkBox
------------------------------------------------------------*/
.comTopLinkBox {
	position: absolute;
	top: 72px;
	width: calc(50% - 35px);
	right: 68px;
	color: #fff;
	z-index: 6;
	font-size: 1.1rem;
	font-weight: 300;
	letter-spacing: 0.14em;
	font-family: 'Roboto', sans-serif;
}
.comTopLinkBox h2 {
	margin-bottom: 17px;
	font-size: 3rem;
	font-weight: 300;
}
.comTopLinkBox .txt {
	line-height: 1.7;
	letter-spacing: 0.06em;
}
.comTopLinkBox01 {
	/* display: flex; */
	/* width: 48.7%; */
	/* padding-right: 8%; */
	box-sizing: border-box;
	width: 100%;
	right: 0;
}
.comTopLinkBox01 h2 {
	font-size: 2.8rem;
	color: #000000;
	left: calc((100% - 68px) / 2);
}
.comTopLinkBox01 .rBox {
	/* margin: 5px 4% 0 0; */
	flex: 1;
	display: flex;
	justify-content: flex-end;
	position: absolute;
	right: calc(75px + (100% - 75px) * 0.072);
	top: 13%;
	font-weight: 400;
}
.comTopLinkBox01 .linkUl a {
	padding-left: 13px;
	display: inline-block;
	font-size: 1.4rem;
	position: relative;
}
.comTopLinkBox01 .linkUl li {
	margin-bottom: 10px;
}
.comTopLinkBox01 .linkUl a::before {
	content: "";
	top: 10px;
	left: 0;
	width: 6px;
	height: 1px;
	position: absolute;
	background-color: #A8A8A8;
}
.comTopLinkBox01 .linkUl .on a span {
	opacity: 0.3;
}
@media all and (min-width: 768px) {
	.comTopLinkBox .spTxtList {
		display: none;
	}
	.comTopLinkBox01 h2 {
		position: absolute;
	}
}
@media all and (min-width: 768px) and (max-width: 1200px) {
	.comTopLinkBox01 .rBox {
		margin-right: 0 !important;
	}
}
@media all and (min-width: 768px) and (max-width: 986px) {
	/*---------instagram追加 START---------*/
	.sns_footer li {
		float: right;
		margin-top: 80px;
	}
	/*---------instagram追加 END---------*/
}
@media all and (max-width: 767px) {
	.comTopLinkBox {
		padding: 0 45px 0 28px;
		width: 100%;
		min-height: 100px;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		left: 0;
		right: auto;
		top: 75px;
		font-size: 0.9rem;
		color: #CECECE;
		z-index: 11;
		box-sizing: border-box;
		transition: opacity 0.5s;
	}
	.comTopLinkBox h2 {
		margin-bottom: 3px;
		font-size: 2rem;
		color: #CECECE;
		font-weight: 400;
	}
	.comTopLinkBox .txt {
		line-height: 1.6;
		letter-spacing: 0.05em;
	}
	.comTopLinkBox01 {
		min-height: inherit;
		top: 125px;
		padding: 0 26px;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
	}
	.comTopLinkBox01 h2 {
		color: #000000;
		font-weight: 400;
	}
	.comTopLinkBox01 .spTxtList {
		margin-right: 44px;
		align-self: center;
	}
	.comTopLinkBox01 .spTxtList li {
		display: inline-block;
		font-size: 1.1rem;
		letter-spacing: 0.06em;
	}
	.comTopLinkBox01 .spTxtList .on a {
		text-decoration: underline;
	}
	/*---------instagram追加 START---------*/
	.sns_footer li {
		margin-top: 0px;
	}
	/*---------instagram追加 END---------*/
}
@media all and (max-width: 374px) {
	.comTopLinkBox h2 {
		font-size: 1.8rem;
	}
	.comTopLinkBox01 h2 {
		font-size: 1.6rem;
		width: 80px;
	}
	.comTopLinkBox01 .spTxtList {
		margin-right: 40px;
	}
}
/*------------------------------------------------------------
	comFlexTxtBox
------------------------------------------------------------*/
.comFlexTxtBox {
	display: flex;
}
.comFlexTxtBox h3 {
	margin-right: 2px;
	width: 33%;
	margin-left: 4px;
	font-weight: 400;
	font-size: 2.8rem;
	line-height: 1.44;
	letter-spacing: 0.06em;
}
.comFlexTxtBox h3 .en {
	display: block;
}
.comFlexTxtBox h3 .jp {
	font-size: 1.3rem;
}
.comFlexTxtBox .rBox {
	margin-top: 3px;
	flex: 1;
}
.comFlexTxtBox ul {
	counter-reset: section;
}
/* .comFlexTxtBox ul:not(:last-child) {
	margin-bottom: 43px;
} */
.comFlexTxtBox ul li {
	padding-left: 27px;
	counter-increment: section;
	position: relative;
	font-weight: 400;
	line-height: 2.3;
	letter-spacing: 0.04em;
}
.comFlexTxtBox ul li::before {
	content: counter(section) ".";
	position: absolute;
	left: 0;
	top: 0;
}
.comFlexTxtBox .rideoList,
.comFlexTxtBox .rideoBox {
	padding: 11px 0 3px;
	display: flex;
	flex-wrap: wrap;
}
.comFlexTxtBox .rideoBox .horizontal-item,
.comFlexTxtBox .rideoBox .mwform-radio-field label {
	display: block;
	width: 100%;
}
.comFlexTxtBox .rideoList li {
	padding-left: 0;
	margin-bottom: 10px;
	width: 24.4%;
}
.comFlexTxtBox .rideoBox .horizontal-item {
	padding-left: 0;
	margin: 0 0 10px 0 !important;
	width: 24.4%;
}
.comFlexTxtBox .rideoList li label input {
	display: none;
}
.comFlexTxtBox .rideoList li label > span {
	padding: 0 0 2px 26px;
	display: inline-block;
	background: url('https://apollo-aa.jp/img/common/radio_img01.png') no-repeat left center / 17px auto;
}
.comFlexTxtBox .rideoList li label input:checked + span {
	background-image: url('https://apollo-aa.jp/img/common/radio_img02.png');
}
.comFlexTxtBox .rideoList li::before {
	display: none;
}
.comFlexTxtBox .rideoList .en {
	padding-right: 10px;
}
.comFlexTxtBox .rideoList span.jp {
	font-size: 1.1rem;
}
.comFlexTxtBox .rideoBox .horizontal-item label input {
	display: none;
}
.comFlexTxtBox .rideoBox .horizontal-item label > span {
	padding: 0 0 2px 26px;
	display: inline-block;
	background: url('https://apollo-aa.jp/img/common/radio_img01.png') no-repeat left center / 17px auto;
}
.comFlexTxtBox .rideoBox .horizontal-item label input:checked ~ span {
	background-image: url('https://apollo-aa.jp/img/common/radio_img02.png');
}
.comFlexTxtBox .rideoBox .horizontal-item::before {
	display: none;
}
.comFlexTxtBox .rideoBox .en {
	padding-right: 10px;
}
.comFlexTxtBox .rideoBox .error .en {
	padding-right: 0;
}
.comFlexTxtBox .rideoBox span.jp {
	font-size: 1.1rem;
}
@media all and (max-width: 767px) {
	.comFlexTxtBox {
		display: block;
	}
	.comFlexTxtBox h3 {
		margin-bottom: 36px;
		width: auto;
	}
	.comFlexTxtBox ul li {
		line-height: 1.9;
	}
	.comFlexTxtBox .horizontal-item {
		line-height: 1.9;
	}
	.comFlexTxtBox .rBox {
		margin-right: -5px;
	}
	.comFlexTxtBox ul li::before {
		left: 3px;
		top: 1px;
	}
	.comFlexTxtBox .rideoList li {
		width: 100%;
	}
	.comFlexTxtBox .horizontal-item::before {
		left: 3px;
		top: 1px;
	}
	.comFlexTxtBox .rideoBox .horizontal-item {
		width: 100%;
	}
}
/*------------------------------------------------------------
	comContactDl
------------------------------------------------------------*/
.comRedColor {
	color: #CC0000;
}
.comContactDl {
	margin-bottom: 97px;
	font-size: 1.3rem;
	font-weight: 400;
	letter-spacing: 0.04em;
}
.comContactDl .comRedColor {
	font-size: 1.3rem;
	margin-left: 2px;
}
.comContactDl dt {
	margin-bottom: 5px;
}
.comContactDl dd {
	margin-bottom: 12px;
}
.comContactDl dt span.jp {
	margin-left: 10px;
	font-size: 1.1rem;
}
.comContactDl input[type="text"],
.comContactDl input[type="email"],
.comContactDl input[type="tel"],
.comContactDl textarea {
	padding: 4px;
	padding-left: 8px;
	padding-bottom: 5px;
	font-size: 1.3rem;
	width: 100%;
	height: 30px;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	background-color: #F0F0F0;
	box-sizing: border-box;
	border: none;
	border-radius: 0;
}
.comContactDl .errorTxt {
	color: #CC0000;
}
.comContactDl .errorTxt .en {
	margin-right: 15px;
}
.comContactDl .errorTxt .jp {
	font-size: 1.1rem;
}
.comContactDl .error {
	color: #CC0000;
	width: 100%;
}
.comContactDl .error .en {
	margin-right: 15px;
}
.comContactDl .error .jp {
	font-size: 1.1rem;
}
.comContactDl input.wind01 {
	width: 293px;
}
.comContactDl input.wind02 {
	width: 150px;
}
.comContactDl input.wind03 {
	width: 592px;
}
.comContactDl input.wind04 {
	width: 425px;
}
.comContactDl input.wind05 {
	width: 183px;
}
.comContactDl input.wind05 {
	width: 183px;
}
.comContactDl .colorBox {
	padding: 8px 7px;
	width: 592px;
	display: flex;
	align-items: center;
	background-color: #F0F0F0;
	box-sizing: border-box;
	color: #909090;
}
.comContactDl .colorBox .jp {
	margin-left: 5px;
	font-size: 1.1rem;
}
.comContactDl .subFil {
	margin-right: 25px;
	padding: 3px 4px 4px;
	min-width: 215px;
	display: inline-block;
	font-size: 1.3rem;
	text-align: center;
	color: #fff;
	font-weight: 400;
	box-sizing: border-box;
	background-color: #363636;
	transition: all 0.3s;
}
.comContactDl .subFil:hover {
	opacity: 0.7;
}
.comContactDl .subFil input {
	display: none;
}
.comContactDl .subFil input[type="file"] {
	display: none;
}
.comContactDl dd textarea {
	width: 108%;
	height: 260px;
	resize: vertical;
	word-break: break-all;
	word-wrap: break-word;
}
.comContactTxt {
	margin-left: 4px;
	font-weight: 400;
}
.comContactTxt .innTxtBox01 {
	margin-bottom: 75px;
	line-height: 2.3;
	letter-spacing: 0.026em;
	display: flex;
	justify-content: space-between;
}
.comContactTxt .innTxtBox01 .en {
	width: 46%;
}
.comContactTxt .innTxtBox01 .jp {
	width: 45%;
}
.comContactTxt .srollBox {
	margin-bottom: 54px;
	height: 252px;
	line-height: 1.82;
	letter-spacing: 0.04em;
	border: 1px solid #C1C1C1;
	background-color: #FCFCFC;
	box-sizing: border-box;
	overflow: hidden;
}
.comContactTxt .srollBox .sroInner {
	padding: 28px 0 28px 42px;
	display: flex;
	justify-content: space-between;
}
.comContactTxt .srollBox .lBox {
	width: 48%;
}
.comContactTxt .srollBox .rBox {
	width: 46.8%;
}
.comContactTxt .srollBox p {
	margin-bottom: 23px;
}
.comContactTxt .srollBox ol p {
	margin-left: 14px;
}
.comContactTxt .comAgree input {
	display: none;
}
.comContactTxt .comAgree {
	margin-bottom: 66px;
	text-align: center;
}
.comContactTxt .comAgree .error {
	letter-spacing: 0.04em;
}
.comContactTxt .comAgree .error .en {
	margin-right: 15px;
}
.comContactTxt .comAgree label > span {
	display: inline-block;
	padding: 1px 11px 1px 35px;
	letter-spacing: 0.08em;
	background: url('https://apollo-aa.jp/img/common/check01.png') no-repeat left center / 20px auto;
}
.comContactTxt .comAgree input:checked ~ span {
	background-image: url('https://apollo-aa.jp/img/common/check02.png');
}
.comContactTxt .submit li {
	max-width: 361px;
	margin: 0 auto 10px;
}
.comContactTxt .submit input {
	padding: 19px 10px 21px;
	display: block;
	width: 100%;
	color: #fff;
	background-color: #000;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	border: none;
	font-size: 1.2rem;
	cursor: pointer;
	border-radius: 0;
	font-weight: 500;
	transition: all 0.3s;
}
.mCSB_scrollTools {
	width: 10px;
}
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 10px;
	background-color: #C6C6C6;
	opacity: 1;
	border-radius: 0;
}
.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #C6C6C6;
}
.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #C6C6C6;
}
.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #C6C6C6;
	border-radius: 0;
}
.mCSB_scrollTools .mCSB_draggerRail {
	background-color: transparent;
}
.mCSB_scrollTools {
	opacity: 1;
}
.comFormCheck .comFlexTxtBox .lBox {
	font-size: 1.4rem;
}
.comFormCheck .comFlexTxtBox .lBox .jp {
	font-size: 1.3rem !important;
}
.comFormCheck .comFlexTxtBox .lBox .txt {
	margin-bottom: 30px !important;
}
.comFormCheck .comFlexTxtBox .rBox {
	margin-top: 0 !important;
}
.comFormCheck .comContactDl .txt02 {
	font-size: 1.3rem !important;
}
.comFormCheck .comContactDl dt {
	float: left;
}
.comFormCheck .comContactDl dd {
	margin-bottom: 13px;
	padding: 0 4.8em 1.3em 25.5em;
	min-height: 37px;
	box-sizing: border-box;
	border-bottom: 1px solid #C9C9C9;
}
.comFormCheck .comContactDl dd:last-of-type {
	border-bottom: none;
}
.comFormCheck .comFlexTxtBox {
	margin-bottom: 45px !important;
}
.comFormCheck .comContactTxt .submit li {
	max-width: 218px;
}
.comThanks {
	padding: 42px 0 83px;
}
.comThanks h3 {
	margin-bottom: 52px;
	padding-bottom: 49px;
	text-align: center;
	font-size: 2.5rem;
	font-weight: 400;
	position: relative;
	line-height: 1.56;
	letter-spacing: 0.03em;
}
.comThanks h3 .jp {
	font-size: 2rem;
}
.comThanks h3::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 45px;
	height: 1px;
	background-color: #707070;
}
.comThanks .txt {
	margin-bottom: 12px;
	text-align: center;
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.9;
	padding-bottom: 25px;
}
.comThanks .txt.jp {
	font-size: 1.3rem;
	letter-spacing: 0.1em;
}
@media all and (min-width: 1150px) {
	.comContactTxt .submit input:hover {
		opacity: 0.7;
	}
}
@media all and (min-width: 768px) and (max-width: 1300px) {
	.comContactDl dd textarea {
		width: 100%;
	}
}
@media all and (max-width: 767px) {
	.comContactDl dt span.jp {
		margin-left: 0 !important;
	}
	.comContactDl dt {
		margin-bottom: 8px;
	}
	.comContactDl input.wind01 {
		width: 100%;
	}
	.comContactDl dd {
		margin-bottom: 21px;
	}
	.comContactDl input.wind02 {
		width: 123px;
	}
	.comContactDl input.wind03 {
		width: 100%;
	}
	.comContactDl input.wind04 {
		width: 183px;
	}
	.comContactDl .colorBox {
		padding: 17px 12px 12px 7px;
		width: 100%;
		text-align: center;
		display: block;
	}
	.comContactDl .colorBox .block {
		display: block;
	}
	.comContactDl .subFil {
		margin: 0 0 6px;
	}
	.comContactDl .subFil:hover {
		opacity: 1;
	}
	.comContactDl dd textarea {
		width: 100%;
		height: 338px;
	}
	.comContactTxt .innTxtBox01 {
		margin-bottom: 29px;
		display: block;
		line-height: 1.66;
	}
	.comContactTxt .innTxtBox01 > p {
		width: auto !important;
	}
	.comContactDl {
		margin-bottom: 52px;
	}
	.comContactTxt {
		margin-left: 0;
	}
	.comContactTxt .srollBox {
		margin-bottom: 28px;
		line-height: 1.6;
		height: 267px;
	}
	.comContactTxt .srollBox .sroInner {
		padding: 12px 13px;
		display: block;
	}
	.comContactTxt .srollBox .sroInner > div {
		width: auto !important;
	}
	.comContactTxt .srollBox p {
		margin-bottom: 20px;
	}
	.comContactTxt .comAgree {
		margin-bottom: 53px;
		text-align: left;
	}
	.comContactTxt .comAgree label > span {
		padding: 1px 11px 6px 30px;
	}
	.comContactTxt .submit li {
		width: 100%;
	}
	.comContactTxt .submit input {
		padding: 17px 10px 20px;
	}
	.comFormCheck .comContactDl dt {
		margin-bottom: 1px;
		float: none;
		font-weight: 500;
	}
	.comFormCheck .comContactDl dd {
		padding: 0 0 0.9em 0;
		margin-bottom: 7px;
		min-height: inherit;
	}
	.comFormCheck .comFlexTxtBox .lBox {
		font-size: 1.2rem;
	}
	.comFormCheck .comFlexTxtBox .lBox .jp {
		font-size: 1.1rem !important;
	}
	.comFormCheck .comFlexTxtBox .lBox {
		margin-bottom: 35px !important;
	}
	.comThanks h3 {
		margin-bottom: 28px;
		padding-bottom: 26px;
		font-size: 1.9rem;
	}
	.comThanks h3 .jp {
		font-size: 1.5rem;
	}
	.comThanks {
		padding: 53px 0 49px;
	}
	.comThanks h3::before {
		width: 36px;
	}
	.comThanks .txt {
		line-height: 1.56;
	}
}
#cover {
	position: fixed;
	z-index: 12;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(30, 30, 30, 1.00);
	transition: opacity .6s ease, visibility .6s ease;
}
.hideCover #cover {
	opacity: 0;
	visibility: hidden;
	transition: opacity .8s ease, visibility .8s ease;
}
.fadeInAnim {
	opacity: 0;
	-webkit-transform: translateY(40px);
	transform: translateY(40px);
	-webkit-transition: opacity .8s cubic-bezier(0.23, 1, 0.32, 1), transform .8s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform .8s cubic-bezier(0.23, 1, 0.32, 1);
	transition: opacity .8s cubic-bezier(0.23, 1, 0.32, 1), transform .8s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform .8s cubic-bezier(0.23, 1, 0.32, 1);
}
.fadeInAnim.visible {
	opacity: 1;
	-webkit-transform: translateY(0px);
	transform: translateY(0px);
}
.cover {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 999;
	background-color: rgba(30, 30, 30, 1.00);
}
.cover img {
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.confirmcontent {
	display: none;
}
@media all and (max-width: 374px) {
	#gFooter .naviLink03 li:not(:last-child) {
		margin-right: 18px;
	}
	.sns_footer {
		display: flex;
	}
	.sns_footer li {
		margin-top: 0px;
	}
	#gFooter .naviLink04 li {
		margin: 3px 13px 0 0;
	}
	.sns_menu {
		margin: 15px 0px -25px 0px;
	}
}


/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#container {
	background-color: #333232;
}
.projects .menuBox .naviLink01 li:nth-of-type(2),
.menuBox .naviLink01 li:nth-of-type(1) {
	opacity: 0.3;
}
.projects .menuBox .naviLink01 li:nth-of-type(1) {
	opacity: 1;
}
#gFooter .list01 a,
.projects #gFooter .list02 a {
	opacity: 0.3;
}
.projects #gFooter .list01 a {
	opacity: 1;
}
#main {
	background-color: #030303;
}
#main .topLinkBox {
	position: absolute;
	top: 75px;
	width: calc(50% + 35px);
	right: 0;
	display: flex;
	color: #fff;
	z-index: 6;
	letter-spacing: 0.14em;
	font-family: 'Roboto', sans-serif;
}
#main .topLinkBox .rBox {
	flex: 1;
}
#main .topLinkBox a {
	color: #E8E8E8;
}
#main .topLinkBox h2 {
	font-size: 2rem;
	font-weight: 300;
}
#main .topLinkBox .linkUl {
	max-width: 500px;
	margin: 2px 0 0 16.2%;
	display: flex;
	flex-wrap: wrap;
	width: 70%;
}
#main .topLinkBox .linkUl li {
	margin-bottom: 7px;
	width: 34%;
}
#main .topLinkBox .linkUl a {
	font-size: 1.1rem;
	letter-spacing: 0.06em;
	border-bottom: 1px solid transparent;
}
#main .topLinkBox .linkUl .on a {
	border-bottom-color: #AAAAAA;
}
#main .listUl {
	display: flex;
	flex-wrap: wrap;
}
#main .listUl .pho img {
	opacity: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
#main .hover a {
	display: block;
}
#main .listUl li {
	width: 50%;
	overflow: hidden;
}
#main .listUl .pho {
    opacity: 0;
	padding-bottom: 65.5%;
	display: block;
	position: relative;
	transition: all 1s ease;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	overflow: hidden;
}
#main .listUl .over {
	display: block;
	overflow: hidden;
}
#main .inner {
	padding-right: 70px;
}
#main .inner .noContent {
    padding: 128px 7.2% 0;
}
#main .inner .noContent p {
    font-size: 2rem;
    color: #FFF;
}
#main .txtBox {
	/* margin: 0 auto;
	max-width: 1366px; */
	padding: 18px 7.2%;
	min-height: 136px;
	box-sizing: border-box;
	display: flex;
	color: #ADADAD;
	font-size: 1.1rem;
	font-family: 'Roboto', sans-serif;
}
#main .txtBox h2 {
	max-width: 70%;
	word-wrap:break-word;
	margin-top: 7px;
	font-size: 3rem;
	font-weight: 400;
	letter-spacing: 0.06em;
}
#main .txtBox h2>span {
	display: block;
	overflow: hidden;
}
#main .txtBox h2>span span {
	display: block;
	line-height: 1.2;
	transform: translateY(100%);
	-webkit-transform: translateY(100%);
    opacity: 0;
}
#main .visible .txtBox h2 > span span {
    opacity: 1;
    animation: flowup 1.5s ease forwards;
    -webkit-animation: flowup 1.5s ease forwards;
}
#main .showBox li {
	display: none;
}
@keyframes flowup
{
    0% {transform: translateY(100%); -webkit-transform: translateY(100%);}
    100% {transform: translateY(0); -webkit-transform: translateY(0);}
}
@-webkit-keyframes flowup
{
    0% {transform: translateY(100%); -webkit-transform: translateY(100%);}
    100% {transform: translateY(0); -webkit-transform: translateY(0);}
}

#main .txtBox .txt {
	flex: 1;
	letter-spacing: 0.06em;
	margin: 5px 0 0 42px;
	line-height: 1.7;
}
#main .sec01 {
	margin-bottom: 124px;
	position: relative;
}
#main .sec01::before {
	/* width: 100%;
	height: 20px;
	position: absolute;
	left: 0;
	top: 0;
	background-color: #333232;
	content: ""; */
}
#main .listUl01 li {
	margin: 0 71px 52px 0;
	width: calc((100% - 142px) / 3);
}
#main .listUl01 .pho {
	padding-bottom: 62%;
}
#main .listUl01 span {
	display: block;
}
#main .listUl01 .txt {
	padding: 21px 0;
	color: #ADADAD;
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	font-family: 'Roboto', sans-serif;
}
#main .listUl01 .ttl {
	margin: 5px 0 10px;
	font-size: 1.8rem;
	font-weight: 400;
}
#main .listUl01 .ttl > span {
    display: block;
    overflow: hidden;
}
#main .listUl01 .ttl > span span {
    display: block;
    line-height: 1;
    transform: translateY(100%);
    -webkit-transform: translateY(100%);
}
#main .listUl01 .visible .ttl > span span {
    animation: flowup 1.5s ease forwards;
    -webkit-animation: flowup 1.5s ease forwards;
}
#main .listUl01 .txt01 {
	line-height: 1.7;
}
#main .listUl01 .txt01 .shuffle {
    display: inline-block;
}
#main .listUl01 .margin {
	padding: 21px 27px;
}
#main .comBtn {
	margin-top: 27px;
}
#main .sec02 .listUl a {
	overflow: hidden;
}
@media all and (-ms-high-contrast:none){
	#main .listUl01 li {
		margin-right: 70px;
	}
}
@media all and (min-width: 768px) and (max-width: 1000px) {
	#main .topLinkBox .linkUl {
		width: 96%;
	}
}
@media all and (min-width: 768px) {
	#main .listUl01 li:nth-child(3n) {
		margin-right: 0;
	}
	#container {
		background-color: #333232;
	}
    #main .listUl01 li:not(:nth-child(3n-2)) .margin {
        padding-left: 0;
    }
}
@media all and (min-width: 1150px) {
	#main .hover a:hover {
		opacity: 1;
	}
	#main .hover a:hover .pho{
		transform: scale(1.05,1.05);
	}
	#main .sec02 .listUl a:hover {
		opacity: 1;
	}
	#main .sec02 .listUl a:hover .pho {
		transform: scale(1.05,1.05);
	}
}
@media all and (max-width: 767px) {
	#gFooter .list01 a:hover,
	.projects #gFooter .list02 a:hover {
		opacity: 0.3 !important;
	}
	#main .topLinkBox {
		width: auto;
		top: 116px;
		left: 0;
		box-sizing: border-box;
		padding: 0 30px;
		z-index: 11;
		transition: opacity 0.5s;
	}
	#main .topLinkBox .faqBox {
		margin: 7px 0 0 34px;
		padding-left: 7px;
		width: 66%;
		font-size: 1rem;
		letter-spacing: 0.1em;
		background-color: #333232;
	}
	#main .topLinkBox .faqBox .ttl {
		margin-bottom: 2px;
		padding-bottom: 2px;
		position: relative;
		border-bottom: 1px solid #A3A3A3;
	}
    #main .topLinkBox .faqBox .edd-root {
        width: 100%;
        margin-bottom: 2px;
		padding-bottom: 2px;
		position: relative;
    }
    #main .topLinkBox .faqBox .edd-root::after {
        display: none;
    }
    #main .topLinkBox .faqBox .edd-root .edd-head {
        border: none;
        font-size: 1rem;
        color: #FFF;
        padding-left: 7px;
    }
    #main .topLinkBox .faqBox .edd-root .edd-head .edd-value {
        padding: 0 0 2px 0;
        border-bottom: 1px solid #A3A3A3;
    }
    #main .topLinkBox .faqBox .edd-root .edd-head .edd-arrow {
        display: none;
    }
    #main .topLinkBox .faqBox .edd-root .edd-head .edd-select {
        border: none;
    }
    #main .topLinkBox .faqBox .edd-root .edd-body {
        width: 100%;
    }
	#main .topLinkBox .faqBox .ttl::before {
		content: "";
		position: absolute;
		right: 4px;
		top: 4px;
		border: 5px solid transparent;
		border-top-color: #BCBCBC;
	}
    #main .topLinkBox .faqBox .edd-root::before {
        content: "";
		position: absolute;
		right: 4px;
		top: 4px;
		border: 5px solid transparent;
		border-top-color: #BCBCBC;
    }
	#main .topLinkBox .faqBox .txt {
		margin-bottom: 2px;
	}
    #main .topLinkBox .faqBox .edd-option {
        padding: 0 0 0 7px;
        margin-bottom: 2px;
        font-size: 1rem;
        color: #FFF;
    }
    #main .topLinkBox .faqBox .edd-body {
        background-color: #333232;
        border: none;
    }
    #main .topLinkBox .faqBox .edd-option-selected::before {
        display: none;
    }
	#main .topLinkBox .faqBox .contBox {
		display: none;
	}
	#main a:hover .listUl .pho img {
		opacity: 0 !important;
	}
	#main .listUl li {
		width: 100%;
		display: none;
	}
	#main .listUl li:first-child {
		display: block;
	}
    #main .showBox .listUl li {
        display: none
    }
	#main .inner {
		padding-right: 0;
	}
    #main .inner .noContent {
        padding: 92px 31px 0;
    }
	#main .listUl .pho {
		padding-bottom: 56.5%;
	}
	#main .listUl a:hover .pho img {
		opacity: 0 !important;
	}
	#main .txtBox h2 {
		margin-bottom: 5px;
		font-size: 2rem;
	}
	#main .txtBox {
		padding: 8px 27px;
		display: block;
		min-height: 106px;
	}
	#main .txtBox .txt {
		margin: -1px 0 0 0;
		line-height: 1.6;
		font-size: 0.9rem;
	}
	#main .sec01 {
		margin-bottom: 24px;
	}
	/* #main .sec01 .inner {
        margin-right: 45px;
	} */
	#main .listUl01 {
		margin-right: 45px;
	}
	#main .listUl01 li {
		margin: 0 0 11px;
		display: block;
		width: 50%;
	}
	#main .listUl01 .pho {
		padding-bottom: 62%;
	}
	#main .listUl01 .txt {
		padding: 6px 0;
	}
	#main .listUl01 .ttl {
        margin: 3px 0 4px;
		font-size: 1.4rem;
	}
	#main .listUl01 .margin {
		padding: 6px 0;
	}
	#main .listUl01 li:nth-child(odd) .txt {
		padding: 6px 8px;
	}
	#main .comBtn {
		position: relative;
		right: 23px;
	}
}
@media all and (max-width: 374px) {
	#main .topLinkBox .faqBox {
		margin: 7px 0 0 15px;
		padding-left: 0;
		width: 72%;
	}
}


/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main .photo img {
	width: 100% !important;
}
#main .centerPho {
	padding: 145px 18.7% 145px 13.7%;
}
#main .centerPho img {
	width: 100% !important;
}
#main .phoList {
	display: flex;
	flex-wrap: wrap;
}
#main .phoList li {
	width: 50%;
}
#main .phoList li img {
	width: 100% !important;
}
#main .textArea {
	padding: 171px 160px 0 101px;
}
#main .textArea .bdBox {
	margin-bottom: 85px;
	padding-bottom: 70px;
	border-bottom: 1px solid #3c3c3c;
}
#main .textArea .lBox {
	width: 46%;
}
#main .textArea .rBox {
	width: 47.5%;
}
#main .textArea p {
	color: #ccc;
	font-size: 1.2rem;
	line-height: 22px;
}
#main .textArea p a {
	color: #ccc;
}
#main .textArea .rBox p {
	font-size: 1.1rem;
	line-height: 22px;
	letter-spacing: 0.5px;
}
#main .textArea .rBox p:not(:last-child) {
	margin-bottom: 20px;
}
#main .listBox {
	padding-bottom: 85px;
	border-bottom: 1px solid #3c3c3c;
}
#main .listBox > div {
    width: 47.5%;
}
#main .listBox ul {
	width: 100%;
}
#main .listBox li {
	color: #ccc;
}
#main .listBox li:not(:last-child) {
	margin-bottom: 18px;
}
#main .txtBox {
	padding: 80px 101px 220px;
	height: auto;
}
#main .txtBox h2 {
	margin-right: 143px;
	margin-top: -4px;
	font-weight: 300;
	font-size: 3rem;
	color: #FEFEFE;
}
#main .txtBox .rBox {
	flex: 1;
}
#main .txtBox .txtListUl {
	margin-top: 6px;
	display: flex;
	flex-wrap: wrap;
}
#main .txtBox .txtListUl li {
	width: 49.6%;
}
#main .txtBox .txtListUl li.encontent {
	margin-top: -1px;
}
#main .txtBox .txtListUl table {
	width: 100%;
	border-collapse: collapse;
}
#main .txtBox .txtListUl table th,
#main .txtBox .txtListUl table td {
	padding-bottom: 14px;
	font-size: 1.1rem;
	font-weight: 400;
	color: #CCCCCC;
	letter-spacing: 0.06em;
	vertical-align: top;
	text-align: left;
	box-sizing: border-box;
	font-family: 'Roboto', sans-serif;
}
#main .txtBox .txtListUl table th {
	width: 27.6%;
}
#main .txtBox .txtListUl .table01 th {
	width: 17%;
}
#main .sec01 {
	margin-bottom: 150px;
}
#main .h2Ttl {
	font-size: 2rem;
	letter-spacing: 0.06em;
	text-align: center;
	color: #fff;
	font-weight: 300;
	margin: -200px 9px 51px 0;
	font-family: 'Roboto', sans-serif;
}

@media all and (min-width: 768px) and (max-width: 1146px) {
	#main .txtBox h2 {
		margin-right: 108px;
	}
	#main .txtBox .txtListUl {
		justify-content: space-between;
	}
	#main .txtBox .txtListUl li {
		width: 46.6%;
	}
	#main .txtBox .txtListUl table th {
		padding-right: 8px;
	}
	#main .txtBox .txtListUl table th,
	#main .txtBox .txtListUl table td {
		letter-spacing: 0.02em;
	}
	#main .txtBox .txtListUl .table01 th {
		width: 24%;
	}
	#main .txtBox .txtListUl .table01 th,
	#main .txtBox .txtListUl .table01 td {
		letter-spacing: 0.06em;
	}
}
@media all and (min-width: 768px) {
	#gHeader.header01 {
		height: 247px;
	}
	#container {
		padding-top: 247px;
	}
	#main .listUl01 li {
		margin: 0 2px 52px 0;
		width: calc((100% - 4px) / 3);
	}
	#main .listUl01 .txt {
		padding: 11px 0;
	}
	#main .listUl01 .margin {
		padding: 11px 27px;
	}
	#main .listUl01 .ttl {
		min-height: 27px;
	}
	#main .comBtn {
		margin-top: 7px;
	}
	#main .video {
		margin-right: 70px;
	}
	#main .photo {
		margin-right: 70px;
	}
	#main .phoList {
		margin-right: 70px;
	}
}
@media all and (-ms-high-contrast:none){
	#main .listUl01 li {
		margin-right: 1px;
	}
}
@media all and (max-width: 767px) {
	#main .centerPho {
		padding: 41px 12.7% 47px 12.2%;
	}
	#main .phoList li {
		width: 100%;
	}
	#main .inner01 {
		margin-right: 45px;
	}
	#main .textArea {
		padding: 135px 29px 0;
		position: relative;
	}
	#main .textArea .comTopLinkBox01 {
		left: auto;
		right: 6px;
		top: 80px;
		justify-content: flex-end;
	}
	#main .textArea .comTopLinkBox01 .spTxtList {
		margin-right: 0;
	}
	#main .textArea .comTopLinkBox01 .spTxtList a {
		color: #FFF;
	}
	#main .textArea .bdBox {
		margin-bottom: 40px;
		padding-bottom: 40px;
		display: block;
	}
	#main .textArea .lBox {
		width: auto;
	}
	#main .textArea .rBox {
		width: auto;
	}
	#main .textArea p {
		font-size: 1.2rem;
		line-height: 26px;
	}
	#main .textArea .rBox p {
		font-size: 1.1rem;
		line-height: 17px;
	}
	#main .textArea .rBox p:not(:last-child) {
		margin-bottom: 20px;
	}
	#main .listBox {
		padding-bottom: 40px;
		display: block;
	}
    #main .listBox .jpcontent {
        display: none;
    }
    #main .listBox > div {
        width: auto;
    }
	#main .listBox ul {
		width: auto;
	}
	#main .listBox ul:not(:last-child) {
		margin-bottom: 18px;
	}
	#main .txtBox {
		padding: 40px 28px 114px;
	}
	#main .txtBox h2 {
		margin-right: 29%;
		font-weight: 400;
	}
	#main .txtBox .tBox {
		margin-bottom: 42px;
		display: flex;
		justify-content: space-between;
	}
	#main .txtBox .tabUl {
		margin-left: 3px;
		align-self: flex-end;
		margin-bottom: 8px;
	}
	#main .txtBox .tabUl a {
		color: #CCCCCC;
		font-size: 1.2rem;
	}
	#main .txtBox .tabUl li {
		display: inline-block;
	}
	#main .txtBox .tabUl .on a {
		text-decoration: underline;
	}
	#main .txtBox .txtListUl li {
		display: none;
		width: 100%;
	}
	#main .txtBox .txtListUl li:first-child {
		display: block;
	}
	#main .txtBox .txtListUl table th, #main .txtBox .txtListUl table td {
		padding-bottom: 12px;
		font-size: 0.9rem;
		letter-spacing: 0;
	}
	#main .txtBox .txtListUl table th {
		width: 34%;
	}
	#main .txtBox .txtListUl .table01 th {
		width: 23%;
	}
	#main .sec01 {
		margin-bottom: -1px;
	}
	#main .h2Ttl {
		margin-bottom: 57px;
		margin-top: 0;
		text-align: left;
		font-size: 1.8rem;
	}

	#main .sec02 .inner {
		margin-left: 31px;
	}
	#main .listUl01 li {
		margin-bottom: 27px;
		width: 100%;
	}
	#main .listUl01 .txt01 {
		display: block;
	}
	#main .listUl01 .ttl {
		margin-bottom: 0;
		font-size: 1.8rem;
	}
	#main .listUl01 li:nth-child(2n+1) .txt {
		padding: 10px 0;
	}
	#main .listUl01 .txt {
		padding: 10px 0;
	}
	#main .comBtn {
		margin-top: 10px;
		right: 39px;
	}
}
@media all and (max-width: 375px) {
	#main .txtBox h2 {
		margin-right: 9%;
	}
}

.contact-modal { position:fixed; inset:0; margin:auto; box-sizing:border-box; width:min(560px,calc(100% - 40px)); max-height:calc(100svh - 40px); padding:38px 40px 32px; border:1px solid rgba(255,255,255,.35); border-radius:20px; background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 50%),rgba(82,82,82,.9); color:#fff; font-family:'Roboto',sans-serif; box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 24px 80px rgba(0,0,0,.3); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); overflow:auto; overscroll-behavior:contain; }
.contact-modal::backdrop { background:rgba(0,0,0,.26); }
.contact-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
#contact-title { font-size:30px; font-weight:400; line-height:1.2; letter-spacing:2px; }
#profile-title { font-size:30px; font-weight:400; line-height:1.2; letter-spacing:2px; }
.profile-modal { width:min(640px,calc(100% - 40px)); }
.profile-modal .contact-heading { margin-bottom:22px; }
.profile-cover { display:block; width:100%; height:auto; aspect-ratio:2.2; object-fit:cover; object-position:50% 62%; border-radius:8px; background:#fff; filter:grayscale(1); }
.profile-intro { margin-top:24px; }
.profile-intro h3 { margin-bottom:10px; font-size:22px; line-height:1.3; font-weight:400; letter-spacing:.5px; }
.profile-intro p { font-size:16px; font-weight:400; line-height:1.65; color:rgba(255,255,255,.92); }
.profile-intro p + p { margin-top:16px; }
.profile-file-info { margin:20px 0 14px; font-size:12px; line-height:1.5; color:rgba(255,255,255,.75); }
.profile-actions { display:flex; gap:12px; }
.profile-actions a { flex:1; display:flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:48px; padding:12px; border:1px solid rgba(255,255,255,.6); border-radius:7px; font-size:14px; line-height:1.4; font-weight:400; letter-spacing:.4px; transition:background .2s,border-color .2s; }
.profile-actions .profile-view, .profile-actions .profile-view:visited { background:#fff; color:#525252; }
.profile-actions .profile-download, .profile-actions .profile-download:visited { background:rgba(255,255,255,.04); color:#fff; }
.profile-actions a:hover { opacity:1; border-color:#fff; }
.profile-actions .profile-view:hover { background:#e7e7e7; }
.profile-actions .profile-download:hover { background:rgba(255,255,255,.12); }
.contact-close { flex:none; display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.04); transition:background .2s,border-color .2s; }
.contact-close svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }
.contact-close:hover { border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.1); }
.contact-field { margin-bottom:24px; }
.contact-field label { display:block; margin-bottom:10px; font-size:14px; line-height:1.4; letter-spacing:.6px; }
.contact-field input, .contact-field textarea { display:block; box-sizing:border-box; width:100%; min-height:46px; padding:11px 13px; border:1px solid rgba(255,255,255,.25); border-radius:7px; background:rgba(0,0,0,.13); color:#fff; font-family:inherit; font-size:16px; font-weight:400; line-height:1.5; transition:background .2s,border-color .2s; }
.contact-field textarea { min-height:120px; resize:vertical; max-height:260px; }
.contact-field input:focus, .contact-field textarea:focus { outline:1px solid rgba(255,255,255,.7); outline-offset:3px; border-color:rgba(255,255,255,.65); background:rgba(0,0,0,.2); }
.contact-field input:-webkit-autofill { -webkit-text-fill-color:#fff; -webkit-box-shadow:0 0 0 1000px #525252 inset; caret-color:#fff; }
.contact-submit { display:block; width:100%; min-height:48px; margin-top:6px; border:1px solid rgba(255,255,255,.75); border-radius:7px; background:#fff; color:#525252; font-size:14px; line-height:1.4; letter-spacing:.7px; transition:background .2s; }
.contact-submit:hover { background:#e7e7e7; }
.contact-submit:disabled { cursor:progress; opacity:.65; }
.contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); pointer-events:none; }
.contact-note { margin-top:15px; font-size:12px; line-height:1.5; color:rgba(255,255,255,.75); }

@media(max-width:767px){.contact-modal{width:calc(100% - 32px);padding:28px 24px;max-height:calc(100svh - 32px);}.contact-heading{gap:12px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;}#main .txtBox h2 span{opacity:1!important;transform:none!important;}}

.contact-close { color:#fff; }

/* Native interactions and client content, layered over the Apollo detail styles. */
html { scroll-behavior:smooth; scrollbar-gutter:stable; }
body { min-width:0; }
#gHeader { min-width:0; }
#gHeader h1 img { max-width:none; }
.menu { border:0; padding:0; background:none; color:inherit; font:inherit; }
.menu:focus-visible, a:focus-visible { outline:1px solid #fff; outline-offset:5px; }
.menuBox a { color:#fff; }
body.menu-open { overflow:hidden; }
body.menu-open .comTopLinkBox, body.menu-open .comSideTxt { opacity:0; visibility:hidden; }
.comTopLinkBox h2 { overflow-wrap:break-word; }
/* Compact project intro; the gallery has no reserved vertical side rail. */
#container { padding-top:0; overflow:clip; }
#gHeader.header01, #gHeader.header01.show01 { position:sticky; top:0; z-index:9; height:auto; min-height:108px; padding:26px 40px; background:#292929; }
#gHeader.header01 .inner { display:grid; grid-template-columns:160px minmax(0,1fr) 160px; align-items:center; gap:24px; }
#gHeader.header01 h1 { line-height:1; }
#gHeader.header01 h1 img { display:block; width:auto; height:23px; }
.comTopLinkBox { position:static; width:auto; min-height:0; padding:0; display:block; }
.comTopLinkBox { text-align:center; }
.comTopLinkBox h2 { margin:0 0 7px; font-size:clamp(20px,1.7vw,26px); line-height:1.25; letter-spacing:.045em; font-weight:300; }
.comTopLinkBox .txt { font-size:11px; line-height:1.6; letter-spacing:.035em; color:#ffffff99; }
body > .language-switch { top:36px; right:92px; text-shadow:0 1px 4px #0006; }
.meunRBox { height:108px; width:80px; right:8px; background:transparent; }
.meunRBox .menu { top:50px; right:24px; }
#main .inner { padding-right:0; }
#main .inner01, #main .photo, #main .phoList, #main .listUl01 { margin-right:0; }
#main .comBtn { right:auto; }
#main .gallery-image, #main .gallery-image:hover { display:block; opacity:1; cursor:zoom-in; }
#main .project-photos .photo { margin-bottom:0; }
#main .project-photos img { display:block; width:100%; height:auto; max-height:none; }
#main .textArea p { font-family:Roboto,Arial,sans-serif; }
#main .textArea .lBox { width:min(760px,100%); }
#main .textArea .project-subtitle { margin:0 0 20px; font-size:22px; font-weight:300; line-height:1.45; letter-spacing:.01em; color:#fff; }
#main .textArea .project-description { font-size:14px; line-height:1.9; color:#bbb; }
#main .txtBox .txtListUl > li:only-child { width:100%; }
#main .project-overview { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr); align-items:start; gap:clamp(40px,5vw,80px); width:calc(100% - 80px); max-width:1120px; margin:0 auto; padding:56px 0; border-bottom:1px solid #ffffff1a; box-sizing:border-box; scroll-margin-top:132px; }
#main .project-overview .textArea { padding:0; }
#main .project-overview .bdBox { margin:0; padding:0; border:0; }
#main .project-overview .txtBox { display:block; min-height:0; height:auto; padding:0; }
#main .project-overview .txtBox .tBox { display:block; margin:0 0 20px; }
#main .project-overview .txtBox h2 { margin:0; font-size:12px; font-weight:400; line-height:1.5; letter-spacing:.12em; }
#main .project-overview .txtListUl { display:block; margin:0; }
#main .project-overview .txtListUl table { table-layout:fixed; }
#main .project-overview .txtListUl table th, #main .project-overview .txtListUl table td { padding:0 0 12px; font-size:12px; line-height:1.6; letter-spacing:.015em; overflow-wrap:break-word; }
#main .project-overview .txtListUl table th { width:38%; padding-right:20px; color:#888; }
#main .project-overview .txtListUl table td { color:#ddd; }
#main .project-overview .txtListUl tr:last-child th, #main .project-overview .txtListUl tr:last-child td { padding-bottom:0; }
#main .sec01 { margin-bottom:0; }
#main .sec02 { padding-top:32px; }
#main .h2Ttl { margin:0 0 28px; }
#main .listUl .pho, #main .listUl .pho img { opacity:1; }
#main .listUl .pho img { object-fit:cover; }
#gFooter .fLogo a { opacity:1; }
.pagetop { opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
body.page-scrolled .pagetop { opacity:1; visibility:visible; }
.contact-modal button, .image-viewer button { cursor:pointer; font-family:Roboto,Arial,sans-serif; }
.contact-submit { font-weight:400; }
.contact-note { font-weight:400; }
.image-viewer { position:fixed; inset:0; border:0; padding:0; background:#191919; color:#fff; width:100vw; max-width:100vw; height:100svh; max-height:100svh; overflow:hidden; overscroll-behavior:contain; margin:0; box-sizing:border-box; }
.image-viewer::backdrop { background:#191919; }
.image-viewer[open] { display:grid; grid-template-columns:72px 1fr 72px; align-items:center; }
.image-viewer button { border:0; background:transparent; color:#fff; font-size:28px; width:52px; height:52px; justify-self:center; }
.viewer-close { position:absolute; right:20px; top:16px; z-index:2; }
.viewer-stage { min-width:0; text-align:center; }
.viewer-stage img { display:block; width:100%; height:calc(100svh - 140px); object-fit:contain; }
.viewer-caption { font:11px/1.6 Roboto,Arial,sans-serif; letter-spacing:.08em; margin:20px 0 0; color:#ccc; }
.viewer-prev, .viewer-next { position:relative; z-index:1; }
.viewer-close:hover, .viewer-prev:hover, .viewer-next:hover { background:#ffffff12; }
body:has(dialog[open]) { overflow:hidden; }
@media(max-width:767px) {
  #gHeader.header01, #gHeader.header01.show01 { min-height:0; padding:24px 24px 22px; }
  #gHeader.header01 .inner { grid-template-columns:minmax(0,1fr); gap:18px; }
  #gHeader.header01 h1 img { height:20px; }
  .comTopLinkBox { min-height:0; text-align:left; }
  .comTopLinkBox h2 { margin-bottom:6px; font-size:20px; line-height:1.3; }
  .comTopLinkBox .txt { font-size:10.5px; line-height:1.7; }
  body > .language-switch { top:18px; right:64px; }
  .meunRBox { height:72px; right:0; width:56px; }
  .meunRBox .menu { top:32px; right:18px; }
  #main .textArea .project-subtitle { font-size:20px; }
  #main .project-overview { grid-template-columns:minmax(0,1fr); gap:30px; width:calc(100% - 48px); padding:36px 0; scroll-margin-top:178px; }
  #main .project-overview .project-subtitle { margin-bottom:16px; }
  #main .project-overview .txtBox { padding-top:24px; border-top:1px solid #ffffff1a; }
  #main .project-overview .txtBox .tBox { margin-bottom:18px; }
  #main .h2Ttl { padding:0 24px; }
  #main .sec02 .inner { margin-left:0; }
  #main .textArea .rwh-description { width:auto; }
  .image-viewer[open] { grid-template-columns:44px 1fr 44px; }
  .image-viewer button { width:40px; height:44px; font-size:24px; }
  .viewer-close { top:12px; right:12px; }
  .viewer-caption { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
/* Reveal each lower section once while keeping native wheel/touch scrolling. */
.rwh-reveal { transition:opacity .7s ease,transform .85s cubic-bezier(.22,1,.36,1); }
.rwh-reveal.is-pending { opacity:0; transform:translate3d(0,28px,0); }
.rwh-reveal:focus-within { opacity:1; transform:none; }
#main .sec02 .listUl > li.rwh-reveal:nth-child(2) { transition-delay:.07s; }
#main .sec02 .listUl > li.rwh-reveal:nth-child(3) { transition-delay:.14s; }
@media(prefers-reduced-motion:reduce) { .rwh-reveal.is-pending { opacity:1; transform:none; } }
@media print { .rwh-reveal.is-pending { opacity:1; transform:none; } }

/* Keep the project identity in its own grey band above the film. */
body:has(.project-film) #gHeader.header01,
body:has(.project-film) #gHeader.header01.show01{position:relative;box-sizing:border-box;background:#292929}
@media (orientation:landscape) and (max-height:500px) and (max-width:1024px){
 html:has(.project-film),body:has(.project-film),body:has(.project-film) #container,body:has(.project-film) #gHeader{min-width:0;width:100%;max-width:100%}
 body:has(.project-film) #gHeader.header01,body:has(.project-film) #gHeader.header01.show01{position:relative;min-height:76px;padding:14px 150px 14px max(24px,env(safe-area-inset-left))}
 body:has(.project-film) #gHeader.header01 .inner{grid-template-columns:minmax(0,1fr);gap:8px}
 body:has(.project-film) #gHeader.header01 h1{display:none}body:has(.project-film) .comTopLinkBox{text-align:left}body:has(.project-film) .comTopLinkBox h2{font-size:19px;margin-bottom:4px}
 body:has(.project-film) .comTopLinkBox .txt{font-size:10px}body:has(.project-film)>.language-switch{top:18px;right:70px}
 body:has(.project-film) .meunRBox{height:64px;width:48px}body:has(.project-film) .meunRBox .menu{top:28px;right:16px}
}
