/* ======================================
   Access Page: Section Common
====================================== */
.p-page-access-main {
	display: flex;
	flex-direction: column;
	gap: 96px;
}

.p-page-access-section-head {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-page-access-section-eyebrow {
	margin: 0;
	color: #2b4f5e;
	font-family: "Overpass", "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16.8px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
}

.p-page-access-section-title {
	margin: 0;
	color: #2b4f5e;
	font-size: 48px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 65.28px;
}

#access-sightseeing-title {
	scroll-margin-top: calc(env(safe-area-inset-top) + 120px);
}

/* ======================================
   Access Page: Access Info
====================================== */
.p-page-access-info {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-page-access-info__grid {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 48px;
}

.p-page-access-info__item {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 16px;
}

.p-page-access-info__item dt {
	margin: 0;
	flex: 0 0 112px;
}

.p-page-access-info__item dt span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 36px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #2b4f5e;
	color: #fff;
	font-size: 14.4px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.36;
}

.p-page-access-info__item dd {
	margin: 0;
	color: #2b4f5e;
	font-size: 18.4px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.6;
}

.p-page-access-info__routes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 48px;
}

.p-page-access-info__route {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-page-access-info__route h3 {
	margin: 0;
	color: #2b4f5e;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.44;
}

.p-page-access-info__route p {
	margin: 0;
	color: #2b4f5e;
	font-size: 15.2px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.84;
}

.p-page-access-info__map {
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
}

.p-page-access-info__map iframe {
	display: block;
	width: 100%;
	aspect-ratio: 1296 / 486;
	min-height: 420px;
	border: 0;
}

.p-page-access-info__map-link-wrap {
	display: flex;
	justify-content: flex-end;
}

.p-page-access-info__map-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border: 1px solid #2b4f5e;
	border-radius: 999px;
	background: #fff;
	color: #2b4f5e;
	font-size: 14.4px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease,
		transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-page-access-info__map-link:hover,
.p-page-access-info__map-link:focus-visible {
	background: #2b4f5e;
	border-color: #2b4f5e;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(43, 79, 94, 0.24);
}

/* ======================================
   Access Page: Sightseeing Cards
====================================== */
.p-page-access-sightseeing {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-page-access-sightseeing__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 48px 32px;
	align-items: stretch;
	justify-items: center;
}

.p-page-access-sightseeing__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	gap: 24px;
	text-align: center;
}

.p-page-access-sightseeing__item-card {
	width: 100%;
	max-width: 336px;
	height: 100%;
	background-color: #b78c65;
	display: flex;
	flex-direction: column;
}

.p-page-access-sightseeing__item-card .p-home-explore__item-image {
	margin: 0;
	line-height: 0;
	position: relative;
	z-index: 0;
}

.p-page-access-sightseeing__item-card .p-home-explore__item-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.p-page-access-sightseeing__item-card .p-home-explore__item-body {
	position: relative;
	z-index: 1;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: 32px;
}

.p-page-access-sightseeing__name {
	margin: 0;
	margin-bottom: 20px;
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
}

.p-page-access-sightseeing__name-break {
	display: none;
}

.p-page-access-sightseeing__item-card .p-home-explore__item-body p {
	color: #fff;
	margin: 0;
	flex: 1;
	padding-bottom: 20px;
}

.p-page-access-sightseeing__map-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin-top: auto;
	padding: 8px 16px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 999px;
	color: #fff;
	font-size: 13.6px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-page-access-sightseeing__map-link:hover,
.p-page-access-sightseeing__map-link:focus-visible {
	background: #fff;
	color: #2b4f5e;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(24, 24, 24, 0.2);
}

.p-page-access__editor-content {
	width: 100%;
	margin-top: 80px;
}

/* ======================================
   Access Page: Responsive
====================================== */
@media (max-width: 1200px) {
	.p-page-access-main {
		gap: 88px;
	}

	.p-page-access-section-eyebrow {
		font-size: 15.2px;
	}

	.p-page-access-section-title {
		font-size: 42px;
		line-height: 1.4;
	}

	.p-page-access-info__item dd {
		font-size: 17px;
	}

	.p-page-access-info__route h3 {
		font-size: 15.2px;
	}

	.p-page-access-info__route p {
		font-size: 14.4px;
	}

}

