/**
 * 固定ページ: access 専用スタイル
 * URL: /about/access
 * page-access.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-access {
	margin-top: -16px;
	color: var(--color-black);
	font-family: var(--font-family-primary);
}

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

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

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

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

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

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

.page-access .access-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-access .access-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-access .access-kv__title-inner {
	display: flex;
	align-items: center;
	gap: 4px;
	width: fit-content;
	max-width: 100%;
}

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

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

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

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

	.page-access .access-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-access .access-kv__text {
		height: auto;
		padding: 4.1875rem var(--container-padding-x-sp, 1.5rem);
	}

	.page-access .access-kv__title-inner {
		height: 32px;
	}

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

/* ----- パンくず（page-course と同構成・access 専用クラス） ----- */
.page-access .access-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0 8px;
	padding: 12px 2em;
	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-access .access-breadcrumb {
		margin-bottom: 64px;
	}
}

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

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

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

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

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

/* ----- コンテナ / 本文（コンテンツは別途実装予定） ----- */
.page-access .container {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 0 24px;
}

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

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

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

/* ----- 都心からの路線図セクション ----- */
.page-access .access-route {
	--access-route-bg: #ecffda;
	padding: clamp(80px, 8.33vw, 120px) clamp(16px, 2.78vw, 40px) 0;
}

.page-access .access-route__inner {
	position: relative;
	max-width: min(1280px, 100%);
	margin: 0 auto;
	background-color: var(--access-route-bg);
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.69vw, 10px);
	padding: clamp(56px, 5.56vw, 80px) clamp(20px, 2.78vw, 40px) clamp(40px, 4.44vw, 56px);
	box-sizing: border-box;
}

/* ヘックスタイトル */
.page-access .access-route__title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(362px, 80%);
	height: clamp(54px, 4.93vw, 71px);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}

.page-access .access-route__title::before,
.page-access .access-route__title::after {
	content: '';
	position: absolute;
	clip-path: polygon(7.3% 2.8%, 92.7% 2.8%, 99.3% 50%, 92.7% 97.2%, 7.3% 97.2%, 0.7% 50%);
}

.page-access .access-route__title::before {
	inset: 0;
	background-color: var(--color-black);
	z-index: 1;
}

.page-access .access-route__title::after {
	inset: clamp(2px, 0.28vw, 4px);
	background-color: white;
	z-index: 2;
}

.page-access .access-route__title-text {
	position: relative;
	z-index: 3;
	font-size: clamp(20px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
}

/* 左:路線図 / 右:情報 の2カラム */
.page-access .access-route__grid {
	display: grid;
	grid-template-columns: clamp(360px, 35.21vw, 507px) 1fr;
	gap: clamp(24px, 3.33vw, 48px);
	align-items: start;
}

.page-access .access-route__map {
	background-color: var(--color-white);
	border: clamp(2px, 0.21vw, 3px) solid var(--color-black);
	border-radius: clamp(6px, 0.56vw, 8px);
	overflow: hidden;
	aspect-ratio: 507 / 544;
}

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

/* 右カラム */
.page-access .access-route__info {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.11vw, 16px);
}

