@charset "UTF-8";

/* ========================================
   フロント COMPANY（Figma 6:43 / 7:142）
   View More は ace214-com-web .service-item__more を流用
   画像カラム幅・lead・text は ABOUT に合わせる
   ======================================== */

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

.home-company__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-company__content {
	display: contents;
}

.home-company__intro {
	order: 1;
}

.home-company__visual {
	order: 2;
}

.home-company__copy {
	order: 3;
}

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

.home-company__title img {
	display: block;
	/* SP 800px 時 643.26 / 800 */
	width: 80.4vw;
	max-width: 100%;
	height: auto;
}

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

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

.home-company__visual {
	margin-top: 1.1rem;
	align-self: center;
	/* ABOUT と同じ画像カラム幅 */
	width: min(100%, 46.5rem);
}

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

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

.home-company__lead {
	margin: 0;
	color: var(--home-company-text);
	/* ABOUT と同じ（SP 800px 時 43px → 43/800） */
	font-size: 5.375vw;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.home-company__copy > .home-company__line {
	margin-top: 1.35rem;
}

.home-company__text {
	margin-top: 2.35rem;
	color: var(--home-company-body);
	/* ABOUT と同じ（SP 800px 時 25px → 25/800／最小 12px） */
	font-size: max(12px, 3.125vw);
	font-weight: 700;
	line-height: 1.75;
	letter-spacing: 0.02em;
}

.home-company__text p {
	margin: 0;
}

/* ----------------------------------------
   View More（ace214-com-web .service-item__more）
   ---------------------------------------- */

.home-company__more {
	--color-border: var(--color-primary);
	--color-text: var(--color-primary);
	--color-icon: var(--color-primary);
	/* SP 800px 時 385.59 / 800 → 48.25%、フォント 4.25% */
	--width-button: 48.25vw;
	--padding-block-start: 16px;
	--padding-block: 2.945vw; /* 800px 時 23.56px */
	--position-button-icon: 4.125vw; /* 800px 時 33px */
	--font-size: 4.25vw;
	--line-height: 1.45;
	/* 狭い画面でも「view more」＋矢印が崩れない下限（≒390px 幅時） */
	width: var(--width-button);
	min-width: 11.75rem;
	max-width: none;
	padding-block-start: var(--padding-block-start);
	margin-inline: auto;
	letter-spacing: 0.05em;
	background-color: #fff;
}

.home-company__more > a {
	position: relative;
	display: block;
	z-index: 1;
	padding-block: var(--padding-block);
	font-family: var(--home-company-font);
	font-size: var(--font-size);
	font-weight: 700;
	line-height: var(--line-height);
	color: var(--color-text);
	text-align: center;
	text-transform: capitalize;
	letter-spacing: 0.25vw; /* 800px 時 2px */
	text-decoration: none;
	border: solid 2px var(--color-primary);
	border-radius: 3px;
	transition: 0.3s;
}

.home-company__more > a::before {
	content: "";
	width: calc(100% + 1px);
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	background: #23a83b;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: right top;
}

.home-company__more > a::after {
	position: absolute;
	top: 50%;
	right: var(--position-button-icon);
	display: inline-block;
	/* Figma 矢印 ≒ 11.06×22.12 → SP は vw、角丸なし */
	width: 1.3825vw;
	height: 2.765vw;
	min-width: 7px;
	min-height: 14px;
	content: "";
	background-color: var(--color-icon);
	mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%229%22%20height%3D%2215%22%20viewBox%3D%220%200%209%2015%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7.37823%207.35742H7.0354M1.35748%201.35742L7.43922%207.35742L1.35748%2013.3574%22%20stroke%3D%22%2323A83B%22%20stroke-width%3D%222.715%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%2F%3E%3C%2Fsvg%3E");
	mask-size: contain;
	mask-repeat: no-repeat;
	translate: 0 -50%;
}

.home-company__more > a > span {
	position: relative;
	z-index: 10;
}

@media (any-hover: hover) {
	.home-company__more > a:hover {
		--color-text: #fff;
	}

	.home-company__more > a:hover::before {
		transform-origin: 0% 50%;
		transform: scaleX(1);
	}

	.home-company__more > a:hover::after {
		--color-icon: #fff;
	}
}

@media (width >= 768px) {
	/*
	 * PC: 1920px 時のカラム比率（691.93 : 954.06）を維持して縮小。
	 * 狭いビューポートではテキストが画像に掛かってよい。
	 */
	.home-company__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-company__content {
		display: flex;
		flex-direction: column;
		grid-area: 1 / 1;
		justify-self: start;
		/* Figma 691.93px / 1920 */
		width: min(43.246rem, 36.038vw);
		max-width: none;
		position: relative;
		z-index: 1;
		overflow: visible;
	}

	.home-company__intro,
	.home-company__copy {
		order: unset;
	}

	.home-company__title img {
		/* Figma 686px / 1920 */
		width: min(42.875rem, 35.729vw);
		max-width: 100%;
	}

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

	.home-company__intro > .home-company__line {
		margin-top: 1.4rem;
	}

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

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

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

	.home-company__copy > .home-company__line {
		margin-top: 1.7rem;
		display: none;
	}

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

	.home-company__more {
		/* 386px / 1920 ほかも同比率 */
		--width-button: min(386px, 20.104vw);
		--padding-block-start: min(50px, 2.604vw);
		--padding-block: min(23.56px, 1.227vw);
		--position-button-icon: min(33px, 1.719vw);
		--font-size: min(33.71px, 1.756vw);
		width: auto;
		min-width: 0;
		max-width: var(--width-button);
		margin-inline: 0;
	}

	.home-company__more > a {
		letter-spacing: min(2px, 0.104vw);
	}

	.home-company__more > a::after {
		width: min(11px, 0.573vw);
		height: min(22px, 1.146vw);
		min-width: 0;
		min-height: 0;
	}
}

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

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