@charset "utf-8";
.kv {
		min-height: 500px;
		height: 100vh;
		position: relative;
}
.kv_logo {
		width: 320px;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
}
.kv_logo img {
		width: 100%;
		height: auto;
}
.kv .kv_footer {
		position: absolute;
		left: 0;
		bottom: 40px;
		width: 100%;
		display: flex;
		justify-content: space-between;
		box-sizing: border-box;
		padding: 0 30px;
}
.kv .kv_footer p {
		font-size: 14px;
		letter-spacing: 0
}
.kv_scroll a {
		color: #000;
		text-decoration: none;
		padding-right: 25px;
		position: relative;
}
.kv_scroll a::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 10px);
		right: 0;
		width: 15px;
		height: 17px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 15px;
		background-image: url("../images/icon_scroll.png")
}
@media(min-width: 1441px) {
		.kv_logo {
				width: 500px;
		}
}
@media(max-width: 767px) {
		.kv {
				height: 100vh;
				height: 100dvh;
		}
		.kv_logo {
				width: 210px;
		}
		.kv .kv_footer p {
				font-size: 12px;
		}
}
@media(max-width: 375px) {
		.kv_logo {
				width: 180px;
		}
}
/* ========== */
section {
		padding: 160px 30px;
}
@media(max-width: 960px) {
		section {
				padding: 80px 30px;
		}
}
@media(max-width: 767px) {
		section {
				padding: 80px 20px;
		}
}
.wrap {
		max-width: 980px;
		margin: 0 auto;
}
.section_title {
		font-family: 'Figtree', 'Noto Sans JP', sans-serif;
		line-height: 1;
		font-size: 42px;
		font-weight: 400;
		letter-spacing: 0;
		text-align: center;
		margin-bottom: 80px;
}
.section_title span {
		display: inline-block;
		position: relative;
}
.section_title span::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -25px;
		left: calc(50% - 8px);
		width: 16px;
		height: 16px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 16px;
		background-image: url("../images/title_dot.png")
}
.sub_title {
		text-align: center;
		font-size: 20px;
		font-weight: 500;
		margin-bottom: 45px;
}
@media(max-width: 767px) {
		.section_title {
				font-size: 32px;
				margin-bottom: 60px;
		}
		.sub_title {
				font-size: 18px;
		}
}
/* ========== */
.philosophy_section {
		padding: 300px 30px 320px;
		position: relative;
		overflow: visible;
}
.philosophy_section .stickey {
		position: sticky;
		top: 500px;
		left: 0;
		height: 100vh;
}
.philosophy_wrap_in {
		position: relative;
}
.philosophy_wrap_in .circle {
		content: '';
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 740px;
		height: 740px;
		z-index: -1;
}
.circle::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 740px;
		height: 740px;
		border-radius: 50%;
		background: #F5F8FC;
}
.philosophy_catch {
		text-align: center;
		font-size: 72px;
		font-weight: 400;
		letter-spacing: 0;
		margin-bottom: 70px;
}
.philosophy_caption {
		text-align: center;
		line-height: 2.4;
		font-size: 24px;
		font-weight: 500;
}
@media(max-width: 960px) {
		.philosophy_wrap_in .circle {
				width: 620px;
				height: 620px;
		}
		.circle::before {
				width: 620px;
				height: 620px;
		}
		.philosophy_catch {
				font-size: 58px;
				margin-bottom: 50px;
				line-height: 1.6;
		}
		.philosophy_caption {
				line-height: 2.2;
				font-size: 18px;
		}
}
@media(max-width: 767px) {
		.philosophy_section {
				padding: 20vh 20px 20vh;
		}
		.philosophy_wrap_in .circle {
				width: 114vw;
				height: 114vw;
				top: 52%;
		}
		.circle::before {
				width: 114vw;
				height: 114vw;
		}
		.philosophy_catch {
				font-size: 42px;
				line-height: 1.1;
				margin-bottom: 6vw;
		}
		.philosophy_caption {
				line-height: 2.6;
				font-size: 16px;
		}
}
@media (max-width: 374px) {
		.philosophy_catch {
				font-size: 34px;
				line-height: 1.1;
				margin-bottom: 6vw;
		}
		.philosophy_caption {
				line-height: 2.4;
				font-size: 13px;
		}
}
/* ========== */
.business_catch {
		text-align: center;
		font-size: 48px;
		line-height: 1.6;
		font-weight: 400;
		margin: 0 0 30px;
		letter-spacing: 0
}
.business_catch + p {
		text-align: center;
		font-size: 24px;
		font-weight: 500;
		line-height: 1.8;
		margin: 0 0 70px;
}
.business_figure {
		max-width: 1250px;
		margin: 0 auto;
		position: relative;
}
.business_figure div:not(.base) {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
}
.business_figure img {
		width: 100%;
		height: auto
}
.item-1 img, .item-2 img, .item-3 img {
		mix-blend-mode: multiply
}
.item_caption h4 {
		font-size: 20px;
		font-weight: 500;
		margin-bottom: 15px;
}
.item_caption p {
		text-align: justify;
		line-height: 1.8;
}
.business_figure .item_caption.caption-1 {
		left: 836px;
		top: 56px;
		width: 300px;
}
.business_figure .item_caption.caption-2 {
		left: 36px;
		top: 296px;
		width: 280px;
}
.business_figure .item_caption.caption-3 {
		left: 935px;
		top: 296px;
		width: 280px;
}
@media(max-width: 1360px) {
		.item_caption h4 {
				font-size: 18px;
				margin-bottom: 10px;
		}
		.item_caption p {
				font-size: 15px;
		}
		.business_figure .item_caption.caption-1 {
				left: 63vw;
				top: 4.5vw;
				width: 30vw;
		}
		.business_figure .item_caption.caption-2 {
				left: 0;
				top: 24.5vw;
				width: 23vw;
		}
		.business_figure .item_caption.caption-3 {
				left: 74vw;
				top: 24.5vw;
				width: 22vw;
		}
}
@media(max-width: 960px) {
		.business_catch {
				font-size: 38px;
				margin: 0 0 20px;
		}
		.business_catch + p {
				font-size: 20px;
				margin: 0 0 50px;
		}
		.business_section {
				padding-left: 10px;
				padding-right: 10px;
		}
		.item_caption h4 {
				font-size: 16px;
		}
		.item_caption p {
				font-size: 14px;
				line-height: 1.6;
		}
}
@media(max-width: 767px) {
		.business_catch {
				font-size: 26px;
				line-height: 1.4;
				margin: 0 0 20px;
		}
		.business_catch + p {
				font-size: 18px;
				line-height: 1.6;
				margin: 0 0 40px;
		}
		.business_figure div.base {
				margin-bottom: 40px;
		}
		.business_figure .item_caption.caption-1, .business_figure .item_caption.caption-2, .business_figure .item_caption.caption-3 {
				position: static;
				width: auto;
				margin: 0 0 30px;
				padding: 0 10px;
		}
		.item-branch {
				display: none
		}
		.item_caption h4 {
				font-size: 18px;
				margin: 0 0 10px
		}
		.item_caption p {
				font-size: 14px;
				line-height: 1.8;
		}
}
/* ========== */
.group_lead {
		max-width: 780px;
		margin: 0 auto 50px;
		text-align: justify;
		line-height: 2.0;
}
.kai_logo {
		max-width: 215px;
		margin: 0 auto 60px;
}
.kai_logo img {
		width: 100%;
		height: auto
}
.kai_logo + .hrCenter {
		margin: 0 auto 160px;
}
@media(max-width: 767px) {
		.kai_logo {
				max-width: 170px;
				margin: 0 auto 40px;
		}
		.kai_logo + .hrCenter {
				margin: 0 auto 130px;
		}
}
/* ========== */
.partner_section {
		background: #F5F8FC;
}
.tile_flex {
		display: flex;
		justify-content: space-between;
}
.tile_item {
		width: calc(50% - 10px);
		box-sizing: border-box;
		aspect-ratio: 10 / 9.38;
		border: 1px solid #c8c8c8;
		border-radius: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
}
.tile_item_in {
		padding: 0 70px
}
.tile_logo {
		max-width: 310px;
		margin: 0 auto 50px
}
.tile_logo img {
		width: 100%;
		height: auto
}
.tile_item_in p {
		text-align: justify;
		line-height: 2.0;
		margin: 0 0 30px;
}
.tile_item_in .linkBtn {
		margin-left: auto;
		margin-right: auto;
}
.tile_item_in .linkBtn a {
		height: 40px;
}
.tile_item_in .linkBtn a span {
		transform: translateY(1px)
}
@media(max-width: 1200px) {
		.tile_logo {
				max-width: 250px;
				margin: 0 auto 40px
		}
		.tile_item_in {
				padding: 0 40px
		}
}
@media(max-width: 960px) {
		.tile_logo {
				width: 80%;
				margin: 0 auto 30px
		}
}
@media(max-width: 767px) {
		.tile_flex {
				display: block
		}
		.tile_item {
				width: 100%;
				margin: 0 0 20px;
				display: block;
				aspect-ratio: inherit;
		}
		.tile_flex .tile_item:last-child {
				margin-bottom: 0;
		}
		.tile_item_in {
				padding: 50px 25px;
		}
		.tile_logo {
				width: 70%;
				margin: 0 auto 35px
		}
}
/* ========== */
.group_flex {
		max-width: 980px;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
}
.group_item {
		width: calc(calc(100% - 50px) / 3);
}
.group_item a {
		color: #000;
		text-decoration: none;
}
.group_thumb {
		box-sizing: border-box;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: #fff;
		border-radius: 10px;
		border: 1px solid #c8c8c8;
		aspect-ratio: 10 / 6.45;
		margin-bottom: 16px;
}
.group_logo {
		width: 255px;
}
.group_logo img {
		width: 100%;
		height: auto
}
.group_caption {
		position: relative;
}
.group_caption p {
		line-height: 1.8;
		font-size: 16px;
		font-weight: 500;
}
.group_caption p span {
		font-weight: 400;
		font-size: 85%;
}
.group_caption .blankCircle {
		position: absolute;
		width: 30px;
		height: 30px;
		right: 0;
		top: calc(50% - 15px)
}
.blankCircle::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 30px;
		height: 30px;
		border: 1px solid #000;
		border-radius: 50%;
		transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.2s;
		box-sizing: border-box;
}
@media (hover: hover) {
		a:hover .blankCircle::before {
				transform: scale(1.3);
				background: #000;
		}
		a:hover .iconBlank::before {
				border: 1px solid #fff;
		}
		a:hover .iconBlank::after {
				border-top: 1px solid #fff;
				border-right: 1px solid #fff;
		}
}
.blankCircle .iconBlank {
		position: relative;
		left: inherit;
		top: 14px;
		right: 8px;
}
@media(max-width: 1100px) {
		.group_logo {
				width: 200px;
		}
}
@media(max-width: 960px) {
		.group_item {
				width: calc(calc(100% - 30px) / 3);
		}
		.group_logo {
				width: 70%;
		}
		.group_caption p {
				font-size: 14px;
				padding-right: 40px;
		}
}
@media(max-width: 767px) {
		.group_flex {
				display: block
		}
		.group_item {
				width: auto;
				margin: 0 0 40px
		}
		.group_flex .group_item:last-child {
				margin-bottom: 0;
		}
}
/* ========== */
.tbl_line {
		position: relative;
		height: 1px;
		display: flex;
}
.tbl_line .left {
		width: 20%;
		position: relative;
}
.tbl_line .right {
		width: 80%;
		position: relative;
}
.company_inner table {
		width: 100%;
}
.company_inner th, .company_inner td {
		text-align: left;
		padding: 20px 20px;
		vertical-align: top;
		line-height: 1.8;
		position: relative;
}
.company_inner th::after, .company_inner td::after, .tbl_line::before, .tbl_line .left::before, .tbl_line .right::before {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 1px;
		transform-origin: left center;
}
.company_inner table tr:last-child th::after, .company_inner table tr:last-child td::after {
		display: none
}
.company_inner tr th {
		width: 20%;
		font-weight: 500;
		white-space: nowrap;
}
.tbl_line .left::before, .company_inner tr th::after {
		background: #000;
		width: calc(100% - 10px);
}
.tbl_line .right::before, .tbl_line::after, .company_inner tr td::after {
		background: #A7B1BF;
}
.company_inner table tr {
		transition: opacity 0.4s;
		/* opacity: 0; */
}
.company_inner table td dl {
		display: flex;
		align-items: center;
		line-height: 1.6;
		margin-bottom: 5px;
}
.company_inner table td dl:last-child {
		margin-bottom: 0;
}
.company_inner table td dl dt {
		width: 6.5em;
}
td .linkBtn {
		margin-top: 15px;
}
@media(max-width: 767px) {
		.company_inner th, .company_inner td {
				padding: 20px 0;
		}
		.tbl_line .left {
				width: 23%;
				position: relative;
		}
		.company_inner tr th {
				width: 23%;
		}
}
/* ========== */
.philosophy_section {
		position: relative;
		overflow: visible;
}

/* ==== stickey setting ==== */
/* 
.philosophy_fix {
		min-height: 600px;
		position: sticky;
		top: 25vh;
		left: 0;
		height: 80vh;
}
@media(max-width: 960px) {
		.philosophy_fix {
				min-height: 500px;
				position: sticky;
				top: 31vh;
				left: 0;
				height: 70vh;
		}
}
*/
/* ==== stickey setting ==== */