/* 見出し行（バス／電車） */
.page-access .access-route__heading {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.page-access .access-route__heading--bus {
	margin-bottom: clamp(8px, 1.11vw, 16px);
}

.page-access .access-route__heading--train {
	margin-bottom: clamp(4px, 0.42vw, 6px);
}

.page-access .access-route__icon {
	flex: 0 0 auto;
	color: var(--color-black);
}

.page-access .access-route__heading--train .access-route__icon {
	width: 34px;
	height: 34px;
}

.page-access .access-route__heading-text {
	margin: 0;
	font-size: clamp(16px, 1.39vw, 20px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1.4;
}

.page-access .access-route__heading-text--lg {
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.6;
}

/* 時間バッジリスト（2列） */
.page-access .access-route__time-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(10px, 1.11vw, 16px);
}

.page-access .access-route__time-item {
	display: flex;
	align-items: center;
	gap: 8px;
	background-color: var(--color-white);
	border-radius: clamp(6px, 0.56vw, 8px);
	padding: 10px;
	min-height: 44px;
	box-sizing: border-box;
}

.page-access .access-route__time-icon {
	flex: 0 0 auto;
	color: var(--color-black);
}

.page-access .access-route__time-text {
	font-size: clamp(16px, 1.39vw, 20px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 24px;
	white-space: nowrap;
}

/* 注釈 */
.page-access .access-route__note {
	margin: clamp(8px, 0.83vw, 12px) 0 0;
	font-size: clamp(13px, 0.97vw, 14px);
	font-weight: var(--font-weight-normal);
	color: var(--color-black);
	line-height: 1.6;
}

.page-access .access-route__note-indent {
	display: inline-block;
	padding-left: 1em;
}

@media (max-width: 1024px) {
	.page-access .access-route__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.page-access .access-route__map {
		max-width: 507px;
		margin: 0 auto;
		width: 100%;
	}
}

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

	.page-access .access-route__inner {
		border-width: 2px;
		border-radius: 6px;
		padding: 40px 24px 32px;
	}

	.page-access .access-route__title {
		width: min(296px, 90%);
		height: 60px;
	}

	.page-access .access-route__title::after {
		inset: 2px;
	}

	.page-access .access-route__title-text {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	.page-access .access-route__grid {
		gap: 22px;
	}

	/* SP: 路線図は正方形 */
	.page-access .access-route__map {
		border-width: 3px;
		max-width: 100%;
	}

	.page-access .access-route__info {
		gap: 0;
	}

	/* SP: 見出しを2行表示 */
	.page-access .access-route__heading-line {
		display: block;
	}

	.page-access .access-route__heading--bus {
		margin: 0 0 22px;
		align-items: flex-start;
		gap: 10px;
	}

	.page-access .access-route__heading--bus .access-route__icon {
		margin-top: 4px;
	}

	.page-access .access-route__heading--train {
		margin: 0 0 16px;
		align-items: flex-start;
		gap: 10px;
	}

	.page-access .access-route__heading--train .access-route__icon {
		width: 24px;
		height: 24px;
		margin-top: 2px;
	}

	.page-access .access-route__heading-text {
		font-size: 18px;
		line-height: 24px;
	}

	.page-access .access-route__heading-text--lg {
		font-size: 16px;
		line-height: 24px;
	}

	.page-access .access-route__time-list {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.page-access .access-route__time-item {
		padding: 10px;
		min-height: 44px;
		gap: 8px;
		border-radius: 8px;
	}

	.page-access .access-route__time-text {
		font-size: 16px;
		line-height: 24px;
	}

	.page-access .access-route__note {
		margin-top: 14px;
		font-size: 14px;
		line-height: 20px;
	}

	.page-access .access-route__note-indent {
		padding-left: 1em;
	}
}

/* ----- 通学方法セクション ----- */
.page-access .access-method {
	--access-method-card-car-bg: #feefda;
	--access-method-card-green-bg: #ecffda;
	padding: clamp(120px, 10.33vw, 154px) clamp(16px, 2.78vw, 40px) 0;
}

.page-access .access-method__inner {
	position: relative;
	max-width: min(1280px, 100%);
	margin: 0 auto;
	background-color: var(--color-white);
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.69vw, 10px);
	padding: clamp(64px, 6.25vw, 90px) clamp(20px, 2.78vw, 40px) clamp(40px, 4.17vw, 60px);
	box-sizing: border-box;
}

/* ヘックスタイトル */
.page-access .access-method__title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(362px, 80%);
	height: clamp(54px, 4.93vw, 71px);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}

.page-access .access-method__title::before,
.page-access .access-method__title::after {
	content: '';
	position: absolute;
	clip-path: polygon(7.3% 2.8%, 92.7% 2.8%, 99.3% 50%, 92.7% 97.2%, 7.3% 97.2%, 0.7% 50%);
}

.page-access .access-method__title::before {
	inset: 0;
	background-color: var(--color-black);
	z-index: 1;
}

.page-access .access-method__title::after {
	inset: clamp(2px, 0.28vw, 4px);
	background-color: var(--color-white);
	z-index: 2;
}

.page-access .access-method__title-text {
	position: relative;
	z-index: 3;
	font-size: clamp(20px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
}

/* セクション見出し（通学方法） */
.page-access .access-method__heading {
	display: flex;
	align-items: center;
	gap: clamp(8px, 0.83vw, 12px);
	margin: 0 0 clamp(20px, 2.22vw, 32px);
}

.page-access .access-method__heading-icon {
	flex: 0 0 auto;
	color: var(--color-black);
	width: clamp(32px, 2.78vw, 40px);
	height: clamp(32px, 2.78vw, 40px);
}

.page-access .access-method__heading-text {
	margin: 0;
	font-size: clamp(22px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1.2;
}

/* カードリスト */
.page-access .access-method__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, 1.67vw, 24px);
}

.page-access .access-method__card {
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(2px, 0.28vw, 4px);
	padding: clamp(20px, 1.94vw, 28px) clamp(20px, 2.22vw, 32px);
	min-height: clamp(140px, 11.36vw, 163px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.11vw, 16px);
}

.page-access .access-method__card--car {
	background-color: var(--access-method-card-car-bg);
}

.page-access .access-method__card--train,
.page-access .access-method__card--other {
	background-color: var(--access-method-card-green-bg);
}

.page-access .access-method__card-header {
	display: flex;
	align-items: center;
	gap: clamp(8px, 0.69vw, 10px);
}

.page-access .access-method__card-icon {
	flex: 0 0 auto;
	color: var(--color-black);
	width: 24px;
	height: 24px;
}

.page-access .access-method__card-title {
	margin: 0;
	font-size: clamp(16px, 1.25vw, 18px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1.2;
}

.page-access .access-method__card-desc {
	margin: 0;
	font-size: clamp(14px, 1.11vw, 16px);
	font-weight: var(--font-weight-normal);
	color: var(--color-black);
	line-height: 1.5;
}

@media (max-width: 1024px) {
	.page-access .access-method__list {
		gap: 16px;
		margin: 0 auto;
	}

	.page-access .access-method__card {
		min-height: 0;
	}
}

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

	.page-access .access-method__inner {
		border-width: 2px;
		border-radius: 6px;
		padding: 40px 18px 24px;
	}

	.page-access .access-method__title {
		width: min(296px, 90%);
		height: 60px;
	}

	.page-access .access-method__title::after {
		inset: 2px;
	}

	.page-access .access-method__title-text {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	/* 通学方法 見出し（小さめ） */
	.page-access .access-method__heading {
		margin: 0 0 14px;
		gap: 8px;
	}

	.page-access .access-method__heading-icon {
		width: 28px;
		height: 28px;
	}

	.page-access .access-method__heading-text {
		font-size: 16px;
		line-height: 1.4;
	}

	/* カードリスト（1列・ギャップ18px） */
	.page-access .access-method__list {
		grid-template-columns: 1fr;
		gap: 18px;
		max-width: none;
	}

	.page-access .access-method__card {
		border-width: 3px;
		border-radius: 4px;
		padding: 22px 24px;
		gap: 12px;
		min-height: 0;
	}

	.page-access .access-method__card-header {
		gap: 10px;
	}

	.page-access .access-method__card-icon {
		width: 24px;
		height: 24px;
	}

	.page-access .access-method__card-title {
		font-size: 16px;
		line-height: 1.2;
	}

	.page-access .access-method__card-desc {
		font-size: 14px;
		line-height: 22px;
	}
}

/* ----- アクセス方法セクション（公共交通機関 / お車の場合） ----- */
.page-access .access-route-info {
	--access-route-info-panel-bg: var(--color-gray-bg);
	padding: clamp(120px, 10.33vw, 154px) clamp(16px, 2.78vw, 40px) 0;
}

.page-access .access-route-info__inner {
	position: relative;
	max-width: min(1280px, 100%);
	margin: 0 auto;
	background-color: var(--color-white);
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.69vw, 10px);
	padding: clamp(64px, 6.25vw, 90px) clamp(20px, 2.78vw, 40px) clamp(40px, 4.17vw, 60px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: clamp(28px, 3.06vw, 44px);
}

/* ヘックスタイトル */
.page-access .access-route-info__title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(362px, 80%);
	height: clamp(54px, 4.93vw, 71px);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}

.page-access .access-route-info__title::before,
.page-access .access-route-info__title::after {
	content: '';
	position: absolute;
	clip-path: polygon(7.3% 2.8%, 92.7% 2.8%, 99.3% 50%, 92.7% 97.2%, 7.3% 97.2%, 0.7% 50%);
}

.page-access .access-route-info__title::before {
	inset: 0;
	background-color: var(--color-black);
	z-index: 1;
}

.page-access .access-route-info__title::after {
	inset: clamp(2px, 0.28vw, 4px);
	background-color: var(--color-white);
	z-index: 2;
}

.page-access .access-route-info__title-text {
	position: relative;
	z-index: 3;
	font-size: clamp(20px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
}

/* ブロック（見出し + パネル） */
.page-access .access-route-info__block {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.11vw, 16px);
}

.page-access .access-route-info__heading {
	display: flex;
	align-items: center;
	gap: clamp(8px, 0.83vw, 12px);
}

.page-access .access-route-info__heading-icon {
	flex: 0 0 auto;
	color: var(--color-black);
	width: clamp(32px, 2.78vw, 40px);
	height: clamp(32px, 2.78vw, 40px);
}

.page-access .access-route-info__heading-text {
	margin: 0;
	font-size: clamp(22px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1.2;
}

/* グレーのパネル */
.page-access .access-route-info__panel {
	background-color: var(--access-route-info-panel-bg);
	border-radius: clamp(6px, 0.56vw, 8px);
	padding: clamp(20px, 2.22vw, 32px) clamp(20px, 1.67vw, 24px);
	box-sizing: border-box;
}

/* 公共交通機関：3カラム（白の縦線で区切り） */
.page-access .access-route-info__transit-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(20px, 2.78vw, 40px);
}

.page-access .access-route-info__transit-item {
	padding: 0 clamp(12px, 1.67vw, 24px) 0 0;
	border-right: 3px solid var(--color-white);
	min-width: 0;
}

.page-access .access-route-info__transit-item:last-child {
	border-right: 0;
	padding-right: 0;
}

.page-access .access-route-info__transit-item p {
	margin: 0;
	font-size: clamp(13px, 1.11vw, 16px);
	font-weight: var(--font-weight-normal);
	color: var(--color-black);
	line-height: 1.5;
}

/* お車の場合 */
.page-access .access-route-info__car-text {
	margin: 0;
	font-size: clamp(14px, 1.11vw, 16px);
	font-weight: var(--font-weight-normal);
	color: var(--color-black);
	line-height: 1.5;
	padding-left: clamp(4px, 0.28vw, 4px);
}

@media (max-width: 1024px) {

	.page-access .access-route-info__transit-item:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}
}

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

	.page-access .access-route-info__inner {
		border-width: 2px;
		border-radius: 6px;
		padding: 40px 18px 24px;
		gap: 24px;
	}

	.page-access .access-route-info__title {
		width: min(296px, 90%);
		height: 60px;
	}

	.page-access .access-route-info__title::after {
		inset: 2px;
	}

	.page-access .access-route-info__title-text {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	/* ブロック（見出し+パネル） */
	.page-access .access-route-info__block {
		gap: 12px;
	}

	/* 見出し */
	.page-access .access-route-info__heading {
		gap: 8px;
	}

	.page-access .access-route-info__heading-icon {
		width: 28px;
		height: 28px;
	}

	.page-access .access-route-info__heading-text {
		font-size: 16px;
		line-height: 1.4;
	}

	/* グレーパネル */
	.page-access .access-route-info__panel {
		padding: 18px;
		border-radius: 8px;
	}

	/* 公共交通機関リスト：白の区切り線で縦並び */
	.page-access .access-route-info__transit-list {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.page-access .access-route-info__transit-item {
		padding: 0 0 24px;
		border-bottom: 3px solid var(--color-white);
		border-right: none;
	}

	.page-access .access-route-info__transit-item:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}

	.page-access .access-route-info__transit-item p {
		font-size: 14px;
		line-height: 24px;
	}

	/* お車の場合 */
	.page-access .access-route-info__car-text {
		font-size: 14px;
		line-height: 24px;
		padding-left: 0;
	}
}

