/**
 * 固定ページ: info 専用スタイル
 * URL: /admissions/info
 * page-info.php
 */

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.page-info {
	margin-top: -16px;
	color: var(--color-black);
	font-family: var(--font-family-primary);
}

/* ----- KV（page-day_top / page-qualification と同構成・info 専用クラス） ----- */
.page-info .info-kv {
	position: relative;
	width: 100%;
}

.page-info .info-kv__image {
	width: 100%;
	line-height: 0;
}

.page-info .info-kv__image img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: bottom;
}

@media (max-width: 1440px) {
	.page-info .info-kv__image {
		height: 270px;
		overflow: hidden;
	}

	.page-info .info-kv__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

@media (max-width: 768px) {
	.page-info .info-kv__image {
		height: 160px;
	}
}

.page-info .info-kv__text {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 0 4.8125rem;
	box-sizing: border-box;
}

.page-info .info-kv__title {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	color: var(--color-black);
}

.page-info .info-kv__title-inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	width: fit-content;
	max-width: 100%;
}

/* 6文字目の前で強制改行（1〜5文字目 / 6〜11文字目） */
.page-info .info-kv__title-inner::before {
	content: "";
	order: 5;
	flex-basis: 100%;
	height: 0;
}

.page-info .info-kv__title-inner .title-contact-text:nth-child(n+6) {
	order: 10;
}

/* 3文字目のみ少し小さく */
.page-info .info-kv__title-inner .title-contact-text:nth-child(3) .mask-text {
	transform: scale(0.92);
	transform-origin: center;
}

/* 5文字目のみ高さを少し抑える */
.page-info .info-kv__title-inner .title-contact-text:nth-child(5) .mask-text {
	transform: scaleY(0.88);
	transform-origin: center;
}

/* 10文字目のみ少し小さく */
.page-info .info-kv__title-inner .title-contact-text:nth-child(10) .mask-text {
	transform: scale(0.95);
	transform-origin: center;
}

.page-info .info-kv__title-inner .title-contact-text {
	display: flex;
	align-items: center;
	line-height: 0;
}

.page-info .info-kv__title-inner .mask-text {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: bottom;
}

/* 1440px〜768px：11文字 SVG 用 */
@media (max-width: 1440px) and (min-width: 769px) {
	.page-info .info-kv__title-inner {
		height: auto;
		width: 100%;
	}

	.page-info .info-kv__title-inner .title-contact-text {
		display: block;
		height: 100%;
		min-height: 0;
		min-width: 0;
		max-width: calc((100% - 4px * 10) / 11);
	}

	.page-info .info-kv__title-inner .mask-text {
		height: calc(2.5rem * (0.46 + 54vw / 1440));
		width: auto;
		max-width: 100%;
		object-fit: contain;
		display: block;
	}
}

@media (max-width: 768px) {
	.page-info .info-kv__text {
		height: auto;
		padding: 2.1875rem var(--container-padding-x-sp, 1.5rem);
	}

	.page-info .info-kv__title-inner {
		height: auto;
		row-gap: 4px;
	}

	.page-info .info-kv__title-inner .mask-text {
		height: 32px;
		width: auto;
		object-fit: contain;
	}
}

/* ----- パンくず（page-circle と同構成・info 専用クラス） ----- */
.page-info .info-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0 8px;
	padding: 12px 2em;
	margin-bottom: 120px;
	background-color: var(--color-gray-bg);
	font-family: var(--font-family-primary);
	font-size: var(--font-size-xs);
	line-height: var(--line-height-normal);
	font-weight: var(--font-weight-bold);
	color: var(--color-gray-dark);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

@media (max-width: 768px) {
	.page-info .info-breadcrumb {
		margin-bottom: 64px;
	}
}

.page-info .info-breadcrumb::-webkit-scrollbar {
	display: none;
}

.page-info .info-breadcrumb a,
.page-info .info-breadcrumb span {
	white-space: nowrap;
}

.page-info .info-breadcrumb a {
	color: var(--color-gray-dark);
	text-decoration: none;
}

.page-info .info-breadcrumb a:hover {
	text-decoration: underline;
}

.page-info .info-breadcrumb__sep,
.page-info .info-breadcrumb__current {
	color: var(--color-gray-dark);
	user-select: none;
}

/* ----- コンテナ / 本文 ----- */
.page-info .container {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 0 24px;
}

.page-info .info-body {
	padding: 0 24px 100px;
}

@media (max-width: 768px) {
	.page-info .info-body {
		padding: 32px 24px 64px;
	}
}

.page-info .info-wp-content {
	max-width: 960px;
	margin: 0 auto;
	line-height: var(--line-height-loose);
}

/* --- セクション --- */
.page-info .info-section {
	margin-bottom: 156px;
}
.page-info .info-section:last-child { margin-bottom: 0; }

