
* {
	box-sizing: border-box;
}

html, body {
	width: 100%;
	height: 100%;
	overflow: auto;
	margin: 0;
	padding: 0;
	
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.page {
	overflow-x: hidden;
	overflow-y: auto;
	height: auto;
}
/*
.page {
	overflow-x: hidden;
	overflow-y: auto;
	height: 100%;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.page::-webkit-scrollbar {
	display: none;
}
*/

.slide {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	letter-spacing: 0.2em;
	color: white;
	background-size: cover;
	background-position: center;
}
section {
	width: 100%;
	position: relative;
}










.top-section{
	position: relative;
	height: 488px;
	overflow: hidden;               /* はみ出し防止 */
}

.top-section .top-bg{
	position: absolute;
	width: 110vw;
	height: auto;
	object-fit: cover;
	z-index: 0;
	max-width: none;
	border: none;
	top: -10%;
	left: -7%;
}

/* グラデーションは上に重ねる */
.top-section::after{
	content:"";
	position:absolute;
	inset:0;
	/*
	background: linear-gradient(270deg,
		rgba(0,0,0,.2) 0.02%,
		rgba(0,0,0,.41) 27.51%,
		rgba(0,0,0,.5) 50.66%,
		#000 94.1%);
	*/
	z-index: 1;
}


.top-section-inner {
	position: relative;
	padding: 166px 118px 134px 118px;
	z-index:2;
}


.top-title {
	color: #fff;
	font-family: Satoshi;
	font-weight: 500;
	font-style: Medium;
	font-size: 80px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;

	margin-bottom: 24px;
}
.top-title-sub {
	color: #fff;
	font-family: Noto Sans JP;
	font-weight: 500;
	font-style: Medium;
	font-size: 18px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;
}


.pankuzu-list {
	display: flex;
	width: 240px;
	margin-bottom: 48px;
}

.pankuzu-unit {
	color: #fff;
	font-family: Noto Sans JP;
	font-weight: 400;
	font-style: Regular;
	font-size: 12px;
	leading-trim: NONE;
	line-height: 150%;
	letter-spacing: 0%;
}

.pankuzu-separator {
	position: relative;
	width: 24px;
	height: 18px;
}
.pankuzu-separator img{	
	margin: 0 auto;
	width: 10px;
	height: 16px;
	display: block;
}

.pc_br {
	display: block;
	display: unset;
}
.sp_br {
	display: none;
}



.vision-section {
	padding: 92px 120px 92px 120px;
}

.vision-section-inner {
}

.vision-title {
	color: #151515;

	font-family: Satoshi;
	font-weight: 500;
	font-style: Medium;
	font-size: 56px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;
	text-align: center;

	margin-bottom: 16px;
}

.vision-title-sub {
	color: #151515;

	font-family: Noto Sans JP;
	font-weight: 700;
	font-style: Bold;
	font-size: 16px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0.1em;
	text-align: center;

	margin-bottom: 40px;
}

.vision-topic {
	color: #005EAD;

	font-family: Noto Sans JP;
	font-weight: 700;
	font-style: Bold;
	font-size: 28px;
	leading-trim: NONE;
	line-height: 160%;
	letter-spacing: 0.1em;
	text-align: center;

	margin-bottom: 40px;
}

.vision-body {
	color: #151515;

	font-family: Noto Sans JP;
	font-weight: 400;
	font-style: Regular;
	font-size: 16px;
	leading-trim: NONE;
	line-height: 250%;
	letter-spacing: 0.1em;
	text-align: center;

	background-color: #F5F5F5;
	padding: 32px 24px;
}

.vision-list {
	display: flex;
	flex-wrap: nowrap;
	gap: 32px;

	overflow-x: auto;
	overflow-y: hidden;

	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;

	cursor: grab;

	width: 100vw;

	/*
	transform: translateX(-24px);
	-webkit-transform: translateX(-24px);
	*/
	/*
	padding-inline: 24px;
	scroll-padding-inline: 24px;
	*/

	touch-action: auto;
	overscroll-behavior: auto;
}



.slider-section {
	position: relative;

	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
	height: 313px;
	overflow: hidden;
}

.slider-section-back {
	position: absolute;
	height: 50%;
	bottom: 0;
	background-color: #D9EEFE;
	width: 100%;
	z-index: 30;
}

.slider-section-inner {
	z-index: 40;
	display: block;
	position: relative;
	height: 304px;
}

.slider-list{
	position: relative; 
	display: flex;
	gap: 32px;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	padding-inline: 24px;
	cursor: grab;

	touch-action: pan-x; 
	scroll-padding-inline: 24px;
}
.slider-list::-webkit-scrollbar{ display: none; }
.slider-list:active{ cursor: grabbing; }

.slider-body{ width: 100%; }   /* 何もしないなら削除してもOK */

.slider-card {
	border-radius: 8px;
	aspect-ratio: 504 / 313;
	width: 504px;
	height: auto;

	flex: 0 0 auto;
	overflow: hidden;
	scroll-snap-align: center;

}

.slider-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	user-select: none;
	-webkit-user-drag: none;
}

