@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: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-ExtraBold.woff2") format("woff2");
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: "Noto Sans JP";
	src: url("/fonts/NotoSansJP-Black.woff2") format("woff2");
	font-weight: 900;
	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;
}
@font-face{
	font-family: "Outfit";
	src: url("/fonts/Outfit-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/*
	Reset CSS
-----------------------------------------------------------------------------------------------*/
html{
	font-size: 62.5%;
}
body{
	margin: 0;
	padding: 0;
	font-size:clamp(1.6rem, calc(16 / var(--baseWidth) * 100vw), 1.8rem);
	color: var(--colorBlack);
}
*,*::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;
}

/* 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: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	font-weight: var(--fwRegular);
	letter-spacing: 0.2rem;
	font-feature-settings: 'palt';
	overflow-wrap: break-word;
}
p{
	line-height: 1.7;
}
a{
	color: inherit;
	transition: var(--transitionBase);
}

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

	/* width */
	--widthBase: max(1200px, calc(1200 / var(--baseWidth) * 100vw));
	--width1000: max(1060px, calc(1060 / 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 */
	--fwLight: 200;
	--fwRegular: 400;
	--fwMedium: 500;
	--fwBold: 600;
	--fwBlack: 700;

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

	/* color */
	--colorBlack: #333;
	--colorMain: #0046AF;
	--colorRed: #FF7373;
	--colorPink: #FA9BBE;
	--colorBlue: #37A0D7;
	--colorYellow: #FFCD46;
	--colorOrange: #FA8200;
	--colorGreen: #41B4A5;
	--colorPurple: #8C8CFF;
	--colorLightBlue: #73BEFF;
	--colorGrey100: #DDDDDD;
	--colorGrey200: #B2B2B2;
	--colorGrey300: #999999;
	--colorGrey400: #666666;
	--colorFontYellow: #FFB74A;	

	/* background-color */
	--bgCream: #F9F5EC;

	/* border-radius */
	--bdrs30: max(30px, calc(30 / var(--baseWidth) * 100vw));
	--bdrs50: max(50px, calc(50 / var(--baseWidth) * 100vw));

	/* background */
	--bgNoise: url(/recruit/images/bg_noise_wh.png) top left / 100px;

	/* gradation */
	--gdCmn: linear-gradient(0deg, #FFF0CC 5%, #C7D8D1 11%, #82B9D7 19%, #4BA1DD 26%, #2390E0 32%, #0A85E3 37%, #0282E4 40%, #00EBF0 82%);

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

	/* header */
	--btnListArrow: max(20px, calc(20 / var(--baseWidth) * 100vw));
}

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

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

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

/* アンカーリンク（トップ → 下層）
========================================*/
[id]{
	scroll-margin-top: 75px;
}


/*
	button
-----------------------------------------------------------------------------------------------*/
.btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: max(250px, calc(250 / var(--baseWidth) * 100vw));
	height: max(50px, calc(50 / var(--baseWidth) * 100vw));
	padding-inline: max(40px, calc(40 / var(--baseWidth) * 100vw));
	font-size: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	color: #fff;
	border: 1px solid var(--colorBlack);
	border-radius: max(25px, calc(25 / var(--baseWidth) * 100vw));
	background: var(--colorBlack);
	position: relative;
	transition: background-color .4s;
}
.btnTxt{
	min-width: max(180px, calc(180 / var(--baseWidth) * 100vw));
	padding-right: max(14px, calc(14 / var(--baseWidth) * 100vw));
	text-align: center;
	line-height: 1.0;
}
/* 矢印 */
[class^="btnIcon"]{
	display: flex;
	align-items: center;
	justify-content: center;
	width: max(30px, calc(30 / var(--baseWidth) * 100vw));
	height: max(30px, calc(30 / var(--baseWidth) * 100vw));
	background: #fff url(/recruit/images/ico_arrow_bk.svg) no-repeat 50% center / 50%;
	border-radius: 100%;
	position: absolute;
	top: 50%;
	right: max(10px, calc(10 / var(--baseWidth) * 100vw));
	transform: translate(0, -50%);
}
/* 黒 */
.btnIcon-bk{
	background: var(--colorBlack) url(/recruit/images/ico_arrow_wh.svg) no-repeat 50% center / 50%;
}
/* 外部リンク */
.btn[target="_blank"] [class^="btnIcon"]{
	background: #fff url(/recruit/images/ico_window_bk.svg) no-repeat 50% center / 50%;
}
/* 画像リンク（外部） */
.imgBtn{
	display: inline-block;
	position: relative;
}
.imgBtn [class^="btnIcon"]{
	width: max(40px, calc(30 / var(--baseWidth) * 100vw));
	height: max(40px, calc(30 / var(--baseWidth) * 100vw));
	background: var(--colorBlack) url(/recruit/images/ico_window_wh.svg) no-repeat 50% center / 50%;
	top: auto;
	right: max(20px, calc(20 / var(--baseWidth) * 100vw));
	bottom: max(10px, calc(10 / var(--baseWidth) * 100vw));
	transition: background-color .4s;
}
/* アンカーリンク */
.anchor{
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
}
.anchor [class^="btnIcon"]{
	background: #fff url(/recruit/images/ico_arrow_anchor_bk.svg) no-repeat 50% center / 50%;
}
/* 下線 */
.btnLine{
	display: flex;
	align-items: center;
	height: max(65px, calc(65 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	position: relative;
	transition: var(--transitionBase);
}
.btnLine::before,
.btnLine::after{
	content: '';
	height: max(1px, calc(1 / var(--baseWidth) * 100vw));
	position: absolute;
	bottom: 0;
	left: 0;
}
.btnLine::before{
	width: 100%;
	background: var(--colorGrey100);
}
.btnLine::after{
	width: max(50px, calc(50 / var(--baseWidth) * 100vw));
	background: var(--colorMain);
	transition: var(--transitionBase);
}
.btnLine .btnIcon-bk{
	width: max(25px, calc(25 / var(--baseWidth) * 100vw));
	height: max(25px, calc(25 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
}
/* テキストリンク */
[class^="cmnTxtBtn"]{
	display: flex;
	gap: 5px;
	align-items: center;
	justify-content: center;
	width: fit-content;
	position: relative;
}
[class^="cmnTxtBtn"] .btnTxt{
	min-width: fit-content;
	padding-right: 0;
	text-decoration: underline var(--colorBlack);
}
[class^="cmnTxtBtn"] [class^="btnIcon"]{
	flex-shrink: 0;
	width: max(16px, calc(16 / var(--baseWidth) * 100vw));
	height: max(16px, calc(16 / var(--baseWidth) * 100vw));
	background: var(--colorBlack) url(/recruit/images/ico_arrow_wh.svg) no-repeat 50% center / 50%;
	position: relative;
	right: 0;
	transform: none;
}
[class^="cmnTxtBtn"][target="_blank"] [class^="btnIcon-window"]{
	background: url(/recruit/images/ico_window_bk.svg) no-repeat 50% center / 100%;
	border-radius: 0;
}

@media (any-hover: hover){
	.btn:hover{
		color: var(--colorBlack);
		background: #fff;
		transition: background-color .4s;
	}
	.btn:hover .btnIcon{
		background: var(--colorBlack) url(/recruit/images/ico_arrow_wh.svg) no-repeat 50% center / 50%;
	}
	.btn[target="_blank"]:hover .btnIcon{
		background: var(--colorBlack) url(/recruit/images/ico_window_wh.svg) no-repeat 50% center / 50%;
	}
	/* 画像リンク（外部） */
	.imgBtn:hover [class^="btnIcon"]{
		background: #fff url(/recruit/images/ico_window_bk.svg) no-repeat 50% center / 50%;
	}
	/* アンカーリンク */
	.anchor:hover [class^="btnIcon"]{
		background: var(--colorBlack) url(/recruit/images/ico_arrow_anchor_wh.svg) no-repeat 50% center / 50%;
	}
	/* 下線 */
	.btnLine:hover{
		color: var(--colorMain);
		transition: var(--transitionBase);
	}
	.btnLine:hover::after{
		width: 100%;
		transition: var(--transitionBase);
	}
	.btnLine:hover .btnIcon-bk{
		background: var(--colorMain) url(/recruit/images/ico_arrow_wh.svg) no-repeat 50% center / 50%;
		transition: var(--transitionBase);
	}
	/* テキストリンク */
	[class^="cmnTxtBtn"]:hover{
		color: var(--colorMain);
	}
	[class^="cmnTxtBtn"]:hover .btnTxt{
		text-decoration: underline var(--colorMain);
	}
	[class^="cmnTxtBtn"]:hover [class^="btnIcon"]{
		background: var(--colorMain) url(/recruit/images/ico_arrow_wh.svg) no-repeat 50% center / 50%;
		transition: var(--transitionBase);
	}
	[class^="cmnTxtBtn"]:hover[target="_blank"] [class^="btnIcon-window"]{
		background: url(/recruit/images/ico_window_bl.svg) no-repeat 50% center / 100%;
	}
}

/*
	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);
}
@media (any-hover: hover){
	.headerLogo a:hover .txt{
		color: var(--colorMain);
		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;
}
.listGnavTit{
	display: flex;
	align-items: center;
	height: 100%;
	color: var(--colorBlack);
	font-weight: var(--fwMedium);
	cursor: pointer;
	transition: var(--transitionBase);
}
.listGnavTit[target="_blank"]{
	background: url("/recruit/images/ico_window_bk.svg") no-repeat right center / auto max(10px, calc(10 / var(--baseWidth) * 100vw));
	padding-right: max(18px, calc(18 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	:hover .listGnavTit{
		transition: var(--transitionBase);
	}
	.gnavAbout:hover .listGnavTit{
		color: var(--colorRed);
	}
	.gnavWork:hover .listGnavTit{
		color: var(--colorBlue);
	}
	.gnavPeople:hover .listGnavTit{
		color: var(--colorPurple);
	}
	.gnavEnv:hover .listGnavTit{
		color: var(--colorGreen);
	}
	.gnavFaq:hover .listGnavTit{
		color: var(--colorOrange);
	}
	.gnavEntry:hover .listGnavTit{
		color: var(--colorMain);
	}
}

/* メガメニュー
============================== */
.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);
}
.listGnavSub::before{
	content: "";
	display: block;
	width: 100%;
	height: 10px;
	position: absolute;
	top: -10px;
	left: 0;
}
.listGnavSub 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(--colorGrey100);
	position: relative;
}
/* テキスト */
.listGnavSub .txt{
	position: relative;
}
/* 下線アニメーション */
.listGnavSub a::before{
	content: "";
	width: max(50px, calc(50 / var(--baseWidth) * 100vw));
	height: 1px;
	position: absolute;
	left: 0;
	bottom: -1px;
	transition: var(--transitionBase);
}
.gnavAbout .listGnavSub a::before{
	background: var(--colorRed);
}
.gnavWork .listGnavSub a::before{
	background: var(--colorBlue);
}
.gnavPeople .listGnavSub a::before{
	background: var(--colorPurple);
}
.gnavEnv .listGnavSub a::before{
	background: var(--colorGreen);
}
.gnavFaq .listGnavSub a::before{
	background: var(--colorOrange);
}
.gnavEntry .listGnavSub a::before{
	background: var(--colorMain);
}
/* 矢印 */
.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%;
	}
	.gnavAbout a:hover{
		color: var(--colorRed);
	}
	.gnavAbout a:hover .ico{
		background: var(--colorRed);
	}
	.gnavWork a:hover{
		color: var(--colorBlue);
	}
	.gnavWork a:hover .ico{
		background: var(--colorBlue);
	}
	.gnavPeople a:hover{
		color: var(--colorPurple);
	}
	.gnavPeople a:hover .ico{
		background: var(--colorPurple);
	}
	.gnavEnv a:hover{
		color: var(--colorGreen);
	}
	.gnavEnv a:hover .ico{
		background: var(--colorGreen);
	}
	.gnavFaq a:hover{
		color: var(--colorOrange);
	}
	.gnavFaq a:hover .ico{
		background: var(--colorOrange);
	}
	.gnavEntry a:hover{
		color: var(--colorMain);
	}
	.gnavEntry a:hover .ico{
		background: var(--colorMain);
	}
}
/* 別窓 */
.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("/recruit/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("/recruit/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: max(10px, calc(10 / var(--baseWidth) * 100vw)) max(20px, calc(20 / var(--baseWidth) * 100vw));
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	font-weight: var(--fwMedium);
	line-height: .9;
	border-radius: 100vh;
	transition: var(--transitionBase);
}
.btnWhite{
	border: 1px solid var(--colorBlack);
	background: #fff;
}
.btnBlack{
	color: #fff;
	background: var(--colorBlack);
}
a.btnHead[target="_blank"]::after,
a.btnWhite[target="_blank"]::after,
a.btnBlack[target="_blank"]::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("/recruit/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
a.btnBlack[target="_blank"]::after{
	background: url("/recruit/images/ico_window_wh.svg") no-repeat center center / 100%;

}
@media (any-hover: hover){
	.btnWhite:hover{
		color: #fff;
		background: var(--colorBlack);
		transition: var(--transitionBase);
	}
	.btnWhite[target="_blank"]:hover::after{
		background: url("/recruit/images/ico_window_wh.svg") no-repeat center center / 100%;
	}
	.btnBlack:hover{
		background: var(--colorMain);
	}
}

/* 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));
}


/*
	共通タイトル
-----------------------------------------------------------------------------------------------*/
/* ブルー横ライン */
.titCmnSideBorder{
	width: 100%;
	padding-left: max(20px, calc(20 / var(--baseWidth) * 100vw));
	font-size: max(2.8rem, calc(28 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	border-left: max(5px, calc(5 / var(--baseWidth) * 100vw)) solid var(--colorMain);
}


/*
	下層ページ共通
-----------------------------------------------------------------------------------------------*/
/* キービジュアル
========================================*/
#pageKv{
	position: relative;
}
.pageKvInner{
	display: flex;
	align-items: center;
	min-height: max(317px, calc(317 / var(--baseWidth) * 100vw));
	background: var(--bgNoise), url(/recruit/images/bg_pageKv_pc.png) no-repeat center center / cover;
}
.pageKvInner .ctsArea{
	padding-block: max(100px, calc(100 / var(--baseWidth) * 100vw))  max(50px, calc(50 / var(--baseWidth) * 100vw));
	text-align: left;
}
.pageKvBox{
	min-width: min(200px, calc(200 / var(--baseWidth) * 100vw));
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
}
.pageKvImg{
	width: max(650px, calc(650 / var(--baseWidth) * 100vw));
	height: 100%;
	border-radius: 0 0 0 var(--bdrs50);
	overflow: hidden;
}
.pageKvImg img{
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* イラスト */
[class^="graphic0"]{
	position: absolute;
}
[class^="graphic0"] img{
	width: 100%;
}
.graphic01{
	width: max(109px, calc(109 / var(--baseWidth) * 100vw));
	top: 0;
	right: 0;
}
.graphic02{
	width: max(210px, calc(210 / var(--baseWidth) * 100vw));
	bottom: 0;
	left: max(-190px, calc(-190 / var(--baseWidth) * 100vw));
}

.pageHead{
	font-size: max(4.0rem, calc(40 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
}
.pageHeadEn{
	display: block;
	margin-top: max(18px, calc(18 / var(--baseWidth) * 100vw));
	color: var(--colorMain);
	font-family: var(--ffEn);
	font-size: max(1.8rem, calc(18 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	line-height: 1.0;
}
#pageKv + *{
	padding-top: 60px;
}

/* パンくず
========================================*/
#pathList{
	height: max(50px, calc(50 / var(--baseWidth) * 100vw));
	padding-block: 0;
	display: flex;
	align-items: center;
}
#pathList li,
#pathList a{
	display: flex;
	align-items: center;
	line-height: 1.0;
}
#pathList li:not(:first-child){
	padding-left:max(38px, calc(38 / var(--baseWidth) * 100vw));
	position: relative;
}
#pathList li:not(:first-child)::before{
	content: '';
	width: max(10px, calc(10 / var(--baseWidth) * 100vw));
	height: max(2px, calc(2 / var(--baseWidth) * 100vw));
	background: var(--colorBlack);
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translate(0, -50%);
}
#pathList span{
	color: var(--colorGrey300);
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	cursor: default;
}
#pathList a span{
	color: var(--colorBlack);
	letter-spacing: .1rem;
	transition: var(--transitionBase);
	cursor: pointer;
}
@media (any-hover: hover){
	#pathList a:hover span{
		color: var(--colorMain);
		transition: var(--transitionBase);
	}
}

