@charset "UTF-8";

/* ========================================
   フロント ABOUT（Figma 6:3 / 7:87）
   ======================================== */

.home-about {
	--home-about-font: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
	--home-about-text: #002600;
	--home-about-body: #001600;
	--home-about-line-strong: #7dcb12;
	--home-about-line-soft: #d9efba;
	overflow: clip;
	background: #fff;
	font-family: var(--home-about-font);
}

.home-about__inner {
	display: flex;
	flex-direction: column;
	width: min(100%, 1920px);
	margin-inline: auto;
	padding: 4.75rem 6.25% 9.125rem;
	box-sizing: border-box;
}

/* SP: 子を親フレックスに参加させ、intro → visual → copy の順にする */
.home-about__content {
	display: contents;
}

.home-about__intro {
	order: 1;
}

.home-about__visual {
	order: 2;
}

.home-about__copy {
	order: 3;
}

.home-about__title {
	margin: 0;
	line-height: 0;
}

.home-about__title img {
	display: block;
	width: 57.5vw;
	max-width: 100%;
	height: auto;
}

.home-about__subtitle {
	margin: 1.65rem 0 0;
	color: var(--home-about-text);
	/* SP 800px 時 34px → 34/800 */
	font-size: 4.25vw;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.home-about__line {
	display: block;
	width: 5.29rem;
	height: 0.3125rem;
	margin-top: 0.9rem;
	border-radius: 999px;
	background: linear-gradient(
		90deg,
		var(--home-about-line-strong) 0%,
		var(--home-about-line-strong) 53%,
		var(--home-about-line-soft) 53%,
		var(--home-about-line-soft) 100%
	);
}

.home-about__visual {
	margin-top: 1.1rem;
	align-self: center;
	width: min(100%, 46.5rem);
}

.home-about__visual picture,
.home-about__visual img {
	display: block;
	width: 100%;
	height: auto;
}

.home-about__copy {
	margin-top: 2.75rem;
}

.home-about__lead {
	margin: 0;
	color: var(--home-about-text);
	/* SP 800px 時 43px → 43/800（本文 25px 基準の比率） */
	font-size: 5.375vw;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.home-about__copy > .home-about__line {
	margin-top: 1.35rem;
}

.home-about__text {
	margin-top: 2.35rem;
	color: var(--home-about-body);
	/* SP 800px 時 25px → 25/800（折り返しが解消する基準サイズ）／最小 12px */
	font-size: max(12px, 3.125vw);
	font-weight: 700;
	line-height: 1.75;
	letter-spacing: 0.02em;
}

.home-about__text p {
	margin: 0;
}

.home-about__text p + p {
	margin-top: 1.35em;
}

@media (width >= 768px) {
	/*
	 * PC: 1920px 時のカラム比率（576 : 921.6）を維持して縮小。
	 * 狭いビューポートではテキストが画像に掛かってよい。
	 */
	.home-about__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		padding: clamp(5rem, 6.28vw, 7.54rem) clamp(2rem, 6.06%, 7.25rem)
			clamp(5rem, 9.5vw, 11.4rem);
	}

	.home-about__content {
		display: flex;
		flex-direction: column;
		grid-area: 1 / 1;
		justify-self: start;
		/* Figma 576px / 1920 */
		width: min(36rem, 30vw);
		max-width: none;
		position: relative;
		z-index: 1;
		overflow: visible;
	}

	.home-about__intro,
	.home-about__copy {
		order: unset;
	}

	.home-about__title img {
		/* Figma 575.04px / 1920 */
		width: min(35.94rem, 29.95vw);
		max-width: 100%;
	}

	.home-about__subtitle {
		margin-top: 2.9rem;
		/* 33.76px / 1920 */
		font-size: min(2.11rem, 1.758vw);
	}

	.home-about__intro > .home-about__line {
		margin-top: 1.4rem;
	}

	.home-about__visual {
		grid-area: 1 / 1;
		justify-self: end;
		/* Figma 921.6px / 1920 */
		width: min(57.6rem, 48vw);
		max-width: 100%;
		margin-top: 0.75rem;
		margin-inline-start: 0;
		align-self: start;
		order: unset;
		z-index: 0;
	}

	.home-about__copy {
		margin-top: 4.8rem;
		max-width: none;
		overflow: visible;
	}

	.home-about__lead {
		/* 39.56px / 1920 */
		font-size: min(2.4725rem, 2.06vw);
	}

	.home-about__copy > .home-about__line {
		margin-top: 1.7rem;
		display: none;
	}

	.home-about__text {
		margin-top: 2.75rem;
		/* 19.68px / 1920 */
		font-size: min(1.23rem, 1.025vw);
		line-height: 2.2;
	}

	.home-about__text p + p {
		margin-top: 1.9em;
	}
}

@media (width >= 1280px) {
	.home-about__inner {
		padding-inline: 12.37% 5.97%;
	}

	.home-about__copy {
		margin-top: 5.7rem;
	}
}