.slider-list{ scrollbar-width: none; }
.slider-list::-webkit-scrollbar{ display: none; }





.philosophy-section {
	background-color: #F3F8FC;
	padding: 80px 120px 80px 120px;
}

.philosophy-section-inner {
}

.philosophy-content {
	display: flex;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.philosophy-text {
	width: 100%;
}

.philosophy-title {
	color: #005EAD;
	font-family: Satoshi;
	font-weight: 500;
	font-style: Medium;
	font-size: 56px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;
	margin-top: 0;
	margin-bottom: 16px;
}

.philosophy-title-sub {
	color: #005EAD;
	font-family: Noto Sans JP;
	font-weight: 700;
	font-style: Bold;
	font-size: 16px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0.1em;
	margin-bottom: 32px;
}

.philosophy-body {
	display: flex;
	gap: 64px;
	width: 100%;
}

.philosophy-body-image{
	aspect-ratio: 450/304;
	width: 450px;
	flex: 450px 0 0;
}
.philosophy-body-image img{
	width: 450px;
	object-fit: cover;
	border-radius: 8px;
}

.philosophy-body-text{
	width: 100%;
}
.philosophy-body-text-title-sub {
	font-family: Satoshi;
	font-weight: 700;
	font-style: Bold;
	font-size: 18px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;
	margin-bottom: 16px;
	color:#005EAD;
}
.philosophy-body-text-title {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-style: Bold;
  font-size: 20px;
  leading-trim: NONE;
  line-height: 140%;
  letter-spacing: 0.09em;
  color: #151515;
  margin-bottom: 56px;
  max-width: 614px;
  width: 100%;
}
.philosophy-body-text-title-sub2 {
  font-family: Satoshi;
  font-weight: 700;
  font-style: Bold;
  font-size: 18px;
  leading-trim: NONE;
  line-height: 100%;
  letter-spacing: 0%;
  margin-bottom: 8px;

color: #005EAD;

}
.philosophy-body-text-area {
  border-bottom: none;
  max-width: 614px;
  width: 100%;

}
.philosophy-body-text-row {
  display: flex;
  border-bottom: 1px solid #D7D7D7;
  padding: 24px 8px;
}
.philosophy-body-text-row:last-child {
  border-bottom: none;
}
.philosophy-body-row-label {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-style: Bold;
  font-size: 20px;
  leading-trim: NONE;
  line-height: 140%;
  letter-spacing: 10%;
  color: #151515;
  flex: 96px 0 0;
}
.philosophy-body-row-text {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-style: Regular;
  font-size: 16px;
  leading-trim: NONE;
  line-height: 180%;
  letter-spacing: 4%;
  color: #151515;
}





.philosophy-image {
	flex:1 1 auto;
	min-width:0;   
	aspect-ratio: 571/571;
	display: flex;
	align-items: center;
	justify-content: center;
}

.philosophy-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	max-width: 571px;
}



.company-section {
	padding: 80px 120px;
}

.company-section-inner {
	margin: 0 auto;
	max-width: 1200px;
}

.company-head {
	margin-bottom: 56px;
}

.company-title {
	color: #151515;

	font-family: Satoshi;
	font-weight: 500;
	font-style: Medium;
	font-size: 56px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0%;

	margin-bottom: 16px;
}

.company-title-sub {
	color: #151515;

	font-family: Noto Sans JP;
	font-weight: 700;
	font-style: Bold;
	font-size: 16px;
	leading-trim: NONE;
	line-height: 100%;
	letter-spacing: 0.1em;
}

.company-content {
	display: flex;
	align-items: flex-start;
	gap: 98px;
}

