/* Stage5Access1 — station access guides. All rules are page-scoped. */
.hal-access-guide {
	background: var(--hal-bg);
	color: var(--hal-body);
}

.hal-access-guide .hal-acg__main {
	overflow: clip;
}

.hal-access-guide .hal-acg-crumb {
	border-bottom: 1px solid var(--hal-line);
}

.hal-access-guide .hal-acg-crumb__list {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: var(--hal-max);
	margin: 0 auto;
	padding: 16px var(--hal-pad);
	box-sizing: border-box;
	list-style: none;
	font-family: var(--hal-sans);
	font-size: 12px;
	line-height: 1.6;
	color: var(--hal-muted);
}

.hal-access-guide .hal-acg-crumb__item {
	margin: 0;
	padding: 0;
}

.hal-access-guide .hal-acg-crumb__item + .hal-acg-crumb__item::before {
	content: "/";
	margin-inline: 10px;
	color: var(--hal-gold);
}

.hal-access-guide .hal-acg-crumb__link {
	color: inherit;
	text-decoration: none;
}

.hal-access-guide .hal-acg-crumb__link:hover,
.hal-access-guide .hal-acg-crumb__link:focus-visible,
.hal-access-guide .hal-acg-nap__row a:hover,
.hal-access-guide .hal-acg-nap__row a:focus-visible {
	color: var(--hal-gold-deep);
}

.hal-access-guide .hal-acg-fv {
	padding-block: clamp(56px, 8vw, 104px);
	background: var(--hal-bg-alt);
	border-bottom: 1px solid var(--hal-line);
}

.hal-access-guide .hal-acg-fv__inner {
	max-width: 920px;
}

.hal-access-guide .hal-acg-fv__kicker {
	display: block;
	font-family: var(--hal-serif);
	font-size: clamp(28px, 3.4vw, 42px);
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .01em;
	color: var(--hal-ink);
}

.hal-access-guide .hal-acg-fv__h1 {
	margin: 0;
	font-family: var(--hal-serif);
	font-weight: 500;
	color: var(--hal-ink);
}

.hal-access-guide .hal-acg-fv__title {
	display: block;
	margin-top: 12px;
	font-size: clamp(22px, 2.5vw, 32px);
	line-height: 1.45;
	letter-spacing: .02em;
}

.hal-access-guide .hal-acg-br--mobile {
	display: none;
}

.hal-access-guide .hal-acg-fv__lead {
	max-width: 760px;
	margin-top: 28px;
}

.hal-access-guide .hal-acg-fv__leadp,
.hal-access-guide .hal-acg__p,
.hal-access-guide .hal-acg-step__body {
	font-family: var(--hal-sans);
	font-size: 16px;
	line-height: 2;
	color: var(--hal-body);
}

.hal-access-guide .hal-acg-fv__leadp,
.hal-access-guide .hal-acg__p {
	margin: 0;
}

.hal-access-guide .hal-acg-fv__leadp + .hal-acg-fv__leadp,
.hal-access-guide .hal-acg__p + .hal-acg__p {
	margin-top: 8px;
}

.hal-access-guide .hal-acg-route,
.hal-access-guide .hal-acg-arrival,
.hal-access-guide .hal-acg-nap,
.hal-access-guide .hal-acg-map {
	padding-block: clamp(64px, 8vw, 112px);
}

.hal-access-guide .hal-acg-arrival,
.hal-access-guide .hal-acg-map {
	background: var(--hal-bg-alt);
	border-block: 1px solid var(--hal-line);
}

.hal-access-guide .hal-acg__h2 {
	margin: 0 0 clamp(32px, 5vw, 56px);
	font-family: var(--hal-serif);
	font-size: clamp(25px, 3.2vw, 38px);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: .02em;
	color: var(--hal-ink);
}

/* Stage5AccessFix2: heading size is owned by purpose, not the shared H2. */
.hal-access-guide .hal-acg__h2--route,
.hal-access-guide .hal-acg__h2--nap,
.hal-access-guide .hal-acg__h2--map {
	font-size: clamp(21px, 2vw, 28px);
}

.hal-access-guide .hal-acg__h2--route {
	text-align: center;
}

.hal-access-guide .hal-acg-arrival .hal-acg__h2--arrival {
	padding: 18px 14px;
	background: var(--hal-bg-box);
}

