@charset "utf-8";

/* 서브 페이지 공통 골격 (특구종합안내 2개 화면)
   - 디자인 기준: 현재 메인 화면(index.jsp)과 common/layout/component/main.css 토큰
   - 콘텐츠 근거: prototypes 의 본문 구조
   - 화면별 스타일은 .ti-overview / .ti-status 로 범위를 좁혀 메인 CSS와 충돌을 줄인다. */

/* ── 서브 비주얼 배너 (고정 헤더를 비우고 메인 hero 와 같은 계열) ── */
.sub-visual {position: relative; overflow: hidden; padding: 14rem 0 4.5rem; background: url(../images/main/bg_main_visual.svg) center / cover no-repeat; color: #fff;}
.sub-visual__inner {position: relative; z-index: 1;}
.breadcrumb {display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-bottom: 1.6rem; color: #cfe6f6; font-size: 1.5rem; font-weight: 500; letter-spacing: -.03em;}
.breadcrumb__home {display: inline-flex; align-items: center; justify-content: center; width: 1.8rem; height: 1.8rem; overflow: visible; background: none; color: #fff; font-size: 0; line-height: 1; text-indent: 0;}
.breadcrumb__home::before {content: "🏠"; font-size: 1.5rem;}
.breadcrumb li {display: flex; align-items: center; gap: .8rem;}
.breadcrumb li::before {content: "›"; color: #7fb6d8;}
.breadcrumb li:first-child::before {display: none;}
.breadcrumb li[aria-current="page"] {color: #fff; font-weight: 700;}
.sub-visual__title {color: #fff; font-size: 4.4rem; font-weight: 700; letter-spacing: -.176rem;}
.sub-visual__desc {margin-top: 1.4rem; color: #94D8F4; font-size: 1.8rem; font-weight: 500; letter-spacing: -.072rem;}
.sub-page-tools {display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem;}
.sub-page-tools__button {display: inline-flex; align-items: center; justify-content: center; min-height: 3.6rem; padding: 0 1.4rem; border: 1px solid rgba(255,255,255,.32); border-radius: var(--Radius_Pill); background: rgba(255,255,255,.1); color: #fff; font-size: 1.3rem; font-weight: 800; cursor: pointer;}
.sub-page-tools__button:hover,
.sub-page-tools__button:focus {background: rgba(255,255,255,.18); text-decoration: none;}

@media (max-width: 1024px) {
  .sub-visual {padding: 13rem 0 4rem;}
}
@media (max-width: 768px) {
  .sub-visual {padding: 11rem 0 3.4rem;}
  .sub-visual__title {font-size: 3.2rem;}
  .sub-visual__desc {font-size: 1.6rem;}
}
@media (max-width: 480px) {
  .sub-visual__title {font-size: 2.6rem;}
}

/* ── 본문 컨테이너 ── */
.sub-container {padding: 6rem 0 10rem;}
.sub-section {margin-bottom: 5rem;}
.sub-section:last-child {margin-bottom: 0;}
.sub-section__title {display: flex; align-items: center; gap: 1rem; margin-bottom: 1.8rem; color: var(--Gray_100); font-size: 2.6rem; font-weight: 700; letter-spacing: -.052rem;}
.sub-section__title::before {content: ""; width: .6rem; height: 2.4rem; border-radius: 3rem; background: var(--Primary);}
.sub-section__title .tag-key {margin-left: .4rem;}

@media (max-width: 768px) {
  .sub-container {padding: 4rem 0 7rem;}
  .sub-section__title {font-size: 2.2rem;}
}

/* ── GNB 현재 위치 표시 ── */
.gnb__link[aria-current="page"] {color: var(--Primary); font-weight: 700;}

/* ── 화면 공통 토큰 (프로토타입 변수 → 현재 디자인 값으로 재매핑) ── */
.ti-overview,
.ti-status,
.sb-sandbox,
.ft-intro,
.ft-status,
.ft-process,
.gt-intro,
.gt-status,
.gt-process,
.lt-intro,
.lt-status,
.lt-process,
.ab-intro,
.ab-org,
.ab-location,
.im-board,
.quick-dictionary,
.quick-staff,
.staff-search,
.lt-zone-search,
.zone-effect,
.zone-post {
  --tp: #141414;   /* 본문 강조 */
  --ts: #565656;   /* 보조 텍스트 */
  --tl: #8a93a3;   /* 흐린 텍스트 */
  --tsec: #374151; /* 본문 텍스트 */
  --bd: #d8e1ea;   /* 테두리 */
  --bdl: #e9eef5;  /* 옅은 테두리 */
  --shadow: 0 12px 30px rgba(0, 36, 80, .12);
  --z-free: #0082CA;   --z-free-lt: #E8F0FA;
  --z-global: #0050A0; --z-global-lt: #E0EAF8;
  --z-local: #B45309;  --z-local-lt: #F5E6D0;
  color: var(--tsec); font-size: 1.4rem; line-height: 1.6; letter-spacing: -.02em;
}
/* 하위메뉴 기본 폰트 크기 */
.ft-intro, .ft-status, .ft-process, .sb-sandbox, .gt-intro, .gt-status, .gt-process, .lt-intro, .lt-status, .lt-process, .ab-intro, .ab-org, .ab-location {
  font-size: 1.7rem;
}
.ti-overview a, .ti-status a, .sb-sandbox a, .ft-intro a, .ft-status a, .ft-process a, .gt-intro a, .gt-status a, .gt-process a, .lt-intro a, .lt-status a, .lt-process a, .ab-intro a, .ab-org a, .ab-location a, .im-board a, .zone-effect a, .zone-post a {color: inherit;}
.ft-intro .button--primary, .gt-intro .button--primary, .lt-intro .button--primary {color: #fff;}

/* 링크처럼 보이는 버튼 (모달 트리거) */
.link-like {display: inline; padding: 0; background: none; border: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 2px;}

/* ====================================================================
   3대 특구 한눈에 보기 (.ti-overview)
   ==================================================================== */

/* 관련 법령 안내 박스 */
.ti-overview .info-box, .sb-sandbox .info-box, .ft-intro .info-box, .ft-process .info-box, .gt-intro .info-box, .gt-process .info-box, .lt-intro .info-box, .lt-process .info-box, .ab-intro .info-box, .ab-org .info-box, .ab-location .info-box, .im-board .info-box {padding: 1.6rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #f7fafd; font-size: 1.4rem; line-height: 1.7; color: var(--tsec);}
.ft-intro .info-box, .ft-process .info-box, .sb-sandbox .info-box, .gt-intro .info-box, .gt-process .info-box, .lt-intro .info-box, .lt-process .info-box, .ab-intro .info-box, .ab-org .info-box, .ab-location .info-box {font-size: 1.7rem;}
.ti-overview .info-box a, .sb-sandbox .info-box a, .ft-intro .info-box a, .ft-process .info-box a, .gt-intro .info-box a, .gt-process .info-box a, .lt-intro .info-box a, .lt-process .info-box a, .ab-intro .info-box a, .ab-org .info-box a, .ab-location .info-box a, .im-board .info-box a {color: var(--Primary); font-weight: 600;}
.ti-overview .info-box a strong, .sb-sandbox .info-box a strong, .ft-intro .info-box a strong, .ft-process .info-box a strong, .gt-intro .info-box a strong, .gt-process .info-box a strong, .lt-intro .info-box a strong, .lt-process .info-box a strong, .ab-intro .info-box a strong, .ab-org .info-box a strong, .ab-location .info-box a strong, .im-board .info-box a strong {font-weight: 700;}

/* 지자체 신청 안내 배너 */
.ti-overview .apply-notice {display: flex; align-items: center; gap: 1.6rem; padding: 2rem 2.4rem; border-radius: var(--Radius_S); background: linear-gradient(135deg, #1e3a5f 0%, var(--Primary) 100%); color: #fff;}
.ti-overview .apply-notice .an-icon {flex-shrink: 0; font-size: 2.8rem;}
.ti-overview .apply-notice .an-text strong {display: block; margin-bottom: .4rem; font-size: 1.6rem; font-weight: 700;}
.ti-overview .apply-notice .an-text span {font-size: 1.4rem; line-height: 1.6; opacity: .9;}

/* 섹션 소제목 */
.ti-overview .ov-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--Primary); font-size: 1.7rem; font-weight: 700; color: var(--tp);}

/* 3대 특구 가로 카드 */
.ti-overview .zone-tri-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem;}
.ti-overview .ztc {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; transition: box-shadow .15s, transform .15s;}
.ti-overview .ztc:hover {box-shadow: var(--shadow); transform: translateY(-2px);}
.ti-overview .ztc-header {padding: 2rem 2rem 1.8rem; color: #fff;}
.ti-overview .ztc-header.free   {background: linear-gradient(135deg, #005fa3 0%, var(--z-free) 100%);}
.ti-overview .ztc-header.global {background: linear-gradient(135deg, #003070 0%, var(--z-global) 100%);}
.ti-overview .ztc-header.local  {background: linear-gradient(135deg, #7a3200 0%, var(--z-local) 100%);}
.ti-overview .ztc-name {margin-bottom: .8rem; font-size: 1.9rem; font-weight: 800;}
.ti-overview .ztc-tag {display: inline-block; margin-bottom: 1rem; padding: .3rem 1rem; border-radius: 2rem; background: rgba(255, 255, 255, .22); font-size: 1.2rem; font-weight: 600;}
.ti-overview .ztc-desc {font-size: 1.35rem; line-height: 1.65; opacity: .92;}

/* 비교표 */
.ti-overview .compare-table-wrap {overflow-x: auto;}
.ti-overview .compare-table {min-width: 72rem; overflow: hidden; border: 1px solid var(--bd); border-radius: var(--Radius_S); background: #fff;}
.ti-overview .compare-table table {width: 100%; border-collapse: collapse;}
.ti-overview .compare-table thead th {padding: 1.3rem 1.6rem; border-right: 1px solid rgba(255, 255, 255, .15); font-size: 1.35rem; font-weight: 700; color: #fff; text-align: center; background: #1e3a5f;}
.ti-overview .compare-table thead th:first-child {text-align: left;}
.ti-overview .compare-table thead th:last-child {border-right: none;}
.ti-overview .compare-table thead th.th-free   {background: var(--z-free);}
.ti-overview .compare-table thead th.th-global {background: var(--z-global);}
.ti-overview .compare-table thead th.th-local  {background: var(--z-local);}
.ti-overview .compare-table tbody tr {border-bottom: 1px solid var(--bdl);}
.ti-overview .compare-table tbody tr:last-child {border-bottom: none;}
.ti-overview .compare-table tbody tr.row-key {background: #f8faff;}
.ti-overview .compare-table tbody td {padding: 1.1rem 1.6rem; border-right: 1px solid var(--bdl); font-size: 1.35rem; line-height: 1.6; text-align: center; vertical-align: top;}
.ti-overview .compare-table tbody td:last-child {border-right: none;}
.ti-overview .compare-table tbody td:first-child {background: #f5f7fa; font-weight: 700; color: var(--ts); text-align: left; white-space: nowrap;}
.ti-overview .compare-table small {color: #64748b; font-weight: 400;}
.ti-overview .td-free   {border-top: .2rem solid var(--z-free) !important;}
.ti-overview .td-global {border-top: .2rem solid var(--z-global) !important;}
.ti-overview .td-local  {border-top: .2rem solid var(--z-local) !important;}
.ti-overview .compare-table a {color: var(--Primary); font-weight: 600;}
.ti-overview .tag-key {display: inline-block; margin-left: .4rem; padding: .1rem .6rem; border-radius: .3rem; background: #fee2e2; color: #b91c1c; font-size: 1.1rem; font-weight: 700; vertical-align: middle;}
.ti-overview .tag-diff {display: inline-block; margin-left: .4rem; padding: .1rem .6rem; border-radius: .3rem; background: #fef3c7; color: #92400e; font-size: 1.1rem; font-weight: 700; vertical-align: middle;}
.ti-overview .check-y, .gt-intro .check-y, .lt-intro .check-y {color: #059669; font-weight: 700;}
.ti-overview .check-n, .gt-intro .check-n, .lt-intro .check-n {color: #94a3b8;}
.ti-overview .restrict-badge {display: inline-block; padding: .2rem .8rem; border-radius: .4rem; background: #ffe4e6; color: #be123c; font-size: 1.2rem; font-weight: 700;}

/* 특구 지정 사례 */
.ti-overview .case-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem;}
.ti-overview .case-card {display: block; min-height: 0; padding: 0; overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ti-overview .case-card .cc-head {width: 100%; padding: 1.2rem 1.6rem; font-size: 1.4rem; font-weight: 700; color: #fff; box-sizing: border-box;}
.ti-overview .case-card .cc-head.free   {background: var(--z-free);}
.ti-overview .case-card .cc-head.global {background: var(--z-global);}
.ti-overview .case-card .cc-head.local  {background: var(--z-local);}
.ti-overview .case-card .cc-head .cc-region {margin-bottom: .3rem; font-size: 1.2rem; font-weight: 600; opacity: .85;}
.ti-overview .case-card .cc-body {width: 100%; padding: 1.4rem 1.6rem; font-size: 1.35rem; line-height: 1.7; box-sizing: border-box;}
.ti-overview .case-card .cc-body .cc-name {margin-bottom: .8rem; font-size: 1.45rem; font-weight: 700; color: var(--tp);}
.ti-overview .case-card .cc-body .cc-item {display: flex; gap: .6rem; padding: .3rem 0; color: var(--tsec);}
.ti-overview .case-card .cc-body .cc-item::before {content: "▸"; flex-shrink: 0; color: var(--Primary);}

@media (max-width: 860px) {
  .ti-overview .zone-tri-grid,
  .ti-overview .case-grid {grid-template-columns: 1fr;}
}

/* ── 메뉴판식 특례 모달 (정적 콘텐츠, 서비스 .modal 컴포넌트 재사용) ── */
.spec-menu-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem;}
.spec-menu-grid .smg-item {padding: 1.6rem; border-left: .4rem solid var(--smg-color, var(--Primary)); border-radius: var(--Radius_S); background: var(--smg-bg, #f0f7ff);}
.spec-menu-grid .smg-item .smg-label {margin-bottom: .6rem; font-weight: 700; color: var(--smg-color, var(--Primary));}
.spec-menu-grid .smg-item .smg-num {font-size: 2.8rem; font-weight: 800; color: var(--smg-color, var(--Primary));}
.spec-menu-grid .smg-item .smg-num span {font-size: 1.4rem;}
.spec-menu-note {margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid #eee; font-size: 1.2rem; color: #888; text-align: center;}
.modal__lead {margin-bottom: 2rem; color: #666; font-size: 1.4rem;}
.modal#tiSpecFree, .modal#tiSpecLocal {align-items: flex-start;}
.modal#tiSpecFree .modal__dialog, .modal#tiSpecLocal .modal__dialog {margin-top: 11rem; max-height: calc(100vh - 17rem);}
.modal#tiSpecFree .modal__body, .modal#tiSpecLocal .modal__body {max-height: calc(100vh - 17rem - 8.1rem); overscroll-behavior: contain;}

@media (max-width: 480px) {
  .spec-menu-grid {grid-template-columns: 1fr;}
}

/* ====================================================================
   특구 지정 현황 (.ti-status)
   ==================================================================== */

/* 전체 현황 요약 */
.ti-status .total-stats {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; padding: 1.8rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #f8faff;}
.ti-status .total-stats .ts-cell {padding: .8rem; text-align: center;}
.ti-status .total-stats .ts-cell + .ts-cell {border-left: 1px solid var(--bdl);}
.ti-status .total-stats .ts-num {font-size: 2.4rem; font-weight: 800; line-height: 1.2; color: var(--tp);}
.ti-status .total-stats .ts-num span {font-size: 1.4rem; font-weight: 400;}
.ti-status .total-stats .ts-num.free   {color: var(--z-free);}
.ti-status .total-stats .ts-num.global {color: var(--z-global);}
.ti-status .total-stats .ts-num.local  {color: var(--z-local);}
.ti-status .total-stats .ts-lbl {margin-top: .3rem; font-size: 1.2rem; font-weight: 600; color: var(--ts);}

/* 최근 지정 특구 목록 */
.ti-status .recent-head {display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; font-size: 1.55rem; font-weight: 700; color: var(--tp);}
.ti-status .recent-head .recent-count {font-size: 1.25rem; font-weight: 400; color: var(--tl);}
.ti-status .board-table {overflow-x: auto; border-top: .2rem solid var(--Primary); border-radius: 0 0 var(--Radius_S) var(--Radius_S);}
.ti-status .board-table table {width: 100%; border-collapse: collapse;}
.ti-status .board-table th {padding: 1.1rem .8rem; border-bottom: 1px solid var(--bd); background: #f5f7fa; font-size: 1.3rem; font-weight: 700; color: var(--ts);}
.ti-status .board-table td {padding: 1rem .8rem; border-bottom: 1px solid var(--bdl); font-size: 1.3rem; color: var(--tsec);}
.ti-status .board-table tr:last-child td {border-bottom: none;}
.ti-status .badge-type {display: inline-block; padding: .3rem .8rem; border-radius: .4rem; font-size: 1.2rem; font-weight: 600;}

/* 특구 유형 탭 */
.ti-status .zone-type-tabs {display: flex; gap: .8rem; margin-bottom: 2rem;}
.ti-status .ztt {flex: 1; padding: 1.3rem 1.6rem; border: .2rem solid var(--bdl); border-radius: var(--Radius_S); background: #fff; font-size: 1.5rem; font-weight: 700; color: var(--ts); text-align: center; cursor: pointer; transition: all .15s;}
.ti-status .ztt:hover {border-color: var(--Primary); color: var(--Primary);}
.ti-status .ztt.active.free   {background: var(--z-free-lt);   color: var(--z-free);   border-color: var(--z-free);}
.ti-status .ztt.active.global {background: var(--z-global-lt); color: var(--z-global); border-color: var(--z-global);}
.ti-status .ztt.active.local  {background: var(--z-local-lt);  color: var(--z-local);  border-color: var(--z-local);}

/* 통계 카드 */
.ti-status .ss-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; margin-bottom: 2rem;}
.ti-status .ss-card {padding: 1.6rem; border: 1px solid var(--bdl); border-top: .3rem solid var(--z-free); border-radius: var(--Radius_S); background: #fff; text-align: center; cursor: pointer; transition: box-shadow .12s, transform .12s;}
.ti-status .ss-card:hover {box-shadow: var(--shadow); transform: translateY(-2px);}
.ti-status .ss-num {font-size: 2.6rem; font-weight: 800; line-height: 1.2; color: var(--z-free);}
.ti-status .ss-unit {font-size: 1.4rem; font-weight: 400;}
.ti-status .ss-lbl {margin-top: .4rem; font-size: 1.4rem; color: var(--ts);}
.ti-status .ss-hint {margin-top: .2rem; font-size: 1.3rem; color: #94a3b8;}

/* 서브탭 */
.ti-status .stab-bar {display: flex; border-bottom: .2rem solid var(--bdl); margin-bottom: 1.4rem;}
.ti-status .stab {padding: 1rem 2.6rem; margin-bottom: -.2rem; border: none; border-bottom: .2rem solid transparent; background: transparent; font-size: 1.45rem; font-weight: 600; color: var(--ts); cursor: pointer; transition: color .12s;}
.ti-status .stab.on {color: var(--z-free); border-bottom-color: var(--z-free);}

/* 차수 필터 */
.ti-status .sub-ctrl {display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.2rem;}
.ti-status .flt-btn {padding: .5rem 1.4rem; border: 1px solid var(--bd); border-radius: 1.4rem; background: #fff; font-size: 1.25rem; font-weight: 600; color: var(--ts); cursor: pointer; transition: all .12s;}
.ti-status .flt-btn:hover, .ti-status .flt-btn.on {background: var(--z-free); color: #fff; border-color: var(--z-free);}

/* 지도 + 상세 레이아웃 */
.ti-status .map-layout {display: flex; gap: 1.4rem; min-height: 50rem;}
.ti-status .map-box {width: 42%; flex-shrink: 0; padding: 1.4rem 1rem 1rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ti-status .map-box-title {margin-bottom: .6rem; font-size: 1.25rem; font-weight: 700; color: var(--ts); text-align: center;}
.ti-status .detail-box {flex: 1; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ti-status .db-hd {display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.4rem; border-bottom: 1px solid var(--bdl); background: #f5f7fa; font-size: 1.3rem; font-weight: 700; color: var(--ts);}
.ti-status .db-hd__label {min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
/* 특구유형별 탭에서 유형을 골라 목록으로 들어갔을 때만 나오는 뒤로가기 */
.ti-status .db-hd__back {flex-shrink: 0; padding: .4rem 1.2rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--ts); font: inherit; font-size: 1.2rem; font-weight: 700; cursor: pointer;}
.lt-status .db-hd__back:hover {border-color: var(--z-local); color: var(--z-local);}
.ti-status .db-body {flex: 1; overflow-y: auto; padding: 1.4rem;}

/* 목록(카드) 화면 전용 페이지네이션. 요약/타일 화면에서는 lt-status.js가 숨긴다. */
.ti-status .board-pagination {display: none; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; padding: 1rem 1.4rem; border-top: 1px solid var(--bdl); background: #fff; flex-shrink: 0;}
.ti-status .board-pagination.is-visible {display: flex;}
.ti-status .board-pagination .page {display: inline-flex; align-items: center; justify-content: center; min-width: 3.2rem; height: 3.2rem; padding: 0 .4rem; border: 0; border-radius: .6rem; background: transparent; color: var(--tp); font: inherit; font-size: 1.3rem; font-weight: 600; cursor: pointer;}
.ti-status .board-pagination .page.is-disabled {opacity: .35; cursor: default;}
.lt-status .board-pagination .page.is-current {background: var(--z-local); color: #fff; font-weight: 800;}

/* SVG 지도 */
.ti-status .mr {fill: #E8F0FA; stroke: #fff; stroke-width: 1.5; cursor: pointer; transition: fill .12s;}
.ti-status .mr:hover {opacity: .82;}
.ti-status .mr.na {fill: #EFEFEF; cursor: default;}
.ti-status .ml {font-size: 9.5px; fill: #333; text-anchor: middle; font-weight: 600; pointer-events: none;}
.ti-status .ml.sm {font-size: 8px;}

/* 특구 카드 / 상세 패널 내부 */
.ti-status .zc {margin-bottom: .8rem; padding: 1.1rem 1.3rem; border: 1px solid var(--bdl); border-radius: .6rem; width: 100%;}
.ti-status .zc:last-child {margin-bottom: 0;}
.ti-status .zc:hover {border-color: var(--z-local); background: #fff8f0;}
.ti-status .zc-title {display: flex; align-items: center; margin-bottom: .5rem; font-size: 1.35rem; font-weight: 700; color: var(--tp);}
.ti-status .zc-meta {display: flex; flex-wrap: wrap; gap: .8rem; align-items: center;}
.ti-status .zc-meta span:not(.tag-ind) {font-size: 1.15rem; color: var(--ts);}
.ti-status .badge-r {display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; margin-right: .4rem; border-radius: 50%; background: var(--z-free); color: #fff; font-size: 1rem; font-weight: 800; flex-shrink: 0;}
.ti-status .tag-ind {display: inline-block; padding: .2rem .7rem; border-radius: .9rem; background: var(--z-free-lt); color: var(--z-free); font-size: 1.15rem; font-weight: 600;}
.ti-status .ph {display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; min-height: 24rem; color: var(--tl); font-size: 1.3rem; text-align: center;}
.ti-status .rg {display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem;}
.ti-status .rc {padding: 1rem .6rem; border: 1px solid var(--bdl); border-radius: .6rem; text-align: center; cursor: pointer; transition: all .12s;}
.ti-status .rc:hover {border-color: var(--z-free); background: #f0f7ff;}
.ti-status .rc-num {font-size: 1.8rem; font-weight: 800; color: var(--z-free);}
.ti-status .rc-name {font-size: 1.2rem; font-weight: 700; color: var(--tp);}
.ti-status .il-item {display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--bdl); cursor: pointer;}
.ti-status .il-item:last-child {border-bottom: none;}
.ti-status .il-icon {width: 3rem; font-size: 2rem; text-align: center;}
.ti-status .il-info {flex: 1;}
.ti-status .il-name {font-size: 1.3rem; font-weight: 700; color: var(--tp);}
.ti-status .il-cnt {margin-top: .1rem; font-size: 1.15rem; color: var(--ts);}
.ti-status .bar-bg {width: 8rem; height: .6rem; overflow: hidden; border-radius: .3rem; background: #E0EEFA;}
.ti-status .bar-fill {height: 100%; border-radius: .3rem; background: var(--z-free);}


/* 범례 */
.ti-status .legend-row, .lt-zone-search .legend-row {display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: .8rem;}
.ti-status .leg, .lt-zone-search .leg {display: flex; align-items: center; gap: .3rem; font-size: 1.05rem; color: var(--ts);}
.ti-status .ld, .lt-zone-search .ld {width: 1rem; height: 1rem; border-radius: .2rem; display: inline-block;}

@media (max-width: 860px) {
  .ti-status .total-stats {grid-template-columns: repeat(2, 1fr); row-gap: 1.4rem;}
  .ti-status .total-stats .ts-cell:nth-child(odd) {border-left: none;}
  .ti-status .ss-grid {grid-template-columns: repeat(2, 1fr);}
  .ti-status .zone-type-tabs {flex-wrap: wrap;}
  .ti-status .map-layout {flex-direction: column; min-height: 0;}
  .ti-status .map-box {width: 100%;}
}
@media (max-width: 480px) {
  .ti-status .rg {grid-template-columns: repeat(3, 1fr);}
}

/* ====================================================================
   규제자유특구 소개 (.ft-intro)
   ==================================================================== */
.ft-intro .zone-overview-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ft-intro .zoc-header {padding: 2rem 2.4rem 1.6rem; border-bottom: 1px solid var(--bdl);}
.ft-intro .zoc-header.free {border-top: .5rem solid var(--z-free); background: linear-gradient(135deg, #E8F4FF, #F8FBFF);}
.ft-intro .zoc-title {margin: 0 0 .8rem; color: var(--tp); font-size: 2.19rem; font-weight: 800;}
.ft-intro .zoc-desc {margin: 0; color: var(--ts); font-size: 1.7rem; line-height: 1.8;}
.ft-intro .zoc-body {padding: 2rem 2.4rem;}
.ft-intro .ft-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--z-free); color: var(--tp); font-size: 1.94rem; font-weight: 800;}
.ft-intro .ft-mini-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem;}
.ft-intro .ft-mini-card {display: flex; flex-direction: column; gap: .4rem; min-height: 12rem; padding: 1.4rem 1.6rem; border: 1px solid var(--bdl); border-top: .3rem solid var(--z-free); border-radius: var(--Radius_S); background: #fff;}
.ft-intro .ft-mini-card__label {color: var(--ts); font-size: 1.52rem; font-weight: 700;}
.ft-intro .ft-mini-card strong {color: var(--z-free); font-size: 2.06rem; font-weight: 800;}
.ft-intro .ft-mini-card span:not(.ft-mini-card__label) {color: var(--ts); font-size: 1.52rem;}
.ft-intro .ft-mini-card a {color: var(--Success); font-size: 1.58rem; font-weight: 700;}
.ft-intro .ft-mini-card a:hover {text-decoration: underline;}
.ft-intro .ft-mini-card__action {align-self: flex-start; padding: 0; border: 0; background: transparent; color: var(--z-free); font-size: 2.67rem; font-weight: 800; line-height: 1.2; cursor: pointer;}
.ft-intro .ft-mini-card__action span {font-size: 1.58rem;}
.ft-intro .ft-mini-card__action:hover {text-decoration: underline; text-underline-offset: 3px;}
.ft-intro .feature-list {list-style: none; margin: 0; padding: 0;}
.ft-intro .feature-list li {position: relative; padding: 1rem 1rem 1rem 2.8rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.7rem; line-height: 1.8;}
.ft-intro .feature-list li:last-child {border-bottom: 0;}
.ft-intro .feature-list li::before {content: ""; position: absolute; left: .8rem; top: 1.85rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--z-free);}
.ft-intro .support-table-wrap {overflow-x: auto;}
.ft-intro .support-table {width: 100%; min-width: 68rem; border: 1px solid var(--bdl); border-collapse: collapse; background: #fff; font-size: 1.64rem;}
.ft-intro .support-table th {padding: 1rem 1.2rem; background: var(--z-free); color: #fff; font-weight: 800; text-align: center;}
.ft-intro .support-table td {padding: 1rem 1.2rem; border: 1px solid var(--bdl); color: var(--tsec); line-height: 1.7; vertical-align: top;}
.ft-intro .support-table tbody tr:nth-child(even) td {background: #FAFBFC;}
.ft-intro .support-table td:first-child {width: 18%; background: #F0F7FF; color: #004A7A; font-weight: 800; text-align: center;}
.ft-intro .step-flow {display: flex; align-items: stretch; gap: 0; overflow-x: auto;}
.ft-intro .step-item {position: relative; flex: 1; min-width: 11rem; text-align: center;}
.ft-intro .step-item:not(:last-child)::after {content: "›"; position: absolute; top: 50%; right: -.2rem; z-index: 1; transform: translateY(-50%); color: var(--z-free); font-size: 2.91rem; font-weight: 800;}
.ft-intro .step-box {display: flex; flex-direction: column; align-items: center; height: 100%; min-height: 11rem; margin: 0 .8rem; padding: 1.3rem .8rem; border: 1px solid #C0DCF5; border-radius: var(--Radius_S); background: #F0F7FF;}
.ft-intro .step-num {display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; margin-bottom: .7rem; border-radius: 50%; background: var(--z-free); color: #fff; font-size: 1.34rem; font-weight: 800;}
.ft-intro .step-title {color: var(--tp); font-size: 1.52rem; font-weight: 800; line-height: 1.4;}
.ft-intro .step-sub {margin-top: .4rem; color: var(--ts); font-size: 1.34rem; line-height: 1.45;}
.ft-intro .ft-note {margin: 1.2rem 0 0; color: var(--ts); font-size: 1.52rem;}
.ft-intro .contact-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;}
.ft-intro .contact-card {display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem 1.8rem; border-radius: var(--Radius_S); background: #F5F7FA; color: var(--tsec); font-size: 1.64rem; line-height: 1.7;}
.ft-intro .contact-card strong {color: var(--ts); font-size: 1.64rem;}
.ft-intro .quick-btns {display: flex; flex-wrap: wrap; gap: 1rem; padding: 1.6rem 2.4rem; border-top: 1px solid var(--bdl); background: #F5F7FA;}
.ft-intro .button {min-height: 4.4rem; padding: 0 2rem; border-radius: var(--Radius_S); font-size: 1.7rem; font-weight: 700;}

@media (max-width: 860px) {
  .ft-intro .ft-mini-grid,
  .ft-intro .contact-grid {grid-template-columns: 1fr 1fr;}
  .ft-intro .step-flow {flex-direction: column; gap: .8rem; overflow: visible;}
  .ft-intro .step-item::after {display: none;}
  .ft-intro .step-box {margin: 0;}
}
@media (max-width: 560px) {
  .ft-intro .ft-mini-grid,
  .ft-intro .contact-grid {grid-template-columns: 1fr;}
}

/* ====================================================================
   규제자유특구 지정현황 (.ft-status)
   - 지도와 상세 패널은 .ti-status 컴포넌트를 같은 컨테이너에 함께 부여해 재사용한다.
   ==================================================================== */
.ft-status .ss-card {display: block; width: 100%; font: inherit; color: inherit;}
.ft-status .ss-num, .ft-status .ss-lbl, .ft-status .ss-hint {display: block;}
.ft-status .rc {display: block; width: 100%; background: #fff; font: inherit; color: inherit;}
.ft-status .il-item {width: 100%; border-width: 0 0 1px; background: transparent; text-align: left; font: inherit; color: inherit;}
.ft-status .il-name, .ft-status .il-cnt {display: block;}
.ft-status .bar-bg, .ft-status .bar-fill {display: block;}

/* ====================================================================
   규제자유특구 지정절차 (.ft-process)
   ==================================================================== */
.ft-process .process-lead {margin: 0; padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--z-free); border-radius: var(--Radius_S); background: #f7fafd; color: var(--tsec); font-size: 1.76rem; line-height: 1.8;}
.ft-process .proc-container {max-width: 86rem;}
.ft-process .proc-step-item {position: relative; display: flex; gap: 3.2rem; margin-bottom: 4.4rem;}
.ft-process .proc-step-item:last-child {margin-bottom: 0;}
.ft-process .proc-step-item:not(:last-child)::after {content: ""; position: absolute; left: 5.9rem; top: 12.4rem; width: .2rem; height: calc(100% - 7.4rem); border-left: .2rem dashed #b3d7ed;}
.ft-process .proc-badge {position: relative; z-index: 2; flex: 0 0 11.8rem; width: 11.8rem; height: 11.8rem; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #cce3f2; border-radius: 2rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(0,130,202,.07);}
.ft-process .proc-badge--light,
.ft-process .proc-highlight {background: #f0f8fd !important; border-color: var(--z-free) !important;}
.ft-process .proc-badge .step-num {margin-bottom: .6rem; color: var(--z-free); font-size: 1.46rem; font-weight: 800; letter-spacing: .06em;}
.ft-process .proc-badge .step-icon {display: inline-flex; align-items: center; justify-content: center; width: 3.8rem; height: 3.8rem; border-radius: 50%; background: var(--z-free); color: #fff; font-size: 1.7rem; font-weight: 800;}
.ft-process .proc-content {flex: 1; padding: 2.8rem 3rem; border: 1px solid #e5f0f8; border-radius: 2rem; background: #fff; box-shadow: 0 .4rem 1.8rem rgba(0,130,202,.06);}
.ft-process .proc-content h3 {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0 0 1.4rem; color: #1e293b; font-size: 2.19rem; font-weight: 800;}
.ft-process .proc-content h3 .subj {padding: .3rem 1rem; border-radius: .5rem; background: #e6f3fb; color: var(--z-free); font-size: 1.46rem; font-weight: 700;}
.ft-process .proc-detail-list {list-style: none; margin: 0; padding: 0;}
.ft-process .proc-detail-list li {position: relative; margin-bottom: .6rem; padding-left: 1.6rem; color: #475569; font-size: 1.7rem; line-height: 1.75;}
.ft-process .proc-detail-list li:last-child {margin-bottom: 0;}
.ft-process .proc-detail-list li::before {content: "•"; position: absolute; left: 0; color: #94a3b8; font-weight: 800;}
.ft-process .law-ref-box {padding: 1.6rem 2rem; border: 1px solid #cce3f2; border-left: .4rem solid var(--z-free); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #f0f8fd; color: #334155; font-size: 1.64rem; line-height: 1.9;}
.ft-process .law-ref-box strong {display: inline-block; min-width: 8rem; color: var(--z-free);}
.ft-process .law-ref-box a {color: var(--z-free); text-decoration: underline; text-underline-offset: 2px;}
.ft-process .proc-info-box {display: flex; align-items: center; gap: 2.4rem; padding: 3.2rem 3.6rem; border-radius: 1.6rem; background: #1e293b;}
.ft-process .proc-info-box .info-icon {flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: #7dd3fc; color: #1e293b; font-size: 2.43rem; font-weight: 800;}
.ft-process .proc-info-box p {margin: 0; color: #cbd5e1; font-size: 1.76rem; line-height: 1.75;}
.ft-process .proc-info-box strong {color: #7dd3fc;}

@media (max-width: 768px) {
  .ft-process .proc-step-item {flex-direction: column; align-items: stretch; gap: 1.6rem;}
  .ft-process .proc-step-item::after {display: none;}
  .ft-process .proc-badge {width: 100%; height: auto; min-height: 8rem; flex-basis: auto; border-radius: var(--Radius_S);}
  .ft-process .proc-content {padding: 2.2rem;}
  .ft-process .proc-info-box {align-items: flex-start; padding: 2.4rem; flex-direction: column;}
}

/* ====================================================================
   글로벌혁신특구 소개 (.gt-intro)
   ==================================================================== */
.gt-intro .zone-overview-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.gt-intro .zoc-header {padding: 2rem 2.4rem 1.6rem; border-bottom: 1px solid var(--bdl);}
.gt-intro .zoc-header.global {border-top: .5rem solid var(--z-global); background: linear-gradient(135deg, #EBF2FA, #F8FBFF);}
.gt-intro .zoc-title {margin: 0 0 .8rem; color: var(--tp); font-size: 2.19rem; font-weight: 800;}
.gt-intro .zoc-desc {margin: 0; color: var(--ts); font-size: 1.7rem; line-height: 1.8;}
.gt-intro .zoc-body {padding: 2rem 2.4rem;}
.gt-intro .gt-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--z-global); color: var(--tp); font-size: 1.94rem; font-weight: 800;}
.gt-intro .gt-mini-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem;}
.gt-intro .gt-mini-card {display: flex; flex-direction: column; gap: .4rem; min-height: 12rem; padding: 1.4rem 1.6rem; border: 1px solid var(--bdl); border-top: .3rem solid var(--z-global); border-radius: var(--Radius_S); background: #fff;}
.gt-intro .gt-mini-card__label {color: var(--ts); font-size: 1.52rem; font-weight: 700;}
.gt-intro .gt-mini-card strong {color: var(--z-global); font-size: 2.06rem; font-weight: 800;}
.gt-intro .gt-mini-card span:not(.gt-mini-card__label):not(.check-y):not(.check-n) {color: var(--ts); font-size: 1.52rem;}
.gt-intro .gt-mini-card span.check-y, .gt-intro .gt-mini-card span.check-n {font-size: 1.52rem;}
.gt-intro .gt-mini-card a {color: var(--Success); font-size: 1.58rem; font-weight: 700;}
.gt-intro .gt-mini-card a:hover {text-decoration: underline;}
.gt-intro .diff-table-wrap {overflow-x: auto;}
.gt-intro .diff-table {width: 100%; min-width: 72rem; border: 1px solid var(--bdl); border-collapse: collapse; background: #fff; font-size: 1.64rem;}
.gt-intro .diff-table th {padding: 1rem 1.4rem; color: #fff; font-weight: 800; text-align: center;}
.gt-intro .diff-table th:first-child {background: #F5F7FA; color: var(--ts);}
.gt-intro .diff-table th.th-free {background: var(--z-free);}
.gt-intro .diff-table th.th-global {background: var(--z-global);}
.gt-intro .diff-table td {padding: 1rem 1.4rem; border: 1px solid var(--bdl); color: var(--tsec); line-height: 1.7; text-align: center; vertical-align: top;}
.gt-intro .diff-table td:first-child {background: #F5F7FA; color: var(--ts); font-weight: 800; text-align: left; white-space: nowrap;}
.gt-intro .feature-list {list-style: none; margin: 0; padding: 0;}
.gt-intro .feature-list li {position: relative; padding: 1rem 1rem 1rem 2.8rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.7rem; line-height: 1.8;}
.gt-intro .feature-list li:last-child {border-bottom: 0;}
.gt-intro .feature-list li::before {content: ""; position: absolute; left: .8rem; top: 1.85rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--z-global);}
.gt-intro .step-flow {display: flex; align-items: stretch; gap: 0; overflow-x: auto;}
.gt-intro .step-item {position: relative; flex: 1; min-width: 11rem; text-align: center;}
.gt-intro .step-item:not(:last-child)::after {content: "›"; position: absolute; top: 50%; right: -.2rem; z-index: 1; transform: translateY(-50%); color: var(--z-global); font-size: 2.91rem; font-weight: 800;}
.gt-intro .step-box {display: flex; flex-direction: column; align-items: center; height: 100%; min-height: 11rem; margin: 0 .8rem; padding: 1.3rem .8rem; border: 1px solid #C0CFE8; border-radius: var(--Radius_S); background: #EEF3FA;}
.gt-intro .step-num {display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; margin-bottom: .7rem; border-radius: 50%; background: var(--z-global); color: #fff; font-size: 1.34rem; font-weight: 800;}
.gt-intro .step-title {color: var(--tp); font-size: 1.52rem; font-weight: 800; line-height: 1.4;}
.gt-intro .step-sub {margin-top: .4rem; color: var(--ts); font-size: 1.34rem; line-height: 1.45;}
.gt-intro .gt-note {margin: 1.2rem 0 0; color: var(--ts); font-size: 1.52rem;}
.gt-intro .contact-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;}
.gt-intro .contact-card {display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem 1.8rem; border-radius: var(--Radius_S); background: #F5F7FA; color: var(--tsec); font-size: 1.64rem; line-height: 1.7;}
.gt-intro .contact-card strong {color: var(--ts); font-size: 1.64rem;}
.gt-intro .quick-btns {display: flex; flex-wrap: wrap; gap: 1rem; padding: 1.6rem 2.4rem; border-top: 1px solid var(--bdl); background: #F5F7FA;}
.gt-intro .button {min-height: 4.4rem; padding: 0 2rem; border-radius: var(--Radius_S); font-size: 1.7rem; font-weight: 700;}

@media (max-width: 860px) {
  .gt-intro .gt-mini-grid,
  .gt-intro .contact-grid {grid-template-columns: 1fr 1fr;}
  .gt-intro .step-flow {flex-direction: column; gap: .8rem; overflow: visible;}
  .gt-intro .step-item::after {display: none;}
  .gt-intro .step-box {margin: 0;}
}
@media (max-width: 560px) {
  .gt-intro .gt-mini-grid,
  .gt-intro .contact-grid {grid-template-columns: 1fr;}
}

/* ====================================================================
   글로벌혁신특구 지정현황 (.gt-status)
   - 지도와 상세 패널은 .ti-status 컴포넌트를 같은 컨테이너에 함께 부여해 재사용한다.
   ==================================================================== */
.gt-status .info-notice {margin-bottom: 1.6rem; padding: 1.4rem 1.8rem; border: 1px solid #C0CFE8; border-left: .4rem solid var(--z-global); border-radius: var(--Radius_S); background: #EEF3FA; color: #334D7A; font-size: 1.64rem; line-height: 1.7;}
.gt-status .ss-card {display: block; width: 100%; border-top-color: var(--z-global); font: inherit; color: inherit;}
.gt-status .ss-num, .gt-status .ss-lbl, .gt-status .ss-hint {display: block;}
.gt-status .ss-num {color: var(--z-global);}
.gt-status .stab.on {color: var(--z-global); border-bottom-color: var(--z-global);}
.gt-status .flt-btn:hover, .gt-status .flt-btn.on {background: var(--z-global); color: #fff; border-color: var(--z-global);}
.gt-status .badge-r {background: var(--z-global);}
.gt-status .tag-ind {background: var(--z-global-lt); color: #003D88;}
.gt-status .zc-desc {margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--bdl); color: var(--ts); font-size: 1.46rem; line-height: 1.7;}
.gt-status .rc {display: block; width: 100%; background: #fff; font: inherit; color: inherit;}
.gt-status .rc:hover {border-color: var(--z-global); background: #EEF3FA;}
.gt-status .rc-num {color: var(--z-global);}
.gt-status .il-item {width: 100%; border-width: 0 0 1px; background: transparent; text-align: left; font: inherit; color: inherit;}
.gt-status .il-item:hover .il-name {color: var(--z-global);}
.gt-status .il-name, .gt-status .il-cnt {display: block;}
.gt-status .bar-bg, .gt-status .bar-fill {display: block;}
.gt-status .bar-bg {background: #D8E4F0;}
.gt-status .bar-fill {background: var(--z-global);}
.gt-status .korea-map-svg {width: 100%; display: block;}
.gt-status .ld--none {background: #EFEFEF; border: 1px solid #ddd;}
.gt-status .ld--one {background: #C0CFE8;}
.gt-status .ld--multi {background: #4A80C0;}
.gt-status .ld--selected {background: var(--z-global); border: 2px solid #00205A; box-sizing: border-box;}

/* ====================================================================
   글로벌혁신특구 지정절차 (.gt-process)
   ==================================================================== */
.gt-process .process-lead {margin: 0; padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--z-global); border-radius: var(--Radius_S); background: #f7fafd; color: var(--tsec); font-size: 1.76rem; line-height: 1.8;}
.gt-process .proc-container {width: 100%;}
.gt-process .proc-step-item {position: relative; display: flex; gap: 3.2rem; margin-bottom: 4.4rem;}
.gt-process .proc-step-item:last-child {margin-bottom: 0;}
.gt-process .proc-step-item:not(:last-child)::after {content: ""; position: absolute; left: 5.9rem; top: 12.4rem; width: .2rem; height: calc(100% - 7.4rem); border-left: .2rem dashed #aac4e0;}
.gt-process .proc-badge {position: relative; z-index: 2; flex: 0 0 11.8rem; width: 11.8rem; height: 11.8rem; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #c0d8f0; border-radius: 2rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(0,80,160,.07);}
.gt-process .proc-badge--light,
.gt-process .proc-highlight {background: #eef5fc !important; border-color: var(--z-global) !important;}
.gt-process .proc-badge .step-num {margin-bottom: .6rem; color: var(--z-global); font-size: 1.46rem; font-weight: 800; letter-spacing: .06em;}
.gt-process .proc-badge .step-icon {display: inline-flex; align-items: center; justify-content: center; width: 3.8rem; height: 3.8rem; border-radius: 50%; background: var(--z-global); color: #fff; font-size: 1.7rem; font-weight: 800;}
.gt-process .proc-content {flex: 1; padding: 2.8rem 3rem; border: 1px solid #ddeaf7; border-radius: 2rem; background: #fff; box-shadow: 0 .4rem 1.8rem rgba(0,80,160,.06);}
.gt-process .proc-content h3 {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0 0 1.4rem; color: #1e293b; font-size: 2.19rem; font-weight: 800;}
.gt-process .proc-content h3 .subj {padding: .3rem 1rem; border-radius: .5rem; background: #e0ecf8; color: var(--z-global); font-size: 1.46rem; font-weight: 700;}
.gt-process .proc-detail-list {list-style: none; margin: 0; padding: 0;}
.gt-process .proc-detail-list li {position: relative; margin-bottom: .6rem; padding-left: 1.6rem; color: #475569; font-size: 1.7rem; line-height: 1.75;}
.gt-process .proc-detail-list li:last-child {margin-bottom: 0;}
.gt-process .proc-detail-list li::before {content: "•"; position: absolute; left: 0; color: #94a3b8; font-weight: 800;}
.gt-process .law-ref-box {padding: 1.6rem 2rem; border: 1px solid #c0d8f0; border-left: .4rem solid var(--z-global); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #eef5fc; color: #334155; font-size: 1.64rem; line-height: 1.9;}
.gt-process .law-ref-box strong {display: inline-block; min-width: 8rem; color: var(--z-global);}
.gt-process .law-ref-box a {color: var(--z-global); text-decoration: underline; text-underline-offset: 2px;}
.gt-process .proc-info-box {display: flex; align-items: center; gap: 2.4rem; padding: 3.2rem 3.6rem; border-radius: 1.6rem; background: #1e293b;}
.gt-process .proc-info-box .info-icon {flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: #93c5fd; color: #1e293b; font-size: 2.43rem; font-weight: 800;}
.gt-process .proc-info-box p {margin: 0; color: #cbd5e1; font-size: 1.76rem; line-height: 1.75;}
.gt-process .proc-info-box strong {color: #93c5fd;}

@media (max-width: 768px) {
  .gt-process .proc-step-item {flex-direction: column; align-items: stretch; gap: 1.6rem;}
  .gt-process .proc-step-item::after {display: none;}
  .gt-process .proc-badge {width: 100%; height: auto; min-height: 8rem; flex-basis: auto; border-radius: var(--Radius_S);}
  .gt-process .proc-content {padding: 2.2rem;}
  .gt-process .proc-info-box {align-items: flex-start; padding: 2.4rem; flex-direction: column;}
}

/* ====================================================================
   지역특화특구 소개 (.lt-intro)
   ==================================================================== */
.lt-intro .info-box {border-left-color: var(--z-local); background: #fff8f0;}
.lt-intro .info-box a {color: var(--z-local);}
.lt-intro .zone-overview-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.lt-intro .zoc-header {padding: 2rem 2.4rem 1.6rem; border-bottom: 1px solid var(--bdl);}
.lt-intro .zoc-header.local {border-top: .5rem solid var(--z-local); background: linear-gradient(135deg, #FFF3E0, #FFFBF5);}
.lt-intro .zoc-title {margin: 0 0 .8rem; color: var(--tp); font-size: 2.19rem; font-weight: 800;}
.lt-intro .zoc-desc {margin: 0; color: var(--ts); font-size: 1.7rem; line-height: 1.8;}
.lt-intro .zoc-body {padding: 2rem 2.4rem;}
.lt-intro .lt-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--z-local); color: var(--tp); font-size: 1.94rem; font-weight: 800;}
.lt-intro .lt-mini-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem;}
.lt-intro .lt-mini-card {display: flex; flex-direction: column; gap: .4rem; min-height: 12rem; padding: 1.4rem 1.6rem; border: 1px solid var(--bdl); border-top: .3rem solid var(--z-local); border-radius: var(--Radius_S); background: #fff;}
.lt-intro .lt-mini-card__label {color: var(--ts); font-size: 1.52rem; font-weight: 700;}
.lt-intro .lt-mini-card strong {color: var(--z-local); font-size: 2.06rem; font-weight: 800;}
.lt-intro .lt-mini-card span:not(.lt-mini-card__label):not(.lt-mini-card__count):not(.lt-mini-card__number):not(.lt-mini-card__unit):not(.check-y):not(.check-n) {color: var(--ts); font-size: 1.52rem;}
.lt-intro .lt-mini-card span.check-y, .lt-intro .lt-mini-card span.check-n {font-size: 1.52rem;}
.lt-intro .lt-mini-card__count {display: flex; align-items: baseline; gap: .6rem;}
.lt-intro .lt-mini-card__number {color: var(--z-local); font-size: 2.67rem; font-weight: 800; line-height: 1.2;}
.lt-intro .lt-mini-card__unit {color: var(--z-local); font-size: 1.58rem;}
.lt-intro .lt-mini-card__detail {padding: 0; border: 0; background: transparent; color: var(--z-local); font-size: 1.34rem; font-weight: 700; line-height: 1.2; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;}
.lt-intro .lt-mini-card__detail:hover {color: #7a3800;}
.lt-intro .feature-list {list-style: none; margin: 0; padding: 0;}
.lt-intro .feature-list li {position: relative; padding: 1rem 1rem 1rem 2.8rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.7rem; line-height: 1.8;}
.lt-intro .feature-list li:last-child {border-bottom: 0;}
.lt-intro .feature-list li::before {content: ""; position: absolute; left: .8rem; top: 1.85rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--z-local);}
.lt-intro .lt-field-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem;}
.lt-intro .lt-field-card {display: flex; flex-direction: column; align-items: center; gap: .4rem; min-height: 12rem; padding: 1.4rem 1rem; border: 1px solid #e8c090; border-radius: var(--Radius_S); background: #fff8f0; text-align: center;}
.lt-intro .lt-field-icon {font-size: 2.91rem; line-height: 1;}
.lt-intro .lt-field-card strong {color: var(--z-local); font-size: 1.64rem; font-weight: 800;}
.lt-intro .lt-field-card span:not(.lt-field-icon) {color: var(--ts); font-size: 1.4rem; line-height: 1.5;}
.lt-intro .lt-note {margin: 1.2rem 0 0; color: var(--ts); font-size: 1.52rem;}
.lt-intro .diff-table-wrap {overflow-x: auto;}
.lt-intro .diff-table {width: 100%; min-width: 72rem; border: 1px solid var(--bdl); border-collapse: collapse; background: #fff; font-size: 1.64rem;}
.lt-intro .diff-table th {padding: 1rem 1.4rem; color: #fff; font-weight: 800; text-align: center;}
.lt-intro .diff-table th:first-child {background: #F5F7FA; color: var(--ts);}
.lt-intro .diff-table th.th-free {background: var(--z-free);}
.lt-intro .diff-table th.th-local {background: var(--z-local);}
.lt-intro .diff-table td {padding: 1rem 1.4rem; border: 1px solid var(--bdl); color: var(--tsec); line-height: 1.7; text-align: center; vertical-align: top;}
.lt-intro .diff-table td:first-child {background: #F5F7FA; color: var(--ts); font-weight: 800; text-align: left; white-space: nowrap;}
.lt-intro .step-flow {display: flex; align-items: stretch; gap: 0; overflow-x: auto;}
.lt-intro .step-item {position: relative; flex: 1; min-width: 11rem; text-align: center;}
.lt-intro .step-item:not(:last-child)::after {content: "›"; position: absolute; top: 50%; right: -.2rem; z-index: 1; transform: translateY(-50%); color: var(--z-local); font-size: 2.91rem; font-weight: 800;}
.lt-intro .step-box {display: flex; flex-direction: column; align-items: center; height: 100%; min-height: 11rem; margin: 0 .8rem; padding: 1.3rem .8rem; border: 1px solid #e8c090; border-radius: var(--Radius_S); background: #fff8f0;}
.lt-intro .step-num {display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; margin-bottom: .7rem; border-radius: 50%; background: var(--z-local); color: #fff; font-size: 1.34rem; font-weight: 800;}
.lt-intro .step-title {color: var(--tp); font-size: 1.52rem; font-weight: 800; line-height: 1.4;}
.lt-intro .step-sub {margin-top: .4rem; color: var(--ts); font-size: 1.34rem; line-height: 1.45;}
.lt-intro .contact-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;}
.lt-intro .contact-card {display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem 1.8rem; border-radius: var(--Radius_S); background: #F5F7FA; color: var(--tsec); font-size: 1.64rem; line-height: 1.7;}
.lt-intro .contact-card strong {color: var(--ts); font-size: 1.64rem;}
.lt-intro .quick-btns {display: flex; flex-wrap: wrap; gap: 1rem; padding: 1.6rem 2.4rem; border-top: 1px solid var(--bdl); background: #F5F7FA;}
.lt-intro .button {min-height: 4.4rem; padding: 0 2rem; border-radius: var(--Radius_S); font-size: 1.7rem; font-weight: 700;}

@media (max-width: 860px) {
  .lt-intro .lt-mini-grid,
  .lt-intro .lt-field-grid,
  .lt-intro .contact-grid {grid-template-columns: 1fr 1fr;}
  .lt-intro .step-flow {flex-direction: column; gap: .8rem; overflow: visible;}
  .lt-intro .step-item::after {display: none;}
  .lt-intro .step-box {margin: 0;}
}
@media (max-width: 560px) {
  .lt-intro .lt-mini-grid,
  .lt-intro .lt-field-grid,
  .lt-intro .contact-grid {grid-template-columns: 1fr;}
}

/* ====================================================================
   지역특화특구 지정현황 (.lt-status)
   - 지도와 상세 패널은 .ti-status 컴포넌트를 같은 컨테이너에 함께 부여해 재사용한다.
   ==================================================================== */
/* 연도 배지 색상 */
.lt-status {--staff-tag-bg: #FFF3E0; --staff-tag-tx: #7A3800;}
.lt-status .info-notice {margin-bottom: 1.6rem; padding: 1.4rem 1.8rem; border: 1px solid #ddb870; border-left: .4rem solid var(--z-local); border-radius: var(--Radius_S); background: #fff8f0; color: #7a3800; font-size: 1.64rem; line-height: 1.7;}
.lt-status .info-notice .link-like {color: var(--z-local); font-weight: 800;}
.lt-status .ss-card {display: block; width: 100%; border-top-color: var(--z-local); font: inherit; color: inherit;}
.lt-status .ss-num, .lt-status .ss-lbl, .lt-status .ss-hint {display: block;}
.lt-status .ss-num {color: var(--z-local);}
.lt-status .stab.on {color: var(--z-local); border-bottom-color: var(--z-local);}
.lt-status .flt-btn:hover, .lt-status .flt-btn.on {background: var(--z-local); color: #fff; border-color: var(--z-local);}
.lt-status .badge-y {display: inline-flex; align-items: center; justify-content: center; min-width: 3.8rem; height: 2.2rem; margin-right: .5rem; padding: 0 .5rem; border-radius: 1.1rem; background: var(--z-local); color: #fff; font-size: 1.21rem; font-weight: 800; flex-shrink: 0;}
.lt-status .tag-ind {background: var(--z-local-lt); color: #7a3800;}
.lt-status .rc {display: block; width: 100%; background: #fff; font: inherit; color: inherit;}
.lt-status .rc:hover {border-color: var(--z-local); background: #fff8f0;}
.lt-status .rc-num {color: var(--z-local);}
.lt-status .il-item {width: 100%; border-width: 0 0 1px; background: transparent; text-align: left; font: inherit; color: inherit;}
.lt-status .il-item:hover .il-name {color: var(--z-local);}
.lt-status .il-name, .lt-status .il-cnt {display: block;}
.lt-status .bar-bg, .lt-status .bar-fill {display: block;}
.lt-status .bar-bg {background: #f0dcc0;}
.lt-status .bar-fill {background: var(--z-local);}
.lt-status .korea-map-svg {width: 100%; display: block;}
/* 견본 5개는 lt-status.js의 COLOR_Z 5색과 순서가 같아야 한다. 색을 바꾸면 지도와 어긋난다. */
.lt-status .ld--one, .lt-zone-search .ld--one {background: #f5e6d0; border: 1px solid #ddd;}
.lt-status .ld--mid, .lt-zone-search .ld--mid {background: #ddb870;}
.lt-status .ld--high, .lt-zone-search .ld--high {background: #cc9040;}
.lt-status .ld--higher, .lt-zone-search .ld--higher {background: #a86820;}
.lt-status .ld--max, .lt-zone-search .ld--max {background: #8c5010;}
.lt-status .ld--selected, .lt-zone-search .ld--selected {background: var(--z-local); border: 2px solid #5f2b00; box-sizing: border-box;}

/* ====================================================================
   지역특화특구 지정절차 (.lt-process)
   ==================================================================== */
.lt-process .info-box {border-left-color: var(--z-local); background: #fff8f0;}
.lt-process .info-box a {color: var(--z-local);}
.lt-process .process-lead {margin: 0; padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--z-local); border-radius: var(--Radius_S); background: #fff8f0; color: var(--tsec); font-size: 1.76rem; line-height: 1.8;}
.lt-process .proc-container {width: 100%;}
.lt-process .proc-step-item {position: relative; display: flex; gap: 3.2rem; margin-bottom: 4.4rem;}
.lt-process .proc-step-item:last-child {margin-bottom: 0;}
.lt-process .proc-step-item:not(:last-child)::after {content: ""; position: absolute; left: 5.9rem; top: 12.4rem; width: .2rem; height: calc(100% - 7.4rem); border-left: .2rem dashed #ddb870;}
.lt-process .proc-badge {position: relative; z-index: 2; flex: 0 0 11.8rem; width: 11.8rem; height: 11.8rem; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #e8c090; border-radius: 2rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(180,83,9,.07);}
.lt-process .proc-badge--light,
.lt-process .proc-highlight {background: #fff8f0 !important; border-color: var(--z-local) !important;}
.lt-process .proc-badge .step-num {margin-bottom: .6rem; color: var(--z-local); font-size: 1.46rem; font-weight: 800; letter-spacing: .06em;}
.lt-process .proc-badge .step-icon {display: inline-flex; align-items: center; justify-content: center; width: 3.8rem; height: 3.8rem; border-radius: 50%; background: var(--z-local); color: #fff; font-size: 1.7rem; font-weight: 800;}
.lt-process .proc-content {flex: 1; padding: 2.8rem 3rem; border: 1px solid #f0e0c8; border-radius: 2rem; background: #fff; box-shadow: 0 .4rem 1.8rem rgba(180,83,9,.06);}
.lt-process .proc-content h3 {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0 0 1.4rem; color: #1e293b; font-size: 2.19rem; font-weight: 800;}
.lt-process .proc-content h3 .subj {padding: .3rem 1rem; border-radius: .5rem; background: #fef3e2; color: var(--z-local); font-size: 1.46rem; font-weight: 700;}
.lt-process .proc-detail-list {list-style: none; margin: 0; padding: 0;}
.lt-process .proc-detail-list li {position: relative; margin-bottom: .6rem; padding-left: 1.6rem; color: #475569; font-size: 1.7rem; line-height: 1.75;}
.lt-process .proc-detail-list li:last-child {margin-bottom: 0;}
.lt-process .proc-detail-list li::before {content: "•"; position: absolute; left: 0; color: #94a3b8; font-weight: 800;}
.lt-process .proc-detail-list a {color: var(--z-local); text-decoration: underline; text-underline-offset: 2px;}
.lt-process .law-ref-box {padding: 1.6rem 2rem; border: 1px solid #e8c090; border-left: .4rem solid var(--z-local); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #fff8f0; color: #334155; font-size: 1.64rem; line-height: 1.9;}
.lt-process .law-ref-box strong {display: inline-block; min-width: 8rem; color: var(--z-local);}
.lt-process .law-ref-box a {color: var(--z-local); text-decoration: underline; text-underline-offset: 2px;}
.lt-process .proc-info-box {display: flex; align-items: center; gap: 2.4rem; padding: 3.2rem 3.6rem; border-radius: 1.6rem; background: #1e293b;}
.lt-process .proc-info-box .info-icon {flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: #fcd34d; color: #1e293b; font-size: 2.43rem; font-weight: 800;}
.lt-process .proc-info-box p {margin: 0; color: #cbd5e1; font-size: 1.76rem; line-height: 1.75;}
.lt-process .proc-info-box strong {color: #fcd34d;}

@media (max-width: 768px) {
  .lt-process .proc-step-item {flex-direction: column; align-items: stretch; gap: 1.6rem;}
  .lt-process .proc-step-item::after {display: none;}
  .lt-process .proc-badge {width: 100%; height: auto; min-height: 8rem; flex-basis: auto; border-radius: var(--Radius_S);}
  .lt-process .proc-content {padding: 2.2rem;}
  .lt-process .proc-info-box {align-items: flex-start; padding: 2.4rem; flex-direction: column;}
}

/* ====================================================================
   지정효과 공통 화면 (.zone-effect)
   ==================================================================== */
.zone-effect {--zone-color: var(--Primary); --zone-light: #f7fafd; --zone-border: var(--bdl); --zone-dark: #1e293b; --zone-accent: #38bdf8;}
.zone-effect--free {--zone-color: var(--z-free); --zone-light: #f0f7ff; --zone-border: #b3d9f0; --zone-dark: #0c3455; --zone-accent: #38bdf8;}
.zone-effect--global {--zone-color: var(--z-global); --zone-light: #eef5fc; --zone-border: #c0d8f0; --zone-dark: #0a2a5e; --zone-accent: #60a5fa;}
.zone-effect--local {--zone-color: var(--z-local); --zone-light: #fff8f0; --zone-border: #e8c090; --zone-dark: #3d1a02; --zone-accent: #fbbf24;}
.zone-effect .effect-vision-card {padding: 3.2rem 3.6rem; margin-bottom: 3rem; border-radius: var(--Radius_S); background: linear-gradient(135deg, var(--zone-dark) 0%, var(--zone-color) 100%); color: #fff;}
.zone-effect .effect-vision-card h3 {margin: 0 0 1rem; color: #fff; font-size: 2.4rem; font-weight: 900; line-height: 1.35;}
.zone-effect .effect-vision-card p {margin: 0; color: rgba(255, 255, 255, .92); font-size: 1.45rem; line-height: 1.85;}
.zone-effect .effect-vision-card strong {color: #fff;}
.zone-effect .effect-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; margin-bottom: 4rem;}
.zone-effect .effect-card {min-height: 20rem; padding: 2.4rem 2rem; border: 1px solid var(--zone-border); border-radius: var(--Radius_S); background: #fff; text-align: center; box-shadow: 0 .6rem 1.8rem rgba(0, 36, 80, .06);}
.zone-effect .effect-card .icon-box {display: inline-flex; align-items: center; justify-content: center; width: 5.4rem; height: 5.4rem; margin: 0 auto 1.4rem; border-radius: 50%; background: var(--zone-light); color: var(--zone-color); font-size: 2.8rem; line-height: 1;}
.zone-effect .effect-card h3 {margin: 0 0 .8rem; color: var(--tp); font-size: 1.8rem; font-weight: 900; line-height: 1.4;}
.zone-effect .effect-card p {margin: 0; color: var(--tsec); font-size: 1.35rem; line-height: 1.75;}
.zone-effect .effect-detail-section {margin-bottom: 3.2rem;}
.zone-effect .effect-section-title {margin: 0 0 1.6rem; padding-left: 1rem; border-left: .4rem solid var(--zone-color); color: var(--tp); font-size: 2rem; font-weight: 900; line-height: 1.4;}
.zone-effect .effect-list-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem;}
.zone-effect .effect-list-item {display: flex; gap: 1.4rem; padding: 2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.zone-effect .effect-list-item .num {flex: 0 0 4rem; width: 4rem; height: 4rem; border-radius: 50%; background: var(--zone-color); color: #fff; font-size: 1.3rem; font-weight: 900; line-height: 4rem; text-align: center;}
.zone-effect .effect-list-item h4 {margin: 0 0 .5rem; color: var(--tp); font-size: 1.55rem; font-weight: 900;}
.zone-effect .effect-list-item p {margin: 0; color: var(--tsec); font-size: 1.32rem; line-height: 1.75;}
.zone-effect .effect-law-box {padding: 1.8rem 2.2rem; border: 1px solid var(--zone-border); border-left: .4rem solid var(--zone-color); border-radius: var(--Radius_S); background: var(--zone-light); color: var(--tsec); font-size: 1.35rem; line-height: 1.95;}
.zone-effect .effect-law-box strong {display: inline-block; min-width: 7rem; color: var(--zone-color); font-weight: 900;}
.zone-effect .effect-law-box a {color: var(--zone-color); font-weight: 700; text-decoration: underline; text-underline-offset: 2px;}
.modal.zone-effect .modal__dialog {width: min(96rem, 100%);}
.modal.zone-effect .modal__body {padding: 2.4rem;}
.zone-effect .effect-menu-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem;}
.zone-effect .effect-menu-item {min-height: 17rem; padding: 1.6rem 1.4rem; border: 1px solid var(--zone-border); border-radius: var(--Radius_S); background: var(--zone-light); text-align: center;}
.zone-effect .effect-menu-item .m-icon {margin-bottom: .8rem; font-size: 2.4rem; line-height: 1;}
.zone-effect .effect-menu-item strong {display: block; margin-bottom: .4rem; color: var(--zone-color); font-size: 1.45rem; font-weight: 900;}
.zone-effect .effect-menu-item span {display: block; margin-bottom: .7rem; color: var(--ts); font-size: 1.15rem; font-weight: 800;}
.zone-effect .effect-menu-item p {margin: 0; color: var(--tsec); font-size: 1.2rem; line-height: 1.55;}
.zone-effect .effect-menu-note {margin: 1.8rem 0 0; padding: 1.3rem 1.6rem; border-radius: var(--Radius_S); background: #fff; color: var(--tsec); font-size: 1.3rem; line-height: 1.7;}

@media (max-width: 960px) {
  .zone-effect .effect-grid,
  .zone-effect .effect-list-grid {grid-template-columns: 1fr;}
  .zone-effect .effect-menu-grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 560px) {
  .zone-effect .effect-vision-card {padding: 2.4rem;}
  .zone-effect .effect-vision-card h3 {font-size: 2rem;}
  .zone-effect .effect-list-item {flex-direction: column;}
  .zone-effect .effect-menu-grid {grid-template-columns: 1fr;}
}

/* ====================================================================
   사후관리 공통 화면 (.zone-post)
   ==================================================================== */
.zone-post {--zone-color: var(--Primary); --zone-light: #f7fafd; --zone-border: var(--bdl); --zone-dark: #1e293b; --zone-accent: #38bdf8;}
.zone-post--free {--zone-color: var(--z-free); --zone-light: #f0f7ff; --zone-border: #b3d9f0; --zone-dark: #0c3455; --zone-accent: #38bdf8;}
.zone-post--global {--zone-color: var(--z-global); --zone-light: #eef5fc; --zone-border: #c0d8f0; --zone-dark: #0a2a5e; --zone-accent: #60a5fa;}
.zone-post--local {--zone-color: var(--z-local); --zone-light: #fff8f0; --zone-border: #e8c090; --zone-dark: #3d1a02; --zone-accent: #fbbf24;}
.zone-post .post-hero {padding: 3rem 3.4rem; margin-bottom: 2.4rem; border-radius: var(--Radius_S); background: linear-gradient(135deg, var(--zone-dark) 0%, var(--zone-color) 100%); color: #fff;}
.zone-post .post-hero h3 {margin: 0 0 1rem; color: #fff; font-size: 2.3rem; font-weight: 900; line-height: 1.35;}
.zone-post .post-hero p {margin: 0; color: rgba(255, 255, 255, .92); font-size: 1.42rem; line-height: 1.8;}
.zone-post .post-kpi {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; margin-bottom: 3.6rem;}
.zone-post .kpi-card {padding: 1.8rem 1.2rem; border: 1px solid var(--zone-border); border-radius: var(--Radius_S); background: var(--zone-light); text-align: center;}
.zone-post .kpi-card strong {display: block; margin-bottom: .5rem; color: var(--zone-color); font-size: 2rem; font-weight: 900; line-height: 1.25;}
.zone-post .kpi-card span {display: block; color: var(--ts); font-size: 1.2rem; font-weight: 800; line-height: 1.45;}
.zone-post .post-section {margin-bottom: 3.8rem;}
.zone-post .post-section:last-child {margin-bottom: 0;}
.zone-post .post-section-title {margin: 0 0 1.5rem; padding-left: 1rem; border-left: .4rem solid var(--zone-color); color: var(--tp); font-size: 2rem; font-weight: 900; line-height: 1.4;}
.zone-post .post-check-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem;}
.zone-post .post-check-card {padding: 2rem 2.2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.zone-post .post-check-card h4 {margin: 0 0 1rem; color: var(--tp); font-size: 1.55rem; font-weight: 900; line-height: 1.45;}
.zone-post .post-check-card ul,
.zone-post .post-law-box ul,
.zone-post .eval-card-body ul {margin: 0; padding-left: 1.8rem; color: var(--tsec);}
.zone-post .post-check-card li,
.zone-post .post-law-box li,
.zone-post .eval-card-body li {margin-bottom: .45rem; font-size: 1.32rem; line-height: 1.75;}
.zone-post .post-check-card li:last-child,
.zone-post .post-law-box li:last-child,
.zone-post .eval-card-body li:last-child {margin-bottom: 0;}
.zone-post .post-step-flow,
.zone-post .post-sanction-flow {display: flex; align-items: stretch; gap: .8rem; overflow-x: auto;}
.zone-post .post-step-flow div,
.zone-post .post-sanction-flow div {flex: 1 0 13rem; min-height: 8rem; padding: 1.4rem 1.2rem; border: 1px solid var(--zone-border); border-radius: var(--Radius_S); background: var(--zone-light); color: var(--tp); font-size: 1.32rem; font-weight: 900; line-height: 1.45; text-align: center;}
.zone-post .post-step-flow div span {display: block; margin-top: .5rem; color: var(--ts); font-size: 1.1rem; font-weight: 700; line-height: 1.45;}
.zone-post .post-step-flow i,
.zone-post .post-sanction-flow i {display: flex; align-items: center; color: var(--zone-color); font-size: 1.7rem; font-style: normal; font-weight: 900;}
.zone-post .post-sanction-flow .danger {border-color: #fecaca; background: #fff1f2; color: #be123c;}
.zone-post .post-sanction-flow small {color: inherit; font-size: 1.05rem; font-weight: 700; opacity: .8;}
.zone-post .post-eval-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem;}
.zone-post .post-eval-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.zone-post .eval-card-head {display: grid; grid-template-columns: auto 1fr; gap: .8rem 1rem; align-items: center; padding: 1.5rem 1.6rem; background: var(--zone-light);}
.zone-post .eval-card-icon {grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 3.8rem; height: 3.8rem; border-radius: 50%; background: #fff; font-size: 2rem;}
.zone-post .eval-card-head h4 {margin: 0; color: var(--tp); font-size: 1.45rem; font-weight: 900; line-height: 1.4;}
.zone-post .eval-card-head span {color: var(--zone-color); font-size: 1.15rem; font-weight: 900;}
.zone-post .eval-card-body {padding: 1.5rem 1.6rem;}
.zone-post .eval-card-body strong {display: block; margin-bottom: .8rem; color: var(--zone-color); font-size: 1.25rem; font-weight: 900; line-height: 1.5;}
.zone-post .post-notice {margin: 1.2rem 0 0; padding: 1.3rem 1.6rem; border-radius: var(--Radius_S); background: #F5F7FA; color: var(--ts); font-size: 1.25rem; line-height: 1.7;}
.zone-post .post-law-box {padding: 1.8rem 2rem; border: 1px solid var(--zone-border); border-left: .4rem solid var(--zone-color); border-radius: var(--Radius_S); background: var(--zone-light);}
.zone-post .post-law-box a {color: var(--zone-color); font-weight: 800; text-decoration: underline; text-underline-offset: 2px;}

@media (max-width: 960px) {
  .zone-post .post-kpi,
  .zone-post .post-eval-grid {grid-template-columns: repeat(2, 1fr);}
  .zone-post .post-check-grid {grid-template-columns: 1fr;}
}
@media (max-width: 640px) {
  .zone-post .post-hero {padding: 2.4rem;}
  .zone-post .post-kpi,
  .zone-post .post-eval-grid {grid-template-columns: 1fr;}
  .zone-post .post-step-flow,
  .zone-post .post-sanction-flow {flex-direction: column; overflow: visible;}
  .zone-post .post-step-flow i,
  .zone-post .post-sanction-flow i {justify-content: center; transform: rotate(90deg);}
}

/* ====================================================================
   기획단 소개 3개 화면 (.ab-intro / .ab-org / .ab-location)
   ==================================================================== */
.ab-intro .info-box,
.ab-org .info-box,
.ab-location .info-box {background: #f7fafd;}
.ab-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--Primary); color: var(--tp); font-size: 2.06rem; font-weight: 800;}
.ab-eyebrow {display: block; margin-bottom: .8rem; color: inherit; font-size: 1.46rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .72;}

.ab-hero-card {display: flex; align-items: center; justify-content: space-between; gap: 3.6rem; padding: 4rem 4.8rem; border-radius: var(--Radius_S); background: linear-gradient(135deg, #003780 0%, #0082CA 100%); color: #fff;}
.ab-hero-card h3 {margin: 0 0 1.4rem; color: #fff; font-size: 3.4rem; font-weight: 800; line-height: 1.35;}
.ab-hero-card p {margin: 0; color: rgba(255, 255, 255, .92); font-size: 1.76rem; line-height: 1.9;}
.ab-mi-orbit {display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.2rem; flex: 0 0 22rem; text-align: center;}
.ab-mi-orbit__label {display: block; color: #fff; font-size: 1.52rem; font-weight: 800; line-height: 1.4;}
.ab-mi-orbit__dots {display: flex; flex-wrap: nowrap; justify-content: center; gap: 1rem; width: 100%;}
.ab-mi-dot {display: block; width: 4rem; height: 4rem; border-radius: 50%; box-shadow: 0 .4rem 1.2rem rgba(0, 0, 0, .22);}
.ab-mi-dot--blue,
.ab-swatch__chip--blue {background: #28AAE1;}
.ab-mi-dot--green,
.ab-swatch__chip--green {background: #8CC841;}
.ab-mi-dot--yellow,
.ab-swatch__chip--yellow {background: #FAAF41;}
.ab-mi-dot--gray,
.ab-swatch__chip--gray {background: #5A5A5A;}

.ab-value-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem;}
.ab-value-card {padding: 2.8rem 2rem; border: 1px solid var(--bdl); border-top: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff; text-align: center;}
.ab-value-card--blue {border-top-color: #28AAE1;}
.ab-value-card--green {border-top-color: #8CC841;}
.ab-value-card--yellow {border-top-color: #FAAF41;}
.ab-value-card__icon {display: block; margin-bottom: 1.2rem; font-size: 4.13rem; line-height: 1;}
.ab-value-card h3 {margin: 0 0 .8rem; color: var(--tp); font-size: 2.06rem; font-weight: 800;}
.ab-value-card p {margin: 0; color: var(--ts); font-size: 1.64rem; line-height: 1.75;}

.ab-work-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem;}
.ab-work-card {padding: 2.2rem 2.6rem; border: 1px solid var(--bdl); border-top: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff;}
.ab-work-card--policy {border-top-color: #0082CA;}
.ab-work-card--operation {border-top-color: #0050A0;}
.ab-work-card--support {grid-column: 1 / -1; border-top-color: #B45309;}
.ab-work-card h4 {margin: 0 0 1.4rem; color: var(--tp); font-size: 1.88rem; font-weight: 800;}
.ab-work-card--policy h4 {color: #0082CA;}
.ab-work-card--operation h4 {color: #0050A0;}
.ab-work-card--support h4 {color: #B45309;}
.ab-work-card ul {list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem;}
.ab-work-card--support ul {grid-template-columns: repeat(2, 1fr); column-gap: 2rem;}
.ab-work-card li {position: relative; padding-left: 1.5rem; color: var(--tsec); font-size: 1.64rem; line-height: 1.7;}
.ab-work-card li::before {content: "•"; position: absolute; left: 0; color: var(--Primary); font-weight: 800;}

.ab-mi-card {display: grid; grid-template-columns: 24rem 1fr; gap: 3.2rem; padding: 2.8rem 3.2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ab-mi-card__swatches {display: grid; gap: 1.2rem;}
.ab-swatch {display: grid; grid-template-columns: 4.4rem 1fr; column-gap: 1.2rem; align-items: center;}
.ab-swatch__chip {grid-row: span 2; width: 4.4rem; height: 4.4rem; border-radius: 1rem;}
.ab-swatch strong {color: var(--tp); font-size: 1.52rem;}
.ab-swatch span:not(.ab-swatch__chip) {color: var(--tl); font-size: 1.4rem;}
.ab-mi-card__text {padding-left: 3.2rem; border-left: 1px solid var(--bdl);}
.ab-mi-card__text p {margin: 0 0 1.6rem; color: var(--tsec); font-size: 1.7rem; line-height: 1.95;}
.ab-mi-card__text strong {color: var(--tp); font-weight: 800;}
.ab-mi-card__copyright {padding: 1.4rem 1.8rem; border-left: .3rem solid var(--Primary); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #f7fafd; color: var(--ts); font-size: 1.52rem;}

.ab-contact-bar {display: flex; align-items: center; gap: 2.4rem; flex-wrap: wrap; padding: 1.6rem 2.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; color: var(--tsec); font-size: 1.64rem; line-height: 1.7;}
.ab-contact-bar div:last-child {margin-left: auto;}
.ab-contact-bar strong {margin: 0 .5rem; color: var(--tp); font-weight: 800;}
.ab-contact-bar b {color: var(--Primary); font-size: 1.82rem;}

.ab-org-tree {position: relative; padding: 3.6rem 3rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; text-align: center;}
.ab-org-tree__top {display: flex; justify-content: center;}
.ab-org-tree__branches {position: relative; display: grid; grid-template-columns: repeat(4, minmax(13rem, 1fr)); gap: 1.8rem; margin-top: 5rem;}
.ab-org-tree__branches::before {content: ""; position: absolute; left: 12.5%; right: 12.5%; top: -2.5rem; height: .2rem; background: #cbd5e1;}
.ab-org-tree__top::after {content: ""; position: absolute; left: 50%; top: 11.8rem; width: .2rem; height: 2.5rem; transform: translateX(-50%); background: #cbd5e1;}
.ab-org-branch {position: relative; display: flex; justify-content: center;}
.ab-org-branch::before {content: ""; position: absolute; left: 50%; top: -2.5rem; width: .2rem; height: 2.5rem; transform: translateX(-50%); background: #cbd5e1;}
.ab-org-box {display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-height: 8.6rem; width: 100%; max-width: 18rem; padding: 1.4rem 1.6rem; border: 1px solid var(--bdl); border-top: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff; color: var(--tp);}
.ab-org-box strong {font-size: 1.76rem; font-weight: 800;}
.ab-org-box span {margin-top: .5rem; color: var(--ts); font-size: 1.4rem; line-height: 1.5;}
.ab-org-box--head {max-width: 22rem; min-height: 9.2rem; border-color: var(--Primary); background: var(--Primary); color: #fff;}
.ab-org-box--head span {color: rgba(255, 255, 255, .78);}
.ab-org-box--office {border-top-color: #64748b; background: #f8fafc;}
.ab-org-box--policy {border-top-color: #0082CA;}
.ab-org-box--operation {border-top-color: #0050A0;}
.ab-org-box--support {border-top-color: #B45309;}
.ab-org-box--policy span {color: #0082CA;}
.ab-org-box--operation span {color: #0050A0;}
.ab-org-box--support span {color: #B45309;}

.ab-dept-detail {overflow: hidden; margin-bottom: 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ab-dept-detail:last-child {margin-bottom: 0;}
.ab-dept-detail__head {display: flex; align-items: center; gap: .8rem; padding: 1.3rem 2rem; color: #fff;}
.ab-dept-detail--policy .ab-dept-detail__head {background: #0082CA;}
.ab-dept-detail--operation .ab-dept-detail__head {background: #0050A0;}
.ab-dept-detail--support .ab-dept-detail__head {background: #B45309;}
.ab-dept-detail__head h4 {margin: 0; color: #fff; font-size: 1.82rem; font-weight: 800;}
.ab-dept-detail__body {overflow-x: auto;}
.ab-dept-detail table {width: 100%; min-width: 58rem; border-collapse: collapse;}
.ab-dept-detail th,
.ab-dept-detail td {padding: 1rem 1.8rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.64rem; line-height: 1.7; vertical-align: top;}
.ab-dept-detail tr:last-child th,
.ab-dept-detail tr:last-child td {border-bottom: none;}
.ab-dept-detail th {width: 14rem; background: #f5f7fa; color: var(--ts); font-weight: 800; text-align: left; white-space: nowrap;}
.ab-dept-detail td strong {color: var(--Primary); font-weight: 800;}

.ab-address-card {display: flex; align-items: center; justify-content: space-between; gap: 2.4rem; padding: 2.4rem 2.8rem; border-radius: var(--Radius_S); background: linear-gradient(135deg, var(--Primary), #0b5f91); color: #fff;}
.ab-address-card h3 {margin: 0 0 .6rem; color: #fff; font-size: 2.19rem; font-weight: 800;}
.ab-address-card p {margin: 0; color: rgba(255, 255, 255, .9); font-size: 1.64rem;}
.ab-address-card__phone {flex-shrink: 0; text-align: right;}
.ab-address-card__phone strong {display: block; color: #fff; font-size: 2.67rem; font-weight: 800; line-height: 1.2;}
.ab-address-card__phone span:not(.ab-eyebrow) {color: rgba(255, 255, 255, .76); font-size: 1.4rem;}

.ab-map-card {position: relative; overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #e8edf5;}
.ab-map-canvas {position: relative; z-index: 0; width: 100%; min-height: 38rem; background: #e8edf5;}
.ab-map-placeholder {display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 38rem; padding: 4rem 2rem; background: linear-gradient(160deg, #dce8f5 0%, #c5d8ef 50%, #d0e2f0 100%); text-align: center;}
.ab-map-placeholder strong {margin-bottom: .6rem; color: #2a4a7f; font-size: 2.06rem; font-weight: 800;}
.ab-map-placeholder span:not(.ab-map-pin) {color: #4a6fa5; font-size: 1.64rem;}
.ab-map-placeholder em {margin-top: .4rem; color: #6a8fb5; font-size: 1.46rem; font-style: normal;}
.ab-map-pin {position: relative; display: block; width: 4.8rem; height: 4.8rem; margin-bottom: 1.2rem; border-radius: 50% 50% 50% 0; background: var(--Primary); box-shadow: 0 .4rem 1.6rem rgba(0, 0, 0, .2); transform: rotate(-45deg);}
.ab-map-pin::after {content: ""; position: absolute; left: 50%; top: 50%; width: 2rem; height: 2rem; border-radius: 50%; background: #fff; transform: translate(-50%, -50%);}
.ab-map-links {position: absolute; z-index: 1; right: 1.6rem; bottom: 1.6rem; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .8rem;}
.ab-map-link {display: inline-flex; align-items: center; justify-content: center; min-height: 3.8rem; padding: 0 1.6rem; border-radius: .6rem; font-size: 1.52rem; font-weight: 800; text-decoration: none;}
.ab-location .ab-map-link--kakao {background: #ffe000; color: #3c1e1e;}
.ab-location .ab-map-link--naver {background: #03c75a; color: #fff;}

.ab-transport-section {overflow: hidden; margin-bottom: 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.ab-transport-section:last-child {margin-bottom: 0;}
.ab-transport-head {display: flex; align-items: center; gap: 1rem; padding: 1.3rem 2rem; border-bottom: 1px solid var(--bdl); background: #f5f7fa;}
.ab-transport-head h4 {margin: 0; color: var(--tp); font-size: 1.76rem; font-weight: 800;}
.ab-transport-head span {font-size: 2.43rem; line-height: 1;}
.ab-transport-body {padding: 1.2rem 2rem;}
.ab-transport-row {display: flex; align-items: flex-start; gap: 1.2rem; padding: 1rem 0; border-bottom: 1px solid #f0f4f8;}
.ab-transport-row:last-child {border-bottom: none;}
.ab-transport-label {flex: 0 0 10rem; padding: .4rem 1rem; border-radius: .4rem; background: #f5f7fa; color: var(--ts); font-size: 1.46rem; font-weight: 800; line-height: 1.6; text-align: center;}
.ab-transport-row p {margin: 0; color: var(--tsec); font-size: 1.64rem; line-height: 1.8;}
.ab-transport-row strong {color: var(--tp); font-weight: 800;}
.ab-transport-row em {color: var(--tl); font-size: 1.46rem; font-style: normal;}

@media (max-width: 900px) {
  .ab-hero-card,
  .ab-address-card {align-items: flex-start; flex-direction: column;}
  .ab-mi-orbit {justify-content: flex-start; flex-basis: auto;}
  .ab-value-grid,
  .ab-work-grid {grid-template-columns: 1fr;}
  .ab-work-card--support {grid-column: auto;}
  .ab-work-card--support ul {grid-template-columns: 1fr;}
  .ab-mi-card {grid-template-columns: 1fr;}
  .ab-mi-card__text {padding-left: 0; padding-top: 2.4rem; border-left: 0; border-top: 1px solid var(--bdl);}
  .ab-org-tree__branches {grid-template-columns: repeat(2, minmax(13rem, 1fr));}
  .ab-org-tree__branches::before,
  .ab-org-tree__top::after,
  .ab-org-branch::before {display: none;}
}
@media (max-width: 640px) {
  .ab-hero-card {padding: 3rem 2.4rem;}
  .ab-value-card,
  .ab-work-card,
  .ab-mi-card {padding: 2.2rem;}
  .ab-contact-bar div:last-child {margin-left: 0;}
  .ab-org-tree {padding: 2.4rem 1.6rem;}
  .ab-org-tree__branches {grid-template-columns: 1fr; margin-top: 2rem;}
  .ab-org-box {max-width: none;}
  .ab-address-card__phone {text-align: left;}
  .ab-map-links {position: static; justify-content: stretch; padding: 1.2rem; background: #fff;}
  .ab-map-link {flex: 1;}
  .ab-transport-row {flex-direction: column; gap: .8rem;}
  .ab-transport-label {flex-basis: auto; width: 100%; text-align: left;}
}

/* ====================================================================
   규제샌드박스 4개 화면 공통 (.sb-sandbox)
   - 콘텐츠 근거: docs/reference/Proto_Official/.../home/sandbox/*.jsp
   - 디자인 기준: index.jsp / ti 세부 페이지 / common·component·sub.css 토큰
   - 4개 화면이 컴포넌트를 공유하므로 단일 스코프로 정의한다.
   ==================================================================== */

/* 섹션 소제목 (프로토타입의 좌측 보더 제목) */
.sb-sandbox .sb-subtitle {margin: 0 0 1.2rem; padding-left: 1rem; border-left: .4rem solid var(--Primary); font-size: 1.94rem; font-weight: 700; color: var(--tp);}

/* 본문 설명 박스 */
.sb-sandbox .sb-textbox {padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; font-size: 1.64rem; line-height: 1.9; color: var(--tsec);}
.sb-sandbox .sb-textbox p + p {margin-top: .8rem;}
.sb-sandbox .sb-textbox a, .sb-sandbox .sb-table a {color: var(--Primary); font-weight: 600;}

/* 강조(주의) 색 — 서비스에 danger 토큰이 없어 ti 선례대로 리터럴 사용 */
.sb-sandbox .sb-em-danger {color: #b91c1c; font-weight: 700;}

/* 개요: 3종 진입 카드 */
.sb-sandbox .sb-entry-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem;}
.sb-sandbox .sb-entry-card {display: flex; flex-direction: column; padding: 2rem; border: 1px solid var(--bdl); border-top: .3rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff; color: inherit; text-decoration: none; transition: box-shadow .15s, transform .15s;}
.sb-sandbox .sb-entry-card:hover {box-shadow: var(--shadow); transform: translateY(-2px);}
.sb-sandbox .sb-entry-card.is-confirm {border-top-color: var(--Primary);}
.sb-sandbox .sb-entry-card.is-demo {border-top-color: var(--Secondary);}
.sb-sandbox .sb-entry-card.is-permit {border-top-color: var(--Success);}
.sb-sandbox .sb-entry-card .ec-icon {margin-bottom: 1rem; font-size: 3.64rem;}
.sb-sandbox .sb-entry-card .ec-title {margin-bottom: .8rem; font-size: 2.06rem; font-weight: 700; color: var(--tp);}
.sb-sandbox .sb-entry-card .ec-desc {flex: 1; margin-bottom: 1.2rem; font-size: 1.64rem; line-height: 1.7; color: var(--tsec);}
.sb-sandbox .sb-entry-card .ec-meta {margin-bottom: 1.2rem; font-size: 1.46rem; color: var(--tl);}
.sb-sandbox .sb-entry-card .ec-link {align-self: flex-start; color: var(--Primary); font-size: 1.58rem; font-weight: 600;}
.sb-sandbox .sb-entry-card:hover .ec-link {text-decoration: underline;}

/* 공통 표 (개요 비교표 / 신속확인 처리절차 표) */
.sb-sandbox .sb-table-wrap {overflow-x: auto;}
.sb-sandbox .sb-table {min-width: 60rem; overflow: hidden; border: 1px solid var(--bd); border-radius: var(--Radius_S); background: #fff;}
.sb-sandbox .sb-table table {width: 100%; border-collapse: collapse;}
.sb-sandbox .sb-table th, .sb-sandbox .sb-table td {padding: 1.1rem 1.6rem; border-right: 1px solid var(--bdl); border-bottom: 1px solid var(--bdl); font-size: 1.64rem; line-height: 1.6; text-align: center; vertical-align: top;}
.sb-sandbox .sb-table th:last-child, .sb-sandbox .sb-table td:last-child {border-right: none;}
.sb-sandbox .sb-table tbody tr:last-child th, .sb-sandbox .sb-table tbody tr:last-child td {border-bottom: none;}
.sb-sandbox .sb-table thead th {background: #f5f7fa; border-bottom: 1px solid var(--bd); color: var(--ts); font-weight: 700;}
.sb-sandbox .sb-table tbody th {background: #f5f7fa; color: var(--ts); font-weight: 700; white-space: nowrap;}
.sb-sandbox .sb-table td {color: var(--tsec);}
.sb-sandbox .sb-table .tl {text-align: left;}
.sb-sandbox .sb-table--primary thead th {background: var(--Primary); border-right-color: rgba(255, 255, 255, .2); border-bottom: none; color: #fff;}

/* 개요: 공통 신청 절차 5단계 */
.sb-sandbox .sb-process {display: flex; flex-wrap: wrap; gap: 1rem;}
.sb-sandbox .sb-pf-step {flex: 1; min-width: 13rem; display: flex; flex-direction: column; align-items: center; padding: 1.8rem 1.2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; text-align: center;}
.sb-sandbox .sb-pf-num {display: flex; align-items: center; justify-content: center; width: 3.4rem; height: 3.4rem; margin-bottom: 1rem; border-radius: 50%; background: var(--Primary); color: #fff; font-size: 1.82rem; font-weight: 800;}
.sb-sandbox .sb-pf-name {margin-bottom: .4rem; font-size: 1.76rem; font-weight: 700; color: var(--tp);}
.sb-sandbox .sb-pf-desc {font-size: 1.46rem; color: var(--ts);}

/* 신속확인: 2단 카드 */
.sb-sandbox .sb-card-grid2 {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem;}
.sb-sandbox .sb-side-card {padding: 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff;}
.sb-sandbox .sb-side-card.is-sec {border-left-color: var(--Secondary);}
.sb-sandbox .sb-side-card .sc-title {margin-bottom: 1rem; font-size: 1.94rem; font-weight: 700; color: var(--tp);}
.sb-sandbox .sb-side-card .sc-desc {font-size: 1.64rem; line-height: 1.9; color: var(--tsec);}

/* 회신 유형 배지 (green/red/기본) — 서비스 전역에 없어 신규 정의 */
.sb-sandbox .badge-type {display: inline-block; padding: .3rem 1rem; border-radius: .4rem; background: #eef1f5; color: var(--ts); font-size: 1.46rem; font-weight: 700;}
.sb-sandbox .badge-type.green {background: #e6f4e6; color: #2e7d32;}
.sb-sandbox .badge-type.red {background: #fde8e8; color: #c62828;}

/* 번호 매김 제출서류 리스트 */
.sb-sandbox .sb-doc-list {display: flex; flex-direction: column; gap: 1rem; padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.sb-sandbox .sb-doc-item {display: flex; align-items: flex-start; gap: 1rem; font-size: 1.64rem; line-height: 1.6; color: var(--tsec);}
.sb-sandbox .sb-doc-num {flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; margin-top: .1rem; border-radius: 50%; background: var(--Primary); color: #fff; font-size: 1.34rem; font-weight: 700;}
.sb-sandbox .sb-doc-sub {color: var(--tl);}

/* 라벨 헤더가 있는 제출서류 박스 (실증특례/임시허가) */
.sb-sandbox .sb-doc-box {overflow: hidden; border: 1px solid var(--bd); border-radius: var(--Radius_S); background: #fff;}
.sb-sandbox .sb-doc-box__head {display: flex; align-items: center; gap: .8rem; padding: 1rem 1.6rem; border-bottom: 1px solid var(--bdl); background: #f5f7fa;}
.sb-sandbox .sb-doc-box__label {display: inline-block; padding: .5rem 1.2rem; border-radius: .4rem; background: var(--Primary); color: #fff; font-size: 1.52rem; font-weight: 700;}
.sb-sandbox .sb-doc-box__body {padding: 1.4rem 1.8rem;}

/* 지정효과 강조 박스 */
.sb-sandbox .sb-effect-note {margin-top: 1rem; padding: 1rem 1.4rem; border-left: .3rem solid var(--Primary); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #f0f7ff; font-size: 1.64rem; line-height: 1.6; color: var(--tp);}
.sb-sandbox .sb-effect-note strong {font-weight: 700;}

/* 임시허가 상단 2단 그리드 */
.sb-sandbox .sb-grid2 {display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;}

/* 처리절차 ㄹ자 흐름 (실증특례/임시허가 공유) */
.sb-sandbox .sb-flow__row {display: flex; align-items: stretch; gap: 0;}
.sb-sandbox .sb-flow__row--rev {flex-direction: row-reverse;}
.sb-sandbox .sb-flow__step {flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 1.4rem 1rem; border-radius: .6rem; background: var(--Primary); color: #fff; text-align: center;}
.sb-sandbox .sb-flow__step--alt {background: #1a4a9e;}
.sb-sandbox .sb-flow__step .fs-name {margin-bottom: .4rem; font-size: 1.52rem; font-weight: 700; line-height: 1.4;}
.sb-sandbox .sb-flow__step .fs-org {font-size: 1.4rem; opacity: .85;}
.sb-sandbox .sb-flow__arrow {display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 3.2rem; color: var(--Primary); font-size: 2.43rem; font-weight: 700;}
.sb-sandbox .sb-flow__down {padding: .4rem calc(16.66% - 1.6rem) .4rem 0; text-align: right; color: var(--Primary); font-size: 2.43rem; font-weight: 700; line-height: 1;}

/* 임시허가 신청서 작성 예시 미리보기 (토글) */
.sb-sandbox .sb-preview {overflow: hidden; border: .2rem solid var(--Primary); border-radius: var(--Radius_S);}
.sb-sandbox .sb-preview[hidden] {display: none;}
.sb-sandbox .sb-preview__head {display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.6rem; background: var(--Primary); color: #fff; font-size: 1.64rem; font-weight: 700;}
.sb-sandbox .sb-preview__close {border: 0; background: none; color: #fff; font-size: 2.19rem; line-height: 1; cursor: pointer;}
.sb-sandbox .sb-preview__body {padding: 2.4rem; background: #fff; color: var(--tp); font-size: 1.46rem; line-height: 1.8;}
.sb-sandbox .sb-preview__title {margin: 1.6rem 0 .8rem; font-size: 1.94rem; font-weight: 700; text-align: center;}
.sb-sandbox .sb-preview__lead {font-size: 1.34rem; color: var(--tl); text-align: center;}
.sb-sandbox .sb-form-table {width: 100%; margin-top: 1.2rem; border-collapse: collapse; font-size: 1.46rem;}
.sb-sandbox .sb-form-table th, .sb-sandbox .sb-form-table td {padding: .8rem 1rem; border: 1px solid #ccc; vertical-align: top;}
.sb-sandbox .sb-form-table th {background: #f5f5f5; color: var(--ts); font-weight: 700; text-align: left;}
.sb-sandbox .sb-form-table td {color: var(--tl);}
.sb-sandbox .sb-form-check {font-size: 1.34rem; line-height: 1.9; color: var(--tsec);}
.sb-sandbox .sb-form-sign {margin-top: 1.6rem; text-align: right; color: var(--tsec);}
.sb-sandbox .sb-form-signline {margin-top: .8rem; text-align: center; color: var(--tsec);}

/* 다운로드/액션 버튼 (서비스 .button 데스크톱 크기 보강) */
.sb-sandbox .sb-actions {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;}
.sb-sandbox .button {min-height: 4.4rem; padding: 0 2rem; border: 1px solid transparent; border-radius: var(--Radius_S); font-size: 1.7rem; font-weight: 600;}
.sb-sandbox .button--secondary {border-color: #dee5ee;}
.sb-sandbox .button.is-disabled, .sb-sandbox .button:disabled {cursor: not-allowed;}

@media (max-width: 860px) {
  .sb-sandbox .sb-entry-grid, .sb-sandbox .sb-card-grid2, .sb-sandbox .sb-grid2 {grid-template-columns: 1fr;}
}
@media (max-width: 768px) {
  /* 모바일에서는 두 행 모두 DOM(논리) 순서대로 세로 정렬하고, 방향이 어긋날 수 있는
     가로 화살표는 숨겨 순서만으로 흐름을 전달한다. */
  .sb-sandbox .sb-flow__row, .sb-sandbox .sb-flow__row--rev {flex-direction: column; gap: .8rem;}
  .sb-sandbox .sb-flow__arrow, .sb-sandbox .sb-flow__down {display: none;}
}

/* ====================================================================
   정보마당 4개 화면 (.im-board)
   - 콘텐츠 근거: Proto_Official home/notice, home/info FAQ 정적 화면
   - 검색과 정렬은 서버 계약이 없어 정적 UI로만 제공한다.
   ==================================================================== */
.im-board {letter-spacing: 0;}
.im-board .info-box {background: #f7fafd;}

.im-search-panel {padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; box-shadow: 0 .8rem 2rem rgba(0, 36, 80, .06);}
.im-search-row {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.2rem;}
.im-search-row label {color: var(--tp); font-size: 1.3rem; font-weight: 800;}
.im-search-row input,
.im-search-row select {height: 4rem; min-width: 13rem; padding: 0 1.2rem; border: 1px solid var(--bd); border-radius: .6rem; background: #fff; color: var(--tsec); font-size: 1.3rem;}
.im-search-row input[type="text"] {min-width: 22rem; flex: 1 1 22rem;}
.im-date-sep {color: var(--tl); font-size: 1.4rem;}
.im-search-btn {display: inline-flex; align-items: center; justify-content: center; min-height: 4rem; padding: 0 1.6rem; border: 1px solid var(--Primary); border-radius: .6rem; font-size: 1.3rem; font-weight: 800; cursor: pointer;}
.im-search-btn--primary {background: var(--Primary); color: #fff;}
.im-search-btn--outline {background: #fff; color: var(--Primary);}

.im-board-util {display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; margin-bottom: 1.4rem;}
.im-board-total {margin: 0; color: var(--ts); font-size: 1.4rem;}
.im-board-total strong {color: var(--Primary); font-size: 1.8rem; font-weight: 900;}
.im-sort-group {display: inline-flex; overflow: hidden; border: 1px solid var(--bd); border-radius: .8rem; background: #fff;}
.im-sort-btn {min-height: 3.8rem; padding: 0 1.6rem; border: 0; border-right: 1px solid var(--bdl); background: transparent; color: var(--ts); font-size: 1.25rem; font-weight: 800; cursor: pointer;}
.im-sort-btn:last-child {border-right: 0;}
.im-sort-btn.is-active {background: var(--Primary); color: #fff;}

.im-table-wrap {overflow-x: auto; border-top: .2rem solid var(--Primary); border-radius: 0 0 var(--Radius_S) var(--Radius_S); background: #fff;}
.im-table {width: 100%; min-width: 78rem; border-collapse: collapse;}
.im-table caption {position: absolute; overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0 0 0 0);}
.im-table th {padding: 1.2rem 1rem; border-bottom: 1px solid var(--bd); background: #f5f7fa; color: var(--ts); font-size: 1.3rem; font-weight: 800; text-align: center; white-space: nowrap;}
.im-table td {padding: 1.2rem 1rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.3rem; text-align: center; vertical-align: middle;}
.im-table tr:last-child td {border-bottom: none;}
.im-row--pinned td {background: #fffbf0;}
.im-title-cell {text-align: left;}
.im-no-data {padding: 4rem 1rem; color: var(--tl); font-size: 1.4rem;}
.im-title-text {color: var(--tp); font-weight: 700; line-height: 1.55;}
.im-title-link {text-decoration: none;}
.im-title-link:hover, .im-title-link:focus {color: var(--Primary); text-decoration: underline; text-underline-offset: .2rem;}

.im-badge {display: inline-flex; align-items: center; justify-content: center; min-height: 2.4rem; margin-right: .5rem; padding: .2rem .8rem; border-radius: .5rem; background: #eef1f5; color: var(--ts); font-size: 1.15rem; font-weight: 800; line-height: 1.2; vertical-align: middle; white-space: nowrap;}
.im-badge--notice {background: #fff0d8; color: #a15c00;}
.im-badge--new {min-width: 2.2rem; padding: .2rem .6rem; border-radius: 999px; background: #e53935; color: #fff; font-size: 1rem;}
.im-badge--type {background: #e8f0fa; color: var(--Primary);}
.im-badge--ntc-normal {color: #495057;}
.im-badge--ntc-urgent {background: #fff0e8; color: #B71C1C;}
.im-badge--ntc-system {background: #e8f0fa; color: #0D47A1;}
.im-badge--red {background: #fde8e8; color: #c62828;}
.im-badge--green {background: #e6f4e6; color: #2e7d32;}
.im-badge--state {background: #eef1f5; color: var(--ts);}
.im-badge--state.im-badge--green {background: #e6f4e6; color: #2e7d32;}
.im-badge--urgent {background: #fff0e8; color: #b45309;}
.im-badge--report {background: #e8f0fa; color: var(--Primary);}
.im-badge--press {background: #e6f4ef; color: #1c7a5a;}

.im-attach {display: inline-flex; align-items: center; justify-content: center; min-width: 4rem; min-height: 2.2rem; padding: .2rem .6rem; border-radius: 999px; font-size: 1.1rem; font-weight: 800; line-height: 1.2;}
.im-attach--yes {background: #e8f0fa; color: var(--Primary);}
.im-attach--yes::before {content: "📎 "; font-weight: 900;}
.im-attach--none {background: #f4f6f8; color: var(--tl);}

.im-pagination {display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 2.4rem;}
.im-page {display: inline-flex; align-items: center; justify-content: center; min-width: 3.4rem; height: 3.4rem; border: 1px solid var(--bd); border-radius: .6rem; background: #fff; color: var(--ts); font: inherit; font-size: 1.25rem; font-weight: 800; text-decoration: none; cursor: pointer;}
.im-page.is-active {border-color: var(--Primary); background: var(--Primary); color: #fff;}
.im-page--disabled {opacity: .45; cursor: default;}

.im-press-list {display: flex; flex-direction: column; gap: 1.2rem;}
.im-press-card {display: flex; align-items: flex-start; gap: 2rem; padding: 1.8rem 2rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; transition: box-shadow .15s, transform .15s;}
.im-press-card:hover {box-shadow: var(--shadow); transform: translateY(-2px);}
.im-press-date {flex: 0 0 9rem; text-align: center;}
.im-press-date strong {display: block; margin-bottom: .5rem; padding: .4rem .6rem; border-radius: .5rem; background: #546e7a; color: #fff; font-size: 1.1rem; font-weight: 900;}
.im-press-date--primary strong {background: var(--Primary);}
.im-press-date span {color: var(--tl); font-size: 1rem; line-height: 1.4;}
.im-press-body {flex: 1; min-width: 0;}
.im-press-body h3 {margin: 0 0 .7rem; color: var(--tp); font-size: 1.5rem; font-weight: 900; line-height: 1.45;}
.im-press-body p {margin: 0; color: var(--tsec); font-size: 1.3rem; line-height: 1.7;}
.im-press-meta {display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; margin-top: 1rem; color: var(--tl); font-size: 1.15rem;}

/* 언론보도 보도자료/언론기사 탭 (gasys small-tab 규격을 공개 사이트 --Primary 활성색으로 구현) */
.im-tab-nav {display: flex; gap: .4rem; border-bottom: .2rem solid var(--Primary);}
.im-tab {display: inline-flex; align-items: center; justify-content: center; min-height: 4.4rem; padding: 0 2.6rem; border: 1px solid var(--bd); border-bottom: none; border-radius: var(--Radius_S) var(--Radius_S) 0 0; background: #f5f7fa; color: var(--ts); font-size: 1.4rem; font-weight: 800; text-decoration: none;}
.im-tab:hover, .im-tab:focus {color: var(--Primary);}
.im-tab.is-active {border-color: var(--Primary); background: var(--Primary); color: #fff;}

.im-faq-tabs {display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.6rem;}
.im-faq-tab {min-height: 3.8rem; padding: 0 1.4rem; border: 1px solid var(--bd); border-radius: .8rem; background: #fff; color: var(--ts); font-size: 1.25rem; font-weight: 800; cursor: pointer;}
.im-faq-tab span {margin-left: .4rem; color: var(--Primary); font-weight: 900;}
.im-faq-tab.is-active {border-color: var(--Primary); background: var(--Primary); color: #fff;}
.im-faq-tab.is-active span {color: #94d8f4;}
.im-faq-list {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.im-faq-item + .im-faq-item {border-top: 1px solid var(--bdl);}
.im-faq-item[hidden] {display: none;}
.im-faq-question {margin: 0;}
.im-faq-question button {display: flex; align-items: center; width: 100%; gap: 1rem; padding: 1.4rem 1.8rem; border: 0; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer;}
.im-faq-item.is-open .im-faq-question button {background: #f0f7ff;}
.im-faq-qmark {display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.6rem; height: 2.6rem; border-radius: .5rem; background: var(--Primary); color: #fff; font-size: 1.2rem; font-weight: 900;}
.im-faq-title {flex: 1; min-width: 0; color: var(--tp); font-size: 1.4rem; font-weight: 900; line-height: 1.5;}
.im-faq-arrow {flex-shrink: 0; width: 1rem; height: 1rem; border-right: .2rem solid var(--tl); border-bottom: .2rem solid var(--tl); transform: rotate(45deg); transition: transform .15s;}
.im-faq-item.is-open .im-faq-arrow {transform: rotate(225deg);}
.im-faq-answer {padding: 1.6rem 1.8rem 1.6rem 5.4rem; border-top: 1px solid var(--bdl); background: #f8fbff;}
.im-faq-answer[hidden],
.im-empty[hidden] {display: none;}
.im-faq-answer p {margin: 0; color: var(--tsec); font-size: 1.35rem; line-height: 1.85;}
.im-faq-answer strong {color: var(--Primary); font-weight: 900;}
.im-faq-answer a {color: var(--Primary); font-weight: 900; text-decoration: underline; text-underline-offset: 2px;}
.im-empty {margin: 1.2rem 0 0; padding: 2.4rem; border: 1px dashed var(--bd); border-radius: var(--Radius_S); background: #fff; color: var(--ts); font-size: 1.35rem; font-weight: 800; text-align: center;}

@media (max-width: 860px) {
  .im-board-util {align-items: flex-start; flex-direction: column;}
  .im-sort-group {width: 100%;}
  .im-sort-btn {flex: 1;}
  .im-press-card {flex-direction: column; gap: 1.2rem;}
  .im-press-date {display: flex; flex-basis: auto; align-items: center; gap: .8rem; text-align: left;}
  .im-press-date strong {margin-bottom: 0;}
}
@media (max-width: 640px) {
  .im-search-panel {padding: 1.4rem;}
  .im-search-row {align-items: stretch; flex-direction: column;}
  .im-search-row label {width: 100%;}
  .im-search-row input,
  .im-search-row select,
  .im-search-row input[type="text"],
  .im-search-btn {width: 100%; min-width: 0;}
  .im-date-sep {text-align: center;}
  .im-faq-question button {align-items: flex-start; flex-wrap: wrap; padding: 1.4rem;}
  .im-faq-title {flex-basis: calc(100% - 3.6rem);}
  .im-faq-question .im-badge {margin-left: 3.6rem;}
  .im-faq-answer {padding: 1.4rem;}
}

/* 공지사항 상세 (.im-view) - Proto_Official home/notice/notice_view 콘텐츠를 메인 디자인으로 이식 */
.im-view {border: 1px solid var(--bdl); border-top: .3rem solid var(--Primary); background: #fff; overflow: hidden;}
.im-view > :last-child {border-bottom: 0;}
.im-view-head {padding: 2.6rem 2.4rem 2.2rem; border-bottom: 1px solid var(--bdl);}
.im-view-badges {display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.1rem;}
.im-view-badges:empty {display: none;}
.im-view-title {margin: 0; color: var(--tp); font-size: 2.2rem; font-weight: 800; line-height: 1.45; letter-spacing: -.044rem; word-break: break-word;}
.im-view-meta {display: flex; flex-wrap: wrap; gap: .8rem 2.4rem; margin: 1.5rem 0 0; padding: 0; list-style: none;}
.im-view-meta li {display: inline-flex; align-items: center; gap: .6rem; font-size: 1.3rem;}
.im-view-meta li span {color: var(--tl); font-weight: 700;}
.im-view-meta li strong {color: var(--ts); font-weight: 800;}
.im-view-body {padding: 3rem 2.4rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.45rem; line-height: 1.9; word-break: break-word;}
.im-view-body p {margin: 0 0 1rem;}
.im-view-body p:last-child {margin-bottom: 0;}
.im-view-body strong {color: var(--tp); font-weight: 800;}
.im-view-body a {color: var(--Primary); font-weight: 600; text-decoration: underline; text-underline-offset: .2rem;}
.im-view-body img {max-width: 100%; height: auto;}
.im-view-body table {border-collapse: collapse;}
.im-view-body table th, .im-view-body table td {padding: .8rem 1rem; border: 1px solid var(--bd);}
.im-view-files {padding: 1.8rem 2.4rem; border-bottom: 1px solid var(--bdl); background: #f8fbff;}
.im-view-files-title {margin: 0 0 1rem; color: var(--tp); font-size: 1.4rem; font-weight: 800;}
.im-view-files ul {display: flex; flex-direction: column; gap: .8rem; margin: 0; padding: 0; list-style: none;}
.im-view-file {display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem;}
.im-view-file-name {color: var(--tsec); font-size: 1.35rem; font-weight: 600;}
.im-view-file-size {color: var(--tl); font-size: 1.2rem;}
.im-view-file-down {display: inline-flex; align-items: center; min-height: 3.2rem; margin-left: auto; padding: 0 1.4rem; border: 1px solid var(--Primary); border-radius: .6rem; background: #fff; color: var(--Primary); font-size: 1.25rem; font-weight: 800; text-decoration: none;}
.im-view-file-down:hover, .im-view-file-down:focus {background: var(--Primary); color: #fff;}
.im-view-nav-row {display: flex; align-items: center; gap: 1.2rem; padding: 1.3rem 2.4rem; border-bottom: 1px solid var(--bdl); font-size: 1.35rem;}
.im-view-nav-label {flex-shrink: 0; width: 6rem; color: var(--tl); font-size: 1.25rem; font-weight: 800;}
.im-view-nav-link {flex: 1; min-width: 0; overflow: hidden; color: var(--tp); white-space: nowrap; text-overflow: ellipsis;}
.im-view-nav-link:hover, .im-view-nav-link:focus {color: var(--Primary); text-decoration: underline; text-underline-offset: .2rem;}
.im-view-nav-date {flex-shrink: 0; color: var(--tl); font-size: 1.2rem;}
.im-view-nav-empty {flex: 1; color: var(--tl);}
.im-view-btns {display: flex; justify-content: center; margin-top: 2.4rem;}
.im-view-list-btn {display: inline-flex; align-items: center; justify-content: center; min-width: 14rem; min-height: 4.4rem; padding: 0 2rem; border: 1px solid var(--Primary); border-radius: .6rem; background: var(--Primary); color: #fff; font-size: 1.4rem; font-weight: 800; text-decoration: none;}
.im-view-list-btn:hover, .im-view-list-btn:focus {filter: brightness(.94);}
@media (max-width: 640px) {
  .im-view-head, .im-view-body, .im-view-files {padding-right: 1.6rem; padding-left: 1.6rem;}
  .im-view-body {padding-top: 2.2rem; padding-bottom: 2.2rem;}
  .im-view-nav-row {flex-wrap: wrap; padding-right: 1.6rem; padding-left: 1.6rem;}
  .im-view-nav-date {width: 100%; padding-left: 7.2rem;}
  .im-view-file-down {margin-left: 0;}
}

/* ====================================================================
   우측 퀵메뉴 연계 화면 (.quick-dictionary, .quick-staff)
   - 콘텐츠 근거: Proto_Official home/info/encyclopedia.jsp, contact.jsp
   - 우측 퀵메뉴 진입용 hidden public page 이므로 GNB 확장 없이 본문만 제공한다.
   ==================================================================== */
.quick-dictionary {letter-spacing: 0;}
.quick-dictionary .info-box {padding: 1.6rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #f7fafd; font-size: 1.4rem; line-height: 1.7; color: var(--tsec);}

.quick-dictionary__search {padding: 2.8rem 2.4rem; border-radius: var(--Radius_S); background: var(--Primary); color: #fff; text-align: center;}
.quick-dictionary__search-title {display: inline-flex; align-items: center; gap: .8rem; margin: 0 0 1.4rem; font-size: 1.5rem; font-weight: 900;}
.quick-dictionary__search-title::before {content: ""; width: .8rem; height: .8rem; border-radius: 50%; background: #94d8f4;}
.quick-dictionary__search-row {display: flex; width: min(64rem, 100%); margin: 0 auto 1rem;}
.quick-dictionary__search-row input {flex: 1; min-width: 0; height: 4.8rem; padding: 0 1.8rem; border: 0; border-radius: var(--Radius_S) 0 0 var(--Radius_S); color: var(--Gray_100); font-size: 1.4rem;}
.quick-dictionary__search-row button {min-width: 10rem; border: 0; border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #1a3c6b; color: #fff; font-size: 1.4rem; font-weight: 900; cursor: pointer;}
.quick-dictionary__hint {margin: 0; color: rgba(255, 255, 255, .78); font-size: 1.2rem;}

.quick-dictionary__filter-title {margin: 0 0 1rem; color: var(--tp); font-size: 1.4rem; font-weight: 900;}
.quick-dictionary__filter-title::before {content: ""; display: inline-block; width: .6rem; height: .6rem; margin-right: .8rem; background: var(--Primary); vertical-align: .2rem;}
.quick-dictionary__category {display: flex; flex-wrap: wrap; gap: .6rem;}
.quick-dictionary__category button {min-height: 3.4rem; padding: 0 1.5rem; border: 1px solid var(--bd); border-radius: 999px; background: #fff; color: var(--ts); font-size: 1.3rem; font-weight: 800; cursor: pointer;}
.quick-dictionary__category button:hover,
.quick-dictionary__category button:focus,
.quick-dictionary__category button.is-active {border-color: var(--Primary); background: var(--Primary); color: #fff;}

.quick-dictionary__util {display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; margin-bottom: 1.6rem;}
.quick-dictionary__total {margin: 0; color: var(--ts); font-size: 1.4rem;}
.quick-dictionary__total strong {color: var(--Primary); font-size: 1.8rem; font-weight: 900;}
.quick-dictionary__total span {color: var(--tl); font-size: 1.2rem;}
.quick-dictionary__sort {display: inline-flex; overflow: hidden; border: 1px solid var(--bd); border-radius: .8rem; background: #fff;}
.quick-dictionary__sort button {min-height: 3.8rem; padding: 0 1.6rem; border: 0; border-right: 1px solid var(--bdl); background: transparent; color: var(--ts); font-size: 1.25rem; font-weight: 800; cursor: pointer;}
.quick-dictionary__sort button:last-child {border-right: 0;}
.quick-dictionary__sort button.is-active {background: var(--Primary); color: #fff;}

.quick-dictionary__keyword {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-bottom: 1.6rem;}
.quick-dictionary__keyword[hidden],
.quick-dictionary__mapping[hidden],
.quick-dictionary__empty[hidden],
.quick-dictionary__table-wrap[hidden],
.quick-dictionary .im-pagination[hidden],
.quick-staff__card[hidden] {display: none;}
.quick-dictionary__keyword-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.quick-dictionary__keyword-card h3 {margin: 0; padding: .9rem 1.4rem; background: var(--Primary); color: #fff; font-size: 1.3rem; font-weight: 900;}
.quick-dictionary__keyword-card.is-secondary h3 {background: var(--Secondary);}
.quick-dictionary__keyword-card div {display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; min-height: 4.4rem; padding: 1.2rem 1.4rem;}
.quick-dictionary__chip {display: inline-flex; align-items: center; min-height: 2.8rem; padding: .4rem 1.4rem; border-radius: 999px; background: var(--Primary); color: #fff; font-size: 1.25rem; font-weight: 900;}
.quick-dictionary__chip.is-secondary {background: #e8f0fa; color: var(--Primary);}
.quick-dictionary__muted {color: var(--tl); font-size: 1.3rem;}

.quick-dictionary__mapping {margin-bottom: 2rem;}
.quick-dictionary__mapping-head {display: flex; flex-wrap: wrap; align-items: baseline; gap: .8rem; margin-bottom: 1rem;}
.quick-dictionary__mapping-head h3 {margin: 0; color: var(--tp); font-size: 1.5rem; font-weight: 900;}
.quick-dictionary__mapping-head h3::before {content: ""; display: inline-block; width: .4rem; height: 1.6rem; margin-right: .8rem; border-radius: .2rem; background: #c62828; vertical-align: -.2rem;}
.quick-dictionary__mapping-head p {margin: 0; color: var(--tl); font-size: 1.2rem;}
.quick-dictionary__mapping-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem;}
.quick-dictionary__mapping-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.quick-dictionary__map-block {padding: 1.3rem 1.4rem;}
.quick-dictionary__map-block + .quick-dictionary__map-block {border-top: 1px solid var(--bdl);}
.quick-dictionary__map-block h4 {display: inline-flex; margin: 0 0 .8rem; padding: .3rem 1rem; border-radius: .4rem; color: #fff; font-size: 1.15rem; font-weight: 900;}
.quick-dictionary__map-block.is-regulation h4 {background: #c62828;}
.quick-dictionary__map-block.is-special h4 {background: #1a7f37;}
.quick-dictionary__map-block p {margin: 0; color: var(--tsec); font-size: 1.25rem; line-height: 1.75;}
.quick-dictionary__law {color: var(--tl) !important; font-size: 1.15rem !important;}
.quick-dictionary__mapping-link {margin-top: 1rem; border: 0; background: none; color: var(--Primary); font: inherit; font-size: 1.2rem; font-weight: 900; cursor: pointer; text-decoration: underline; text-underline-offset: .2rem;}

.quick-dictionary__table-wrap {overflow-x: auto; border-top: .2rem solid var(--Primary); border-radius: 0 0 var(--Radius_S) var(--Radius_S); background: #fff;}
.quick-dictionary__table {width: 100%; min-width: 92rem; border-collapse: collapse;}
.quick-dictionary__table caption {position: absolute; overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0 0 0 0);}
.quick-dictionary__table th {padding: 1.2rem 1rem; border-bottom: 1px solid var(--bd); background: #f5f7fa; color: var(--ts); font-size: 1.3rem; font-weight: 900; text-align: center; white-space: nowrap;}
.quick-dictionary__table td {padding: 1.2rem 1rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.3rem; text-align: center; vertical-align: middle;}
.quick-dictionary__table tr:last-child td {border-bottom: 0;}
.quick-dictionary__title {text-align: left !important;}
.quick-dictionary__title button {border: 0; background: none; color: var(--tp); font: inherit; font-weight: 800; text-align: left; cursor: pointer;}
.quick-dictionary__title button:hover,
.quick-dictionary__title button:focus {color: var(--Primary); text-decoration: underline; text-underline-offset: .2rem;}
.quick-dictionary__empty {display: flex; flex-direction: column; align-items: center; gap: 1.4rem; padding: 4rem 2rem; border: 1px dashed var(--bd); border-radius: var(--Radius_S); background: #fff; color: var(--ts); font-size: 1.35rem; font-weight: 800; text-align: center;}
.quick-dictionary__empty strong {color: var(--Primary);}

.quick-dictionary__modal .modal__body {padding: 2.4rem;}
.quick-dictionary__detail-meta {display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1.6rem;}
.quick-dictionary__detail-date {color: var(--tl); font-size: 1.2rem;}
.quick-dictionary__detail-block {padding: 1.5rem 1.8rem; border-left: .4rem solid var(--Primary); border-radius: 0 var(--Radius_S) var(--Radius_S) 0; background: #f7fafd;}
.quick-dictionary__detail-block + .quick-dictionary__detail-block {margin-top: 1.4rem;}
.quick-dictionary__detail-block.is-regulation {border-left-color: #c62828; background: #fff7f7;}
.quick-dictionary__detail-block.is-special {border-left-color: #1a7f37; background: #f4fbf5;}
.quick-dictionary__detail-block h4 {margin: 0 0 .8rem; color: var(--tp); font-size: 1.5rem; font-weight: 900;}
.quick-dictionary__detail-block p {margin: 0; color: var(--tsec); font-size: 1.35rem; line-height: 1.85;}

.quick-staff__grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6rem;}
.quick-staff__card {padding: 2rem 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; text-align: center; transition: box-shadow .15s, transform .15s;}
.quick-staff__card:hover {box-shadow: var(--shadow); transform: translateY(-2px);}
.quick-staff__avatar {display: flex; align-items: center; justify-content: center; width: 5.2rem; height: 5.2rem; margin: 0 auto 1rem; border-radius: 50%; background: #e8f0fa; color: var(--Primary); font-size: 2rem; font-weight: 900;}
.quick-staff__avatar.is-kiat {background: #e6f4e6; color: #2e7d32;}
.quick-staff__avatar.is-local {background: #fff0e8; color: #b45309;}
.quick-staff__card h3 {margin: 0 0 .3rem; color: var(--tp); font-size: 1.5rem; font-weight: 900;}
.quick-staff__org {margin: 0 0 .9rem; color: var(--tl); font-size: 1.15rem; line-height: 1.5;}
.quick-staff__info {display: flex; flex-direction: column; gap: .5rem; margin: 1rem 0 0; color: var(--tsec); font-size: 1.2rem; line-height: 1.6;}
.quick-staff__info div {display: flex; justify-content: center; gap: .5rem;}
.quick-staff__info dt {color: var(--ts); font-weight: 900;}
.quick-staff__info div:first-child dt::before {content: "☎ ";}
.quick-staff__info div:nth-child(2) dt::before {content: "✉️ ";}
.quick-staff__info dd {margin: 0;}
.quick-staff__info a {color: var(--Primary); font-weight: 800;}
.quick-staff__notice {padding: 1.6rem 2rem; border: 1px solid #f1d5aa; border-left: .4rem solid #b45309; border-radius: var(--Radius_S); background: #fff8ed; color: #6b3f0b; font-size: 1.35rem; line-height: 1.75;}
/* 고정 헤더(z-index 999999)가 중앙 정렬 모달 상단을 가리므로 헤더 아래로 내려 띄운다. */
.quick-staff__modal {align-items: flex-start;}
.quick-staff__modal .modal__dialog {width: min(108rem, 100%); margin-top: 11rem; max-height: calc(100vh - 17rem);}
.quick-staff__modal .modal__body {padding: 2.4rem; max-height: calc(100vh - 17rem - 8.1rem); overscroll-behavior: contain;}
.quick-staff--modal .sub-section {margin-bottom: 2rem;}
.quick-staff--modal .sub-section:last-child {margin-bottom: 0;}
.quick-staff--modal .quick-staff__grid {grid-template-columns: repeat(2, 1fr);}

/* 퀵메뉴 진입 전체 담당자 찾기 모달 */
.quick-staff__searchbar {display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.2rem;}
.quick-staff__keyword-input {flex: 1 1 24rem; min-width: 0; height: 4rem; padding: 0 1.6rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--tsec); font-size: 1.3rem;}
.quick-staff__keyword-input:focus {outline: none; border-color: var(--Primary);}
.quick-staff__searchbar .im-search-btn {border-radius: var(--Radius_Pill);}
.quick-staff__types {display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.6rem; padding-bottom: 1.6rem; border-bottom: 1px solid var(--bdl);}
.quick-staff__type {min-height: 3.2rem; padding: 0 1.4rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--ts); font-size: 1.25rem; font-weight: 800; cursor: pointer; transition: color .12s, background .12s, border-color .12s;}
.quick-staff__type:hover,
.quick-staff__type:focus,
.quick-staff__type.is-active {border-color: var(--Primary); background: var(--Primary); color: #fff;}
.quick-staff__count {margin: 0 0 1.2rem; color: var(--ts); font-size: 1.35rem; font-weight: 800;}
.quick-staff__count strong {color: var(--Primary);}
.quick-staff__people {display: grid; grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr)); gap: 1.2rem;}
.quick-staff__person {padding: 1.4rem 1.6rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #f8faff;}
.quick-staff__person-head {display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem; margin-bottom: .6rem;}
.quick-staff__person-name {color: var(--tp); font-size: 1.5rem; font-weight: 900;}
.quick-staff__person-title {color: var(--tl); font-size: 1.2rem; font-weight: 700;}
.quick-staff__person .im-badge {margin: 0 0 .8rem;}
.quick-staff__person-dept {margin: 0 0 .4rem; color: var(--tsec); font-size: 1.25rem; line-height: 1.5;}
.quick-staff__person-zone {margin: 0 0 .6rem; color: var(--ts); font-size: 1.25rem; line-height: 1.5;}
.quick-staff__person-contact {display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; margin: 0; color: var(--ts); font-size: 1.2rem;}
.quick-staff__person-contact a {color: var(--Primary); font-weight: 800;}

@media (max-width: 1024px) {
  .quick-staff__grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 860px) {
  .quick-dictionary__util {align-items: flex-start; flex-direction: column;}
  .quick-dictionary__sort {width: 100%;}
  .quick-dictionary__sort button {flex: 1;}
  .quick-dictionary__keyword,
  .quick-dictionary__mapping-grid {grid-template-columns: 1fr;}
}
@media (max-width: 640px) {
  .quick-dictionary__search {padding: 2rem 1.4rem;}
  .quick-dictionary__search-row {flex-direction: column; gap: .8rem;}
  .quick-dictionary__search-row input,
  .quick-dictionary__search-row button {width: 100%; border-radius: var(--Radius_S);}
  .quick-staff__grid {grid-template-columns: 1fr;}
  .quick-staff__modal .modal__body {padding: 1.6rem;}
  .quick-staff--modal .quick-staff__grid {grid-template-columns: 1fr;}
  .quick-staff__info div {justify-content: flex-start;}
}

/* 특구 소개 지도형 담당자 검색 모달 (전역 담당자 찾기와 별개) */
.staff-search {--staff-color: var(--Primary); --staff-btn: var(--Primary); --staff-tag-bg: #EBF2FA; --staff-tag-tx: var(--Primary); --staff-fill: #C5DCF2;}
.staff-search--free {--staff-color: var(--z-free); --staff-btn: #0050A0; --staff-tag-bg: #E0F0FF; --staff-tag-tx: #004A7A; --staff-fill: #C5DCF2;}
.staff-search--global {--staff-color: var(--z-global); --staff-btn: #0050A0; --staff-tag-bg: #E0EAF8; --staff-tag-tx: #003D88; --staff-fill: #C0CFE8;}
.staff-search--local {--staff-color: var(--z-local); --staff-btn: #B45309; --staff-tag-bg: #FFF3E0; --staff-tag-tx: #7A3800; --staff-fill: #EDD5AA;}
.staff-search .modal__dialog {width: min(92rem, 100%);}
.staff-search__searchbar {display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.4rem;}
.staff-search__keyword {flex: 1 1 24rem; min-width: 0; height: 4rem; padding: 0 1.6rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--tsec); font-size: 1.3rem;}
.staff-search__keyword:focus {outline: none; border-color: var(--staff-color);}
.staff-search__searchbar .im-search-btn {border-radius: var(--Radius_Pill);}
.staff-search__searchbar .im-search-btn--primary {background: var(--staff-btn); border-color: var(--staff-btn); color: #fff;}
.staff-search__searchbar .im-search-btn--outline {background: #fff; border-color: var(--bd); color: var(--tp);}
.staff-search__layout {display: flex; gap: 1.4rem; align-items: stretch;}
.staff-search__map-box {display: flex; flex: 0 0 36%; flex-direction: column; padding: 1rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.staff-search__map-title {margin: 0 0 .6rem; color: var(--ts); font-size: 1.2rem; font-weight: 800; text-align: center;}
.staff-search__map {display: block; flex: 1; width: 100%;}
.staff-search__region {fill: #EEF1F5; stroke: #fff; stroke-width: 1.5; transition: fill .12s;}
.staff-search__region.has-staff {fill: var(--staff-fill); cursor: pointer;}
.staff-search__region.has-staff:hover {opacity: .82;}
.staff-search__region.is-selected {fill: var(--staff-color); stroke: rgba(0,0,0,.4); stroke-width: 2;}
.staff-search__label {fill: #333; font-size: 9px; font-weight: 700; text-anchor: middle; pointer-events: none;}
.staff-search__label--sm {font-size: 7.5px;}
.staff-search__legend {display: flex; gap: 1.2rem; justify-content: center; margin-top: .6rem;}
.staff-search__legend span {display: inline-flex; align-items: center; gap: .4rem; color: var(--ts); font-size: 1.1rem;}
.staff-search__dot {display: inline-block; width: 1rem; height: 1rem; border-radius: .3rem;}
.staff-search__dot--sel {background: var(--staff-color); border: 2px solid rgba(0,0,0,.35); box-sizing: border-box;}
.staff-search__detail-box {display: flex; flex: 1; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.staff-search__detail-head {flex-shrink: 0; margin: 0; padding: 1rem 1.2rem; border-bottom: 1px solid var(--bdl); background: #F5F7FA; color: var(--ts); font-size: 1.3rem; font-weight: 800;}
.staff-search__detail-body {flex: 1; overflow-y: auto; max-height: 44rem; padding: 1.2rem;}
.staff-search__person {display: flex; gap: 1.2rem; align-items: flex-start; margin-bottom: .8rem; padding: 1.2rem 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S);}
.staff-search__person:last-child {margin-bottom: 0;}
.staff-search__avatar {display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--staff-color); color: #fff; font-size: 1.5rem; font-weight: 800;}
.staff-search__info {flex: 1; min-width: 0;}
.staff-search__name {margin: 0; color: var(--tp); font-size: 1.45rem; font-weight: 900;}
.staff-search__name span {margin-left: .4rem; color: var(--ts); font-size: 1.2rem; font-weight: 700;}
.staff-search__dept {margin: .3rem 0 0; color: var(--staff-color); font-size: 1.25rem; font-weight: 700; line-height: 1.5;}
.staff-search__contact {display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; margin: .5rem 0 0; color: var(--ts); font-size: 1.2rem;}
.staff-search__contact a {color: var(--staff-color); font-weight: 800;}
.staff-search__zone {display: inline-block; margin-top: .5rem; padding: .2rem .8rem; border-radius: var(--Radius_Pill); background: var(--staff-tag-bg); color: var(--staff-tag-tx); font-size: 1.15rem; font-weight: 700;}
.staff-search__placeholder {display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 20rem; color: var(--tl); font-size: 1.3rem; text-align: center;}

/* 지정현황 검색 모달: 지도+상세 레이아웃을 담기 위한 넓은 다이얼로그 (.ti-status 스타일을 그대로 재사용) */
.status-search .modal__dialog {width: min(104rem, 100%);}

/* 고정 헤더(z-index 999999)가 중앙 정렬 모달 상단을 가리므로 특구 소개의 지정현황/담당자 검색 모달을 헤더 아래로 내려 띄운다. */
.staff-search, .status-search {align-items: flex-start;}
.staff-search .modal__dialog, .status-search .modal__dialog {margin-top: 11rem; max-height: calc(100vh - 17rem);}
.staff-search .modal__body, .status-search .modal__body {max-height: calc(100vh - 17rem - 8.1rem);}
@media (max-width: 768px) {
  .staff-search__layout {flex-direction: column;}
  .staff-search__map-box {flex: none;}
  .staff-search__map {max-width: 32rem; margin: 0 auto;}
}

/* ====================================================================
   지역특화발전특구 정보검색 통합 모달 (.lt-zone-search)
   좌측 "특구 정보로 찾기" 패널을 폐기하고 단일 영역으로 재편했다(G1).
   본문 렌더는 .staff-search__* 스코프를 그대로 쓰고, 폐기된 좌측이 갖고 있던
   범례(.legend-row/.leg/.ld)만 이 스코프로 옮겨 왔다.
   ==================================================================== */
.lt-zone-search {align-items: flex-start;}
.lt-zone-search .modal__dialog {width: min(120rem, 100%); margin-top: 11rem; max-height: calc(100vh - 17rem);}
.lt-zone-search .modal__body {max-height: calc(100vh - 17rem - 8.1rem);}

.lt-zone-search__panels {display: grid; grid-template-columns: minmax(0, 1fr); align-items: start;}
.lt-zone-search__panel {min-width: 0;}
.lt-zone-search__panel-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--z-local); color: var(--tp); font-size: 1.6rem; font-weight: 800;}

/* 단일 영역이 되면서 지도 폭이 2배가 되어 SVG 세로(310:415 비율)가 모달 본문을 넘겼다.
   폭을 고정해 세로를 묶고, 그만큼 작아지는 라벨은 이 스코프에서만 키운다. */
.lt-zone-search .staff-search__map-box {flex: 0 0 22rem; align-self: flex-start;}
.lt-zone-search .staff-search__map {flex: none;}
.lt-zone-search .staff-search__label {font-size: 12.5px;}
.lt-zone-search .staff-search__label--sm {font-size: 10.5px;}
/* 목록이 길면 flex:1이 콘텐츠 높이만큼 늘어나 모달 본문을 넘긴다. 지도 박스 높이에 맞춰 상한을 둔다. */
.lt-zone-search .staff-search__detail-body {max-height: 32rem;}

/* 특구지정현황 상세 팝업 높이 */
#ftStDetailModal.lt-zone-search .modal__dialog,
#gtStDetailModal.lt-zone-search .modal__dialog,
#ltStDetailModal.lt-zone-search .modal__dialog {max-height: calc(100vh - 13rem);}
#ftStDetailModal.lt-zone-search .modal__body,
#gtStDetailModal.lt-zone-search .modal__body,
#ltStDetailModal.lt-zone-search .modal__body {max-height: calc(100vh - 13rem - 8.1rem);}
#ftStDetailModal.lt-zone-search .staff-search__detail-body,
#gtStDetailModal.lt-zone-search .staff-search__detail-body,
#ltStDetailModal.lt-zone-search .staff-search__detail-body {max-height: calc(100vh - 13rem - 8.1rem - 10rem);}

/* 결과 헤더. 텍스트와 "지역별 현황" 버튼을 한 행에 둔다(R4).
   ft/gt는 이 바가 없으므로 .staff-search__detail-head 원래 규칙을 그대로 쓴다. */
.lt-zone-search .staff-search__detail-bar {display: flex; flex-shrink: 0; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--bdl); background: #F5F7FA;}
.lt-zone-search .staff-search__detail-head {flex: 1; min-width: 0; padding: 0; border-bottom: none; background: none;}
.lt-zone-search .staff-search__region-view {flex-shrink: 0; padding: .5rem 1.4rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--ts); font: inherit; font-size: 1.2rem; font-weight: 700; cursor: pointer;}
.lt-zone-search .staff-search__region-view:hover {border-color: var(--z-local); color: var(--z-local);}
.lt-zone-search .staff-search__region-view[hidden] {display: none;}

/* 768px 미만은 기존 규칙이 지도와 목록을 상하로 쌓는다. 고정 폭이 세로 고정으로 뒤집히지 않게 푼다. */
@media (max-width: 768px) {
  .lt-zone-search .staff-search__map-box {flex: none;}
}

/* 특구 정보와 담당자 정보를 합친 통합 카드(R6). 특구 정보가 위, 담당자 정보는 아래 작게 둔다. */
.lz-card {display: block; width: 100%; margin-bottom: .8rem; padding: 1.2rem 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; font: inherit; color: inherit; text-align: left; cursor: pointer; transition: border-color .12s, background .12s;}
.lz-card:last-child {margin-bottom: 0;}
.lz-card:hover {border-color: var(--z-local); background: #fff8f0;}
.lz-card__title {display: block; color: var(--tp); font-size: 1.45rem; font-weight: 900; line-height: 1.4;}
.lz-card__year {display: inline-block; margin-right: .6rem; padding: .1rem .6rem; border-radius: var(--Radius_Pill); background: var(--staff-tag-bg); color: var(--staff-tag-tx); font-size: 1.15rem; font-style: normal; font-weight: 800; vertical-align: middle;}
.lz-card__meta {display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; margin-top: .4rem; color: var(--ts); font-size: 1.25rem;}
/* 담당자 줄은 특구 정보보다 작고 흐리게 둔다. 값이 없으면 줄 자체가 렌더되지 않는다. */
.lz-card__staff, .lz-card__contact {display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; color: var(--tl); font-size: 1.15rem;}
.lz-card__staff {margin-top: .8rem; padding-top: .8rem; border-top: 1px dashed var(--bdl);}
.lz-card__contact {margin-top: .2rem;}

/* 지역별 현황(S2). 폐기한 좌측 패널의 지역 카드 그리드를 그대로 쓴다. */
.lt-zone-search .rg {display: grid; grid-template-columns: repeat(6, 1fr); gap: .8rem;}
.lt-zone-search .rc {display: block; width: 100%; padding: 1rem .6rem; border: 1px solid var(--bdl); border-radius: .6rem; background: #fff; font: inherit; color: inherit; text-align: center; cursor: pointer; transition: all .12s;}
.lt-zone-search .rc:hover {border-color: var(--z-local); background: #fff8f0;}
.lt-zone-search .rc-num {display: block; color: var(--z-local); font-size: 1.8rem; font-weight: 800;}
.lt-zone-search .rc-name {display: block; color: var(--tp); font-size: 1.2rem; font-weight: 700;}

/* 상세 화면 하단 담당자 블록(D5). 사업 정보가 주(主), 담당자가 부(副)라 목록 카드와 같이 작게 둔다. */
.lt-zone-search .ltzd__staff {margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px dashed var(--bdl);}
.lt-zone-search .ltzd__staff-name {margin: 0; color: var(--tl); font-size: 1.15rem; font-weight: 700;}
.lt-zone-search .ltzd__staff-contact {display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; margin: .3rem 0 0; color: var(--tl); font-size: 1.15rem;}
.lt-zone-search .ltzd__staff-contact a {color: var(--z-local); font-weight: 700;}

/* 사업 정보 상세(결과 영역 내 전환) */
.lt-zone-search .ltzd__head {display: flex; align-items: center; gap: 1rem;}
.lt-zone-search .ltzd__back {flex-shrink: 0; padding: .4rem 1.2rem; border: 1px solid var(--bd); border-radius: var(--Radius_Pill); background: #fff; color: var(--ts); font: inherit; font-size: 1.2rem; font-weight: 700; cursor: pointer;}
.lt-zone-search .ltzd__back:hover {border-color: var(--z-local); color: var(--z-local);}
.lt-zone-search .ltzd__zone {min-width: 0; overflow: hidden; color: var(--tp); text-overflow: ellipsis; white-space: nowrap;}
.lt-zone-search .ltzd__state {margin: 0 0 1.4rem; padding: 1rem 1.2rem; border-radius: var(--Radius_S); background: #f5f7fa; color: var(--ts); font-size: 1.25rem; line-height: 1.6;}
.lt-zone-search .ltzd__state--error {background: #fdecec; color: #a12121;}
.lt-zone-search .ltzd__state--empty {background: #fff8f0; color: #7a3800;}
.lt-zone-search .ltzd__fields {display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 0; margin: 0; border-top: 1px solid var(--bdl);}
.lt-zone-search .ltzd__label {padding: 1rem 1.2rem; border-bottom: 1px solid var(--bdl); background: #fafbfd; color: var(--ts); font-size: 1.25rem; font-weight: 700;}
.lt-zone-search .ltzd__value {margin: 0; padding: 1rem 1.2rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.25rem; line-height: 1.6; word-break: break-all;}
.lt-zone-search .ltzd__value--none {color: var(--tl);}
.lt-zone-search .ltzd__details {margin: 0;}
.lt-zone-search .ltzd__details summary {cursor: pointer; color: var(--z-local); font-weight: 700;}
.lt-zone-search .ltzd__details > ul {margin: .8rem 0 0; padding: 0; list-style: none;}
.lt-zone-search .ltzd__details-body {margin: .8rem 0 0;}
.lt-zone-search .ltzd__locations li + li {margin-top: .5rem;}
.lt-zone-search .ltzd__funding li {display: flex; justify-content: space-between; gap: 1rem;}
.lt-zone-search .ltzd__funding li + li {margin-top: .5rem;}
.lt-zone-search .ltzd__funding strong {font-weight: 400; text-align: right;}

/* 규제자유특구 상세 팝업은 지역특구(lt-zone-search)와 같은 마크업을 재사용하되, 브랜드 색만 특구 고유
   색(--z-free, 파랑)으로 바꾼다. .lt-zone-search 아래 모든 var(--z-local) 참조가 이 색으로 갱신된다. */
#ftStDetailModal {--z-local: var(--z-free);}

/* 글로벌혁신특구 상세 팝업도 같은 방식으로 브랜드 색만 --z-global(남색)로 바꿔 재사용한다. */
#gtStDetailModal {--z-local: var(--z-global);}

/* 연차별 재원 구성 / 규제특례 적용 조항 표. 관리자 화면(TB_FREE_ZONE_BUDG·CLUSE 상세)과 같은 열 구성이다. */
.lt-zone-search .ltzd__table-wrap {overflow-x: auto;}
.lt-zone-search .ltzd__table-note {margin: 0 0 .6rem; color: var(--tl); font-size: 1.1rem; text-align: right;}
.lt-zone-search .ltzd__budg-table,
.lt-zone-search .ltzd__cluse-table {width: 100%; border-collapse: collapse; font-size: 1.2rem;}
.lt-zone-search .ltzd__budg-table th,
.lt-zone-search .ltzd__budg-table td,
.lt-zone-search .ltzd__cluse-table th,
.lt-zone-search .ltzd__cluse-table td {padding: .8rem 1rem; border: 1px solid var(--bdl); vertical-align: top;}
.lt-zone-search .ltzd__budg-table th,
.lt-zone-search .ltzd__cluse-table th {background: #fafbfd; color: var(--ts); font-weight: 700; text-align: center; white-space: nowrap;}
.lt-zone-search .ltzd__budg-table td {white-space: nowrap;}
.lt-zone-search .ltzd__num {text-align: right; color: var(--tsec);}
.lt-zone-search .ltzd__num--total {font-weight: 800; color: var(--tp); background: #fafbfd;}
/* 규제특례 표 열 폭 */
.lt-zone-search .ltzd__cluse-table {table-layout: fixed;}
.lt-zone-search .ltzd__cluse-table th:nth-child(1) {width: 23%;}
.lt-zone-search .ltzd__cluse-table th:nth-child(2) {width: 15%;}
.lt-zone-search .ltzd__cluse-table th:nth-child(3) {width: 62%;}
.lt-zone-search .ltzd__cluse-table td {color: var(--tsec); line-height: 1.6; word-break: break-all; white-space: normal;}
.lt-zone-search .ltzd__cluse-table .ltzd__cluse-law {word-break: keep-all;}
/* 특례명칭·법령조항 중앙 정렬 */
.lt-zone-search .ltzd__cluse-table .ltzd__cluse-name,
.lt-zone-search .ltzd__cluse-table .ltzd__cluse-law {vertical-align: middle; text-align: center;}

/* 세부사업: 사업 수만큼 라벨-값 소표 카드를 쌓는다(관리자 화면의 "사업1, 사업2 ..." 카드와 같은 구성). */
.lt-zone-search .ltzd__bsns-card {margin: 0 0 1.2rem;}
.lt-zone-search .ltzd__bsns-card:last-child {margin-bottom: 0;}
.lt-zone-search .ltzd__bsns-card-title {margin: 0 0 .6rem; color: var(--z-local); font-size: 1.25rem; font-weight: 800;}
.lt-zone-search .ltzd__bsns-table {width: 100%; border-collapse: collapse; font-size: 1.15rem;}
.lt-zone-search .ltzd__bsns-table th {width: 9rem; padding: .7rem 1rem; border: 1px solid var(--bdl); background: #fafbfd; color: var(--ts); font-weight: 700; text-align: left; vertical-align: top; white-space: nowrap;}
.lt-zone-search .ltzd__bsns-table td {padding: .7rem 1rem; border: 1px solid var(--bdl); color: var(--tsec); line-height: 1.6; word-break: break-all;}

/* 특구상세정보 팝업(#ftStDetailModal/#gtStDetailModal/#ltStDetailModal) 본문 폰트 확대.
   같은 .lt-zone-search를 쓰는 정보검색 모달(#ltZoneSearchModal)은 별개라 ID로 한정한다. */
#ftStDetailModal .lt-zone-search__panel-title,
#gtStDetailModal .lt-zone-search__panel-title,
#ltStDetailModal .lt-zone-search__panel-title {font-size: 1.9rem;}
#ftStDetailModal .staff-search__detail-head,
#gtStDetailModal .staff-search__detail-head,
#ltStDetailModal .staff-search__detail-head {font-size: 1.5rem;}
#ftStDetailModal .ltzd__state,
#gtStDetailModal .ltzd__state,
#ltStDetailModal .ltzd__state,
#ftStDetailModal .ltzd__label,
#gtStDetailModal .ltzd__label,
#ltStDetailModal .ltzd__label,
#ftStDetailModal .ltzd__value,
#gtStDetailModal .ltzd__value,
#ltStDetailModal .ltzd__value {font-size: 1.45rem;}
#ftStDetailModal .ltzd__details summary,
#gtStDetailModal .ltzd__details summary,
#ltStDetailModal .ltzd__details summary {font-size: 1.4rem;}
#ftStDetailModal .ltzd__budg-table,
#gtStDetailModal .ltzd__budg-table,
#ltStDetailModal .ltzd__budg-table,
#ftStDetailModal .ltzd__cluse-table,
#gtStDetailModal .ltzd__cluse-table,
#ltStDetailModal .ltzd__cluse-table {font-size: 1.35rem;}
#ftStDetailModal .ltzd__bsns-card-title,
#gtStDetailModal .ltzd__bsns-card-title,
#ltStDetailModal .ltzd__bsns-card-title {font-size: 1.4rem;}
#ftStDetailModal .ltzd__bsns-table,
#gtStDetailModal .ltzd__bsns-table,
#ltStDetailModal .ltzd__bsns-table {font-size: 1.3rem;}
#ftStDetailModal .ltzd__staff-name,
#gtStDetailModal .ltzd__staff-name,
#ltStDetailModal .ltzd__staff-name,
#ftStDetailModal .ltzd__staff-contact,
#gtStDetailModal .ltzd__staff-contact,
#ltStDetailModal .ltzd__staff-contact {font-size: 1.3rem;}

/* 사이트맵 */
.sm-map-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem;}
.sm-map-card {padding: 2.2rem 2.4rem; border: 1px solid var(--bdl); border-top: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #fff;}
.sm-map-card h3 {margin: 0 0 1.4rem; font-size: 1.9rem; font-weight: 800;}
.sm-map-card h3 a {color: var(--tp);}
.sm-map-card ul {list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem;}
.sm-map-card li {font-size: 1.7rem; line-height: 1.6;}
.iu-guide.sm-map .info-box {font-size: 1.7rem;}
.sm-map-card li a {color: var(--tsec);}
.sm-map-card li a:hover, .sm-map-card li a:focus {color: var(--Primary); text-decoration: underline;}
@media (max-width: 1024px) {
  .sm-map-grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 560px) {
  .sm-map-grid {grid-template-columns: 1fr;}
}

/* 좌측메뉴(LNB) 2단 레이아웃 */
.sub-layout {display: flex; gap: 5rem;}
.sub-layout .lnb {display: flex; flex-direction: column; width: 23rem; flex-shrink: 0;}
.sub-layout .sub-body {flex: 1 1 auto; min-width: 0;}
.lnb .lnb__title {display: flex; padding: 3.2rem 0; justify-content: center; align-items: center; border-radius: 2rem 2rem 0 0; background: linear-gradient(265deg, #DEE4F8 11.31%, #D3F3EE 88.99%); text-align: center; color: #191919; font-weight: 700;}
.lnb__list {display: flex; flex-direction: column;}
.lnb-item .lnb-item__link {display: flex; justify-content: space-between; align-items: center; padding: 2rem 1rem; gap: 1rem; transition: all .3s; border-bottom: 1px solid var(--bdl, #d7d7d7);}
.lnb-item .lnb-item__link .lnb-item__text {color: var(--tsec, #363636);}
.lnb-item .lnb-item__link:after {content: ''; width: 3.2rem; height: 3.2rem; aspect-ratio: 1/1; background: url(../images/sub/ico_arrow-right.svg) no-repeat center; transition: all .3s; opacity: 0;}
.lnb-item--selected .lnb-item__link .lnb-item__text {color: #1C589C; font-weight: 700;}
.lnb-item .lnb-item__link:hover:after,
.lnb-item--selected .lnb-item__link:after {opacity: 1;}
@media (max-width: 1024px) {
  .sub-layout {flex-direction: column; gap: 2rem;}
  .sub-layout .lnb {width: 100%; flex-direction: column; position: relative;}
  /* 모바일에서는 타이틀을 탭하면 목록이 펼쳐지는 콤보(아코디언)로 동작한다(ui.js의 lnb__title 토글 참고) */
  .lnb .lnb__title {padding: 2rem 2.4rem; justify-content: space-between; border-radius: 2rem; cursor: pointer;}
  .lnb .lnb__title::after {content: ''; width: 2rem; height: 2rem; flex-shrink: 0; background: url(../images/sub/ico_arrow-right.svg) no-repeat center / 2rem; transform: rotate(90deg); transition: transform .25s;}
  .lnb.is-open .lnb__title {border-radius: 2rem 2rem 0 0;}
  .lnb.is-open .lnb__title::after {transform: rotate(-90deg);}
  .lnb__list {position: absolute; left: 0; top: 100%; z-index: 5; display: none; flex-direction: column; width: 100%; background: #fff; border: 1px solid var(--bdl, #d7d7d7); border-top: 0; border-radius: 0 0 2rem 2rem;}
  .lnb.is-open .lnb__list {display: flex;}
  .lnb-item {flex: none;}
  .lnb-item .lnb-item__link {padding: 1.4rem 2rem;}
}

/* 좌측메뉴 페이지는 sub-visual(히어로 배너) 없이 sub-container가 최상위 콘텐츠라 고정 헤더 높이만큼 상단 여백이 필요하다. */
.sub-container--lnb {
  --lnb-sub-gap: 5rem;
  padding-top: calc(var(--gasys-fixed-header-bottom, 130px) + var(--lnb-sub-gap));
}
.sub_header .gnb__link[aria-current="page"] {color: inherit;}

/* 좌측메뉴 페이지 전용 브레드크럼. 전역 .breadcrumb(히어로 배너용, 밝은 파란 글자)와 이름이 겹치므로
   .sub-layout 스코프로 값을 덮어써서 충돌을 막는다. */
.sub-layout .breadcrumb {margin: 2.4rem 0 2rem 0; color: inherit;}
.sub-layout .breadcrumb__list {display: flex; gap: .2rem;}
.sub-layout .breadcrumb li::before {content: none;}
.sub-layout .breadcrumb__link {display: flex; gap: 1.2rem; color: var(--tsec, #565656);}
.sub-layout .breadcrumb__link[aria-current="page"] {color: var(--tp, #191919); font-weight: 700;}
.sub-layout .breadcrumb__link:after {content: ''; width: 2rem; height: 2rem; background: url(../images/sub/ico_arrow-right.svg) no-repeat center; background-size: 2rem;}
.sub-layout .breadcrumb__item:last-child .breadcrumb__link:after {display: none;}
.sub-layout .breadcrumb__item--home .breadcrumb__link::before {content: ''; width: 2.4rem; height: 2.4rem; background: url(../images/sub/ico_home.svg) no-repeat center;}

/* 좌측메뉴 페이지의 본문 제목 */
.sub-content .sub-content__title {display: flex; padding-bottom: 2rem; align-items: center; gap: 1rem; border-bottom: 1px solid var(--bdl, #d7d7d7); margin-bottom: 5rem;}

/* 이용안내(iu) 공통 스타일 */
.iu-guide .info-box {padding: 1.6rem 2rem; border: 1px solid var(--bdl); border-left: .4rem solid var(--Primary); border-radius: var(--Radius_S); background: #f7fafd; font-size: 1.4rem; line-height: 1.7; color: var(--tsec);}
.iu-guide .info-box a {color: var(--Primary); font-weight: 600;}
.iu-guide .info-box a strong {font-weight: 700;}

.iu-guide .zone-overview-card {overflow: hidden; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff;}
.iu-guide .zoc-body {padding: 2rem 2.4rem;}

.iu-guide .ft-sec-title {margin: 0 0 1.4rem; padding-left: 1rem; border-left: .4rem solid var(--Primary); color: var(--tp); font-size: 1.8rem; font-weight: 800; scroll-margin-top: calc(var(--gasys-fixed-header-bottom, 130px) + 1.6rem);}

.iu-guide .feature-list {list-style: none; margin: 0; padding: 0;}
.iu-guide .feature-list li {position: relative; padding: 1rem 1rem 1rem 2.8rem; border-bottom: 1px solid var(--bdl); color: var(--tsec); font-size: 1.4rem; line-height: 1.8;}
.iu-guide .feature-list li:last-child {border-bottom: 0;}
.iu-guide .feature-list li::before {content: ""; position: absolute; left: .8rem; top: 1.85rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--Primary);}
.iu-guide .feature-list .feature-list {margin: .8rem 0 0;}
.iu-guide .feature-list .feature-list li {padding-left: 2.4rem;}
.iu-guide .feature-list li:last-child .feature-list li:last-child {border-bottom: 0;}
.iu-guide .feature-list a {color: var(--Primary); font-weight: 600;}
.iu-guide .feature-list a:hover {text-decoration: underline;}

.iu-guide .contact-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;}
.iu-guide .contact-card {display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem 1.8rem; border-radius: var(--Radius_S); background: #F5F7FA; color: var(--tsec); font-size: 1.35rem; line-height: 1.7;}
.iu-guide .contact-card strong {color: var(--tp); font-size: 1.35rem;}

.iu-guide .ft-note {margin: 1.2rem 0 0; color: var(--ts); font-size: 1.25rem;}
/* 본문 링크 색상 */
.iu-guide .sub-content .body-medium a {color: var(--Primary); font-weight: 600;}
.iu-guide .sub-content .body-medium a:hover {text-decoration: underline;}

/* 개인정보처리방침 상단 라벨링(아이콘) */
.iu-guide .priv-label__grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 1.6rem 0;}
.iu-guide .priv-label__item {display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: 1.8rem 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #fff; text-align: center;}
.iu-guide .priv-label__icon {width: 5.6rem; height: 5.6rem;}
.iu-guide .priv-label__name {margin: 0; color: var(--tp); font-size: 1.4rem; font-weight: 700;}
.iu-guide .priv-label__desc {color: var(--ts); font-size: 1.2rem; line-height: 1.5;}

/* 개인정보처리방침 각 조 제목 뒤에 붙는 라벨 썸네일 아이콘. 항목에 따라 아이콘이 1~2개다(5조·8조는 2개). */
.iu-guide .priv-sec-head{display:flex;align-items:center;gap:1rem;margin:3rem 0 1.4rem;}
.iu-guide .priv-sec-head .ft-sec-title{margin:0;}
.iu-guide .priv-sec-head__icon{width:3.6rem;height:auto;flex-shrink:0;}

/* 순번이 있는 본문 목록(개인정보처리방침·이용약관 공통). 브라우저 기본 번호 대신 --Primary 색 번호를 붙여 다른 요소와 톤을 맞춘다. */
.iu-guide .priv-ol{list-style:none;counter-reset:priv-num;margin:0;padding:0;}
.iu-guide .priv-ol > li{position:relative;counter-increment:priv-num;padding:1rem 1rem 1rem 3rem;border-bottom:1px solid var(--bdl);color:var(--tsec);font-size:1.4rem;line-height:1.8;}
.iu-guide .priv-ol > li:last-child{border-bottom:0;}
.iu-guide .priv-ol > li::before{content:counter(priv-num)".";position:absolute;left:.6rem;top:1rem;color:var(--Primary);font-weight:700;}
.iu-guide .priv-ol ul{list-style:disc;margin:.8rem 0 0 1.6rem;padding:0;}
.iu-guide .priv-ol ul li{padding:.3rem 0;border-bottom:0;font-size:1.4rem;line-height:1.7;color:var(--tsec);}
/* 항목 텍스트 자체에 "1) 2)" 같은 번호가 이미 있는 하위 목록은 점 불릿을 겹치지 않게 뺀다(예: 제4조 파기 절차/방법). */
.iu-guide .priv-ol ul.priv-plain{list-style:none;margin-left:0;}
.iu-guide .priv-ol .priv-file{display:flex;width:fit-content;margin-top:.8rem;}
.iu-guide .priv-ol a:not(.priv-file){color:var(--Primary);font-weight:600;}
.iu-guide .priv-ol a:not(.priv-file):hover{text-decoration:underline;}

/* 이용약관의 "제N장" 대제목. "제N조" 소제목(.ft-sec-title)과 구분되도록 더 크게, 좌측 컬러바 없이 표시한다. */
.iu-guide .priv-chapter-title{margin:3.6rem 0 .4rem;color:var(--tp);font-size:2.1rem;font-weight:800;}
.iu-guide .sub-section:first-child .priv-chapter-title{margin-top:0;}

/* 부칙의 시행일 문구를 강조 */
.iu-guide .priv-effective{margin:0 0 .6rem;color:#6167af;font-size:1.7rem;font-weight:700;}

/* 개인정보처리방침 첨부파일 다운로드 버튼(원본 사이트의 a.file 스타일을 재현) */
.iu-guide .priv-file{display:inline-flex;align-items:center;gap:1.6rem;margin:.4rem 0;padding:1.4rem 1.8rem;border:1px solid #7A99B7;border-radius:2px;color:#0058AF;font-weight:600;font-size:1.5rem;text-decoration:none;background:#fff;}
.iu-guide .priv-file:hover{background:#f5f9ff;text-decoration:underline;text-underline-offset:.2rem;}
.iu-guide .priv-file__icon{width:2rem;height:1.3rem;flex-shrink:0;}

/* 개인정보처리방침 목차 */
.iu-guide .priv-index__list {display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; list-style: none; margin: 1.6rem 0 0; padding: 0;}
.iu-guide .priv-index__list a {display: flex; align-items: center; gap: 1.2rem; padding: 1rem 1.4rem; border: 1px solid var(--bdl); border-radius: var(--Radius_S); background: #f7fafd; color: var(--tsec); font-size: 1.35rem; font-weight: 600; text-decoration: none;}
.iu-guide .priv-index__list a:hover {border-color: var(--Primary); color: var(--Primary);}
.iu-guide .priv-index__list img {width: 3.2rem; height: 3.6rem; flex-shrink: 0;}

@media (max-width: 768px) {
  .iu-guide .contact-grid {grid-template-columns: 1fr;}
  .iu-guide .priv-label__grid {grid-template-columns: repeat(2, 1fr);}
  .iu-guide .priv-index__list {grid-template-columns: 1fr;}
}
@media (max-width: 480px) {
  .iu-guide .priv-label__grid {grid-template-columns: 1fr;}
}
