.hari9map {
	width: 100%;
}

.hari9map__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0 0 10px;
}

.hari9map__prefecture-label {
	color: #1f2937;
	font-weight: 700;
	line-height: 1.4;
}

.hari9map__prefecture-select {
	box-sizing: border-box;
	min-width: 220px;
	min-height: 40px;
	border: 1px solid #c7d2de;
	border-radius: 4px;
	background: #ffffff;
	color: #1f2937;
	font: inherit;
	line-height: 1.4;
	padding: 7px 36px 7px 10px;
}

.hari9map__prefecture-select:focus {
	border-color: #0f5f9f;
	outline: 2px solid rgba(15, 95, 159, 0.18);
	outline-offset: 1px;
}

.hari9map__notice {
	margin: 0 0 12px;
	color: #374151;
	font-size: 14px;
	line-height: 1.7;
}

.hari9map__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 12px;
}

.hari9map__filter-button {
	appearance: none;
	border: 1px solid #c7d2de;
	border-radius: 4px;
	background: #ffffff;
	color: #1f2937;
	cursor: pointer;
	font: inherit;
	line-height: 1.4;
	padding: 7px 12px;
}

.hari9map__filter-button:hover,
.hari9map__filter-button:focus {
	border-color: #0f5f9f;
	color: #0f5f9f;
}

.hari9map__filter-button.active {
	border-color: #0f5f9f;
	background: #0f5f9f;
	color: #ffffff;
}

.hari9map__map {
	width: 100%;
	min-height: 800px;
	background: #f3f4f6;
}

.hari9map-popup {
	min-width: 220px;
}

.hari9map-popup__title {
	margin: 0 0 8px;
	font-size: 16px;
	line-height: 1.4;
}

.hari9map-popup__row {
	margin: 0 0 6px;
	line-height: 1.5;
}

.hari9map-popup__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.hari9map-popup__links a {
	color: #0f5f9f;
	text-decoration: underline;
}

.hari9map-clinic-profile {
	box-sizing: border-box;
	margin: 36px 0 0;
	color: #1f2937;
}

.hari9map-clinic-profile *,
.hari9map-clinic-profile *::before,
.hari9map-clinic-profile *::after {
	box-sizing: border-box;
}

.hari9map-clinic-profile__hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px;
	align-items: end;
	padding: 28px;
	border: 1px solid #d9e3df;
	border-radius: 8px;
	background: linear-gradient(135deg, #f7fbf9 0%, #ffffff 52%, #fff8ef 100%);
	box-shadow: 0 10px 30px rgba(31, 41, 55, 0.08);
}

.hari9map-clinic-profile__eyebrow {
	margin: 0 0 8px;
	color: #0f766e;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.4;
}

.hari9map-clinic-profile__name {
	clear: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #111827;
	font-size: clamp(24px, 2rem, 32px);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.35;
}

.hari9map-clinic-profile__name::before,
.hari9map-clinic-profile__name::after {
	display: none;
	content: none;
}

.hari9map-clinic-profile__lead {
	max-width: 760px;
	margin: 14px 0 0;
	color: #374151;
	font-size: 16px;
	line-height: 1.8;
}

.hari9map-clinic-profile__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

.hari9map-clinic-profile__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 28px;
	padding: 4px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #ffffff;
	color: #334155;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.hari9map-clinic-profile__icon {
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
	text-align: center;
}

.hari9map-clinic-profile__button .hari9map-clinic-profile__icon {
	width: 1.08em;
	height: 1.08em;
	stroke-width: 2;
}

.hari9map-clinic-profile__badge--anma {
	border-color: #8ed39a;
	color: #166534;
}

.hari9map-clinic-profile__badge--hari {
	border-color: #f4aaa5;
	color: #b42318;
}

.hari9map-clinic-profile__badge--okyu {
	border-color: #ffc36a;
	color: #a65300;
}

.hari9map-clinic-profile__badge--jyusei {
	border-color: #91c5f8;
	color: #075985;
}

.hari9map-clinic-profile__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: min(220px, 100%);
}

.hari9map-clinic-profile__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid #b8c7d4;
	border-radius: 6px;
	background: #ffffff;
	color: #0f5f9f;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.hari9map-clinic-profile__button:hover,
.hari9map-clinic-profile__button:focus {
	border-color: #0f5f9f;
	background: #eef6fb;
	color: #0b4e83;
	text-decoration: none;
}

.hari9map-clinic-profile__button--primary {
	border-color: #0f766e;
	background: #0f766e;
	color: #ffffff;
}

.hari9map-clinic-profile__button--primary:hover,
.hari9map-clinic-profile__button--primary:focus {
	border-color: #115e59;
	background: #115e59;
	color: #ffffff;
}

.hari9map-clinic-profile__details {
	margin-top: 20px;
	padding: 24px 28px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 4px 18px rgba(31, 41, 55, 0.05);
}

.hari9map-clinic-profile__map-section {
	margin-top: 20px;
	padding: 24px 28px 28px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 4px 18px rgba(31, 41, 55, 0.05);
}

