@charset "UTF-8";

/*
	Web Fonts
-----------------------------------------------------------------------------------------------*/
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-Thin.woff2") format("woff2");
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-ExtraLight.woff2") format("woff2");
	font-weight: 200;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-Thin.woff2") format("woff2");
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-Light.woff2") format("woff2");
	font-weight: 200;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}


/*
	Reset CSS
-----------------------------------------------------------------------------------------------*/
html{
	font-size: 62.5%;
}
body{
	margin: 0;
	padding: 0;
}
*,*::before,*::after{
	box-sizing: border-box;
}
h1, h2, h3, h4, h5, h6, figure,
p, ul, ol, li, dl, dt, dd{
	margin: 0;
	padding: 0;
}
ol, ul{
	list-style: none;
}
img{
	display: block;
	max-width: 100%;
	height: auto;
}
a{
	text-decoration: none;
}

/* table */
table{
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}
th, td{
	padding: 0;
	font-weight: normal;
	text-align: left;
	vertical-align: top;
}

/* button初期化 */
button{
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	font-family: inherit;
	background: none;
	border: none;
	cursor: pointer;
}

/* 表示切替 */
.switch{
	visibility: hidden;
}
.sp{
	display: none;
}

@media print, screen and (812px < width){
	/* iPad背景切れ対策 */
	body{
		min-width:var(--widthBase);
	}
	/* tel pcのみ無効 */
	a[href^="tel:"]{
		pointer-events: none;
	}
}


/*
	Setting CSS
-----------------------------------------------------------------------------------------------*/
body{
	font-family: YakuHanJP, 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: clamp(1.6rem, calc(16 / var(--baseWidth) * 100vw), 1.8rem);
	font-weight: 400;
	letter-spacing: 0.2rem;
	font-feature-settings: 'palt';
	overflow-wrap: break-word;
}
p{
	line-height: 2.0;
}
a{
	color: #000;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	a:hover {
		color: var(--colorBlue);
	}	
}


/*
	CMS CSS
-----------------------------------------------------------------------------------------------*/
.editor-content ul{
	padding-left: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	list-style: disc;
}
.editor-content ol{
	padding-left: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	list-style: decimal;
}
.editor-content a{
	text-decoration: underline;
}


