/* 서브 페이지 디자인. 메인 레이아웃과 독립적으로 유지합니다. */
.sub-hero { position: relative; min-height: 206px; display: flex; align-items: center; overflow: hidden; background: linear-gradient(108deg,#0c3265,#185f9c); color: #fff; }
.sub-hero::after { content: ""; position: absolute; width: 410px; height: 410px; right: 9%; top: -175px; border: 70px solid rgba(255,255,255,.055); border-radius: 50%; pointer-events: none; }
.sub-hero > .container { position: relative; z-index: 1; }
.sub-hero .eyebrow { color: #9cd4ff; }
.sub-hero h1 { margin: 0; font-size: 2.35rem; letter-spacing: -.055em; line-height: 1.3; }
.breadcrumb { display: flex; gap: 10px; align-items: center; margin-top: 20px; color: #d2e7f9; font-size: .8rem; flex-wrap: wrap; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb span[aria-current="page"] { color: #fff; font-weight: 750; }
.breadcrumb-divider { color: #82afd3; }
.sub-layout { display: grid; grid-template-columns: 252px minmax(0,1fr); gap: 55px; align-items: start; padding-top: 65px; padding-bottom: 105px; }
.side-menu { border-top: 4px solid var(--blue); }
.side-menu-heading { display: flex; flex-direction: column; justify-content: center; min-height: 115px; padding: 18px 19px; background: #f3f8fd; }
.side-menu-heading span { color: #4588c6; font-size: .67rem; letter-spacing: .14em; font-weight: 850; }
.side-menu-heading strong { color: var(--navy); font-size: 1.48rem; }
.side-menu-list { border: 1px solid #e0e8f0; border-top: 0; }
.side-menu-list > li { border-bottom: 1px solid #e6edf3; }
.side-menu-list > li:last-child { border-bottom: 0; }
.side-menu-list > li > a { display: flex; align-items: center; justify-content: space-between; padding: 16px 17px; color: #40536a; font-weight: 750; font-size: .92rem; }
.side-menu-list > li > a span { color: #8aa1b8; }
.side-menu-list a:hover, .side-menu-list a[aria-current="page"] { color: var(--blue); }
.side-menu-list > li > a[aria-current="page"], .side-menu-list > li.is-active > a { background: #edf6ff; color: #0f61ad; }
.side-menu-depth3 { display: block; padding: 6px 10px 10px 22px; background: #f7f9fc; }
.side-menu-depth3 a { display: block; padding: 9px 12px; border-left: 2px solid #d6e2ec; color: #6f8091; font-size: .83rem; }
.side-menu-depth3 a::before { content: "·"; margin-right: 8px; }
.side-menu-depth3 a[aria-current="page"] { border-color: var(--blue); background: #e9f4ff; color: var(--blue); font-weight: 800; }
.side-menu-help { margin-top: 22px; padding: 22px 19px; background: #f5f8fb; border-radius: 9px; }
.side-menu-help strong { color: var(--navy); font-size: .86rem; }
.side-menu-help p { margin: 7px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.sub-main { min-width: 0; }
.content-header { padding-bottom: 28px; border-bottom: 1px solid var(--line); margin-bottom: 34px; }
.content-header h2 { margin: 0 0 8px; font-size: 2.15rem; color: var(--navy); letter-spacing: -.06em; line-height: 1.3; }
.content-header p { margin: 0; color: var(--muted); font-size: .94rem; }
.content-label { color: var(--blue); font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.content-section { margin-top: 44px; }
.content-section-title { display: flex; align-items: center; gap: 12px; color: var(--navy); font-size: 1.35rem; letter-spacing: -.035em; margin-bottom: 18px; }
.content-section-title::before { content: ""; width: 5px; height: 20px; border-radius: 3px; background: var(--blue); }
.content-section-title small { font-size: .8rem; color: var(--muted); font-weight: 500; }
.content-description { margin-bottom: 18px; color: var(--muted); font-size: .87rem; }

.greeting-layout { display: grid; grid-template-columns: 38% 1fr; gap: 38px; }
.greeting-photo { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100px; text-align: center; background: repeating-linear-gradient(-45deg,#e0edf7,#e0edf7 14px,#f0f6fb 14px,#f0f6fb 28px); color: #5982a3; border: 1px solid #d2e1ed; border-radius: 12px;  overflow: hidden;}
.greeting-photo span { font-size: .91rem; font-weight: 800; }
.greeting-photo small { font-size: .65rem; letter-spacing: .08em; margin-top: 8px; }
.greeting-copy { padding-top: 8px; }
.greeting-copy h3 { margin: 17px 0 25px; font-size: 2rem; line-height: 1.5; letter-spacing: -.065em; color: var(--navy); }
.greeting-copy h3 em { color: var(--blue); font-style: normal; }
.greeting-copy p { color: #56697b; font-size: 1.05rem; line-height: 1.95; }
.signature { margin-top: 28px; display: flex; gap: 15px; align-items: baseline; color: #758598; font-size: .82rem; justify-content: flex-end;}
.signature span {font-size: 1.05rem;}
.signature strong { font-size: 1.55rem; color: var(--ink); }

.page-intro-card { display: flex; gap: 22px; align-items: flex-start; padding: 30px; border-radius: 12px; background: #edf6fe; }
.page-intro-icon { width: 50px; height: 50px; display: grid; place-items: center; flex-shrink: 0; border-radius: 12px; background: #d4eafb; color: var(--blue); font-size: 2rem; }
.page-intro-card strong { display: block; color: var(--navy); font-size: 1.08rem; }
.page-intro-card p { margin: 6px 0 0; color: #5a738b; font-size: .87rem; }
.content-link-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.content-link-grid a { display: flex; flex-direction: column; padding: 23px; min-height: 144px; background: #fff; border: 1px solid #dae4ee; border-radius: 10px; }
.content-link-grid a:hover { border-color: var(--blue); background: #f8fbff; }
.content-link-grid a span { color: #6e9fc8; font-weight: 800; font-size: .77rem; }
.content-link-grid a strong { margin-top: 9px; font-size: 1.1rem; color: var(--navy); }
.content-link-grid a small { margin-top: 5px; color: #72889c; }
.structure-placeholder { display: grid; place-items: center; min-height: 260px; margin-top: 24px; border: 1px dashed #bbd0e2; background: #f7fafd; border-radius: 10px; text-align: center; }
.structure-placeholder strong, .structure-placeholder span { display: block; }
.structure-placeholder strong { color: #4779a2; }
.structure-placeholder span { color: #8599ab; font-size: .81rem; margin-top: 8px; }
.table-scroll { max-width: 100%; overflow-x: auto; }
.info-table { border-collapse: collapse; width: 100%; min-width: 550px; border-top: 2px solid var(--navy); }
.info-table th, .info-table td { padding: 17px 15px; border-bottom: 1px solid var(--line); text-align: left; }
.info-table th { background: #f1f6fa; color: var(--navy); font-size: .86rem; }
.info-table td { font-size: .85rem; color: #576c80; }
.note-box { margin-top: 28px; padding: 19px 22px; background: #fffaf0; border-left: 3px solid #e7b44f; }
.note-box strong { display: block; color: #795e2c; font-size: .85rem; }
.note-box p { margin: 6px 0 0; color: #806e4d; font-size: .79rem; }
.map-placeholder { display: grid; place-items: center; min-height: 360px; background: linear-gradient(135deg,#eaf3fa,#d8eaf5); border: 1px dashed #9ebed5; border-radius: 12px; text-align: center; color: #4e81aa; }
.map-placeholder > div { display: flex; flex-direction: column; align-items: center; }
.map-placeholder span { font-size: 3.2rem; line-height: 1.2; }
.map-placeholder strong { font-size: 1.1rem; }
.map-placeholder small { margin-top: 8px; font-size: .78rem; }
.location-detail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 24px; border-top: 2px solid var(--navy); }
.location-detail > div { padding: 20px; border-bottom: 1px solid var(--line); }
.location-detail > div:first-child { border-right: 1px solid var(--line); }
.location-detail span { display: block; color: var(--blue); font-size: 1.2rem; font-weight: 850; letter-spacing: .08em; }
.location-detail strong { display: block; margin-top: 5px; font-size: .95rem; color: var(--ink); }
.preparing-box { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 370px; padding: 35px; text-align: center; background: #f4f8fc; border-radius: 14px; }
.preparing-symbol { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 50%; background: #d9edfd; color: var(--blue); font-size: 2rem; font-weight: 800; line-height: 0; }
.preparing-box h3 { margin: 22px 0 9px; color: var(--navy); font-size: 1.45rem; }
.preparing-box p { max-width: 490px; color: var(--muted); font-size: .88rem; }
.button-primary { display: inline-flex; align-items: center; gap: 17px; margin-top: 12px; padding: 11px 22px; background: var(--blue); color: #fff; border-radius: 7px; font-size: .86rem; font-weight: 800; }
.button-primary:hover { background: #0b4c91; }
/* 층별 사무실 개별 박스 */
.building-guide-floor > ul.building-guide-offices {display: flex; flex-wrap: wrap; align-content: center; align-items: center; gap: 9px; min-height: 78px; margin: 0; padding: 16px; grid-template-columns: none; list-style: none;}

.building-guide-floor > ul.building-guide-offices > li {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	padding: 9px 13px;
	border: 1px solid #dbe6f3;
	border-radius: 7px;
	background: #f5f9fe;
	color: #28476a;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.building-guide-floor > ul.building-guide-offices > li:hover {
	border-color: #8cb5e0;
	background: #e6f1ff;
	color: #124b86;
}
.greeting-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* =========================================
   역대 청장 / 역대 서장
========================================= */

.leader-history {
	width: 100%;
}

.leader-history,
.leader-history * {
	box-sizing: border-box;
}

/* 페이지 소개 */

.leader-history-intro {
	margin-bottom: 32px;
}

.leader-history-eyebrow {
	display: block;
	margin-bottom: 9px;
	color: #2568b8;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 2px;
}

.leader-history-intro h2 {
	margin: 0 0 10px;
	color: #102b4f;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -1px;
}

.leader-history-intro p {
	margin: 0;
	color: #778498;
	font-size: 14px;
	line-height: 1.7;
}

/* 인물 목록 */

.leader-history-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

/* 인물 카드 */

.leader-history-card {
	display: flex;
	align-items: center;
	gap: 20px;
	min-width: 0;
	padding: 20px;
	border: 1px solid #dce5ef;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 5px 20px rgba(13, 48, 86, .035);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.leader-history-card:hover {
	border-color: #a9c8e7;
	box-shadow: 0 10px 28px rgba(13, 48, 86, .08);
	transform: translateY(-2px);
}

/* 사진 */

.leader-history-photo {
	display: flex;
	flex: 0 0 120px;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 150px;
	overflow: hidden;
	border: 1px solid #dce5ef;
	border-radius: 10px;
	background: linear-gradient(145deg, #e8f1fa, #f5f9fd);
}

.leader-history-photo span {
	color: #8aa4be;
	font-size: 12px;
	font-weight: 600;
}

.leader-history-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

/* 인물 정보 */

.leader-history-info {
	flex: 1;
	min-width: 0;
}

.leader-history-number {
	display: inline-block;
	margin-bottom: 12px;
	padding: 6px 11px;
	border-radius: 5px;
	background: #eaf2fc;
	color: #17518d;
	font-size: 12px;
	font-weight: 800;
}

.leader-history-info h3 {
	margin: 0;
	color: #163658;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.7px;
}

/* 재임기간 */

.leader-history-period {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid #edf1f6;
}

.leader-history-period span {
	color: #8797a9;
	font-size: 12px;
	font-weight: 600;
}

.leader-history-period strong {
	color: #3e5570;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.6;
}
/* =========================================
   경찰청 / 경찰서 연혁
========================================= */

.police-history {
	width: 100%;
}

.police-history,
.police-history * {
	box-sizing: border-box;
}

/* 페이지 소개 */

.police-history-intro {
	margin-bottom: 36px;
}

.police-history-eyebrow {
	display: block;
	margin-bottom: 9px;
	color: #2568b8;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 2px;
}

.police-history-intro h2 {
	margin: 0 0 10px;
	color: #102b4f;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -1px;
}

.police-history-intro p {
	margin: 0;
	color: #778498;
	font-size: 14px;
	line-height: 1.7;
}

/* 타임라인 전체 */

.police-history-timeline {
	padding: 4px 28px;
	border: 1px solid #dce5ef;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(13, 48, 86, .045);
}

/* 연도별 구역 */

.police-history-year {
	display: grid;
	grid-template-columns: 118px minmax(0, 1fr);
	gap: 30px;
	padding: 30px 0;
}

.police-history-year + .police-history-year {
	border-top: 1px solid #e8eef5;
}

/* 연도 표시 */

.police-history-year-heading {
	align-self: start;
	padding: 16px 12px;
	border-left: 4px solid #17518d;
	border-radius: 0 10px 10px 0;
	background: #f1f6fc;
}

.police-history-year-heading span {
	display: block;
	margin-bottom: 5px;
	color: #8aa6c2;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1.5px;
}

.police-history-year-heading h3 {
	margin: 0;
	color: #164b81;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -1px;
}

/* 연혁 목록 */

.police-history-events {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
	margin: 0;
	padding: 0 0 0 28px;
	list-style: none;
}

/* 세로 타임라인 선 */

.police-history-events::before {
	content: "";
	position: absolute;
	top: 20px;
	bottom: 20px;
	left: 6px;
	width: 2px;
	background: #dce9f7;
}

/* 개별 연혁 */

.police-history-event {
	position: relative;
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	align-items: start;
	gap: 14px;
	min-width: 0;
	padding: 15px 17px;
	border: 1px solid #e8eef5;
	border-radius: 10px;
	background: #fff;
	transition: background .2s ease, border-color .2s ease;
}

/* 타임라인 점 */

.police-history-event::before {
	content: "";
	position: absolute;
	top: 20px;
	left: -27px;
	width: 12px;
	height: 12px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: #2874be;
	box-shadow: 0 0 0 2px #9fc4e8;
}

/* 날짜 */

.police-history-date {
	padding-top: 2px;
	color: #1760a5;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

/* 연혁 내용 */

.police-history-content {
	min-width: 0;
}

.police-history-content p {
	margin: 0;
	color: #34445a;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

/* 마우스 효과 */

.police-history-event:hover {
	border-color: #c1d9f0;
	background: #f7fbff;
}
.menu-external-icon {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex-shrink: 0;
}
.menu-external-icon-sm {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex-shrink: 0;
	margin: 2px 0 0 10px;
}

/* ========================================
   정보공개 제도안내 - 전용 스타일
   기존 Header / Footer / Side Menu 미변경
======================================== */
.info-disclosure,
.info-disclosure * {
	box-sizing: border-box;
}

.info-disclosure {
	width: 100%;
	min-width: 0;
	color: #34445a;
	font-size: 15px;
	line-height: 1.8;
}

.info-disclosure-intro {
	margin-bottom: 26px;
}

.info-disclosure-eyebrow {
	display: block;
	margin-bottom: 8px;
	color: #2568b8;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.8px;
}

.info-disclosure-intro h2 {
	margin: 0 0 8px;
	color: #102b4f;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -.8px;
	line-height: 1.35;
}

.info-disclosure-intro p {
	margin: 0;
	color: #778498;
	font-size: 14px;
}

/* 정보공개포털 안내 */
.info-disclosure-portal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin-bottom: 36px;
	padding: 28px 30px;
	border: 1px solid #254c78;
	border-radius: 14px;
	background: linear-gradient(115deg, #102f55 0%, #1b4f82 73%, #2365a6 100%);
	color: #fff;
}

.info-disclosure-portal-copy {
	min-width: 0;
}

.info-disclosure-portal-label {
	display: block;
	margin-bottom: 7px;
	color: #95b9e0;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 1.3px;
}

.info-disclosure-portal h3 {
	margin: 0 0 6px;
	color: #fff;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.35;
}

.info-disclosure-portal p {
	margin: 0;
	color: #d8e5f2;
	font-size: 13px;
	line-height: 1.7;
}

.info-disclosure-portal-link {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 12px;
	min-height: 43px;
	padding: 10px 16px;
	border: 1px solid rgba(255,255,255,.42);
	border-radius: 7px;
	background: rgba(255,255,255,.12);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.info-disclosure-portal-link:hover,
.info-disclosure-portal-link:focus-visible {
	background: #fff;
	color: #174d85;
}

.info-disclosure-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
}

/* 목록 소개 */
.info-disclosure-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
}

.info-disclosure-section-heading .info-disclosure-eyebrow {
	margin-bottom: 4px;
}

.info-disclosure-section-heading h3 {
	margin: 0;
	color: #132f51;
	font-size: 21px;
	font-weight: 800;
}

.info-disclosure-section-heading > p {
	margin: 0;
	color: #8593a4;
	font-size: 12px;
}

/* 상세내용 아코디언 : details/summary로 JS 불필요 */
.info-disclosure-accordion {
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.info-disclosure-item {
	min-width: 0;
	border: 1px solid #dce5ef;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(13, 48, 86, .035);
}

.info-disclosure-item[open] {
	border-color: #bed5e9;
	box-shadow: 0 6px 24px rgba(13, 48, 86, .06);
}

.info-disclosure-summary {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 68px;
	padding: 15px 20px;
	cursor: pointer;
	list-style: none;
}

.info-disclosure-summary::-webkit-details-marker {
	display: none;
}

.info-disclosure-summary::marker {
	content: '';
}

.info-disclosure-summary:focus-visible,
.info-disclosure-portal-link:focus-visible {
	outline: 3px solid #559be5;
	outline-offset: 3px;
}

.info-disclosure-index {
	display: inline-flex;
	flex: 0 0 42px;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 40px;
	border-radius: 9px;
	background: #eaf2fc;
	color: #17518d;
	font-size: 15px;
	font-weight: 800;
}

.info-disclosure-name {
	flex: 1;
	min-width: 0;
	color: #243a54;
	font-size: 16px;
	font-weight: 750;
	line-height: 1.45;
	word-break: keep-all;
}

.info-disclosure-chevron {
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	margin-right: 5px;
	border-right: 2px solid #6b87a8;
	border-bottom: 2px solid #6b87a8;
	transform: rotate(45deg);
	transition: transform .2s ease;
}

.info-disclosure-item[open] .info-disclosure-chevron {
	transform: rotate(225deg);
}

.info-disclosure-item[open] .info-disclosure-index {
	background: #174d85;
	color: #fff;
}

.info-disclosure-body {
	min-width: 0;
	padding: 23px 26px 27px;
	border-top: 1px solid #e7eef6;
}

.info-disclosure-body h4 {
	margin: 26px 0 10px;
	padding-left: 11px;
	border-left: 3px solid #1b64ac;
	color: #174d85;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.5;
}

.info-disclosure-body h4:first-child {
	margin-top: 0;
}

.info-disclosure-body p {
	margin: 8px 0 18px;
	color: #45566a;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.info-disclosure-body p:last-child {
	margin-bottom: 0;
}

.info-disclosure-emphasis {
	color: #1c67ad;
	font-weight: 750;
}

/* 원본 수수료 / 증명서 표 */
.info-disclosure-table-scroll {
	width: 100%;
	max-width: 100%;
	margin: 12px 0 24px;
	overflow-x: auto;
	border: 1px solid #dce5ef;
	border-radius: 10px;
	-webkit-overflow-scrolling: touch;
}

.info-disclosure-table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 13px;
	line-height: 1.7;
}

.info-disclosure-table--standard {
	table-layout: fixed;
	min-width: 0;
}

/* 6열 수수료 감면표는 폭을 강제로 줄이지 않고 가로 스크롤 */
.info-disclosure-table--reduction {
	table-layout: fixed;
	min-width: 1000px;
}

.info-disclosure-table th,
.info-disclosure-table td {
	padding: 12px 14px;
	border-right: 1px solid #e4ebf3;
	border-bottom: 1px solid #e4ebf3;
	vertical-align: top;
	text-align: left;
	word-break: keep-all;
	overflow-wrap: break-word;
}

.info-disclosure-table tr > :last-child {
	border-right: 0;
}

.info-disclosure-table tr:last-child > * {
	border-bottom: 0;
}

.info-disclosure-table th {
	background: #f0f6fc;
	color: #24456a;
	font-weight: 750;
}

.info-disclosure-table td {
	background: #fff;
	color: #45566a;
}

.info-disclosure-footnote {
	padding: 11px 14px;
	border-radius: 7px;
	background: #f5f8fc;
	font-size: 12px !important;
}

/* 미확보된 청구서 양식: 가짜 다운로드 링크 노출 방지 */
.info-disclosure-form-note {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 24px;
	padding: 20px 24px;
	border: 1px dashed #bcd0e5;
	border-radius: 12px;
	background: #f7fafd;
}

.info-disclosure-form-note strong {
	display: block;
	color: #243e5e;
	font-size: 15px;
	font-weight: 800;
}

.info-disclosure-form-note p {
	margin: 4px 0 0;
	color: #75869a;
	font-size: 12px;
}

.info-disclosure-form-status {
	flex: 0 0 auto;
	padding: 7px 11px;
	border-radius: 6px;
	background: #e8eef5;
	color: #6b7d91;
	font-size: 12px;
	font-weight: 700;
}

/* =========================================
   공공데이터 개방
========================================= */

.open-data,
.open-data * {
	box-sizing: border-box;
}

.open-data {
	width: 100%;
}

/* 페이지 소개 */

.open-data-intro {
	margin-bottom: 30px;
}

.open-data-eyebrow {
	display: block;
	margin-bottom: 9px;
	color: #2568b8;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 2px;
}

.open-data-intro h2 {
	margin: 0 0 10px;
	color: #102b4f;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -1px;
}

.open-data-intro p {
	margin: 0;
	color: #778498;
	font-size: 14px;
	line-height: 1.7;
}

/* 안내 카드 */

.open-data-guide {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin-bottom: 44px;
	padding: 32px;
	border: 1px solid #d5e5f6;
	border-radius: 16px;
	background: linear-gradient(120deg, #f0f6fd, #ffffff);
}

.open-data-guide-icon {
	display: flex;
	flex: 0 0 64px;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 15px;
	background: #164b81;
	color: #fff;
}

.open-data-guide-icon svg {
	width: 35px;
	height: 35px;
}

.open-data-guide-content {
	flex: 1;
	min-width: 0;
}

.open-data-guide-label {
	display: block;
	margin-bottom: 8px;
	color: #347bbd;
	font-size: 12px;
	font-weight: 800;
}

.open-data-guide-content h3 {
	margin: 0 0 14px;
	color: #15395e;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -.5px;
}

.open-data-guide-content p {
	margin: 0 0 8px;
	color: #526780;
	font-size: 14px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.open-data-guide-content p:last-child {
	margin-bottom: 0;
}

/* 공통 섹션 */

.open-data-section {
	margin-bottom: 44px;
}

.open-data-section-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}

.open-data-section-title {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.open-data-section-number {
	display: flex;
	flex: 0 0 45px;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	border-radius: 10px;
	background: #164b81;
	color: #fff;
	font-size: 16px;
	font-weight: 800;
}

.open-data-section-en {
	display: block;
	margin-bottom: 4px;
	color: #7c9bbc;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1px;
}

.open-data-section-title h3 {
	margin: 0;
	color: #163658;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -.5px;
}

.open-data-section-header > p {
	margin: 0;
	color: #8b9bae;
	font-size: 12px;
	text-align: right;
}

/* 담당자 테이블 */

.open-data-table-wrap {
	overflow-x: auto;
	border: 1px solid #dce5ef;
	border-radius: 12px;
	background: #fff;
}

.open-data-table {
	width: 100%;
	min-width: 680px;
	border-collapse: collapse;
	border-spacing: 0;
	table-layout: fixed;
}

.open-data-table caption {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.open-data-table thead th {
	padding: 18px 14px;
	border-bottom: 2px solid #2b659e;
	background: #edf4fc;
	color: #174775;
	font-size: 13px;
	font-weight: 800;
	text-align: center;
}

.open-data-table tbody th,
.open-data-table tbody td {
	padding: 22px 14px;
	border-bottom: 1px solid #e8eef5;
	color: #40556d;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.7;
	text-align: center;
	overflow-wrap: anywhere;
}

.open-data-table tbody th {
	color: #164b81;
	font-weight: 700;
	background: #f9fbfe;
}

.open-data-table tbody tr:last-child th,
.open-data-table tbody tr:last-child td {
	border-bottom: none;
}

.open-data-table tbody tr:hover {
	background: #f8fbff;
}

.open-data-contact {
	background: #f7fafd;
	vertical-align: middle;
}

.open-data-contact a {
	color: #17518d;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.open-data-contact a:hover {
	text-decoration: underline;
}

/* 서비스 바로가기 */

.open-data-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.open-data-link {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
	padding: 25px 22px;
	border: 1px solid #dce5ef;
	border-radius: 14px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.open-data-link:hover {
	border-color: #a5c8ea;
	background: #f7fbff;
	box-shadow: 0 10px 28px rgba(13, 48, 86, .07);
	transform: translateY(-2px);
}

.open-data-link:focus-visible {
	outline: 3px solid #327dc1;
	outline-offset: 3px;
}

.open-data-link-icon {
	display: flex;
	flex: 0 0 55px;
	align-items: center;
	justify-content: center;
	width: 55px;
	height: 55px;
	border-radius: 12px;
	background: #eaf3fd;
	color: #17518d;
}

.open-data-link-icon svg {
	width: 31px;
	height: 31px;
}

.open-data-link-content {
	flex: 1;
	min-width: 0;
}

.open-data-link-content > span {
	display: block;
	margin-bottom: 5px;
	color: #7899bb;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .8px;
}

.open-data-link-content strong {
	display: block;
	margin-bottom: 7px;
	color: #15395e;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -.5px;
}

.open-data-link-content p {
	margin: 0;
	color: #8695a6;
	font-size: 12px;
	line-height: 1.5;
}

.open-data-link-arrow {
	display: flex;
	flex: 0 0 30px;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px solid #dce5ef;
	border-radius: 50%;
	color: #316da4;
	font-size: 19px;
	font-weight: 600;
}

.open-data-link:hover .open-data-link-arrow {
	border-color: #17518d;
	background: #17518d;
	color: #fff;
}
/* =========================================
   충남경찰 통계 - 공통 페이지 / 표 / 고정 목차
   기존 헤더 · 푸터 · 사이드메뉴 변경 없음
========================================= */
.police-stats,
.police-stats * {
	box-sizing: border-box;
}

.police-stats {
	width: 100%;
	min-width: 0;
	color: #233c59;
}

.police-stats-intro {
	margin-bottom: 28px;
}

.police-stats-eyebrow {
	display: block;
	margin-bottom: 9px;
	color: #2568b8;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.6px;
}

.police-stats-intro h2 {
	margin: 0 0 10px;
	color: #102b4f;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -1px;
}

.police-stats-intro p {
	margin: 0;
	color: #778498;
	font-size: 14px;
	line-height: 1.7;
}

/* 분야 선택: 다른 분야는 페이지 생성 전까지 비활성 상태 */
.police-stats-categories {
	display: flex;
	gap: 8px;
	min-width: 0;
	margin: 0 0 32px;
	padding: 8px;
	overflow-x: auto;
	border: 1px solid #e1e9f3;
	border-radius: 12px;
	background: #f5f8fc;
}

.police-stats-category {
	display: inline-flex;
	flex: 1 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 15px;
	border-radius: 8px;
	color: #667f99;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
	white-space: nowrap;
}

.police-stats-category.is-current {
	background: #174d85;
	box-shadow: 0 2px 8px rgba(23, 77, 133, .13);
	color: #fff;
}

.police-stats-category.is-pending {
	color: #64788d;
}

.police-stats-categories a.police-stats-category:hover,
.police-stats-categories a.police-stats-category:focus-visible {
	background: #e6f0fb;
	color: #174d85;
}

/* 통계별 블록 */
.police-stats-section {
	min-width: 0;
	margin-bottom: 26px;
	padding: 24px;
	border: 1px solid #dce5ef;
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 6px 24px rgba(13, 48, 86, .04);
	scroll-margin-top: 110px;
}

.police-stats-section-head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e8eef5;
}

.police-stats-section-number {
	display: flex;
	flex: 0 0 46px;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 11px;
	background: #174d85;
	color: #fff;
	font-size: 17px;
	font-weight: 800;
}

.police-stats-section-heading {
	min-width: 0;
}

.police-stats-section-title {
	margin: 0 0 5px;
	color: #15395e;
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -.5px;
	line-height: 1.45;
}

.police-stats-section-heading p {
	margin: 0;
	color: #8a9aab;
	font-size: 12px;
	line-height: 1.6;
}

/* 통계표 */
.police-stats-table-scroll {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	border: 1px solid #dce5ef;
	border-radius: 11px;
	background: #fff;
	-webkit-overflow-scrolling: touch;
}

.police-stats-table-scroll:focus-visible {
	outline: 3px solid #65a2de;
	outline-offset: 2px;
}

.police-stats-table {
	width: 100%;
	min-width: 580px;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: auto;
	font-size: 13px;
}

.police-stats-table caption {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.police-stats-table thead th {
	padding: 15px 12px;
	border-right: 1px solid #dce7f3;
	border-bottom: 2px solid #376fa7;
	background: #edf4fc;
	color: #164979;
	font-weight: 800;
	line-height: 1.5;
	text-align: center;
	white-space: nowrap;
}

.police-stats-table thead th:last-child {
	border-right: 0;
}

.police-stats-table tbody th,
.police-stats-table tbody td {
	padding: 14px 12px;
	border-right: 1px solid #edf1f6;
	border-bottom: 1px solid #e8eef5;
	color: #455a70;
	line-height: 1.55;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.police-stats-table tbody th {
	background: #f7faff;
	color: #194d81;
	font-weight: 800;
	white-space: nowrap;
}

.police-stats-table tbody td:last-child,
.police-stats-table tbody th:last-child {
	border-right: 0;
}

.police-stats-table tbody tr:last-child th,
.police-stats-table tbody tr:last-child td {
	border-bottom: 0;
}

.police-stats-table tbody tr:hover td,
.police-stats-table tbody tr:hover th {
	background: #eef6ff;
}

.police-stats-table--compact {
	min-width: 0;
}

.police-stats-table--wide {
	min-width: 1160px;
}

.police-stats-table--wide thead th {
	padding: 14px 8px;
	font-size: 12px;
}

.police-stats-table--wide tbody th,
.police-stats-table--wide tbody td {
	padding: 14px 9px;
	font-size: 12px;
}

.police-stats-period {
	margin: 11px 0 0;
	color: #8b9bad;
	font-size: 12px;
	text-align: right;
}

/* 화면 우측에 고정되는 목차 리모컨 */
.police-stats-remote {
	position: fixed;
	z-index: 120;
	top: 50%;
	right: 20px;
	width: 226px;
	transform: translateY(-50%);
}

.police-stats-remote-toggle {
	display: none;
}

.police-stats-remote-panel {
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	padding: 18px 14px 12px;
	border: 1px solid #cdddeb;
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 12px 34px rgba(16, 47, 79, .16);
}

.police-stats-remote-title {
	margin: 0 4px 11px;
	padding: 0 0 12px;
	border-bottom: 1px solid #e8eef5;
	color: #173c63;
	font-size: 14px;
	font-weight: 800;
}

.police-stats-remote-list {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.police-stats-remote-item {
	display: block;
	padding: 11px 10px;
	border-radius: 7px;
	color: #5a7189;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.55;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}

.police-stats-remote-item:hover,
.police-stats-remote-item:focus-visible {
	background: #edf5fd;
	color: #174d85;
}

.police-stats-remote-item.is-active {
	background: #174d85;
	color: #fff;
}

.police-stats-remote-top {
	width: 100%;
	margin-top: 12px;
	padding: 10px;
	border: 1px solid #dce5ef;
	border-radius: 7px;
	background: #f7fafe;
	color: #174d85;
	font-size: 12px;
	font-weight: 750;
	cursor: pointer;
}

.police-stats-remote-top:hover {
	background: #eaf3ff;
}