.page-info {
	--info-section-space: 156px;
	--hex-overlap-top: -32px;
	--hex-title-w: 207px;
	--hex-title-h: 52px;
	--hex-title-font: 20px;
	--hex-step-h: 52px;
	--hex-schedule-h: 52px;
}

@media (max-width: 1440px) and (min-width: 769px) {
	.page-info {
		/* 1440px:156px → 769px:64px */
		--info-section-space: clamp(64px, calc(13.71vw - 41.4px), 156px);
		/* 1440px:-32px → 769px:-30px */
		--hex-overlap-top: clamp(-32px, calc(-0.298vw - 27.71px), -30px);
		/* 1440px:207x52/20 → 769px:160x44/16 */
		--hex-title-w: clamp(160px, calc(7.00vw + 106.16px), 207px);
		--hex-title-h: clamp(44px, calc(1.19vw + 34.83px), 52px);
		--hex-title-font: clamp(16px, calc(0.596vw + 11.42px), 20px);
		/* stepラベルはSPが40px高 */
		--hex-step-h: clamp(40px, calc(1.79vw + 26.25px), 52px);
		/* scheduleラベルはSPが44px高 */
		--hex-schedule-h: clamp(44px, calc(1.19vw + 34.83px), 52px);
	}
}

.page-info .info-section {
	margin-bottom: var(--info-section-space);
}

.page-info .info-section--exam {
	position: relative;
}

.page-info .info-section--exam > .hexagon-title {
	position: absolute;
	top: -28px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
	height: 70px;
}

/* 六角形タイトル（共通コンポーネント）ページ内配置 */
.page-info .hexagon-title {
	margin: 0 auto 40px;
}

.page-info .info-section__content {
	line-height: var(--line-height-loose);
}

.page-info .info-section__content p {
	margin: 0 0 16px;
}

/* --- サブタイトル --- */
.page-info .info-subtitle {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 32px 0 16px;
	padding-left: 12px;
	border-left: 4px solid var(--color-primary);
}

/* --- テーブル --- */
.page-info .info-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 24px;
}

.page-info .info-table th,
.page-info .info-table td {
	padding: 12px 16px;
	border: 1px solid #1f1f1f;
	text-align: center;
	vertical-align: middle;
	line-height: var(--line-height-normal);
}

.page-info .info-table thead th {
	background-color: #ffd02f;
	color: #1e2939;
	font-weight: var(--font-weight-bold);
}

@media (max-width: 768px) {
	.page-info .info-table {
		font-size: var(--font-size-sm);
	}
	.page-info .info-table th,
	.page-info .info-table td {
		padding: 8px;
	}
}

