@charset "UTF-8";
/* ==========================================================================
   base.css — デザイントークンと全セクション共通のコンポーネント
   --------------------------------------------------------------------------
   Figma に変数（デザイントークン）が未定義のため、値は 1:1 レンダーからの
   実測値。色は ../CLAUDE.md のトークン表に揃えてある。
   ブレークポイントは PC 1440 / SP 375 の 2 枚しかデザインがないので、
   768px を境に 2 レイアウトだけを持つ。中間幅はコンテナの流動幅で吸収する。
   ========================================================================== */

:root {
	/* --- 色（Figma 実測）--- */
	--c-primary: #0081cc;
	--c-primary-dark: #0069a8;
	--c-accent: #34b3ef; /* eyebrow・STAGE / STEP ラベル */
	--c-navy: #06304f; /* MV / 下層ヘッダー / フッター */
	--c-navy-panel: #132f4d; /* 濃紺パネル（sec-6 加入までの流れ） */
	--c-heading: #132f4d;
	--c-text: #3e4c60;
	--c-muted: #6e7a8e; /* カードの `01 / EDGE AI` など */
	--c-tag-text: #468ed1;
	--c-border: #e5e9f0;
	--c-bg: #ffffff;
	--c-bg-gray: #f7f8fb;
	--c-bg-pale: #f0f6fb; /* タグ・ハイライト枠 */
	--c-placeholder: #d9d9d9;
	--c-cta-gradient: linear-gradient(135deg, #004bae 0%, #005dbd 100%);

	/* --- フォント --- */
	--font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	/* ラベル・タグ・数値は Space Mono。Figma 実測（隣の dmp テーマには無い新規追加） */
	--font-mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	/* 社名・実績数値・下層 MV の見出し。Figma 実測（Space Grotesk） */
	--font-display: "Space Grotesk", var(--font-jp);
	/* ページャの数字だけ Jost */
	--font-num: "Jost", var(--font-jp);

	/* --- タイポ（PC）--- */
	--fs-hero: 56px;
	--fs-h2: 40px;
	--fs-h3: 20px;
	--fs-lead: 16px;
	--fs-body: 15px;
	--fs-small: 14px;
	--fs-tag: 12px;
	--fs-label: 18px; /* eyebrow */

	/* --- レイアウト --- */
	--container: 1200px;
	--gutter: 20px;
	--section-gap: 100px;
	--header-h: 100px;

	/* --- 角丸・影 --- */
	--radius-card: 10px;
	--radius-btn: 4px;
	--radius-pill: 100px;
	--shadow-header: 0 1px 8px rgba(6, 48, 79, 0.08);
}

@media (max-width: 767px) {
	:root {
		--fs-hero: 32px;
		--fs-h2: 24px;
		--fs-h3: 18px;
		--fs-lead: 14px;
		--fs-body: 14px;
		--fs-small: 13px;
		--fs-label: 15px;
		--section-gap: 60px;
		--header-h: 70px;
	}
}

/* --------------------------------------------------------------------------
   リセット
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	/* 固定ヘッダーぶんアンカー位置をずらす */
	scroll-padding-top: var(--header-h);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--font-jp);
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: 1.85;
	color: var(--c-text);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
}

body.is-drawer-open {
	overflow: hidden;
}

