/* CSS Document */

#nav{
	display: none!important;
}

:root{
	--container: min(75rem, 92vw);
	--kv-pad: clamp(2rem, 6vw, 4.5rem);
	--gap: clamp(1rem, 2.8vw, 2rem);
	--img-w-pc: 65vw;
	--img-bleed: calc((100vw - var(--container)) / -2);
	--texts-x: 4.4vw;
	--texts-y: 9.5vw;
	--texts-bleed-left: calc((100vw - var(--container)) / -2);
	--texts-gutter-left: 3vw;
	--logo-w: 28.5vw;
	--logo-x: 0vw;
	--logo-y: -4vw;
	--subtitle-size: 0.8333vw;
	--subtitle-x: 0vw;
	--subtitle-y: -3.4vw;
	--title1-size: 4.1667vw;
	--title1-x: 0vw;
	--title1-y: -1.5vw;
	--title1-overlap: 5vw;
	--title2-size: 4.1667vw;
	--title2-x: 0vw;
	--title2-y: 0vw;
	--title2-overlap: 5vw;
	--lead-size: 1.3672vw;
	--lead-x: 0vw;
	--lead-y: 0vw;
	--ink: #0b0d12;
	--ink-weak: #4a4f57;
	--title-stroke: 0.2604vw;
	--title-outline-color: #F3FBFE;
	--cap-x: 0vw;
	--cap-y: 0vw;
	--cap-gap: clamp(0.4rem, 1.2vw, 0.9rem);
	--role-size: 1.1458vw;
	--role-x: 0vw;
	--role-y: 1vw;
	--nameja-size: 2.6042vw;
	--nameja-x: 0vw;
	--nameja-y: 0vw;
	--nameen-size: 1.0417vw;
	--nameen-x: 0vw;
	--nameen-y: -0.5vw;
	--design-w:1920px;
	--scale:calc(100vw / var(--design-w));
	--scale-max: 9999;
	--c-accent:#04CDFC;
	--c-text:#1a1a1a;
	--c-card:#ffffff;
	--title-h:30;
	--dot:12;
	--card-w:599;
	--card-h:194;
	--icon:100;
	--txt-w:409;
	--txt-h:90;
	--txt-title-h:30;
	--txt-body-h:50;
	--icon-gap:30;
	--seam-y:713;
	--btn-x:145;
	--btn-y:663;
	--btn-w:400;
	--btn-h:100;
}
.fresh{
	position:relative;
}
.fresh::before{
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:calc(var(--seam-y) * 1px * var(--scale));
	bottom:0;
	background:#fff;
	z-index:0;
}
.kv{
	position: relative;
	padding: var(--kv-pad) 0;
	color: var(--ink);
	background: transparent;
	overflow-x: clip;
	overflow-y: visible;
	margin-bottom: 3vw;
	z-index:1;
	min-height:calc(((var(--btn-y) + var(--btn-h) + 40) * 1px) * var(--scale));
}
.kv__inner{
	position: relative;
	width: var(--container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: start;
	column-gap: var(--gap);
}
.kv__texts{
	display: grid;
	gap: clamp(0.5rem, 1.2vw, 0.875rem);
	min-width: 0;
	margin-left: calc(var(--texts-bleed-left) + var(--texts-gutter-left));
	transform: translate(var(--texts-x), var(--texts-y));
	position: relative;
	z-index: 30;
}
.kv__logo{
	display:inline-block;
	width:auto;
	height:auto;
	font-weight:600;
	font-size: 650%;
	line-height:1.2;
	letter-spacing:.0em;
	background:linear-gradient(90deg, #54B2F6, #185AA5);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	color:transparent;
	transform: translate(var(--logo-x), var(--logo-y));
	opacity:.5;
}
.kv__subtitle{
	display: block;
	margin: 0;
	font-weight: 700;
	font-size: var(--subtitle-size);
	color: #043CA3;
	letter-spacing: .06em;
	transform: translate(var(--subtitle-x), var(--subtitle-y));
	white-space: nowrap;
}
.kv__tagtitle{
	position: relative;
	z-index: 2;
	margin: 0;
	line-height: 1.14;
	letter-spacing: .02em;
	color: #000000;
	-webkit-text-stroke: 0;
	text-shadow: none;
	text-rendering: geometricPrecision;
	-webkit-font-smoothing: antialiased;
}
.kv__line{
	display:block;
	white-space: nowrap;
	word-break: keep-all;
	overflow-wrap: normal;
	width: max-content;
	font-weight: 700;
	text-shadow: calc(var(--title-stroke) * -1) 0 var(--title-outline-color), calc(var(--title-stroke) *  1) 0 var(--title-outline-color), 0 calc(var(--title-stroke) * -1) var(--title-outline-color), 0 calc(var(--title-stroke) *  1) var(--title-outline-color), calc(var(--title-stroke) * -.707) calc(var(--title-stroke) * -.707) var(--title-outline-color), calc(var(--title-stroke) *  .707) calc(var(--title-stroke) * -.707) var(--title-outline-color), calc(var(--title-stroke) * -.707) calc(var(--title-stroke) *  .707) var(--title-outline-color), calc(var(--title-stroke) *  .707) calc(var(--title-stroke) *  .707) var(--title-outline-color), calc(var(--title-stroke) * -.5) 0 var(--title-outline-color), calc(var(--title-stroke) *  .5) 0 var(--title-outline-color), 0 calc(var(--title-stroke) * -.5) var(--title-outline-color), 0 calc(var(--title-stroke) *  .5) var(--title-outline-color), calc(var(--title-stroke) * -.354) calc(var(--title-stroke) * -.354) var(--title-outline-color), calc(var(--title-stroke) *  .354) calc(var(--title-stroke) * -.354) var(--title-outline-color), calc(var(--title-stroke) * -.354) calc(var(--title-stroke) *  .354) var(--title-outline-color), calc(var(--title-stroke) *  .354) calc(var(--title-stroke) *  .354) var(--title-outline-color);
}
.kv__line--1{
	font-size: var(--title1-size);
	margin-inline-start: var(--title1-x);
	margin-top: var(--title1-y);
	transform: none;
	margin-right: calc(var(--title1-overlap) * -1);
}
.kv__line--2{
	font-size: var(--title2-size);
	margin-inline-start: var(--title2-x);
	margin-top: var(--title2-y);
	transform: none;
	margin-right: calc(var(--title2-overlap) * -1);
}
.kv__lead{
	margin: 0.25rem 0 0;
	font-weight: 500;
	font-size: var(--lead-size);
	letter-spacing: .02em;
	color: #000000;
	transform: translate(var(--lead-x), var(--lead-y));
	white-space: nowrap;
}
.kv__person{
	position: relative;
	margin: 0;
	justify-self: end;
	align-self: start;
	width: var(--img-w-pc);
	margin-right: var(--img-bleed);
	z-index: 10;
}
.kv__person picture,
.kv__person img{
	display:block;
	width:100%;
	height:auto;
	object-fit: cover;
}
.kv__caption{
	position: absolute;
	right: clamp(1rem, 4vw, 12.75rem);
	bottom: clamp(1rem, 3vw, 1.75rem);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--cap-gap);
	text-align: center;
	color: #fff;
	text-shadow: 0 2px 6px rgba(0,0,0,.35);
	z-index: 40;
	transform: translate(var(--cap-x), var(--cap-y));
}
.kv__role{
	margin: 0;
	font-weight: 700;
	font-size: var(--role-size);
	color: #ffffff;
	white-space: nowrap;
	transform: translate(var(--role-x), var(--role-y));
}
.kv__name{
	font-weight: 700;
}
.kv__name--ja{
	margin: 0;
	font-weight: 700;
	font-size: var(--nameja-size);
	color: #ffffff;
	letter-spacing: .08em;
	white-space: nowrap;
	transform: translate(var(--nameja-x), var(--nameja-y));
}
.kv__name--en{
	margin: 0;
	font-family: "Jost","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
	font-weight: 500;
	font-size: var(--nameen-size);
	color: #ffffff;
	letter-spacing: .08em;
	opacity: .95;
	white-space: nowrap;
	transform: translate(var(--nameen-x), var(--nameen-y));
}
.kv__caption--center{
	right: auto;
	bottom: auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.kv__switch{
	position:absolute;
	left:calc(var(--btn-x) * 1px * var(--scale));
	top:calc((var(--btn-y) * 1px * var(--scale)) - var(--kv-pad));
	width:calc(var(--btn-w) * 2 * 1px * var(--scale));
	height:calc(var(--btn-h) * 1px * var(--scale));
	display:flex;
	z-index:3;
}
.kv__switch .btn{
	width:calc(var(--btn-w) * 1px * var(--scale));
	height:100%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:calc(24px * var(--scale));
	text-decoration:none;
	user-select:none;
	border-radius:0;
	box-sizing:border-box;
	padding:0;
}
.kv__switch .btn--primary{
	font-family:"Noto Sans CJK JP","Noto Sans JP",sans-serif;
	font-weight:500;
	color:#ffffff;
	background:linear-gradient(90deg,#54B2F6 0%,#185AA5 100%);
	border:none;
	border-radius:10px 0 0 10px;
}
.kv__switch .btn--ghost{
	font-family:"Jost",sans-serif;
	font-weight:500;
	color:#333333;
	background:#ffffff;
	border:3px solid #185AA5;
	border-radius:0 10px 10px 0;
}
@media (max-width: 810px){
	:root{
		--title-stroke: 1.2vw;
		--title-outline-color: #F3FBFE;
		--lead-stroke: 0.6vw;
		--lead-outline-color: #F3FBFE;
		--sp-pad: 6vw;
		--logo-w: 75vw;
		--subtitle-size: 3.8095vw;
		--title1-size: 9.5238vw;
		--title2-size: 9.5238vw;
		--lead-size: 4.05vw;
		--sp-texts-x: 4.5vw;
		--sp-texts-y: 0vw;
		--sp-texts-mb: 8vw;
		--sp-role-size: 3.4vw;
		--sp-nameja-size: 5.7vw;
		--sp-nameen-size: 2.6vw;
		--sp-role-x: 23.4vw;
		--sp-role-y: 6.0vw;
		--sp-nameja-x: 24vw;
		--sp-nameja-y: 2.5vw;
		--sp-nameen-x: 21vw;
		--sp-nameen-y: 7.4vw;
		--sp-cap-bottom: 4.8vw;
		--sp-cap-col-gap: 4vw;
		--sp-cap-row-gap: 2.5vw;
	}
	.kv{
		margin-bottom: 8vw;
	}
	.kv__inner{
		width: 100%;
		margin: 0 auto;
		padding-inline: var(--sp-pad);
		grid-template-columns: 1fr;
		row-gap: clamp(0.875rem, 4vw, 1.375rem);
	}
	.kv__texts{
		text-align: left;
		margin-left: 0;
		transform: translate(var(--sp-texts-x), var(--sp-texts-y));
		gap: clamp(0.5rem, 3vw, 1rem);
		margin-bottom: var(--sp-texts-mb);
		z-index: 1;
	}
	.kv__logo{
		width:auto;
		height:auto;
		margin:0;
		transform:none;
		font-size: calc(var(--logo-w) * 0.18);
	}
	.kv__subtitle{
		font-size: var(--subtitle-size);
		transform: none;
	}
	.kv__tagtitle{
		width: calc(85.7143vw - 2 * var(--sp-pad));
		margin: 0;
		margin-top: 30px;
	}
	.kv__line--1,
	.kv__line--2{
		font-size: var(--title1-size);
		margin: 0;
	}
	.kv__lead{
		font-size: var(--lead-size);
		width: calc(83.5714vw - 2 * var(--sp-pad));
		margin: .5rem 0 0;
		transform: none;
		text-shadow: calc(var(--lead-stroke) * -1) 0 var(--lead-outline-color), calc(var(--lead-stroke) *  1) 0 var(--lead-outline-color), 0 calc(var(--lead-stroke) * -1) var(--lead-outline-color), 0 calc(var(--lead-stroke) *  1) var(--lead-outline-color), calc(var(--lead-stroke) * -.707) calc(var(--lead-stroke) * -.707) var(--lead-outline-color), calc(var(--lead-stroke) *  .707) calc(var(--lead-stroke) * -.707) var(--lead-outline-color), calc(var(--lead-stroke) * -.707) calc(var(--lead-stroke) *  .707) var(--lead-outline-color), calc(var(--lead-stroke) *  .707) calc(var(--lead-stroke) *  .707) var(--lead-outline-color), calc(var(--lead-stroke) * -.5) 0 var(--lead-outline-color), calc(var(--lead-stroke) *  .5) 0 var(--lead-outline-color), 0 calc(var(--lead-stroke) * -.5) var(--lead-outline-color), 0 calc(var(--lead-stroke) *  .5) var(--lead-outline-color), calc(var(--lead-stroke) * -.354) calc(var(--lead-stroke) * -.354) var(--lead-outline-color), calc(var(--lead-stroke) *  .354) calc(var(--lead-stroke) * -.354) var(--lead-outline-color), calc(var(--lead-stroke) * -.354) calc(var(--lead-stroke) *  .354) var(--lead-outline-color), calc(var(--lead-stroke) *  .354) calc(var(--lead-stroke) *  .354) var(--lead-outline-color);
	}
	.kv__person{
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		justify-self: center;
	}
	.kv__caption{
		left: 50%;
		right: auto;
		bottom: var(--sp-cap-bottom);
		transform: translateX(-50%);
		display: grid;
		grid-template-columns: max-content max-content;
		grid-template-areas: "role en" "ja   en";
		align-items: center;
		justify-content: center;
		column-gap: var(--sp-cap-col-gap);
		row-gap: var(--sp-cap-row-gap);
		width: fit-content;
		max-width: none;
		text-align: left;
	}
	.kv__role{
		grid-area: role;
		font-size: var(--sp-role-size);
		justify-self: start;
		text-align: left;
		transform: translate(var(--sp-role-x), var(--sp-role-y));
	}
	.kv__name--ja{
		grid-area: ja;
		font-size: var(--sp-nameja-size);
		justify-self: start;
		text-align: left;
		transform: translate(var(--sp-nameja-x), var(--sp-nameja-y));
	}
	.kv__name--en{
		grid-area: en;
		font-size: var(--sp-nameen-size);
		justify-self: end;
		text-align: left;
		align-self: center;
		transform: translate(var(--sp-nameen-x), var(--sp-nameen-y));
		opacity: .95;
	}
	.kv__switch{
		width:calc(var(--btn-w) * 1px * var(--scale));
		height:auto;
		flex-direction:column;
		gap:calc(12px * var(--scale));
	}
	.kv__switch .btn{
		width:100%;
		border-radius:10px;
	}
}
@media (max-width: 600px){
	.kv{
		margin-bottom: 8vw;
	}
	.kv__logo{
		font-size: calc(var(--logo-w) * 0.18);
	}
}
@media (min-width:1281px){
	:root{
		--texts-x:84.48px;
		--texts-y:182.4px;
		--logo-x:0px;
		--logo-y:-76.8px;
		--subtitle-size:16px;
		--subtitle-x:0px;
		--subtitle-y:-65.28px;
		--title1-size:80px;
		--title1-x:0px;
		--title1-y:-28.8px;
		--title1-overlap:96px;
		--title2-size:80px;
		--title2-x:0px;
		--title2-y:0px;
		--title2-overlap:96px;
		--lead-size:26.25px;
		--lead-x:0px;
		--lead-y:0px;
		--title-stroke:5px;
		--role-size:22px;
		--role-x:0px;
		--role-y:19.2px;
		--nameja-size:50px;
		--nameja-x:0px;
		--nameja-y:0px;
		--nameen-size:20px;
		--nameen-x:0px;
		--nameen-y:-9.6px;
	}
}
@media (max-width:1280px) and (min-width:811px){
	:root{
		--s1280: calc(min(100vw, 1280px) / 1280);
		--texts-x: calc(84.48 * var(--s1280));
		--texts-y: calc(182.4 * var(--s1280));
		--logo-x: 0px;
		--logo-y: calc(-76.8 * var(--s1280));
		--subtitle-size: calc(16 * var(--s1280));
		--subtitle-x: 0px;
		--subtitle-y: calc(-65.28 * var(--s1280));
		--title1-size: calc(80 * var(--s1280));
		--title1-x: 0px;
		--title1-y: calc(-28.8 * var(--s1280));
		--title1-overlap: calc(96 * var(--s1280));
		--title2-size: calc(80 * var(--s1280));
		--title2-x: 0px;
		--title2-y: 0px;
		--title2-overlap: calc(96 * var(--s1280));
		--lead-size: calc(26.265 * var(--s1280));
		--title-stroke: calc(5 * var(--s1280));
		--role-size: calc(22 * var(--s1280));
		--role-x: 0px;
		--role-y: calc(19.2 * var(--s1280));
		--nameja-size: calc(50 * var(--s1280));
		--nameja-x: 0px;
		--nameja-y: 0px;
		--nameen-size: calc(20 * var(--s1280));
		--nameen-x: 0px;
		--nameen-y: calc(-9.6 * var(--s1280));
	}
	.kv{
		margin-bottom: 7vw;
	}
}







.company-overview{
	isolation:isolate;
	background:#fff;
}
.company-overview *{box-sizing:border-box}
.company-overview__panel{
	width:min(1600px,96vw);
	margin:0 auto;
	padding:120px 80px 120px;
}
.company-overview__title{
	width:881px;
	height:112px;
	margin:0;
	margin-left:calc((1600px - 1200px) / 2);
	display:flex;
	flex-direction:column;
	justify-content:center;
	text-align:left;
	/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
	font-weight:700;
	font-size:35px;
	line-height:1.24;
	letter-spacing:.04em;
	color:#000;
	transform:translate(-80px,0);
	white-space:nowrap;
}
.company-overview__tline{display:block;margin-bottom:12px}
.company-overview__hl{
	background:linear-gradient(#D9F9FF,#D9F9FF) no-repeat 0 calc(100% - 4px) / 446px 17px;
	padding:0 .04em;
	box-decoration-break:clone;
	-webkit-box-decoration-break:clone;
}
.company-overview__hl--1{background-size:446px 17px}
.company-overview__hl--2{background-size:366px 17px}
.company-overview__lead{
	width:1200px;
	margin:1.8vw auto;
	/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
	font-weight:400;
	font-size:16px;
	line-height:calc(30 / 16);
	color:#0b0d12;
	text-wrap:pretty;
	transform:translate(0,0);
}
.company-overview p{margin:0 0 10px;text-indent:1em}
@media (min-width:1920px){
	.company-overview__panel{
		width:calc((1600 / 1920) * 100vw);
		margin:0 auto;
		padding:calc((120 / 1920) * 100vw) calc((80 / 1920) * 100vw) calc((120 / 1920) * 100vw);
	}
	.company-overview__grid{
		width:calc((1600 / 1920) * 100vw);
		margin:calc((48 / 1920) * 100vw) auto 0;
		display:grid;
		grid-template-columns:calc((700 / 1920) * 100vw) calc((700 / 1920) * 100vw);
		column-gap:calc((200 / 1920) * 100vw);
		align-items:start;
	}
	.company-overview__grid--b{
		margin-top:calc((60 / 1920) * 100vw);
	}
	.company-overview__photo{
		width:calc((700 / 1920) * 100vw);
		height:calc((480 / 1920) * 100vw);
		margin:0;
		border-radius:calc((18 / 1920) * 100vw);
		overflow:hidden;
		position:relative;
		background:#fff;
	}
	.company-overview__photo>img{
		position:absolute;
		inset:0;
		margin:auto;
		width:100%;
		height:100%;
		object-fit:cover;
		object-position:50% 50%;
	}
	.company-overview__text{
		width:calc((700 / 1920) * 100vw);
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:400;
		font-size:calc((16 / 1920) * 100vw);
		line-height:calc(30 / 16);
		color:#0b0d12;
		text-wrap:pretty;
	}
	.company-overview__title{
		width:calc((881 / 1920) * 100vw);
		height:calc((112 / 1920) * 100vw);
		margin:0;
		margin-left:calc((200 / 1920) * 100vw);
		display:flex;
		flex-direction:column;
		justify-content:center;
		text-align:left;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:700;
		font-size:calc((35 / 1920) * 100vw);
		line-height:1.24;
		letter-spacing:.04em;
		color:#000;
		transform:translate(calc((-80 / 1920) * 100vw),0);
		white-space:nowrap;
	}
	.company-overview__tline{
		display:block;
		margin-bottom:calc((12 / 1920) * 100vw);
	}
	.company-overview__hl{
		background-position:0 calc(100% - calc((4 / 1920) * 100vw));
	}
	.company-overview__hl--1{
		background-size:calc((446 / 1920) * 100vw) calc((17 / 1920) * 100vw);
	}
	.company-overview__hl--2{
		background-size:calc((366 / 1920) * 100vw) calc((17 / 1920) * 100vw);
	}
	.company-overview__lead{
		width:calc((1200 / 1920) * 100vw);
		margin:1.8vw auto;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:400;
		font-size:calc((16 / 1920) * 100vw);
		line-height:calc(30 / 16);
		color:#0b0d12;
		text-wrap:pretty;
		transform:translate(0,0);
	}
	.company-overview__grid--a .company-overview__photo{
		transform:translate(calc((-128 / 1920) * 100vw),0);
	}
	.company-overview__grid--a .company-overview__text{
		margin-left:calc((-200 / 1920) * 100vw);
		transform:translate(calc((-75 / 1920) * 100vw),0);
	}
	.company-overview__grid--b .company-overview__text{
		grid-column:1;
		grid-row:1;
		margin-left:calc((200 / 1920) * 100vw);
		transform:translate(calc((-78 / 1920) * 100vw),0);
	}
	.company-overview__grid--b .company-overview__photo{
		grid-column:2;
		grid-row:1;
		transform:translate(calc((-25 / 1920) * 100vw),0);
	}
}

@media (max-width:1919px) and (min-width:1281px){
	.company-overview{
		--panel-w:clamp(960px,calc(100vw * (1450 / 1920)),1450px);
		--lead-w:clamp(640px,calc(100vw * (1200 / 1920)),1200px);
		--rail-offset-r:calc((var(--panel-w) - var(--lead-w)) / 2);
		--col-min:300px;
		--col-max:var(--panel-w);
		--radius:18px;
		--gap-a:clamp(12px,calc(100vw * (53 / 1920)),53px);
		--gap-b:clamp(12px,calc(100vw * (53 / 1920)),53px);
		--edge-gutter:clamp(16px,calc(100vw * (128 / 1920)),128px);
		--hl-h:17px;
		--pair-a:calc((var(--panel-w) - var(--gap-a)) / 2);
		--pair-b:calc((var(--panel-w) - var(--gap-b)) / 2);
		--a-photo-w:clamp(var(--col-min),var(--pair-a),var(--col-max));
		--b-photo-w:clamp(var(--col-min),var(--pair-b),var(--col-max));
	}
	.company-overview__panel{
		margin:0 auto;
		padding: 100px 0px 3.5vw;
	}
	.company-overview__title{
		width:var(--lead-w);
		height:auto;
		margin:0 auto;
		display:flex;
		flex-direction:column;
		justify-content:center;
		text-align:left;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:700;
		font-size:35px;
		line-height:1.24;
		letter-spacing:.04em;
		color:#000;
		transform:none;
		white-space:normal;
	}
	.company-overview__tline{display:block;margin-bottom:12px}
	.company-overview__hl{background-position:0 calc(100% - 4px);background-size:auto var(--hl-h)}
	.company-overview__hl--1{background-size:auto var(--hl-h)}
	.company-overview__hl--2{background-size:auto var(--hl-h)}
	.company-overview__lead{
		width:var(--lead-w);
		margin-left:auto;
		margin-right:auto;
		font-size:16px;
		line-height:calc(30 / 16);
		transform:none;
	}
	.company-overview__grid{
		width:var(--panel-w);
		margin:48px auto;
		display:block;
	}
	.company-overview__grid::after{
		content:"";
		display:block;
		clear:both;
	}
	.company-overview__photo{
		width:auto;
		height:auto;
		aspect-ratio:700/480;
		border-radius:var(--radius);
		overflow:hidden;
		background:#fff;
		margin:0;
		transform:none;
		shape-outside:inset(0 round var(--radius));
		-webkit-shape-outside:inset(0 round var(--radius));
	}
	.company-overview__photo>img{
		position:static;
		display:block;
		width:100%;
		height:100%;
		object-fit:cover;
	}
	.company-overview__text{
		max-width:var(--lead-w);
		width:auto;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:400;
		font-size:16px;
		line-height:calc(30 / 16);
		color:#0b0d12;
		text-wrap:pretty;
	}
	.company-overview__grid--a .company-overview__photo{
		float:left;
		width:var(--a-photo-w);
		margin-top:0;
		margin-right:var(--gap-a);
		margin-bottom:16px;
		margin-left:calc(var(--edge-gutter) - ((100vw - var(--panel-w)) / 2));
	}
	.company-overview__grid--a .company-overview__text{
		margin-left:auto;
		margin-right:var(--rail-offset-r);
	}
	.company-overview__grid--b .company-overview__photo{
		float:right;
		width:var(--b-photo-w);
		margin-top:0;
		margin-right:calc(var(--edge-gutter) - ((100vw - var(--panel-w)) / 2));
		margin-bottom:16px;
		margin-left:var(--gap-b);
	}
	.company-overview__grid--b .company-overview__text{
		margin-left:var(--rail-offset-r);
		margin-right:auto;
	}
}
@media (max-width:1280px) and (min-width:811px){
	.company-overview{
		--panel-w:clamp(550px,calc(100vw * (1550 / 1920)),1550px);
		--lead-ratio-s:1.00;
		--lead-w:clamp(400px,calc(var(--panel-w) * var(--lead-ratio-s)),var(--panel-w));
		--rail-offset-r:calc((var(--panel-w) - var(--lead-w)) / 2);
		--col-min:280px;
		--col-max:var(--panel-w);
		--radius:18px;
		--gap-a:clamp(10px,calc(100vw * (36 / 1280)),40px);
		--gap-b:clamp(10px,calc(100vw * (36 / 1280)),40px);
		--edge-gutter:clamp(14px,calc(100vw * (22 / 1280)),32px);
		--hl-h:clamp(10px,calc(10px + (7 * ((100vw - 810px) / 470))),17px);
		--pair-a:calc((var(--panel-w) - var(--gap-a)) / 1.83);
		--pair-b:calc((var(--panel-w) - var(--gap-b)) / 1.83);
		--a-photo-w:clamp(var(--col-min),var(--pair-a),var(--col-max));
		--b-photo-w:clamp(var(--col-min),var(--pair-b),var(--col-max));
	}
	.company-overview__panel{
		margin:0 auto;
		padding: 6.5vw 0px 3vw;
	}
	.company-overview__title{
		width:var(--lead-w);
		height:auto;
		margin:0 auto;
		display:flex;
		flex-direction:column;
		justify-content:center;
		text-align:left;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:700;
		font-size:32px;
		line-height:1.24;
		letter-spacing:.04em;
		color:#000;
		transform:none;
		white-space:normal;
	}
	.company-overview__tline{display:block;margin-bottom:12px}
	.company-overview__hl{
		background-position:0 calc(100% - 0.12em);
		background-size:auto var(--hl-h);
		padding:0 .04em;
		box-decoration-break:clone;
		-webkit-box-decoration-break:clone;
	}
	.company-overview__hl--2{
		display:block;
		width:max-content;
		max-width:100%;
		margin-top:0.2em;
	}
	.company-overview__lead{
		width:var(--lead-w);
		margin-left:auto;
		margin-right:auto;
		font-size:16px;
		line-height:calc(30 / 16);
		transform:none;
	}
	.company-overview__grid{
		width:var(--panel-w);
		margin:48px auto;
		display:block;
	}
	.company-overview__grid::after{
		content:"";
		display:block;
		clear:both;
	}
	.company-overview__photo{
		width:auto;
		height:auto;
		aspect-ratio:700/480;
		border-radius:var(--radius);
		overflow:hidden;
		background:#fff;
		margin:0;
		transform:none;
		shape-outside:inset(0 round var(--radius));
		-webkit-shape-outside:inset(0 round var(--radius));
	}
	.company-overview__photo>img{
		position:static;
		display:block;
		width:100%;
		height:100%;
		object-fit:cover;
	}
	.company-overview__text{
		max-width:var(--lead-w);
		width:auto;
		/* font-family:"Zen Kaku Gothic Antique","Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif; */
		font-weight:400;
		font-size:16px;
		line-height:calc(30 / 16);
		color:#0b0d12;
		text-wrap:pretty;
	}
	.company-overview__grid--a .company-overview__photo{
		float:left;
		width:var(--a-photo-w);
		margin-top:0;
		margin-right:var(--gap-a);
		margin-bottom:16px;
		margin-left:calc(var(--edge-gutter) - ((100vw - var(--panel-w)) / 2));
	}
	.company-overview__grid--a .company-overview__text{
		margin-left:auto;
		margin-right:var(--rail-offset-r);
	}
	.company-overview__grid--b .company-overview__photo{
		float:right;
		width:var(--b-photo-w);
		margin-top:0;
		margin-right:calc(var(--edge-gutter) - ((100vw - var(--panel-w)) / 2));
		margin-bottom:16px;
		margin-left:var(--gap-b);
	}
	.company-overview__grid--b .company-overview__text{
		margin-left:var(--rail-offset-r);
		margin-right:auto;
	}
}

@media (max-width:810px){
	.company-overview{
		--hl-h:10px;
	}
	.company-overview__panel{
		width:96vw;
		padding:clamp(24px,6vw,40px);
		padding-bottom: 8vw;
	}
	.company-overview__title{
		width:100%;
		margin:6vw 0 -3vw 0;
		text-align:left;
		font-size:clamp(20px,6vw,26px);
		transform:none;
		white-space:normal;
	}
	.company-overview__tline{display:block;margin-bottom:12px}
	.company-overview__hl{
		background-position:0 calc(100% - 0.1em);
		background-size:auto var(--hl-h);
		padding:0 .04em;
		box-decoration-break:clone;
		-webkit-box-decoration-break:clone;
	}
	.company-overview__hl--2{
		display:block;
		width:max-content;
		max-width:100%;
		margin-top:0.2em;
	}
	.company-overview__lead{
		width:100%;
		margin:60px 0 20px;
		font-size:15px;
		transform:none;
	}
	.company-overview__grid{
		width:100%;
		display:grid;
		grid-template-columns:1fr;
		row-gap:20px;
		column-gap:0;
	}
	.company-overview__grid--b{
		display:grid;
		grid-template-areas:
			"photo"
			"text";
		margin-top: 5vw;
	}
	.company-overview__grid--b .company-overview__photo{grid-area:photo}
	.company-overview__grid--b .company-overview__text{grid-area:text}
	.company-overview__grid--a .company-overview__photo,
	.company-overview__grid--b .company-overview__photo{
		width:100%;
		height:auto;
		aspect-ratio:700/480;
		border-radius:18px;
		overflow:hidden;
		margin:0;
		transform:none;
		float:none;
	}
	.company-overview__grid--a .company-overview__text,
	.company-overview__grid--b .company-overview__text{
		width:100%;
		font-size:15px;
		transform:none;
		padding:0;
	}
}

@media (max-width:480px){
	.company-overview__title{
		font-size:20px;
        margin: 10vw 0 -12vw 0;
	}
	.company-overview__lead{
		font-size:13px;
	}
	.company-overview__grid--a .company-overview__text,
	.company-overview__grid--b .company-overview__text{
		font-size:13px;
	}
}












.traits{
	color: var(--c-text);
}
.traits__inner{
	width: 100%;
	margin-inline: auto;
	padding: 60px 0;
	padding-bottom: 8vw;
}
.traits__title{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	width: auto;
	max-width: calc((2 * 599px) + 20px);
	margin: 2vw auto 36px;
	line-height: 1;
}
.traits__dot{
	width: 12px;
	height: 12px;
	border-radius: 4px;
	background: #04CDFC;
	flex: 0 0 auto;
	margin: 10px 5px 5px 5px;
}
.traits__title-text{
	font-weight: 700;
	font-size: 26px;
	letter-spacing: .02em;
}
.traits__grid{
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 599px);
	grid-auto-rows: 194px;
	column-gap: 3px;
	row-gap: 3px;
	width: auto;
	max-width: calc((2 * 599px) + 20px);
	justify-content: center;
}
.traits__card{
	display: flex;
	align-items: center;
	gap: 30px;
	background: var(--c-card);
	padding: 22px;
	min-height: 194px;
}
.traits__card--left{ grid-column: 1; }
.traits__grid > li:nth-child(5){ grid-column: 1; margin-top: 1px; }
.traits__icon{
	width: 100px;
	height: 100px;
	border-radius: 12px;
	flex: 0 0 auto;
	overflow: hidden;
}
.traits__icon img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.traits__text{
	width: auto;
	min-block-size: auto;
	display: grid;
	grid-template-rows: auto 1fr;
	row-gap: 10px;
	align-self: center;
}
.traits__text-title{
	margin: 0;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: .02em;
	display: block;
	overflow: visible;
	text-overflow: clip;
	overflow-wrap: anywhere;
}
.traits__text-body{
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.6;
	display: block;
	overflow: visible;
	text-overflow: clip;
	overflow-wrap: anywhere;
}

@media (min-width:1281px) and (max-width:1919px){
	.traits__title{
		max-width: calc((2 * 599px) + 20px);
	}
	.traits__grid{
		grid-template-columns: repeat(2, 599px);
		grid-auto-rows: 194px;
		column-gap: 3px;
		row-gap: 3px;
		max-width: calc((2 * 599px) + 20px);
	}
	.traits__card{
		min-height: 194px;
	}
	.traits__dot{
		width: 12px;
		height: 12px;
		border-radius: 4px;
	}
	.traits__title-text{
		font-size: 26px;
	}
	.traits__text-title{
		font-size: 19px;
	}
	.traits__text-body{
		font-size: 14px;
	}
}

@media (min-width:1920px){
	.traits__inner{
		width: 100%;
		margin-inline: auto;
		padding: calc((60 / 1920) * 100vw) 0;
		padding-bottom: 8vw;
	}
	.traits__title{
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: calc((10 / 1920) * 100vw);
		width: auto;
		max-width: calc(((2 * 599 + 20) / 1920) * 100vw);
		margin: 2vw auto calc((36 / 1920) * 100vw);
		line-height: 1;
	}
	.traits__dot{
		width: calc((12 / 1920) * 100vw);
		height: calc((12 / 1920) * 100vw);
		border-radius: calc((4 / 1920) * 100vw);
		background: #04CDFC;
		flex: 0 0 auto;
		margin: calc((10 / 1920) * 100vw) calc((5 / 1920) * 100vw) calc((5 / 1920) * 100vw) calc((5 / 1920) * 100vw);
	}
	.traits__title-text{
		font-weight: 700;
		font-size: calc((26 / 1920) * 100vw);
		letter-spacing: .02em;
	}
	.traits__grid{
		list-style: none;
		margin: 0 auto;
		padding: 0;
		display: grid;
		grid-template-columns: repeat(2, calc((599 / 1920) * 100vw));
		grid-auto-rows: calc((194 / 1920) * 100vw);
		column-gap: calc((3 / 1920) * 100vw);
		row-gap: calc((3 / 1920) * 100vw);
		width: auto;
		max-width: calc(((2 * 599 + 20) / 1920) * 100vw);
		justify-content: center;
	}
	.traits__card{
		display: flex;
		align-items: center;
		gap: calc((30 / 1920) * 100vw);
		background: var(--c-card);
		padding: calc((22 / 1920) * 100vw);
		min-height: calc((194 / 1920) * 100vw);
	}
	.traits__card--left{ grid-column: 1; }
	.traits__grid > li:nth-child(5){ grid-column: 1; margin-top: calc((1 / 1920) * 100vw); }
	.traits__icon{
		width: calc((100 / 1920) * 100vw);
		height: calc((100 / 1920) * 100vw);
		border-radius: calc((12 / 1920) * 100vw);
		flex: 0 0 auto;
		overflow: hidden;
	}
	.traits__icon img{
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
	.traits__text{
		width: auto;
		min-block-size: auto;
		display: grid;
		grid-template-rows: auto 1fr;
		row-gap: calc((10 / 1920) * 100vw);
		align-self: center;
	}
	.traits__text-title{
		margin: 0;
		font-weight: 700;
		font-size: calc((19 / 1920) * 100vw);
		line-height: 1.5;
		letter-spacing: .02em;
		display: block;
		overflow: visible;
		text-overflow: clip;
		overflow-wrap: anywhere;
	}
	.traits__text-body{
		margin: 0;
		font-weight: 400;
		font-size: calc((14 / 1920) * 100vw);
		line-height: 1.6;
		display: block;
		overflow: visible;
		text-overflow: clip;
		overflow-wrap: anywhere;
	}
}

@media (max-width:1280px) and (min-width:811px){
	.traits__title{
		width: auto;
		max-width: calc((2 * ((599 / 1280) * 100vw)) + 20px);
		margin-left: auto;
		margin-right: auto;
		gap: 10px;
		margin-bottom: 30px;
	}
	.traits__inner{
		padding-bottom: 10vw;
	}
	.traits__grid{
		width: auto;
		margin-left: auto;
		margin-right: auto;
		grid-template-columns: repeat(2, calc((599 / 1280) * 100vw));
		grid-auto-rows: minmax(calc((194 / 1280) * 100vw), auto);
		column-gap: 3px;
		row-gap: 3px;
		justify-content: center;
	}
	.traits__card,
	.traits__text{
		min-width: 0;
	}
	.traits__card{
		display: flex;
		align-items: center;
		padding: 22px;
		gap: 30px;
		min-height: calc((200 / 1280) * 100vw);
	}
	.traits__icon{
		width: 100px;
		height: 100px;
		border-radius: 12px;
		align-self: center;
	}
	.traits__text{
		width: auto;
		min-block-size: auto;
		row-gap: 10px;
		align-self: center;
	}
	.traits__title-text{
		font-size: 26px;
		letter-spacing: .02em;
	}
	.traits__dot{
		width: 12px;
		height: 12px;
		border-radius: 4px;
		background: #04CDFC;
		margin: 10px 5px 5px 5px;
	}
	.traits__text-title{
		font-size: 19px;
		line-height: 1.5;
	}
	.traits__text-body{
		font-size: 14px;
		line-height: 1.6;
	}
}

@media (max-width: 810px){
	.traits__inner{
		margin-bottom: 1vw;
	}
	.traits__title{
		width: clamp(320px, 85.714vw, 694px);
		margin: 3vw auto;
		gap: 10px;
		line-height: 1;
	}
	.traits__title-text{
		font-weight: 700;
		font-size: 22px;
		letter-spacing: .02em;
		margin-bottom: 1vw;
	}
	.traits__grid{
		width: 100%;
		margin: 0 auto 7vw;
		display: grid;
		grid-template-columns: 1fr;
		justify-items: center;
		row-gap: 3px;
		grid-auto-rows: auto;
	}
	.traits__grid > li:nth-child(5){
		grid-column: auto;
		margin-top: 1px;
	}
	.traits__card{
		width: clamp(320px, 85.714vw, 694px);
		box-sizing: border-box;
		display: flex;
		align-items: center;
		gap: clamp(12px, 2.2vw, 20px);
		padding: clamp(0px, 0vw, 0px) clamp(16px, 3.5vw, 32px);
		min-height: 160px;
	}
	.traits__icon{
		align-self: center;
		width: clamp(64px, 12.346vw, 100px);
		height: clamp(64px, 12.346vw, 100px);
		border-radius: 12px;
		overflow: hidden;
	}
	.traits__icon img{
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
	.traits__text{
		width: auto;
		min-block-size: auto;
		display: grid;
		grid-template-rows: auto 1fr;
		row-gap: 10px;
		align-self: center;
	}
	.traits__text-title,
	.traits__text-body{
		display: block;
		-webkit-line-clamp: unset;
		-webkit-box-orient: initial;
		overflow: visible;
		text-overflow: clip;
		overflow-wrap: anywhere;
	}
	.traits__text-title{
		font-size: 19px;
		line-height: 1.5;
	}
	.traits__text-body{
		font-size: 14px;
		line-height: 1.6;
	}
	.traits__dot{
		width: 12px;
		height: 12px;
		border-radius: 4px;
		background: #04CDFC;
		margin: 10px 5px 10px 0px;
	}
}

@media (max-width: 480px){
	.traits__title-text{
		font-size: 16px;
		letter-spacing: .02em;
		margin-bottom: 1vw;
	}
	.traits__grid{
		grid-auto-rows: minmax(158px, auto);
	}
	.traits__card{
		width: clamp(320px, 85.714vw, 694px);
		box-sizing: border-box;
		display: flex;
		align-items: center;
		gap: clamp(12px, 2.2vw, 20px);
		padding: 20px;
		min-height: 120px;
	}
	.traits__icon{
		width: 80px;
		height: 80px;
		border-radius: 12px;
	}
	.traits__text{
		width: auto;
		grid-template-rows: auto 1fr;
		row-gap: 8px;
		flex: 1 1 auto;
	}
	.traits__text-title{
		/* font-family: "Zen Kaku Gothic Antique","Zen Kaku Gothic New",system-ui,-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif; */
		font-weight: 700;
		font-size: 15px;
		line-height: 1.4;
	}
	.traits__text-body{
		/* font-family: "Zen Kaku Gothic Antique","Zen Kaku Gothic New",system-ui,-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif; */
		font-weight: 400;
		font-size: 12px;
		line-height: 1.6;
	}
	.traits__dot{
		width: 12px;
		height: 12px;
		border-radius: 4px;
		background: #04CDFC;
		margin: 10px 0px 10px 5px;
	}
}







/* エフェクト */
.fadein-target{
	opacity:0;
	transition:opacity 420ms ease-out;
	will-change:opacity;
}
.fadein-target.is-inview{
	opacity:1;
}

@media (prefers-reduced-motion: reduce){
	.fadein-target{
		transition:none;
	}
}



/*
#foot-entry{
	padding-top: 6vw;
	padding-bottom: 6vw;
}

@media (max-width:810px){
	#foot-entry{
		padding-top: 10vw;
		padding-bottom: 10vw;
	}
}
*/