@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@200..700&display=swap');

/*
.noto-sans-jp-<uniquifier> {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: <weight>;	100 to 900
	font-style: normal;
}
.oswald-<uniquifier> {
	font-family: "Oswald", sans-serif;
	font-optical-sizing: auto;
	font-weight: <weight>;	200 to 700
	font-style: normal;
}
*/

/*----------------------------
	common
------------------------------*/
html {
	color: #262626;
	--1px: 0.0625rem;
	--2px: 0.125rem;
	--3px: 0.1875rem;
	--4px: 0.25rem;
	--5px: 0.3125rem;
	--6px: 0.375rem;
	--7px: 0.4375rem;
	--8px: 0.5rem;
	--9px: 0.5625rem;
	--10px: 0.625rem;
	--11px: 0.6875rem;
	--12px: 0.75rem;
	--13px: 0.8125rem;
	--14px: 0.875rem;
	--15px: 0.9375rem;
	--16px: 1rem;
	--17px: 1.0625rem;
	--18px: 1.125rem;
	--19px: 1.1875rem;
	--20px: 1.25rem;
	--21px: 1.3125rem;
	--22px: 1.375rem;
	--23px: 1.4375rem;
	--24px: 1.5rem;
	--25px: 1.5625rem;
	--26px: 1.625rem;
	--27px: 1.6875rem;
	--28px: 1.75rem;
	--29px: 1.8125rem;
	--30px: 1.875rem;
	--31px: 1.9375rem;
	--32px: 2rem;
	--33px: 2.0625rem;
	--34px: 2.125rem;
	--35px: 2.1875rem;
	--36px: 2.25rem;
	--37px: 2.3125rem;
	--38px: 2.375rem;
	--39px: 2.4375rem;
	--40px: 2.5rem;
	--41px: 2.5625rem;
	--42px: 2.625rem;
	--43px: 2.6875rem;
	--44px: 2.75rem;
	--45px: 2.8125rem;
	--46px: 2.875rem;
	--47px: 2.9375rem;
	--48px: 3rem;
	--49px: 3.0625rem;
	--50px: 3.125rem;
	--51px: 3.1875rem;
	--52px: 3.25rem;
	--53px: 3.3125rem;
	--54px: 3.375rem;
	--55px: 3.4375rem;
	--56px: 3.5rem;
	--57px: 3.5625rem;
	--58px: 3.625rem;
	--59px: 3.6875rem;
	--60px: 3.75rem;
	--61px: 3.8125rem;
	--62px: 3.875rem;
	--63px: 3.9375rem;
	--64px: 4rem;
	--65px: 4.0625rem;
	--66px: 4.125rem;
	--67px: 4.1875rem;
	--68px: 4.25rem;
	--69px: 4.3125rem;
	--70px: 4.375rem;
	--80px: 5rem;
	--90px: 5.625rem;
	--100px: 6.25rem;
	--110px: 6.875rem;
	--120px: 7.5rem;
	--130px: 8.125rem;
	--140px: 8.75rem;
	--150px: 9.375rem;
	--200px: 12.5rem;
	--300px: 18.75rem;
	--750px: 46.875rem;
}
body {
	font-size: var(--16px);
	line-height: 1.6;
	letter-spacing: 0.04em;
	overflow-wrap: anywhere;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
button, input, select, textarea {
	font: inherit;
	color: inherit;
	background: transparent;
	border: none;
	border-radius: 0;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}
button {
	cursor: pointer;
}
textarea {
	resize: vertical;
}
a {
	color: #262626;
	text-decoration: none;
}
a.underline {
	text-decoration: underline;
}
a,
button {
	transition: opacity 0.3s ease-out;
}
a:hover,
button:hover {
	opacity: 0.7;
}
@media (max-width: 768px) {
	a:hover,
	button:hover {
		opacity: 1;
	}
}
img {
	max-width: 100%;
	height: auto;
}
img[src$=".svg"] {
	width: 100%;
	height: auto;
}
/* スクリーンリーダー用 */
.srOnly {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
/* for safari */
@supports (-webkit-hyphens: none) {
	[tabindex="-1"]:focus-visible {
		outline: none !important;
	}
}
.sp {
	display: none;
}
@media (max-width: 768px) {
	.sp {
		display: block;
	}
	.pc {
		display: none;
	}
}


/*----------------------------
	header
------------------------------*/
header {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
}
header .headerInner {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 10px;
	padding: 3.357143% 7.142857% 2.5%;
}
header .headerInner .logo {
	width: clamp(400px, 55%, 411px);
}
header .headerInner .language {
	width: 200px;
	margin-bottom: 7px;
}
header .headerInner .language .langList {
	display: flex;
}
header .headerInner .language .langList li {
	width: 50%;
}
header .headerInner .language .langList li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	text-align: center;
	background: #e6e6e6;
	font-size: var(--14px);
	line-height: 1.3;
	padding: 5px;
	min-height: 40px;
}
header .headerInner .language .langList li.on a {
	background: #262626;
	color: #fff;
}
@media (max-width: 768px) {
	header .headerInner {
		align-items: center;
		flex-wrap: wrap;
		gap: 15px;
		padding: 4% 3.333333% 5.333333%;
	}
	header .headerInner .logo {
		width: 75.571429%;
	}
	header .headerInner .language {
		width: calc(100% - 75.571429% - 15px);
		max-width: 90px;
		margin-bottom: 0;
	}
	header .headerInner .language .langList {
		display: flex;
		flex-wrap: wrap;
	}
	header .headerInner .language .langList li {
		width: 100%;
	}
	header .headerInner .language .langList li a {
		font-size: var(--12px);
		padding: 5px;
		min-height: 25px;
	}
}


/*----------------------------
	nav（上部のnav用 TOPページのみアイコン表示＆SPも表示）
------------------------------*/
/* TOPページ用 */
.toppageNavList .topNavList {
	padding: 40px 0 36px;
	border: none;
}
.toppageNavList .topNavList ul {
	padding: 0 4.166667%;
	display: flex;
	justify-content: space-between;
	gap: 0 10px;
}
.toppageNavList .topNavList ul li {
	width: calc((100% - 50px)/6);
	max-width: 130px;
}
.toppageNavList .topNavList ul li a {
	display: block;
	text-align: center;
	position: relative;
}
.toppageNavList .topNavList ul li a .icon {
	display: block;
	width: 52.380952%;
	margin: 0 auto;
}
.toppageNavList .topNavList ul li.about a .icon {
	width: 49%;
}
.toppageNavList .topNavList ul li.about a .txt {
	font-size: var(--13px);
}
.toppageNavList .topNavList ul li a .txt {
	font-size: var(--14px);
	font-weight: 600;
	display: block;
	margin: 5px auto 0;
	line-height: 1.3;
}
.toppageNavList .topNavList ul li a .coming {
	position: absolute;
	font-size: var(--13px);
	font-weight: 800;
	color: #4d4d4d;
	top: 15px;
	left: 50%;
	transform: translateX(-50%) rotate(-13deg);
	white-space: nowrap;
	letter-spacing: 0;
}
.toppageNavList .topNavList ul li a:has(.coming) {
	pointer-events: none;
}
.toppageNavList .topNavList ul li a:has(.coming) .icon,
.toppageNavList .topNavList ul li a:has(.coming) .txt {
	opacity: 0.18;
}
@media (max-width: 768px) {
	.toppageNavList .topNavList {
		padding: 40px 0 35px;
	}
	.toppageNavList .topNavList ul {
		padding: 0 5%;
		justify-content: center;
		flex-wrap: wrap;
		gap: 20px 35px;
	}
	.toppageNavList .topNavList ul li {
		width: calc((100% - 70px)/3);
	}
	.toppageNavList .topNavList ul li a .icon {
		width: 58.823529%;
		max-width: 40px;
	}
	.toppageNavList .topNavList ul li a .txt {
		font-size: var(--12px);
		margin: 8px -15px 0;
		width: calc(100% + 30px);
	}
	.toppageNavList .topNavList ul li.about a .icon {
		max-width: 39px;
	}
	.toppageNavList .topNavList ul li.about a .txt {
		font-size: var(--11px);
		margin-top: 5px;
	}
	.toppageNavList .topNavList ul li a .coming {
		font-size: var(--10px);
		top: 20px;
	}
}

/* 下層ページ用 */
.lowerpageNavList .topNavList {
	padding: 20px 0;
	border-top: 1px solid #d9d9d9;
	border-bottom: 1px solid #d9d9d9;
}
.lowerpageNavList .topNavList ul {
	display: flex;
}
.lowerpageNavList .topNavList ul li {
	width: calc(100% / 6);
	border-left: 1px solid #d9d9d9;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1.3;
}
.lowerpageNavList .topNavList ul li:last-child {
	border-right: 1px solid #d9d9d9;
}
.lowerpageNavList .topNavList ul li a {
	display: flex;
	flex-wrap: wrap;
	text-align: center;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 30px;
	padding: 0 10px;
}
.lowerpageNavList .topNavList ul li a .icon {
	display: none;
}
.lowerpageNavList .topNavList ul li a .txt {
	display: block;
	font-size: var(--14px);
}
.lowerpageNavList .topNavList ul li a .coming {
	display: block;
	font-size: var(--14px);
	letter-spacing: 0;
	opacity: 0.2;
}
.lowerpageNavList .topNavList ul li a:has(.coming) {
	pointer-events: none;
}
.lowerpageNavList .topNavList ul li a:has(.coming) .txt {
	opacity: 0.2;
}
@media (max-width: 768px) {
	.lowerpageNavList .topNavList {
		display: none;
	}
}


/*----------------------------
	nav（SPのみ下部固定用）
------------------------------*/
.fixedNavList.isHidden {
	opacity: 0;
	pointer-events: none;
}
/* TOPページのみ、上部のnav通過後に表示 */
.toppageNavList .fixedNavList:not(.isShow) {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}
.fixedNavList {
	position: fixed;
	background: rgba(255,255,255,0.8);
	width: 100%;
	min-height: 60px;
	display: flex;
	align-items: center;
	bottom: 0;
	left: 0;
	z-index: 999;
	transition: opacity 0.3s ease;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.fixedNavList ul {
	display: flex;
	width: 100%;
	height: 100%;
	padding: 6px 10px 5px;
}
.fixedNavList ul li {
	width: calc(70% / 3);
	display: flex;
	align-items: center;
	justify-content: center;
}
.fixedNavList ul li a {
	display: block;
	text-align: center;
	width: 100%;
	line-height: 1.2;
}
.fixedNavList ul li a .icon {
	width: 30px;
	display: block;
	margin: 0 auto;
}
.fixedNavList ul li a .icon img {
	width: 90%;
}
.fixedNavList ul li a .txt {
	display: block;
	font-size: var(--9px);
	margin-top: 6px;
}
.fixedNavList ul li.about {
	width: 30%;
	letter-spacing: -0.04em;
}
.fixedNavList ul li.about a .icon img {
	width: 100%;
}
.fixedNavList ul li.about a .txt {
	margin-top: 4px;
}


/*----------------------------
	main
------------------------------*/
main {
	width: 100%;
	margin: 0 auto;
}
main section {
	overflow: hidden;
}
.bgGray {
	background: #f2f2f2;
}
.bgBlack {
	background: #262626;
}
.bgBlue {
	background: #1c7fec;
}
.txtRed {
	color: #e60000;
}
.txtPalt {
	font-feature-settings: "palt";
}
.inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 min(7.142857%, 100px);
}
@media (max-width: 768px) {
	.inner {
		padding: 0 6.666667%;
	}
}


/*----------------------------
	breadcrumbsWrap
------------------------------*/
.breadcrumbsWrap {
	padding: 10px 0;
	background: #f2f2f2;
}
.breadcrumbsWrap .breadcrumbs {
	display: block;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	width: 100%;
}
.breadcrumbsWrap .breadcrumbs li {
	white-space: nowrap;
	display: inline;
	font-size: var(--14px);
}
.breadcrumbsWrap .breadcrumbs li:last-child {
	color: #808080;
}
.breadcrumbsWrap .breadcrumbs li + li::before {
	content: "／";
	margin: 0 var(--5px) 0 0;
	color: #262626;
}
@media (max-width: 768px) {
	.breadcrumbsWrap {
		padding: 5px 0 8px;
		border-top: 1px solid #d9d9d9;
	}
	.breadcrumbsWrap .inner {
		padding: 0 4%;
	}
	.breadcrumbsWrap .breadcrumbs li {
		font-size: var(--10px);
	}
}


/*----------------------------
	moreBtn
------------------------------*/
.moreBtn {
	width: 263px;
	margin: 40px auto 0;
}
.moreBtn a {
	font-family: "Oswald", sans-serif;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	font-size: var(--20px);
	letter-spacing: 0.06em;
	text-align: center;
	background: #262626;
	color: #fff;
	padding: 5px 5px 7px 25px;
	min-height: 50px;
}
.moreBtn a::after {
	content: "";
	display: inline-block;
	background: url(/common/img/arrow_white.png) no-repeat top center;
	background-size: contain;
	width: var(--20px);
	height: var(--9px);
	margin: 0 0 3px 10px;
}
.moreBtn.moreBtnWhite a {
	background: #fff;
	color: #262626;
}
.moreBtn.moreBtnWhite a::after {
	background: url(/common/img/arrow_black.png) no-repeat top center;
	background-size: contain;
	width: var(--20px);
	height: var(--9px);
}
@media (max-width: 768px) {
	.moreBtn {
		width: 55.384615%;
		max-width: 180px;
		margin: 40px auto 0;
	}
	.moreBtn a {
		font-size: var(--17px);
		padding: 5px 5px 7px 25px;
		min-height: 40px;
	}
	.moreBtn a::after {
		width: var(--15px);
		height: var(--7px);
		margin: 0 0 2px 10px;
	}
	.moreBtn.moreBtnWhite a::after {
		width: var(--15px);
		height: var(--7px);
	}
}


/*----------------------------
	contentWrap
------------------------------*/
.contentWrap {
	padding: 80px 0 140px;
}
.contentWrap h2.contentTtl {
	font-size: var(--16px);
	text-align: center;
	padding-bottom: 70px;
	border-bottom: 1px solid #d9d9d9;
	font-weight: 500;
}
.contentWrap h2.contentTtl span {
	font-family: "Oswald", sans-serif;
	font-size: var(--50px);
	line-height: 1.2;
	letter-spacing: 0.04em;
	display: block;
	margin-bottom: 15px;
}
.contentWrap .contentInner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 min(14.285714%, 200px)
}
@media (max-width: 768px) {
	.contentWrap {
		padding: 45px 0 50px;
	}
	.contentWrap h2.contentTtl {
		font-size: var(--13px);
		padding-bottom: 35px;
	}
	.contentWrap h2.contentTtl span {
		font-size: var(--35px);
		margin-bottom: 10px;
	}
	.contentWrap .contentInner {
		padding: 0 6.666667%;
	}
}