h1,
h2,
h3,
h4,
p,
figure,
ul,
ol {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

a {
	color: inherit;
	text-decoration: none;
}

img,
svg {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

button {
	appearance: none;
	padding: 0;
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	cursor: pointer;
}

[hidden] {
	display: none !important;
}

/* --------------------------------------------------------------------------
   レイアウト
   -------------------------------------------------------------------------- */

.l-main {
	display: block;
	/* ヘッダーは fixed。その下から本文が始まる */
	padding-top: var(--header-h);
}

.l-container {
	width: min(100% - var(--gutter) * 2, var(--container));
	margin-inline: auto;
}

.section {
	padding-block: var(--section-gap);
}

.section--gray {
	background: var(--c-bg-gray);
}

.section--navy {
	color: #fff;
	background: var(--c-navy);
}

.section--primary {
	color: #fff;
	background: var(--c-primary);
}

/* 連続する同色セクションの間で余白が二重にならないようにする */
.section + .section--gray,
.section--gray + .section--gray {
	padding-top: var(--section-gap);
}

/* パンくず（Figma PC `154:7701` / SP `127:2030`） */
.breadcrumb {
	background: #132f4d;
}

.breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: center;
	padding-top: 10px;
	padding-bottom: 12px;
}

.breadcrumb__item,
.breadcrumb__sep {
	font-size: 12px;
	line-height: 1.2;
	color: #fff;
	opacity: 0.6;
}

.breadcrumb__item a:hover {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   下層ページ共通の MV 帯
   濃紺 + 40px グリッド。罫線は Figma だと 1px の vector を 35 本並べているが、
   模様なのでアイコンではなく CSS のグラデーションで描く。
   帯の高さと見出しのサイズはページごとに違うので、各ページ側で指定する。
   -------------------------------------------------------------------------- */

.page-mv {
	color: #fff;
	background-color: var(--c-navy-panel);
	background-image:
		repeating-linear-gradient(to right, rgba(179, 206, 237, 0.08) 0 1px, transparent 1px 40px),
		repeating-linear-gradient(to bottom, rgba(179, 206, 237, 0.08) 0 1px, transparent 1px 40px);
}

.skip-link {
	position: absolute;
	left: -9999px;
	z-index: 100;
}

.skip-link:focus {
	left: 16px;
	top: 16px;
	padding: 8px 16px;
	color: #fff;
	background: var(--c-navy);
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   セクション見出し（eyebrow + 大見出し + リード）
   全セクション共通のパターン。
   -------------------------------------------------------------------------- */

.section-head {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-mono);
	font-size: var(--fs-label);
	font-weight: 700;
	line-height: 1.2;
	color: var(--c-accent);
	text-transform: uppercase;
}

.eyebrow::before {
	content: "";
	width: 58px;
	height: 1px;
	background: currentColor;
	flex: none;
}

.eyebrow--light {
	color: #fff;
}

.section-title {
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: 1.45;
	color: var(--c-heading);
	/* Figma のテキストはすべて palt（プロポーショナル詰め）が有効 */
	font-feature-settings: "palt" 1;
}

.section--navy .section-title,
.section--primary .section-title {
	color: #fff;
}

.section-lead {
	font-size: var(--fs-lead);
	line-height: 1.75;
	color: var(--c-text);
}

.section--navy .section-lead,
.section--primary .section-lead {
	color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 767px) {
	.section-head {
		gap: 16px;
	}

	.eyebrow {
		gap: 12px;
	}

	.eyebrow::before {
		width: 32px;
	}
}

/* --------------------------------------------------------------------------
   カード
   -------------------------------------------------------------------------- */

.card {
	display: flex;
	flex-direction: column;
	gap: 20px;
	align-items: flex-start;
	padding: 37px 26px;
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-card);
}

.card__index {
	font-family: var(--font-mono);
	font-size: var(--fs-small);
	font-weight: 700;
	line-height: 1.7;
	color: var(--c-muted);
}

/* カード見出し + 本文のまとまり。カード内の他要素とは 20px、内側は 10px。 */
.card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.card__title {
	font-size: var(--fs-h3);
	font-weight: 700;
	line-height: 1.45;
	color: var(--c-heading);
	font-feature-settings: "palt" 1;
}

.card__text {
	font-size: var(--fs-body);
	line-height: 1.7;
	color: var(--c-text);
}

@media (max-width: 767px) {
	.card {
		padding: 24px 20px;
	}
}

/* --------------------------------------------------------------------------
   タグ（淡ブルーの等幅チップ）
   -------------------------------------------------------------------------- */

.tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 5px 15px;
	font-family: var(--font-mono);
	font-size: var(--fs-tag);
	font-weight: 400;
	line-height: 1.2;
	color: var(--c-tag-text);
	background: var(--c-bg-pale);
	border-radius: var(--radius-pill);
}

/* --------------------------------------------------------------------------
   絞り込み（ラベル + ピル）
   トップ sec-4 と検索結果ページで同じものを使う。
   Figma PC `201:13986`（ラベル 82px + 27px + ピル h44 / 左右 26px）
        SP  `207:14619`（ラベル下にピル、h34 / 左右 14px）
   -------------------------------------------------------------------------- */