/*
	base
-----------------------------------------------------------------------------------------------*/
/* 変数
========================================*/
:root{
	/* base */
	--baseWidth: 1400;

	/* width */
	--widthBase: max(1200px, calc(1200 / var(--baseWidth) * 100vw));
	--width1000: max(1000px, calc(1000 / var(--baseWidth) * 100vw));

	/* height */
	--hdHeight: max(80px, calc(80 / var(--baseWidth) * 100vw));
	--hdHeightScroll: max(75px, calc(75 / var(--baseWidth) * 100vw));

	/* font-family */
	--ffNoto: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	--ffEn: 'Outfit', sans-serif;

	/* font-weight */
	--fwThin: 100;
	--fwLight: 200;
	--fwRegular: 400;
	--fwMedium: 500;
	--fwBold: 600;

	/* transition */
	--transitionBase: .3s ease;

	/* color */
	--colorBlue: #0046AF;
	--colorLightBlue: #0078EB;
	--colorEmerald: #00BAAA;
	--colorPink: #E14981;
	--colorPurple: #602CB0;
	--colorOrange: #FF813D;
	--colorError: #f00;
	--colorGrey50: #E6E6E6;
	--colorGrey100: #AAAAAA;
	--colorGrey500: #666666;

	/* gradation */
	--gdBlue: linear-gradient(90deg, #1FC6EE 47%, #0282E4 100%);
	--gdSky: linear-gradient(-90deg, #FFEFCB 0%, #1FC5ED 50%);
	--gdCmn: linear-gradient(0deg, #FFF0CC 5%, #C7D8D1 11%, #82B9D7 19%, #4BA1DD 26%, #2390E0 32%, #0A85E3 37%, #0282E4 40%, #00EBF0 82%);

	/* background-color */
	--bgGrey: #F7F7F7;
	--bgBlue: #EDF2F9;
	--bgEmerald: #F1FBFA;
	--bgCream: #F9F5EC;
	--bgGrid: 
		linear-gradient(var(--bgGrey) 1px, transparent 1px),
		linear-gradient(90deg, var(--bgGrey) 1px, transparent 1px);
	;

	/* border-radius */
	--br100: max(100px, calc(100 / var(--baseWidth) * 100vw));

	/* drop-shadow */
	--ds10: drop-shadow(0 0 10px rgba(0, 0, 0, .05));

	/* stripe */
	--bgStripe: repeating-linear-gradient(-45deg, #f7f7f7 0, #f7f7f7 2px, #fff 2px, #fff 8px);

	/* component */
	--btnPageTop: max(80px, calc(80 / var(--baseWidth) * 100vw));
	--btnBase: max(50px, calc(50 / var(--baseWidth) * 100vw));
	--btnListArrow: max(20px, calc(20 / var(--baseWidth) * 100vw));
}

/* wrapper
========================================*/
#wrapper{
	position:relative;
	overflow: hidden;
}

/* ctsWrapper
========================================*/
#ctsWrapper{
	margin-bottom: max(100px, calc(100 / var(--baseWidth) * 100vw));
}

/* ctsArea
========================================*/
.ctsArea{
	width: var(--widthBase);
	margin: 0 auto;
	padding-inline: max(30px, calc(30 / var(--baseWidth) * 100vw));
}

/* boxCmnTxt
========================================*/
.boxCmnTxt{
	display: flex;
	gap: max(40px, calc(40 / var(--baseWidth) * 100vw));
	flex-direction: column;
}

/* cmnCts
========================================*/
.cmnCts{
	display: flex;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
	flex-direction: column;
}

/* listCmnTxtBox
========================================*/
.listCmnTxtBox{
	display: flex;
	gap: max(40px, calc(40 / var(--baseWidth) * 100vw));
	flex-direction: column;
}
.cmnTxtBox{
	display: flex;
	gap: max(25px, calc(25 / var(--baseWidth) * 100vw));
	flex-direction: column;
}

/*
	title
-----------------------------------------------------------------------------------------------*/
/* ブルー細文字 */
.titCmnBasic{
	color: var(--colorBlue);
	font-size: max(4.5rem, calc(45 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
	line-height: 1.4;
	letter-spacing: 0.5rem;
	text-align: center;
}
/* 縦線グラデーション付き文字 */
.titCmnGrad{
	padding-block: max(10px, calc(10 / var(--baseWidth) * 100vw));
	padding-left: max(30px, calc(30 / var(--baseWidth) * 100vw));
	font-size: max(2.8rem, calc(28 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	position: relative;
}
.titCmnGrad::before{
	content: "";
	width: 4px;
	height: 100%;
	background: var(--gdCmn);
	border-radius: 999px;
	position: absolute;
	inset: 0;
}
/* ブルー下線文字 */
.titCmnBorder{
	margin-bottom: max(25px, calc(25 / var(--baseWidth) * 100vw));
	padding-bottom: max(10px, calc(10 / var(--baseWidth) * 100vw));
	font-size: max(2.4rem, calc(24 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	border-bottom: 1px solid var(--colorBlue);
}
.titCmnBorder.num{
	padding-left: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
/* ブルー短め下線文字 */
.titCmnUnderline{
	margin-bottom: max(50px, calc(50 / var(--baseWidth) * 100vw));
	padding-bottom: max(25px, calc(25 / var(--baseWidth) * 100vw));
	text-align: center;
	color: var(--colorBlue);
	font-size: max(3.5rem, calc(35 / var(--baseWidth) * 100vw));
	font-weight: var(--fwMedium);
	position: relative;
}
.titCmnUnderline::before{
	content: "";
	width: max(55px, calc(55 / var(--baseWidth) * 100vw));
	height: max(4px, calc(4 / var(--baseWidth) * 100vw));
	background-color: var(--colorBlue);
	position: absolute;
	transform: translateX(-50%);
	bottom: 0;
	left: 50%;
}

/*
	button
-----------------------------------------------------------------------------------------------*/
.btnArea{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: max(15px, calc(15 / var(--baseWidth) * 100vw));
}

/* base
========================================*/
a[class*="btnBase"],
button[class*="btnBase"],
[class*="btnBase"]{
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: max(300px, calc(300 / var(--baseWidth) * 100vw));
	height: max(70px, calc(70 / var(--baseWidth) * 100vw));
	margin-right: calc(var(--btnBase) / 2);
	padding: max(20px, calc(20 / var(--baseWidth) * 100vw)) max(35px, calc(35 / var(--baseWidth) * 100vw));
	font-size: max(1.8rem, calc(18 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	line-height: 1.4;
	color: #000;
	background: linear-gradient(#fff 0 0) padding-box, var(--colorGrey100) border-box;
	border: 1px solid transparent;
	border-right: none;
	border-radius: max(35px, calc(35 / var(--baseWidth) * 100vw)) 0 0 max(35px, calc(35 / var(--baseWidth) * 100vw));
	position: relative;
	transition: var(--transitionBase);
}
/* 矢印 */
a[class*="btnBase"] span::before,
button[class*="btnBase"] span::before,
[class*="btnBase"] span::before{
	content: "";
	display: block;
	width: var(--btnBase);
	aspect-ratio: 1/1;
	background-color: #000;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	right: calc(var(--btnBase) / -2);
	transform: translateY(-50%);
	transition: var(--transitionBase);
}
a[class*="btnBase"]::before,
button[class*="btnBase"]::before,
[class*="btnBase"]::before{
	content: "";
	width: calc(var(--btnBase) * 0.32);
	height: 1px;
	background-color: #fff;
	position: absolute;
	top: 50%;
	right: calc(var(--btnBase) / -2 + var(--btnBase) * 0.36);
	transform: translateY(-50%);
	z-index: 1;
	transition: var(--transitionBase);
}
a[class*="btnBase"]::after,
button[class*="btnBase"]::after,
[class*="btnBase"]::after{
	content: "";
	width: calc(var(--btnBase) * 0.16);
	aspect-ratio: 1/1;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	position: absolute;
	top: 50%;
	right: calc(var(--btnBase) / -2 + var(--btnBase) * 0.38);
	transform: translateY(-50%) rotate(45deg);
	z-index: 1;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	a[class*="btnBase"]:hover,
	button[class*="btnBase"]:hover,
	[class*="btnBase"]:hover{
		color: var(--colorBlue);
		background: linear-gradient(#fff 0 0) padding-box, var(--colorBlue) border-box;
	}
	a[class*="btnBase"]:hover::before,
	button[class*="btnBase"]:hover::before,
	[class*="btnBase"]:hover::before{
		transform: translate(max(4px, calc(4 / var(--baseWidth) * 100vw)), -50%);
	}
	a[class*="btnBase"]:hover::after,
	button[class*="btnBase"]:hover::after,
	[class*="btnBase"]:hover::after{
		transform: translate(max(4px, calc(4 / var(--baseWidth) * 100vw)), -50%) rotate(45deg);
	}
	a[class*="btnBase"]:hover span::before,
	button[class*="btnBase"]:hover span::before,
	[class*="btnBase"]:hover span::before{
		background-color: var(--colorBlue);
	}
}
/* 戻る */
a[class*="btnBase"].back,
button[class*="btnBase"].back,
[class*="btnBase"].back{
	margin-left: calc(var(--btnBase) / 2);
	margin-right: 0;
	border-left: none;
	border-right: 1px solid transparent;
	border-radius: 0 max(35px, calc(35 / var(--baseWidth) * 100vw)) max(35px, calc(35 / var(--baseWidth) * 100vw)) 0;
}
a[class*="btnBase"].back span::before,
button[class*="btnBase"].back span::before,
[class*="btnBase"].back span::before{
	right: auto;
	left: calc(var(--btnBase) / -2);
}
a[class*="btnBase"].back::before,
button[class*="btnBase"].back::before,
[class*="btnBase"].back::before{
	right: auto;
	left: calc(var(--btnBase) / -2 + var(--btnBase) * 0.32);
}a[class*="btnBase"].back::after,
button[class*="btnBase"].back::after,
[class*="btnBase"].back::after{
	right: auto;
	left: calc(var(--btnBase) / -2 + var(--btnBase) * 0.34);
	transform: translateY(-50%) rotate(-135deg);
}
@media (any-hover: hover){
	a[class*="btnBase"].back:hover::before,
	button[class*="btnBase"].back:hover::before,
	[class*="btnBase"].back:hover::before{
		transform: translate(calc(-1 * max(4px, calc(4 / var(--baseWidth) * 100vw))), -50%);
	}
	a[class*="btnBase"].back:hover::after,
	button[class*="btnBase"].back:hover::after,
	[class*="btnBase"].back:hover::after{
		transform: translate(calc(-1 * max(4px, calc(4 / var(--baseWidth) * 100vw))), -50%) rotate(-135deg);
	}
}
/* 別窓 */
a[class*="btnBase"][target="_blank"] span::after{
	content: "";
	display: inline-block;
	width: max(18px, calc(18 / var(--baseWidth) * 100vw));
	height: max(14px, calc(14 / var(--baseWidth) * 100vw));
	margin-left: max(5px, calc(5 / var(--baseWidth) * 100vw));
	background: url("/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	a[class*="btnBase"][target="_blank"]:hover span::after{
		background: url("/images/ico_window_bl.svg") no-repeat center center / 100%;
	}
}
/* 青ベタ */
.btnBase.btnSolidBlue{
	min-width: max(450px, calc(450 / var(--baseWidth) * 100vw));
	height: max(100px, calc(100 / var(--baseWidth) * 100vw));
	margin-right: 0;
	text-align: center;
	letter-spacing: 0.1rem;
	line-height: 1.4;
	color: #fff;
	font-size: max(2.0rem, calc(20 / var(--baseWidth) * 100vw));
	background: var(--colorBlue);
	border-radius: max(50px, calc(50 / var(--baseWidth) * 100vw));
}
.btnBase.btnSolidBlue::before{
	background-color: #000;
	right: calc(var(--btnBase) / 2 + var(--btnBase) * 0.36);
}
.btnBase.btnSolidBlue::after{
	border-top: 1px solid #000;
	border-right: 1px solid #000;
	right: calc(var(--btnBase) / 2 + var(--btnBase) * 0.38);
}
.btnBase.btnSolidBlue span::before{
	background-color: #fff;
	right: calc(var(--btnBase) / 2);
}
@media (any-hover: hover){
	.btnBase.btnSolidBlue:hover{
		color: #fff;
		background: #000;
	}
	.btnBase.btnSolidBlue:hover span::before{
		background-color: #fff;
	}
}
/* 青ベタ 別窓 */
.btnBase.btnSolidBlue[target="_blank"] span::after{
	background: url(/images/ico_window_wh.svg) no-repeat center center / 100%;
}
@media (any-hover: hover) {
	.btnBase.btnSolidBlue[target="_blank"]:hover span::after {
		background: url(/images/ico_window_wh.svg) no-repeat center center / 100%;
	}
}

/* color
========================================*/
/* 青グラデーション */
a.btnBaseBlue,
button.btnBaseBlue,
.btnBaseBlue{
	background: linear-gradient(#fff 0 0) padding-box, var(--gdBlue) border-box;
}
a.btnBaseBlue span::before,
button.btnBaseBlue span::before,
.btnBaseBlue span::before{
	background-color: var(--colorBlue);
}


/*
	list
-----------------------------------------------------------------------------------------------*/
/* ベース
========================================*/
.listBase{
	display: flex;
	flex-direction: column;
	gap: max(5px, calc(5 / var(--baseWidth) * 100vw));
}
.listBase > li{
	padding-left: max(22px, calc(22 / var(--baseWidth) * 100vw));
	position: relative;
}
.listBase > li::before{
	content: "";
	position: absolute;
	top: 0.8em;
	left: 0;
	transform: translateY(-50%);
}

/* ドット
========================================*/
.listBase.dot > li::before{
	width: max(14px, calc(14 / var(--baseWidth) * 100vw));
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: #B2C7E7;
}

/* 箇条書き
========================================*/
.listBase.bullet > li{
	padding-left: max(15px, calc(15 / var(--baseWidth) * 100vw));
}
.listBase.bullet > li::before{
	content: "・";
}

/* ナンバリング
========================================*/
/* list */
.listBase.num{
	counter-reset: item;
}
.listBase.num > li{
	counter-increment: item;
	padding-left: clamp(22px, calc(22 / var(--baseWidth) * 100vw), 25px);
}
.listBase.num > li::before{
	content: counter(item) ". ";
}


/*
	link
-----------------------------------------------------------------------------------------------*/
/* 矢印付きテキストリンク
============================== */
.linkArrow{
	display: inline-flex;
	align-items: center;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	text-decoration: underline;
	position: relative;
}
.linkArrow::before{
	content: "";
	flex-shrink: 0;
	width: var(--btnListArrow);
	aspect-ratio: 1/1;
	background-color: #000;
	border-radius: 50%;
	transition: var(--transitionBase);
}
.linkArrow::after{
	content: "";
	width: calc(var(--btnListArrow) * 0.2);
	aspect-ratio: 1/1;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	position: absolute;
	top: 50%;
	left: calc(var(--btnListArrow) * 0.384);
	transform: translateY(-50%) rotate(45deg);
	transition: var(--transitionBase);
}
/* 別窓 */
.linkArrow[target="_blank"]{
	background: url("/images/ico_window_bk.svg") no-repeat right center / auto max(12px, calc(12 / var(--baseWidth) * 100vw));
	padding-right: max(18px, calc(18 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.linkArrow:hover::before{
		background-color: var(--colorBlue);
	}
	.linkArrow:hover::after{
		border-color: #fff;
	}
	.linkArrow[target="_blank"]:hover{
		background-image: url("/images/ico_window_bl.svg");
	}
}


/*
	header
-----------------------------------------------------------------------------------------------*/
#headerWrapper{
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-width: var(--widthBase);
	height: var(--hdHeight);
	padding-inline: max(20px, calc(20 / var(--baseWidth) * 100vw));
	position: fixed;
	z-index: 1000;
	transition: var(--transitionBase);
}

/* ロゴ
============================== */
.headerLogo a{
	display: flex;
	align-items: center;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
}
.headerLogo img{
	display: block;
	width: max(250px, calc(250 / var(--baseWidth) * 100vw));
	height: auto;
	transition: var(--transitionBase);
}
.headerLogo .txt{
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
	white-space: nowrap;
	transition: var(--transitionBase);
}

/* Gナビ
============================== */
#gNavWrapper{
	display: flex;
	flex-direction: row-reverse;
	height: 100%;
	margin-left: auto;
}
.listGnav{
	display: flex;
	align-items: center;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
	height: 100%;
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	font-weight: 700;
	transition: var(--transitionBase);
}
.listGnav > li{
	height: 100%;
	position: relative;
}
.listGnav > li > .gNavParent{
	display: flex;
	align-items: center;
	height: 100%;
	font-weight: var(--fwMedium);
}
@media (any-hover:hover){
	.listGnav > li > p.gNavParent:hover{
		cursor: default;
	}
}

/* メガメニュー
============================== */
.listGnavSub{
	display: flex;
	flex-direction: column;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
	width: fit-content;
	padding: max(50px, calc(50 / var(--baseWidth) * 100vw));
	background-color: rgba(255, 255, 255, .95);
	border-radius: max(50px, calc(50 / var(--baseWidth) * 100vw));
	position: absolute;
	top: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%);
	filter: var(--ds10);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: var(--transitionBase);
}
.listGnavSub::before{
	content: "";
	display: block;
	width: 100%;
	height: 10px;
	position: absolute;
	top: -10px;
	left: 0;
}
@media (any-hover: hover){
	.listGnav > li:hover .listGnavSub{
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}
.listGnavSub > li > a{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	min-width: max(280px, calc(280 / var(--baseWidth) * 100vw));
	padding-bottom: max(18px, calc(18 / var(--baseWidth) * 100vw));
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	font-weight: var(--fwMedium);
	border-bottom: 1px solid var(--colorGrey50);
	position: relative;
}
/* テキスト */
.listGnavSub .txt{
	position: relative;
}
/* 下線アニメーション */
.listGnavSub > li > a::before{
	content: "";
	width: max(50px, calc(50 / var(--baseWidth) * 100vw));
	height: 1px;
	background-color: var(--colorBlue);
	position: absolute;
	left: 0;
	bottom: -1px;
	transition: var(--transitionBase);
}
/* 矢印 */
.listGnavSub .ico{
	display: block;
	flex-shrink: 0;
	width: var(--btnListArrow);
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: #000;
	position: relative;
	transition: var(--transitionBase);
}
.listGnavSub .ico::before{
	content: "";
	width: calc(var(--btnListArrow) * 0.35);
	height: 1px;
	background-color: #fff;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.listGnavSub .ico::after{
	content: "";
	width: calc(var(--btnListArrow) * 0.2);
	aspect-ratio: 1/1;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	position: absolute;
	top: 50%;
	right: calc(var(--btnListArrow) * 0.3);
	transform: translateY(-50%) rotate(45deg);
}
@media (any-hover: hover){
	.listGnavSub > li > a:hover::before{
		width: 100%;
	}
	.listGnavSub > li > a:hover .ico{
		background-color: var(--colorBlue);
	}
}
/* 別窓 */
.listGnavSub > li > a[target="_blank"] .txt::after{
	content: "";
	display: inline-block;
	width: max(14px, calc(14 / var(--baseWidth) * 100vw));
	height: max(10px, calc(10 / var(--baseWidth) * 100vw));
	margin-left: max(5px, calc(5 / var(--baseWidth) * 100vw));
	background: url("/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.listGnavSub > li > a[target="_blank"]:hover .txt::after{
		background: url("/images/ico_window_bl.svg") no-repeat center center / 100%;
	}
}

/* リンクボタン
============================== */
.listHeadBtn{
	display: flex;
	align-items: center;
	gap: max(5px, calc(5 / var(--baseWidth) * 100vw));
	margin-left: max(20px, calc(20 / var(--baseWidth) * 100vw));
}
a.btnHead{
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: max(130px, calc(130 / var(--baseWidth) * 100vw));
	height: max(36px, calc(36 / var(--baseWidth) * 100vw));
	padding-block: max(8px, calc(8 / var(--baseWidth) * 100vw)) max(10px, calc(10 / var(--baseWidth) * 100vw));
	padding-inline: max(20px, calc(20 / var(--baseWidth) * 100vw));
	font-size: max(1.3rem, calc(13 / var(--baseWidth) * 100vw));
	font-weight: var(--fwMedium);
	border-radius: 100vh;
	transition: var(--transitionBase);
}
/* 採用情報 */
.btnRecruit{
	background-color: var(--colorGrey50);
}
@media (any-hover: hover){
	.btnRecruit:hover{
		color: #000;
		background-color: #cfcfcf;
		transition: var(--transitionBase);
	}
}
/* お問い合わせ */
.btnContact{
	color: #fff;
	background-color: #000;
}
@media (any-hover: hover){
	.btnContact:hover{
		color: #fff;
		background-color: var(--colorBlue);
		transition: var(--transitionBase);
	}
}

/* jsHeaderScroll
============================== */
#headerWrapper.jsHeaderScroll{
	height: var(--hdHeightScroll);
	background-color: rgba(255, 255, 255, .95);
	backdrop-filter: blur(10px);
}
#headerWrapper.jsHeaderScroll .headerLogo a{
	gap: max(12px, calc(12 / var(--baseWidth) * 100vw));
}
#headerWrapper.jsHeaderScroll .headerLogo img{
	width: max(180px, calc(180 / var(--baseWidth) * 100vw));
}
#headerWrapper.jsHeaderScroll .headerLogo .txt{
	font-size: max(1.1rem, calc(11 / var(--baseWidth) * 100vw));
}


/*
	横スクロールエリア
-----------------------------------------------------------------------------------------------*/
.txtScroll{
	display: none;
}


/*
	下層ページ共通
-----------------------------------------------------------------------------------------------*/
/* ページタイトル
========================================*/
#cmnPageHead{
	display: flex;
	align-items: center;
	min-height: max(280px, calc(280 / var(--baseWidth) * 100vw));
	padding-top: max(80px, calc(80 / var(--baseWidth) * 100vw));
	position: relative;
	z-index: 1;
}
.cmnPageHeadInner{
	width: var(--widthBase);
	margin: 0 auto;
	padding-block: max(50px, calc(50 / var(--baseWidth) * 100vw)) max(20px, calc(20 / var(--baseWidth) * 100vw));
	padding-inline: max(30px, calc(30 / var(--baseWidth) * 100vw));
	position: relative;
}
/* 装飾 */
[class*="itemPage"]{
	position: absolute;
	z-index: -1;
	pointer-events: none;
}
.itemPage01{
	width: max(44px, calc(44 / var(--baseWidth) * 100vw));
	top: max(110px, calc(110 / var(--baseWidth) * 100vw));
	right: max(580px, calc(580 / var(--baseWidth) * 100vw));
}
.itemPage02{
	width: max(648px, calc(648 / var(--baseWidth) * 100vw));
	top: 0;
	right: 0;
	z-index: -99;
}
.itemPage03{
	width: max(158px, calc(158 / var(--baseWidth) * 100vw));
	top: max(210px, calc(210 / var(--baseWidth) * 100vw));
	right: max(170px, calc(170 / var(--baseWidth) * 100vw));
}
/* 日本語ページタイトル */
#cmnPageHead .tit{
	color: var(--colorBlue);
	font-size: max(4.8rem, calc(48 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
	line-height: 1.1;
	letter-spacing: 0.5rem;
}
/* 英語カテゴリ */
#cmnPageHead .enCategory{
	color: var(--colorBlue);
	font-family: var(--ffEn);
	font-size: max(11.2rem, calc(112 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
	letter-spacing: 0;
	line-height: 67%;
	overflow-wrap: anywhere;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	opacity: 0.05;
}

/* パンくず
========================================*/
#olistPan{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	width: var(--widthBase);
	margin: 0 auto max(50px, calc(50 / var(--baseWidth) * 100vw));
	padding-inline: max(30px, calc(30 / var(--baseWidth) * 100vw));
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	position: relative;
}
#olistPan::before{
	content: "";
	width: max(120px, calc(120 / var(--baseWidth) * 100vw));
	height: 1px;
	background-color: var(--colorGrey100);
	position: absolute;
	top: 50%;
	left: calc(max(120px, calc(120 / var(--baseWidth) * 100vw)) * -1);
	transform: translateY(-50%);
}
#olistPan > li{
	display: flex;
	align-items: center;
}
#olistPan > li + li::before{
	content: "";
	width: max(6px, calc(6 / var(--baseWidth) * 100vw));
	height: max(6px, calc(6 / var(--baseWidth) * 100vw));
	margin-right: max(14px, calc(14 / var(--baseWidth) * 100vw));
	border-top: 1px solid var(--colorGrey100);
	border-right: 1px solid var(--colorGrey100);
	transform: rotate(45deg);
}
#olistPan a{
	color: inherit;
	text-decoration: none;
}
@media (any-hover: hover){
	#olistPan a:hover{
		color: var(--colorBlue);
	}
}

/* トビラページ
========================================*/
.listPageIndex{
	display: flex;
	gap: max(60px, calc(60 / var(--baseWidth) * 100vw)) max(40px, calc(40 / var(--baseWidth) * 100vw));
	flex-wrap: wrap;
}
.listPageIndex li{
	display: flex;
	align-items: stretch;
	width: calc((100% - max(40px, calc(40 / var(--baseWidth) * 100vw))) / 2);
}
.listPageIndex li a{
	display: flex;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
	flex-direction: column;
	margin-bottom: max(25px, calc(25 / var(--baseWidth) * 100vw));
	padding-bottom: max(25px, calc(25 / var(--baseWidth) * 100vw));
	position: relative;
}
.listPageIndex li a::before{
	content: "";
	width: calc(100% - max(55px, calc(55 / var(--baseWidth) * 100vw)));
	height: 1px;
	background-color: var(--colorGrey100);
	position: absolute;
	bottom: 0;
	left: 0;
	transition: var(--transitionBase);
}
.listPageIndex li a .ph{
	border-radius: var(--br100);
	position: relative;
	overflow: hidden;
}
.listPageIndex li a .ph .item{
	width: max(180px, calc(180 / var(--baseWidth) * 100vw));
	height: max(130px, calc(130 / var(--baseWidth) * 100vw));
	position: absolute;
	bottom: 0;
	right: 0;
}
/* ブルータイトル */
.titCmnIndex{
	text-align: center;
	color: var(--colorBlue);
	font-size: max(2.8rem, calc(28 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
}
/* 矢印 */
.listPageIndex li .ico{
	display: block;
	width: var(--btnBase);
	aspect-ratio: 1 / 1;
	background: #000;
	border-radius: 50%;
	position: absolute;
	right: 0;
	bottom: min(-25px, calc(-25 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
}
.listPageIndex li .ico::before,
.listPageIndex li .ico::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transition: var(--transitionBase);
}
.listPageIndex li .ico::before{
	width: calc(var(--btnBase) * 0.32);
	height: 1px;
	background: #fff;
	transform: translate(-60%,-50%);
}
.listPageIndex li .ico::after{
	width: calc(var(--btnBase) * 0.16);
	aspect-ratio: 1/1;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: translate(-20%,-50%) rotate(45deg);
}
@media (any-hover: hover){
	/* 下線 */
	.listPageIndex li a:hover::before{
		background-color: var(--colorBlue);
	}
	/* 矢印 */
	.listPageIndex li a:hover .txt{
		border-color: var(--colorBlue);
	}
	.listPageIndex li a:hover .ico{
		background: var(--colorBlue);
	}
	.listPageIndex li a:hover .ico::before{
		transform: translate(
			calc(-60% + max(4px, calc(4 / var(--baseWidth) * 100vw))),
			-50%
		);
	}
	.listPageIndex li a:hover .ico::after{
		transform: translate(
			calc(-20% + max(4px, calc(4 / var(--baseWidth) * 100vw))),
			-50%
		) rotate(45deg);
	}
}

/* 下層ナビ
========================================*/
.cmnLocalNav{
	display: flex;
	gap: max(15px, calc(15 / var(--baseWidth) * 100vw));
	flex-direction: column;
	width: 100%;
	margin-top: max(100px, calc(100 / var(--baseWidth) * 100vw));
}
/* タイトル */
.titLocalNav{
	display: flex;
	gap: max(3px, calc(3 / var(--baseWidth) * 100vw));
	align-items: flex-end;
}
.titLocalNav .tit{
	line-height: 1.0;
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
}
.titLocalNav .tit .en{
	padding-left: max(5px, calc(5 / var(--baseWidth) * 100vw));
	font-family: var(--ffEn);
	font-size: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	font-weight: var(--fwLight);
}
.icoLocalNav{
	width: clamp(25px, calc(25 / var(--baseWidth) * 100vw), 40px);
}
/* ボタンリスト */
.listLocalNav{
	display: flex;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
}
/* ボタン */
.listLocalNav .btnArea{
	flex: 1 1 0;
	width: calc((100% - 15px)/2);
}
.listLocalNav .btnArea a.btnBase{
	width: 100%;
	min-width: 0;
	height: max(40px, calc(40 / var(--baseWidth) * 100vw));
	margin-right: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / 2);
	padding: max(12px, calc(12 / var(--baseWidth) * 100vw)) max(20px, calc(20 / var(--baseWidth) * 100vw));
	font-size: max(1.5rem, calc(15 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
}
.listLocalNav .btnArea a.btnBase::before{
	width: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.32);
	right: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / -2 + max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.36);
}
.listLocalNav .btnArea a.btnBase::after{
	width: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.16);
	right: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / -2 + max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.38);
}
.listLocalNav .btnArea a.btnBase span::before{
	width: max(22px, calc(22 / var(--baseWidth) * 100vw));
	right: calc(var(--btnBase) / -5);
}
/* アンカーリンク */
.listLocalNav .btnArea a.cmnAnchor::before{
	width: 1px;
	height: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.32);
	right: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / -2 + max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.5);
}
.listLocalNav .btnArea a.cmnAnchor::after{
	width: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.16);
	border-top: 0;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	top: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / -2 + max(22px, calc(22 / var(--baseWidth) * 100vw)) * 1.45);
	right: calc(max(22px, calc(22 / var(--baseWidth) * 100vw)) / -2 + max(22px, calc(22 / var(--baseWidth) * 100vw)) * 0.44);
}
@media (any-hover: hover){
	.listLocalNav .btnArea a.btnBase:hover::before{
		transform: translate(max(2px, calc(2 / var(--baseWidth) * 100vw)), -50%);
	}
	.listLocalNav .btnArea a.btnBase:hover::after{
		transform: translate(max(2px, calc(2 / var(--baseWidth) * 100vw)), -50%) rotate(45deg);
	}
	/* アンカーリンク */
	.listLocalNav .btnArea a.cmnAnchor:hover::before{
		transform: translateY(calc(-50% + 2px));
	}

	.listLocalNav .btnArea a.cmnAnchor:hover::after{
		transform: translateY(calc(-50% + 2px)) rotate(45deg);
	}
}

/* table
========================================*/
/* 内容 */
.cmnTblWrapper{
	display: flex;
	gap: 80px;
	flex-direction: column;
}
.cmnTblBox{
	width: max(var(--width1000), calc(1000 / var(--baseWidth) * 100vw));
	margin: 0 auto;
}
.cmnTblBase tbody{
	border-bottom: 1px solid var(--colorGrey100);
}
.cmnTblBase tr{
	border-top: 1px solid var(--colorGrey100);
}
.cmnTblBase tr > * {
	padding: max(25px, calc(25 / var(--baseWidth) * 100vw)) 0;
}
.cmnTblBase th{
	width: max(270px, calc(270 / var(--baseWidth) * 100vw));
	padding-right: max(30px, calc(30 / var(--baseWidth) * 100vw));
	letter-spacing: 0.1rem;
	font-weight: var(--fwBold);
}

/* 右寄せ
============================== */
.txtRight{
	text-align: right;
}


/*
	お知らせ
-----------------------------------------------------------------------------------------------*/
/* リスト
============================== */
.listNews{
	display: flex;
	flex-direction: column;
	gap: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
.listNews > li{
	display: grid;
	grid-template-columns: max(100px, calc(100 / var(--baseWidth) * 100vw)) max(130px, calc(130 / var(--baseWidth) * 100vw)) 1fr;
	align-items: center;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
}
/* 日付 */
.listNews .date{
	font-family: var(--ffEn);
	font-size: max(1.5rem, calc(15 / var(--baseWidth) * 100vw));
	white-space: nowrap;
}
/* カテゴリラベル */
.listNews .category{
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: max(130px, calc(130 / var(--baseWidth) * 100vw));
	min-height: max(25px, calc(25 / var(--baseWidth) * 100vw));
	color: var(--colorGrey500);
	font-size: max(1.3rem, calc(13 / var(--baseWidth) * 100vw));
	border: 1px solid var(--colorGrey500);
}
/* テキスト */
.listNews .txt{
	line-height: 1.6;
	text-decoration: underline;
}
/* 別窓 */
.listNews > li > a[target="_blank"].txt::after{
	content: "";
	display: inline-block;
	width: max(16px, calc(16 / var(--baseWidth) * 100vw));
	height: max(12px, calc(12 / var(--baseWidth) * 100vw));
	margin-left: max(5px, calc(5 / var(--baseWidth) * 100vw));
	background: url("/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.listNews > li > a[target="_blank"]:hover.txt::after{
		background: url("/images/ico_window_bl.svg") no-repeat center center / 100%;
	}
}


/*
	contact
-----------------------------------------------------------------------------------------------*/
#contactCtaWrapper{
	position: relative;
}
#contactCtaWrapper .ctsArea{
	display: flex;
	flex-direction: column;
	gap: max(30px, calc(30 / var(--baseWidth) * 100vw));
	padding-block: max(130px, calc(130 / var(--baseWidth) * 100vw)) max(170px, calc(170 / var(--baseWidth) * 100vw));
	z-index: 1;
}
#contactCtaWrapper .ctsArea::before{
	content: "";
	width: min(100%, var(--widthBase));
	height: 1px;
	background: var(--colorGrey100);
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
#contactCtaWrapper .txt{
	text-align: center;
}