/* --- 入試区分 --- */
.page-info .info-exam-types {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.page-info .info-exam-type {
	padding: 24px;
	background-color: #f8f8f8;
	border-radius: var(--border-radius-md);
	border-left: 4px solid var(--color-primary);
}

.page-info .info-exam-type p {
	margin: 0 0 8px;
	line-height: var(--line-height-loose);
}

.page-info .info-exam-type p:last-child { margin-bottom: 0; }

/* --- 募集内容ボックス（黒枠＋hexagon-title オーバーラップ） --- */
.page-info .info-section--boshu {
	margin-top: 36px;
}

.page-info .info-boshu-box {
	position: relative;
	border: 4px solid #000000;
	background: #ffffff;
	padding: 56px 40px 32px;
}

.page-info .info-section--boshu .hexagon-title {
	position: absolute;
	top: -38px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	height: 70px;
}

.page-info .info-boshu-table {
	margin-bottom: 24px;
	border: 4px solid #1f1f1f;
}

/* --- 資格情報ボックス --- */
.page-info .info-qualification {
	border: 4px solid #1f1f1f;
}

.page-info .info-qualification__header {
	background-color: #ffd02f;
	color: #1e2939;
	font-weight: var(--font-weight-bold);
	font-size: 1.25rem;
	padding: 16px;
	text-align: center;
	border-bottom: 1px solid #1f1f1f;
}

.page-info .info-qualification__content {
	background: #ffffff;
	padding: 16px;
	text-align: center;
	font-size: var(--font-size-md);
}

@media (max-width: 768px) {
	.page-info .info-boshu-box {
		padding: 51px 22px 24px;
	}

	.page-info .info-section--boshu .hexagon-title {
		top: -30px;
	}

	.page-info .info-section--boshu .hexagon-title-text {
		font-size: 20px;
	}

	.page-info .info-boshu-table {
		margin-bottom: 20px;
	}

	.page-info .info-boshu-table th {
		padding: 2px 0;
		font-size: 12px;
		line-height: 15px;
	}

	.page-info .info-boshu-table td {
		padding: 4px 2px;
		font-size: 10px;
		line-height: 1.4;
	}

	/* 「課程」セル（2行表示）の余白を詰めてFigmaに合わせる */
	.page-info .info-boshu-table tbody td:not([rowspan]) {
		padding: 4px 0;
		line-height: 1.2;
	}

	.page-info .info-qualification__header {
		font-size: 12px;
		line-height: 15px;
		padding: 10px 12px;
	}

	.page-info .info-qualification__content {
		font-size: 12px;
		line-height: 24px;
		padding: 12px;
	}
}

/* --- 推薦型選抜入学試験（Figma：選考方法＋期別カード） --- */
.page-info .info-section--recommend,
.page-info .info-section--general {
	position: relative;
	margin: var(--info-section-space) auto;
}

.page-info .info-section--recommend .hexagon-title,
.page-info .info-section--general .hexagon-title {
	position: absolute;
	top: var(--hex-overlap-top);
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
}
.page-info .info-section--recommend .hexagon-title{
	top: -32px;
	height: 70px;
}

.page-info .info-section--general .hexagon-title{
	top: -32px;
	height: 70px;
}

.page-info .info-recommend {
	position: relative;
	border: 4px solid #000;
	border-radius: 4px;
	background: #fff;
	padding: 58px 40px 40px;
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.page-info .info-recommend__method {
	border: 4px solid #1f1f1f;
}

.page-info .info-recommend__method-head {
	margin: 0;
	background: #ffd02f;
	border-bottom: 1px solid #1f1f1f;
	padding: clamp(8px, calc(1.19vw - 1.14px), 16px) clamp(16px, calc(1.19vw + 6.86px), 24px);
	font-size: clamp(14px, calc(0.89vw + 7.14px), 20px);
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	color: #1f1f1f;
}

.page-info .info-recommend__method-body {
	padding: clamp(12px, calc(0.60vw + 7.43px), 16px) clamp(12px, calc(1.79vw - 1.71px), 24px);
	font-size: clamp(14px, calc(0.30vw + 11.71px), 16px);
	line-height: 1.6;
	color: #1f1f1f;
}

.page-info .info-recommend-term {
	position: relative;
	border: 4px solid #1f1f1f;
	background: #fff;
	padding: 50px 40px 40px;
}

.page-info .info-recommend-term__title {
	position: absolute;
	top: 5px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
}

.page-info .info-recommend-term__title .hexagon-title {
	width: var(--hex-title-w);
	height: var(--hex-title-h);
	max-width: none;
	margin: 0;
	top: -32px;
}

.page-info .info-recommend-term__title .hexagon-title-text {
	font-size: var(--hex-title-font);
	letter-spacing: 0.1em;
	padding: 0;
}

.page-info .info-recommend-term__lead {
	margin: 0 0 16px;
	font-size: clamp(14px, calc(0.60vw + 9.43px), 18px);
	font-weight: var(--font-weight-bold);
	line-height: 1.6;
	color: #1f1f1f;
}

.page-info .info-recommend-term__grid {
	border: 3px solid #000;
}

.page-info .info-recommend-term__row {
	display: grid;
	grid-template-columns: 169px 1fr 169px 1fr;
}

.page-info .info-recommend-term__cell {
	border: 1px solid #000;
	background: #fff;
	padding: clamp(8px, calc(1.19vw - 1.14px), 16px) clamp(10px, calc(0.89vw + 3.14px), 16px);
	font-size: clamp(10px, calc(0.74vw + 4.29px), 15px);
	line-height: 1.6;
	color: #1f1f1f;
	display: flex;
	align-items: center;
}

.page-info .info-recommend-term__cell--k {
	background: #f5c400;
	font-weight: var(--font-weight-bold);
	justify-content: center;
	text-align: center;
	font-size: clamp(10px, calc(0.89vw + 3.14px), 16px);
}

@media (max-width: 768px) {
	.page-info .info-section--recommend,
	.page-info .info-section--general {
		margin: 48px auto;
	}

	.page-info .info-section--recommend .hexagon-title,
	.page-info .info-section--general .hexagon-title {
		top: -30px;
	}

	.page-info .info-section--recommend .hexagon-title-text,
	.page-info .info-section--general .hexagon-title-text {
		font-size: 20px;
	}

	.page-info .info-recommend {
		padding: 48px 18px 24px;
		gap: 48px;
	}

	.page-info .info-recommend__method-head {
		font-size: 14px;
		line-height: 1.6;
		padding: 8px 16px;
	}

	.page-info .info-recommend__method-body {
		padding: 12px;
		font-size: 14px;
		line-height: 24px;
		text-align: center;
	}

	.page-info .info-recommend-term {
		padding: 44px 18px 16px;
		border: 2px solid #1f1f1f;
	}

	.page-info .info-recommend-term__lead {
		font-size: 14px;
		line-height: 1.6;
		margin-bottom: 16px;
		text-align: center;
	}

	.page-info .info-recommend-term__grid {
		border-width: 2px;
	}

	.page-info .info-recommend-term__row {
		grid-template-columns: 74px 1fr;
	}

	.page-info .info-recommend-term__cell {
		font-size: 10px;
		padding: 8px 10px;
		line-height: 1.6;
		justify-content: center;
		text-align: center;
	}

	.page-info .info-recommend-term__cell--k {
		font-size: 10px;
		background: #ffd02f;
	}
}

/* --- 試験会場（Figma：画像 + 住所ブロック） --- */
.page-info .info-section--venue {
	position: relative;
	margin: var(--info-section-space) auto;
}

.page-info .info-section--venue .hexagon-title {
	position: absolute;
	top: -32px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
	height: 70px;
}

.page-info .info-venue {
	position: relative;
	border: 4px solid #000;
	border-radius: 4px;
	background: #fff;
	padding: 64px 40px 40px;
	display: grid;
	grid-template-columns: 482px 1fr;
	gap: 40px;
	align-items: center;
}

.page-info .info-venue__media {
	border: 4px solid #1f1f1f;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 482 / 271;
	background: #d9d9d9;
}

.page-info .info-venue__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.page-info .info-venue__content {
	font-size: 18px;
	line-height: normal;
	color: #1f1f1f;
	display: flex;
	flex-direction: column;
}

.page-info .info-venue__title {
	margin: 0;
	font-weight: var(--font-weight-bold);
}

.page-info .info-venue__address{
	margin-bottom: 16px;
}

.page-info .info-venue__note {
	font-size: clamp(16px, calc(0.30vw + 13.71px), 18px);
	margin-bottom: 8px;
}

.page-info .info-venue__link {
	color: inherit;
	text-decoration: underline;
}

@media (max-width: 1024px) {
	.page-info .info-venue {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.page-info .info-section--venue {
		margin: 48px auto;
	}

	.page-info .info-section--venue .hexagon-title {
		top: -30px;
	}

	.page-info .info-section--venue .hexagon-title-text {
		font-size: 20px;
	}

	.page-info .info-venue {
		padding: 48px 20px 24px;
		gap: 24px;
	}

	.page-info .info-venue__media {
		border-radius: 8px;
	}

	.page-info .info-venue__content {
		font-size: 18px;
		line-height: normal;
		gap: 0;
	}

	.page-info .info-venue__title {
		font-size: 18px;
		line-height: normal;
	}

	.page-info .info-venue__address {
		font-size: 18px;
		line-height: normal;
		margin-bottom: 16px;
	}

	.page-info .info-venue__link {
		display: block;
		margin-left: 0;
	}

	.page-info .info-venue__note {
		font-size: 16px;
		line-height: normal;
		margin-bottom: 0;
	}
}

/* --- 備考 --- */
.page-info .info-notes {
	background-color: #f8f8f8;
	border-radius: var(--border-radius-md);
	padding: 16px 20px;
}

.page-info .info-notes p {
	margin: 0 0 8px;
}
.page-info .info-notes p:last-child { margin-bottom: 0; }

/* --- テーブル横スクロール wrapper --- */
.page-info .info-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* --- 出願資格ボックス（黒枠＋hexagon-title オーバーラップ：boshu-box と同構造） --- */
.page-info .info-section--shikaku {
	margin-top: 36px;
}

.page-info .info-shikaku-box {
	position: relative;
	border: 4px solid #1f1f1f;
	background: #ffffff;
	border-radius: 4px;
	padding: 75px 40px 40px;
}

.page-info .info-section--shikaku .hexagon-title {
	position: absolute;
	top: -38px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	height: 70px;
}

/* --- 出願資格テーブル --- */
.page-info .info-shikaku-table {
	width: 100%;
	border: 4px solid #1f1f1f;
	border-collapse: collapse;
	margin: 0;
	table-layout: fixed;
}

.page-info .info-shikaku-table th,
.page-info .info-shikaku-table td {
	height: 56px;
	padding: 16px 22px;
	border: 1px solid #1f1f1f;
	text-align: center;
	vertical-align: middle;
	line-height: var(--line-height-normal);
	font-weight: var(--font-weight-normal);
	font-size: var(--font-size-md);
	color: #1f1f1f;
	background-color: #ffffff;
}

.page-info .info-shikaku-table thead th {
	background-color: #ffd02f;
	color: #1e2939;
	font-weight: var(--font-weight-bold);
}

.page-info .info-shikaku-table tbody th.info-shikaku-table__category {
	width: 300px;
	background-color: #ffffff;
	font-weight: var(--font-weight-normal);
	white-space: normal;
}

.page-info .info-shikaku-table__detail {
	width: 300px;
	text-align: left;
}

.page-info .info-shikaku-table__mark {
	width: 300px;
}

@media (max-width: 768px) {
	.page-info .info-shikaku-box {
		padding: 48px 16px 24px;
		border-width: 2px;
	}

	.page-info .info-section--shikaku .hexagon-title {
		top: -30px;
	}

	.page-info .info-section--shikaku .hexagon-title-text {
		font-size: 20px;
	}

	/* SPでは横スクロールせず画面内に収める */
	.page-info .info-section--shikaku .info-table-scroll {
		overflow-x: visible;
	}

	.page-info .info-shikaku-table {
		border-width: 2px;
		table-layout: fixed;
	}

	.page-info .info-shikaku-table th,
	.page-info .info-shikaku-table td {
		height: auto;
		padding: 8px 4px;
		font-size: 10px;
		line-height: 1.5;
		word-break: break-word;
	}

	.page-info .info-shikaku-table tbody th.info-shikaku-table__category {
		width: auto;
	}

	.page-info .info-shikaku-table__detail {
		width: auto;
		text-align: center;
		padding-left: 4px;
		padding-right: 4px;
	}

	.page-info .info-shikaku-table__mark {
		width: auto;
	}
}

/* --- 入試区分カード --- */
.page-info .info-exam-type__title {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 12px;
	padding-left: 12px;
	border-left: 4px solid var(--color-primary);
}

/* --- 資格詳細（Figma：黄色ヘッダー + 枠付きブロック） --- */
.page-info .info-section--qualification-detail {
	margin: var(--info-section-space) auto;
}

.page-info .info-section--qualification-detail .hexagon-title {
	position: absolute;
	top: -32px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
	height: 70px;
}

.page-info .info-qualification-detail {
	position: relative;
	border: 4px solid #000;
	border-radius: 4px;
	background: #fff;
	padding: 75px 40px 40px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.page-info .info-qualification-detail__block {
	border: 4px solid #1f1f1f;
	background: #fff;
}

/* 768px〜1440px 間で線形にスケール、1440px以上は固定 */
.page-info .info-qualification-detail__head {
	margin: 0;
	background: #ffd02f;
	border-bottom: 1px solid #1f1f1f;
	padding: clamp(8px, calc(1.19vw - 1.14px), 16px) clamp(12px, calc(1.79vw - 1.71px), 24px);
	font-size: clamp(12px, calc(1.19vw + 2.86px), 20px);
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	color: #1f1f1f;
}

.page-info .info-qualification-detail__body {
	padding: clamp(12px, calc(0.60vw + 7.43px), 16px) clamp(12px, calc(1.79vw - 1.71px), 24px);
}

.page-info .info-qualification-detail__text {
	margin: 0;
	font-size: clamp(14px, calc(0.30vw + 11.71px), 16px);
	line-height: 1.6;
	color: #1f1f1f;
}

.page-info .info-qualification-detail__subhead {
	margin: 0 0 16px;
	font-size: clamp(16px, calc(0.30vw + 13.71px), 18px);
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	color: #1f1f1f;
}

.page-info .info-qualification-detail__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, calc(1.19vw + 6.86px), 24px);
}

.page-info .info-qualification-detail__card {
	border: 4px solid #000;
	border-radius: 4px;
	background: #fff;
	padding: clamp(16px, calc(0.60vw + 11.43px), 20px);
}

.page-info .info-qualification-detail__card-title {
	margin: 0 0 clamp(12px, calc(0.60vw + 7.43px), 16px);
	font-size: clamp(14px, calc(0.30vw + 11.71px), 16px);
	font-weight: var(--font-weight-bold);
	line-height: 1.5;
	color: #1f1f1f;
}

.page-info .info-qualification-detail__list {
	margin: 0;
	padding-left: 1.25em;
	font-size: clamp(14px, calc(0.30vw + 11.71px), 16px);
	line-height: 1.6;
	color: #1f1f1f;
}

.page-info .info-qualification-detail__note {
	list-style: none;
	margin-left: -1.25em;
}

@media (max-width: 1024px) {
	.page-info .info-qualification-detail__cards {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.page-info .info-section--qualification-detail {
		margin: 48px auto;
	}

	.page-info .info-section--qualification-detail .hexagon-title {
		top: -30px;
	}

	.page-info .info-section--qualification-detail .hexagon-title-text {
		font-size: 20px;
	}

	.page-info .info-qualification-detail {
		padding: 48px 16px 24px;
		gap: 16px;
	}

	.page-info .info-qualification-detail__head {
		font-size: 12px;
		line-height: 1.5;
		padding: 8px 12px;
		text-align: center;
	}

	.page-info .info-qualification-detail__body {
		padding: 12px;
	}

	.page-info .info-qualification-detail__text {
		font-size: 14px;
		line-height: 20px;
	}

	.page-info .info-qualification-detail__subhead {
		font-size: 16px;
		line-height: 24px;
		margin-bottom: 16px;
	}

	.page-info .info-qualification-detail__cards {
		gap: 16px;
	}

	.page-info .info-qualification-detail__card {
		padding: 16px;
	}

	.page-info .info-qualification-detail__card-title {
		font-size: 14px;
		line-height: 24px;
		margin-bottom: 16px;
	}

	.page-info .info-qualification-detail__list {
		font-size: 14px;
		line-height: 24px;
		padding-left: 1.25em;
	}
}

.page-info .info-exam-type__subtitle {
	font-weight: var(--font-weight-bold);
	margin: 12px 0 8px;
}

/* --- 選考方法ラベル --- */
.page-info .info-selection-method {
	margin-bottom: 16px;
	font-size: var(--font-size-md);
}

/* --- 入試日程テーブル --- */
.page-info .info-schedule-table {
	min-width: 600px;
}

.page-info .info-schedule-table__period {
	background-color: #ffd02f;
	color: #1e2939;
	font-weight: var(--font-weight-bold);
}

.page-info .info-schedule-table thead tr:nth-child(2) td {
	background-color: var(--color-gray-bg);
	font-size: var(--font-size-xs);
	text-align: left;
}

.page-info .info-schedule-table tbody th {
	background-color: #f5c400;
	color: #1e2939;
	text-align: left;
	white-space: nowrap;
	font-weight: var(--font-weight-bold);
}

/* --- 総合型選抜フロー --- */
.page-info .info-flow__intro {
	margin-bottom: 24px;
	padding: 16px;
	background-color: var(--color-gray-bg);
	border-radius: 4px;
	line-height: var(--line-height-loose);
}

.page-info .info-flow {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.page-info .info-flow__step {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 16px;
	position: relative;
	padding-bottom: 0;
}

.page-info .info-flow__step:not(.info-flow__step--last)::after {
	content: '';
	position: absolute;
	left: 44px;
	top: 44px;
	bottom: -24px;
	width: 2px;
	background-color: var(--color-primary);
}

.page-info .info-flow__step-label {
	width: 88px;
	height: 88px;
	background-color: #ffd02f;
	color: #1e2939;
	font-weight: var(--font-weight-bold);
	font-size: var(--font-size-md);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
	position: relative;
	z-index: 1;
	text-align: center;
}

.page-info .info-flow__step-desc {
	padding: 20px 0;
	line-height: var(--line-height-loose);
}

.page-info .info-flow__step + .info-flow__step {
	margin-top: 24px;
}

@media (max-width: 768px) {
	.page-info .info-flow__step {
		grid-template-columns: 64px 1fr;
	}

	.page-info .info-flow__step-label {
		width: 64px;
		height: 64px;
		font-size: var(--font-size-xs);
	}

	.page-info .info-flow__step:not(.info-flow__step--last)::after {
		left: 32px;
		top: 64px;
	}
}

/* =========================================================
   総合型選抜入学試験（出願までフロー + Ⅰ〜Ⅷ期日程テーブル）
   ========================================================= */

.page-info .info-exam-box {
	position: relative;
	border: 4px solid #1f1f1f;
	background: #ffffff;
	border-radius: 4px;
	padding: 81px 40px 40px;
}

@media (max-width: 1440px) and (min-width: 769px) {
	.page-info .info-exam-box {
		/* 1440px: 81/40/64 → 769px: 40/16/32 (SPの値に寄せる) */
		padding:
			clamp(40px, calc(6.11vw - 7px), 81px)
			clamp(16px, calc(3.58vw - 11.5px), 40px)
			clamp(32px, calc(4.77vw - 4.6px), 40px);
	}
}

/* --- 「出願まで」ヘッダー --- */
.page-info .info-exam-box__heading {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 clamp(20px, calc(0.60vw + 15.43px), 24px);
}

.page-info .info-exam-box__heading-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(28px, calc(1.79vw + 14.29px), 40px);
	height: clamp(28px, calc(1.79vw + 14.29px), 40px);
	color: #1f1f1f;
}

.page-info .info-exam-box__heading-icon svg {
	width: 100%;
	height: 100%;
}

.page-info .info-exam-box__heading-title {
	margin: 0;
	font-family: var(--font-family-primary);
	font-weight: var(--font-weight-bold);
	font-size: clamp(22px, calc(0.89vw + 15.14px), 28px);
	line-height: 1.4;
	color: #1f1f1f;
}

/* --- 出願フロー（6ステップ：緑背景ピルボックス） --- */
.page-info .info-exam-flow {
	list-style: none;
	padding: 0;
	margin: 0 auto 96px;
	max-width: 1024px;
	display: flex;
	flex-direction: column;
	gap: 66px;
	position: relative;
}

.page-info .info-exam-flow::before {
	content: '';
	position: absolute;
	top: 80px;
	bottom: 80px;
	left: 72px;
	width: 2px;
	background-color: #1f1f1f;
	z-index: 0;
}

.page-info .info-exam-flow__step {
	position: relative;
	display: grid;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	min-height: 136px;
	padding: 24px 32px 24px 128px;
	background-color: #ecffda;
	border: 4px solid #1f1f1f;
	border-radius: 10px;
}

.page-info .info-exam-flow__step-icon {
	position: absolute;
	top: 50%;
	left: 41px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background-color: #1f1f1f;
	color: #ffffff;
	border-radius: 50%;
	z-index: 2;
}

.page-info .info-exam-flow__step-icon svg {
	width: 32px;
	height: 32px;
}

.page-info .info-exam-flow__step-icon img {
	display: block;
	width: 32px;
	height: 32px;
}

.page-info .info-exam-flow__step-desc {
	grid-column: 2;
	margin: 0;
	padding-right: 16px;
	font-family: var(--font-family-primary);
	font-weight: var(--font-weight-normal);
	font-size: clamp(14px, calc(0.60vw + 9.43px), 18px);
	line-height: 1.56;
	color: #1f1f1f;
}

.page-info .info-exam-flow__step-label {
	grid-column: 3;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-left: auto;
}

.page-info .info-exam-flow__step-label {
	/* 各stepを基準に、中央上に重ねる（PC） */
	position: absolute;
	top: -26px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	grid-column: auto;
	margin-left: 0;
	justify-content: center;
	pointer-events: none;
}

.page-info .info-exam-flow__step-label .hexagon-title {
	pointer-events: auto;
}

.page-info .info-exam-flow__step-desc {
	padding-right: 0;
}

.page-info .info-exam-flow__step-label .hexagon-title {
	width: var(--hex-title-w);
	height: var(--hex-step-h);
	max-width: none;
	margin: 0;
}

.page-info .info-exam-flow__step-label .hexagon-title-text {
	font-size: var(--hex-title-font);
	letter-spacing: 0.1em;
	padding: 0;
}

/* --- Ⅰ〜Ⅷ期 日程テーブル --- */
.page-info .info-exam-schedules {
	display: flex;
	flex-direction: column;
	gap: 66px;
}

.page-info .info-exam-schedule {
	position: relative;
	background: #ffffff;
	border: 4px solid #1f1f1f;
	border-radius: 4px;
	padding: 50px 40px 40px;
}

.page-info .info-exam-schedule__term {
	position: absolute;
	top: -26px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}

.page-info .info-exam-schedule__term .hexagon-title {
	width: var(--hex-title-w);
	height: var(--hex-schedule-h);
	max-width: none;
	margin: 0;
}

.page-info .info-exam-schedule__term .hexagon-title-text {
	font-size: var(--hex-title-font);
	letter-spacing: 0.1em;
	padding: 0;
}

.page-info .info-exam-schedule__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.page-info .info-exam-schedule__target {
	margin: 0;
	font-family: var(--font-family-primary);
	font-weight: var(--font-weight-bold);
	font-size: clamp(14px, calc(0.60vw + 9.43px), 18px);
	line-height: 1.6;
	color: #1a1a1a;
}

.page-info .info-exam-schedule__table {
	width: 100%;
	border: 4px solid #1f1f1f;
	border-collapse: collapse;
	margin: 0;
	table-layout: fixed;
}

.page-info .info-exam-schedule__table th,
.page-info .info-exam-schedule__table td {
	height: 82px;
	padding: 16px;
	border: 1px solid #1f1f1f;
	vertical-align: middle;
	font-family: var(--font-family-primary);
	line-height: 1.6;
	color: #1a1a1a;
}

.page-info .info-exam-schedule__label {
	width: 169px;
	background-color: #f5c400;
	text-align: center;
	font-weight: var(--font-weight-bold);
	font-size: clamp(10px, calc(0.89vw + 3.14px), 16px);
	white-space: nowrap;
}

.page-info .info-exam-schedule__value {
	background-color: #ffffff;
	text-align: left;
	font-weight: var(--font-weight-normal);
	font-size: clamp(10px, calc(0.74vw + 4.29px), 15px);
}

/* --- レスポンシブ（〜768px） --- */
@media (max-width: 768px) {
	/* 4px枠はSPでは2pxに落とす */
	.page-info .info-boshu-box,
	.page-info .info-boshu-table,
	.page-info .info-qualification,
	.page-info .info-recommend,
	.page-info .info-recommend__method,
	.page-info .info-recommend-term__grid,
	.page-info .info-venue,
	.page-info .info-venue__media,
	.page-info .info-shikaku-box,
	.page-info .info-shikaku-table,
	.page-info .info-qualification-detail,
	.page-info .info-qualification-detail__block,
	.page-info .info-qualification-detail__card,
	.page-info .info-exam-box,
	.page-info .info-exam-flow__step,
	.page-info .info-exam-schedule,
	.page-info .info-exam-schedule__table {
		border-width: 2px;
	}

	.page-info .info-recommend-term__grid{
		border-width: 1px;
	}

	.page-info .info-exam-box {
		padding: 56px 16px 32px;
	}

	.page-info .info-exam-box__heading {
		padding-left: 0;
		margin-bottom: 32px;
	}

	.page-info .info-exam-box__heading-icon {
		width: 28px;
		height: 28px;
	}

	.page-info .info-exam-box__heading-title {
		font-size: 22px;
	}

	.page-info .info-exam-flow {
		gap: 48px;
		margin-bottom: 48px;
	}

	.page-info .info-exam-flow::before {
		left: 42px;
	}

	.page-info .info-exam-flow__step {
		grid-template-rows: auto auto;
		padding: 40px 16px 20px 72px;
		min-height: 0;
		row-gap: 12px;
	}

	.page-info .info-exam-flow__step-icon {
		left: 16px;
		width: 48px;
		height: 48px;
	}

	.page-info .info-exam-flow__step-icon svg {
		width: 24px;
		height: 24px;
	}

	.page-info .info-exam-flow__step-icon img {
		display: block;
		width: 24px;
		height: 24px;
	}

	.page-info .info-exam-flow__step-desc {
		grid-column: 2;
		grid-row: 1 / 3;
		font-size: 14px;
		padding-right: 0;
	}

	.page-info .info-exam-flow__step-label {
		top: -20px;

	}

	.page-info .info-exam-flow__step-label .hexagon-title {
		width: 160px;
		height: 40px;
	}

	.page-info .info-exam-flow__step-label .hexagon-title-text {
		font-size: 16px;
	}

	.page-info .info-exam-schedules {
		gap: 48px;
	}

	.page-info .info-exam-schedule {
		padding: 40px 12px 24px;
	}

	.page-info .info-exam-schedule__term {
		top: -22px;
	}

	.page-info .info-exam-schedule__term .hexagon-title {
		width: 160px;
		height: 44px;
	}

	.page-info .info-exam-schedule__term .hexagon-title-text {
		font-size: 16px;
	}

	/* SPでは label | value の2列構成に再レイアウト */
	.page-info .info-exam-schedule__table {
		display: grid;
		grid-template-columns: 74px 1fr;
		width: 100%;
		border: 2px solid #1f1f1f;
		overflow-x: visible;
		table-layout: auto;
	}

	.page-info .info-exam-schedule__table tbody,
	.page-info .info-exam-schedule__table tr {
		display: contents;
	}

	.page-info .info-exam-schedule__table th,
	.page-info .info-exam-schedule__table td {
		height: auto;
		padding: 8px 10px;
		font-size: 10px;
		line-height: 1.6;
		border: 1px solid #1f1f1f;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.page-info .info-exam-schedule__label {
		width: auto;
		min-width: 0;
		background-color: #ffd02f;
		font-size: 10px;
		text-align: center;
		white-space: normal;
	}

	.page-info .info-exam-schedule__value {
		font-size: 10px;
		text-align: center;
		white-space: normal;
		justify-content: center;
	}

	/* colspan="3" の最終行 value を value 列いっぱいに */
	.page-info .info-exam-schedule__table td[colspan] {
		grid-column: 2 / -1;
	}
}

/* --- 課程セル内の改行: PCでは非表示 / 768px以下で改行 --- */
.page-info .br-sp {
	display: none;
}
@media (max-width: 768px) {
	.page-info .br-sp {
		display: inline;
	}
}

/* --- fadeUp --- */
.fadeUp {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.fadeUp.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* hexagon-title：768px 以下は 60px（上記セクション各所の height:70px より後に置き、打ち消されないようにする） */
@media (max-width: 768px) {
	.page-info .info-section--exam > .hexagon-title,
	.page-info .info-section--boshu .hexagon-title,
	.page-info .info-section--recommend .hexagon-title,
	.page-info .info-section--general .hexagon-title,
	.page-info .info-section--venue .hexagon-title,
	.page-info .info-section--shikaku .hexagon-title,
	.page-info .info-section--qualification-detail .hexagon-title {
		height: 60px;
	}
}
