@charset "UTF-8";

/* page ---------------------------------------*/
.page {
	background: var(--color-bg);
	overflow: hidden;
}

.pagesection {
	position: relative;
	z-index: 3;
	background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(198 / 1440 * 100vw), var(--color-primary) calc(198 / 1440 * 100vw), var(--color-primary) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) 100%);
}

.pagesection::before,
.pagesection::after {
	content: "";
	position: absolute;
	left: 50%;
	z-index: -2;
	width: 101%;
	aspect-ratio: 1440 / 200;
	background: url('../img/common/bg_section.svg') no-repeat center center / contain;
}

.pagesection::before {
	top: 0;
	transform: translateX(-50%);
}

.pagesection::after {
	bottom: 0;
	transform: translateX(-50%) rotate(180deg);
}

.pagesection-deco::before,
.pagesection-deco::after {
	position: absolute;
	z-index: -1;
	transform: translateX(-50%);
	content: '';
}

.pagesection-deco::before {
	top: min(calc(40 / 1440 * 100vw), 40px);
	left: 39.5%;
	width: min(calc(1089 / 1440 * 100vw), 1089px);
	aspect-ratio: 1089 / 641;
	background: url('../img/common/bg_section_deco_01.svg') no-repeat center center / contain;
}

.pagesection-deco::after {
	bottom: min(calc(50 / 1440 * 100vw), 50px);
	left: 59.5%;
	width: min(calc(1060 / 1440 * 100vw), 1060px);
	aspect-ratio: 1060 / 565;
	background: url('../img/common/bg_section_deco_02.svg') no-repeat center center / contain;
}


/* pagekv ---------------------------------------*/

.pagekv{
	position: relative;
	z-index: 1;
	padding: 146px var(--gutter) 60px;
}

.visionkv {background: url('../img/vision/kv.jpg') no-repeat center center / cover;}

.pagekv-title {
	margin-bottom: 30px;
}

.pagekv-title b {
	display: block;
	font-size: 76px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #fff;
	margin-bottom: 2px;
}

.pagekv-title small {
	display: block;
	font-size: 14px;
	font-weight: 900;
	line-height: 1.2;
	text-align: center;
	color: #fff;
}

.pagekv-text {
	margin-bottom: 30px;
	font-size: 36px;
	font-weight: 900;
	line-height: calc(48 / 36);
	text-align: center;
	letter-spacing: 0.05em;
	color: #fff;
}

.pagekv-navlist {
	justify-content: center;
	max-width: 1240px;
	margin: 0 auto;
}


/* vision ---------------------------------------*/
.pagevision{
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.pagevision::before,
.pagevision::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.pagevision::before {
	top: 0;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.pagevision::after {
	bottom: -180px;
	right: -120px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.pagevision-diagram{
	max-width: 1080px;
	margin: 0 auto;
}

.pagevision-diagram img{
	width: 100%;
	height: auto;
}

/* pagemission ---------------------------------------*/
.pagemission{
	padding: 100px var(--gutter) 100px;
}

.pagemission.pagesection {
	background: var(--color-primary);
}

.pagemission.pagesection::before,
.pagemission.pagesection::after {
	display: none;
}


.pagemission .pagesection-deco::before {
	top: 690px;
}

.pagemission .pagesection-deco::after {
	bottom: min(calc(170 / 1440 * 100vw), 170px);
}

.pagemission-intro { 
	width: 100%;
	clip-path: polygon(0 100%, 50% 0, 100% 100%);
	background: #fff;
}

.pagemission-intro-list > li { 
	position: relative;
	padding: 28px 20px 24px;
}

.pagemission-intro-list > li:nth-of-type(1) {
	padding-top: calc(84 / 1240 * 100%);
}

.pagemission-intro-list > li:nth-of-type(2)::before,
.pagemission-intro-list > li:nth-of-type(3)::before {
	position: absolute;
	top: 0;
	left: 50%;
	height: 10px;
	transform: translateX(-50%);
	background: var(--color-primary);
	content: '';
} 

.pagemission-intro-list > li:nth-of-type(2)::before {width: 50%;} 
.pagemission-intro-list > li:nth-of-type(3)::before {width: 80%;}

.pagemission-intro-list-tag { 
	padding: 10px 20px;
	margin: 0 auto;
	min-width: calc(164 / 1200 * 100%);
	width: fit-content;
	background: var(--color-primary);
	border-radius: 60px;
}

.pagemission-intro-list-tag.is-large {min-width: calc(284 / 1240 * 100%);}

.pagemission-intro-list-tag-en { 
	display: block;
	margin-bottom: 2px;
	font-size: min(calc(20 / 1400 * 100vw), 20px);
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #fff;
}

.pagemission-intro-list-tag-jp { 
	display: block;
	font-size: min(calc(11 / 1440 * 100vw), 11px);
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
	color: #fff;
}

.pagemission-intro-list-image { 
	width: calc(237 / 1240 * 100%);
	margin: 22px auto 0;
}

.pagemission-intro-list-image img { 
	width: 100%;
}

.pagemission-intro-list-text {
	margin-top: 10px;
	font-size: min(calc(36 / 1440 * 100vw), 36px);
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-primary);
}

.pagemission-intro-list-text span {
	font-size: min(calc(42 / 1440 * 100vw), 42px);
}

.pagemission .section-title {
	padding-top: 154px;
}


/* pagevalue ---------------------------------------*/
.pagevalue{
	position: relative;
	z-index: 1;
	padding: 140px var(--gutter) 0;
	background: var(--color-primary);
}

.pagevalue-list {
	margin-top: 100px;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: calc(20 / 1240 * 100%);
	position: relative;
}

.pagevalue-list > li {
	position: relative;
	width: calc(400 / 1240 * 100%);
	background: #fff;
	border-radius: 20px;
	padding: 80px 24px 34px;
}

.pagevalue-list-deco {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
	width: 112px;
	height: 112px;
	background: var(--color-primary);
	border: 2px solid #fff;
	border-radius: 50%;
}

.pagevalue-list-deco b {
	display: block;
	margin-bottom: 6px;
	font-size: 30px;
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
	letter-spacing: 0.2em;
	color: #fff;
}

.pagevalue-list-deco span {
	display: block;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #fff;
}

.pagevalue-list-title {
	margin-bottom: 13px;
	padding-bottom: 12px;
	border-bottom: 1px solid #FEDEDE;
	font-size: min(calc(50 / 1280 * 100vw), 50px);
	font-weight: 900;
	line-height: 1.3;
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-primary);
}

.pagevalue-list-title span {
	font-size: min(calc(60 / 1280 * 100vw), 60px);
	line-height: 0.9;
}

.pagevalue-list-text {
	margin: 0 -18px;
	font-size: 18px;
	font-weight: 700;
	line-height: calc(30 / 18);
	text-align: center;
}


/* visionbusiness ---------------------------------------*/
.visionbusiness {
	position: relative;
	z-index: 2;
	padding: 154px var(--gutter) 155px;
}

.visionbusiness.pagesection {
	background: linear-gradient(to bottom,var(--color-primary) 0%, var(--color-primary) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) 100%);
}

.visionbusiness .pagesection-deco::before {
	top: min(calc(170 / 1440 * 100vw), 170px);
}

.visionbusiness .pagesection-deco::after {
	bottom: min(calc(40 / 1440 * 100vw), 40px);
}


/* pagefuture ---------------------------------------*/
.pagefuture {
	position: relative;
	z-index: 1;
	padding: 160px var(--gutter);
}