/* ----- アクセスマップセクション ----- */
.page-access .access-map {
	padding: clamp(120px, 10.33vw, 154px) clamp(16px, 2.78vw, 40px) 0;
}

.page-access .access-map__inner {
	position: relative;
	max-width: min(1280px, 100%);
	margin: 0 auto;
}

/* ヘックスタイトル */
.page-access .access-map__title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(362px, 80%);
	height: clamp(54px, 4.93vw, 71px);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}

.page-access .access-map__title::before,
.page-access .access-map__title::after {
	content: '';
	position: absolute;
	clip-path: polygon(7.3% 2.8%, 92.7% 2.8%, 99.3% 50%, 92.7% 97.2%, 7.3% 97.2%, 0.7% 50%);
}

.page-access .access-map__title::before {
	inset: 0;
	background-color: var(--color-black);
	z-index: 1;
}

.page-access .access-map__title::after {
	inset: clamp(2px, 0.28vw, 4px);
	background-color: var(--color-white);
	z-index: 2;
}

.page-access .access-map__title-text {
	position: relative;
	z-index: 3;
	font-size: clamp(20px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	letter-spacing: 0.1em;
	line-height: 1;
	white-space: nowrap;
}

/* マップフレーム */
.page-access .access-map__frame {
	position: relative;
	width: 100%;
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.69vw, 10px);
	overflow: hidden;
	aspect-ratio: 1280 / 530;
	background-color: var(--color-white);
	box-sizing: border-box;
}