/*----------------------------
	footer
------------------------------*/
footer {
	background: #262626;
	color: #fff;
}
footer .logo {
	width: 383px;
	margin: 0 auto;
	padding: 50px 0 45px;
}
footer .logo a {
	display: block;
}
footer .bnrLink {
	border-top: 1px solid #505050;
	padding: 48px 0;
}
footer .bnrLink ul {
	display: flex;
	justify-content: center;
	gap: 0 18px;
}
footer .bnrLink ul li {
	max-width: 213px;
	width: calc((100% - 54px)/4);
	color: #fff;
	font-size: 14px;
	display: flex;
	align-items: center;
	text-align: center;
	justify-content: center;
}
footer .bnrLink ul li a {
	display: block;
}
footer small {
	border-top: 1px solid #505050;
	padding: 18px 0;
	font-size: var(--12px);
	font-weight: 300;
	text-align: center;
	display: block;
	width: 100%;
}
@media (max-width: 768px) {
	footer {
		padding-bottom: var(--60px);
	}
	footer .logo {
		width: 71.466667%;
		padding: 32px 0 30px;
	}
	footer .bnrLink {
		padding: 25px 0;
	}
	footer .bnrLink ul {
		flex-wrap: wrap;
		gap: 10px;
		margin: 0 10px;
	}
	footer .bnrLink ul li {
		max-width: 295px;
		width: calc((100% - 10px)/2);
		font-size: 2.4vw;
	}
	footer small {
		padding: 15px 0 20px;
		font-size: var(--10px);
	}
}

/*----------------------------
	pageTop
------------------------------*/
.pageTop {
	display: none;
	position: fixed;
	width: 66px;
	height: 65px;
	bottom: 10px;
	right: max(10px, calc(50% - 700px));
	z-index: 20;
}
.pageTop a {
	display: block;
}
@media (max-width: 768px) {
	.pageTopWrap {
		display: none;
	}
}