/* 装飾
============================== */
[class*="itemContactCta"]{
	position: absolute;
	pointer-events: none;
}
/* アメーババープル */
.itemContactCta01{
	width: max(360px, calc(360 / var(--baseWidth) * 100vw));
	top: min(-80px, calc(-80 / var(--baseWidth) * 100vw));
	right: min(-30px, calc(-30 / var(--baseWidth) * 100vw));
}
/* アメーバピンク */
.itemContactCta02{
	width: max(183px, calc(183 / var(--baseWidth) * 100vw));
	top: max(70px, calc(70 / var(--baseWidth) * 100vw));
	right: min(-10px, calc(-10 / var(--baseWidth) * 100vw));
}
/* アメーバブルー */
.itemContactCta03{
	width: max(826px, calc(826 / var(--baseWidth) * 100vw));
	left: min(-1px, calc(-1 / var(--baseWidth) * 100vw));
	bottom: min(-1px, calc(-1 / var(--baseWidth) * 100vw));
}
/* アメーバエメラルド */
.itemContactCta04{
	width: max(207px, calc(207 / var(--baseWidth) * 100vw));
	right: max(200px, calc(200 / var(--baseWidth) * 100vw));
	bottom: min(-50px, calc(-50 / var(--baseWidth) * 100vw));
}
/* イラスト */
.itemContactCta05{
	width: max(135px, calc(135 / var(--baseWidth) * 100vw));
	left: max(280px, calc(280 / var(--baseWidth) * 100vw));
	bottom: max(10px, calc(10 / var(--baseWidth) * 100vw));
	z-index: -1;
}