.page-access .access-map__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

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

	.page-access .access-map__title {
		width: min(296px, 90%);
		height: 60px;
	}

	.page-access .access-map__title::after {
		inset: 2px;
	}

	.page-access .access-map__title-text {
		font-size: 20px;
		letter-spacing: 0.1em;
	}

	.page-access .access-map__frame {
		border-width: 2px;
		border-radius: 6px;
		aspect-ratio: 329 / 450;
	}
}

/* ----- スクールバス乗り場セクション ----- */
.page-access .access-bus {
	--access-bus-bg: #fdf3df;
	padding: clamp(120px, 10.33vw, 154px) clamp(16px, 2.78vw, 40px) 0;
}

.page-access .access-bus__inner {
	position: relative;
	max-width: min(1280px, 100%);
	margin: 0 auto;
	background-color: var(--access-bus-bg);
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.69vw, 10px);
	padding: clamp(64px, 6.25vw, 90px) clamp(20px, 2.78vw, 40px) clamp(40px, 4.17vw, 60px);
	box-sizing: border-box;
}

/* ヘックスタイトル */
.page-access .access-bus__title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(362px, 80%);
	height: clamp(54px, 4.93vw, 71px);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}

.page-access .access-bus__title::before,
.page-access .access-bus__title::after {
	content: '';
	position: absolute;
	clip-path: polygon(7.3% 2.8%, 92.7% 2.8%, 99.3% 50%, 92.7% 97.2%, 7.3% 97.2%, 0.7% 50%);
}