/* 見出し
========================================*/
.detailHead{
	margin-bottom: max(20px, calc(20 / var(--baseWidth) * 100vw));
	font-size: max(2.4rem, calc(24 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBlack);
	line-height: 1.4;
	letter-spacing: .2rem;
}
.detailHeadEn{
	display: block;
	margin-top: max(10px, calc(10 / var(--baseWidth) * 100vw));
	font-family: var(--ffEn);
	font-size: max(1.6rem, calc(16 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	color: var(--colorMain);
	line-height: 1.0;
	letter-spacing: .1rem;
}
/* 共通 */
.cmnHeadBox{
	display: flex;
	gap: max(10px, calc(10 / var(--baseWidth) * 100vw));
	flex-direction: column;
	align-items: center;
	margin-bottom: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
.cmnHead{
	font-size: max(3.4rem, calc(34 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
}
.cmnHeadEn{
	width: fit-content;
	padding-inline: max(20px, calc(20 / var(--baseWidth) * 100vw));
	line-height: 1;
	color: var(--colorMain);
	font-family: var(--ffEn);
	font-size: max(1.8rem, calc(18 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	position: relative;
}
.cmnHeadEn::before,
.cmnHeadEn::after{
	content: "";
	width: max(6px, calc(6 / var(--baseWidth) * 100vw));
	height: max(6px, calc(6 / var(--baseWidth) * 100vw));
	background: var(--colorMain);
	border-radius: max(10px, calc(10 / var(--baseWidth) * 100vw));
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}
.cmnHeadEn::before{
	left: 0;
}
.cmnHeadEn::after{
	right: 0;
}

/* テキストボックス
========================================*/
.cmnClmCts{
	display: flex;
	flex-direction: column;
	gap: max(80px, calc(80 / var(--baseWidth) * 100vw));
}
.cmnClmBox{
	display: flex;
	gap: max(50px, calc(50 / var(--baseWidth) * 100vw));
	align-items: center;
}
.cmnClmBox.reverse{
	flex-direction: row-reverse;
}
.cmnClm{
	text-align: left;
}
/* タイトル */
.cmnClmHead{
	color: var(--colorMain);
	font-size: max(2.4rem, calc(24 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBlack);
}
/* 画像 */
.cmnClmPh{
	flex-shrink: 0;
	width: max(475px, calc(475 / var(--baseWidth) * 100vw));
	border-radius: var(--bdrs30);
	overflow: hidden;
}
/* テキスト */
.cmnClmTxt{
	margin-top: max(20px, calc(20 / var(--baseWidth) * 100vw));
}

/* テーブル
============================== */
.tblBase{
	width: 100%;
	border-top: 1px solid var(--colorGrey200);
	border-bottom: 1px solid var(--colorGrey200);
	border-collapse: collapse;
	border-spacing: 0;
}
.tblBase th,
.tblBase td{
	text-align: left;
}
.tblBase th{
	width: max(180px, calc(180 / var(--baseWidth) * 100vw));
	padding: max(20px, calc(20 / var(--baseWidth) * 100vw)) 0;
	border-bottom: 1px solid var(--colorGrey200);
	font-size: max(1.5rem, calc(15 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
}
.tblBase td{
	padding: max(20px, calc(20 / var(--baseWidth) * 100vw));
	border-bottom: 1px solid var(--colorGrey200);
}
.tblBase tr:last-of-type th,
.tblBase tr:last-of-type td{
	border-bottom: none;
}


/*
	entry
-----------------------------------------------------------------------------------------------*/
#entryWrapper{
	border-radius: var(--bdrs50) var(--bdrs50) 0 0;
	background: url(/recruit/images/bg_entry01_pc.png) no-repeat center / cover;
}
.entryCopy{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-inline: max(53px, calc(53 / var(--baseWidth) * 100vw));
	margin: 0 auto;
}
.entryCopyTxt{
	color: #fff;
	font-size: max(6.0rem, calc(60 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBlack);
	color: #fff;
	line-height: 1.3;
	letter-spacing: .3rem;
}
.entryCopyTxt span{
	font-size: max(5.0rem, calc(50 / var(--baseWidth) * 100vw));
}
.entryCopyImg{
	width: 290px;
}
.entryDetail{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: max(30px, calc(30 / var(--baseWidth) * 100vw));
	padding: max(50px, calc(50 / var(--baseWidth) * 100vw)) max(60px, calc(60 / var(--baseWidth) * 100vw));
	border-radius: var(--bdrs30);
	background: #fff;
}
.entryDetailTxt{
	font-size: max(2.2rem, calc(22 / var(--baseWidth) * 100vw));
	font-weight: var(--fwMedium);
	line-height: 1.6;
	text-align: left;
}
#entryWrapper .btn{
	min-width: max(500px, calc(500 / var(--baseWidth) * 100vw));
	height: max(120px, calc(120 / var(--baseWidth) * 100vw));
	font-size: max(3.0rem, calc(30 / var(--baseWidth) * 100vw));
	border-radius: max(60px, calc(60 / var(--baseWidth) * 100vw));
}
#entryWrapper .btnIcon{
	width: max(40px, calc(40 / var(--baseWidth) * 100vw));
	height: max(40px, calc(40 / var(--baseWidth) * 100vw));
	border-radius: max(20px, calc(20 / var(--baseWidth) * 100vw));
	right: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
/*
	footer
-----------------------------------------------------------------------------------------------*/
#footerWrapper{
	background-color: var(--bgCream);
}
.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-block: max(70px, calc(70 / var(--baseWidth) * 100vw)) max(60px, calc(60 / var(--baseWidth) * 100vw));
	padding-inline: max(30px, calc(30 / var(--baseWidth) * 100vw));
	position: relative;
}

/* 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{
	line-height: 1.0;
	font-size: max(1.3rem, calc(13 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
	white-space: nowrap;
}
@media (any-hover: hover){
	.footerLogo a:hover .txt{
		color: var(--colorMain);
		transition: var(--transitionBase);
	}
}
/* 住所 */
.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;
}
.footerNavTit{
	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;
}
.footerNavTit span{
	cursor: default;
}
a.footerNavTit span{
	cursor: pointer;
}
/* 矢印 */
a.footerNavTit::before{
	content: "";
	flex-shrink: 0;
	width: var(--btnListArrow);
	aspect-ratio: 1/1;
	background-color: #fff;
	border-radius: 50%;
	transition: var(--transitionBase);
}
a.footerNavTit::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);
}
a.footerNavTit 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);
}
/* 外部リンク */
a.footerNavTit[target="_blank"]{
	background: url("/recruit/images/ico_window_bk.svg") no-repeat right center / auto max(10px, calc(10 / var(--baseWidth) * 100vw));
	padding-right: max(14px, calc(14 / var(--baseWidth) * 100vw));
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	a.footerNavTit:hover{
		color: var(--colorMain);
	}
	a.footerNavTit.env:hover{
		color: var(--colorOrange);
	}
	a.footerNavTit[target="_blank"]:hover{
	background: url("/recruit/images/ico_window_bl.svg") no-repeat right center / auto max(10px, calc(10 / var(--baseWidth) * 100vw));
	}
	a.footerNavTit:hover::before{
		background: var(--colorBlack);
	}
	a.footerNavTit:hover::after{
		background: #fff;
	}
	a.footerNavTit:hover span::after{
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
	}
}
/* フッターサブナビ */
[class^="footerNavSub"]{
	display: flex;
	flex-direction: column;
	gap: max(12px, calc(12 / var(--baseWidth) * 100vw));
}
[class^="footerNavSub"] 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));
}
[class^="footerNavSub"] a::before{
	content: "";
	width: max(5px, calc(5 / var(--baseWidth) * 100vw));
	height: 1px;
	background-color: #000;
}
@media (any-hover: hover){
	.footerNavSubAbout a:hover{
		color: var(--colorRed);
	}
	.footerNavSubWork a:hover{
		color: var(--colorBlue);
	}
	.footerNavSubPeople a:hover{
		color: var(--colorPurple);
	}
	.footerNavSubEnv a:hover{
		color: var(--colorGreen);
	}
}