/*
	404
-----------------------------------------------------------------------------------------------*/
.error404Area .txt{
	margin-bottom: max(40px, calc(40 / var(--baseWidth) * 100vw));
	text-align: center;
}


/*
	footer
-----------------------------------------------------------------------------------------------*/
#footerWrapper{
	position: relative;
	background-color: var(--bgGrey);
}
.footerInner{
	display: grid;
	grid-template-columns: max(370px, calc(370 / var(--baseWidth) * 100vw)) 1fr;
	gap: max(60px, calc(60 / var(--baseWidth) * 100vw)) max(40px, calc(40 / var(--baseWidth) * 100vw));
	width: var(--widthBase);
	margin: 0 auto;
	padding: max(60px, calc(60 / var(--baseWidth) * 100vw)) max(30px, calc(30 / var(--baseWidth) * 100vw));
}

/* footerInfo
============================== */
.footerInfo{
	display: flex;
	flex-direction: column;
	gap: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
/* ロゴ */
.footerLogo a{
	display: flex;
	align-items: center;
	gap: max(15px, calc(15 / var(--baseWidth) * 100vw));
	width: fit-content;
}
.footerLogo img{
	width: max(170px, calc(170 / var(--baseWidth) * 100vw));
}
.footerLogo .txt{
	font-size: max(1.3rem, calc(13 / var(--baseWidth) * 100vw));
	white-space: nowrap;
}
/* 住所 */
.footerAddress{
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	line-height: 1.8;
	letter-spacing: 0.1rem;
}
/* SNS */
.listSns{
	display: flex;
	align-items: center;
	gap: max(15px, calc(15 / var(--baseWidth) * 100vw));
}
.listSns a{
	display: block;
}
.listSns img{
	width: max(29px, calc(29 / var(--baseWidth) * 100vw));
	height: auto;
}
.listSns img[src*="ico_x"]{
	width: max(25px, calc(25 / var(--baseWidth) * 100vw));
}

/* フッターナビ
============================== */
.listFooterNav{
	display: grid;
	grid-template-columns: repeat(4, auto);
	grid-auto-flow: column;
	gap: max(30px, calc(30 / var(--baseWidth) * 100vw)) max(40px, calc(40 / var(--baseWidth) * 100vw));
	width: fit-content;
	margin-left: auto;
}
.listFooterNav > li{
	display: flex;
	flex-direction: column;
	gap: max(12px, calc(12 / var(--baseWidth) * 100vw));
	width: fit-content;
}
.listFooterNav > li.row1{
	grid-row: span 2;
}
.listFooterNav > li > .footerNavParent{
	display: inline-flex;
	align-items: center;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	position: relative;
}
.listFooterNav > li > p.footerNavParent{
	cursor: default;
}
/* 矢印 */
.listFooterNav > li > a.footerNavParent::before{
	content: "";
	flex-shrink: 0;
	width: var(--btnListArrow);
	aspect-ratio: 1/1;
	background-color: #fff;
	border-radius: 50%;
	transition: var(--transitionBase);
}
.listFooterNav > li > a.footerNavParent::after{
	content: "";
	width: calc(var(--btnListArrow) * 0.35);
	height: 1px;
	background-color: #000;
	position: absolute;
	top: 50%;
	left: calc(var(--btnListArrow) * 0.3);
	transform: translateY(-50%);
	z-index: 1;
	transition: var(--transitionBase);
}
.listFooterNav > li > a.footerNavParent span::after{
	content: "";
	width: calc(var(--btnListArrow) * 0.2);
	aspect-ratio: 1/1;
	border-top: 1px solid #000;
	border-right: 1px solid #000;
	position: absolute;
	top: 50%;
	left: calc(var(--btnListArrow) * 0.45);
	transform: translateY(-50%) rotate(45deg);
	z-index: 1;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.listFooterNav > li > a.footerNavParent:hover:before{
		background-color: var(--colorBlue);
	}
	.listFooterNav > li > a.footerNavParent:hover:after{
		background-color: #fff;
	}
	.listFooterNav > li > a.footerNavParent:hover span::after{
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
	}
}
/* フッターサブナビ */
.listFooterNavSub{
	display: flex;
	flex-direction: column;
	gap: max(12px, calc(12 / var(--baseWidth) * 100vw));
}
.listFooterNavSub > li > a{
	display: flex;
	align-items: center;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	padding-left: max(6px, calc(6 / var(--baseWidth) * 100vw));
	font-size: max(1.3rem, calc(13 / var(--baseWidth) * 100vw));
}
.listFooterNavSub > li > a::before{
	content: "";
	width: max(5px, calc(5 / var(--baseWidth) * 100vw));
	height: 1px;
	background-color: #000;
}
/* 別窓 */
.listFooterNavSub > li > a[target="_blank"] span::after{
	content: "";
	display: inline-block;
	width: max(14px, calc(14 / var(--baseWidth) * 100vw));
	height: max(10px, calc(10 / var(--baseWidth) * 100vw));
	margin-left: max(5px, calc(5 / var(--baseWidth) * 100vw));
	background: url("/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.listFooterNavSub > li > a[target="_blank"]:hover span::after{
		background: url("/images/ico_window_bl.svg") no-repeat center center / 100%;
	}
}

/* footerBtm
============================== */
.footerBtm{
	display: flex;
	justify-content: space-between;
	align-items: center;
	grid-column: 1 / -1;
	position: relative;
}
.listFooterLink{
	display: flex;
	gap: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
.listFooterLink a{
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	text-decoration: underline;
}
.copyright{
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
}

/* pageTop
============================== */
#pageTop{
	position: absolute;
	top: calc(var(--btnPageTop) / -2);
	right: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
#pageTop a{
	display: block;
	width: var(--btnPageTop);
	aspect-ratio: 1/1;
	font-size: 0;
	background: url("/images/gd_blue.svg") no-repeat center center / cover;
	border-radius: 50%;
	position: relative;
}
#pageTop a::before,
#pageTop a::after{
	content: "";
	position: absolute;
	left: 50%;
	transition: var(--transitionBase);
}
#pageTop a::before{
	top: 50%;
	width: 1px;
	height: max(28px, calc(28 / var(--baseWidth) * 100vw));
	background-color: #fff;
	transform: translate(-50%, -50%);
}
#pageTop a::after{
	top: max(27px, calc(27 / var(--baseWidth) * 100vw));
	width: max(10px, calc(10 / var(--baseWidth) * 100vw));
	aspect-ratio: 1/1;
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
	transform: translateX(-50%) rotate(45deg);
}
@media (any-hover: hover){
	#pageTop a:hover::before{
		transform: translate(-50%, calc(-50% - 5px));
	}
	#pageTop a:hover::after{
		transform: translate(-50%, -5px) rotate(45deg);
	}
}