@media (max-width: 1024px) {
	.p-page-access-main {
		gap: 80px;
	}

	.p-page-access-info {
		gap: 32px;
	}

	.p-page-access-section-eyebrow {
		font-size: 14.4px;
	}

	.p-page-access-section-title {
		font-size: 36px;
		line-height: 1.4;
	}

	#access-sightseeing-title {
		scroll-margin-top: calc(env(safe-area-inset-top) + 104px);
	}

	.p-page-access-info__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.p-page-access-info__item dd {
		font-size: 16.8px;
	}

	.p-page-access-info__routes {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.p-page-access-info__route h3 {
		font-size: 15.2px;
	}

	.p-page-access-info__route p {
		font-size: 14.4px;
	}

	.p-page-access-info__map iframe {
		min-height: 320px;
	}

	.p-page-access-info__map-link {
		min-height: 42px;
		font-size: 13.6px;
	}

	.p-page-access-sightseeing__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 32px 20px;
	}

}

@media (max-width: 768px) {
	.p-page-access .p-page-layout__body {
		padding-bottom: 88px;
	}

	.p-page-access .p-page-layout__content > *:last-child {
		margin-bottom: 0;
	}

	.p-page-access__hero-script {
		font-size: 36px;
	}

	.p-page-access__hero-title {
		font-size: clamp(32px, 9.2vw, 42px);
	}

	.p-page-access__hero-reservation {
		display: none;
	}

	.p-page-access-main {
		gap: 40px;
	}

	.p-page-access-section-head {
		gap: 10px;
	}

	.p-page-access-section-eyebrow {
		font-size: 13.6px;
	}

	.p-page-access-section-title {
		font-size: 30px;
		line-height: 1.34;
	}

	#access-sightseeing-title {
		scroll-margin-top: calc(env(safe-area-inset-top) + 88px);
	}

	.p-page-access-info {
		gap: 20px;
	}

	.p-page-access-info__item {
		align-items: center;
		gap: 12px;
	}

	.p-page-access-info__item dt {
		flex: 0 0 95px;
	}

	.p-page-access-info__item dt span {
		min-height: 30px;
		font-size: 12.5px;
	}

	.p-page-access-info__item dd {
		font-size: 15.2px;
		line-height: 1.6;
	}

	.p-page-access-info__route {
		gap: 12px;
	}

	.p-page-access-info__routes {
		gap: 16px;
		margin-top: 20px;
	}

	.p-page-access-info__route h3 {
		font-size: 14.4px;
	}

	.p-page-access-info__route p {
		font-size: 14px;
		line-height: 1.7;
	}

	.p-page-access-info__map {
		border-radius: 10px;
	}

	.p-page-access-info__map iframe {
		aspect-ratio: 4 / 3;
		min-height: 240px;
	}

	.p-page-access-info__map-link {
		min-height: 40px;
		padding: 9px 16px;
		font-size: 12.8px;
	}

	.p-page-access-sightseeing {
		gap: 24px;
		margin-top: 90px;
	}

	.p-page-access-sightseeing__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 12px;
	}

	.p-page-access-sightseeing__map-link {
		min-height: 36px;
		padding: 7px 14px;
		font-size: 12.8px;
	}

	.p-page-access-sightseeing__item-card .p-home-explore__item-body {
		padding: 10px 8px 15px;
	}

	.p-page-access-sightseeing__name {
		margin: 0;
		margin-bottom: 11px;
		color: #fff;
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.08em;
		line-height: 1.3;
	}

	.p-page-access-sightseeing__name-break {
		display: block;
	}

	.p-page-access-sightseeing__item-card .p-home-explore__item-body p {
		font-size: 11px;
		line-height: 1.75;
		letter-spacing: 0.05em;
		padding-bottom: 9px;
	}

	.p-home-explore__item-band {
		height: 9px;
		margin-top: -9px;
		margin-bottom: -3px;
		position: relative;
		z-index: 2;
		background-color: #b78c65;
		background: url("../../img/home/explore/explore-card-divider.svg") center/100% 100% no-repeat;
	}

	.p-page-access__editor-content {
		margin-top: 28px;
	}
}

@media (max-width: 480px) {
	.p-page-access .p-page-layout__body {
		padding-bottom: 72px;
	}

	.p-page-access-main {
		gap: 36px;
	}

	.p-page-access-info {
		gap: 16px;
	}

	.p-page-access-sightseeing {
		gap: 24px;
		margin-top: 90px;
	}

	.p-page-access__editor-content {
		margin-top: 24px;
	}
}
