@charset "UTF-8";

/* ==========================================================================
   導入企業・学校一覧 Archive (Renewal 2026)
   Design source: Figma node 14710-93948「導入実績_TOP」
   Scope: #renewal_2026_introduce_archive で完全に閉じる。
          subpage.css の旧 .cf-breadcrumb / .cf-heading-basic /
          .cf-lower-container 等とは衝突しない。
   ========================================================================== */

#renewal_2026_introduce_archive {
	--ica-primary: #D80C18;
	--ica-dark: #101828;
	--ica-gray-700: #1E2939;
	--ica-gray-500: #6A7282;
	--ica-gray-400: #99A1AF;
	--ica-gray-100: #F9FAFB;
	--ica-border: #F3F4F6;
	--ica-max: 950px;

	background-color: #fff;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: var(--ica-dark);
	padding-bottom: 80px;
}

#renewal_2026_introduce_archive *,
#renewal_2026_introduce_archive *::before,
#renewal_2026_introduce_archive *::after {
	box-sizing: border-box;
}

#renewal_2026_introduce_archive a {
	color: inherit;
	text-decoration: none;
}

#renewal_2026_introduce_archive ul,
#renewal_2026_introduce_archive ol,
#renewal_2026_introduce_archive li {
	margin: 0;
	padding: 0;
	list-style: none;
}

#renewal_2026_introduce_archive h1,
#renewal_2026_introduce_archive h2,
#renewal_2026_introduce_archive h3,
#renewal_2026_introduce_archive p,
#renewal_2026_introduce_archive figure {
	margin: 0;
}

/* ----- Breadcrumb ----- */
.p-introduce-archive__breadcrumb {
	max-width: var(--ica-max);
	width: 100%;
	margin: 0 auto;
	padding: 8px 16px;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 10px;
	font-size: 14px;
	line-height: 20px;
	color: var(--ica-gray-400);
	overflow: hidden;
	white-space: nowrap;
}

.p-introduce-archive__breadcrumb > a,
.p-introduce-archive__breadcrumb > .p-introduce-archive__breadcrumb-sep {
	flex-shrink: 0;
}

.p-introduce-archive__breadcrumb a {
	color: var(--ica-gray-400);
	transition: opacity 0.2s;
}

.p-introduce-archive__breadcrumb a:hover {
	opacity: 0.7;
}

.p-introduce-archive__breadcrumb-sep {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	color: var(--ica-gray-400);
}

.p-introduce-archive__breadcrumb-current {
	color: var(--ica-dark);
	min-width: 0;
	flex: 1 1 auto;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ----- Hero ----- */
.p-introduce-archive__hero {
	background-color: var(--ica-gray-100);
	padding: 80px 16px;
	text-align: center;
}

.p-introduce-archive__hero-title {
	font-weight: 700;
	font-size: 36px;
	line-height: 40px;
	color: var(--ica-dark);
	letter-spacing: -0.02em;
}

/* ----- Partner logos ticker ----- */
.p-introduce-archive__partners {
	padding: 24px 0;
	background: #fff;
	overflow: hidden;
}

.p-introduce-archive__partners-ticker {
	overflow: hidden;
	width: 100%;
}

.p-introduce-archive__partners-track {
	display: flex;
	width: max-content;
	animation: ica-partners-ticker 1s linear infinite;
	animation-play-state: paused;
}

.p-introduce-archive__partners-group {
	display: flex;
	align-items: center;
	gap: 32px;
	padding-right: 32px;
}

.p-introduce-archive__partners-group img {
	height: 100px;
	width: auto;
	object-fit: contain;
}

@keyframes ica-partners-ticker {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* ----- Content container ----- */
.p-introduce-archive__container {
	max-width: var(--ica-max);
	width: 100%;
	margin: 0 auto;
	padding: 40px 16px 0;
}

/* ----- 競技ボタン（ハードコーディング） ----- */
.p-introduce-archive__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 80px;
}

/* ID 接頭辞で詳細度を上げる:
   #renewal_2026_introduce_archive a { color: inherit } (1,0,1) に勝つため。 */
#renewal_2026_introduce_archive .p-introduce-archive__tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border: 1px solid #DDDDDD;
	border-radius: 9999px;
	background: #fff;
	color: #4A5565;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	transition: border-color 0.2s, color 0.2s;
}

#renewal_2026_introduce_archive .p-introduce-archive__tag:hover,
#renewal_2026_introduce_archive .p-introduce-archive__tag:focus {
	border-color: var(--ica-primary);
	color: var(--ica-primary);
}

.p-introduce-archive__tag-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

.p-introduce-archive__tag-icon svg {
	width: 24px;
	height: 24px;
}

/* ----- 競技セクション ----- */
.p-introduce-archive__sections {
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.p-introduce-archive__section {
	scroll-margin-top: 85px; /* 固定ヘッダー(約79px)の下に競技名が来るように */
}

.p-introduce-archive__section-head {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 24px;
}

.p-introduce-archive__section-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	color: var(--ica-dark);
}