.pagefuture::before,
.pagefuture::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.pagefuture::before {
	top: -180px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.pagefuture::after {
	bottom: -40px;
	right: 0;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.pagefuture-list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 40px;
}

.pagefuture-list > li {
	width: 295px;
	background: var(--color-primary);
	border-radius: 20px;
	padding: 26px 10px 20px;
}

.pagefuture-list-title {
	padding-bottom: 15px;
	margin-bottom: 10px;
	border-bottom: 1px solid #B30000;
	font-size: 16px;
	font-weight: 900;
	line-height: calc(20 / 16);
	text-align: center;
	color: #fff;
}

.pagefuture-list-text {
	text-align: center;
}

.pagefuture-list-text b {
	font-size: 54px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.pagefuture-list-text small {
	font-size: 30px;
	font-weight: 900;
	line-height: calc(35 / 30);
	color: #fff;
}

.pagefuture-document {
	position: relative;
	padding-top: calc(607 / 1080 * 100%);
	width: 100%;
	height: 0;
}

.pagefuture-document iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.pagefuture-document-comingsoon {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #FFF1EE;
	border-radius: 40px;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-primary);
}


/* company ---------------------------------------*/

.company {
	padding-bottom: 13px;
	position: relative;
}

.company::after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 13px;
	background: var(--color-primary);
}

.companysection {
}

.companysection-text {
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.1em;
}

.companyboardmember .companysection-text,
.companymedia .companysection-text {
	color: #fff;
}

/* companykv ---------------------------------------*/
.companykv { background: url('../img/company/kv.jpg') no-repeat center center / cover; }