.page-access .access-bus__title::before {
	inset: 0;
	background-color: var(--color-black);
	z-index: 1;
}

.page-access .access-bus__title::after {
	inset: clamp(2px, 0.28vw, 4px);
	background-color:white;
	z-index: 2;
}

.page-access .access-bus__title-text {
	position: relative;
	z-index: 3;
	font-size: clamp(20px, 1.94vw, 28px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
}

/* 2カラムグリッド */
.page-access .access-bus__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 3.33vw, 48px);
	align-items: start;
}

.page-access .access-bus__col {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* 見出し（バス・時計） */
.page-access .access-bus__heading {
	display: flex;
	align-items: center;
	gap: clamp(6px, 0.56vw, 8px);
	margin: 0;
}

.page-access .access-bus__heading-icon {
	flex: 0 0 auto;
	color: var(--color-black);
	width: clamp(28px, 2.5vw, 36px);
	height: clamp(28px, 2.5vw, 36px);
}

.page-access .access-bus__heading-text {
	margin: 0;
	font-size: clamp(18px, 1.67vw, 24px);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1.4;
}

/* 本川越駅見出しのみ PC で下余白 24px（左カラムはサブテキスト分あるため） */
@media (min-width: 769px) {
	.page-access .access-bus__col:nth-child(2) > .access-bus__heading:first-of-type {
		margin-bottom: 46px;
	}
}

.page-access .access-bus__sub {
	margin: 0 0 16px clamp(36px, 3.06vw, 44px);
	font-size: clamp(14px, 1.11vw, 16px);
	color: var(--color-black);
	line-height: 1.5;
}

/* マップ画像枠 */
.page-access .access-bus__figure {
	margin: 0;
	border: clamp(2px, 0.28vw, 4px) solid var(--color-black);
	border-radius: clamp(6px, 0.56vw, 8px);
	overflow: hidden;
	background-color: var(--color-white);
	aspect-ratio: 570 / 644;
}

.page-access .access-bus__figure--honkawagoe {
	aspect-ratio: 570 / 291;
}

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

/* 時刻表ブロック */
.page-access .access-bus__timetable {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin-top: 40px;
}

.page-access .access-bus__btn-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.11vw, 16px);
}