.p-introduce-archive__section-icon svg {
	width: 52px;
	height: 52px;
}

.p-introduce-archive__section-title {
	font-weight: 700;
	font-size: 32px;
	line-height: 1.2;
	color: var(--ica-dark);
}

/* ----- カード列（最大3件 / カード幅は最大284px） -----
   ・上下のギャップは 8px 固定（gap）
   ・左右は space-between で動的に均等分け。左端・右端のマージンは 0。 */
.p-introduce-archive__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 284px));
	gap: 8px; /* 上下=8px固定 / 左右はこの 8px を最小値として space-between で広がる */
	justify-content: space-between;
}

.p-introduce-archive__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	transition: opacity 0.2s;
}

a.p-introduce-archive__card:hover {
	opacity: 0.85;
}

.p-introduce-archive__card-media {
	position: relative;
	aspect-ratio: 285 / 160;
	border-radius: 16px;
	overflow: hidden;
	background: var(--ica-gray-100);
}

.p-introduce-archive__card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-introduce-archive__card-body {
	padding: 16px 0 0;
	display: flex;
	flex-direction: column;
}

.p-introduce-archive__card-team {
	color: var(--ica-dark);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

.p-introduce-archive__card-title {
	margin-top: 10px;
	color: var(--ica-dark);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.7;
}

/* タグ 2段構成
   上段：event / area / type の子ターム
   下段：purpose の子ターム */
.p-introduce-archive__card-tag-rows {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 12px;
}

.p-introduce-archive__card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}

#renewal_2026_introduce_archive .p-introduce-archive__card-tags li {
	padding: 2px 8px;
	border: 1px solid var(--ica-primary);
	border-radius: 4px;
	background: #fff;
	color: var(--ica-primary);
	font-size: 12px;
	font-weight: 700;
	line-height: 16px;
}

/* ----- もっと見る ----- */
.p-introduce-archive__section-more {
	margin-top: 24px;
	text-align: center;
}

#renewal_2026_introduce_archive .p-introduce-archive__more-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border: 1px solid #DDDDDD;
	border-radius: 9999px;
	color: #4A5565;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	transition: border-color 0.2s, color 0.2s;
}

#renewal_2026_introduce_archive .p-introduce-archive__more-link:hover,
#renewal_2026_introduce_archive .p-introduce-archive__more-link:focus {
	border-color: var(--ica-primary);
	color: var(--ica-primary);
}

/* ----- 導入チーム・学校（ステージ別リスト） ----- */
.p-introduce-archive__teams {
	margin-top: 24px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.p-introduce-archive__teams-heading {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--ica-dark);
	text-align: center;
}

.p-introduce-archive__stage {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-introduce-archive__stage-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--ica-dark);
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ica-border);
}

.p-introduce-archive__stage-list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px 12px;
}

.p-introduce-archive__team {
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--ica-gray-700);
}

#renewal_2026_introduce_archive .p-introduce-archive__team a {
	color: var(--ica-gray-700); /* リンクありでも黒固定 */
	text-decoration: underline; /* リンクがあることを下線で示す */
	transition: opacity 0.2s;
}

#renewal_2026_introduce_archive .p-introduce-archive__team a:hover {
	opacity: 0.7;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media screen and (max-width: 768px) {
	#renewal_2026_introduce_archive {
		padding-bottom: 56px;
	}

	.p-introduce-archive__hero {
		padding: 48px 16px;
	}

	.p-introduce-archive__hero-title {
		font-size: 28px;
		line-height: 1.3;
	}

	.p-introduce-archive__partners-group img {
		height: 64px;
	}

	.p-introduce-archive__container {
		padding-top: 32px;
	}

	.p-introduce-archive__tags {
		gap: 8px;
		margin-bottom: 48px;
	}

	.p-introduce-archive__tag {
		padding: 6px 12px;
		font-size: 14px;
	}

	.p-introduce-archive__tag-icon,
	.p-introduce-archive__tag-icon svg {
		width: 20px;
		height: 20px;
	}

	.p-introduce-archive__sections {
		gap: 56px;
	}

	.p-introduce-archive__section-head {
		margin-bottom: 16px;
	}

	.p-introduce-archive__section-icon,
	.p-introduce-archive__section-icon svg {
		width: 40px;
		height: 40px;
	}

	.p-introduce-archive__section-title {
		font-size: 24px;
	}

	.p-introduce-archive__cards {
		grid-template-columns: minmax(0, 284px);
		gap: 24px;
		justify-content: center; /* モバイルは1列なので中央寄せ */
	}

	.p-introduce-archive__card-team {
		font-size: 16px;
	}

	.p-introduce-archive__teams {
		margin-top: 48px;
	}

	.p-introduce-archive__stage-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px 12px;
	}
}