/* companyprofile ---------------------------------------*/
.companyprofile {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.companyprofile::before,
.companyprofile::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.companyprofile::before {
	top: 0;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.companyprofile::after {
	bottom: -180px;
	right: -35px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.companyprofile-table {
	max-width: 970px;
	margin: 40px auto 0;
}

.companyprofile-table-row {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--color-primary);
	margin-bottom: -1px;
}

.companyprofile-table dt {
	width: 240px;
	padding: 15px 10px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-primary);
	background-color: #fef6f4;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	border-right: 1px solid var(--color-primary);
}

.companyprofile-table dt small {
	font-size: 12px;
}

.companyprofile-table dd {
	flex: 1;
	padding: 15px 40px;
	font-size: 14px;
	font-weight: 400;
	line-height: calc(24 / 14);
	color: #000;
	background-color: #fff;
}

.companyprofile-table-row:nth-of-type(2) dd div + div {
	margin-top: 1em;
}

.companyprofile-table dd small {
	font-size: 12px;
}


/* companyboardmember ---------------------------------------*/
.companyboardmember {
	padding: 155px var(--gutter) 170px;
}

.companyboardmember-list {
	display: flex;
	flex-wrap: wrap;
	gap: 32px calc(32 / 1240 * 100%);
	margin-top: 40px;
}

.companyboardmember-list > li {
	width: calc(392 / 1240 * 100%);
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
}

.companyboardmember-photo {
	overflow: hidden;
}

.companyboardmember-photo img {
	width: 100%;
	height: auto;
}

.companyboardmember-info {
	padding: 25px 20px 30px;
}

.companyboardmember-role {
	font-size: 14px;
	font-weight: 700;
	line-height: 2;
	margin-bottom: 9px;
}

.companyboardmember-name {
	font-size: 26px;
	font-weight: 900;
	line-height: 1.077;
	color: var(--color-primary);
	margin-bottom: 2px;
}

.companyboardmember-name-en {
	color: var(--color-accent);
	font-size: 13px;
	font-weight: 700;
	line-height: 2.154;
	letter-spacing: 0.02em;
	margin-bottom: 9px;
}

.companyboardmember-text {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.714;
	letter-spacing: 0.05em;
}


/* companyawards ---------------------------------------*/
.companyawards {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.companyawards::before,
.companyawards::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.companyawards::before {
	top: -180px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.companyawards::after {
	bottom: -183px;
	right: -35px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.companyawards-list {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 40px;
}

.companyawards-list > li {
	width: calc((100% - 60px) / 4);
}

.companyawards-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	border-radius: 20px;
	box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.1);
}

.companyawards-item:hover {
	opacity: 1;
}

.companyawards-item-image {
	flex-shrink: 0;
	width: 100%;
	height: 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	background-color: #fff;
	border: 2px solid var(--color-primary);
	border-radius: 20px 20px 0 0;
	transition: all .25s ease;
}

.companyawards-item-image img {
}

.companyawards-item-text {
	width: 100%;
	flex: 1;
	background: var(--color-primary);
	color: #fff;
	border-radius: 0 0 20px 20px;
	padding: 0 10px;
	display: flex;
	flex-direction: column;
	transition: all .25s ease;
}

.companyawards-item-name {
	text-align: center;
	font-size: 18px;
	padding: 16px 0 18px;
	font-weight: 700;
	line-height: 1.222;
	flex: 1;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 94px;
}

.companyawards-item-name-small {
	font-size: 16px;
	line-height: 1.25;
}

.companyawards-item-name::after {
  display: block;   
	content: '';
	background: #B30000;
	width: calc(100% - 12px);
	height: 1px;
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	transition: all .25s ease;
}

.companyawards-item-name sup {
	font-size: 10px;
	font-weight: 400;
	line-height: 1.667;
}

.companyawards-item-sub {
	text-align: center;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.667;
	padding: 10px 0 16px;
}

.companyawards-item:hover .companyawards-item-image {border-color: var(--color-dark);}
.companyawards-item:hover .companyawards-item-text {background: var(--color-dark);}
.companyawards-item:hover .companyawards-item-name::after {background: #000;}

.companyawards-noticelist {
	margin-top: 20px;
}

.companyawards-noticelist > li {
	color: #666;
	font-size: 10px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
}

/* companymedia ---------------------------------------*/
.companymedia {
	position: relative;
	padding: 155px var(--gutter) 165px;
}

.companymedia.pagesection {
	background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(185 / 1440 * 100vw), var(--color-primary) calc(185 / 1440 * 100vw), var(--color-primary) 100%);
}

.companymedia-list {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 40px;
}

.companymedia-list > li {
	width: calc((100% - 80px) / 5);
}

.companymedia-item {
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.companymedia-item:hover {
	opacity: 1;
	background: var(--color-dark);
}

.companymedia-item-image {
	overflow: hidden;
}

.companymedia-item-image img {
	width: 100%;
	height: auto;
	display: block;
}

.companymedia-item-text {
	padding: 22px 11px 24px;
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.companymedia-item-name {
	text-align: center;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.429;
	transition: all .25s ease;
}

.companymedia-item:hover .companymedia-item-name {
	color: #fff;
}




/* memberkv ---------------------------------------*/
.memberkv { background: url('../img/member/kv.jpg') no-repeat center center / cover; }


/* membermidcareer ---------------------------------------*/
.membermidcareer {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.membermidcareer::before,
.membermidcareer::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.membermidcareer::before {
	top: 0;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.membermidcareer::after {
	bottom: -180px;
	right: -120px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.membermidcareer-banner {
	margin: 30px 0;
	width: 100%;
	border-radius: 40px;
	overflow: hidden;
}

.membermidcareer-banner img {
	width: 100%;
	height: auto;
	display: block;
}

.membermidcareer-slider {
	overflow: visible;
}

@media (min-width: 768px) {
	.membermidcareer-slider-list {
		display: flex;
		gap: 20px;
		align-items: stretch;
	}

	.membermidcareer-slider-list > li {
		width: calc((100% - 40px) / 3);
	}
}

.swiper-slide {
  height: auto;
  display: flex;
}

.membermidcareer-slider-item {
	display: flex;
	flex-direction: column;
	width: 100%;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.membermidcareer-slider-item:hover {
	opacity: 1;
}

.membermidcareer-slider-item-image img {
	width: 100%;
	height: auto;
	display: block;
}

.membermidcareer-slider-item-info {
	flex-grow: 1;
	padding: 20px 25px 24px;
	background: var(--color-primary);
	transition: all .25s ease;
}

.membermidcareer-slider-item:hover .membermidcareer-slider-item-info {
	background: var(--color-dark);
}

.membermidcareer-slider-item-text {
	font-weight: 700;
	letter-spacing: 0.03em;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height:1.625;
}

.membermidcareer-btn {
	text-align: center;
	margin-top: 40px;
}


/* membernewgraduate ---------------------------------------*/
.membernewgraduate {
	padding: 155px var(--gutter) 162px;
}

.membernewgraduate-banner {
	margin: 30px 0;
	width: 100%;
	border-radius: 40px;
	overflow: hidden;
}

.membernewgraduate-banner img {
	width: 100%;
	height: auto;
	display: block;
}

.membernewgraduate-slider {overflow: visible;}

@media (min-width: 768px) {
	.membernewgraduate-slider-list {
		display: flex;
		gap: 20px;
		align-items: stretch;
	}

	.membernewgraduate-slider-list > li {
		width: calc((100% - 40px) / 3);
	}
}

.membernewgraduate-slider-item {
	display: flex;
	flex-direction: column;
	width: 100%;
	border-radius: 20px;
	overflow: hidden;
	background: #fff;
}

.membernewgraduate-slider-item-image img {
	width: 100%;
	height: auto;
	display: block;
}

.membernewgraduate-slider-item-info {
	flex-grow: 1;
	padding: 15px 25px 24px;
}

.membernewgraduate-slider-item-text {
	color: var(--color-primary);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.625;
	letter-spacing: 0.05em;
}

.membernewgraduate-btn {
	text-align: center;
	margin-top: 40px;
}

/* memberentrylevel ---------------------------------------*/
.memberentrylevel {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.memberentrylevel::before,
.memberentrylevel::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.memberentrylevel::before {
	top: -180px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.memberentrylevel::after {
	bottom: -120px;
	right: -120px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.memberentrylevel-banner {
	margin: 30px 0;
	width: 100%;
	border-radius: 40px;
	overflow: hidden;
}

.memberentrylevel-banner img {
	width: 100%;
	height: auto;
	display: block;
}

.memberentrylevel-slider {overflow: visible;}

@media (min-width: 768px) {
	.memberentrylevel-slider-list {
		display: flex;
		gap: 20px;
	}

	.memberentrylevel-slider-list > li {
		width: calc((100% - 40px) / 3);
	}
}

.memberentrylevel-slider-item {
	display: block;
	position: relative;
	width: 100%;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0px 5px 5px rgba(0,0,0,0.1);
}

.memberentrylevel-slider-item::before,
.memberentrylevel-slider-item::after {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	content: '';
	transition: all .25s ease;
}

.memberentrylevel-slider-item::before {
	z-index: 2;
	width: calc(66 / 400 * 100%);
	aspect-ratio: 1 / 1;
	mask: url('../img/member/icon_play.svg') no-repeat center center / contain;
	-webkit-mask: url('../img/member/icon_play.svg') no-repeat center center / contain;
	background: var(--color-primary);
}

.memberentrylevel-slider-item::after {
	z-index: 1;
	width: calc(36 / 400 * 100%);
	aspect-ratio: 1 /1;
	background: #fff;
}

.memberentrylevel-slider-item-image {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
}

.memberentrylevel-slider-item-image::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 2px solid var(--color-primary);
	border-radius: 20px;
	box-sizing: border-box;
}

.memberentrylevel-slider-item-image img {
	width: 100%;
	height: auto;
	display: block;
	transition: all .25s ease;
	will-change: opacity;
}

.memberentrylevel-slider-item:hover {opacity: 1;}
.memberentrylevel-slider-item:hover::before {background: #fff;}
.memberentrylevel-slider-item:hover::after {background: var(--color-primary);}
.memberentrylevel-slider-item:hover .memberentrylevel-slider-item-image img {opacity: 0.7;}

.memberentrylevel-btn {
	text-align: center;
	margin-top: 40px;
}


/* sp only ---------------------------------------*/
@media screen and (max-width: 767px){
	/* page ---------------------------------------*/
	.pagesection {
		position: relative;
		z-index: 3;
		background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(68 / 390 * 100vw), var(--color-primary) calc(68 / 390 * 100vw), var(--color-primary) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) 100%);
	}

	.pagesection::before,
	.pagesection::after {
		aspect-ratio: 390 / 70;
		background: url('../img/common/bg_section_sp.svg') no-repeat center center / contain;
	}

	.pagesection-deco::before {
		top: min(calc(30 / 390 * 100vw), 30px);
		left: 37%;
		width: min(calc(338 / 390 * 100vw), 338px);
	}

	.pagesection-deco::after {
		bottom: min(calc(30 / 390 * 100vw), 30px);
		left: 62%;
		width: min(calc(329 / 390 * 100vw), 329px);
	}


	/* pagekv ---------------------------------------*/
	.pagekv{
		padding: 112px var(--gutter) 36px;
	}

	.visionkv {background: url('../img/vision/kv_sp.jpg') no-repeat center center / cover;}

	.pagekv-title {
		margin-bottom: 30px;
	}

	.companykv .pagekv-title {
		margin-bottom: 2vw;
	}

	.pagekv-title b {
		font-size: 42px;
	}

	.companykv .pagekv-title b {
		font-size: 42px;
		margin-bottom: 2vw;
	}

	.pagekv-title small {
		font-size: 10px;
	}

	.pagekv-text {
		margin-bottom: 20px;
		font-size: 24px;
		line-height: calc(32 / 24);
	}


	/* pagevision ---------------------------------------*/
	.pagevision{
		padding: 120px var(--gutter) 120px;
	}

	.pagevision::before {
		left: 0;
		width: 178px;
		height: 224px;
	}

	.pagevision::after {
		bottom: -66px;
		right: 0;
		width: 152px;
		height: 195px;
	}


	/* pagemission ---------------------------------------*/
	.pagemission{
		padding: 50px var(--gutter) 0;
	}

	.pagemission.pagesection {
		background: var(--color-primary);
	}

	.pagemission .pagesection-deco::before {
		top: 380px;
	}

	.pagemission .pagesection-deco::after {
		bottom: 0;
	}

	.pagemission-intro { 
		margin: 0 auto;
		max-width: 350px;
	}

	.pagemission-intro-list > li { 
		padding: 11px 20px 8px;
	}

	.pagemission-intro-list > li:nth-of-type(1) {
		padding-top: calc(52 / 350 * 100%);
	}

	.pagemission-intro-list > li:nth-of-type(2)::before,
	.pagemission-intro-list > li:nth-of-type(3)::before {
		height: 2px;
	} 

	.pagemission-intro-list > li:nth-of-type(2)::before {width: 50%;} 
	.pagemission-intro-list > li:nth-of-type(3)::before {width: 80%;}

	.pagemission-intro-list-tag { 
		padding: 6px 6px 3px;
		min-width: calc(70 / 310 * 100%);
	}

	.pagemission-intro-list-tag.is-large {min-width: calc(148 / 310 * 100%);}

	.pagemission-intro-list-tag-en { 
		margin-bottom: 1px;
		font-size: min(calc(13 / 390 * 100vw), 13px);
	}

	.pagemission-intro-list-tag-jp { 
		font-size: min(calc(7 / 390 * 100vw), 7px);
	}

	.pagemission-intro-list-image { 
		width: calc(102 / 310 * 100%);
		margin: 0 auto;
	}

	.pagemission-intro-list-text {
		margin-top: 3px;
		font-size: min(calc(16 / 390 * 100vw), 16px);
	}

	.pagemission-intro-list-text span {
		font-size: min(calc(18 / 390 * 100vw), 18px);
	}

	.pagemission .section-title {
		padding-top: 60px;
	}


	/* pagevalue ---------------------------------------*/
	.pagevalue{
		padding: 60px var(--gutter) 0;
	}

	.pagevalue::before {
		top: -60px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.pagevalue::after {
		bottom: -60px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.pagevalue-list {
		margin-top: 30px;
		flex-direction: column;
		gap: 15px;
	}
	
	.pagevalue-list > li {
		display: flex;
		width: 100%;
		background: unset;
		border: 1px solid #fff;
		border-radius: 10px;
		padding: 0;
		overflow: hidden;
	}
	
	.pagevalue-list-deco {
		padding-top: 56px;
		position: unset;
		transform: unset;
		width: 97px;
		height: 100%;
		border: unset;
		border-radius: unset;
	}

	.pagevalue-list-deco b {
	margin-bottom: 6px;
	font-size: 24px;
}

.pagevalue-list-deco span {
	font-size: 10px;
}

	.pagevalue-list-summary {
		width: calc(100% - 97px);
		padding: 20px 14px 18px;
		background: #fff;
	}
	
	.pagevalue-list-title {
		margin-bottom: 9px;
		padding-bottom: 6px;
		font-size: 30px;
		line-height: 1.1;
	}

	.pagevalue-list-title span {
		font-size: 36px;
		line-height: 0.9;
	}
	
	.pagevalue-list-text {
		margin: unset;
		font-size: 14px;
		line-height: calc(22 / 14);
	}


	/* visionbusiness ---------------------------------------*/
	.visionbusiness {
		padding: 60px var(--gutter) 110px;
	}

	.visionbusiness.pagesection {
		background: linear-gradient(to bottom, var(--color-primary) 0%, var(--color-primary) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) 100%);
	}

	.visionbusiness .pagesection-deco::before {
		top: max(calc(-10 / 390 * 100vw), -10px);
	}

	.visionbusiness .pagesection-deco::after {
		bottom: min(calc(40 / 390 * 100vw), 40px);
	}


	/* pagefuture ---------------------------------------*/
	.pagefuture{
		padding: 120px var(--gutter) ;
	}

	.pagefuture::before {
		top: -60px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.pagefuture::after {
		bottom: 0;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.pagefuture-list {
		gap: 6px;
		margin-bottom: 20px;
	}
	
	.pagefuture-list > li {
		max-width: 172px;
		width: 100%;
		border-radius: 10px;
		padding: 0 10px 12px;
	}
	
	.pagefuture-list-title {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 5px 0;
		margin-bottom: 6px;
		min-height: 46px;
		font-size: 12px;
		line-height: calc(18 / 12);
	}

	.pagefuture-list-text b {
		font-size: 34px;
	}
	
	.pagefuture-list-text small {
		font-size: 18px;
	}
	
	.pagefuture-document {
		padding-top: calc(200 / 350 * 100%);
	}

	.pagefuture-document-comingsoon {
		border-radius: 20px;
		font-size: 15px;
	}


	/* company ---------------------------------------*/
	.company {
		padding-bottom: 22px;
	}

	.company::after {
		height: 22px;
	}

	.companysection-text {
		font-size: 12px;
		line-height: 1.667;
		letter-spacing: 0.1em;
	}


	/* companykv ---------------------------------------*/
	.companykv { 
		background: url('../img/company/kv_sp.jpg') no-repeat center center / cover;
		padding: 28.5vw 15px 9vw;
	}


	/* companyprofile ---------------------------------------*/
	.companyprofile {
		padding: 120px var(--gutter) 122px;
	}

	.companyprofile::before {
		left: 0;
		width: 178px;
		height: 224px;
	}

	.companyprofile::after {
		bottom: -60px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.companyprofile-table {
		margin-top: 20px;
	}

	.companyprofile-table dt {
		width: 92px;
		font-size: 12px;
		line-height: 1.55;
		padding: 14px 12px;
	}

	.companyprofile-table dt small {
		font-size: 12px;
	}

	.companyprofile-table dd {
		font-size: 12px;
		line-height: 1.55;
		padding: 14px 12px;
	}

	.companyprofile-table dd div + div {
		margin-top: 9px;
	}

	.companyprofile-table-row:nth-of-type(2) dd div + div {
		margin-top: 8px;
	}

	.companyprofile-table-row:nth-of-type(5) dd {
		align-self: center;
	}

	.companyprofile-table dd small {
		font-size: 9px;
	}


	/* companyboardmember ---------------------------------------*/
	.companyboardmember {
		padding: 80px var(--gutter) 83px;
	}

	.companyboardmember-list {
		flex-direction: column;
		gap: 20px;
		margin-top: 28px;
	}

	.companyboardmember-list > li {
		width: 100%;
		border-radius: 16px;
	}

	.companyboardmember-photo {
	}

	.companyboardmember-info {
		padding: 21px 20px;
	}

	.companyboardmember-role {
		font-size: 12px;
		line-height: 2;
		margin-bottom: 1px;
	}

	.companyboardmember-name {
		font-size: 22px;
		line-height: 1.273;
		margin-bottom: 1px;
	}

	.companyboardmember-name-en {
		font-size: 10px;
		letter-spacing: 0.05em;
		margin-bottom: 13px;
	}

	.companyboardmember-text {
		font-size: 11px;
		line-height: 1.634;
	}


	/* companyawards ---------------------------------------*/
	.companyawards {
		padding: 120px var(--gutter) 120px;
	}

	.companyawards::before {
		top: -90px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.companyawards::after {
		bottom: -80px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.companyawards-list {
		gap: 6px;
		margin-top: 28px;
	}

	.companyawards-list > li {
		width: calc((100% - 6px) / 2);
	}

	.companyawards-item {
		/* flex-direction: column;
		align-items: flex-start;
		gap: 12px; */
	}

	.companyawards-item-image {
		/* width: 60px; */
		height: 100px;
		border-radius: 10px 10px 0 0;
	}

	.companyawards-item-image img {
		height: 70px;
		width: auto;
	}

	.companyawards-list > li:nth-child(10) .companyawards-item-image img {
		height: 53px;
	}

	.companyawards-list > li:nth-child(11) .companyawards-item-image img {
		height: 45px;
	}

	.companyawards-item-text {
		border-radius: 0 0 10px 10px;
	}

	.companyawards-item-name {
		font-size: 11px;
		line-height: 1.4545;
		min-height: unset;
		padding: 9px 0 10px;
	}

	.companyawards-item-name-small {
		font-size: 11px;
	}

	.companyawards-item-sub {
		font-size: 8px;
		line-height: 2.5;
		padding: 10px 0 10px;
	}

	.companyawards-noticelist {
		display: none;
	}


	/* companymedia ---------------------------------------*/
	.companymedia {
		padding: 80px var(--gutter) 58px;
	}

	.companymedia.pagesection {
		background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(68 / 390 * 100vw), var(--color-primary) calc(68 / 390 * 100vw), var(--color-primary) 100%);
	}

	.companymedia-list {
		gap: 6px;
		margin-top: 30px;
	}

	.companymedia-list > li {
		width: calc((100% - 6px) / 2);
	}

	.companymedia-item {
		border-radius: 8px;
	}

	.companymedia-item-text {
		padding: 10px 6px 13px;
		min-height: 70px;
	}

	.companymedia-item-name {
		font-size: 11px;
	}

	.companymedia-item-sub {
		font-size: 10px;
	}


	/* memberkv ---------------------------------------*/
	.memberkv { background: url('../img/member/kv_sp.jpg') no-repeat center center / cover; }


	/* membermidcareer ---------------------------------------*/
	.membermidcareer {
		padding: 120px var(--gutter);
	}

	.membermidcareer::before {
		left: 0;
		width: 178px;
		height: 224px;
	}

	.membermidcareer::after {
		bottom: -60px;
		right: 0;
		width: 152px;
		height: 195px;
	}
	
	.membermidcareer .section-text,
	.membernewgraduate .section-text,
	.memberentrylevel .section-text {
    margin-bottom: 20px;
}

	.membermidcareer-banner {
		margin: 20px 0;
		border-radius: 12px;
	}

	.membermidcareer-slider-item {
		border-radius: 10px;
	}

	.membermidcareer-slider-item-info {
		padding: 10px 16px 14px;
	}

	.membermidcareer-slider-item-cat {
		font-size: 11px;
	}

	.membermidcareer-slider-item-text {
		font-size: 13px;
		line-height: 1.5;
	}

	.membermidcareer-btn{
		margin-top: 40px;
	}


	/* membernewgraduate ---------------------------------------*/
	.membernewgraduate {
		padding: 80px var(--gutter);
	}

	.membernewgraduate-banner {
		margin: 20px auto;
		border-radius: 12px;
	}

	.membernewgraduate-slider-item {
		border-radius: 10px;
	}

	.membernewgraduate-slider-item-info {
		padding: 12px 16px 16px;
	}

	.membernewgraduate-slider-item-cat {
		font-size: 11px;
	}

	.membernewgraduate-slider-item-text {
		font-size: 13px;
	}

	.membernewgraduate-btn {
		margin-top: 40px;
	}


	/* memberentrylevel ---------------------------------------*/
	.memberentrylevel {
		padding: 120px var(--gutter);
	}

	.memberentrylevel::before {
		top: -60px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.memberentrylevel::after {
		bottom: -60px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.memberentrylevel-banner {
		margin: 20px auto;
		border-radius: 12px;
	}

	.memberentrylevel-slider-item {
		border-radius: 10px;
	}

	.memberentrylevel-btn {
		margin-top: 40px;
	}

}


/* culturekv ---------------------------------------*/
.culturekv {
	padding: 146px var(--gutter) 70px;
	background: url('../img/culture/kv.jpg') no-repeat center center / cover;
}


/* cultureceo ---------------------------------------*/
.cultureceo {
	position: relative;
	z-index: 2;
	padding: 154px var(--gutter) 170px;
}

.cultureceo.pagesection {
	background: linear-gradient(to bottom,var(--color-primary) 0%, var(--color-primary) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) calc(100% - calc(198 / 1440 * 100vw)), rgba(255,255,255,0) 100%);
}

.cultureceo-inner {
	position: relative;
}

.cultureceo-top {
	position: relative;
	padding-left: calc(500 / 1240 * 100%);
	margin: calc(140 / 1440 * 100vw) auto calc(150 / 1440 * 100vw);
}

.cultureceo-top-image {
	position: absolute;
	left: calc(50% - 50vw);
	top: 49%;
	z-index: -1;
	transform: translateY(-50%);
	width: min(calc(702 / 1440 * 100vw), 800px);
	border-radius: 0 60px 60px 0;
	overflow: hidden;
}

.cultureceo-top-image img {
	width: 100%;
	display: block;
}

.cultureceo-catchcopy-strong {
	max-width: 525px;
	width: 100%;
	margin-bottom: 18px;
}

.cultureceo-catchcopy-strong img {
	width: 100%;
}

.cultureceo-catchcopy {
	font-size: 38px;
	font-weight: 900;
	line-height: calc(66 / 46);
	letter-spacing: 0.05em;
	margin-bottom: 46px;
}

.cultureceo-prof {
	background: #fff;
	border-radius: 30px;
	padding: 38px 44px 32px;
}

.cultureceo-prof-role {
	font-size: 16px;
	font-weight: 700;
	line-height: calc(28 / 16);
	letter-spacing: 0.03em;
	margin-bottom: 4px;
}

.cultureceo-prof-name {
	font-size: 36px;
	font-weight: 900;
	line-height: 1;
	color: var(--color-primary);
	margin-bottom: 4px;
}

.cultureceo-prof-name-en {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: calc(28 / 16);
	color: #0d79cd;
	margin-bottom: 16px;
	margin-left: 6px;
}

.cultureceo-prof-text {
	margin-top: 20px;
	font-size: 14px;
	font-weight: 500;
	line-height: calc(24 / 14);
	letter-spacing: 0.08em;
}

.cultureceo-bottom {

}

.cultureceo-bottom-block {
	display: flex;
	align-items: center;
	gap: calc(30 / 1240 * 100%);
}

.cultureceo-bottom-block:nth-of-type(odd) {
	flex-direction: row-reverse;
}

.cultureceo-bottom-block + .cultureceo-bottom-block {
	margin-top: 80px;
}

.cultureceo-message {
	flex: 1;
	margin-top: 30px;
}

.cultureceo-message-title {
	font-size: 36px;
	font-weight: 900;
	line-height: calc(48 / 36);
	letter-spacing: 0.05em;
	margin-bottom: 24px;
}

.cultureceo-message-title span {
	display: inline-block;
}

.cultureceo-message-text {
	font-size: 18px;
	font-weight: 500;
	line-height: calc(32 / 18);
	letter-spacing: 0.05em;
}

.cultureceo-message-text span {
	display: inline-block;
}

.cultureceo-bottom-image {
	width: calc(600 / 1240 * 100%);
	border-radius: 60px;
	overflow: hidden;
}

.cultureceo-bottom-image img {
	width: 100%;
	display: block;
}

/* cultureculture ---------------------------------------*/
.cultureculture {
	position: relative;
	z-index: 1;
	padding: 160px var(--gutter);
}

.cultureculture::before,
.cultureculture::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.cultureculture::before {
	top: -180px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.cultureculture::after {
	bottom: -180px;
	right: -40px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.cultureculture-card {
	margin-top: 50px;
	border-radius: 40px;
	overflow: hidden;
}

.cultureculture-card img {
	width: 100%;
	display: block;
}

.cultureculture-btn {
	margin-top: 40px;
	text-align: center;
}

/* culturephilosophy ---------------------------------------*/
.culturephilosophy {
	position: relative;
	z-index: 2;
	padding: 150px var(--gutter) 164px;
}

.culturephilosophy-image {
	margin-top: 50px;
	border-radius: 40px;
	overflow: hidden;
}

.culturephilosophy-image img {
	width: 100%;
	display: block;
}

/* culturewelfare ---------------------------------------*/
.culturewelfare {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.culturewelfare::before,
.culturewelfare::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.culturewelfare::before {
	top: -290px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.culturewelfare::after {
	bottom: -70px;
	right: -30px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.culturewelfare-list {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 50px;
}

.culturewelfare-item {
	min-width: 230px;
	width: calc((100% - 48px) / 4);
	background: #fff;
	border: 1px solid #FEDEDE;
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.culturewelfare-item-image img {
	width: 100%;
	display: block;
}

.culturewelfare-item-body {
	padding: 20px 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.culturewelfare-item-image + .culturewelfare-item-body {
	justify-content: flex-start;
}

.culturewelfare-item-title {
	font-size: 18px;
	font-weight: 900;
	line-height: calc(26 / 18);
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-primary);
	padding-bottom: 12px;
	margin: 0 -10px;
}

.culturewelfare-item-text {
	padding-top: 12px;
	font-size: 13px;
	font-weight: 500;
	line-height: calc(22 / 13);
	letter-spacing: 0.08em;
	border-top: 1px solid var(--color-primary);
}

/* culturenumbers ---------------------------------------*/
.culturenumbers {
	position: relative;
	z-index: 2;
	padding: 154px var(--gutter) 124px;
}

.culturenumbers-graphs {
	display: flex;
	gap: 20px;
	margin-bottom: 20px;
	margin-top: 50px;
}

.culturenumbers-graphs img {
	width: calc((100% - 20px) / 2);
	border-radius: 20px;
	display: block;
}

.culturenumbers-stats {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 40px;
}

.culturenumbers-stat {
	position: relative;
	flex: 1;
	min-width: 285px;
	max-width: 295px;
	background: #fff;
	border-radius: 20px;
	padding: 24px 10px 16px;
}

.culturenumbers-future .culturenumbers-stat {
	min-width: 510px;
	max-width: 610px;
}

.culturenumbers-stat-label {
	font-size: 16px;
	font-weight: 900;
	line-height: calc(20 / 16);
	text-align: center;
	color: var(--color-primary);
	letter-spacing: 0.05em;
	margin: 0 10px 18px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(235,72,39,0.2);
}

.culturenumbers-stat-num {
	font-size: 32px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	color: var(--color-primary);
}

.culturenumbers-stat-num strong {
	font-size: 70px;
	font-weight: 700;
}

.culturenumbers-stat-num-line {
	margin: 0 0 0 8px;
	font-size: 70px;
	font-weight: 100;
}

.culturenumbers-stat-num b {
	font-size: 53px;
	font-weight: 700;
}

.culturenumbers-stat-num-small {
	font-size: 27px;
	font-weight: 900;
}

.culturenumbers-stat-num small {
	font-size: 14px;
	font-weight: 900;
}

.culturenumbers-stat-arrow {
	position: absolute;
	bottom: 4px;
	right: 28px;
	width: calc(87 / 295 * 100%);
}

.culturenumbers-future-title {
	font-size: 36px;
	font-weight: 900;
	line-height: calc(48 / 36);
	text-align: center;
	margin-bottom: 26px;
}

.culturenumbers-future-title b {
	font-size: 39px;
	font-weight: 900;
}


/* cultureevents ---------------------------------------*/
.cultureevents {
	position: relative;
	z-index: 1;
	padding: 156px var(--gutter);
}

.cultureevents::before,
.cultureevents::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.cultureevents::before {
	top: -390px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.cultureevents::after {
	bottom: 30px;
	right: -40px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.cultureevents-list {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 50px;
}

.cultureevents-item {
	min-width: 230px;
	width: calc((100% - 48px) / 4);
	background: #fff;
	border: 1px solid var(--color-primary);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.cultureevents-item-image img {
	width: 100%;
	display: block;
	aspect-ratio: 298 / 180;
	object-fit: cover;
}

.cultureevents-item-body {
	padding: 20px 20px 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.cultureevents-item-title {
	font-size: 18px;
	font-weight: 900;
	line-height: calc(26 / 18);
	color: var(--color-primary);
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-primary);
	margin-bottom: 10px;
	text-align: center;
	letter-spacing: 0.05em;
}

.cultureevents-item-text {
	font-size: 14px;
	font-weight: 500;
	line-height: calc(24 / 14);
	letter-spacing: 0.08em;
}

/* culturefellows ---------------------------------------*/
.culturefellows {
	position: relative;
	z-index: 2;
	padding: 156px var(--gutter) 166px;
}

.culturefellows-content {
	overflow: hidden;
  height: min(calc(496 / 1280 * 100vw), 496px);
  transition: height 0.4s ease;
}

.culturefellows-content.is-open {
  height: auto;
}

.culturefellows-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 32px 20px;
}

.culturefellows-photo {
	width: calc((100% - 80px) / 5);
	background: #fff;
	border-radius: 20px;
	box-shadow: 0px 5px 5px rgba(0,0,0,0.1);
	overflow: hidden;
	cursor: pointer;
}

.culturefellows-photo img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}

.culturefellows-photo:hover img {
	transform: scale(1.05);
}

.culturefellows-btn-wrap {
	margin-top: 60px;
	text-align: center;
}


/* cultureofficetour ---------------------------------------*/
.cultureofficetour {
	position: relative;
	z-index: 1;
	padding: 150px var(--gutter) 160px;
}

.cultureofficetour::before,
.cultureofficetour::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.cultureofficetour::before {
	top: -390px;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.cultureofficetour::after {
	bottom: 30px;
	right: -40px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.cultureofficetour-embed {
	border-radius: 20px;
	overflow: hidden;
}

.cultureofficetour-embed iframe {
	width: 100%;
	height: 576px;
	border: none;
	display: block;
}


/* culturegallery ---------------------------------------*/
.culturegallery {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 164px;
}

.culturegallery.pagesection {
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) calc(198 / 1440 * 100vw), var(--color-primary) calc(198 / 1440 * 100vw), var(--color-primary) 100%);
}

.culturegallery-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 32px 20px;
	margin-top: 40px;
}

.culturegallery-photo {
	width: calc((100% - 80px) / 5);
	background: #fff;
	border-radius: 20px;
	box-shadow: 0px 5px 5px rgba(0,0,0,0.1);
	overflow: hidden;
	cursor: pointer;
}

.culturegallery-photo img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}

.culturegallery-photo:hover img {
	transform: scale(1.05);
}

/* large pc ---------------------------------------*/
@media screen and (min-width: 1921px){
	.cultureceo-top-image {
    width: 900px;
	}
}

/* small pc ---------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 1200px){
	.cultureceo-top-image {
    top: -30px;
    transform: unset;
	}
}


/* small pc ---------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 999px){
	/* cultureceo */
	.cultureceo-top {
		padding-left: 0;
	}

	.cultureceo-catchcopy-strong {
		max-width: 420px;
		margin-left: calc(500 / 1240 * 100%);
	}

	.cultureceo-catchcopy {
		padding-left: calc(500 / 1240 * 100%);
	}
	
	.cultureceo-prof {
		margin-left: 0;
	}

	.cultureceo-bottom-block {
		display: block;
	}

	.cultureceo-bottom-block:nth-of-type(odd) .cultureceo-bottom-image {
		float: right;
		margin: 0 0 20px 30px;
	}

	.cultureceo-bottom-block:nth-of-type(even) .cultureceo-bottom-image {
		float: left;
		margin: 0 30px 20px 0;
	}
}



/* sp only (culture) ---------------------------------------*/
@media screen and (max-width: 767px){

	/* culturekv ---------------------------------------*/
	.culturekv { 
    padding: 106px var(--gutter) 42px;
		background: url('../img/culture/kv_sp.jpg') no-repeat center center / cover;
	}

	.culture .section-text {
		margin-bottom: 20px;
	}

	/* cultureceo ---------------------------------------*/
	.cultureceo {
		padding: 80px var(--gutter) calc(80 / 390 * 100vw);
	}

	.cultureceo.pagesection {
		background: linear-gradient(to bottom, var(--color-primary) 0%, var(--color-primary) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) calc(100% - calc(68 / 390 * 100vw)), rgba(255,255,255,0) 100%);
}

	.cultureceo-top {
		padding-left: 0;
		padding-top: 0;
		margin: 30px auto 40px;
	}

	.cultureceo-top-image {
		top: 280px;
		left: -20px;
		transform: unset;
		width: calc(350 / 390 * 100vw);
		border-radius: 0 60px 60px 0;
	}

	.cultureceo-catchcopy-strong {
		max-width: 305px;
		margin: 0 auto 20px;
	}

	.cultureceo-catchcopy {
		font-size: 26px;
		text-align: center;
		line-height: calc(34 / 26);
		margin-bottom: calc(324 / 390 * 100vw);
	}

	.cultureceo-prof {
		padding: 24px 20px;
		margin: 0 auto;
		border-radius: 20px;
	}

	.cultureceo-prof-role {
    font-size: 13px;
		line-height: calc(28 / 13);
	}

	.cultureceo-prof-name {
		font-size: 26px;
	}

	.cultureceo-prof-name-en {
		margin-left: 3px;
    font-size: 14px;
	}

	.cultureceo-prof-text {
    margin-top: 6px;
    font-size: 11px;
		line-height: calc(18 / 11);
	}

	.cultureceo-bottom-block {
		display: block;
	}
	
	.cultureceo-bottom-block + .cultureceo-bottom-block {
		margin-top: 40px;
	}
	
	.cultureceo-message {
		width: 100%;
		margin-top: 0;
	}

	.cultureceo-message-title {
		font-size: 26px;
		text-align: center;
		line-height: calc(34 / 26);
		margin-bottom: 20px;
	}

	.cultureceo-bottom-image {
		margin-bottom: 20px;
		width: 100%;
		border-radius: 20px;
	}

	.cultureceo-message-text {
		font-size: 13px;
		font-weight: 500;
		line-height: calc(24 / 13);
	}


	/* cultureculture ---------------------------------------*/
	.cultureculture {
		padding: 120px var(--gutter);
	}

	.cultureculture::before {
		top: -44px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.cultureculture::after {
		bottom: -66px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.cultureculture-card {
		border-radius: 20px;
		margin-top: 20px;
	}
	

	/* culturephilosophy ---------------------------------------*/
	.culturephilosophy {
		padding: 80px var(--gutter) 96px;
	}

	.culturephilosophy .section-title-en {
		font-size: 36px;
		letter-spacing: -0.02em;
	}

	.culturephilosophy-image {
    margin-top: 20px;
    border-radius: 20px;
	}

	/* culturewelfare ---------------------------------------*/
	.culturewelfare {
		padding: 120px var(--gutter);
	}

	.culturewelfare::before {
		top: -56px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.culturewelfare::after {
		bottom: -66px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.culturewelfare-item-body {
    padding: 16px 20px 22px;
	}

	.culturewelfare-list {
		display: block;
		margin-top: 20px;
	}

	.culturewelfare-item {
		min-width: unset;
		width: 100%;
	}

	.culturewelfare-item + .culturewelfare-item {
		margin-top: 8px;
	}

	.culturewelfare-item-title {
		font-size: 15px;
		padding-bottom: 9px;
		margin-bottom: 8px;
	}

	.culturewelfare-item-text {
    font-size: 12px;
    line-height: calc(20 / 12);
	}

	/* culturenumbers ---------------------------------------*/
	.culturenumbers {
		padding: 80px var(--gutter) 64px;
	}

	.culturenumbers-graphs {
		flex-direction: column;
		gap: 10px;
		margin-top: 20px;
		margin-bottom: 10px;
	}

	.culturenumbers-graphs img {
		width: 100%;
		border-radius: 10px;
	}

	.culturenumbers-stats {
		gap: 6px;
		margin-bottom: 20px;
	}

	.culturenumbers-stat {
		width: calc((100% - 12px) / 2);
		flex: none;
		padding: 10px 10px;
		min-width: unset;
    max-width: unset;
		border-radius: 10px;
	}

	.culturenumbers-future .culturenumbers-stat {
		min-width: unset;
		width: 100%;
	}

	.culturenumbers-stat-label {
		display: flex;
		align-items: center;
		justify-content: center;
		padding-bottom: 0;
		margin: 0 0 8px;
		height: 38px;
    font-size: 12px;
		line-height: calc(18 / 12);
	}

	.culturenumbers-stat-num {
		font-size: 18px;
	}

	.culturenumbers-stat-num strong {
		font-size: 34px;
	}

	.culturenumbers-stat-num-line {
		margin: 0 0 0 4px;
		font-size: 34px;
	}
	
	.culturenumbers-stat-num b {
		font-size: 30px;
	}
	
	.culturenumbers-stat-num-small {
		font-size: 14px;
	}
	
	.culturenumbers-stat-num small {
		font-size: 10px;
	}

	.culturenumbers-stat-arrow {
		bottom: 6px;
		right: 9px;
		width: 40px;
	}

	.culturenumbers-future-title {
		font-size: 24px;
		margin-bottom: 10px;
	}

	.culturenumbers-future-title b {
		font-size: 39px;
	}


	/* cultureevents ---------------------------------------*/
	.cultureevents {
		padding: 120px var(--gutter);
	}

	.cultureevents::before {
		top: -54px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.cultureevents::after {
		bottom: -70px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.cultureevents-item-body {
    padding: 20px 20px 22px;
	}

	.cultureevents-list {
		display: block;
		margin-top: 20px;
	}

	.cultureevents-item {
		min-width: unset;
		width: 100%;
	}

	.cultureevents-item + .cultureevents-item {
		margin-top: 8px;
	}

	.cultureevents-item-title {
		font-size: 15px;
		padding-bottom: 8px;
		margin-bottom: 7px;
		
	}

	.cultureevents-item-text {
		font-size: 12px;
		line-height: calc(20 / 12);
	}

	/* culturefellows ---------------------------------------*/
	.culturefellows {
		padding: 80px var(--gutter) 94px;
	}

	.culturefellows-content {
		height: calc(350 / 390 * 100vw);
	}

	.culturefellows-grid {
		gap: 4px;
	}

	.culturefellows-photo {
		width: calc((100% - 8px) / 3);
		border-radius: 10px;
	}

	.culturefellows-btn-wrap {
		margin-top: 30px;
	}

	/* cultureofficetour ---------------------------------------*/
	.cultureofficetour {
		padding: 120px var(--gutter);
	}

	.cultureofficetour::before {
		top: -50px;
		left: 0;
		width: 178px;
		height: 224px;
	}

	.cultureofficetour::after {
		bottom: -64px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.cultureofficetour-embed {
		border-radius: 0;
	}

	.cultureofficetour-embed iframe {
		height: calc(487 / 390 * 100vw);
	}

	/* culturegallery ---------------------------------------*/
	.culturegallery {
		padding: 80px var(--gutter);
	}

	.culturegallery.pagesection {
		background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(68 / 390 * 100vw), var(--color-primary) calc(68 / 390 * 100vw), var(--color-primary) 100%);
	}

	.culturegallery-grid {
		gap: 4px;
		margin-top: 20px;
	}

	.culturegallery-photo {
		width: calc((100% - 8px) / 3);
		border-radius: 10px;
	}

}


/* businesskv ---------------------------------------*/
.businesskv { 
	padding: 146px var(--gutter) 60px;
	background: url('../img/business/kv.jpg') no-repeat center center / cover;
}


/* businesscreationmarketing ---------------------------------------*/
.businesscreationmarketing {
	position: relative;
	z-index: 1;
	padding: 154px var(--gutter) 160px;
}

.businesscreationmarketing .section-title-en {
	line-height: 1;
}

.businesscreationmarketing::before,
.businesscreationmarketing::after {
	position: absolute;
	z-index: -1;
	content: '';
}

.businesscreationmarketing::before {
	top: 0;
	left: -120px;
	width: 490px;
	height: 614px;
	background: url('../img/common/bg_deco_01.png') no-repeat center center / contain;
}

.businesscreationmarketing::after {
	bottom: -90px;
	right: -40px;
	width: 413px;
	height: 529px;
	background: url('../img/common/bg_deco_02.png') no-repeat center center / contain;
}

.businesscreationmarketing-diagram {
	max-width: 1080px;
	margin: 0 auto 40px;
}

.businesscreationmarketing-diagram img {
	width: 100%;
}

.businesscreationmarketing-list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
}

.businesscreationmarketing-list > li {
	display: flex;
	flex-direction: column;
	padding: 28px 20px 22px;
	width: calc((100% - 40px) / 3);
	min-width: 370px;
	background: #fff;
	border: 1px solid rgba(235,72,39,0.2);
	border-radius: 20px;
}

.businesscreationmarketing-list-title {
	font-size: 20px;
	font-weight: 900;
	line-height: calc(26 / 20);
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-primary);
	margin-bottom: 16px;
	padding-bottom: 17px;
	border-bottom: 1px solid rgba(235,72,39,0.2);
}

.businesscreationmarketing-list-lead {
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	line-height: calc(24 / 15);
	letter-spacing: 0.05em;
	color: var(--color-primary);
}

.businesscreationmarketing-list-text {
	flex-grow: 1;
	font-size: 14px;
	font-weight: 500;
	line-height: calc(24 / 14);
	letter-spacing: 0.08em;
}

.businesscreationmarketing-btn {
	margin-top: 40px;
	text-align: center;
}


/* businessprofitablemarketing ---------------------------------------*/
.businessprofitablemarketing {
	position: relative;
	z-index: 2;
	padding: 154px var(--gutter) 164px;
}

.businessprofitablemarketing.pagesection {
	background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(198 / 1440 * 100vw), var(--color-primary) calc(198 / 1440 * 100vw), var(--color-primary) 100%);
}

.businessprofitablemarketing-video {
	position: relative;
	margin: 0 auto 60px;
	max-width: 1080px;
	width: 100%;
}

.businessprofitablemarketing-video video {
	display: block;
	width: 100%;
	height: auto;
}

.businessprofitablemarketing-video-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 90px;
  height: 90px;
}
.businessprofitablemarketing-video-btn img {
  width: 100%;
  height: auto;
}
/* 再生中は非表示 */
.businessprofitablemarketing-video.is-playing .businessprofitablemarketing-video-btn {
  display: none;
}
.businessprofitablemarketing-video video::-webkit-media-controls {
  display: none;
}
/* 再生中はcontrols表示 */
.businessprofitablemarketing-video.is-playing video::-webkit-media-controls {
  display: flex;
}

.businessprofitablemarketing-whatis {
	
}

.businessprofitablemarketing-whatis-message-en {
	margin-bottom: 24px;
	font-size: 56px;
	font-weight: 700;
	line-height: 1.1;
}

.businessprofitablemarketing-whatis-message-jp {
	margin-bottom: 50px;
	font-size: 32px;
	font-weight: 900;
	line-height: calc(46 / 32);
	letter-spacing: 0.05em;
}

.businessprofitablemarketing-whatis-list {
	display: flex;
	gap: 20px;
	counter-reset: listnum;
}

.businessprofitablemarketing-whatis-list > li {
	display: flex;
	flex-direction: column;
	position: relative;
	width: calc((100% - 40px) / 3);
	background: #fff;
	border-radius: 20px;
	padding: 72px 25px 25px;
}

.businessprofitablemarketing-whatis-list > li::before {
	content: "";
	display: flex;
	justify-content: center;
	align-items: center;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	position: absolute;
	top: -21px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	font-family: 'outfit', sans-serif;
	text-align: center;
	letter-spacing: 0.05em;
	color: #fff;
	background: var(--color-primary);
	border: 2px solid #fff;
	counter-increment: listnum;
	content: counter(listnum, decimal-leading-zero);
}

.businessprofitablemarketing-whatis-list-image {
	margin: 0 auto 18px;
	max-width: 350px;
	width: 100%;
}

.businessprofitablemarketing-whatis-list-image img {
	width: 100%;
}

.businessprofitablemarketing-whatis-list-title {
	font-size: 20px;
	font-weight: 900;
	line-height: calc(26 / 20);
	letter-spacing: 0.05em;
	text-align: center;
	color: var(--color-primary);
	margin-bottom: 15px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--color-primary);
}

.businessprofitablemarketing-whatis-list-text {
	flex-grow: 1;
	font-size: 14px;
	font-weight: 500;
	line-height: calc(24 / 14);
	letter-spacing: 0.05em;
}


/* sp only (business) ---------------------------------------*/
@media screen and (max-width: 767px){

	/* businesskv ---------------------------------------*/
	.businesskv {
		padding: 112px var(--gutter) 34px;
		background: url('../img/business/kv_sp.jpg') no-repeat center center / cover;
	}


	/* businesscreationmarketing ---------------------------------------*/
	.businesscreationmarketing {
		padding: 120px var(--gutter) 100px;
	}

	.businesscreationmarketing::before {
		left: 0;
		width: 178px;
		height: 224px;
	}

	.businesscreationmarketing::after {
		bottom: -86px;
		right: 0;
		width: 152px;
		height: 195px;
	}

	.businesscreationmarketing-list {
		flex-direction: column;
		gap: 0;
		margin-top: 40px;
	}

	.businesscreationmarketing-list > li {
		width: 100%;
		min-width: unset;
		padding: 16px 16px;
	}

	.businesscreationmarketing-list > li + li {
		margin-top: 6px;
	}

	.businesscreationmarketing-list-title {
		font-size: 15px;
		padding-bottom: 14px;
		margin-bottom: 8px;
	}

	.businesscreationmarketing-list-lead {
		margin-bottom: 4px;
		font-size: 13px;
		line-height: calc(26 / 13);
	}

	.businesscreationmarketing-list-text {
		font-size: 12px;
		line-height: calc(20 / 12);
	}


	/* businessprofitablemarketing ---------------------------------------*/
	.businessprofitablemarketing {
		padding: 82px var(--gutter) 54px;
	}

	.businessprofitablemarketing.pagesection {
		background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0) calc(68 / 390 * 100vw), var(--color-primary) calc(68 / 390 * 100vw), var(--color-primary) 100%);
	}

	.businessprofitablemarketing-video {
    margin: 0 auto 30px;
	}

	.businessprofitablemarketing-video-btn {
		width: 30px;
		height: 30px;
	}

	.businessprofitablemarketing-whatis-message-en {
		margin-bottom: 24px;
		font-size: 26px;
	}
	
	.businessprofitablemarketing-whatis-message-jp {
		margin-bottom: 46px;
		font-size: 19px;
		line-height: calc(26 / 19);
	}

	.businessprofitablemarketing-whatis-list {
		flex-direction: column;
		gap: 26px;
	}

	.businessprofitablemarketing-whatis-list > li {
		width: 100%;
		padding: 42px 20px 18px;
	}

.businessprofitablemarketing-whatis-list > li::before {
	width: 48px;
	height: 48px;
	top: -16px;
	font-size: 22px;
}

	.businessprofitablemarketing-whatis-list-image {
		margin: 0 auto 14px;
		max-width: 280px;
	}

	.businessprofitablemarketing-whatis-list-title {
		font-size: 16px;
		margin-bottom: 8px;
	}

	.businessprofitablemarketing-whatis-list-text {
		font-size: 12px;
		line-height: calc(20 / 12);
	}

}
