@charset "UTF-8";
/* ==========================================================================
   /service/ サービスページ
   デザイン: Figma `176:303`（PC 1440）／値の根拠は design-rules.md
   ========================================================================== */

/* ---------- よくある4つの課題 ---------- */
.p-svc-issues { margin-top: 56px; }
.p-svc-issues__head { position: relative; z-index: 1; }
/* 見出しの箱の上下中央がグレー帯の上端に重なる */
.p-svc-issues__band {
	margin-top: -22px;
	padding: 52px 0 44px;
	background: var(--c-bg-gray);
}
.p-svc-issues__lead { font-size: 16px; text-align: center; }
.p-svc-issues__list {
	display: grid;
	gap: 8px;
	max-width: 748px;
	margin: 18px auto 0;
}
.p-svc-issues__item { min-height: 68px; padding: 12px 20px; background: #fff; }
.p-svc-issues__title {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
/* 番号の幅を固定し、説明文を「番号＋間隔」の分だけ字下げして見出しの書き出しにそろえる */
.p-svc-issues__item { --num-w: 28px; --num-gap: 14px; }
.p-svc-issues__num { flex-shrink: 0; width: var(--num-w); font-size: 24px; font-weight: 300; line-height: 1; letter-spacing: 0; }
.p-svc-issues__text { margin-top: 8px; padding-left: calc(var(--num-w) + var(--num-gap)); font-size: 14px; line-height: 1.5; }
.p-svc-issues__conclusion {
	margin-top: 30px;
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
}
@media (max-width: 767px) {
	.p-svc-issues { margin-top: 50px; }
	.p-svc-issues__band { margin-top: -38px; padding: 60px 0 50px; }
	.p-svc-issues__lead { font-size: 14px; }
	.p-svc-issues__list { margin-top: 24px; }
	.p-svc-issues__lead { text-align: left; }
	.p-svc-issues__item { padding: 16px 14px; }
	.p-svc-issues__item { --num-w: 20px; --num-gap: 8px; }
	.p-svc-issues__title { gap: 8px; font-size: 15px; line-height: 1.4; }
	.p-svc-issues__num { font-size: 18px; }
	.p-svc-issues__text { margin-top: 6px; font-size: 13px; }
	.p-svc-issues__conclusion { font-size: 16px; text-align: left; }
}

/* ---------- 一気通貫でご支援します（4つのサービス） ---------- */
.p-svc-axes { margin-top: var(--section-gap); }
.p-svc-axes__lead { margin-top: 30px; font-size: 16px; text-align: center; }
.p-svc-axes__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 31px;
	margin-top: 40px;
}
.p-svc-axis {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: 455px;
	padding: 30px 30px 32px;
	background: #fff;
	border: 1px solid var(--c-main);
	border-radius: 20px;
	text-align: center;
	overflow: hidden;
}
.p-svc-axis__en {
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
/* 和名は Cantata One 指定をゴシック500に（8章 No.4） */
.p-svc-axis__title {
	margin-top: 2px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	color: var(--c-main);
}
.p-svc-axis__text { margin-top: 10px; font-size: 12px; line-height: 1.7; white-space: nowrap; }
.p-svc-axis__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 82px;
	margin-top: 8px;
}
/* 紫帯とボタンは4枚で下揃え（8章 No.18） */
.p-svc-axis__items {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-self: stretch;
	min-height: 97px;
	margin: auto -30px 0;
	padding: 8px 14px;
	background: var(--c-main);
	font-size: 12px;
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: #fff;
}
.p-svc-axis__icon { margin-bottom: 9px; }
.p-svc-axis__more { margin-top: 17px; }
@media (max-width: 1199px) {
	.p-svc-axes__list { grid-template-columns: repeat(2, minmax(0, 320px)); justify-content: center; gap: 30px; }
}
@media (max-width: 767px) {
	.p-svc-axes__lead { font-size: 14px; text-align: left; }
	.p-svc-axes__lead br { display: none; }
	.p-svc-axes__list { grid-template-columns: minmax(0, 320px); gap: 20px; margin-top: 30px; }
	.p-svc-axis__text br { display: none; }
	.p-svc-axis__text { white-space: normal; }
}

/* ---------- 5ステップ（帯） ---------- */
.p-svc-steps { margin-top: var(--section-gap); }
.p-svc-steps__band {
	/* 左パネル＝本文の左端までの余白＋中身424px（1440で 130+424=554） */
	--intro-pad: max(var(--inner-pad), calc(50vw - 590px));
	display: grid;
	grid-template-columns: calc(var(--intro-pad) + 424px) 1fr;
	min-height: 475px;
}
.p-svc-steps__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 40px 30px 40px var(--intro-pad);
	background: var(--grad-main);
	color: #fff;
}
.p-svc-steps__intro .c-hl__lines { gap: 12px; }
.p-svc-steps__lead { margin-top: 40px; font-size: 16px; line-height: 1.7; letter-spacing: 0.04em; }

