.prefecture-event-map {
	position: relative;
}

.event_map_tile {
	font-size: var(--rem30);
	text-align: center;
	color: #ff0000!important;
	padding: 14px 40px!important;
	border-radius: 10px!important;
	background: #fff!important;
	max-width: 760px;
	margin-inline: auto;
	margin-bottom: 30px!important;
	position: relative!important;
}
.event_map_tile::after {
	content: '';
	display: inline-block;
	background: #fff;
	width: 30px;
	height: 20px;
	position: absolute;
	left: 50%;
	bottom: -19px;
	transform: translateX(-50%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* =========================
PC / SP 切り替え
========================= */
.prefecture-event-map__pc {
	display: block;
}

.prefecture-event-map__sp {
	display: none;
}

/* =========================
SVG
========================= */
.prefecture-event-map__svg-wrap {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
}

.prefecture-event-map__svg-wrap svg {
	display: block;
	width: 100%;
	height: auto;
}

/* 初期状態は全県グレー */
.jp-map-svg [data-pref],
.jp-map-svg [data-pref] path,
.jp-map-svg [data-pref] polygon,
.jp-map-svg [data-pref] rect,
.jp-map-svg [data-pref] ellipse,
.jp-map-svg [data-pref] circle {
	cursor: pointer;
	transition: opacity 0.2s ease, fill 0.2s ease;
	fill: #d9d9d9;
}

/* イベントあり県のみ色付き（地方別カラーは下で上書き） */
.jp-map-svg [data-pref].has-event,
.jp-map-svg [data-pref].has-event path,
.jp-map-svg [data-pref].has-event polygon,
.jp-map-svg [data-pref].has-event rect,
.jp-map-svg [data-pref].has-event ellipse,
.jp-map-svg [data-pref].has-event circle {
	fill: #148bff !important;
}

/* hoverはイベントありのみ少し反応 */
/* .jp-map-svg [data-pref].has-event:hover {
opacity: 0.85;
} */

.jp-map-svg [data-pref].has-event:hover,
.jp-map-svg [data-pref].has-event:hover path,
.jp-map-svg [data-pref].has-event:hover polygon,
.jp-map-svg [data-pref].has-event:hover rect,
.jp-map-svg [data-pref].has-event:hover ellipse,
.jp-map-svg [data-pref].has-event:hover circle {
	opacity: 1 !important;
	filter: brightness(0.96);
}

/* イベントなし県はクリック後もグレー維持 */
.jp-map-svg .is-disabled-clicked,
.jp-map-svg .is-disabled-clicked path,
.jp-map-svg .is-disabled-clicked polygon,
.jp-map-svg .is-disabled-clicked rect,
.jp-map-svg .is-disabled-clicked ellipse,
.jp-map-svg .is-disabled-clicked circle {
	opacity: 1 !important;
}

/* 県名パスはクリック無効 */
.jp-map-svg .pref-label {
	pointer-events: none;
}

/* =========================
地方カラー（地図）
========================= */
.jp-map-svg [data-pref].region-hokkaido,
.jp-map-svg [data-pref].region-hokkaido path,
.jp-map-svg [data-pref].region-hokkaido polygon,
.jp-map-svg [data-pref].region-hokkaido rect,
.jp-map-svg [data-pref].region-hokkaido ellipse,
.jp-map-svg [data-pref].region-hokkaido circle {
	fill: #63aee2 !important;
}

.jp-map-svg [data-pref].region-tohoku,
.jp-map-svg [data-pref].region-tohoku path,
.jp-map-svg [data-pref].region-tohoku polygon,
.jp-map-svg [data-pref].region-tohoku rect,
.jp-map-svg [data-pref].region-tohoku ellipse,
.jp-map-svg [data-pref].region-tohoku circle {
	fill: #65c4f2 !important;
}

.jp-map-svg [data-pref].region-kanto,
.jp-map-svg [data-pref].region-kanto path,
.jp-map-svg [data-pref].region-kanto polygon,
.jp-map-svg [data-pref].region-kanto rect,
.jp-map-svg [data-pref].region-kanto ellipse,
.jp-map-svg [data-pref].region-kanto circle {
	fill: #94bc3d !important;
}

.jp-map-svg [data-pref].region-chubu,
.jp-map-svg [data-pref].region-chubu path,
.jp-map-svg [data-pref].region-chubu polygon,
.jp-map-svg [data-pref].region-chubu rect,
.jp-map-svg [data-pref].region-chubu ellipse,
.jp-map-svg [data-pref].region-chubu circle {
	fill: #cacf00 !important;
}

.jp-map-svg [data-pref].region-kinki,
.jp-map-svg [data-pref].region-kinki path,
.jp-map-svg [data-pref].region-kinki polygon,
.jp-map-svg [data-pref].region-kinki rect,
.jp-map-svg [data-pref].region-kinki ellipse,
.jp-map-svg [data-pref].region-kinki circle {
	fill: #ffc800 !important;
}

.jp-map-svg [data-pref].region-chugoku,
.jp-map-svg [data-pref].region-chugoku path,
.jp-map-svg [data-pref].region-chugoku polygon,
.jp-map-svg [data-pref].region-chugoku rect,
.jp-map-svg [data-pref].region-chugoku ellipse,
.jp-map-svg [data-pref].region-chugoku circle {
	fill: #f4a685 !important;
}

.jp-map-svg [data-pref].region-shikoku,
.jp-map-svg [data-pref].region-shikoku path,
.jp-map-svg [data-pref].region-shikoku polygon,
.jp-map-svg [data-pref].region-shikoku rect,
.jp-map-svg [data-pref].region-shikoku ellipse,
.jp-map-svg [data-pref].region-shikoku circle {
	fill: #efd070 !important;
}

.jp-map-svg [data-pref].region-kyushu,
.jp-map-svg [data-pref].region-kyushu path,
.jp-map-svg [data-pref].region-kyushu polygon,
.jp-map-svg [data-pref].region-kyushu rect,
.jp-map-svg [data-pref].region-kyushu ellipse,
.jp-map-svg [data-pref].region-kyushu circle {
	fill: #cba8ce !important;
}

.jp-map-svg [data-pref].region-okinawa,
.jp-map-svg [data-pref].region-okinawa path,
.jp-map-svg [data-pref].region-okinawa polygon,
.jp-map-svg [data-pref].region-okinawa rect,
.jp-map-svg [data-pref].region-okinawa ellipse,
.jp-map-svg [data-pref].region-okinawa circle {
	fill: #708cc6 !important;
}

/* =========================
SPリスト
========================= */
.prefecture-list {
	display: grid;
	gap: 32px;
}

.prefecture-list__group {
	display: grid;
	gap: 14px;
}

.prefecture-list__region {
	position: relative;
	margin: 0;
	padding-left: 18px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #222;
}

.prefecture-list__region::before {
	content: "";
	position: absolute;
	top: 0.7em;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #d9d9d9;
	transform: translateY(-50%);
}

.prefecture-list__items {
	display: grid;
	gap: 10px;
}

.prefecture-list__item {
	appearance: none;
	width: 100%;
	border: 0;
	border-radius: 12px;
	background: #e3e3e3;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: left;
	font-size: 15px;
	color: #8a8a8a;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

/* イベントあり */
.prefecture-list__item.has-event {
	background: #f4f4f4;
	color: #222;
}

.prefecture-list__item.has-event:hover {
	background: #ececec;
}

.prefecture-list__item.is-disabled-clicked {
	background: #e3e3e3;
	color: #8a8a8a;
}

.prefecture-list__arrow {
	display: inline-block;
	font-size: 18px;
	line-height: 1;
	color: #999;
}

/* =========================
地域●カラー
========================= */
.prefecture-list__group.region-hokkaido .prefecture-list__region::before {
	background: #63aee2;
}

.prefecture-list__group.region-tohoku .prefecture-list__region::before {
	background: #65c4f2;
}

.prefecture-list__group.region-kanto .prefecture-list__region::before {
	background: #94bc3d;
}

.prefecture-list__group.region-chubu .prefecture-list__region::before {
	background: #cacf00;
}

.prefecture-list__group.region-kinki .prefecture-list__region::before {
	background: #ffc800;
}

.prefecture-list__group.region-chugoku .prefecture-list__region::before {
	background: #f4a685;
}

.prefecture-list__group.region-shikoku .prefecture-list__region::before {
	background: #efd070;
}

.prefecture-list__group.region-kyushu .prefecture-list__region::before {
	background: #cba8ce;
}

.prefecture-list__group.region-okinawa .prefecture-list__region::before {
	background: #708cc6;
}

/* =========================
モーダル
========================= */
.prefecture-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	box-sizing: border-box;
}

.prefecture-modal[aria-hidden="false"] {
	display: flex;
}

.prefecture-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.prefecture-modal__dialog {
	position: relative;
	z-index: 2;
	width: min(1020px, 100%);
	max-height: min(80vh, 900px);
	overflow: auto;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.2);
}

/* 画面が低い場合も中身だけスクロール */
.prefecture-modal__dialog::-webkit-scrollbar {
	width: 10px;
}

.prefecture-modal__dialog::-webkit-scrollbar-thumb {
	background: #c9c9c9;
	border-radius: 999px;
}

.prefecture-modal__dialog::-webkit-scrollbar-track {
	background: transparent;
}

.prefecture-modal__close {
	position: absolute;
	top: 10px;
	right: 12px;
	z-index: 3;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.prefecture-modal__header {
	background: #5aa6d9;
	padding: 18px 56px 18px 24px;
}

.prefecture-modal__title {
	margin: 0!important;
	font-size: 32px!important;
	line-height: 1.4!important;
	font-weight: 700!important;
	text-align: center!important;
	color: #fff!important;
}

.prefecture-modal__body {
	padding: 0;
}

.prefecture-modal__table-wrap {
	width: 100%;
	overflow-x: auto;
}

.prefecture-modal__table {
	width: 100%;
	min-width: 760px;
	border-collapse: collapse;
	table-layout: fixed;
}

.prefecture-modal__table th,
.prefecture-modal__table td {
	border: 1px solid #3C96C8!important;
	padding: 12px 14px;
	font-size: 14px;
	line-height: 1.7;
	vertical-align: middle!important;
	color: #333;
}

.prefecture-modal__table th {
	background: #f5f8fb;
	color: #3C96C8!important;
	font-weight: 700;
	white-space: nowrap;
}
.prefecture-modal__table th:nth-child(1) {
	width: 10%!important;
}
.prefecture-modal__table th:nth-child(2) {
	width: 10%!important;
}
.prefecture-modal__table th:nth-child(3) {
	width: 25%!important;
}
.prefecture-modal__table th:nth-child(4) {
	width: 30%!important;
}
.prefecture-modal__table th:nth-child(5) {
	width: 25%!important;
}

.is-prefecture-modal-open {
	overflow: hidden;
}

.prefecture-event-map__closed-message {
	max-width: 800px;
	margin: 0 auto;
	padding: 32px 24px;
	border-radius: 12px;
	background: #f7f7f7;
	text-align: center;
	font-size: 18px;
	line-height: 2;
	color: #333;
}

@media (max-width: 767px) {
	.prefecture-event-map__closed-message {
		padding: 24px 16px;
		font-size: 16px;
		line-height: 1.9;
	}

	.prefecture-modal__table th:nth-child(1) {
		width: 10%!important;
	}
	.prefecture-modal__table th:nth-child(2) {
		width: 10%!important;
	}
	.prefecture-modal__table th:nth-child(3) {
		width: 17%!important;
	}
	.prefecture-modal__table th:nth-child(4) {
		width: 33%!important;
	}
	.prefecture-modal__table th:nth-child(5) {
		width: 30%!important;
	}
}

.prefecture-event__qr {
	text-align: center;
	margin-top: 48px;
}
.prefecture-event__qr img {
	display: block;
	width: 100%;
	max-width: 150px;
	margin-inline: auto;
}
.prefecture-event__qr p {
	font-weight: 700;
	text-align: center!important;
	margin-top: 10px;
}

/* =========================
SP
========================= */
@media (max-width: 767px) {
	.prefecture-event-map__pc {
		display: none;
	}

	.prefecture-event-map__sp {
		display: block;
	}

	.prefecture-modal {
		padding: 12px;
		align-items: center;
	}

	.prefecture-modal__dialog {
		width: 100%;
		max-height: calc(80vh - 24px);
		border-radius: 6px;
	}

	.prefecture-modal__header {
		padding: 14px 48px 14px 16px;
	}

	.prefecture-modal__title {
		font-size: 22px!important;
		text-align: left!important;
	}

	.prefecture-modal__table {
		min-width: 700px;
	}
}