.page-access .access-bus__btn-list > li {
	display: flex;
	justify-content: flex-start;
}

/* 共通 .btn-more と揃えつつ、このブロックの横幅に収める */
.page-access .access-bus__btn-list .btn-more.access-bus__timetable-btn {
	width: 100%;
	max-width: 19.375rem;
}

/* PCではSP用サブテキストを非表示 */
.page-access .access-bus__sub--sp-only {
	display: none;
}

@media (max-width: 1024px) {
	.page-access .access-bus__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.page-access .access-bus__figure {
		max-width: 570px;
		margin: 0 auto;
		width: 100%;
	}

	.page-access .access-bus__btn-list .btn-more.access-bus__timetable-btn {
		max-width: 100%;
	}
}

@media (max-width: 768px) {
	.page-access .access-bus {
		padding: 32px 24px 32px;
	}

	.page-access .access-bus__inner {
		border-width: 2px;
		border-radius: 6px;
		padding: 40px 18px 24px;
	}

	.page-access .access-bus__title {
		width: min(296px, 90%);
		height: 60px;
	}

	.page-access .access-bus__title::after {
		inset: 2px;
	}

	.page-access .access-bus__title-text {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	/* 2カラム → 1カラム縦並び、ギャップ大きめ */
	.page-access .access-bus__grid {
		gap: 24px;
	}

	.page-access .access-bus__col {
		gap: 8px;
	}

	/* 各駅見出し */
	.page-access .access-bus__heading {
		gap: 8px;
	}

	.page-access .access-bus__heading-icon {
		width: 30px;
		height: 30px;
	}

	.page-access .access-bus__heading-text {
		font-size: 16px;
		line-height: 1.4;
	}

	/* サブテキスト */
	.page-access .access-bus__sub {
		margin-left: 0;
		font-size: 14px;
		line-height: 24px;
	}

	/* SP では本川越にもサブテキストを表示 */
	.page-access .access-bus__sub--sp-only {
		display: block;
	}

	/* マップ枠 */
	.page-access .access-bus__figure {
		border-width: 2px;
		border-radius: 4px;
		margin-top: 4px;
		max-width: 100%;
		aspect-ratio: 293 / 331;
	}

	.page-access .access-bus__figure--honkawagoe {
		aspect-ratio: 293 / 150;
	}

	/* 時刻表ブロック：見出しは非表示、ボタンのみ */
	.page-access .access-bus__timetable {
		margin-top: 16px;
		gap: 16px;
		align-items: stretch;
	}

	.page-access .access-bus__timetable .access-bus__heading {
		display: none;
	}

	.page-access .access-bus__btn-list {
		gap: 16px;
	}

	.page-access .access-bus__btn-list > li {
		justify-content: center;
	}

	.page-access .access-bus__btn-list .btn-more.access-bus__timetable-btn {
		width: 100%;
		max-width:260px;
		height: 47px;
		border-width: 2px;
	}
}

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