.hari9map-clinic-profile__map {
	width: 100%;
	min-height: 360px;
	border: 1px solid #dbe4ea;
	border-radius: 8px;
	background: #eef2f4;
	overflow: hidden;
}

.hari9map-clinic-profile__section-title {
	clear: none;
	margin: 0 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 1px solid #e5e7eb;
	background: transparent;
	color: #111827;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.45;
}

.hari9map-clinic-profile__section-title::before,
.hari9map-clinic-profile__section-title::after {
	display: none;
	content: none;
}

.hari9map-clinic-profile__detail-list {
	margin: 0;
}

.hari9map-clinic-profile__detail-row {
	display: grid;
	grid-template-columns: 128px minmax(0, 1fr);
	gap: 18px;
	padding: 13px 0;
	border-bottom: 1px solid #edf0f2;
}

.hari9map-clinic-profile__detail-row:last-child {
	border-bottom: 0;
}

.hari9map-clinic-profile__detail-row dt {
	margin: 0;
	color: #475569;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.7;
}

.hari9map-clinic-profile__detail-row dd {
	margin: 0;
	color: #1f2937;
	font-size: 15px;
	line-height: 1.7;
	word-break: break-word;
}

.hari9map-clinic-profile__detail-row a {
	color: #0f5f9f;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.hari9map-clinic-notice {
	margin: 20px 0 24px;
	padding: 14px 16px;
	border: 1px solid #edf0f2;
	border-radius: 6px;
	background: #f9fafb;
}

.hari9map-clinic-notice p {
	margin: 0;
	color: #666;
	font-size: 0.85em;
	line-height: 1.8;
}

.hari9map-clinic-info {
	box-sizing: border-box;
	margin: 32px 0 0;
	padding: 24px;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 2px 8px rgba(31, 41, 55, 0.06);
}

.hari9map-clinic-info__title {
	clear: none;
	margin: 0 0 16px;
	padding: 0 0 10px;
	border-top: 0;
	border-bottom: 1px solid #e5e7eb;
	background: transparent;
	color: #1f2937;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
}

.hari9map-clinic-info__title::before,
.hari9map-clinic-info__title::after {
	display: none;
	content: none;
}

.hari9map-clinic-info__table {
	width: 100%;
	margin: 0;
	border: 0;
	border-top: 0;
	border-collapse: collapse;
	border-spacing: 0;
	background: transparent;
	table-layout: fixed;
}

.hari9map-clinic-info__table th,
.hari9map-clinic-info__table td {
	box-sizing: border-box;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid #edf0f2;
	background: transparent;
	vertical-align: top;
	font-size: 15px;
	line-height: 1.7;
}

.hari9map-clinic-info__table tr:last-child th,
.hari9map-clinic-info__table tr:last-child td {
	border-bottom: 0;
}

.hari9map-clinic-info__table th {
	width: 120px;
	min-width: 120px;
	padding-right: 20px;
	color: #374151;
	font-weight: 600;
	text-align: left;
	white-space: nowrap;
}

.hari9map-clinic-info__table td {
	color: #1f2937;
	word-break: break-word;
}

.hari9map-clinic-info__table a {
	color: #0f5f9f;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 640px) {
	.hari9map__map {
		min-height: 420px;
	}

	.hari9map-clinic-profile {
		margin-top: 28px;
	}

	.hari9map-clinic-profile__hero {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 22px 18px;
	}

	.hari9map-clinic-profile__name {
		font-size: 24px;
	}

	.hari9map-clinic-profile__lead {
		font-size: 15px;
	}

	.hari9map-clinic-profile__actions {
		width: 100%;
	}

	.hari9map-clinic-profile__details {
		padding: 20px 18px;
	}

	.hari9map-clinic-profile__map-section {
		padding: 20px 18px 22px;
	}

	.hari9map-clinic-notice {
		margin: 20px 0 24px;
		padding: 12px 14px;
	}

	.hari9map-clinic-notice p {
		font-size: 0.86em;
		line-height: 1.75;
	}

	.hari9map-clinic-profile__map {
		min-height: 280px;
	}

	.hari9map-clinic-profile__detail-row {
		grid-template-columns: 1fr;
		gap: 2px;
		padding: 10px 0;
	}

	.hari9map-clinic-info {
		margin-top: 24px;
		padding: 18px;
	}

	.hari9map-clinic-info__title {
		font-size: 18px;
	}

	.hari9map-clinic-info__table {
		table-layout: auto;
	}

	.hari9map-clinic-info__table tbody,
	.hari9map-clinic-info__table tr {
		display: block;
		width: 100%;
	}

	.hari9map-clinic-info__table th,
	.hari9map-clinic-info__table td {
		display: block;
		width: 100%;
		padding: 8px 0;
	}

	.hari9map-clinic-info__table th {
		padding-bottom: 2px;
		border-bottom: 0;
	}

	.hari9map-clinic-info__table td {
		padding-top: 0;
	}
}