.company-left {
	flex: 0 1 528px;     /* grow:1 shrink:1 basis:528px */
	max-width: 528px;
	min-width: 240px;    /* どこまで縮むかの下限（任意で調整） */
}

.company-right {
	flex: 0 100 520px;   /* shrink を大きく（右が先に縮む） */
	min-width: 260px;    /* ← ボタン幅に合わせた下限 */
	padding-left: 0;
}

@media (min-width: 1400px){
	.company-right{ flex: 1 100 520px; }  /* grow を 1 に */
	.company-left { flex: 0 1 528px; }    /* 左は伸びず最大528pxのまま */
}

.company-image {
	width: 100%;
	max-width: 528px;
	aspect-ratio: 528 / 328;
}

.company-left img {
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}


.company-text {
	color: #151515;

	font-family: Noto Sans JP;
	font-weight: 400;
	font-style: Regular;
	font-size: 18px;
	leading-trim: NONE;
	line-height: 180%;
	letter-spacing: 0.04em;

	margin-top: 60px;
	margin-bottom: 24px;
}

.company-btn {
}

.btn-solid-blue {
	display: inline-flex;
	gap: 16px;
	min-width: 260px;
	font-family: "Noto Sans JP",system-ui,sans-serif;
	align-items: center;
	justify-content: left;
	height: 56px;
	width: 260px;
	padding: 16px 0 16px 24px;
	padding-left: 24px;
	padding-left: 24px;
	border-radius: 64px;
	border: 1px solid #005EAD;
	background: #005EAD;
	color: #F2F2F2;
	text-decoration: none;
	font-weight: 700;
	font-size: 16px;
	position: relative;
}

.btn-solid-blue{
	width: 260px;
	min-width: 260px;
}


.btn-solid-blue::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background: url(/common/asset/btn-bule_arrow.svg) no-repeat center / contain;
}

.btn-solid-blue-company {
	padding-left: 64px;
}


