@charset "UTF-8";
/* ==========================================================================
   トップページ
   PCはFigma 1440px基準（node 176:2581）、SPは375px基準（node 176:2254）
   ========================================================================== */

/* ================= FV ================= */
.p-fv {
	--fv-h: max(590px, 40.97vw);
	position: relative;
	height: calc(var(--fv-h) + 95px);
}
.p-fv__photo {
	position: absolute;
	top: 0;
	right: 0;
	width: 53.47%;
	height: calc(var(--fv-h) * 0.8475);
}
.p-fv__photo img { width: 100%; height: 100%; object-fit: cover; }
.p-fv__panel {
	position: absolute;
	top: 0;
	left: 0;
	width: 63.19%;
	height: var(--fv-h);
	background:
		linear-gradient(63deg, #5750a4 0%, rgba(46, 46, 143, 0.8) 52%, rgba(1, 1, 34, 0.8) 100%),
		url(../img/top/hero-bg.webp) left center / cover no-repeat;
	clip-path: polygon(0 0, 100% 0, 75.16% 100%, 0 100%);
}
.p-fv__body {
	position: absolute;
	top: 0;
	left: max(var(--inner-pad), calc((100% - 1180px) / 2));
	z-index: 2;
	padding-top: 43px;
	color: #fff;
}
.p-fv__copy {
	display: flex;
	align-items: center;
	gap: 15px;
	font-family: var(--ff-en);
	font-size: 40px;
	line-height: 1.4;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.p-fv__cross .c-icon { width: 20px; color: #fff; }
.c-hl--fv { margin-top: 24px; font-size: 36px; letter-spacing: 0; }
.c-hl--fv .c-hl__line {
	padding: 1px 8px 0;
	background: #fff;
	color: var(--c-main-dark);
}
.p-fv__badge {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 31px;
	font-family: var(--ff-serif);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.04em;
}
.p-fv__badge img { width: 43px; flex-shrink: 0; }
.p-fv__badge span { padding-bottom: 2px; border-bottom: 1px solid #fff; }
.p-fv__lead {
	margin-top: 26px;
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.04em;
}
.p-fv__btns { display: flex; align-items: center; gap: 30px; margin-top: 34px; }
.c-btn--fv { width: 190px; height: 50px; }
.c-btn--fv-wide { width: 242px; height: 50px; }

.p-fv__news {
	position: absolute;
	top: calc(var(--fv-h) - 30px);
	left: 50.69%;
	width: min(580px, calc(49.31% - var(--inner-pad)));
}
.p-fv__news-head { display: flex; align-items: baseline; gap: 10px; }
.p-fv__news-en {
	font-family: var(--ff-en);
	font-size: 18px;
	letter-spacing: 0.1em;
	color: var(--c-main);
}
.p-fv__news-ja { font-size: 16px; letter-spacing: 0.04em; }
.p-fv__news-item {
	display: block;
	margin-top: 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--c-main);
	font-size: 12px;
	line-height: 1.7;
}
.p-fv__news-meta { display: flex; align-items: center; gap: 12px; }
.p-fv__news-title { display: block; margin-top: 4px; transition: color 0.3s; }
.p-fv__news-item:hover .p-fv__news-title { color: var(--c-main); }
.p-fv__news-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
	font-size: 12px;
}
.p-fv__news-more .c-icon { width: 16px; color: var(--c-main); transition: transform 0.3s var(--ease); }
.p-fv__news-more:hover .c-icon { transform: translateX(3px); }

@media (max-width: 1199px) {
	.p-fv { --fv-h: 560px; }
	.p-fv__copy { font-size: 30px; }
	.c-hl--fv { font-size: 30px; }
	.p-fv__badge { font-size: 26px; }
	.p-fv__lead { font-size: 15px; }
}
@media (max-width: 1023px) {
	.p-fv__photo { width: 60%; }
	.p-fv__panel { width: 75%; }
	.p-fv__copy { flex-wrap: wrap; row-gap: 0; font-size: 26px; white-space: normal; }
	.p-fv__copy > span:first-child { width: 100%; }
	.p-fv__btns { gap: 16px; }
	.p-fv { height: auto; padding-top: calc(var(--fv-h) + 24px); }
	.p-fv__news {
		position: relative;
		top: auto;
		left: auto;
		width: min(520px, calc(100% - var(--inner-pad) * 2));
		margin: 0 var(--inner-pad) 0 auto;
	}
	.p-company { padding-top: 48px; }
	.p-reasons__band { grid-template-columns: 1fr 2fr 1fr; height: auto; }
	.p-reasons__title { height: auto; margin-bottom: 99px; padding: 60px 16px 40px; }
	.p-reasons__heading { flex-direction: column; align-items: center; gap: 8px; padding: 0; background: none; font-size: 24px; }
	.p-reasons__heading-line { padding: 3px 8px; background: #fff; white-space: nowrap; }
}
@media (max-width: 767px) {
	/* タブレットで入れた上余白（紫パネル分）はSPでは不要（パネル非表示） */
	.p-fv { height: auto; padding-top: 0; padding-bottom: 0; }
	.p-fv__photo { position: relative; width: 100%; height: 321px; }
	.p-fv__panel { display: none; }
	.p-fv__body {
		position: relative;
		left: auto;
		margin-top: -146px;
		padding: 0 20px 32px;
	}
	.p-fv__body::before {
		content: "";
		position: absolute;
		inset: 5px 0 0;
		z-index: -1;
		background:
			linear-gradient(63deg, #5750a4 0%, rgba(46, 46, 143, 0.8) 52%, rgba(1, 1, 34, 0.8) 100%),
			url(../img/top/hero-bg-sp.webp) center bottom / cover no-repeat;
		clip-path: polygon(0 90px, 100% 0, 100% 100%, 0 100%);
	}
	.p-fv__copy { gap: 0 8px; font-size: 20px; }
	.p-fv__cross .c-icon { width: 13px; }
	.c-hl--fv { margin-top: 18px; font-size: 28px; }
	.c-hl--fv .c-hl__lines { gap: 8px; }
	.c-hl--fv .c-hl__line { padding: 1px 6px 0; color: var(--c-main); }
	.p-fv__badge { gap: 6px; margin-top: 20px; font-size: 24px; }
	.p-fv__badge img { width: 30px; }
	.p-fv__lead { margin-top: 20px; font-size: 14px; }
	.p-fv__btns { flex-direction: column; gap: 10px; margin-top: 28px; }
	.c-btn--fv,
	.c-btn--fv-wide { width: 300px; height: 55px; font-size: 16px; }
	.p-fv__news {
		position: static;
		width: auto;
		margin: 50px 20px 0;
	}
	.p-fv__news-item { margin-top: 20px; }
	.p-fv__news-title { margin-top: 12px; }
}

/* ================= COMPANY ================= */
.p-company {
	position: relative;
	padding: 13px 0 65px;
	overflow: clip; /* 背景のネットワーク図を下の写真帯にはみ出させない */
}
.p-company__inner { position: relative; z-index: 1; }
.p-company .c-hl { margin-top: 40px; }
.p-company__text { max-width: 600px; margin-top: 40px; font-size: 14px; line-height: 1.7; }
.p-company__text p + p { margin-top: 1.7em; }
.p-company .c-btn-more { margin-top: 18px; }
.p-company__network {
	position: absolute;
	bottom: 0; /* 線が集まる下端をセクション下端にそろえる（Figma: 1440幅で top 120 と同位置） */
	right: 0;
	width: 52.5%;
	max-width: 900px;
}
.p-company__network img { width: 100%; }
@media (max-width: 1199px) {
	.p-company__network { width: 48%; opacity: 0.7; }
}
@media (max-width: 767px) {
	.p-company {
		margin-top: var(--section-gap);
		padding: 0 0 90px; /* 下端基準の線画を本文から離すため下余白を広めに */
		background: linear-gradient(to bottom, transparent 125px, var(--c-bg-gray) 125px);
	}
	.p-company .c-hl { margin-top: 28px; }
	.p-company__text { margin-top: 20px; }
	.p-company .c-btn-more { margin-top: 30px; min-width: 246px; }
	.p-company__network {
		bottom: 0;
		width: 100%;
		height: 180px;
		opacity: 1;
		overflow: hidden;
	}
	.p-company__network img { height: 100%; object-fit: cover; object-position: left top; }
}

/* ================= REASONS ================= */
.p-reasons__band {
	display: grid;
	grid-template-columns: 376fr 688fr 376fr;
	height: 428px;
}
.p-reasons__photo img { width: 100%; height: 100%; object-fit: cover; }
.p-reasons__title {
	height: 329px;
	padding: 98px 20px 0;
	background: linear-gradient(55deg, #5750a4 8%, rgba(46, 46, 143, 0.8) 59%, rgba(1, 1, 34, 0.8) 107%);
	text-align: center;
	color: #fff;
}
.p-reasons__heading {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	padding: 3px 8px;
	background: #fff;
	font-family: var(--ff-serif);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
.p-reasons__heading .is-dark { color: var(--c-main-dark); }
.p-reasons__lead { margin-top: 26px; font-size: 14px; line-height: 1.7; }

.p-reasons__card {
	position: relative;
	z-index: 1;
	margin-top: -99px;
	padding: 30px 47px;
	background: #fff;
	border: 1px solid var(--c-main);
	border-radius: 30px;
}
.p-point { display: flex; flex-direction: column; align-items: center; text-align: center; }
.p-point__title {
	margin-top: 6px;
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
.p-point__text {
	max-width: 397px;
	margin-top: 22px;
	font-size: 14px;
	line-height: 1.7;
	text-align: justify;
}
.p-point__text--center { max-width: none; margin-top: 20px; font-size: 12px; text-align: center; }
.p-point__icon { height: 110px; width: auto; margin-top: 20px; object-fit: contain; }
.p-point__photos { position: relative; margin-top: 21px; }
.p-point__photos-label {
	position: absolute;
	top: -12px;
	left: 50%;
	z-index: 1;
	height: 25px;
	padding: 0 4px;
	background: var(--c-main);
	font-size: 14px;
	line-height: 25px;
	letter-spacing: 0.04em;
	color: #fff;
	white-space: nowrap;
	transform: translateX(-50%);
}
.p-point__photos-inner { display: flex; }
.p-point__photos-inner img { width: 200px; height: 100px; object-fit: cover; }

.p-reasons__cols {
	display: grid;
	grid-template-columns: 1fr 1px 1fr;
	margin-top: 40px;
	padding-top: 51px;
	border-top: 1px solid var(--c-main);
}
.p-reasons__cols::before {
	content: "";
	grid-column: 2;
	grid-row: 1;
	background: var(--c-main);
}
.p-reasons__cols .p-point:first-child { grid-column: 1; grid-row: 1; }
.p-reasons__cols .p-point:last-child { grid-column: 3; grid-row: 1; }
.p-reasons__cols .p-point { padding-inline: 30px; }

/* その他の強み */
.p-strengths {
	position: relative;
	margin-top: 38px;
	padding: 30px 40px;
	border: 1px solid var(--c-main);
	border-radius: 30px;
}
.p-strengths__deco {
	position: absolute;
	top: 58px;
	left: 50%;
	z-index: -1;
	width: 622px;
	max-width: none;
	transform: translateX(-50%);
	pointer-events: none;
}
.p-strengths__title {
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
	color: var(--c-main);
}
.p-strengths__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 35px;
}
.p-strengths__item { padding: 0 41px 0; }
.p-strengths__item:first-child { padding-left: 0; }
.p-strengths__item:last-child { padding-right: 0; }
.p-strengths__item + .p-strengths__item { border-left: 1px solid var(--c-main); }
.p-strengths__item-title {
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
}
.p-strengths__item-text { margin-top: 20px; font-size: 12px; line-height: 1.7; text-align: justify; }

@media (max-width: 1199px) {
	.p-reasons__card { padding: 30px; }
	.p-reasons__cols .p-point { padding-inline: 20px; }
	.p-strengths__item { padding-inline: 24px; }
}
@media (max-width: 767px) {
	.p-reasons__band {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 242px auto;
		height: auto;
	}
	.p-reasons__photo--left { grid-column: 1; grid-row: 1; }
	.p-reasons__photo--right { grid-column: 2; grid-row: 1; }
	/* 高さ固定をやめ、リード文とカードの間を詰める（カードの重なり55px＋間隔30px） */
	.p-reasons__title { grid-column: 1 / -1; grid-row: 2; height: auto; margin-bottom: 0; padding: 40px 20px 85px; }
	.p-reasons__heading { flex-direction: column; align-items: center; gap: 8px; padding: 0; background: none; font-size: 24px; }
	.p-reasons__heading-line { padding: 3px 8px; background: #fff; }
	.p-reasons__lead { margin-top: 24px; }
	.p-reasons .l-inner--narrow { padding-inline: 27px; }
	.p-reasons__card {
		margin-top: -55px;
		padding: 40px 22px;
		background: var(--c-bg-gray);
		border: 0;
		border-radius: 20px;
	}
	.p-point__title { font-size: 20px; }
	.p-point__text,
	.p-point__text--center { font-size: 14px; text-align: justify; }
	.p-point__photos { margin-top: 30px; }
	.p-point__photos-inner { flex-direction: column; }
	.p-point__photos-inner img { width: 232px; height: 100px; }
	.p-reasons__cols {
		grid-template-columns: 1fr;
		gap: 40px;
		margin-top: 40px;
		padding-top: 40px;
	}
	.p-reasons__cols::before { display: none; }
	.p-reasons__cols .p-point { grid-column: auto !important; grid-row: auto !important; padding: 0; }
	.p-reasons__cols .p-point + .p-point { padding-top: 40px; border-top: 1px solid var(--c-main); }
	.p-reasons__cols .p-point__icon { order: 3; }
	.p-reasons__cols .p-point__text { order: 4; }
	.p-strengths { margin-top: 15px; padding: 40px 22px; border-width: 0.8px; border-radius: 20px; }
	.p-strengths__deco { top: auto; bottom: -110px; width: 341px; }
	.p-strengths__title { font-size: 18px; letter-spacing: 0; }
	.p-strengths__list { grid-template-columns: 1fr; margin-top: 30px; }
	.p-strengths__item,
	.p-strengths__item:first-child,
	.p-strengths__item:last-child { padding: 0; }
	.p-strengths__item + .p-strengths__item { margin-top: 30px; padding-top: 30px; border-left: 0; border-top: 1px solid var(--c-main); }
}

/* ================= SERVICE ================= */
.p-service {
	position: relative;
	z-index: 1;
	margin-top: 40px;
	padding: 50px 0;
	color: #fff;
	isolation: isolate;
}
.p-service::before,
.p-service::after { content: ""; position: absolute; inset: 0; z-index: -1; }
.p-service::before { background: url(../img/top/service-bg.webp) center / cover no-repeat; opacity: 0.9; }
.p-service::after { background: linear-gradient(53deg, #5750a4 8%, rgba(46, 46, 143, 0.8) 59%, rgba(1, 1, 34, 0.8) 107%); }
.p-service__inner { display: flex; justify-content: space-between; align-items: flex-start; min-height: 526px; }
.p-service__body { padding-top: 17px; }
.p-service .c-hl { margin-top: 40px; }
.p-service__text { margin-top: 40px; font-size: 14px; line-height: 1.7; }
.p-service__text + .p-service__text { margin-top: 1.7em; }
.p-service .c-btn-more { margin-top: 20px; }
.p-service__graph { position: relative; flex-shrink: 0; width: 527px; margin-right: -16px; }
.p-service__graph img { width: 100%; }
.p-service__graph-link { position: absolute; width: 43%; aspect-ratio: 1; border-radius: 50%; }
.p-service__graph-link--01 { top: 4%; left: 4%; }
.p-service__graph-link--02 { top: 4%; right: 4%; }
.p-service__graph-link--03 { bottom: 4%; left: 4%; }
.p-service__graph-link--04 { bottom: 4%; right: 4%; }
.p-service__graph-link:hover { background: rgba(255, 255, 255, 0.12); }
@media (max-width: 1199px) {
	.p-service__graph { width: 42%; margin-right: 0; }
	.p-service__inner { gap: 32px; min-height: 0; }
}
@media (max-width: 1023px) {
	.p-service__inner { flex-direction: column; align-items: stretch; }
	.p-service__graph { align-self: center; width: min(527px, 100%); }
}
@media (max-width: 767px) {
	.p-service { margin-top: 55px; padding: 60px 0; }
	.p-service::before { background-image: url(../img/top/service-bg-sp.webp); opacity: 1; }
	.p-service__body { padding-top: 0; }
	.p-service .c-hl { margin-top: 28px; }
	.p-service__text { margin-top: 30px; }
	.p-service .c-btn-more { margin-top: 40px; min-width: 246px; }
	/* 4つの丸を見出しと本文の間へ（本文より上） */
	.p-service__body { display: contents; }
	.p-service__inner { gap: 0; }
	.p-service__graph { order: 1; width: 320px; margin-top: 20px; }
	.p-service__body .p-service__text:first-of-type { margin-top: 16px; }
	.p-service__text,
	.p-service .c-btn-more { order: 2; }
}

/* ================= CASE ================= */
.p-case { position: relative; margin-top: var(--section-gap); }
.p-case__deco {
	position: absolute;
	top: -67px;
	left: calc(50% - 176px);
	z-index: -1;
	width: 1023px;
	max-width: none;
	pointer-events: none;
}
.p-case .c-hl { margin-top: 40px; }
.p-case__lead { margin-top: 40px; }
.p-case__slider { margin-top: 40px; }
.p-case__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 23px; }
.p-case__more { margin-top: 30px; }
@media (max-width: 1023px) {
	.p-case__list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.p-case { text-align: center; }
	.p-case__deco { top: -150px; left: 50%; width: 560px; transform: translateX(-50%); }
	.p-case .c-hl { margin-top: 28px; }
	.p-case__lead { margin-top: 20px; }
	.p-case__slider { position: relative; margin-top: 36px; overflow: hidden; text-align: left; }
	.p-case .c-slider-side::before { padding-top: calc((100% - 56px) * 177 / 278); }
	.p-case__list { display: flex; gap: 0; transition: transform 0.6s var(--ease); }
	.p-case__item { flex: 0 0 100%; padding-inline: 28px; }
	.p-case .c-slider-nav { margin-top: 30px; }
	.p-case__more { margin-top: 40px; }
}

/* ================= NEWS ================= */
.p-news { margin-top: var(--section-gap); text-align: center; }
.p-news__list { margin-top: 27px; text-align: left; }
.p-news__link {
	display: grid;
	grid-template-columns: 99px 132px 1fr auto;
	align-items: center;
	padding: 13px 0;
	border-bottom: 1px solid var(--c-main);
	font-size: 16px;
	line-height: 1.7;
}
.p-news__title { padding-right: 24px; transition: color 0.3s; }
.p-news__link:hover .p-news__title { color: var(--c-main); }
.p-news__more { margin-top: 30px; }
@media (max-width: 767px) {
	.p-news__list { margin-top: 30px; }
	.p-news__link {
		grid-template-columns: auto 1fr;
		gap: 8px 16px;
		padding: 20px 0 8px;
		font-size: 12px;
	}
	.p-news__cat { justify-self: start; }
	.p-news__cat .c-cat--pill { padding: 3px 12px; }
	.p-news__title { grid-column: 1 / -1; padding-right: 0; }
	.p-news__link .c-readmore { grid-column: 1 / -1; justify-self: end; }
	.p-news__more { margin-top: 30px; }
}

/* SPでは文章を14pxに統一（タグ・カテゴリ・日付・ページ番号・パンくず等のラベル類は12pxのまま） */
@media (max-width: 767px) {
	.p-fv__news-title,
	.p-news__title,
	.p-strengths__item-text { font-size: 14px; }
}