.filter-row {
	display: flex;
	gap: 27px;
	align-items: center;
}

.filter-row__label {
	flex: none;
	width: 82px;
	font-size: var(--fs-body);
	line-height: 1.7;
	color: var(--c-muted);
}

.filter-row__options {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
}

/* 1 行目だけ Figma の gap が 14px */
.filter-row:first-child .filter-row__options {
	gap: 14px;
}

.filter-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	/* 高さは min-height で決める。縦 padding を足すと枠線ぶん 46px になってしまう。 */
	padding-inline: 26px;
	font-family: var(--font-jp);
	font-size: var(--fs-body);
	font-weight: 500;
	line-height: 1.2;
	color: var(--c-text);
	white-space: nowrap;
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-pill);
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.filter-pill:hover {
	border-color: var(--c-heading);
}

.filter-pill[aria-pressed="true"] {
	color: #fff;
	background: var(--c-heading);
	border-color: var(--c-heading);
}

.pc-only {
	display: block !important;
}

.sp-only {
	display: none !important;
}

@media (max-width: 767px) {
	.pc-only {
		display: none !important;
	}

	.sp-only {
		display: block !important;
	}

	/* SP はラベルを行の上に置き、ピルを折り返す */
	.filter-row {
		flex-direction: column;
		gap: 10px;
		align-items: stretch;
	}

	/* ラベルだけは PC と同じ 15px（Figma SP も 15px） */
	.filter-row__label {
		width: auto;
		font-size: 15px;
		line-height: 1.6;
	}

	.filter-row__options,
	.filter-row:first-child .filter-row__options {
		gap: 10px 15px;
	}

	.filter-pill {
		min-height: 34px;
		padding-inline: 14px;
		font-size: 14px;
	}
}

/* --------------------------------------------------------------------------
   ボタン
   -------------------------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 56px;
	padding: 0 32px;
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	border: 1px solid transparent;
	border-radius: var(--radius-btn);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn--primary {
	color: #fff;
	background: var(--c-primary);
}

.btn--primary:hover {
	background: var(--c-primary-dark);
}

/* 白背景に枠線だけのボタン（MV の「パートナーを探す」など） */
.btn--ghost {
	color: var(--c-heading);
	background: #fff;
	border-color: var(--c-border);
}

.btn--ghost:hover {
	border-color: var(--c-primary);
	color: var(--c-primary);
}

/* 濃い背景の上に置く白ボタン（sec-8） */
.btn--white {
	color: var(--c-primary);
	background: #fff;
}

.btn--white:hover {
	background: #f0f6fb;
}

/* 濃い背景の上に置く枠線ボタン（sec-8） */
.btn--outline-white {
	color: #fff;
	background: transparent;
	border-color: rgba(255, 255, 255, 0.7);
}

.btn--outline-white:hover {
	background: rgba(255, 255, 255, 0.12);
}

.btn--block {
	display: flex;
	width: 100%;
}

/* 絞り込みの下に置く横長の CTA（トップ sec-4 / 検索結果ページで共通） */
.btn--wide {
	width: 800px;
	max-width: 100%;
	min-height: 57px;
	font-size: var(--fs-lead);
	border-radius: var(--radius-card);
}

@media (max-width: 767px) {
	.btn--wide {
		width: 100%;
		min-height: 52px;
	}
}

/* ラベルの右に付く矢印。テキストと一緒に動かしたいので擬似要素ではなく span */
.btn__arrow {
	font-family: var(--font-mono);
	font-weight: 400;
	line-height: 1;
}

/* --------------------------------------------------------------------------
   フロー矢印（sec-3 / sec-5 のカード間）
   PC では右向き、SP では下向きに回す。
   -------------------------------------------------------------------------- */

/* 元アセットは上向き 22x16 の三角。PC は 90 度、SP は 180 度回す。 */
.flow-arrow {
	display: flex;
	flex: none;
	align-self: center;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 22px;
}

.flow-arrow img {
	width: 22px;
	height: 16px;
	max-width: none;
	transform: rotate(90deg);
}

@media (max-width: 767px) {
	.flow-arrow {
		width: 22px;
		height: 16px;
	}

	.flow-arrow img {
		transform: rotate(180deg);
	}
}