.hal-access-guide .hal-acg-steps {
	display: grid;
	gap: clamp(28px, 4vw, 48px);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.hal-access-guide .hal-acg-step {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
	grid-template-areas:
		"no media"
		"title media"
		"body media";
	column-gap: clamp(32px, 5vw, 72px);
	row-gap: 16px;
	align-items: start;
	margin: 0;
	padding: clamp(24px, 4vw, 44px);
	background: var(--hal-bg-box);
	border: 1px solid var(--hal-line-card);
	box-sizing: border-box;
}

.hal-access-guide .hal-acg-step__no {
	grid-area: no;
	margin: 0;
	font-family: var(--hal-mono);
	font-size: 28px;
	line-height: 1;
	color: var(--hal-gold-deep);
}

.hal-access-guide .hal-acg-step__nolabel {
	font-size: 11px;
	letter-spacing: .14em;
}

.hal-access-guide .hal-acg-step__h3 {
	grid-area: title;
	margin: 0;
	font-family: var(--hal-serif);
	font-size: clamp(21px, 2.5vw, 29px);
	font-weight: 600;
	line-height: 1.55;
	color: var(--hal-ink);
}

.hal-access-guide .hal-acg-step__figure {
	grid-area: media;
	width: 100%;
	margin: 0;
}

.hal-access-guide .hal-acg-step__figure img {
	display: block;
	width: 100%;
	height: auto;
}

.hal-access-guide .hal-acg-step__caption {
	margin-top: 10px;
	font-family: var(--hal-sans);
	font-size: 13px;
	line-height: 1.8;
	color: var(--hal-muted);
}

.hal-access-guide .hal-acg-step__body {
	grid-area: body;
	margin: 0;
}

.hal-access-guide .hal-acg-arrival .hal-container,
.hal-access-guide .hal-acg-nap .hal-container,
.hal-access-guide .hal-acg-map .hal-container {
	max-width: 920px;
}

.hal-access-guide .hal-acg-nap__list {
	margin: 0;
	border-top: 1px solid var(--hal-line-deep);
}

.hal-access-guide .hal-acg-nap__row {
	display: grid;
	grid-template-columns: minmax(100px, 150px) minmax(0, 1fr);
	gap: 24px;
	padding-block: 18px;
	border-bottom: 1px solid var(--hal-line);
	font-family: var(--hal-sans);
	font-size: 15px;
	line-height: 1.8;
}

.hal-access-guide .hal-acg-nap__row dt,
.hal-access-guide .hal-acg-nap__row dd {
	margin: 0;
}

.hal-access-guide .hal-acg-nap__row dt {
	font-weight: 700;
	color: var(--hal-ink);
}

.hal-access-guide .hal-acg-nap__row a {
	color: var(--hal-body);
	text-underline-offset: 4px;
}

.hal-access-guide .hal-acg-map__frame {
	overflow: hidden;
	border: 1px solid var(--hal-line-card);
}

.hal-access-guide .hal-acg-map__frame iframe {
	display: block;
	width: 100%;
	max-width: 100%;
}

.hal-access-guide .hal-acg__backwrap {
	display: flex;
	justify-content: center;
	padding-block: 40px 120px;
}

.hal-access-guide .hal-sub__cta--access,
.hal-access-guide .hal-sub__cta--access .hal-container,
.hal-access-guide .hal-sub__cta--access .hal-sub__ctarow {
	text-align: center;
}

.hal-access-guide .hal-sub__cta--access .hal-sub__ctarow {
	justify-content: center;
}

.hal-access-guide .hal-sub__cta--access .hal-sub__ctatel {
	font-family: var(--hal-serif);
}

@media (max-width: 1023.98px) {
	.hal-access-guide .hal-acg-step {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"no"
			"title"
			"media"
			"body";
		row-gap: 14px;
	}
}

@media (max-width: 767.98px) {
	.hal-access-guide .hal-container,
	.hal-access-guide .hal-acg-crumb__list {
		padding-inline: 16px;
	}

	.hal-access-guide .hal-acg-fv__kicker {
		font-size: clamp(27px, 7.6vw, 32px);
	}

	/* Stage5AccessFix3: only the two long route identities own this fit. */
	.hal-access-guide--ginza-nanboku .hal-acg-fv__kicker,
	.hal-access-guide--marunouchi .hal-acg-fv__kicker {
		font-size: clamp(18px, 5.8vw, 22px);
		letter-spacing: 0;
		white-space: nowrap;
	}

	.hal-access-guide .hal-acg-fv__title {
		margin-top: 10px;
		font-size: clamp(13px, 4.1vw, 16px);
		line-height: 1.5;
		white-space: nowrap;
	}

	.hal-access-guide .hal-acg-br--mobile {
		display: initial;
	}

	.hal-access-guide .hal-acg__h2--route,
	.hal-access-guide .hal-acg__h2--nap,
	.hal-access-guide .hal-acg__h2--map {
		font-size: clamp(17px, 4.7vw, 19px);
	}

	.hal-access-guide .hal-acg-arrival .hal-acg__h2--arrival {
		text-align: center;
	}

	.hal-access-guide .hal-sub__cta--access .hal-sub__ctarow {
		align-items: center;
	}

	.hal-access-guide .hal-sub__cta--access .hal-sub__ctatel {
		font-size: clamp(14px, 4.1vw, 16px);
		letter-spacing: .02em;
		white-space: nowrap;
	}

	.hal-access-guide .hal-acg-fv__leadp,
	.hal-access-guide .hal-acg__p,
	.hal-access-guide .hal-acg-step__body {
		font-size: 15px;
		line-height: 1.9;
	}

	.hal-access-guide .hal-acg-step {
		padding: 20px;
	}

	.hal-access-guide .hal-acg-step__caption {
		font-size: 12px;
	}

	.hal-access-guide .hal-acg-nap__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}
}
