/**
 * Local-only /access/ clinic cards.
 * Two clinics keep separate hours so the preview never collapses them into
 * one contradictory schedule. Scoped to .wn-access.
 */

.wamuzu-local-access-page #page_header,
.wamuzu-local-access-page #bread_crumb {
	display: none;
}

.wamuzu-local-access-page #page_contents {
	padding: 0;
}

/* アンカー着地時に直前のカードが半透明ヘッダー越しに透けないようにする。 */
body.wamuzu-local-access-page {
	--wn-preview-header-glass: oklch(0.975 0.011 82);
}

/* 明るい院サイン写真の上でも、共通バナー見出しをWCAG AA相当で読める濃度に保つ。 */
body.wamuzu-local-access-page .wn-preview-page-banner__veil {
	background: linear-gradient(180deg, rgba(33, 28, 24, .58), rgba(33, 28, 24, .54));
}

.wn-access {
	--wn-access-ink: #3e3934;
	--wn-access-muted: #6d645c;
	--wn-access-accent: #756352;
	--wn-access-line: rgba(117, 99, 82, .22);
	--wn-access-paper: #ffffff;
	--wn-access-wash: #f5f1ec;
	background: var(--wn-access-wash);
	color: var(--wn-access-ink);
}

.wn-access .wn-access__container {
	width: min(calc(100% - 32px), 1180px);
	margin-inline: auto;
}

.wn-access__hero {
	/* 上余白は clamp(62px, 8vw, 104px) だった。この節も写真ヘッダーの
	 * 下に入るのでヘッダー回避は不要。2026-08-05 のユーザー指摘。 */
	padding: clamp(44px, 5vw, 68px) 0 clamp(58px, 8vw, 94px);
	border-bottom: 1px solid var(--wn-access-line);
	background:
		radial-gradient(circle at 50% 0, rgba(255, 255, 255, .86), transparent 58%),
		linear-gradient(180deg, #f7f3ee 0%, #eee8e1 100%);
}

.wn-access__hero-frame {
	max-width: 780px;
	margin-inline: auto;
}

.wn-access__hero-copy {
	text-align: center;
}

.wn-access__eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 0 0 16px;
	color: var(--wn-access-accent);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .3em;
	line-height: 1;
}

.wn-access__eyebrow::before,
.wn-access__eyebrow::after {
	width: 34px;
	flex: 0 0 34px;
	height: 1px;
	background: currentColor;
	content: "";
	opacity: .6;
}

.wn-access__title {
	margin: 0;
	color: var(--wn-access-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(29px, 7.7vw, 48px);
	font-weight: 500;
	letter-spacing: .035em;
	line-height: 1.4;
	text-wrap: balance;
}

.wn-access__lead {
	max-width: 36em;
	margin: 20px auto 0;
	color: var(--wn-access-muted);
	font-size: clamp(15px, 1.3vw, 17px);
	line-height: 1.9;
}

.wn-access__clinics {
	padding: clamp(58px, 8vw, 104px) 0 clamp(76px, 10vw, 132px);
}

.wn-access__section-title {
	margin: 0 0 clamp(34px, 5vw, 58px);
	color: var(--wn-access-accent);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(25px, 3vw, 36px);
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1.55;
	text-align: center;
	text-wrap: balance;
}

.wn-access__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(24px, 4vw, 46px);
	align-items: stretch;
}

.wn-access-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--wn-access-line);
	border-radius: 24px;
	background: var(--wn-access-paper);
	box-shadow: 0 20px 54px rgba(76, 60, 45, .08);
}

.wn-access-card__header {
	padding: clamp(26px, 4vw, 40px);
	border-bottom: 1px solid var(--wn-access-line);
	background: #f8f5f1;
}

.wn-access-card__index {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0 0 18px;
	color: var(--wn-access-accent);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	line-height: 1.2;
}

.wn-access-card__title {
	margin: 0;
	color: var(--wn-access-accent);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(27px, 3vw, 38px);
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.45;
	text-wrap: balance;
}

.wn-access-card__station {
	margin: 12px 0 0;
	color: #806b58;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1.65;
}

.wn-access-card__details {
	display: grid;
	margin: 0;
	padding: 8px clamp(22px, 4vw, 40px) 0;
}

.wn-access-card__details > div {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: 14px;
	padding: 18px 0;
	border-bottom: 1px solid var(--wn-access-line);
}

.wn-access-card__details dt,
.wn-access-card__details dd {
	margin: 0;
}

.wn-access-card__details dt {
	color: var(--wn-access-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
}

.wn-access-card__details dd {
	min-width: 0;
	color: var(--wn-access-muted);
	font-size: 14px;
	line-height: 1.8;
}

.wn-access-card__details address {
	display: grid;
	gap: 2px;
	font-style: normal;
}

.wn-access-card__details a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	color: var(--wn-access-accent);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.wn-access-card__hours {
	margin: 24px clamp(22px, 4vw, 40px) 0;
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid var(--wn-access-line);
	border-radius: 16px;
	background: var(--wn-access-wash);
}

.wn-access-card__hours h4 {
	margin: 0 0 14px;
	color: var(--wn-access-accent);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.5;
}

.wn-access-card__hours dl {
	display: grid;
	gap: 0;
	margin: 0;
}

.wn-access-card__hours dl > div {
	display: grid;
	grid-template-columns: minmax(74px, .7fr) minmax(0, 1.6fr);
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid rgba(117, 99, 82, .14);
}

.wn-access-card__hours dl > div:first-child {
	border-top: 0;
}

.wn-access-card__hours dt,
.wn-access-card__hours dd {
	margin: 0;
	line-height: 1.65;
}

.wn-access-card__hours dt {
	color: var(--wn-access-accent);
	font-size: 13px;
	font-weight: 700;
}

.wn-access-card__hours dd {
	color: var(--wn-access-ink);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
}

.wn-access-card__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	margin-top: auto;
	padding: 26px clamp(22px, 4vw, 40px) clamp(28px, 4vw, 40px);
}

.wn-access-card__actions a {
	display: inline-flex;
	min-height: 56px;
	align-items: center;
	justify-content: center;
	padding: 12px 18px;
	border: 1px solid var(--wn-access-accent);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1.5;
	text-align: center;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.wn-access-card__actions .wn-access-card__detail {
	background: transparent;
	color: var(--wn-access-accent);
}

.wn-access-card__actions .wn-access-card__reserve {
	background: var(--wn-access-accent);
	color: #fffdf8;
}

.wn-access-card__actions a:focus-visible,
.wn-access-card__details a:focus-visible {
	outline: 2px solid #5f4d3e;
	outline-offset: 3px;
}

@media (pointer: fine) {
	.wn-access-card__detail:hover {
		background: var(--wn-access-accent);
		color: #fffdf8;
	}

	.wn-access-card__reserve:hover {
		border-color: #5f4d3e;
		background: #5f4d3e;
		color: #fffdf8;
	}
}

@media screen and (min-width: 35rem) {
	.wn-access-card__actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (min-width: 64rem) {
	.wn-access .wn-access__container {
		width: min(calc(100% - 64px), 1180px);
	}

	.wn-access__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (min-width: 72rem) {
	.wn-access__title {
		font-size: clamp(36px, 3.2vw, 46px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wn-access-card__actions a {
		transition: none;
	}
}
