@charset "utf-8";

.chapter-body {
	display: flex;
	flex-direction: column;
	font-size: 1.6rem;
	padding-top: 60px;
}

.section__p {
	margin-bottom: 2em;
	font-size: 1.4rem;
	line-height: 2.2;
	color: rgba(0,0,0,0.7);
}

@media screen and (min-width: 768px) {
	
	.chapter-body {
		flex-direction: row;
		justify-content: space-between;
	}
	
	.chapter-body > * {
		width: calc(50% - 40px);
	}
}


/* ------------------------------------------------------------------ */


.chapter-body {
	font-size: 1.6rem;
}

/* -------------------------- */

.section-container {
	--gap: 150px;
	display: flex;
	flex-direction: column;
	gap: var(--gap);
	padding-block-end: var(--gap);
	
	& > *:first-child {
		margin-block-start: 0;
	}
	
	& > *:last-child {
		margin-block-end: 0;
	}
}

@media screen and (min-width: 768px) {
	.section-container {
		--gap: 150px;
	}
}

@media screen and (min-width: 1280px) {
	.section-container {
		--gap: 200px;
	}
}

@media screen and (min-width: 1600px) {
	.section-container {
		--gap: 250px;
	}
}

.section {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	
	& > *:first-child {
		margin-block-start: 0;
	}
	
	& > *:last-child {
		margin-block-end: 0;
	}
	
	& > * {
		
	}
}

.section__ttl {
	font-size: clamp(1.25rem, 0.997rem + 1.266vw, 2.5rem);
	font-weight: bold;
	margin-bottom: 2em;
	text-align: center;
	
	&::before {
		width: 150px;
		opacity: 0.7;
	}
}

/* -------------------------- */

.section__subttl {
	margin-top: 0;
	margin-bottom: 2rem;
	font-size: clamp(1.125rem, -1.7727rem + 14.4886vw, 7.5rem);
	line-height: 1.2;
	text-align: center;
	
	& > *:last-child {
		margin-bottom: 0;
	}
}

/* -------------------------- */

.section__subsubttl {
	margin-top: 0;
	margin-bottom: 2rem;
	font-size: 1.6rem;
	line-height: 1.5;
	text-align: center;
	font-weight: 600;
}

@media screen and (min-width: 768px) {
	.section__subsubttl {
		font-size: 1.8rem;
	}
}

@media screen and (min-width: 1440px) {
	.section__subsubttl {
		font-size: 2.0rem;
	}
}

@media screen and (min-width: 1600px) {
	.section__subsubttl {
		font-size: 2.2rem;
	}
}


.section__p {
	font-size: 1.3rem;
	margin-bottom: 2em;
	color: rgba(0,0,0,0.7);
}

@media screen and (min-width: 768px) {
	.section__p {
		font-size: 1.5rem;
	}
}


.section__footer {
	
}


/* ------------------------------------------------------------------ */


.kv {
	width: 100vw;
	margin-left: -25px;
	overflow: hidden;
	aspect-ratio: 2.5 / 1;
	
	& img {
		display: block;
		width: 100%;
		height: auto;
		margin: auto;
		aspect-ratio: 1.85 / 1;
		object-fit: cover;
	}
}

@media screen and (min-width: 768px) {
	.kv {
		width: 100%;
		margin-left: 0;
	}
}


/* ------------------------------------------------------------------ */


.Philosophy {
	
}

.Philosophy__intro {
	
}

.Philosophy__subsection-wrapper {
	display: flex;
	flex-direction: column;
	gap: 1lh;
	width: 100%;
}

.Philosophy__subsection {
	
	& > *:first-child {
		margin-block-start: 0;
	}
	
	& > *:last-child {
		margin-block-end: 0;
	}
	
}

.Philosophy__subsection-ttl {
	margin-bottom: 0.75lh;
	padding-bottom: 0.75lh;
	text-align: center;

	& .en {
		display: block;
		font-size: 1.8rem;
	}

	& .ja {
		display: block;
		font-size: 1.3rem;
		font-weight: 600;
	}
}

.Philosophy__icon {
	
	& img {
		display: block;
		width: 20%;
		max-width: 100px;
		margin: 0 auto;
	}
}

.Philosophy__txt {
	font-size: 1.2rem;
	line-height: 1.8;
}


@media screen and (min-width: 768px) {
	
	.Philosophy__subsection-wrapper {
		flex-direction: row;
		justify-content: space-between;
	}
	
	.Philosophy__subsection {
		width: 30%;
	}

	.Philosophy__subsection-ttl {
		& .en {
			font-size: 2.2rem;
		}
		
		& .ja {
			font-size: 1.4rem;
		}
	}

	.Philosophy__txt {
		font-size: 1.3rem;
	}
}

.Philosophy {
	.c-section--connect-line {
		padding-top: 80px;
	
		&::before {
			height: 50px;
		}
	}
}

@media screen and (min-width: 768px) {
	.Philosophy {
		& .c-section--connect-line {
			padding-top: 160px;
			
			&::before {
				height: 100px;
			}
		}
	}
}


/* ------------------------------------------------------------------ */


.Mission {
	
}

.Mission__figure {
	display: flex;
	flex-direction: column;
	gap: 0.5lh;
	width: 100%;
	margin-block: 3lh;
	margin-inline: auto;
	
	& img {
		display: block;
		width: 100%;
	}
	
	& figcaption {
		max-width: 40ic;
		margin-inline-start: auto;
		margin-inline: auto;
		
		& > * {
			margin-block: 0;
		}
	}
}

@media screen and (min-width: 768px) {
	
	.Mission__figure {
		width: calc(100% - 40px);
		
	}
}

/* ------------------------------------------------------------------ */


.Vision {
	
}

.Vision-intro {
	
}

.Vision__figure {
	
	width: calc(100% - 40px);
	max-width: 800px;
	margin-block: 3lh;
	margin-inline: auto;
	
	& img {
		display: block;
		width: 100%;
	}
	
}


@media screen and (min-width: 768px) {
	
	.Vision {
		margin-bottom: 160px;
	}
	
}
