/**
 * citizen-action-demo-canvas.css
 * High-fidelity HTML/CSS reconstruction of Buk-gu Office portal.
 * Font/styling aligned with actual bukgu.gwangju.kr (analyzed 2026-07-10).
 *
 * Real site uses self-hosted NotoKR (Noto Sans KR 400/500) + gmk (GmarketSans).
 * Canvas uses system/local font stack (Noto Sans KR via local/system fallback);
 * nav headings are rendered at the same sizes/weights/colors as the live portal.
 */

/* ---------------------------------------------------------------------------
   Base
--------------------------------------------------------------------------- */
.bg-page {
  font-family: 'Noto Sans KR', 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;
  color: #000;
  background: #fff;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  letter-spacing: -0.3px;
}
.bg-page--full {
  margin: -24px -32px;
  width: calc(100% + 64px);
  min-height: calc(100% + 48px);
}

/* ---------------------------------------------------------------------------
   Skip nav
--------------------------------------------------------------------------- */
.bg-skip { position: absolute; left: -9999px; }
.bg-skip a:focus {
  position: fixed; top: 0; left: 0; z-index: 9999;
  background: #2c3e50; color: #fff; padding: 8px 16px;
}

/* ---------------------------------------------------------------------------
   Demo nav bar (kept from existing)
--------------------------------------------------------------------------- */
.bg-nav-bar {
  background: #2c3e50; color: #ecf0f1; padding: 8px 16px;
  display: flex; align-items: center; gap: 12px;
  font-size: 0.8125rem; flex-shrink: 0;
}
.bg-nav-bar__title { font-weight: 600; color: #ecf0f1; }
.bg-nav-bar__crumb { color: #aab8c2; font-size: 0.75rem; }
.bg-nav-bar__hint { margin-left: auto; font-size: 0.6875rem; color: #7f8c9a; }

/* ---------------------------------------------------------------------------
   Breadcrumb (kept from existing)
--------------------------------------------------------------------------- */
.bg-breadcrumb {
  background: #f8f9fa; border-bottom: 1px solid #e0e0e0;
  padding: 6px 16px; font-size: 0.75rem; color: #666;
  display: flex; align-items: center; gap: 4px;
}
.bg-breadcrumb__sep { color: #aaa; margin: 0 2px; }
.bg-breadcrumb__item { color: #555; }
.bg-breadcrumb__item:last-child { color: #000; font-weight: 600; }

/* ---------------------------------------------------------------------------
   Page header (kept from existing)
--------------------------------------------------------------------------- */
.bg-page-header { padding: 16px 0 8px; }
.bg-page-header__title {
  font-size: 1.25rem; font-weight: 700; color: #1a252f; margin: 0 0 4px;
}
.bg-page-header__purpose {
  font-size: 0.8125rem; color: #5d6d7e; margin: 0; line-height: 1.5;
}

/* ---------------------------------------------------------------------------
   PoC banner (kept from existing)
--------------------------------------------------------------------------- */
.bg-poc-banner {
  background: #fef9e7; border: 1px solid #f9ca2b;
  border-radius: 4px; padding: 8px 12px; margin-bottom: 12px;
  font-size: 0.75rem; color: #6e4c1e; line-height: 1.5;
}
.bg-poc-banner__label { font-weight: 700; display: block; margin-bottom: 2px; color: #9a7b1a; }
.bg-poc-banner__text { margin: 0; }

/* ===== HOME PAGE ===== */

/* ---------------------------------------------------------------------------
   Utility bar (#f8f9fa full-width)
--------------------------------------------------------------------------- */
.bg-util-bar {
  background: #f8f9fa; border-bottom: 1px solid #e6e8ec;
  display: flex; align-items: center; justify-content: space-between;
  padding: 6px 32px; font-size: 0.75rem; flex-shrink: 0;
}
.bg-util-bar__left { display: flex; align-items: center; gap: 8px; }
.bg-util-bar__right { display: flex; align-items: center; gap: 4px; }
.bg-dust-pill {
  display: inline-flex; align-items: center; gap: 4px;
  background: #e8f0fe; color: #0054a6; border-radius: 12px;
  padding: 2px 10px; font-size: 0.6875rem; font-weight: 600;
}
.bg-dust-pill__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #2196F3; display: inline-block;
}
.bg-hlink {
  color: #555; text-decoration: none; padding: 2px 6px;
  font-size: 0.75rem; white-space: nowrap;
}
.bg-hlink:hover { color: #0054a6; }

/* ---------------------------------------------------------------------------
   Header (white bg, logo + title)
--------------------------------------------------------------------------- */
.bg-header {
  background: #fff; border-bottom: 1px solid #e0e0e0; flex-shrink: 0;
}
.bg-header__inner {
  max-width: 1200px; margin: 0 auto;
  padding: 8px 32px; display: flex; align-items: center; gap: 10px;
}
.bg-logo { display: flex; align-items: center; gap: 6px; text-decoration: none; }
.bg-logo__svg { width: 42px; height: 42px; flex-shrink: 0; }
.bg-logo__text {
  font-size: 1.0625rem; font-weight: 700;
  color: #004d40; white-space: nowrap; letter-spacing: -0.3px;
}
.bg-header__right {
  margin-left: auto; display: flex; align-items: center; gap: 6px;
}
.bg-header__right .bg-hlink { font-size: 0.75rem; color: #666; }
.bg-header__right .bg-hlink:hover { color: #0054a6; }
.bg-icon-btn {
  background: none; border: 1px solid #ccc; border-radius: 3px;
  padding: 3px 8px; font-size: 0.75rem; cursor: pointer; color: #555;
}
.bg-icon-btn:hover { background: #f0f0f0; }

/* ---------------------------------------------------------------------------
   GNB (white bg, dark text menu)
--------------------------------------------------------------------------- */
.bg-gnb {
  background: linear-gradient(90deg, #32966E 0%, #466EAA 100%);
  border-bottom: 3px solid transparent;
  border-image: linear-gradient(90deg, #32966E 0%, #466EAA 100%) 1;
  flex-shrink: 0;
}
.bg-gnb__inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center;
  padding: 0 32px;
}
.bg-gnb__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex: 1;
}
.bg-gnb__item { position: relative; }
.bg-gnb__link {
  display: block; padding: 11px 18px; color: #fff;
  text-decoration: none; font-size: 0.875rem; font-weight: 500;
  transition: color 0.12s; white-space: nowrap;
  letter-spacing: -0.3px;
}
.bg-gnb__link:hover { color: rgba(255,255,255,0.85); }
.bg-gnb__link--active { color: #fff; font-weight: 700; }
.bg-gnb__tools {
  display: flex; align-items: center; gap: 4px; margin-left: auto;
}
.bg-gnb__icon-btn {
  background: none; border: none; cursor: pointer;
  padding: 8px 10px; font-size: 1rem; color: #fff; line-height: 1;
}
.bg-gnb__icon-btn:hover { color: rgba(255,255,255,0.85); }

/* ---------------------------------------------------------------------------
   Search hero (pill-shaped large search)
--------------------------------------------------------------------------- */
.bg-search-hero {
  background: #f4f7fb; padding: 28px 32px; text-align: center;
  flex-shrink: 0;
}
.bg-search-hero__inner { max-width: 700px; margin: 0 auto; }
.bg-search-hero__form {
  display: flex; align-items: center; gap: 0;
  max-width: 560px; margin: 0 auto;
  background: #fff; border: 1px solid #ccc;
  border-radius: 50px; overflow: hidden; box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.bg-search-hero__input {
  flex: 1; border: none; padding: 13px 20px;
  font-size: 0.9375rem; color: #333; outline: none;
  background: transparent;
}
.bg-search-hero__input::placeholder { color: #aaa; font-size: 0.875rem; }
.bg-search-hero__btn {
  background: #004a99; color: #fff; border: none;
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 1rem; margin-right: 4px; flex-shrink: 0;
  transition: background 0.12s;
}
.bg-search-hero__btn:hover { background: #003377; }
.bg-search-hero__tags {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 10px; flex-wrap: wrap;
}
.bg-search-hero__tag {
  background: #eef1f5; color: #666; text-decoration: none;
  padding: 4px 12px; border-radius: 14px; font-size: 0.75rem;
  transition: background 0.12s;
}
.bg-search-hero__tag:hover { background: #dde3ec; }

/* ---------------------------------------------------------------------------
   Hero section (2-column)
--------------------------------------------------------------------------- */
.bg-hero {
  display: flex; gap: 16px; padding: 20px 32px;
  max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box;
  flex-shrink: 0;
}
.bg-hero__left {
  flex: 1; background: #fff;
  border: 1px solid #e6e8ec; border-radius: 4px;
  padding: 28px 24px; display: flex; flex-direction: column;
  justify-content: center;
}
.bg-hero__right {
  width: 380px; min-width: 340px;
  background: #f9fafc;
  border: 1px solid #e6e8ec; border-radius: 4px;
  overflow: hidden; display: flex; flex-direction: column;
}
.bg-welcome-title {
  font-size: 1.375rem; font-weight: 700; color: #000;
  margin: 0 0 4px; line-height: 1.3;
  letter-spacing: -0.3px;
}
.bg-welcome-mayor {
  font-size: 0.8125rem; color: #777; margin: 0 0 14px;
}
.bg-welcome-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.bg-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px; border-radius: 4px;
  font-size: 0.8125rem; font-weight: 600; text-decoration: none;
  cursor: pointer; border: none; transition: opacity 0.12s;
}
.bg-btn:hover { opacity: 0.9; }
.bg-btn--dark-blue { background: #004a99; color: #fff; }
.bg-btn--green { background: #008575; color: #fff; }
.bg-slider-card { flex: 1; display: flex; flex-direction: column; }
.bg-slider-card__content {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 20px; text-align: center; gap: 8px;
}
.bg-slider-card__eyebrow {
  font-size: 0.6875rem; color: #008575; font-weight: 600;
  letter-spacing: -0.2px;
}
.bg-slider-card__title { font-size: 1.0625rem; font-weight: 700; color: #1a252f; }
.bg-slider-card__sub { font-size: 0.8125rem; color: #666; }
.bg-slider-card__more {
  display: inline-block; margin-top: 6px;
  padding: 6px 16px; font-size: 0.75rem; font-weight: 600;
  color: #fff; background: #0054a6; border-radius: 3px;
  text-decoration: none; line-height: 1;
}
.bg-slider-card__more:hover { background: #003d7a; }
.bg-slider-card__portrait {
  /* unused after emoji placeholder removal; kept for backward compatibility */
  width: 60px; height: 60px; border-radius: 50%;
  background: #e0e4ec; display: flex; align-items: center;
  justify-content: center; font-size: 1.5rem; color: #888;
  margin: 6px 0; display: none;
}
.bg-slider-card__meta {
  font-size: 0.6875rem; color: #999;
  padding: 6px 0;
}
.bg-slider-card__controls {
  display: flex; align-items: center; justify-content: space-between;
  padding: 6px 12px; background: #eef1f5; font-size: 0.75rem;
}
.bg-slider-card__counter { color: #888; }
.bg-slider-card__counter strong { color: #333; }
.bg-slider-card__nav { display: flex; gap: 4px; }
.bg-slider-card__nav-btn {
  background: none; border: none; cursor: pointer;
  font-size: 0.8125rem; color: #555; padding: 2px 6px;
}

/* ---------------------------------------------------------------------------
   Quick services (6 square cards)
--------------------------------------------------------------------------- */
.bg-quick {
  display: flex; gap: 8px; padding: 0 32px 16px;
  max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box;
  flex-shrink: 0;
}
.bg-quick-item {
  flex: 1; min-width: 90px; text-align: center;
  background: #f4f7fb; border: 1px solid #d5dce8;
  border-radius: 4px; padding: 18px 6px;
  font-size: 0.8125rem; color: #2c3e50; text-decoration: none;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  transition: background 0.12s, border-color 0.12s;
}
.bg-quick-item:hover {
  background: #eaf2fb; border-color: #0054a6;
}
.bg-quick-item__icon { font-size: 1.375rem; line-height: 1; }

/* ---------------------------------------------------------------------------
   Notice & Sites grid
--------------------------------------------------------------------------- */
.bg-notice-grid {
  display: flex; gap: 16px; padding: 0 32px;
  max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box;
  flex-shrink: 0;
}
.bg-notice-panel {
  flex: 1; border: 1px solid #e6e8ec; border-radius: 4px; padding: 14px 16px;
  display: flex; flex-direction: column;
}
.bg-notice-tabs {
  display: flex; border-bottom: 2px solid #0054a6; margin-bottom: 8px;
  gap: 0; overflow: hidden;
}
.bg-notice-tab {
  padding: 8px 12px; font-size: 0.8125rem; font-weight: 500;
  color: #666; text-decoration: none; border-bottom: 2px solid transparent;
  margin-bottom: -2px; white-space: nowrap;
}
.bg-notice-tab:hover { color: #0054a6; }
.bg-notice-tab--active {
  color: #0054a6; font-weight: 700; border-bottom-color: #0054a6;
}
.bg-more--bottom {
  display: inline-block; margin-top: 8px; align-self: flex-end;
  font-size: 0.75rem; color: #888; text-decoration: none;
}
.bg-more--bottom:hover { color: #0054a6; }
.bg-sites-panel {
  width: 340px; min-width: 300px;
  border: 1px solid #e6e8ec; border-radius: 4px; padding: 14px 16px;
}
.bg-card-title {
  font-size: 0.9375rem; font-weight: 700; color: #1a252f;
  margin: 0 0 10px; display: flex; align-items: center; justify-content: space-between;
}
.bg-card-title a { color: #1a252f; text-decoration: none; }
.bg-card-title .bg-more { font-size: 0.75rem; color: #888; font-weight: 400; }
.bg-card-title .bg-more:hover { color: #0054a6; }
.bg-card-list { list-style: none; margin: 0; padding: 0; }
.bg-card-list li { padding: 5px 0; border-bottom: 1px dotted #e0e4ec; }
.bg-card-list li:last-child { border-bottom: none; }
.bg-card-list li a {
  font-size: 0.8125rem; color: #333; text-decoration: none;
  display: block; line-height: 1.4;
}
.bg-card-list li a:hover { color: #0054a6; }
.bg-sites-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.bg-sites-item {
  font-size: 0.8125rem; color: #333; text-decoration: none;
  padding: 4px 0; display: flex; align-items: center; gap: 4px;
}
.bg-sites-item:hover { color: #0054a6; }
.bg-sites-item__icon { font-size: 0.75rem; color: #888; }

/* ---------------------------------------------------------------------------
   Sub carousels (4 tabbed carousels)
--------------------------------------------------------------------------- */
.bg-sub-carousels {
  display: flex; gap: 12px; padding: 16px 32px;
  max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box;
  flex-shrink: 0;
}
.bg-sub-carousel {
  flex: 1; border: 1px solid #e6e8ec; border-radius: 4px;
  overflow: hidden; display: flex; flex-direction: column;
}
.bg-sub-carousel__tabs {
  display: flex; background: #f8f9fa; border-bottom: 1px solid #e0e0e0;
}
.bg-sub-carousel__tab {
  flex: 1; text-align: center; padding: 8px 6px;
  font-size: 0.75rem; font-weight: 600; color: #555;
  cursor: pointer; border: none; background: transparent;
  transition: background 0.12s;
}
.bg-sub-carousel__tab--active {
  background: #fff; color: #004a99;
  border-bottom: 2px solid #004a99;
}
.bg-sub-carousel__body {
  flex: 1; padding: 14px 12px; display: flex;
  flex-direction: column; justify-content: center;
  min-height: 70px;
}
.bg-sub-carousel__item { font-size: 0.75rem; color: #666; }
.bg-sub-carousel__pagination {
  display: flex; justify-content: center; gap: 6px;
  padding: 6px 0;
}
.bg-sub-carousel__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #ccc; border: none; cursor: pointer; padding: 0;
}
.bg-sub-carousel__dot--active { background: #004a99; }

/* ===== FOOTER ===== */

/* ---------------------------------------------------------------------------
   Footer top — banner carousel
--------------------------------------------------------------------------- */
.bg-footer__banners {
  background: #f4f7fb; border-top: 1px solid #e0e0e0;
  padding: 12px 32px; text-align: center; flex-shrink: 0;
}
.bg-footer__banners-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: center; gap: 24px;
}
.bg-footer__banner-link { font-size: 0.8125rem; color: #666; text-decoration: none; }
.bg-footer__banner-link:hover { color: #0054a6; }
.bg-footer__banner-controls {
  display: flex; gap: 8px; align-items: center; margin-left: 16px;
}
.bg-footer__banner-btn {
  background: none; border: 1px solid #ccc; border-radius: 2px;
  padding: 2px 8px; font-size: 0.75rem; cursor: pointer; color: #666;
}

/* ---------------------------------------------------------------------------
   Footer mid — dark gray with 4 dropdowns
--------------------------------------------------------------------------- */
.bg-footer__mid {
  background: #2c3e50; padding: 16px 32px; flex-shrink: 0;
}
.bg-footer__mid-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; gap: 16px; flex-wrap: wrap;
}
.bg-footer__dropdown {
  background: #34495e; color: #ecf0f1; border: none;
  padding: 8px 14px; font-size: 0.8125rem; border-radius: 3px;
  cursor: pointer; min-width: 180px; flex: 1;
  -webkit-appearance: none; -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23ecf0f1'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
}

/* ---------------------------------------------------------------------------
   Footer bottom — darker bg, logo, address, badges
--------------------------------------------------------------------------- */
.bg-footer__bot {
  background: #232a32; color: #aab8c2; padding: 20px 32px 24px; flex-shrink: 0;
}
.bg-footer__bot-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap;
}
.bg-footer__bot-logo {
  display: flex; align-items: center; gap: 6px;
  color: #ecf0f1; font-size: 0.875rem; font-weight: 700; white-space: nowrap;
}
.bg-footer__bot-logo svg { width: 32px; height: 32px; }
.bg-footer__bot-text { flex: 1; font-size: 0.75rem; line-height: 1.7; }
.bg-footer__bot-text p { margin: 0; }
.bg-footer__bot-text a { color: #8ba3b8; text-decoration: none; }
.bg-footer__bot-text a:hover { color: #ecf0f1; }
.bg-footer__bot-legal {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px;
}
.bg-footer__bot-legal a { color: #7f8c9a; text-decoration: none; font-size: 0.6875rem; }
.bg-footer__bot-legal a:hover { color: #ecf0f1; }
.bg-footer__bot-copy {
  width: 100%; margin-top: 6px; padding-top: 6px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 0.6875rem; color: #5d6d7e;
}
.bg-footer__bot-badges {
  display: flex; gap: 8px; align-items: center; flex-shrink: 0;
}
.bg-footer__badge {
  width: 40px; height: 40px; background: #3a4550;
  border-radius: 4px; display: flex; align-items: center;
  justify-content: center; font-size: 1rem; color: #8ba3b8;
}

/* ===== SUB-PAGE LNB LAYOUT ===== */

/* ---------------------------------------------------------------------------
   Layout with LNB (sub pages: cheongwon24, intake)
--------------------------------------------------------------------------- */
.bg-layout--lnb {
  display: flex; gap: 0; max-width: 1200px;
  margin: 0 auto; flex: 1; width: 100%;
}

/* LNB sidebar */
.bg-lnb {
  width: 220px; min-width: 220px;
  border-right: 1px solid #e0e4ec; background: #fff;
}
.bg-lnb__header {
  background: #fff; color: #2c3e50; font-weight: 700;
  font-size: 0.9375rem; padding: 12px 14px;
}
.bg-lnb__list { list-style: none; margin: 0; padding: 0; }
.bg-lnb__item { border-bottom: 1px solid #e8ecf2; }
.bg-lnb__item a {
  display: block; padding: 10px 14px; font-size: 0.8125rem;
  color: #2c3e50; text-decoration: none; position: relative;
}
.bg-lnb__item a:hover { background: #EAF2FB; }
.bg-lnb__item--active > a {
  background: #EAF2FB; color: #466EAA; font-weight: 600;
}
.bg-lnb__item--active > a::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: #466EAA;
}
.bg-lnb__parent {
  font-weight: 600; display: flex; align-items: center; gap: 4px;
}
.bg-lnb__parent::after {
  content: '+'; margin-left: auto; font-size: 0.8125rem; color: #999;
}
.bg-lnb__item--open > a.bg-lnb__parent::after { content: '−'; }
.bg-lnb__sub { list-style: none; margin: 0; padding: 0; }
.bg-lnb__sub li a {
  padding-left: 28px; font-size: 0.75rem; color: #5d6d7e;
}
.bg-lnb__sub li a:hover { background: #EAF2FB; }
.bg-lnb__sub li.bg-lnb__sub--active > a {
  background: #EAF2FB; color: #466EAA; font-weight: 600;
}
.bg-lnb__sub li.bg-lnb__sub--active > a::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: #466EAA;
}
.bg-lnb__ext-link::after {
  content: ' ↗'; font-size: 0.625rem; color: #888;
}
.bg-lnb__item--collapsed > ul { display: none; }
.bg-lnb__item--collapsed > a.bg-lnb__parent::after { content: '+'; }

/* Content area in LNB layout */
.bg-content--sub {
  flex: 1; padding: 16px 24px; min-width: 0;
  box-sizing: border-box;
}

/* Guide text */
.bg-guide-text {
  font-size: 0.875rem; color: #5d6d7e;
  line-height: 1.6; margin: 0 0 12px;
}

/* Navigation targets (for intermediate route pages) */
.bg-nav-targets {
  display: flex; flex-direction: column; gap: 6px;
}
.bg-nav-target {
  display: flex; align-items: center; justify-content: space-between;
  background: #f4f7fb; border: 1px solid #c8d5e6;
  border-radius: 3px; padding: 10px 14px; font-size: 0.875rem;
  color: #1a252f; cursor: pointer; text-align: left;
  transition: background 0.12s, border-color 0.12s;
}
.bg-nav-target:hover { background: #eaf2fb; border-color: #0054a6; }
.bg-nav-target__arrow { color: #7f8c9a; font-size: 0.875rem; }

/* ===== CHEONGWON24 PAGE ===== */

.bg-cheongwon { font-size: 0.875rem; color: #333; }

/* Title row */
.bg-cheongwon__title-row {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; gap: 12px;
}
.bg-cheongwon__title {
  font-size: 1.25rem; font-weight: 700; color: #1a252f; margin: 0;
}
.bg-cheongwon__cardnews-btn {
  background: #00838f; color: #fff; border: none;
  padding: 6px 16px; border-radius: 3px; font-size: 0.8125rem;
  font-weight: 600; cursor: pointer; white-space: nowrap;
}
.bg-cheongwon__cardnews-btn:hover { background: #006973; }

/* Content sections with green bullets */
.bg-cheongwon__section { margin-bottom: 20px; }
.bg-cheongwon__section-title {
  font-size: 1rem; font-weight: 700; color: #1a252f;
  margin: 0 0 8px; display: flex; align-items: center; gap: 8px;
}
.bg-cheongwon__section-title::before {
  content: '●'; color: #008575; font-size: 0.75rem;
}
.bg-cheongwon__text {
  font-size: 0.8125rem; color: #444; line-height: 1.7; margin: 0 0 6px;
}
.bg-cheongwon__note {
  background: #f8f9fa; border: 1px solid #e6e8ec;
  border-radius: 4px; padding: 10px 14px; font-size: 0.8125rem;
  color: #555; line-height: 1.6; margin: 8px 0;
}
.bg-cheongwon__ext-link {
  color: #0054a6; text-decoration: none; font-size: 0.8125rem;
}
.bg-cheongwon__ext-link::after { content: ' ↗'; font-size: 0.625rem; }

/* Process flow */
.bg-cheongwon__process {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; margin: 12px 0; flex-wrap: wrap;
}
.bg-cheongwon__step {
  background: #f4f7fb; border: 1px solid #d5dce8;
  border-radius: 4px; padding: 8px 14px; font-size: 0.8125rem;
  color: #2c3e50; text-align: center; min-width: 80px;
}
.bg-cheongwon__step--highlight { background: #e3f0fe; border-color: #0054a6; font-weight: 600; }
.bg-cheongwon__arrow {
  color: #aaa; font-size: 1rem; padding: 0 2px;
  flex-shrink: 0;
}

/* Comparison table */
.bg-cheongwon__table-wrap {
  overflow-x: auto; margin: 12px 0;
}
.bg-cheongwon__table {
  width: 100%; border-collapse: collapse; font-size: 0.8125rem;
}
.bg-cheongwon__table th {
  background: #f0f2f5; border: 1px solid #ddd; padding: 8px 10px;
  text-align: center; font-weight: 600; color: #333;
}
.bg-cheongwon__table td {
  border: 1px solid #ddd; padding: 8px 10px; text-align: center; color: #444;
}
.bg-cheongwon__table tr:nth-child(even) td { background: #fafbfc; }
.bg-cheongwon__table tr:nth-child(odd) td { background: #fff; }
.bg-cheongwon__table td:first-child { font-weight: 600; color: #333; text-align: left; }

/* Exclusion list */
.bg-cheongwon__exclude {
  margin: 12px 0; padding-left: 20px;
}
.bg-cheongwon__exclude li {
  font-size: 0.8125rem; color: #444; line-height: 1.7; margin-bottom: 4px;
}

/* Satisfaction survey */
.bg-satisfaction {
  background: #f8f9fa; border: 1px solid #e6e8ec;
  border-radius: 4px; padding: 16px; margin: 16px 0;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.bg-satisfaction__label { font-size: 0.8125rem; font-weight: 600; color: #333; }
.bg-satisfaction__stars { display: flex; gap: 4px; }
.bg-satisfaction__star {
  width: 22px; height: 22px; border: 1px solid #ccc;
  border-radius: 50%; background: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem; color: #999; transition: background 0.12s;
}
.bg-satisfaction__star:hover { background: #e3f0fe; border-color: #0054a6; }
.bg-satisfaction__btn {
  background: #2c3e50; color: #fff; border: none;
  padding: 6px 16px; border-radius: 3px; font-size: 0.8125rem;
  cursor: pointer;
}
.bg-satisfaction__btn:hover { background: #1a252f; }
.bg-content-info {
  font-size: 0.75rem; color: #888; margin: 8px 0;
  line-height: 1.5;
}

/* ===== INTAKE PAGE (민원서식) ===== */

/* Table filter with 2 dropdowns */
.bg-table-filter {
  display: flex; gap: 6px; margin-bottom: 12px;
  align-items: center; flex-wrap: wrap;
}
.bg-filter-select {
  border: 1px solid #c8d5e6; border-radius: 3px;
  padding: 6px 8px; font-size: 0.8125rem; background: #fff;
  min-width: 100px;
}
.bg-filter-input {
  flex: 1; max-width: 280px; border: 1px solid #c8d5e6;
  border-radius: 3px; padding: 6px 10px; font-size: 0.8125rem;
}
.bg-filter-btn {
  background: #2c5697; color: #fff; border: none;
  border-radius: 3px; padding: 6px 14px; font-size: 0.8125rem;
  cursor: pointer; display: flex; align-items: center; gap: 4px;
}
.bg-filter-btn:hover { background: #1f4580; }

/* Form table */
.bg-form-table {
  width: 100%; border-collapse: collapse; margin-bottom: 12px;
  font-size: 0.8125rem;
}
.bg-form-table thead th {
  background: #f0f2f5; border: 1px solid #ddd;
  padding: 8px 10px; text-align: center; font-weight: 600; color: #333;
}
.bg-form-table tbody td {
  border: 1px solid #e0e0e0; padding: 8px 10px; color: #333;
}
.bg-form-table tbody tr:nth-child(even) td { background: #fafbfc; }
.bg-form-table tbody tr:nth-child(odd) td { background: #fff; }
.bg-form-table tbody td:first-child { text-align: center; color: #888; width: 50px; }
.bg-form-table tbody td:nth-child(2) { text-align: left; }
.bg-form-table tbody td:nth-child(3) { text-align: center; color: #555; width: 100px; }
.bg-form-table tbody td:nth-child(4) { text-align: center; width: 70px; }
.bg-form-table tbody td a { color: #333; text-decoration: none; }
.bg-form-table tbody td a:hover { color: #0054a6; text-decoration: underline; }
.bg-file-link {
  display: inline-block; background: #e8ecf2;
  padding: 2px 8px; border-radius: 2px; font-size: 0.6875rem;
  font-weight: 600; color: #555 !important; text-decoration: none !important;
}

/* Pagination */
.bg-pagination {
  display: flex; gap: 4px; justify-content: center;
  align-items: center; margin-bottom: 16px;
}
.bg-page-arrow {
  color: #888; text-decoration: none; padding: 4px 8px;
  font-size: 0.8125rem; cursor: pointer;
}
.bg-page-arrow:hover { color: #2c5697; }
.bg-page-current {
  background: #2c5697; color: #fff; padding: 4px 10px;
  border-radius: 2px; font-size: 0.8125rem; font-weight: 600;
}
.bg-page-link {
  color: #555; text-decoration: none; padding: 4px 8px;
  font-size: 0.8125rem;
}
.bg-page-link:hover { color: #2c5697; }

/* ===== REVIEW / SUBMIT / HANDOFF (kept from existing) ===== */

.bg-review-summary { margin-bottom: 16px; }
.bg-review-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.bg-review-table th {
  background: #f4f7fb; border: 1px solid #d0d8e4;
  padding: 10px 14px; text-align: left; font-weight: 600;
  color: #2c3e50; width: 120px;
}
.bg-review-table td {
  border: 1px solid #e0e4ec; padding: 10px 14px; color: #2c3e50;
}

.bg-submit-area {
  text-align: center; padding: 20px; margin-bottom: 16px;
  border: 2px dashed #e0e4ec; border-radius: 4px; background: #fafbfc;
}
.bg-submit-btn {
  background: #95a5a6; color: #fff; border: none;
  border-radius: 4px; padding: 12px 32px; font-size: 1rem;
  font-weight: 600; cursor: not-allowed; opacity: 0.6;
}
.bg-submit-btn:disabled { cursor: not-allowed; }
.bg-submit-note { margin: 8px 0 0; font-size: 0.75rem; color: #7f8c9a; }

.bg-handoff-box {
  background: #fdf2f2; border: 1px solid #e8a8a8;
  border-radius: 4px; padding: 20px 24px; margin-bottom: 12px;
}
.bg-handoff-box__title {
  font-size: 1rem; font-weight: 700; color: #922b21; margin-bottom: 8px;
}
.bg-handoff-box__body {
  font-size: 0.875rem; color: #5d2c29; line-height: 1.6;
}
.bg-handoff-notice {
  background: #f4f7fb; border: 1px solid #c8d5e6;
  border-radius: 4px; padding: 12px 16px; font-size: 0.8125rem;
  color: #5d6d7e; cursor: pointer;
}
.bg-handoff-notice:hover { background: #eaf2fb; }

/* ===== SAFETY STOP OVERLAY (kept from existing) ===== */
.safety-stop-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999;
}
.safety-stop-box {
  background: #fff; border: 2px solid #e74c3c;
  border-radius: 8px; padding: 28px 32px; max-width: 420px;
  width: 90%; text-align: center;
  box-shadow: 0 12px 48px rgba(0,0,0,0.3);
}
.safety-stop-box__title {
  font-size: 1.125rem; font-weight: 700; color: #c0392b; margin-bottom: 14px;
}
.safety-stop-box__body {
  font-size: 0.875rem; color: #2c3e50; line-height: 1.7; margin-bottom: 18px;
}
.safety-stop-box__btn {
  background: #c0392b; color: #fff; border: none;
  border-radius: 4px; padding: 10px 28px; font-size: 0.9375rem;
  font-weight: 600; cursor: pointer; transition: background 0.12s;
}
.safety-stop-box__btn:hover { background: #a93226; }

/* ===== DEMO OVERLAY PANEL ===== */

.bg-demo-overlay {
  position: fixed; bottom: 24px; left: 24px;
  z-index: 5000; max-width: 340px; width: calc(100% - 48px);
  background: #fff; border: 2px dashed #008575;
  border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.15);
  overflow: hidden;
}
.bg-demo-overlay__header {
  background: #008575; color: #fff; padding: 10px 14px;
  display: flex; align-items: center; gap: 8px;
  font-size: 0.8125rem; font-weight: 700;
}
.bg-demo-overlay__header-icon { font-size: 1rem; }
.bg-demo-overlay__body { padding: 12px 14px; }
.bg-demo-overlay__guidance {
  font-size: 0.8125rem; color: #333; line-height: 1.5;
  margin-bottom: 10px; padding: 8px 10px;
  background: #f0faf7; border-radius: 4px;
  border-left: 3px solid #008575;
}
.bg-demo-overlay__cards {
  display: flex; flex-direction: column; gap: 4px;
}
.bg-demo-overlay__card {
  display: flex; align-items: center; gap: 8px;
  background: #f4f7fb; border: 1px solid #d5dce8;
  border-radius: 4px; padding: 8px 12px; font-size: 0.8125rem;
  color: #2c3e50; cursor: pointer; text-align: left;
  transition: background 0.12s, border-color 0.12s;
  width: 100; box-sizing: border-box;
}
.bg-demo-overlay__card:hover {
  background: #eaf2fb; border-color: #0054a6;
}
.bg-demo-overlay__card-icon { font-size: 1rem; flex-shrink: 0; }
.bg-demo-overlay__card-label { flex: 1; }
.bg-demo-overlay__card-arrow { color: #999; font-size: 0.75rem; }
.bg-demo-overlay__progress {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 14px; background: #f8f9fa;
  border-top: 1px solid #e0e0e0; font-size: 0.6875rem;
}
.bg-demo-overlay__progress-step {
  color: #aaa; display: flex; align-items: center; gap: 3px;
}
.bg-demo-overlay__progress-step--done { color: #008575; }
.bg-demo-overlay__progress-step--active { color: #0054a6; font-weight: 600; }
.bg-demo-overlay__progress-sep { color: #ddd; }

/* ===== SUB FOOTER (kept from existing) ===== */
.bg-footer--sub {
  background: #2c3e50; color: #aab8c2; padding: 16px 24px;
  font-size: 0.75rem; margin-top: auto;
}
.bg-footer--sub a { color: #8ba3b8; text-decoration: none; }
.bg-footer--sub a:hover { color: #ecf0f1; }
.bg-footer--sub p { margin: 0; line-height: 1.6; }

/* ===== UTILITY ===== */
.bg-utility-sep { color: #ddd; }

/* ===== BUK-GU CROP IMAGE STYLING ===== */
.bg-hero__left--crop,
.bg-hero__right--crop {
  padding: 0 !important;
  overflow: hidden;
  display: flex !important;
  align-items: stretch !important;
  justify-content: stretch !important;
}

.bg-hero__crop-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bg-quick-item--crop {
  padding: 12px 6px !important;
  gap: 8px !important;
}

.bg-quick-item__img {
  width: 54px;
  height: 54px;
  object-fit: contain;
  display: block;
}

.bg-sub-carousel__body--crop {
  padding: 0 !important;
  overflow: hidden;
  height: 250px;
}

.bg-carousel-crop-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bg-footer__badge-img {
  height: 38px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* ===== BUK-GU HOME SPECIFIC GEOMETRY OVERRIDES ===== */
.bg-page--home {
  background: #fff;
}

/* 1. Utility Bar Row Height & Layout */
.bg-page--home .bg-util-bar {
  height: 38px;
  padding: 0 40px;
  background: #f8f9fa;
  border-bottom: 1px solid #e9eef2;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bg-page--home .bg-util-bar .bg-hlink {
  font-size: 11px;
  color: #666;
  font-weight: 500;
  text-decoration: none;
}
.bg-page--home .bg-util-bar .bg-utility-sep {
  color: #ddd;
  margin: 0 8px;
  font-size: 10px;
}

/* 2. Header and Logo scale */
.bg-page--home .bg-header {
  border-bottom: 1px solid #eee;
}
.bg-page--home .bg-header__inner {
  height: 80px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
}
.bg-page--home .bg-logo img {
  height: 48px; /* High fidelity exact scale */
  width: auto;
}

/* 3. GNB Layout & Typo */
.bg-page--home .bg-gnb {
  background: linear-gradient(90deg, #32966E 0%, #466EAA 100%);
  border-bottom: 3px solid transparent;
  border-image: linear-gradient(90deg, #32966E 0%, #466EAA 100%) 1;
}
.bg-page--home .bg-gnb__inner {
  height: 52px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
}
.bg-page--home .bg-gnb__link {
  font-size: 16px;
  font-weight: 700; /* Typo weight */
  color: #fff;
  padding: 14px 22px; /* Spacing */
  font-family: 'Noto Sans KR', sans-serif;
  letter-spacing: -0.3px;
}
.bg-page--home .bg-gnb__link:hover,
.bg-page--home .bg-gnb__link--active {
  color: rgba(255,255,255,0.85);
}
.bg-page--home .bg-gnb__tools {
  gap: 12px;
}
.bg-page--home .bg-gnb__icon-btn {
  font-size: 18px;
  color: #fff;
}

/* 4. Search placement & whitespace */
.bg-page--home .bg-search-hero {
  background: #f4f7fb;
  padding: 36px 0;
  margin-bottom: 0;
}
.bg-page--home .bg-search-hero__form {
  max-width: 580px;
  height: 50px;
  border: 2px solid #004a99;
  border-radius: 25px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.bg-page--home .bg-search-hero__input {
  font-size: 15px;
  padding-left: 24px;
}
.bg-page--home .bg-search-hero__btn {
  width: 42px;
  height: 42px;
  background: #004a99;
  font-size: 16px;
}

/* 5. Hero split proportion & whitespace */
.bg-page--home .bg-hero {
  max-width: 1200px;
  padding: 24px 40px;
  gap: 20px;
}
.bg-page--home .bg-hero__left {
  flex: 1.1; /* slightly wider proportion for mayor banner */
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.bg-page--home .bg-hero__right {
  flex: 0.9;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* #868 current Buk-gu home top viewport */
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) {
  --bg-home-width: 914px;
  background: #fff;
  color: #171717;
  min-width: 0;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gov-strip {
  height: 31px;
  background: #f5f5f5;
  border-bottom: 1px solid #e3e3e3;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gov-strip__inner,
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__inner,
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__inner,
.bg-page--home .bg-home-search__inner,
.bg-page--home .bg-home-main {
  width: min(var(--bg-home-width), calc(100% - 32px));
  margin: 0 auto;
  box-sizing: border-box;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gov-strip__inner {
  height: 100%;
  display: flex;
  align-items: center;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gov-strip__notice {
  width: 200px;
  height: 20px;
  display: block;
  object-fit: contain;
  object-position: left center;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility {
  height: 24px;
  border-bottom: 1px solid #ececec;
  background: #fff;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
  font-size: 11px;
  color: #5f5f5f;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__weather {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__weather strong {
  color: #152c64;
  font-size: 14px;
  font-weight: 700;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__weather b {
  display: inline-block;
  margin-left: 2px;
  padding: 1px 6px;
  border-radius: 9px;
  color: #fff;
  background: #4296dc;
  font-size: 9px;
  font-weight: 600;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__menus {
  display: flex;
  height: 100%;
  border-left: 1px solid #ededed;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__menus a {
  min-width: 84px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #555;
  text-decoration: none;
  border-right: 1px solid #ededed;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-utility__menus span { margin-left: 3px; font-size: 9px; }

:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header {
  height: 68px;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #e7e7e7;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__inner {
  height: 100%;
  display: grid;
  grid-template-columns: 188px minmax(0, 1fr) 108px;
  align-items: center;
  gap: 18px;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__identity { display: block; line-height: 0; }
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__identity img {
  display: block;
  width: 170px;
  height: 42px;
  object-fit: contain;
  object-position: left center;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gnb {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-width: 0;
  background: transparent;
  border: 0;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gnb__link {
  color: #101010;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.75px;
  text-decoration: none;
  white-space: nowrap;
  font-family: 'Noto Sans KR', sans-serif;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-gnb__link--active { color: #101010; }
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__actions {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__icon {
  width: 38px;
  border: 0;
  padding: 0;
  background: transparent;
  color: #008b68;
  display: grid;
  justify-items: center;
  gap: 1px;
  font-size: 8px;
  cursor: default;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__icon svg { width: 20px; height: 20px; }

.bg-page--home .bg-home-search {
  min-height: 135px;
  background: linear-gradient(90deg, #fff 0%, #fbfdfd 72%, #eff8f6 100%);
}
.bg-page--home .bg-home-search__inner {
  min-height: 135px;
  display: grid;
  grid-template-columns: 345px minmax(0, 1fr);
  align-items: center;
  gap: 52px;
}
.bg-page--home .bg-home-search__brand {
  display: block;
  width: 285px;
  height: 55px;
  object-fit: contain;
  object-position: left center;
}
.bg-page--home .bg-home-search__cluster { padding-top: 6px; }
.bg-page--home .bg-home-search__field {
  height: 42px;
  display: flex;
  overflow: visible;
  border: 2px solid #193b85;
  border-radius: 23px;
  background: #fff;
}
.bg-page--home .bg-home-search__field input {
  min-width: 0;
  flex: 1;
  border: 0;
  padding: 0 18px;
  color: #333;
  background: transparent;
  font-size: 11px;
  outline: none;
}
.bg-page--home .bg-home-search__field input::placeholder { color: #9c9c9c; }
.bg-page--home .bg-home-search__field button {
  width: 44px;
  height: 44px;
  margin: -3px -3px -3px 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: #117f91;
  display: grid;
  place-items: center;
}
.bg-page--home .bg-home-search__field button svg { width: 24px; height: 24px; }
.bg-page--home .bg-home-search__tags {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
  color: #5b5b5b;
  font-size: 10px;
}

.bg-page--home .bg-home-main { padding: 0; }
.bg-page--home .bg-home-lead {
  display: grid;
  grid-template-columns: 345px 561px;
  gap: 8px;
  margin-top: 0;
}
.bg-page--home .bg-home-lead__mayor,
.bg-page--home .bg-home-lead__banner {
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 7px 17px rgba(20, 39, 75, 0.14);
  line-height: 0;
  background: #fff;
}
.bg-page--home .bg-home-lead__mayor { height: 297px; }
.bg-page--home .bg-home-lead__banner { height: 297px; }
.bg-page--home .bg-home-lead img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bg-page--home .bg-home-quick {
  height: 110px;
  box-sizing: border-box;
  margin-top: 30px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 8px;
  border: 1px solid #e4e6e8;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.95);
}
.bg-page--home .bg-home-quick__arrow {
  width: 34px;
  height: 34px;
  padding: 7px;
  border: 1px solid #e0e3e4;
  border-radius: 50%;
  color: #69747e;
  background: #fff;
}
.bg-page--home .bg-home-quick__arrow svg { width: 100%; height: 100%; }
.bg-page--home .bg-home-quick__items {
  height: 76px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  align-items: center;
}
.bg-page--home .bg-home-quick-link {
  min-width: 0;
  height: 70px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-right: 1px solid #edf0f2;
  color: #383838;
  text-align: center;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: -0.5px;
}
.bg-page--home .bg-home-quick-link:last-child { border-right: 0; }
.bg-page--home .bg-home-quick-link__icon { width: 41px; height: 41px; object-fit: contain; }
.bg-page--home .bg-home-quick-link__label { white-space: nowrap; }

.bg-page--home .bg-home-notice-sites {
  display: grid;
  grid-template-columns: 548px 358px;
  gap: 8px;
  margin-top: 20px;
  padding-bottom: 30px;
}
.bg-page--home .bg-home-notice,
.bg-page--home .bg-home-sites {
  min-height: 183px;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid #e3e5e7;
  border-radius: 6px;
  background: #fff;
}
.bg-page--home .bg-home-notice__tabs {
  height: 39px;
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #e9e9e9;
}
.bg-page--home .bg-home-notice__tabs button {
  position: relative;
  border: 0;
  padding: 0 14px;
  color: #333;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
}
.bg-page--home .bg-home-notice__tabs button[aria-selected="true"] { color: #009e6d; }
.bg-page--home .bg-home-notice__tabs button[aria-selected="true"]::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  content: "";
  background: #009e6d;
}
.bg-page--home .bg-home-notice__tabs .bg-home-notice__more {
  width: 28px;
  height: 28px;
  margin: 5px 8px 0 auto;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  background: #009e6d;
  font-size: 18px;
  line-height: 1;
}
.bg-page--home .bg-home-notice__list { margin: 0; padding: 4px 16px; list-style: none; }
.bg-page--home .bg-home-notice__list li {
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: center;
  min-height: 31px;
  border-bottom: 1px solid #f1f1f1;
  color: #6a6a6a;
  font-size: 10px;
}
.bg-page--home .bg-home-notice__list b { color: #1e1e1e; font-size: 14px; }
.bg-page--home .bg-home-notice__list span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bg-page--home .bg-home-sites__head {
  height: 39px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
}
.bg-page--home .bg-home-sites__head h2 { margin: 0; font-size: 14px; }
.bg-page--home .bg-home-sites__head span { color: #333; font-size: 11px; }
.bg-page--home .bg-home-sites__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 67px;
  padding: 6px 10px;
}
.bg-page--home .bg-home-sites__grid a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #4d4d4d;
  text-align: center;
  text-decoration: none;
  font-size: 10px;
  line-height: 1.15;
}
.bg-page--home .bg-home-sites__glyph {
  width: 21px;
  height: 21px;
  display: block;
  position: relative;
  box-sizing: border-box;
  border: 2px solid #888;
  border-radius: 3px;
}
.bg-page--home .bg-home-sites__glyph--chart { border-radius: 0; border-top: 0; }
.bg-page--home .bg-home-sites__glyph--chart::before,
.bg-page--home .bg-home-sites__glyph--chart::after {
  position: absolute;
  bottom: 0;
  width: 3px;
  content: "";
  background: #d47272;
}
.bg-page--home .bg-home-sites__glyph--chart::before { left: 3px; height: 8px; }
.bg-page--home .bg-home-sites__glyph--chart::after { right: 3px; height: 14px; }
.bg-page--home .bg-home-sites__glyph--school { border-top: 0; border-radius: 0; }
.bg-page--home .bg-home-sites__glyph--school::before { position: absolute; top: -6px; left: 2px; width: 13px; height: 13px; content: ""; border-top: 2px solid #888; border-left: 2px solid #888; transform: rotate(45deg); }
.bg-page--home .bg-home-sites__glyph--sun { border-radius: 50%; border-color: #d47272; }
.bg-page--home .bg-home-sites__glyph--culture { border-radius: 50% 50% 50% 0; border-color: #d47272; }
.bg-page--home .bg-home-sites__glyph--park { border-radius: 50%; border-color: #708a79; }
.bg-page--home .bg-home-sites__glyph--sport { border-radius: 50%; border-color: #d47272; }
.bg-page--home .bg-home-local-note {
  width: min(var(--bg-home-width), calc(100% - 32px));
  margin: 0 auto 10px;
  color: #777;
  text-align: right;
  font-size: 9px;
}
@media (max-width: 940px) {
  .bg-page--home .bg-home-header__inner,
  .bg-page--home .bg-home-search__inner,
  .bg-page--home .bg-home-lead,
  .bg-page--home .bg-home-notice-sites { min-width: var(--bg-home-width); }
  .bg-page--home { overflow-x: auto; }
}



/* #868 R-HOME-02 upper-band numeric alignment */
.bg-page--home .bg-home-gov-strip__inner,
.bg-page--home .bg-home-header__inner,
.bg-page--home .bg-home-search__inner {
  padding-left: 10px;
}

.bg-page--home .bg-home-gov-strip__notice {
  transform: none;
}

.bg-page--home .bg-home-header__identity img,
.bg-page--home .bg-home-search__brand {
  transform: translateY(2px);
}

/* #868 current Buk-gu home top compatibility */
.bg-page--home > .bg-header {
  background: #fff;
  border: 0;
}

/*
 * #1122 — neutralize legacy full-width .bg-gnb gradient/border-image when the
 * home-style header embeds <nav class="bg-gnb"> under .bg-home-header__inner.
 * Must come AFTER base .bg-gnb and .bg-page--home .bg-gnb so cascade wins
 * without !important. Direct-child (>) alone never matches this markup.
 */
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header .bg-gnb,
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header nav.bg-gnb,
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-header__inner > .bg-gnb {
  min-width: 0;
  background: transparent;
  background-color: transparent;
  background-image: none;
  border: 0;
  border-bottom: 0;
  border-image: none;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  flex-shrink: 1;
  height: auto;
  padding: 0;
}

/* #868 current Buk-gu home lower */
.bg-page--home .bg-home-lower {
  margin-top: 50px;
  padding-bottom: 28px;
}
.bg-page--home .bg-home-lower-cards {
  display: grid;
  grid-template-columns: 168px 238px 168px minmax(0, 1fr);
  gap: 13px;
}
.bg-page--home .bg-home-lower-card { min-width: 0; }
.bg-page--home .bg-home-lower-card__head {
  height: 32px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  color: #121212;
}
.bg-page--home .bg-home-lower-card__head h2 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -1px;
  white-space: nowrap;
}
.bg-page--home .bg-home-lower-card__head span {
  color: #1f2a32;
  font-size: 11px;
  letter-spacing: -0.25px;
  white-space: nowrap;
}
.bg-page--home .bg-home-lower-card__head b { color: #009d68; }
.bg-page--home .bg-home-lower-card img {
  display: block;
  width: 100%;
  height: 168px;
  border-radius: 6px;
  object-fit: cover;
  background: #f4f4f4;
}

.bg-page--home .bg-home-field-info {
  position: relative;
  margin-top: 71px;
  padding: 0 0 38px;
}
.bg-page--home .bg-home-field-info::before {
  position: absolute;
  inset: 29px -118px 0 345px;
  z-index: 0;
  content: "";
  pointer-events: none;
  opacity: 0.38;
  background:
    linear-gradient(118deg, transparent 0 15%, rgba(198, 213, 216, 0.40) 15.4% 15.8%, transparent 16.2% 100%),
    repeating-linear-gradient(90deg, transparent 0 35px, rgba(199, 214, 218, 0.28) 36px 38px, transparent 39px 72px),
    repeating-linear-gradient(0deg, transparent 0 26px, rgba(199, 214, 218, 0.23) 27px 29px, transparent 30px 54px);
}
.bg-page--home .bg-home-field-info__head,
.bg-page--home .bg-home-field-info__links { position: relative; z-index: 1; }
.bg-page--home .bg-home-field-info__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
}
.bg-page--home .bg-home-field-info__head h2 {
  margin: 0 0 4px;
  color: #181818;
  font-size: 18px;
  letter-spacing: -1px;
}
.bg-page--home .bg-home-field-info__head p {
  margin: 0;
  color: #747474;
  font-size: 11px;
  letter-spacing: -0.55px;
}
.bg-page--home .bg-home-field-info__tabs {
  display: flex;
  gap: 10px;
}
.bg-page--home .bg-home-field-info__tabs button {
  width: 68px;
  height: 68px;
  border: 0;
  border-radius: 12px;
  color: #666;
  background: rgba(255, 255, 255, 0.75);
  font-size: 11px;
  cursor: default;
}
.bg-page--home .bg-home-field-info__tabs button span {
  display: block;
  margin-bottom: 4px;
  font-size: 18px;
}
.bg-page--home .bg-home-field-info__tabs button[aria-pressed="true"] {
  color: #7d5910;
  background: #ffbf47;
}
.bg-page--home .bg-home-field-info__links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 35px;
}
.bg-page--home .bg-home-field-info__links a {
  min-width: 0;
  height: 38px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 13px;
  overflow: hidden;
  border: 1px solid #e2e5e6;
  border-radius: 7px;
  color: #646464;
  background: rgba(255, 255, 255, 0.93);
  text-decoration: none;
  font-size: 11px;
  letter-spacing: -0.55px;
  white-space: nowrap;
}
.bg-page--home .bg-home-field-info__links a span { color: #3c3c3c; font-size: 18px; }

.bg-page--home .bg-home-partners {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 84px;
  border-top: 1px solid #eceff0;
}
.bg-page--home .bg-home-partners__head {
  min-width: 135px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.bg-page--home .bg-home-partners__head h2 {
  margin: 0;
  color: #232323;
  font-size: 13px;
  letter-spacing: -0.7px;
}
.bg-page--home .bg-home-partners__head span { color: #263039; font-size: 12px; white-space: nowrap; }
.bg-page--home .bg-home-partners__items {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.bg-page--home .bg-home-partners__items a {
  color: #6d7376;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
.bg-page--home .bg-home-partners__items .bg-home-partners__smart { color: #438fb2; font-size: 17px; }
.bg-page--home .bg-home-partners__items .bg-home-partners__pis { color: #345b91; font-size: 20px; }
.bg-page--home .bg-home-partners__pis small { color: #777; font-size: 9px; font-weight: 500; }

:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer {
  width: 100%;
  color: #f7f9fb;
  background: #33445c;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__inner {
  width: min(var(--bg-home-width), calc(100% - 32px));
  margin: 0 auto;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__nav {
  min-height: 62px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-right: 1px solid rgba(255, 255, 255, 0.16);
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__nav a {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 19px;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__nav span { color: #bdc8d6; }
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__legal {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 19px 0 26px;
  color: #d6dee6;
  font-size: 10px;
}
:is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__legal strong { color: #fff; font-size: 12px; }

@media (max-width: 940px) {
  .bg-page--home .bg-home-lower-cards,
  .bg-page--home .bg-home-field-info__links,
  .bg-page--home .bg-home-partners,
  :is(.bg-page--home, .bg-page--dept-directory, .bg-page--park-info, .bg-page--kiosk-info, .bg-page--dense, .bg-page--product) .bg-home-footer__inner { min-width: var(--bg-home-width); }
}

/* ---------------------------------------------------------------------------
   J-PARK-01 specific scoped styles
   --------------------------------------------------------------------------- */

.bg-page--park-info .bg-park-main {
  flex: 1;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 30px 20px 60px;
}
.bg-page--park-info .bg-park-breadcrumb {
  font-size: 13px;
  color: #666;
  margin-bottom: 20px;
}
.bg-page--park-info .bg-park-breadcrumb strong {
  color: #222;
  font-weight: 700;
}
.bg-page--park-info .bg-park-layout {
  display: flex;
  gap: 0;
  border: 1px solid #e0e4ec;
}
.bg-page--park-info .bg-park-left {
  width: 220px;
  min-width: 220px;
  background: #fafbfc;
  border-right: 1px solid #e0e4ec;
}
.bg-page--park-info .bg-park-left-section {
  background: #1f4973;
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  padding: 12px 14px;
}
.bg-page--park-info .bg-park-left-group {
  border-bottom: 1px solid #e8ecf2;
}
.bg-page--park-info .bg-park-left-group--open {
  background: #f5f8fc;
}
.bg-page--park-info .bg-park-left-group-header {
  font-weight: 700;
  font-size: 0.875rem;
  color: #1a252f;
  padding: 10px 14px 6px;
  border-bottom: 1px solid #e0e4ec;
}
.bg-page--park-info .bg-park-lnb-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bg-page--park-info .bg-park-lnb-list li .bg-park-lnb-link {
  display: block;
  padding: 8px 14px;
  font-size: 0.8125rem;
  color: #444;
}
.bg-page--park-info .bg-park-lnb-item--active > .bg-park-lnb-link {
  background: #e3f0fe;
  color: #0054a6;
  font-weight: 600;
  position: relative;
}
.bg-page--park-info .bg-park-lnb-item--active > .bg-park-lnb-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #0054a6;
}
.bg-page--park-info .bg-park-content {
  flex: 1;
  padding: 24px 28px;
  min-width: 0;
}
.bg-page--park-info .bg-park-content-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 24px;
  border-bottom: 2px solid #222;
  padding-bottom: 14px;
}
.bg-page--park-info .bg-park-facts {
  margin-bottom: 28px;
}
.bg-page--park-info .bg-park-facts-heading {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1a252f;
  margin: 0 0 12px;
}
.bg-page--park-info .bg-park-facts-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #0054a6;
  font-size: 0.875rem;
}
.bg-page--park-info .bg-park-facts-table th,
.bg-page--park-info .bg-park-facts-table td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid #e9ecef;
}
.bg-page--park-info .bg-park-facts-table th {
  background: #f8f9fa;
  font-weight: 700;
  color: #333;
  width: 200px;
}
.bg-page--park-info .bg-park-facts-table td {
  color: #444;
}
.bg-page--park-info .bg-park-facts-list {
  border-top: 2px solid #0054a6;
  font-size: 0.875rem;
}
.bg-page--park-info .bg-park-facts-row {
  padding: 12px 14px;
  border-bottom: 1px solid #e9ecef;
  color: #444;
}
.bg-page--park-info .bg-home-utility__menu-label {
  font-size: 0.6875rem;
  color: #5a6a7e;
  padding: 4px 8px;
}
.bg-page--park-info .bg-home-footer__nav-item {
  display: inline-block;
  color: #bdc8d6;
  font-size: 0.6875rem;
  padding: 4px 8px;
}

/* ---------------------------------------------------------------------------
   J-KIOSK-01 specific scoped styles
   --------------------------------------------------------------------------- */

.bg-page--kiosk-info .bg-kiosk-main {
  flex: 1;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 30px 20px 60px;
}
.bg-page--kiosk-info .bg-kiosk-breadcrumb {
  font-size: 13px;
  color: #666;
  margin-bottom: 20px;
}
.bg-page--kiosk-info .bg-kiosk-breadcrumb strong {
  color: #222;
  font-weight: 700;
}
.bg-page--kiosk-info .bg-kiosk-layout {
  display: flex;
  gap: 0;
  border: 1px solid #e0e4ec;
}
.bg-page--kiosk-info .bg-kiosk-left {
  width: 220px;
  min-width: 220px;
  background: #fafbfc;
  border-right: 1px solid #e0e4ec;
}
.bg-page--kiosk-info .bg-kiosk-left-section {
  background: #1f4973;
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  padding: 12px 14px;
}
.bg-page--kiosk-info .bg-kiosk-left-group {
  border-bottom: 1px solid #e8ecf2;
}
.bg-page--kiosk-info .bg-kiosk-left-group--open {
  background: #f5f8fc;
}
.bg-page--kiosk-info .bg-kiosk-left-group-header {
  font-weight: 700;
  font-size: 0.875rem;
  color: #1a252f;
  padding: 10px 14px 6px;
  border-bottom: 1px solid #e0e4ec;
}
.bg-page--kiosk-info .bg-kiosk-lnb-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bg-page--kiosk-info .bg-kiosk-lnb-list li .bg-kiosk-lnb-link {
  display: block;
  padding: 8px 14px;
  font-size: 0.8125rem;
  color: #444;
}
.bg-page--kiosk-info .bg-kiosk-lnb-item--active > .bg-kiosk-lnb-link {
  background: #e3f0fe;
  color: #0054a6;
  font-weight: 600;
  position: relative;
}
.bg-page--kiosk-info .bg-kiosk-lnb-item--active > .bg-kiosk-lnb-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #0054a6;
}
.bg-page--kiosk-info .bg-kiosk-content {
  flex: 1;
  padding: 24px 28px;
  min-width: 0;
}
.bg-page--kiosk-info .bg-kiosk-content-heading {
  font-size: 1.375rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 16px;
}
.bg-page--kiosk-info .bg-kiosk-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
  border-bottom: 2px solid #ddd;
}
.bg-page--kiosk-info .bg-kiosk-tab {
  display: inline-block;
  padding: 10px 20px;
  font-size: 0.9375rem;
  color: #555;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
}
.bg-page--kiosk-info .bg-kiosk-tab--active {
  color: #0054a6;
  font-weight: 700;
  border-bottom-color: #0054a6;
}
.bg-page--kiosk-info .bg-kiosk-content-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1a252f;
  margin: 0 0 16px;
}
.bg-page--kiosk-info .bg-kiosk-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #0054a6;
  font-size: 0.875rem;
}
.bg-page--kiosk-info .bg-kiosk-table th,
.bg-page--kiosk-info .bg-kiosk-table td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid #e9ecef;
}
.bg-page--kiosk-info .bg-kiosk-table th {
  background: #f8f9fa;
  font-weight: 700;
  color: #333;
}
.bg-page--kiosk-info .bg-kiosk-table td {
  color: #444;
}
.bg-page--kiosk-info .bg-home-utility__menu-label {
  font-size: 0.6875rem;
  color: #5a6a7e;
  padding: 4px 8px;
}
.bg-page--kiosk-info .bg-home-footer__nav-item {
  display: inline-block;
  color: #bdc8d6;
  font-size: 0.6875rem;
  padding: 4px 8px;
}

/* ---------------------------------------------------------------------------
   J-DEPT-01 specific scoped styles
   --------------------------------------------------------------------------- */

/* Auto J-DEPT-01 replay scoped styles — scoped to [data-dept-auto-replay="true"] only */
[data-dept-auto-replay="true"] .bg-dept-action-bubble,
[data-dept-auto-replay="true"] .bg-dept-replay-controls {
  pointer-events: auto;
}
[data-dept-auto-replay="true"] .bg-dept-action-bubble {
  position: absolute;
  bottom: 28px;
  left: 24px;
  background: #0054A6;
  color: #fff;
  padding: 10px 22px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  z-index: 1000;
  white-space: nowrap;
  box-shadow: 0 3px 12px rgba(0,0,0,0.15);
  transition: opacity 0.4s ease;
  opacity: 0;
  pointer-events: none;
}
[data-dept-auto-replay="true"] .bg-dept-action-bubble {
  opacity: 1;
  pointer-events: auto;
}
[data-dept-auto-replay="true"][data-auto-replay-status="paused"] .bg-dept-action-bubble {
  opacity: 0.4;
}

/* Auto cursor — positioned relative to auto-replay root */
[data-dept-auto-replay="true"] {
  position: relative;
}
[data-dept-auto-replay="true"] .bg-auto-cursor {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid #0054A6;
  background: rgba(0, 84, 166, 0.15);
  z-index: 1001;
  pointer-events: none;
  transition: top 0.3s ease, left 0.3s ease;
}
[data-dept-auto-replay="true"] .bg-auto-cursor--gnb { top: 80px; left: 900px; }
[data-dept-auto-replay="true"] .bg-auto-cursor--menu-link { top: 200px; left: 320px; }
[data-dept-auto-replay="true"] .bg-auto-cursor--search { top: 320px; left: 460px; }
[data-dept-auto-replay="true"] .bg-auto-cursor--result-row { top: 380px; left: 200px; }

/* Auto target highlight */
[data-dept-auto-replay="true"] .bg-auto-target-highlight {
  position: absolute;
  border: 2px solid #E60012;
  border-radius: 4px;
  background: rgba(230, 0, 18, 0.08);
  z-index: 999;
  pointer-events: none;
}
[data-dept-auto-replay="true"] .bg-auto-target--gnb-dept { top: 68px; left: 828px; width: 90px; height: 38px; }
[data-dept-auto-replay="true"] .bg-auto-target--directory-link { top: 190px; left: 280px; width: 200px; height: 32px; }
[data-dept-auto-replay="true"] .bg-auto-target--search-input { top: 310px; left: 340px; width: 260px; height: 40px; }
[data-dept-auto-replay="true"] .bg-auto-target--result-row { top: 370px; left: 160px; width: 540px; height: 40px; }

/* Auto click feedback — pulse ring */
[data-dept-auto-replay="true"] .bg-auto-click-feedback {
  position: absolute;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 3px solid #0054A6;
  opacity: 0;
  z-index: 1002;
  pointer-events: none;
  animation: bgAutoClickPulse 0.6s ease-out forwards;
}

@media (prefers-reduced-motion: reduce) {
  [data-dept-auto-replay="true"] .bg-dept-action-bubble {
    transition: none;
  }
  [data-dept-auto-replay="true"] .bg-auto-cursor {
    transition: none;
  }
  [data-dept-auto-replay="true"] .bg-auto-click-feedback {
    animation: none;
    opacity: 0.5;
    transform: scale(1);
  }
}

@keyframes bgAutoClickPulse {
  from { transform: scale(0.5); opacity: 0.8; }
  to { transform: scale(1.6); opacity: 0; }
}

/* Home & sub-route J-DEPT-01 shared public shell styles */
:is(.bg-page--home[data-dept-replay="true"], .bg-page--home[data-dept-auto-replay="true"], .bg-page--dept-replay, [data-dept-auto-replay="true"]) .bg-dept-replay-home-controls {
  max-width: 914px;
  margin: 18px auto 0;
  padding: 0 20px;
}
:is(.bg-page--home[data-dept-replay="true"], .bg-page--home[data-dept-auto-replay="true"], .bg-page--dept-replay, [data-dept-auto-replay="true"]) .bg-dept-replay-controls {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 16px;
}
:is(.bg-page--home[data-dept-replay="true"], .bg-page--home[data-dept-auto-replay="true"], .bg-page--dept-replay, [data-dept-auto-replay="true"]) .bg-dept-replay-controls__button {
  border: 1px solid #0054A6;
  background: #0054A6;
  color: #fff;
  border-radius: 999px;
  min-width: 88px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 700;
}
:is(.bg-page--home[data-dept-replay="true"], .bg-page--home[data-dept-auto-replay="true"], .bg-page--dept-replay, [data-dept-auto-replay="true"]) .bg-dept-replay-controls__button--secondary {
  background: #fff;
  color: #0054A6;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-home-gnb__item--dept {
  position: relative;
  display: inline-block;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  background: #f8f9fa;
  border: 1px solid #ddd;
  border-bottom: 2px solid #0054A6;
  padding: 20px 0;
  width: 320px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  animation: bgSlideDown 0.2s ease-out;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-home-gnb__item--dept:hover .bg-dept-mega-menu,
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-home-gnb__item--dept:focus-within .bg-dept-mega-menu,
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu--visible {
  display: block;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu__col {
  width: 250px;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu__col h3 {
  font-size: 16px;
  color: #222;
  margin-bottom: 12px;
  font-weight: 700;
  border-bottom: 1px solid #ddd;
  padding-bottom: 6px;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu__col a {
  display: block;
  font-size: 14px;
  color: #555;
  text-decoration: none;
  padding: 4px 0;
  transition: color 0.15s ease;
}
:is(.bg-page--home[data-dept-journey="true"], .bg-page--dept-directory) .bg-dept-mega-menu__col a:hover {
  color: #0054A6;
  text-decoration: underline;
}

@keyframes bgSlideDown {
  from { transform: translateY(-10px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Department directory layout */
.bg-page--dept-directory .bg-dept-main {
  flex: 1;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 30px 20px 60px;
}
.bg-page--dept-directory .bg-dept-breadcrumb {
  font-size: 13px;
  color: #666;
  margin-bottom: 20px;
}
.bg-page--dept-directory .bg-dept-breadcrumb span {
  color: #888;
}
.bg-page--dept-directory .bg-dept-breadcrumb strong {
  color: #222;
  font-weight: 700;
}
.bg-page--dept-directory .bg-dept-header h2 {
  font-size: 28px;
  font-weight: 700;
  color: #111;
  margin-bottom: 30px;
  border-bottom: 2px solid #222;
  padding-bottom: 15px;
}
.bg-page--dept-directory .bg-dept-search {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  padding: 24px;
  border-radius: 4px;
  margin-bottom: 30px;
  display: flex;
  justify-content: center;
}
.bg-page--dept-directory .bg-dept-search__box {
  display: flex;
  width: 100%;
  max-width: 600px;
  height: 48px;
}
.bg-page--dept-directory .bg-dept-search__input {
  flex: 1;
  border: 2px solid #0054A6;
  border-radius: 4px 0 0 4px;
  padding: 0 16px;
  font-size: 16px;
  outline: none;
}
.bg-page--dept-directory .bg-dept-search__btn {
  background: #0054A6;
  color: #fff;
  border: none;
  border-radius: 0 4px 4px 0;
  padding: 0 24px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}
.bg-page--dept-directory .bg-dept-search__btn:hover {
  background: #004a99;
}
.bg-page--dept-directory .bg-dept-results__count {
  font-size: 14px;
  color: #555;
  margin-bottom: 12px;
  text-align: right;
}
.bg-page--dept-directory .bg-dept-results__count strong {
  color: #E60012;
  font-weight: 700;
}
.bg-page--dept-directory .bg-dept-results__empty {
  text-align: center;
  padding: 60px 0;
  color: #888;
  font-size: 15px;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.bg-page--dept-directory .bg-dept-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  border-top: 2px solid #0054A6;
}
.bg-page--dept-directory .bg-dept-table th,
.bg-page--dept-directory .bg-dept-table td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid #e9ecef;
}
.bg-page--dept-directory .bg-dept-table th {
  background: #f8f9fa;
  font-size: 14px;
  font-weight: 700;
  color: #333;
}
.bg-page--dept-directory .bg-dept-table td {
  font-size: 14px;
  color: #444;
}
.bg-page--dept-directory .bg-dept-table__row--highlighted {
  background: #fdfefe;
}
.bg-page--dept-directory .bg-dept-table__row--highlighted td {
  font-weight: 700;
  color: #0054A6;
}

/* ═══════════════════════════════════════════════════════
   #965 — Illegal parking report card (visible target)
   ═══════════════════════════════════════════════════════ */
.bg-page--illegal-parking .bg-illegal-parking-card {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin: 16px 0;
  background: #fff;
  border: 2px solid #e5e9ef;
  border-radius: 10px;
  cursor: default;
  align-items: flex-start;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.bg-page--illegal-parking .bg-illegal-parking-card:focus {
  outline: none;
  border-color: #3182ce;
  box-shadow: 0 0 0 3px rgba(49, 130, 206, 0.15);
}
.bg-page--illegal-parking .bg-illegal-parking-card__icon {
  font-size: 2.5rem;
  flex-shrink: 0;
  margin-top: 2px;
}
.bg-page--illegal-parking .bg-illegal-parking-card__body {
  flex: 1;
  min-width: 0;
}
.bg-page--illegal-parking .bg-illegal-parking-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #2c3e50;
  margin: 0 0 6px 0;
}
.bg-page--illegal-parking .bg-illegal-parking-card__desc {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.5;
  margin: 0 0 10px 0;
}
.bg-page--illegal-parking .bg-illegal-parking-card__meta {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bg-page--illegal-parking .bg-illegal-parking-card__meta li {
  font-size: 0.8125rem;
  color: #666;
  margin-bottom: 3px;
}
.bg-page--illegal-parking .bg-illegal-parking-card__meta-label {
  font-weight: 600;
  color: #4a5568;
  display: inline-block;
  min-width: 80px;
}
.bg-page--illegal-parking .bg-illegal-parking-card__arrow {
  flex-shrink: 0;
  font-size: 1.5rem;
  color: #cbd5e0;
  margin-top: 16px;
}
.bg-page--illegal-parking .bg-illegal-parking-note {
  font-size: 0.75rem;
  color: #999;
  margin-top: -8px;
}

/* 업무 및 전화번호 안내 테이블 (Buk-gu real-site style) */
.bg-dept-search-bar {
  background: #f5f7fa;
  border: 1px solid #dce1e8;
  border-radius: 6px;
  padding: 12px;
  margin-bottom: 16px;
}
.bg-dept-search-bar__row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.bg-dept-search-bar__select {
  padding: 7px 10px;
  border: 1px solid #c8d5e6;
  border-radius: 4px;
  background: #fff;
  font-size: 0.82rem;
  color: #333;
  min-width: 110px;
}
.bg-dept-search-bar__input {
  flex: 1;
  min-width: 140px;
  padding: 7px 10px;
  border: 1px solid #c8d5e6;
  border-radius: 4px;
  font-size: 0.82rem;
}
.bg-dept-search-bar__btn {
  padding: 7px 16px;
  background: #2c3e50;
  color: #fff;
  border: 0;
  border-radius: 4px;
  font-size: 0.82rem;
  cursor: pointer;
}
.bg-dept-table-wrap {
  overflow-x: auto;
  border: 1px solid #dce1e8;
  border-radius: 4px;
}
.bg-dept-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.bg-dept-table th {
  background: #f0f3f7;
  border-bottom: 2px solid #c8d5e6;
  padding: 9px 10px;
  text-align: center;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
}
.bg-dept-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #e6eaef;
  text-align: center;
  color: #444;
}
.bg-dept-table__row--highlight {
  background: #fff8e6;
}
.bg-dept-table__row--highlight td {
  color: #1a1a1a;
  font-weight: 600;
}
.bg-dept-table-info {
  margin-top: 8px;
  font-size: 0.8rem;
  color: #888;
  text-align: right;
}

/* Canonical 공동주택과 organization/work page snapshot. */
.bg-page--dept-replay .bg-official-dept-replay-controls {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 18px;
}
.bg-page--dept-replay .bg-official-dept-replay-controls .bg-dept-replay-controls {
  margin: 0;
}
.bg-official-dept-main {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 28px 0 56px;
  color: #222;
}
.bg-official-dept-heading {
  position: relative;
  padding-bottom: 22px;
  border-bottom: 1px solid #d9d9d9;
}
.bg-official-dept-heading h1 {
  margin: 0 0 17px;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.045em;
}
.bg-official-dept-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #666;
  font-size: 13px;
}
.bg-official-dept-breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.bg-official-dept-breadcrumb li[aria-current="page"] {
  color: #167047;
  font-weight: 700;
}
.bg-official-dept-breadcrumb b {
  color: #aaa;
  font-weight: 400;
}
.bg-official-dept-tools {
  position: absolute;
  right: 0;
  bottom: 18px;
  display: flex;
  gap: 5px;
}
.bg-official-dept-tools__item {
  display: inline-flex;
  min-width: 33px;
  min-height: 33px;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid #d7d7d7;
  border-radius: 50px;
  background: #fff;
  color: #555;
  font-size: 11px;
}
.bg-official-dept-tabs {
  margin: 24px 0 30px;
}
.bg-official-dept-tabs ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #d7d7d7;
}
.bg-official-dept-tabs__item {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #555;
  background: #fff;
  border-right: 1px solid #d7d7d7;
  font-size: 14px;
}
.bg-official-dept-tabs__item:last-child { border-right: 0; }
.bg-official-dept-tabs__item--active {
  color: #fff;
  background: #167047;
  font-weight: 700;
}
.bg-official-dept-content__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 13px;
}
.bg-official-dept-content__top h2 {
  margin: 0;
  font-size: 23px;
  line-height: 1.25;
  letter-spacing: -0.035em;
}
.bg-official-dept-content__top p {
  margin: 0;
  color: #555;
  font-size: 14px;
}
.bg-official-dept-content__top strong { color: #d33434; }
.bg-official-dept-table-wrap {
  overflow-x: auto;
  border-top: 2px solid #333;
}
.bg-official-dept-table {
  width: 100%;
  min-width: 930px;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 13px;
}
.bg-official-dept-table th {
  padding: 13px 10px;
  border-right: 1px solid #dedede;
  border-bottom: 1px solid #bdbdbd;
  background: #f4f5f5;
  color: #222;
  text-align: center;
  font-weight: 700;
}
.bg-official-dept-table td {
  padding: 12px 10px;
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
  color: #333;
  text-align: center;
  vertical-align: middle;
  line-height: 1.55;
}
.bg-official-dept-table th:last-child,
.bg-official-dept-table td:last-child { border-right: 0; }
.bg-official-dept-table th:nth-child(1),
.bg-official-dept-table td:nth-child(1) { width: 20%; }
.bg-official-dept-table th:nth-child(2),
.bg-official-dept-table td:nth-child(2) { width: 15%; }
.bg-official-dept-table th:nth-child(3),
.bg-official-dept-table td:nth-child(3) { width: 11%; }
.bg-official-dept-table th:nth-child(4),
.bg-official-dept-table td:nth-child(4) { width: 14%; }
.bg-official-dept-table th:nth-child(5),
.bg-official-dept-table td:nth-child(5) { width: 40%; }
.bg-official-dept-table__duty { text-align: left !important; }
.bg-official-dept-table tr[data-representative-contact="true"] {
  scroll-margin-top: 24px;
}
.bg-official-dept-info {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 28px;
  padding: 17px 19px;
  border: 1px solid #ddd;
  background: #f8f8f8;
  color: #555;
  font-size: 12px;
}
.bg-official-dept-info div,
.bg-official-dept-info p {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 0;
}
.bg-official-dept-info strong { color: #222; }

@media (max-width: 760px) {
  .bg-official-dept-main { width: calc(100% - 24px); padding-top: 20px; }
  .bg-official-dept-heading h1 { font-size: 25px; }
  .bg-official-dept-tools { position: static; margin-top: 15px; }
  .bg-official-dept-tabs { margin: 18px 0 24px; }
  .bg-official-dept-info { flex-direction: column; }
}

/* ═══════════════════════════════════════════════════════
   Sub-page common elements (breadcrumb, title, tabs)
   ═══════════════════════════════════════════════════════ */
/* J-DEPT scope: breadcrumb is used on every route page; scope per route wrapper */
.bg-page--illegal-parking .bg-sub-breadcrumb,
.bg-page--bulky-waste .bg-sub-breadcrumb,
.bg-page--passport-guidance .bg-sub-breadcrumb,
.bg-page--unmanned-kiosk-guidance .bg-sub-breadcrumb,
.bg-page--apartment-info .bg-sub-breadcrumb {
  font-size: 0.8125rem;
  color: #666;
  padding: 8px 0 12px;
  border-bottom: 1px solid #e0e0e0;
  margin-bottom: 12px;
}
.bg-page--illegal-parking .bg-sub-breadcrumb a,
.bg-page--bulky-waste .bg-sub-breadcrumb a,
.bg-page--passport-guidance .bg-sub-breadcrumb a,
.bg-page--unmanned-kiosk-guidance .bg-sub-breadcrumb a,
.bg-page--apartment-info .bg-sub-breadcrumb a {
  color: #0054a6;
  text-decoration: none;
}
.bg-page--illegal-parking .bg-sub-breadcrumb a:hover,
.bg-page--bulky-waste .bg-sub-breadcrumb a:hover,
.bg-page--passport-guidance .bg-sub-breadcrumb a:hover,
.bg-page--unmanned-kiosk-guidance .bg-sub-breadcrumb a:hover,
.bg-page--apartment-info .bg-sub-breadcrumb a:hover {
  text-decoration: underline;
}
.bg-page--illegal-parking .bg-sub-breadcrumb__sep,
.bg-page--bulky-waste .bg-sub-breadcrumb__sep,
.bg-page--passport-guidance .bg-sub-breadcrumb__sep,
.bg-page--unmanned-kiosk-guidance .bg-sub-breadcrumb__sep,
.bg-page--apartment-info .bg-sub-breadcrumb__sep {
  color: #bbb;
  margin: 0 4px;
}
.bg-page--illegal-parking .bg-sub-breadcrumb strong,
.bg-page--bulky-waste .bg-sub-breadcrumb strong,
.bg-page--passport-guidance .bg-sub-breadcrumb strong,
.bg-page--unmanned-kiosk-guidance .bg-sub-breadcrumb strong,
.bg-page--apartment-info .bg-sub-breadcrumb strong {
  color: #222;
  font-weight: 700;
}

:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-page-title {
  font-size: 1.4rem;
  font-weight: 600;
  color: #000;
  margin: 0 0 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid #ddd;
}

:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #0054a6;
  margin-bottom: 20px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-tab {
  padding: 10px 24px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #666;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-bottom: none;
  cursor: default;
  border-radius: 4px 4px 0 0;
  margin-bottom: -2px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-tab--active {
  color: #fff;
  background: #0054a6;
  border-color: #0054a6;
}

/* Content sections */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-content-section {
  margin-bottom: 24px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-section-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: #000;
  margin: 0 0 10px;
  padding-bottom: 10px;
  padding-left: 0;
  border-left: none;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-section-desc {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.6;
  margin: 0 0 8px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table-caption {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #333;
  margin: 16px 0 8px;
}

/* Info card */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-card {
  background: #f8fafc;
  border: 1px solid #e0e4ec;
  border-radius: 6px;
  padding: 16px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-card p {
  margin: 4px 0;
  font-size: 0.875rem;
  color: #444;
  line-height: 1.6;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-card__title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 8px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-card__actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* Info list */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-list li {
  padding: 4px 0;
  font-size: 0.9375rem;
  color: #333;
  line-height: 1.6;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-info-list li::before {
  content: '';
  margin-right: 0;
}

/* Buttons */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 20px;
  border-radius: 4px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: default;
  text-decoration: none;
  transition: background 0.15s;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-btn--primary {
  background: #0054a6;
  color: #fff;
  border: 1px solid #0054a6;
}
/* 시나리오4 (여권민원): 여권 안내 테마 */
.bg-page--passport-guidance .bg-sub-btn--primary {
  background: #0A325A;
  border-color: #0A325A;
}
.bg-page--passport-guidance .bg-sub-btn--secondary {
  color: #0A325A;
  border-color: #0A325A;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-btn--secondary {
  background: #fff;
  color: #0054a6;
  border: 1px solid #0054a6;
}

/* Sub-page table (과태료, 수수료) */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 8px;
  font-size: 0.9375rem;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table th {
  background: #eef4fb;
  border-bottom: 1px solid #cad0d6;
  padding: 9px 10px;
  text-align: center;
  font-weight: 600;
  color: #333;
  white-space: nowrap;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #e6eaef;
  text-align: center;
  color: #444;
  font-size: 0.9375rem;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table--fee td:first-child {
  text-align: left;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-table--fee td:nth-child(2) {
  font-weight: 600;
  color: #e74c3c;
}

/* Apartment search enhancement */
.bg-page--apartment-info .bg-apartment-search__select {
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 4px 0 0 4px;
  background: #fff;
  font-size: 0.8125rem;
  color: #444;
}

/* Apartment pagination */
.bg-page--apartment-info .bg-apartment-pagination {
  display: flex;
  justify-content: center;
  gap: 2px;
  margin: 16px 0;
  flex-wrap: wrap;
}
.bg-page--apartment-info .bg-apartment-pagination__btn {
  min-width: 32px;
  padding: 6px 10px;
  border: 1px solid #ddd;
  background: #fff;
  color: #555;
  font-size: 0.8125rem;
  cursor: default;
  border-radius: 3px;
}
.bg-page--apartment-info .bg-apartment-pagination__btn--active {
  background: #0054a6;
  color: #fff;
  border-color: #0054a6;
  font-weight: 700;
}
.bg-page--apartment-info .bg-apartment-pagination__btn:disabled {
  color: #ccc;
  border-color: #eee;
}

/* Satisfaction survey */
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction {
  margin-top: 24px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e0e4ec;
  border-radius: 6px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 10px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__stars {
  display: flex;
  gap: 16px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__stars label {
  font-size: 0.8125rem;
  color: #555;
  cursor: default;
  display: flex;
  align-items: center;
  gap: 4px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__stars input[type="radio"] {
  margin: 0;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__opinion {
  display: flex;
  gap: 8px;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__opinion input[type="text"] {
  flex: 1;
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.8125rem;
}
:is(.bg-page--illegal-parking,
    .bg-page--bulky-waste,
    .bg-page--passport-guidance,
    .bg-page--unmanned-kiosk-guidance,
    .bg-page--apartment-info) .bg-sub-satisfaction__opinion button {
  padding: 6px 16px;
  background: #149896;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 0.8125rem;
  cursor: default;
}

/* 정부24 card */
.bg-page--passport-guidance .bg-gov24-card {
  background: linear-gradient(135deg, #eaf0fb 0%, #dde6f3 100%);
  border: 2px solid #0A325A;
  border-radius: 10px;
  padding: 24px;
  margin-bottom: 20px;
}
.bg-page--passport-guidance .bg-gov24-card__badge {
  display: inline-block;
  padding: 4px 12px;
  background: #0A325A;
  color: #fff;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 12px;
}
.bg-page--passport-guidance .bg-gov24-card__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a252f;
  margin: 0 0 8px;
}
.bg-page--passport-guidance .bg-gov24-card__desc {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.5;
  margin: 0 0 16px;
}
.bg-page--passport-guidance .bg-gov24-card__info {
  margin-bottom: 16px;
}
.bg-page--passport-guidance .bg-gov24-card__row {
  font-size: 0.875rem;
  color: #444;
  padding: 4px 0;
}
.bg-page--passport-guidance .bg-gov24-card__label {
  font-weight: 600;
  color: #2c3e50;
  display: inline-block;
  min-width: 90px;
}
.bg-page--passport-guidance .bg-gov24-card__link {
  color: #0A325A;
  text-decoration: none;
  font-weight: 600;
}
.bg-page--passport-guidance .bg-gov24-card__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* 보건소 전용 헤더 */
.bg-page--unmanned-kiosk-guidance .bg-health-header {
  background: #fff;
  border-bottom: 2px solid #BEBEAA;
}
.bg-page--unmanned-kiosk-guidance .bg-health-header__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.bg-page--unmanned-kiosk-guidance .bg-health-header__logo {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.bg-page--unmanned-kiosk-guidance .bg-health-header__logo-emblem {
  font-size: 2rem;
}
.bg-page--unmanned-kiosk-guidance .bg-health-header__logo-text strong {
  display: block;
  font-size: 0.75rem;
  color: #666;
}
.bg-page--unmanned-kiosk-guidance .bg-health-header__logo-text span {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  color: #BEBEAA;
}
.bg-page--unmanned-kiosk-guidance .bg-health-gnb {
  display: flex;
  gap: 0;
  flex: 1;
}
.bg-page--unmanned-kiosk-guidance .bg-health-gnb__link {
  padding: 8px 14px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #555;
  text-decoration: none;
  white-space: nowrap;
}
.bg-page--unmanned-kiosk-guidance .bg-health-gnb__link--active {
  color: #BEBEAA;
  border-bottom: 3px solid #BEBEAA;
}

/* 보건소 map placeholder */
.bg-page--unmanned-kiosk-guidance .bg-health-map-placeholder {
  background: #f0f4f8;
  border: 2px dashed #c8d5e6;
  border-radius: 8px;
  padding: 40px 24px;
  margin: 16px 0;
  text-align: center;
}
.bg-page--unmanned-kiosk-guidance .bg-health-map-placeholder__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.bg-page--unmanned-kiosk-guidance .bg-health-map-placeholder__icon {
  font-size: 3rem;
}
.bg-page--unmanned-kiosk-guidance .bg-health-map-placeholder__text p {
  margin: 2px 0;
  font-size: 0.875rem;
  color: #555;
}
.bg-page--unmanned-kiosk-guidance .bg-health-map-placeholder__link {
  color: #149896;
  text-decoration: none;
  font-weight: 600;
}

/* 보건소 info table */
.bg-page--unmanned-kiosk-guidance .bg-health-info-section {
  margin: 16px 0;
}
.bg-page--unmanned-kiosk-guidance .bg-health-info-table {
  width: 100%;
  border-collapse: collapse;
}
.bg-page--unmanned-kiosk-guidance .bg-health-info-table th {
  width: 140px;
  padding: 10px 12px;
  background: #f5f7fa;
  border: 1px solid #e0e4ec;
  font-size: 0.875rem;
  font-weight: 700;
  color: #333;
  text-align: left;
}
.bg-page--unmanned-kiosk-guidance .bg-health-info-table td {
  padding: 10px 12px;
  border: 1px solid #e0e4ec;
  font-size: 0.875rem;
  color: #444;
}

/* 보건소 슬로건 */
.bg-page--unmanned-kiosk-guidance .bg-health-slogan {
  text-align: center;
  padding: 20px;
  background: linear-gradient(135deg, #e8f5e9 0%, #e0f2f1 100%);
  border-radius: 8px;
  margin: 16px 0;
}
.bg-page--unmanned-kiosk-guidance .bg-health-slogan p {
  font-size: 1.125rem;
  font-weight: 700;
  color: #009944;
  margin: 0 0 4px;
}
.bg-page--unmanned-kiosk-guidance .bg-health-slogan span {
  font-size: 0.8125rem;
  color: #666;
}

/* 보건소 푸터 */
.bg-page--unmanned-kiosk-guidance .bg-health-footer {
  background: #354152;
  color: #ccc;
  padding: 24px;
  text-align: center;
  font-size: 0.8125rem;
  line-height: 1.6;
}
.bg-page--unmanned-kiosk-guidance .bg-health-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.bg-page--unmanned-kiosk-guidance .bg-health-footer p {
  margin: 2px 0;
}
.bg-page--unmanned-kiosk-guidance .bg-health-footer strong {
  color: #eee;
}

/* Safety: when inert is set on the demo canvas, hide it visually */
#demo-canvas[inert] {
  display: none !important;
  visibility: hidden;
}

/* J-DEPT-01 scoped styles end */

/* #1099: current official content pages and proposal-quality writing journeys. */
.bg-page--home .bg-home-lead__mayor {
  position: relative;
}

.bg-home-mayor-hotspot {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 33.4%;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 0 0 0 16px;
  color: #fff;
  background: rgba(17, 76, 151, 0.08);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer;
  opacity: 0;
  transition: opacity 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 120ms ease;
}

.bg-home-mayor-hotspot:hover,
.bg-home-mayor-hotspot:focus-visible {
  opacity: 1;
  background: rgba(8, 65, 143, 0.94);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.6), 0 10px 24px rgba(8, 39, 91, 0.28);
}

.bg-home-mayor-hotspot:focus-visible {
  outline: 3px solid #ffcf4a;
  outline-offset: 3px;
}

.bg-home-mayor-hotspot:active {
  transform: translateY(2px) scale(0.985);
  box-shadow: inset 0 3px 8px rgba(0,0,0,0.25);
}

.bg-official-content-main {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 34px 0 72px;
}

.bg-official-content-heading {
  position: relative;
  padding: 0 116px 22px 0;
  border-bottom: 1px solid #dfe4eb;
}

.bg-official-content-heading h1 {
  margin: 0 0 14px;
  color: #111827;
  font-size: 2rem;
  font-weight: 750;
  letter-spacing: -0.045em;
}

.bg-official-content-breadcrumb ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #6b7280;
  font-size: 0.82rem;
}

.bg-official-content-breadcrumb li {
  display: flex;
  gap: 8px;
}

.bg-official-content-breadcrumb li[aria-current="page"] {
  color: #172554;
  font-weight: 700;
}

.bg-official-content-tools {
  position: absolute;
  right: 0;
  bottom: 18px;
  display: flex;
  gap: 6px;
}

.bg-official-content-tools button {
  width: 34px;
  height: 34px;
  border: 1px solid #d8dee8;
  border-radius: 50%;
  color: #48566b;
  background: #fff;
  cursor: pointer;
}

.bg-official-content-html {
  padding-top: 38px;
  color: #202733;
  font-size: 0.94rem;
  line-height: 1.75;
}

.bg-official-content-html .depth4_tab {
  margin: 0 0 34px;
}

.bg-official-content-html .depth4_tab ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #dbe0e7;
}

.bg-official-content-html .depth4_tab li {
  border-right: 1px solid #dbe0e7;
}

.bg-official-content-html .depth4_tab li:last-child {
  border-right: 0;
}

.bg-official-content-html .depth4_tab a {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  color: #4b5563;
  text-decoration: none;
  font-weight: 650;
}

.bg-official-content-html .depth4_tab .active a {
  color: #fff;
  background: #3f76b8;
}

.bg-official-content-html .dep01 {
  margin: 0 0 24px;
  color: #111827;
  font-size: 1.65rem;
  letter-spacing: -0.04em;
}

.bg-official-content-html .dep01::before {
  content: "";
  display: block;
  width: 28px;
  height: 3px;
  margin-bottom: 12px;
  background: linear-gradient(90deg, #00a376, #246bb3);
}

.bg-official-content-html .dep02 {
  margin: 34px 0 12px;
  color: #172033;
  font-size: 1.14rem;
  font-weight: 750;
}

.bg-official-content-html .dep02::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 9px 2px 0;
  border: 3px solid #0f9e94;
  border-radius: 50%;
}

/*
 * Official content lists (#1122): keep semantic markers visible while
 * containing every marker/text box inside the content container.
 * Outside markers need real padding-inline-start; nested lists inherit
 * the same invariant so they never paint left of the content edge.
 */
.bg-official-content-html ul,
.bg-official-content-html ol {
  margin: 0 0 0.85em;
  padding-inline-start: 2em;
  list-style-position: outside;
  box-sizing: border-box;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.bg-official-content-html li {
  margin: 0.35em 0;
  padding-inline-start: 0.15em;
  box-sizing: border-box;
  max-width: 100%;
}

.bg-official-content-html li > ul,
.bg-official-content-html li > ol {
  margin: 0.4em 0 0.55em;
  padding-inline-start: 1.85em;
}

.bg-official-content-html .dep03 {
  margin: 0 0 0.85em;
  padding-inline-start: 2em;
  list-style-type: disc;
  list-style-position: outside;
}

.bg-official-content-html .dep03 li {
  margin: 5px 0;
}

/* depth4_tab keeps its non-marker tab strip (more specific, later-safe). */
.bg-official-content-html .depth4_tab ul {
  margin: 0;
  padding-inline-start: 0;
  list-style: none;
}

.bg-official-content-html .depth4_tab li {
  margin: 0;
  padding-inline-start: 0;
}

/* Passport process steps: official horizontal step strip, markers not free-floating. */
.bg-official-content-html .step-list {
  margin: 12px 0 22px;
  overflow-x: auto;
  max-width: 100%;
}

.bg-official-content-html .step-list > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 100%;
}

.bg-official-content-html .step-list > ul > li {
  flex: 1 1 110px;
  margin: 0;
  padding: 14px 12px;
  min-width: 0;
  list-style: none;
  text-align: center;
  border: 1px solid #d5deea;
  border-radius: 8px;
  background: linear-gradient(180deg, #f7fafc 0%, #fff 100%);
  color: #172033;
  font-size: 0.9rem;
  line-height: 1.45;
  box-sizing: border-box;
}

.bg-official-content-html .step-list > ul > li strong {
  display: block;
  margin-bottom: 4px;
  color: #0f3f7a;
  font-size: 0.95rem;
}

.bg-official-content-html .step-list > ul > li span {
  display: block;
  color: #5b677a;
  font-size: 0.78rem;
}

.bg-official-content-html .infoBox {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 0 0 30px;
  padding: 26px 30px;
  border: 1px solid #d9e1ea;
  border-top: 3px solid transparent;
  border-image: linear-gradient(90deg, #10a37f, #2f6fbb) 1;
  background: linear-gradient(135deg, #f8fbfd, #fff);
}

.bg-official-content-html .infoBox > i {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #edf1f5;
}

.bg-official-content-html .infoBox .txt,
.bg-official-content-html .infoBox .tt {
  display: block;
}

.bg-official-content-html .infoBox .tt {
  margin-bottom: 4px;
  color: #172033;
  font-size: 1.18rem;
}

.bg-official-content-html .BtnBox,
.bg-official-content-html .BtnBox-line {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.bg-official-content-html .btn-go,
.bg-official-content-html .btn-line {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 0 20px;
  border: 1px solid #0b9b91;
  color: #fff;
  background: #0b9b91;
  text-decoration: none;
  font-weight: 750;
}

.bg-official-content-html .table {
  width: 100%;
  margin: 14px 0 26px;
  overflow-x: auto;
  border: 1px solid #d7dee8;
}

.bg-official-content-html .tbl_type1 {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  background: #fff;
}

.bg-official-content-html .tbl_type1 caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.bg-official-content-html .tbl_type1 th,
.bg-official-content-html .tbl_type1 td {
  padding: 10px 9px;
  border: 1px solid #dbe1e8;
  text-align: center;
  vertical-align: middle;
}

.bg-official-content-html .tbl_type1 thead th {
  color: #26364d;
  background: #eef4fa;
  font-weight: 750;
}

.bg-official-content-html .tbl_type1 tbody th {
  background: #f8fafc;
}

.bg-official-content-html img {
  max-width: 100%;
  height: auto;
}

.bg-official-content-html .satisfyTitle,
.bg-official-content-html .satisfyForm {
  padding: 18px 22px;
  border: 1px solid #dde4ed;
  background: #f8fafc;
}

.bg-official-content-html .satisfyTitle {
  margin-top: 42px;
  border-bottom: 0;
  color: #1f3551;
  font-weight: 750;
}

.bg-official-content-html .satisfyForm input[type="text"] {
  width: min(720px, 80%);
  min-height: 42px;
  margin-top: 12px;
  padding: 0 12px;
  border: 1px solid #cfd7e2;
  border-radius: 6px;
}

.bg-page--product {
  --product-ink: #10243f;
  --product-blue: #1556b8;
  --product-mint: #00a58f;
  --product-coral: #ef6a4c;
  color: var(--product-ink);
  background: #f5f8fb;
}

.bg-product-main,
.bg-writing-main {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 30px 0 76px;
}

/* #1143: non-Korean draft meta (original resident + Korean admin draft labels). */
.bg-writing-locale-meta {
  display: grid;
  gap: 10px;
  margin: 0 0 18px;
}

.bg-writing-locale-meta__card {
  border: 1px solid #d7e2ef;
  border-radius: 14px;
  background: #f7fafc;
  padding: 12px 14px;
}

.bg-writing-locale-meta__label {
  margin: 0 0 6px;
  color: #0c5f8a;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.bg-writing-locale-meta__body,
.bg-writing-locale-meta__hint {
  margin: 0;
  color: #31465f;
  font-size: 0.86rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.bg-writing-locale-meta__hint {
  color: #66758a;
  font-size: 0.8rem;
}

#mayor-write-content,
#board-write-content {
  max-height: 220px;
  overflow-y: auto;
  resize: vertical;
}

.bg-product-breadcrumb ol {
  display: flex;
  gap: 8px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
  color: #7b8797;
  font-size: 0.78rem;
}

.bg-product-breadcrumb li {
  display: flex;
  gap: 8px;
}

.bg-product-breadcrumb li[aria-current="page"] {
  color: #183357;
  font-weight: 750;
}

.bg-product-eyebrow {
  margin: 0 0 10px;
  color: #008e7e;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.bg-product-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  align-items: end;
  gap: 38px;
  margin-bottom: 30px;
  padding: 36px 42px;
  border-radius: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 20%, rgba(77,226,202,0.35), transparent 28%),
    linear-gradient(125deg, #0c2d5a 0%, #1556b8 58%, #008f83 120%);
  box-shadow: 0 20px 48px rgba(16, 54, 102, 0.18);
}

.bg-product-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.08;
  letter-spacing: -0.055em;
}

.bg-product-hero h1 strong {
  color: #68ead2;
}

.bg-product-hero p:not(.bg-product-eyebrow) {
  max-width: 650px;
  margin: 0;
  color: rgba(255,255,255,0.78);
}

.bg-product-hero__metric {
  display: grid;
  gap: 3px;
  padding: 18px 20px;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 18px;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
}

.bg-product-hero__metric strong {
  font-size: 2.4rem;
  line-height: 1;
}

.bg-product-hero__metric small {
  color: #a9f4e7;
}

.bg-board-panel,
.bg-writing-card {
  border: 1px solid #e0e6ee;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(22, 43, 75, 0.08);
}

.bg-board-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 30px 20px;
}

.bg-board-panel__head p,
.bg-board-panel__head h2 {
  margin: 0;
}

.bg-board-panel__head p {
  color: #8792a2;
  font-size: 0.76rem;
}

.bg-board-panel__head h2 {
  margin-top: 3px;
  font-size: 1.55rem;
  letter-spacing: -0.04em;
}

.bg-action-btn {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 12px;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
}

.bg-action-btn--primary {
  color: #fff;
  background: linear-gradient(135deg, #1556b8, #087d91);
  box-shadow: 0 9px 20px rgba(21, 86, 184, 0.2);
}

.bg-action-btn--secondary {
  border-color: #d4dce7;
  color: #3e4f65;
  background: #fff;
}

.bg-action-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 13px 26px rgba(17, 71, 147, 0.24);
}

.bg-action-btn:active:not(:disabled) {
  transform: translateY(1px) scale(0.98);
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.18);
}

.bg-action-btn:focus-visible {
  outline: 3px solid rgba(0,165,143,0.42);
  outline-offset: 3px;
}

.bg-action-btn:disabled {
  color: #95a0ae;
  background: #e9edf2;
  box-shadow: none;
  cursor: not-allowed;
}

.bg-board-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 30px;
  border-top: 1px solid #eef1f5;
  border-bottom: 1px solid #eef1f5;
  background: #fbfcfe;
}

.bg-board-search {
  width: min(440px, 52%);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid #d7dee8;
  border-radius: 12px;
  background: #fff;
}

.bg-board-search input {
  width: 100%;
  min-height: 42px;
  border: 0;
  outline: 0;
  background: transparent;
}

.bg-board-filters {
  display: flex;
  gap: 6px;
}

.bg-board-filters button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #dce2ea;
  border-radius: 999px;
  color: #657286;
  background: #fff;
  cursor: pointer;
}

.bg-board-filters button[aria-pressed="true"] {
  border-color: #153f77;
  color: #fff;
  background: #153f77;
}

.bg-board-table-wrap {
  overflow-x: auto;
}

.bg-board-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.bg-board-table th,
.bg-board-table td {
  padding: 17px 18px;
  border-bottom: 1px solid #edf0f4;
  text-align: center;
}

.bg-board-table th {
  color: #657286;
  background: #f7f9fc;
  font-size: 0.78rem;
}

.bg-board-table th:nth-child(2),
.bg-board-table td:nth-child(2) {
  text-align: left;
}

.bg-board-title {
  color: #24364d;
  font-weight: 700;
}

.bg-board-number {
  color: #8792a2;
  font-variant-numeric: tabular-nums;
}

.bg-board-status {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
}

.bg-board-status.is-open { color: #b0442d; background: #fff0ea; }
.bg-board-status.is-complete { color: #087d68; background: #e6f7f2; }
.bg-board-loading { color: #7b8797; text-align: center !important; }

.bg-board-panel__foot {
  display: flex;
  justify-content: space-between;
  padding: 18px 30px;
  color: #7b8797;
  font-size: 0.78rem;
}

.bg-board-panel__foot p { margin: 0; }
.bg-board-panel__foot p span { display: inline-grid; width: 18px; height: 18px; margin-right: 5px; place-items: center; border-radius: 50%; color: #fff; background: #8090a5; }

.bg-writing-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.bg-writing-heading h1 {
  margin: 0 0 8px;
  font-size: 2.35rem;
  letter-spacing: -0.055em;
}

.bg-writing-heading > div > p:last-child {
  margin: 0;
  color: #67758a;
}

.bg-writing-heading__badge {
  padding: 9px 14px;
  border-radius: 999px;
  color: #087d68;
  background: #e8f7f3;
  font-size: 0.78rem;
  font-weight: 800;
}

.bg-writing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.7fr);
  gap: 20px;
  align-items: start;
}

.bg-writing-card {
  padding: 28px 30px;
}

.bg-writing-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 22px;
  border-bottom: 1px solid #edf0f4;
}

.bg-writing-card__top span,
.bg-writing-card__top strong {
  display: block;
}

.bg-writing-card__top span {
  color: #8792a2;
  font-size: 0.72rem;
}

.bg-writing-card__top strong {
  margin-top: 3px;
  font-size: 1.14rem;
}

.bg-writing-progress {
  display: flex;
  gap: 6px;
}

.bg-writing-progress span {
  width: 28px;
  height: 5px;
  border-radius: 999px;
  background: #dde3eb;
}

.bg-writing-progress .is-done { background: #1556b8; }
.bg-writing-progress .is-active { background: #00a58f; }

.bg-writing-field {
  margin-top: 24px;
}

.bg-writing-field label {
  color: #17283f;
  font-weight: 800;
}

.bg-writing-field label b {
  margin-left: 5px;
  color: #e65e46;
  font-size: 0.68rem;
}

.bg-writing-field > p,
.bg-writing-field__label + p {
  margin: 6px 0 11px;
  color: #7a8798;
  font-size: 0.77rem;
}

.bg-writing-field__label {
  display: flex;
  justify-content: space-between;
}

.bg-writing-field__label span {
  color: #9aa4b1;
  font-size: 0.72rem;
}

.bg-writing-field input,
.bg-writing-field textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #cfd8e4;
  border-radius: 12px;
  color: #17283f;
  background: #fbfcfe;
  font: inherit;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.bg-writing-field input {
  min-height: 50px;
  padding: 0 15px;
}

.bg-writing-field textarea {
  min-height: 270px;
  padding: 15px;
  resize: vertical;
  line-height: 1.65;
}

.bg-writing-field input:focus,
.bg-writing-field textarea:focus {
  border-color: #00a58f;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(0,165,143,0.12);
}

.bg-writing-consent {
  display: flex;
  gap: 12px;
  margin-top: 20px;
  padding: 15px 17px;
  border-radius: 12px;
  background: #f0f6fb;
}

.bg-writing-consent > span {
  flex: 0 0 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #1556b8;
  font-size: 0.75rem;
}

.bg-writing-consent p,
.bg-writing-consent strong {
  display: block;
  margin: 0;
}

.bg-writing-consent p { color: #66758a; font-size: 0.76rem; }
.bg-writing-consent strong { margin-bottom: 2px; color: #243b59; font-size: 0.82rem; }

.bg-writing-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

.bg-writing-assistant {
  position: sticky;
  top: 20px;
  overflow: hidden;
  padding: 28px 24px;
  border-radius: 22px;
  color: #fff;
  background:
    radial-gradient(circle at 90% 5%, rgba(87,231,205,0.28), transparent 30%),
    linear-gradient(145deg, #0c2d5a, #123e70 60%, #086c70);
  box-shadow: 0 18px 42px rgba(16, 45, 83, 0.2);
}

.bg-writing-assistant__orb {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 18px;
  background: linear-gradient(135deg, #00a58f, #65e4cf);
  box-shadow: 0 0 28px rgba(79,225,201,0.35);
  font-size: 0.76rem;
  font-weight: 900;
}

.bg-writing-assistant h2 {
  margin: 0 0 24px;
  font-size: 1.42rem;
  line-height: 1.35;
  letter-spacing: -0.045em;
}

.bg-writing-assistant ol {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bg-writing-assistant li {
  display: flex;
  gap: 11px;
  color: rgba(255,255,255,0.5);
}

.bg-writing-assistant li > b {
  flex: 0 0 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 50%;
  font-size: 0.7rem;
}

.bg-writing-assistant li strong,
.bg-writing-assistant li span {
  display: block;
}

.bg-writing-assistant li strong {
  margin-bottom: 2px;
  font-size: 0.82rem;
}

.bg-writing-assistant li span {
  font-size: 0.72rem;
  line-height: 1.45;
}

.bg-writing-assistant li.is-done,
.bg-writing-assistant li.is-active { color: #fff; }
.bg-writing-assistant li.is-done > b { border-color: #5fe1ca; color: #083c4f; background: #5fe1ca; }
.bg-writing-assistant li.is-active > b { border-color: #fff; box-shadow: 0 0 0 4px rgba(95,225,202,0.14); }

.bg-writing-assistant__tip {
  display: flex;
  gap: 9px;
  margin-top: 24px;
  padding: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  color: rgba(255,255,255,0.74);
  background: rgba(255,255,255,0.07);
  font-size: 0.72rem;
}

.bg-writing-assistant__tip p { margin: 0; }

.bg-page--mayor {
  --mayor-blue: #1456b8;
  min-height: 100%;
  color: #171b22;
  background: #fff;
  font-family: "Pretendard", "Noto Sans KR", sans-serif;
}

.bg-mayor-header {
  min-height: 86px;
  display: grid;
  grid-template-columns: 240px 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 0 42px;
  border-bottom: 1px solid #e8ebef;
  background: rgba(255,255,255,0.96);
}

.bg-mayor-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #202733;
  text-decoration: none;
}

.bg-mayor-brand img { width: 112px; height: auto; }
.bg-mayor-brand strong { padding-left: 10px; border-left: 1px solid #d8dde5; font-size: 0.95rem; }

.bg-mayor-header nav {
  display: flex;
  justify-content: center;
  gap: 30px;
  color: #303845;
  font-size: 0.93rem;
  font-weight: 650;
}

.bg-mayor-header nav span + span::before {
  content: "·";
  margin-right: 30px;
  color: #9aa3ae;
}

.bg-mayor-header__actions {
  display: flex;
  align-items: center;
  gap: 18px;
  color: #243246;
}

.bg-mayor-header__actions span { color: #697587; font-size: 0.76rem; }
.bg-mayor-header__actions b { font-size: 1.25rem; font-weight: 500; }

.bg-mayor-main {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
}

.bg-mayor-hero {
  min-height: 610px;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: 30px;
}

.bg-mayor-hero__copy {
  position: relative;
  z-index: 2;
  padding-left: 24px;
}

.bg-mayor-dots {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}

.bg-mayor-dots i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #c7cbd1;
}

.bg-mayor-dots i.is-active { background: #2d333c; }

.bg-mayor-hero h1 {
  margin: 0 0 22px;
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  line-height: 1.06;
  letter-spacing: -0.065em;
}

.bg-mayor-hero__copy > p:not(.bg-product-eyebrow) {
  margin: 0;
  color: #777f8a;
  font-size: 1.05rem;
}

.bg-mayor-hero__actions {
  display: flex;
  gap: 12px;
  margin-top: 72px;
}

.bg-mayor-cta {
  min-width: 210px;
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 22px;
  border: 1px solid var(--mayor-blue);
  border-radius: 10px;
  color: #fff;
  background: var(--mayor-blue);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(20,86,184,0.18);
  transition: transform 150ms ease, box-shadow 180ms ease, background 180ms ease;
}

.bg-mayor-cta--outline {
  color: var(--mayor-blue);
  background: #fff;
  box-shadow: none;
}

.bg-mayor-cta:hover {
  transform: translateY(-3px);
  background: #0c469f;
  box-shadow: 0 17px 32px rgba(20,86,184,0.28);
}

.bg-mayor-cta--outline:hover { color: #fff; }
.bg-mayor-cta:active { transform: translateY(1px) scale(0.985); box-shadow: inset 0 3px 7px rgba(0,0,0,0.2); }
.bg-mayor-cta:focus-visible { outline: 3px solid rgba(0,165,143,0.45); outline-offset: 4px; }

.bg-mayor-hero__portrait {
  height: 590px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.bg-mayor-hero__portrait img {
  width: 120%;
  max-width: none;
  height: 100%;
  object-fit: contain;
  animation: mayorPortraitReveal 900ms cubic-bezier(0.16,1,0.3,1) both;
}

.bg-mayor-stories {
  padding: 40px 24px 80px;
  text-align: center;
}

.bg-mayor-stories header p { margin: 0; color: #6f7884; }
.bg-mayor-stories h2 { margin: 6px 0 28px; font-size: 1.7rem; letter-spacing: -0.04em; }
.bg-mayor-stories h2 strong { color: var(--mayor-blue); }

.bg-mayor-stories__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.bg-mayor-stories article {
  position: relative;
  overflow: hidden;
  min-height: 210px;
  border-radius: 16px;
}

.bg-mayor-stories article img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms ease; }
.bg-mayor-stories article:hover img { transform: scale(1.04); }
.bg-mayor-stories article span { position: absolute; left: 14px; bottom: 14px; padding: 7px 11px; border-radius: 999px; color: #fff; background: rgba(9,31,62,0.76); font-size: 0.72rem; font-weight: 750; }

.bg-page--mayor-writing { background: #f4f7fb; }
.bg-page--mayor-writing .bg-writing-main { padding-top: 34px; }
.bg-page--mayor-writing .bg-writing-heading__badge { color: #154da5; background: #e7effb; }

.bg-page--mayor-receipt {
  background:
    radial-gradient(circle at 50% 35%, rgba(73,213,190,0.14), transparent 26%),
    #f7f9fc;
}

.bg-receipt-main {
  width: min(760px, calc(100% - 48px));
  margin: 0 auto;
  padding: 90px 0;
  text-align: center;
}

.bg-receipt-mark {
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin: 0 auto 24px;
  border-radius: 28px;
  color: #fff;
  background: linear-gradient(135deg, #1556b8, #00a58f);
  box-shadow: 0 18px 38px rgba(21,86,184,0.25);
  font-size: 2rem;
}

.bg-receipt-main h1 { margin: 0 0 16px; font-size: 2.7rem; line-height: 1.18; letter-spacing: -0.055em; }
.bg-receipt-main > p:not(.bg-product-eyebrow) { max-width: 590px; margin: 0 auto; color: #68768a; }

.bg-receipt-card {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 34px 0 24px;
  padding: 22px;
  border: 1px solid #dfe5ed;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(25,49,83,0.08);
}

.bg-receipt-card div + div { border-left: 1px solid #e7ebf0; }
.bg-receipt-card span,
.bg-receipt-card strong { display: block; }
.bg-receipt-card span { margin-bottom: 4px; color: #8a95a4; font-size: 0.72rem; }
.bg-receipt-card strong { color: #27384e; font-size: 0.88rem; }
.bg-receipt-card strong.is-accent { color: #008a75; }

@keyframes mayorPortraitReveal {
  from { opacity: 0; transform: translateX(28px) scale(0.97); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@media (max-width: 900px) {
  .bg-product-hero { grid-template-columns: 1fr; }
  .bg-product-hero__metric { width: min(220px, 100%); }
  .bg-writing-layout { grid-template-columns: 1fr; }
  .bg-writing-assistant { position: static; }
  .bg-mayor-header { grid-template-columns: 1fr auto; padding: 0 20px; }
  .bg-mayor-header nav { display: none; }
  .bg-mayor-hero { min-height: auto; grid-template-columns: 1fr; padding-top: 54px; }
  .bg-mayor-hero__portrait { height: 440px; order: -1; }
  .bg-mayor-hero__actions { margin-top: 34px; }
}

@media (max-width: 640px) {
  .bg-official-content-main,
  .bg-product-main,
  .bg-writing-main,
  .bg-mayor-main { width: min(100% - 28px, 1180px); }
  .bg-official-content-heading { padding-right: 0; }
  .bg-official-content-tools { position: static; margin-top: 16px; }
  .bg-official-content-html .depth4_tab ul { grid-template-columns: 1fr; }
  .bg-official-content-html .depth4_tab li { border-right: 0; border-bottom: 1px solid #dbe0e7; }
  .bg-official-content-html .infoBox { align-items: flex-start; padding: 20px; }
  .bg-official-content-html .infoBox > i { flex-basis: 48px; width: 48px; height: 48px; }
  .bg-product-hero { padding: 28px 24px; border-radius: 18px; }
  .bg-board-panel__head,
  .bg-board-toolbar,
  .bg-board-panel__foot,
  .bg-writing-heading { align-items: stretch; flex-direction: column; }
  .bg-board-search { width: auto; }
  .bg-board-filters { overflow-x: auto; }
  .bg-writing-card { padding: 22px 18px; }
  .bg-writing-actions { flex-direction: column-reverse; }
  .bg-writing-actions .bg-action-btn { width: 100%; }
  .bg-mayor-header { min-height: 70px; }
  .bg-mayor-brand img { width: 88px; }
  .bg-mayor-brand strong { font-size: 0.76rem; }
  .bg-mayor-header__actions span,
  .bg-mayor-header__actions b:nth-of-type(1) { display: none; }
  .bg-mayor-hero__copy { padding-left: 0; }
  .bg-mayor-hero h1 { font-size: 2.55rem; }
  .bg-mayor-hero__actions { flex-direction: column; }
  .bg-mayor-cta { width: 100%; min-width: 0; }
  .bg-mayor-stories__grid { grid-template-columns: 1fr; }
  .bg-receipt-card { grid-template-columns: 1fr; gap: 16px; }
  .bg-receipt-card div + div { padding-top: 16px; border-top: 1px solid #e7ebf0; border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .bg-home-mayor-hotspot,
  .bg-action-btn,
  .bg-mayor-cta,
  .bg-mayor-hero__portrait img,
  .bg-mayor-stories article img {
    animation: none !important;
    transition: none !important;
  }
}

/* #1142: keep mayor heading phrases intact in split width */
.bg-mayor-hero h1 {
  word-break: keep-all;
  overflow-wrap: normal;
  line-break: strict;
  font-size: clamp(1.85rem, 3.2vw, 4.8rem);
}
.bg-mayor-hero h1 > span {
  display: block;
}
body[data-first-use-state="split"] .bg-mayor-hero h1,
body[data-first-use-state="transitioning"] .bg-mayor-hero h1 {
  font-size: clamp(1.55rem, 2.4vw, 2.9rem);
  line-height: 1.12;
  letter-spacing: -0.04em;
}
/* #1170 home fixture canvas renderer — scoped under .bg-page--home */
.bg-page--home.bg-page--home-fixture {
  --bg-home-fixture-max: 914px;
  background: #fff;
  color: #1a1a1a;
}
.bg-page--home .bg-home-fixture-root {
  width: min(var(--bg-home-fixture-max, 914px), calc(100% - 32px));
  max-width: min(100%, var(--bg-home-fixture-max, 914px));
  min-width: 0;
  margin: 0 auto;
  padding: 12px 0 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-sizing: border-box;
  /* Both axes: avoid overflow-x-only → overflow-y:auto quirk that can leak scrollWidth. */
  overflow: hidden;
  contain: inline-size;
}
.bg-page--home .bg-home-fixture-compat {
  width: min(var(--bg-home-fixture-max, 914px), calc(100% - 32px));
  margin: 8px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  box-sizing: border-box;
}
.bg-page--home .bg-home-fixture-compat-item,
.bg-page--home .bg-home-fixture-item--action {
  color: #0b4f3a;
  text-decoration: none;
  font-size: 13px;
  line-height: 1.4;
  border-radius: 4px;
}
.bg-page--home .bg-home-fixture-compat-item:focus-visible,
.bg-page--home .bg-home-fixture-item--action:focus-visible {
  outline: 2px solid #117f91;
  outline-offset: 2px;
}
.bg-page--home .bg-home-fixture-region {
  border: 1px solid #e5ebe8;
  border-radius: 8px;
  padding: 12px 14px;
  background: #fcfefd;
  min-width: 0;
}
.bg-page--home .bg-home-fixture-region__heading {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: #14352a;
}
.bg-page--home .bg-home-fixture-items,
.bg-page--home .bg-home-fixture-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  min-width: 0;
}
.bg-page--home .bg-home-fixture-region--notice_news .bg-home-fixture-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.bg-page--home .bg-home-fixture-group {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bg-page--home .bg-home-fixture-group__label {
  font-weight: 700;
  font-size: 13px;
  color: #0f3d2f;
}
.bg-page--home .bg-home-fixture-item {
  display: inline-flex;
  align-items: flex-start;
  gap: 6px;
  max-width: 100%;
  min-width: 0;
  font-size: 12px;
  line-height: 1.45;
  color: #222;
  word-break: break-word;
}
.bg-page--home .bg-home-fixture-item__date {
  flex: 0 0 auto;
  color: #666;
  font-variant-numeric: tabular-nums;
}
.bg-page--home .bg-home-fixture-item__text {
  min-width: 0;
}
.bg-page--home .bg-home-fixture-item--hidden,
.bg-page--home .bg-home-fixture-item--template {
  display: none !important;
}
.bg-page--home .bg-home-fixture-item--inert {
  cursor: default;
  pointer-events: none;
}
.bg-page--home .bg-home-fixture-item--cross-origin {
  color: #555;
}
.bg-page--home .bg-home-fixture-asset {
  display: block;
  width: 72px;
  height: 48px;
  border: 1px dashed #c5d0cb;
  background: repeating-linear-gradient(
    -45deg,
    #f4f7f6,
    #f4f7f6 6px,
    #e9efec 6px,
    #e9efec 12px
  );
  flex: 0 0 auto;
}

/* #1192: main_banner — bounded horizontal visual rail (not dense auto-fill grid). */
.bg-page--home .bg-home-fixture-region--main_banner {
  max-width: 100%;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  contain: inline-size;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-items {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 220px);
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding-bottom: 6px;
  box-sizing: border-box;
  /* Prevent rail scrollWidth from contributing to ancestor max-content/fit scale. */
  contain: inline-size;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item[data-home-presentation="metadata-only"],
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item--metadata-only {
  /* DOM retained for canonical metadata; not part of visual layout. */
  display: none !important;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item[data-home-presentation="visual-card"],
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item--visual-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  min-width: 160px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 10px;
  border: 1px solid #dce5e1;
  border-radius: 10px;
  background: #fff;
  scroll-snap-align: start;
  word-break: keep-all;
  overflow-wrap: anywhere;
  overflow: hidden;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item[data-home-presentation="control"] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 160px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid #d0dbd6;
  border-radius: 10px;
  background: #f7faf8;
  scroll-snap-align: start;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item__text {
  min-width: 4.5em;
  max-width: 100%;
  word-break: keep-all;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.4;
  max-height: 5.6em;
  overflow: hidden;
}
/* Unresolved official visual: solid local fallback panel (not dashed/striped, not remote img). */
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-asset--unresolved {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  border: 0;
  border-radius: 8px;
  background: #e8eef0;
  overflow: hidden;
  flex: 0 0 auto;
  box-sizing: border-box;
}
.bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-asset__panel {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 72px;
  background:
    linear-gradient(180deg, #f2f6f7 0%, #e4ebed 100%);
}
.bg-page--home .bg-home-fixture-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.bg-page--home .bg-home-fixture-region--utility_navigation .bg-home-fixture-items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.bg-page--home .bg-home-fixture-region--footer_identity_contact .bg-home-fixture-items {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bg-page--home .bg-home-fixture-dept {
  width: min(var(--bg-home-fixture-max, 914px), calc(100% - 32px));
  margin: 8px auto 0;
}
.bg-page--home.bg-page--home-fixture-unavailable .bg-home-fixture-unavailable {
  width: min(var(--bg-home-fixture-max, 914px), calc(100% - 32px));
  margin: 40px auto;
  padding: 24px;
  border: 1px solid #d7e0dc;
  border-radius: 8px;
  background: #f8faf9;
  color: #333;
}
.bg-page--home .bg-home-fixture-unavailable__title {
  margin: 0 0 8px;
  font-weight: 700;
}
.bg-page--home .bg-home-fixture-unavailable__detail {
  margin: 0;
  color: #555;
  font-size: 13px;
}
@media (max-width: 767px) {
  /*
   * Mobile official-fit scales the canvas (~390/914 ≈ 0.427). Layout columns must
   * be large enough that getBoundingClientRect visual width stays ≥ 140px after scale.
   * 360 * (390/914) ≈ 153.6 visual px. Also keep page natural width near 914 so
   * fitToViewport scale stays usable (rail must not inflate page.scrollWidth).
   */
  .bg-page--home.bg-page--home-fixture {
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  .bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-items {
    grid-auto-columns: minmax(360px, 400px);
    gap: 12px;
  }
  .bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item[data-home-presentation="visual-card"],
  .bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item--visual-card,
  .bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item[data-home-presentation="control"] {
    min-width: 340px;
  }
  .bg-page--home .bg-home-fixture-region--main_banner .bg-home-fixture-item__text {
    min-width: 8em;
  }
}
@media (max-width: 430px) {
  .bg-page--home .bg-home-fixture-root,
  .bg-page--home .bg-home-fixture-compat,
  .bg-page--home .bg-home-fixture-dept {
    /* Keep the 914px fixture cap — do not expand to inflated parent width. */
    width: min(var(--bg-home-fixture-max, 914px), calc(100% - 16px));
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    box-sizing: border-box;
  }
}