@media (max-width: 1024px){
	.pc_br {
		display: none;
	}
	.sp_br {
		display: block;
		display: unset;
	}

	.top-section{
		height: 240px;
	}

	.top-section .top-bg {
		object-position: revert;
		width: 206%;
		height: auto;
		top: -18px;
		left: -70%;
	}

	.top-section::after {
		linear-gradient(270deg, rgba(0,0,0,.2) 0.02%, rgba(0,0,0,.41) 27.51%, rgba(0,0,0,.5) 50.66%)
	}

	.pankuzu-list {
		margin-bottom: 32px;
	}

	.top-section-inner {
		padding: 72px 24px 40px 24px;
	}

	.pankuzu-unit {
		color: #fff;
		font-family: Noto Sans JP;
		font-weight: 400;
		font-style: Regular;
		font-size: 12px;
		leading-trim: NONE;
		line-height: 150%;
		letter-spacing: 0%;
	}

	.top-title {
		font-family: Satoshi;
		font-weight: 500;
		font-style: Medium;
		font-size: 48px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;

		margin-bottom: 16px;
	}

	.top-title-sub {
		color: #fff;
		font-family: Noto Sans JP;
		font-weight: 500;
		font-style: Medium;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;
	}

	.vision-section {
		padding: 56px 24px 88px 24px;
	}

	.vision-title {
		color: #151515;
		text-align: center;

		font-family: Satoshi;
		font-weight: 500;
		font-style: Medium;
		font-size: 40px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;

		margin-bottom: 8px;
	}

	.vision-title-sub {
		color: #151515;
		text-align: center;

		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0.1em;

		margin-bottom: 32px;
	}

	.vision-topic {
		color: #005EAD;
		margin-bottom: 24px;
		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 20px;
		leading-trim: NONE;
		line-height: 160%;
		letter-spacing: 0.1em;
		text-align: left;

	}

	.vision-body {
		color: #151515;
		text-align: center;
		font-family: Noto Sans JP;
		font-weight: 400;
		font-style: Regular;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 240%;
		letter-spacing: 0.04em;
		text-align: center;
	}


	.slider-section {
		position: relative;
		width: 100%;
		margin: 0;
		padding: 0;
		position: relative;
		height: 188px;
		overflow: hidden;
	}

	.slider-section-inner {
		z-index: 40;
		display: block;
		position: relative;
		height: 188px;
	}

	.slider-list {
		position: relative;
		display: flex;
		gap: 19px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		padding-inline: 19px;
		cursor: grab;
		touch-action: pan-x;
		scroll-padding-inline: 19px;
	}

	.slider-card {
		border-radius: 5px;
		aspect-ratio: 302 / 187;
		width: 302px;
		height: auto;
		flex: 0 0 auto;
		overflow: hidden;
		scroll-snap-align: center;
	}



	.philosophy-section {
		background-color: #F3F8FC;
		padding: 64px 24px 64px 24px;
	}

	.philosophy-content {
		display: block;
	}

	.philosophy-title {
		color: #005EAD;
		font-family: Satoshi;
		font-weight: 500;
		font-style: Medium;
		font-size: 40px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;
		margin-top: 0;
		margin-bottom: 8px;
	}

	.philosophy-title-sub {
		color: #005EAD;
		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 16px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0.1em;
		margin-bottom: 40px;
	}

	.philosophy-body {
		color: #005EAD;
		font-family: Noto Sans JP;
		font-weight: 400;
		font-style: Regular;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 180%;
		letter-spacing: 0.1em;
		display: block;
	}

	.philosophy-text {
		width: 100%;
		margin-right: 0;
		min-width: 0;
		margin-bottom: 0;
	}


	.philosophy-body-image {
		font-family: Satoshi;
		font-weight: 700;
		font-style: Bold;
		font-size: 16px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;

		aspect-ratio: 342/212;
		width: 100%;
	}
	.philosophy-body-image img {
		width: 100%;
		object-fit: cover;
		border-radius: 4px;
		margin-bottom: 24px;
	}

	.philosophy-image {
		min-width: 0;
		aspect-ratio: 571/571;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.philosophy-body-text {
		width: 100%;
	}

	.philosophy-body-text-title-sub {
		font-family: Satoshi;
		font-weight: 700;
		font-style: Bold;
		font-size: 16px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;
		margin-bottom: 16px;
	}

	.philosophy-body-text-title {
		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 18px;
		leading-trim: NONE;
		line-height: 140%;
		letter-spacing: 10%;
		margin-bottom: 40px;
		max-width: none;
	}

	.philosophy-body-text-title-sub2 {
		font-family: Satoshi;
		font-weight: 700;
		font-style: Bold;
		font-size: 16px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0%;
		margin-bottom: 8px;
	}

	.philosophy-body-text-area {
		border-bottom: none;
		max-width: none;
	}

	.philosophy-body-text-row {
		display: flex;
		border-bottom: 1px solid #D7D7D7;
		padding: 8px 16px;
	}
	.philosophy-body-row-label {
		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 20px;
		leading-trim: NONE;
		line-height: 140%;
		letter-spacing: 10%;
		color: #151515;
		flex: 56px 0 0;
		align-content: center;
	}

	.philosophy-body-row-text {
		font-family: Noto Sans JP;
		font-weight: 400;
		font-style: Regular;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 180%;
		letter-spacing: 4%;
	}



	.company-section {
		padding: 64px 24px 64px 24px;
	}

	.company-head {
		margin-bottom: 40px;
	}

	.company-title {
		color: #151515;

		font-family: Satoshi;
		font-weight: 500;
		font-style: Medium;
		font-size: 40px;
		leading-trim: NONE;
		line-height: 120%;
		letter-spacing: 0%;

		margin-bottom: 8px;
	}

	.company-title-sub {
		color: #151515;
		font-family: Noto Sans JP;
		font-weight: 700;
		font-style: Bold;
		font-size: 16px;
		leading-trim: NONE;
		line-height: 100%;
		letter-spacing: 0.1em;
	}

	.company-content {
		display: block;
	}

	.company-left {
		max-width: 100%;
		min-width: 0;
		margin-bottom: 24px;
	}

	.company-image {
		width: 100%;
		max-width: 100%;
		aspect-ratio: 342 / 212;
	}

	.company-image img {
		width: 100%;
		height: 210px;
		object-fit: cover;
		border-radius: 4px;
		display: block;
	}

	.company-right {
		display: block;
	}

	.company-text {
		color: #151515;

		font-family: Noto Sans JP;
		font-weight: 400;
		font-style: Regular;
		font-size: 14px;
		leading-trim: NONE;
		line-height: 180%;
		letter-spacing: 0.04em;

		margin-top: 0;
		margin-bottom: 40px;
	}

	.company-btn {
		text-align: center;
	}

}