@media screen and (width <= 812px){
	body{
		font-size: 1.4rem;
		-webkit-text-size-adjust: 100%;
	}
	img{
		width:100%;
	}
	.pc{
		display:none;
	}
	.sp{
		display:block;
	}
	br.sp{
		display:inline-block;
	}


	/*
		base
	-----------------------------------------------------------------------------------------------*/
	/* 変数
	========================================*/
	:root{
		/* base */
		--baseWidthSp: 390;

		/* width */
		--widthBase: 100%;
		--width1000: 100%;

		/* height */
		--hdHeight: 55px;
		--hdHeightScroll: 50px;

		/* border-radius */
		--br100: 50px;

		/* component */
		--btnBase: max(40px, calc(40 / var(--baseWidth) * 100vw));
	}

	/* ctsWrapper
	========================================*/
	#ctsWrapper{
		margin-bottom: 50px;
	}

	/* ctsArea
	========================================*/
	.ctsArea{
		max-width: 500px;
		padding-inline: 25px;
	}

	/* boxCmnTxt
	========================================*/
	.boxCmnTxt{
		gap: 25px;
	}

	/* cmnCts
	========================================*/
	.cmnCts{
		gap: 15px;
	}

	/* listCmnTxtBox
	========================================*/
	.listCmnTxtBox{
		gap: 25px;
	}
	.cmnTxtBox{
		gap: max(25px, calc(25 / var(--baseWidth) * 100vw));
	}


	/*
		title
	-----------------------------------------------------------------------------------------------*/
	/* ブルー細文字 */
	.titCmnBasic{
		font-size: 3.2rem;
		line-height: 1.2;
		letter-spacing: 0.3rem;
	}
	/* 縦線グラデーション付き文字 */
	.titCmnGrad{
		padding-block: 5px;
		padding-left: 20px;
		font-size: 2.0rem;
	}
	.titCmnGrad::before{
		width: 4px;
		height: 100%;
		border-radius: 999px;
	}
	/* ブルー下線文字 */
	.titCmnBorder{
		margin-bottom: 10px;
		padding-bottom: 10px;
		font-size: 1.7rem;
	}
	/* ブルー短め下線文字 */
	.titCmnUnderline{
		margin-bottom: 25px;
		padding-bottom: 20px;
		text-align: left;
		font-size: 2.2rem;
	}
	.titCmnUnderline::before{
		width: 45px;
		height: 3px;
		transform: translateX(0);
		left: 0;
	}
	/* ブルー短め下線文字 中央 */
	.titCmnUnderline.spCenter{
		text-align: center;
	}
	.titCmnUnderline.spCenter::before{
		transform: translateX(-50%);
		left: 50%;
	}

	/*
		button
	-----------------------------------------------------------------------------------------------*/
	.btnArea{
		gap: 10px;
	}

	/* base
	========================================*/
	a[class*="btnBase"],
	button[class*="btnBase"],
	[class*="btnBase"]{
		min-width: 280px;
		height: auto;
		min-height: 55px;
		padding: 15px 25px;
		font-size: 1.5rem;
		border-radius: 250px 0 0 250px;
	}
	/* 別窓 */
	a[class*="btnBase"][target="_blank"] span::after{
		width: 14px;
		height: 11px;
		margin-left: 4px;
	}
	/* 青ベタ */
	.btnBase.btnSolidBlue{
		min-width: 100%;
		height: auto;
		font-size: 1.5rem;
		border-radius: 50px;
	}



	/*
		list
	-----------------------------------------------------------------------------------------------*/
	/* ナンバリング
	========================================*/
	.listBase.num > li{
		padding-left: 20px;
	}


	/*
		header
	-----------------------------------------------------------------------------------------------*/
	#headerWrapper{
		padding-inline: 15px 0;
	}

	/* ロゴ
	============================== */
	.headerLogo a{
		gap: 8px;
	}
	.headerLogo img{
		width: 130px;
	}
	.headerLogo .txt{
		font-size: 0.9rem;
		line-height: 1.0;
	}

	/* ハンバーガー_ボタン
	========================================*/
	#btnHmbg{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		width: var(--hdHeight);
		aspect-ratio: 1/1;
		background-color: #000;
		z-index: 1000;
		transition: var(--transitionBase);
	}
	#btnHmbg::before,
	#btnHmbg::after{
		content: "";
		display: block;
		width: 20px;
		height: 1px;
		background-color: #fff;
		transition: var(--transitionBase);
	}
	/* active */
	#btnHmbg.jsActive::before,
	#btnHmbg.jsActive::after{
		position: absolute;
		top: 50%;
		transform: translateY(-50%) rotate(45deg);
	}
	#btnHmbg.jsActive::after{
		transform: translateY(-50%) rotate(-45deg);
	}

	/* ハンバーガー_展開
	========================================*/
	/* overlay */
	#gNavOverlay{
		display: block;
		width: 100vw;
		height: 100vh;
		background-color: rgba(247, 247, 247, .95);
		backdrop-filter: blur(10px);
		position: fixed;
		top: 0;
		left: 0;
		opacity: 0;
		pointer-events: none;
		transition: var(--transitionBase);
	}
	#gNavOverlay.jsPanelActive{
		z-index: 998;
		opacity: 1;
		pointer-events: auto;
	}
	/* 表示切り替え */
	#gNavWrapper.jsPanelActive{
		z-index: 999;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition: var(--transitionBase);
	}
	#gNavWrapper.jsPanelActive .listGnavSub{
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	/* body */
	body.isFixed{
		overflow: hidden;
	}

	/* Gナビ
	============================== */
	#gNavWrapper{
		flex-direction: column;
		width: 100%;
		height: 100svh;
		padding: 30px 25px 100px;
		position: fixed;
		top: 55px;
		left: 0;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	.listGnav{
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.listGnav > li{
		border-bottom: 1px solid var(--colorGrey50);
	}
	.listGnav > li > .gNavParent{
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: auto;
		padding: 15px 0;
		font-size: 1.4rem;
		position: relative;
	}
	.listGnav > li > a.gNavParent::before,
	.listGnav > li > a.gNavParent::after{
		content: "";
		position: absolute;
		top: 50%;
		right: 15px;
	}
	.listGnav > li > a.gNavParent::before{
		width: 14px;
		height: 1px;
		background-color: #000;
		transform: translateY(-50%);
	}
	.listGnav > li > a.gNavParent::after{
		width: 8px;
		height: 8px;
		border-top: 1px solid #000;
		border-right: 1px solid #000;
		transform: translateY(-50%) rotate(45deg);
	}
	/* メガメニュー */
	.listGnavSub{
		display: flex;
		flex-direction: column;
		gap: 5px;
		width: 100%;
		padding: 0 0 15px;
		background: none;
		border-radius: 0;
		position: static;
		transform: none;
		filter: none;
	}
	.listGnavSub > li > a{
		min-width: auto;
		width: 100%;
		padding: 10px 12px;
		font-size: 1.2rem;
		background-color: #fff;
		border-bottom: none;
		border-radius: 3px;
	}
	.listGnavSub > li > a::before{
		display: none;
	}

	/* リンクボタン
	============================== */
	.listHeadBtn{
		flex-direction: row;
		justify-content: center;
		gap: 10px;
		margin: 0;
	}
	.listHeadBtn >li{
		width: calc((100% - 10px)/2);
	}
	a.btnHead{
		height: 35px;
		font-size: 1.2rem;
	}

	/* jsHeaderScroll
	============================== */
	#headerWrapper.jsHeaderScroll .headerLogo a{
		gap: 8px;
	}
	#headerWrapper.jsHeaderScroll .headerLogo img{
		width: 110px;
	}
	#headerWrapper.jsHeaderScroll .headerLogo .txt{
		font-size: 0.9rem;
	}
	#headerWrapper.jsHeaderScroll #btnHmbg{
		width: var(--hdHeightScroll);
	}
	#headerWrapper.jsHeaderScroll #gNavWrapper{
		top: var(--hdHeightScroll);
	}


	/*
		横スクロールエリア
	-----------------------------------------------------------------------------------------------*/
	.txtScroll{
		display: block;
		margin-bottom: 15px;
		font-size: 1.2rem;
		font-weight: var(--fwBold);
	}
	.scrollInner{
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.scrollInner img{
		display: block;
		width: auto;
		max-width: 660px;
		min-width: 100%;
	}

	/*
		下層ページ共通
	-----------------------------------------------------------------------------------------------*/
	/* ページタイトル
	========================================*/
	#cmnPageHead{
		min-height: 180px;
		padding-top: 55px;
	}
	.cmnPageHeadInner{
		padding-block: 40px 15px;
		padding-inline: 35px;
	}
	/* 装飾 */
	.itemPage01{
		width: 20px;
		top: 55px;
		right: 225px;
	}
	.itemPage02{
		width: 260px;
		aspect-ratio: 648 / 380;
	}
	.itemPage03{
		width: 55px;
		top: 100px;
		right: 22px;
	}
	/* 日本語ページタイトル */
	#cmnPageHead .tit{
		font-size: 2.8rem;
	}
	/* 英語カテゴリ */
	#cmnPageHead .enCategory{
		font-size: 6.5rem;
		left: 20px;
		top: 10px;
	}

	/* パンくず
	========================================*/
	#olistPan{
		gap: 5px;
		margin: 0 auto 30px;
		padding-inline: 25px;
		font-size: 1.1rem;
		letter-spacing: 0.1rem;
	}
	#olistPan::before{
		width: 15px;
		top: 9.5px;
		left: 0;
	}
	#olistPan > li + li::before{
		width: 6px;
		height: 6px;
		margin-right: 10px;
	}

	/* トビラページ
	========================================*/
	.listPageIndex{
		gap: 40px;
	}
	.listPageIndex li{
		width: 100%;
	}
	.listPageIndex li a{
		gap: 10px;
		margin-bottom: 18px;
		padding-bottom: 18px;
	}
	.listPageIndex li a::before{
		width: calc(100% - 45px);
	}
	.listPageIndex li a .ph .item{
		width: 132px;
		height: 96px;
	}
	/* ブルータイトル */
	.titCmnIndex{
		font-size: 2.2rem;
	}
	/* 矢印 */
	.listPageIndex li .ico{
		width: 36px;
		bottom: -18px;
	}
	.listPageIndex li .ico::before{
		width: calc(var(--btnBase) * 0.32);
		transform: translate(-60%,-50%);
	}
	.listPageIndex li .ico::after{
		width: calc(var(--btnBase) * 0.16);
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		transform: translate(-20%,-50%) rotate(45deg);
	}

	/* 下層ナビ
	========================================*/
	.cmnLocalNav{
		width: fit-content;
		gap: max(15px, calc(15 / var(--baseWidth) * 100vw));
		align-items: center;
		margin: 50px auto 0;
	}
	/* タイトル */
	.titLocalNav{
		gap: max(3px, calc(3 / var(--baseWidth) * 100vw));
	}
	.icoLocalNav{
		max-width: 25px;
	}
	.titLocalNav .tit{
		font-size: 1.4rem;
	}
	.titLocalNav .tit .en{
		padding-left: 5px;
		font-size: 1.8rem;
	}
	/* ボタンリスト */
	.listLocalNav{
		gap: 15px;
		flex-direction: column;
	}
	.listLocalNav .btnArea{
		flex: initial;
		width: 100%;
	}
	.listLocalNav .btnArea a.btnBase{
		width: 285px;
		min-height: 45px;
		margin-right: 15px;
		padding: 12px 20px;
		font-size: 1.5rem;
	}
	.listLocalNav .btnArea a.btnBase::before{
		width: 10px;
		right: -4px;
	}
	.listLocalNav .btnArea a.btnBase::after{
		width: 6px;
		right: -4px;
	}
	.listLocalNav .btnArea a.btnBase span::before{
		width: 30px;
		right: -15px;
	}
	/* アンカーリンク */
	.listLocalNav:has(.cmnAnchor){
		flex-wrap: wrap;
		gap: 15px 10px;
		flex-direction: row;
	}
	.listLocalNav .btnArea:has(.cmnAnchor){
		flex: none;
		width: calc((100% - 15px)/2);
	}
	.listLocalNav .btnArea a.cmnAnchor{
		min-height: 40px;
		padding-inline: 15px;
		letter-spacing: 0.1rem;
		font-size: 1.2rem;
	}
	.listLocalNav .btnArea a.cmnAnchor::before{
		width: 1px;
		right: -2px;
	}
	.listLocalNav .btnArea a.cmnAnchor::after{
		width: 5px;
		top: 20px;
		right: -4px;
	}
	.listLocalNav .btnArea a.cmnAnchor span::before{
		width: 25px;
		right: -14px;
	}

	/* table
	========================================*/
	/* 内容 */
	.cmnTblWrapper{
		gap: 40px;
	}
	.cmnTblBox{
		width: 100%;
	}
	.cmnTblBase tr{
		display: flex;
		flex-direction: column;
	}
	.cmnTblBase tr > * {
		padding: 15px 0 30px;
	}
	.cmnTblBase th{
		width: 100%;
		padding: 10px 0;
		text-align: center;
		background-color: var(--bgBlue);
	}
	
	/*
		お知らせ
	-----------------------------------------------------------------------------------------------*/
	/* リスト
	============================== */
	.listNews{
		gap: 20px;
	}
	.listNews > li{
		grid-template-columns: 90px 100px 1fr;
		gap: 10px;
		padding-bottom: 20px;
		border-bottom: 1px solid var(--colorGrey100);
	}
	/* 日付 */
	.listNews .date{
		font-size: 1.4rem;
	}
	/* カテゴリラベル */
	.listNews .category{
		min-width: 90px;
		min-height: 20px;
		font-size: 1.1rem;
	}
	/* テキスト */
	.listNews .txt{
		grid-column: 1 / -1;
	}


	/*
		contact
	-----------------------------------------------------------------------------------------------*/
	#contactCtaWrapper .ctsArea{
		gap: 15px;
		padding-block: 80px 90px;
	}
	#contactCtaWrapper .ctsArea::before{
		width: calc(100% - 40px);
		left: 25px;
		transform: none;
	}
	#contactCtaWrapper .txt{
		text-align: left;
	}

	/* 装飾
	============================== */
	/* アメーババープル */
	.itemContactCta01{
		width: 150px;
		top: -35px;
		right: -10px;
	}
	/* アメーバピンク */
	.itemContactCta02{
		width: 84px;
		top: 15px;
		right: -10px;
	}
	/* アメーバブルー */
	.itemContactCta03{
		width: 280px;
		left: -10px;
	}
	/* アメーバエメラルド */
	.itemContactCta04{
		width: 100px;
		right: 10px;
		bottom: -50px;
	}
	/* イラスト */
	.itemContactCta05{
		width: 100px;
		left: 40px;
		bottom: 70px;
	}


	/*
		404
	-----------------------------------------------------------------------------------------------*/
	.error404Area .txt{
		margin-bottom: 15px;
		text-align: left;
	}

	
	/*
		footer
	-----------------------------------------------------------------------------------------------*/
	.footerInner{
		display:flex;
		flex-direction:column;
		align-items: center;
		gap:15px;
		padding:40px 25px 25px;
	}
	#footerNavArea{
		display:none;
	}

	/* footerInfo
	============================== */
	.footerInfo{
		align-items: center;
		gap:15px;
	}
	/* ロゴ */
	.footerLogo a{
		flex-direction: column;
		gap: 8px;
	}
	.footerLogo .txt{
		font-size: 1.2rem;
	}
	/* 住所 */
	.footerAddress{
		font-size:1.2rem;
		text-align: center;
	}

	/* footerBtm
	============================== */
	.footerBtm{
		display:flex;
		flex-direction:column;
		align-items: center;
		gap:20px;
		width: 100%;
	}
	.listFooterLink{
		flex-wrap: wrap;
		justify-content: center;
		gap:5px 10px;
	}
	.copyright{
		position:static;
		transform:none;
	}

	/* pageTop
	============================== */
	#pageTop{
		top:-25px;
		right:25px;
	}
	#pageTop a{
		width:50px;
	}
	#pageTop a::before{
		height:20px;
	}
	#pageTop a::after{
		width:8px;
		top:15px;
	}
}