/* footerBtm
============================== */
.footerBtm{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	grid-column: 1 / -1;
}
.listFooterLink{
	display: flex;
	gap: max(20px, calc(20 / var(--baseWidth) * 100vw));
}
.listFooterLink a{
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	text-decoration: underline;
}
.listFooterLink a::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("/recruit/images/ico_window_bk.svg") no-repeat center center / 100%;
	transition: var(--transitionBase);
}
@media (any-hover: hover){
	.listFooterLink a:hover{
		color: var(--colorMain);
	}
	.listFooterLink a:hover::after{
		background: url("/recruit/images/ico_window_bl.svg") no-repeat center center / 100%;
	}
}
.copyright{
	font-size: max(1.2rem, calc(12 / var(--baseWidth) * 100vw));
	line-height: 1.0;
	cursor: default;
}

/* pageTop
============================== */
#pageTop{
	position: absolute;
	top: 0;
	right: max(30px, calc(30 / var(--baseWidth) * 100vw));
}
#pageTop a{
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: max(150px, calc(150 / var(--baseWidth) * 100vw));
	height: max(40px, calc(40 / var(--baseWidth) * 100vw));
	color: #fff;
	font-size: max(1.4rem, calc(14 / var(--baseWidth) * 100vw));
	font-weight: var(--fwBold);
	background: var(--colorBlack);
	border-radius: 0 0 max(5px, calc(5 / var(--baseWidth) * 100vw)) max(5px, calc(5 / var(--baseWidth) * 100vw));
}
@media (any-hover: hover){
	#pageTop a:hover{
		background: var(--colorMain);
	}
}


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


	/*
		base
	-----------------------------------------------------------------------------------------------*/
	/* 変数
	========================================*/
	:root{
		/* width */
		--widthBase: 100%;
		--width1000: 100%;

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

		/* border-radius */
		--bdrs30: 20px;
		--bdrs50: 30px;

		/* background */
		--bgNoise: url(/recruit/images/bg_noise_wh.png) top left / 80px;
	}

	/* ctsWrapper
	========================================*/
	#ctsWrapper{
		padding-bottom: 70px;
	}

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

	/* アンカーリンク（トップ → 下層）
	========================================*/
	[id]{
		scroll-margin-top: 50px;
	}

	/*
		button
	-----------------------------------------------------------------------------------------------*/
	.btn{
		min-width: 80%;
		height: 56px;
		margin: 0 auto;
		padding-inline: 30px 40px;
		font-size: 1.4rem;
		border-radius: 28px;
	}
	.btnTxt{
		min-width: 200px;
		padding-right: 12px;
	}
	/* 画像リンク（外部） */
	.imgBtn [class^="btnIcon"]{
		width: 30px;
		height: 30px;
		right: 10px;
		bottom: 0;
	}
	/* アンカーリンク */
	.anchor{
		font-size: 1.2rem;
		height: 45px;
	}
	.anchor [class^="btnIcon"]{
		width: 20px;
		height: 20px;
	}
	/* 下線 */
	.btnLine{
		max-width: 100%;
		height: 55px;
	}
	.btnLine::after{
		width: 70px;
	}

	/*
		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(249, 245, 236, .98);
		backdrop-filter: blur(10px);
		position: fixed;
		top: 0;
		left: 0;
		opacity: 0;
		pointer-events: none;
		transition: var(--transitionBase);
	}
	#gNavOverlay.jsPanelActive{
		z-index: 999;
		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: calc(100svh - 55px);
		max-height: 100svh;
		padding: 30px 25px 100px;
		position: fixed;
		top: 55px;
		left: 0;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		overflow-y: auto;
	}
	.listGnav{
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.listGnav > li{
		border-bottom: 1px solid var(--colorGrey50);
	}
	.listGnavTit{
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: auto;
		padding: 15px 0;
		font-size: 1.4rem;
		position: relative;
	}
	.listGnavTit::before,
	.listGnavTit::after{
		content: "";
		position: absolute;
		top: 50%;
		right: 15px;
	}
	a.listGnavTit::before{
		width: 14px;
		height: 1px;
		background-color: #000;
		transform: translateY(-50%);
	}
	a.listGnavTit::after{
		width: 8px;
		height: 8px;
		border-top: 1px solid #000;
		border-right: 1px solid #000;
		transform: translateY(-50%) rotate(45deg);
	}
	/* 外部リンク */
	.listGnavTit[target="_blank"]::before,
	.listGnavTit[target="_blank"]::after{
		content: none;
	}
	.listGnavTit[target="_blank"]{
		background-position: right 14px center;
	}
	/* メガメニュー */
	.listGnavSub{
		display: flex;
		flex-direction: column;
		gap: 5px;
		width: 100%;
		padding: 0 0 15px;
		background: none;
		border-radius: 0;
		position: static;
		transform: none;
	}
	.listGnavSub a{
		min-width: auto;
		width: 100%;
		padding: 10px 12px;
		font-size: 1.2rem;
		background-color: #fff;
		border-bottom: none;
		border-radius: 3px;
	}
	.listGnavSub 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);
	}


	/*
		共通タイトル
	-----------------------------------------------------------------------------------------------*/
	/* ブルー横ライン */
	.titCmnSideBorder{
		padding-left: 15px;
		font-size: 2.0rem;
		line-height: 1.2;
		border-left: 4px solid var(--colorMain);
	}

	/*
		下層ページ共通
	-----------------------------------------------------------------------------------------------*/
	/* キービジュアル
	========================================*/
	.pageKvInner{
		display: flex;
		align-items: center;
		min-height: 220px;
		background: var(--bgNoise), url(/recruit/images/bg_pageKv_sp.png) no-repeat center center / cover;
		position: relative;
	}
	.pageKvInner .ctsArea{
		padding: 0;
		max-width: none;
	}
	.pageKvBox{
		min-height: 220px;
		height: 100%;
		position: relative;
	}
	/* pageKvImgが存在しない場合 */
	.pageKvBox:not(:has(.pageKvImg)) + .pageHead{
		padding: 38px 0 10px 40px;
	}
	.pageKvBox:not(:has(.pageKvImg)){
		width: 100%;
		min-height: 150px;
		position: absolute;
		top: 0;
	}
	/* 画像 */
	.pageKvImg{
		max-width: calc(100% - 40px);
		min-width: 350px;
		min-height: 290px;
		margin: 0 0 0 auto;
	}
	.pageKvImg img{
		width: 100%;
		max-width: none;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
	/* イラスト */
	.graphic01{
		display: none;
	}
	.graphic02{
		width: 30%;
		max-width: 100px;
		bottom: -40px;
		right: 32px;
		left: auto;
	}

	.pageHead{
		padding: 38px 0 42px 60px;
		font-size: 2.5rem;
	}
	.pageHeadEn{
		margin-top: 10px;
		font-size: 1.2rem;
	}
	#pageKv + *{
		padding-top: 40px;
	}
	/* パンくず
	========================================*/
	#pathList{
		height: auto;
		margin-top: 20px;
	}
	#pathList li:not(:first-child){
		padding-left: 22px;
	}
	#pathList li:not(:first-child)::before{
		width: 8px;
		height: 1px;
		left: 6px;
	}
	#pathList span{
		font-size: 1.1rem;
		letter-spacing: 0;
	}

	/* 見出し
	========================================*/
	.detailHead{
		margin: 0 0 22px;
		font-size: 2.2rem;
		line-height: 1.4;
		letter-spacing: .1rem;
	}
	.detailHeadEn{
		margin-top: 6px;
		font-size: 1.3rem;
	}
	/* 共通 */
	.cmnHeadBox{
		gap: 8px;
		margin-bottom: 20px;
	}
	.cmnHead{
		font-size: 2.5rem;
	}
	.cmnHeadEn{
		padding-inline: 15px;
		font-size: 1.3rem;
	}
	.cmnHeadEn::before,
	.cmnHeadEn::after{
		width: 5px;
		height: 5px;
	}

	/* テキストボックス
	========================================*/
	.cmnClmCts{
		gap: 35px;
	}
	.cmnClmBox{
		gap: 15px;
		flex-direction: column;
	}
	.cmnClmBox.reverse{
		flex-direction: column;
	}
	/* タイトル */
	.cmnClmHead{
		font-size: 2.0rem;
	}
	/* 画像 */
	.cmnClmPh{
		width: 100%;
	}
	/* テキスト */
	.cmnClmTxt{
		margin-top: 10px;
	}

	/* テーブル
	============================== */
	.tblBase th,
	.tblBase td{
		padding: 15px 0;
	}
	.tblBase th{
		width: 110px;
		padding-right: 15px;
		font-size: 1.4rem;
	}


	/*
		entry
	-----------------------------------------------------------------------------------------------*/
	#entryWrapper{
		background: url(/recruit/images/bg_entry01_sp.png) no-repeat center / cover;
	}
	.entryCopy{
		flex-direction: column;
		gap: 28px;
		padding-inline: 0;
	}
	.entryCopyTxt{
		font-size: 2.8rem;
		line-height: 1.3;
		text-align: center;
		letter-spacing: .2rem;
	}
	.entryCopyTxt span{
		font-size: 2.3rem;
	}
	.entryCopyImg{
		width: 200px;
	}
	.entryDetail{
		flex-direction: column;
		gap: 18px;
		margin-top: max(30px, calc(30 / var(--baseWidth) * 100vw));
		padding: 30px 25px;
	}
	.entryDetailTxt{
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: .05rem;
		text-align: left;
	}
	#entryWrapper .btn{
		width: 100%;
		max-width: 300px;
		min-width: 250px;
		height: 68px;
		font-size: 1.7rem;
		border-radius: 34px;
	}
	#entryWrapper .btnIcon{
		width: 30px;
		height: 30px;
		border-radius: 15px;
		right: 18px;
	}
	/*
		footer
	-----------------------------------------------------------------------------------------------*/
	.footerInner{
		display:flex;
		flex-direction:column;
		align-items: center;
		gap:20px;
		padding:70px 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-direction: column;
		align-items: center;
		gap:8px;
	}
	.copyright{
		position:static;
		transform:none;
	}

	/* pageTop
	============================== */
	#pageTop{
		top: 0;
		right: 25px;
	}
	#pageTop a{
		min-width: auto;
		height: 36px;
		padding: 0 20px;
		font-size: 1.1rem;
	}
	#pageTop a::before{
		height:20px;
	}
	#pageTop a::after{
		width:8px;
		top:15px;
	}
}