.p-svc-steps__visual {
	position: relative;
	display: flex;
	align-items: center;
	padding: 30px 20px 30px 13.3%;
	overflow: hidden;
	isolation: isolate;
}
.p-svc-steps__photo {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 図は 542×393 を基準に、幅に合わせて全体を拡縮する（--u = 1px 相当） */
.p-svc-steps__diagram {
	--u: calc(100cqw / 542);
	position: relative;
	width: min(542px, 100%);
	aspect-ratio: 542 / 393;
	container-type: inline-size;
}
.p-svc-steps__diagram > * { position: absolute; }
.p-svc-steps__union {
	top: 0;
	left: calc(var(--u) * 123);
	width: calc(var(--u) * 274);
	height: 100%;
}
.p-svc-steps__priority-arrow {
	top: calc(var(--u) * 243);
	left: calc(var(--u) * (18 - 151));
	width: calc(var(--u) * 302);
	max-width: none;
	transform: translateY(-50%) rotate(-90deg);
}
.p-svc-steps__priority {
	top: calc(var(--u) * 180);
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--u) * 35);
	height: calc(var(--u) * 123);
	background: var(--c-main);
	border-radius: 4px;
	padding-top: calc(var(--u) * 11);
	font-size: max(10px, calc(var(--u) * 16));
	line-height: 1;
	letter-spacing: calc(var(--u) * 11);
	color: #fff;
	white-space: nowrap;
	writing-mode: vertical-rl;
	text-orientation: upright;
}
.p-svc-steps__nav {
	top: calc(var(--u) * 93);
	left: calc(var(--u) * 60);
	display: grid;
	gap: calc(var(--u) * 6);
	width: calc(var(--u) * 400);
}
.p-svc-steps__nav-link {
	display: flex;
	align-items: center;
	gap: calc(var(--u) * 20);
	height: calc(var(--u) * 50);
	padding: 0 calc(var(--u) * 20);
	background: #fff;
	border-radius: calc(var(--u) * 10);
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
	color: var(--c-main);
	white-space: nowrap;
	transition: background-color 0.3s, color 0.3s;
}
.p-svc-steps__nav-link:hover { background: var(--c-main); color: #fff; }
.p-svc-steps__nav-num {
	font-family: var(--ff-serif);
	font-size: max(12px, calc(var(--u) * 20));
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.04em;
}
.p-svc-steps__nav-label { font-size: max(11px, calc(var(--u) * 16)); line-height: 1; letter-spacing: 0.04em; }
/* 縦書き（writing-mode）だとアポストロフィの向きが崩れるので、横書きを90度回転させる（Figmaと同じ作り）
   元の枠：left 492 / top 3 / 50×356 → 中心を保ったまま 356×50 を回転 */
.p-svc-steps__en {
	top: calc(var(--u) * (3 + 178 - 25));
	left: calc(var(--u) * (492 + 25 - 178));
	width: calc(var(--u) * 356);
	height: calc(var(--u) * 50);
	font-family: var(--ff-en);
	font-size: calc(var(--u) * 36);
	line-height: calc(var(--u) * 50);
	letter-spacing: 0.04em;
	text-align: center;
	color: #fff;
	white-space: nowrap;
	transform: rotate(90deg);
}
@media (max-width: 1199px) {
	.p-svc-steps__band { grid-template-columns: 1fr; }
	.p-svc-steps__intro { padding: 60px var(--inner-pad); }
	.p-svc-steps__lead br.u-pc-tb { display: none; }
	.p-svc-steps__visual { justify-content: center; padding: 40px var(--inner-pad) 84px; }
}
@media (max-width: 767px) {
	.p-svc-steps__intro { padding: 50px var(--inner-pad); }
	.p-svc-steps__lead { margin-top: 28px; font-size: 14px; }
	.p-svc-steps__visual { padding: 30px 12px 74px; }
	/* SPは縦書きの英字を外し、図を420幅基準で大きく組む。ステップ名の箱は文字の長さに合わせる（右の空きを作らない） */
	.p-svc-steps__en { display: none; }
	.p-svc-steps__diagram { --u: calc(100cqw / 420); aspect-ratio: 420 / 393; }
	.p-svc-steps__nav { width: max-content; }
	.p-svc-steps__nav-link { gap: 8px; padding: 0 12px; letter-spacing: 0; }
	.p-svc-steps__nav-num { font-size: 15px; }
	.p-svc-steps__nav-label { font-size: 13px; letter-spacing: 0; }
}

/* ---------- 5ステップ（カード） ---------- */
/* グレー背景は下のCTAバナーの中ほどで終わる */
.p-svc-steps__body { background: linear-gradient(to bottom, var(--c-bg-gray) calc(100% - 100px), transparent 0); }
.p-svc-steps__list {
	position: relative;
	display: grid;
	gap: 20px;
	margin-top: -44px;
}
.p-step-card {
	padding: 36px;
	background: #fff;
	border-radius: 30px;
	scroll-margin-top: calc(var(--header-h) + 20px);
}
.p-step-card__head { display: flex; align-items: flex-end; gap: 18px; }
.p-step-card__head .c-point-num { width: 55px; }
.p-step-card__head .c-point-num__num { margin-top: 0; line-height: 0.8; }
.p-step-card__title {
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
.p-step-card__lead {
	margin-top: 8px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--c-main);
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.04em;
}
/* 左右の行の高さを揃えるため subgrid で組む */
.p-step-card__table {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 13px;
	margin-top: 30px;
}
.p-step-card__col {
	display: grid;
	grid-row: span var(--span);
	grid-template-rows: subgrid;
}
.p-step-card__rows { display: contents; }
.p-step-card__col-head {
	justify-self: start;
	height: 29px;
	padding: 0 8px;
	background: var(--c-main);
	font-size: 16px;
	line-height: 29px;
	letter-spacing: 0;
	color: #fff;
}
.p-step-card__rows li {
	display: flex;
	align-items: center;
	min-height: 38px;
	padding: 6px 13px;
	background: var(--c-bg-blue);
	font-size: 12px;
	line-height: 1.5;
	letter-spacing: 0.04em;
}
.p-step-card__rows li:nth-child(even) { background: var(--c-bg-gray); }
.p-step-card__arrow {
	position: absolute;
	top: calc(29px + (100% - 29px) / 2);
	left: 50%;
	z-index: 1;
	width: 38px;
	transform: translate(-50%, -50%);
}
.p-step-card__related {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 17px;
	margin-top: 20px;
}
.p-step-card__related-label { font-size: 16px; line-height: 1.7; letter-spacing: 0.04em; color: var(--c-main); }
.p-step-card__tags { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 767px) {
	.p-svc-steps__list { margin-top: -44px; }
	.p-step-card { padding: 28px 20px; border-radius: 20px; }
	.p-step-card__head { gap: 12px; }
	.p-step-card__title { font-size: 17px; }
	.p-step-card__lead { margin-top: 12px; font-size: 14px; }
	.p-step-card__table { grid-template-columns: 1fr; margin-top: 24px; }
	.p-step-card__col { display: block; }
	.p-step-card__rows { display: block; }
	.p-step-card__col-head { display: inline-block; }
	.p-step-card__arrow {
		position: static;
		justify-self: center;
		width: 30px;
		margin: 10px 0;
		transform: rotate(90deg);
	}
	.p-step-card__related-label { width: 100%; font-size: 14px; }
}

/* ---------- 5ステップ下のCTAバナー ---------- */
.p-svc-cta {
	display: grid;
	gap: 20px;
	max-width: 900px;
	margin: 40px auto 0;
}
.p-svc-cta__item {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	min-height: 133px;
	padding: 26px 24px 26px 26px;
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}
.p-svc-cta__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 見出しは Cantata One 指定をゴシック500に（8章 No.4） */
.p-svc-cta__title { font-size: 18px; font-weight: 500; line-height: 1.35; letter-spacing: 0.1em; }
.p-svc-cta__text { margin-top: 10px; font-size: 14px; line-height: 1.7; letter-spacing: 0.04em; }
.p-svc-cta .c-btn { flex-shrink: 0; }
/* 無料診断のバナー：縦に広げてボタンを2つ（上＝無料相談・水色／下＝予約・紫） */
.p-svc-cta__item--tall { align-items: center; min-height: 200px; padding-block: 36px; }
.p-svc-cta__btns { display: grid; gap: 14px; flex-shrink: 0; }
@media (max-width: 1023px) {
	.p-svc-cta__item { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
	.p-svc-cta__item { padding: 24px 20px; }
	.p-svc-cta__title { font-size: 16px; letter-spacing: 0.04em; }
	.p-svc-cta__title br { display: none; }
	.p-svc-cta__text { font-size: 13px; }
	.p-svc-cta .c-btn { align-self: center; }
	.p-svc-cta__btns { justify-self: center; align-self: stretch; justify-items: center; }
}

/* ---------- 業種別の支援ソリューション ---------- */
.p-svc-industry { position: relative; margin-top: var(--section-gap); }
.p-svc-industry__deco {
	position: absolute;
	top: -200px;
	left: calc(50% - 278px);
	z-index: -1;
	width: 1154px;
	max-width: none;
	pointer-events: none;
}
.p-svc-industry__lead { margin-top: 30px; font-size: 16px; }
.p-svc-industry__filter { margin-top: 30px; }
.p-svc-industry__filter-label { font-size: 16px; font-weight: 500; line-height: 1.7; color: var(--c-main); }
.p-svc-industry__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.p-svc-industry__panels { display: grid; gap: 20px; margin-top: 40px; }
/* JSが動いたらタブ表示（動かない環境では全業種を縦に並べる） */
.is-tabs-ready .js-tab-panel:not(.is-active) { display: none; }
.p-industry-card {
	padding: 36px 78px;
	background: var(--c-bg-gray);
	border-radius: 30px;
	scroll-margin-top: calc(var(--header-h) + 20px);
}
.p-industry-card__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--c-main);
}
.p-industry-card__title {
	font-family: var(--ff-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
/* キャッチは Cantata One 指定をゴシック500に（8章 No.4） */
.p-industry-card__catch { margin-top: 18px; font-size: 18px; font-weight: 500; line-height: 1.4; letter-spacing: 0.1em; }
.p-industry-card__lead { margin-top: 8px; font-size: 12px; line-height: 1.7; }
.p-industry-card__label {
	display: table;
	margin-top: 20px;
	padding: 0 6px;
	background: #fff;
	font-size: 14px;
	line-height: 28px;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
.p-industry-card__steps {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 12px;
	margin-top: 19px;
}
.p-industry-step { position: relative; display: flex; flex-direction: column; }
.p-industry-step__prio {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 36px;
	background: var(--c-bg-blue);
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.04em;
	color: #5b5699; /* 水色の地で文字のコントラスト4.5以上（2026-10-14 No.23） */
}
.p-industry-step__prio--top { background: var(--grad-main); color: #fff; }
.p-industry-step__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 199px;
	padding: 16px 21px 14px;
	background: #fff;
}
.p-industry-step__title {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: 0.04em;
	text-align: center;
	color: var(--c-main);
}
.p-industry-step__text { margin-top: 8px; font-size: 12px; line-height: 1.7; letter-spacing: 0.04em; }
/* 丸矢印＝各施策ページへのリンク。横に「{施策名}はこちら」（決定事項 No.14） */
.p-industry-step__link {
	display: inline-flex;
	align-self: center;
	align-items: center;
	gap: 6px;
	margin: auto -12px 0;
	padding-top: 12px;
	font-size: 11px;
	line-height: 1.4;
	letter-spacing: 0;
	white-space: nowrap;
	color: var(--c-main);
}
.p-industry-step__link .c-icon { flex-shrink: 0; width: 17px; transition: transform 0.3s var(--ease); }
.p-industry-step__link:hover span { text-decoration: underline; }
.p-industry-step__link:hover .c-icon { transform: translateX(3px); }
.p-industry-step__arrow {
	position: absolute;
	top: 97px;
	right: -22px;
	z-index: 1;
	width: 32px;
	pointer-events: none;
}
.p-industry-step:last-child .p-industry-step__arrow { display: none; }
.p-industry-card__priority {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 15px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.04em;
	color: var(--c-main);
}
.p-industry-card__priority::after {
	content: "";
	flex: 1;
	height: 6px;
	background: url("../img/icon/high-priority-arrow.svg") right center / 915px 6px no-repeat;
}
.p-industry-card__priority + .p-industry-card__label { margin-top: 22px; }
.p-industry-card__text { margin-top: 14px; font-size: 12px; line-height: 1.7; letter-spacing: 0.04em; }
.p-industry-card__market { margin-top: 6px; }
.p-industry-card__more { margin-top: 20px; }
@media (max-width: 1199px) {
	.p-industry-card { padding: 36px 40px; }
	.p-industry-card__steps { grid-template-columns: repeat(3, 1fr); row-gap: 20px; }
	.p-industry-step:nth-child(3n) .p-industry-step__arrow { display: none; }
	.p-industry-card__priority { display: none; }
}
@media (max-width: 767px) {
	.p-svc-industry__deco { top: -120px; left: 8%; width: 560px; }
	.p-svc-industry__lead { font-size: 14px; }
	.p-svc-industry__lead br { display: none; }
	.p-svc-industry__filter-label { font-size: 14px; }
	.p-svc-industry__chips { gap: 8px; }
	.p-industry-card { padding: 28px 20px; border-radius: 20px; }
	.p-industry-card__title { font-size: 17px; }
	.p-industry-card__catch { font-size: 16px; letter-spacing: 0.04em; }
	/* SPは縦に並べ、矢印を下向きに */
	.p-industry-card__steps { grid-template-columns: 1fr; row-gap: 36px; }
	.p-industry-step:nth-child(3n) .p-industry-step__arrow { display: block; }
	.p-industry-step:last-child .p-industry-step__arrow { display: none; }
	.p-industry-step__body { min-height: 0; }
	.p-industry-step__arrow {
		top: auto;
		right: auto;
		bottom: -46px;
		left: 50%;
		width: 26px;
		transform: translateX(-50%) rotate(90deg);
	}
	.p-industry-card__more { width: 100%; }
}

/* SPでは文章を14pxに統一（タグ・カテゴリ・日付・ページ番号・パンくず等のラベル類は12pxのまま） */
@media (max-width: 767px) {
	.p-svc-axis__text,
	.p-svc-axis__items,
	.p-industry-card__lead,
	.p-industry-card__text,
	.p-industry-step__text,
	.p-step-card__rows li { font-size: 14px; }
}
