  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: 'Noto Sans KR', sans-serif; background: #f5f6fa; color: #222; font-size: 14px; }
  a { text-decoration: none; color: inherit; }
  img { max-width: 100%; }


  /* ── 히어로 슬라이더 배너 ── */
  .hero-wrap {
    position: relative; overflow: hidden;
    background: #1B1D22;
    width: 100%;
    aspect-ratio: 1920 / 320;
    min-height: 190px;
  }
  .hero-slides { display: flex; width: 300%; height: 100%; transition: transform .6s ease; }
  .hero-slide {
    width: 33.333%; height: 100%; position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #1B1D22 0%, #2C2F35 50%, #101114 100%);
    display: flex; align-items: center;
  }
  .hero-slide-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    opacity: .45;
  }
  .hero-slide:nth-child(1) .hero-slide-bg { background-color: #1B1D22; background-image: url('/uploads/site/hero1.png'); }
  .hero-slide:nth-child(2) .hero-slide-bg { background-color: #3A3D44; background-image: url('/uploads/site/hero2.png'); }
  .hero-slide:nth-child(3) .hero-slide-bg { background-color: #0B0C0E; background-image: url('/uploads/site/hero3.png'); }
  .hero-slide-content {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
    width: 100%;
    text-align: center;
  }
  .hero-tag-line { font-size: 13px; color: #f39c12; font-weight: 600; margin-bottom: 8px; }
  .hero-main-title { font-size: 32px; font-weight: 900; color: #fff; line-height: 1.25; margin-bottom: 10px; }
  .hero-main-title em { color: #f39c12; font-style: normal; }
  .hero-sub { font-size: 14px; color: rgba(255,255,255,.8); margin-bottom: 20px; }

  /* 검색바 */
  .hero-search {
    display: flex; align-items: center;
    background: #fff; border-radius: 6px;
    overflow: hidden; max-width: 560px;
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
    margin-left: auto; margin-right: auto;
  }
  .hero-search input {
    flex: 1; border: none; outline: none; padding: 0 16px;
    font-size: 14px; color: #333; height: 48px;
    font-family: 'Noto Sans KR', sans-serif;
  }
  .hero-search button {
    height: 48px; padding: 0 24px;
    background: #c0392b; color: #fff;
    border: none; cursor: pointer; font-size: 14px; font-weight: 700;
    white-space: nowrap;
  }
  .hero-search-mobile-wrap { display: none; }

  /* 슬라이더 화살표 */
  .hero-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    z-index: 10; background: rgba(0,0,0,.35); color: #fff;
    border: none; cursor: pointer; width: 36px; height: 60px;
    font-size: 20px; display: flex; align-items: center; justify-content: center;
  }
  .hero-arrow.prev { left: 0; }
  .hero-arrow.next { right: 0; }
  .hero-dots {
    position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%);
    display: flex; gap: 6px; z-index: 10;
  }
  .hero-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,.4); cursor: pointer; transition: background .2s;
  }
  .hero-dot.active { background: #f39c12; }

  /* ── 공통 섹션 래퍼 ── */
  .section { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
  .sec-title-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
  .sec-title {
    font-size: 20px; font-weight: 800; color: #222;
  }
  .sec-more {
    font-size: 13px; color: #c0392b; font-weight: 600;
    cursor: pointer; white-space: nowrap;
  }
  .sec-more:hover { text-decoration: underline; }
  .sec-sub { font-size: 13px; color: #888; margin-bottom: 18px; }
  .sec-wrap { padding: 30px 0 20px; }

  /* ── 카테고리 그리드 ── */
  /* PC: 지도/목록 + 6개 종류를 합쳐 4열 x 2줄로 표시 (top-row/main-row 래퍼는 grid에 영향 없게 contents 처리) */
  .cat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
  .cat-top-row, .cat-main-row {
    display: contents;
  }
  .cat-card {
    position: relative; border-radius: 8px; overflow: hidden;
    height: 118px; cursor: pointer;
    background: #333;
  }
  .cat-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
  .cat-card:hover img { transform: scale(1.05); }
  .cat-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.1) 60%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 10px 14px;
  }
  .cat-name { font-size: 14px; font-weight: 800; color: #fff; margin-bottom: 2px; }
  .cat-sub  { font-size: 11px; color: rgba(255,255,255,.75); margin-bottom: 6px; }
  .cat-more-btn {
    display: inline-block; padding: 4px 12px;
    background: #e65c00; color: #fff; border-radius: 14px;
    font-size: 11px; font-weight: 700; width: fit-content;
  }
  .cat-bg-icon {
    position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
    font-size: 52px; opacity: .18; pointer-events: none; user-select: none;
  }

  /* ── 매물 탭 섹션 ── */
  .prop-tabs {
    display: flex; gap: 4px; margin-bottom: 16px;
    border-bottom: 2px solid #eee; padding-bottom: 0;
  }
  .prop-tab {
    padding: 8px 18px; font-size: 13px; font-weight: 700;
    color: #888; cursor: pointer; border-bottom: 3px solid transparent;
    margin-bottom: -2px; transition: all .15s; white-space: nowrap;
  }
  .prop-tab.active { color: #c0392b; border-bottom-color: #c0392b; }

  /* 매물 카드 그리드 */
  .prop-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 14px;
  }
  .carousel-dots { display: none; }
  .prop-page { display: contents; }
  .prop-card {
    background: #fff; border-radius: 8px;
    border: 1px solid #e8ecf0;
    overflow: hidden; cursor: pointer;
    transition: box-shadow .2s, transform .2s;
  }
  .prop-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.12); transform: translateY(-2px); }
  .prop-card-img {
    position: relative; aspect-ratio: 4/3; overflow: hidden;
    background: #f0f0f0;
  }
  .prop-card-img img { width: 100%; height: 100%; object-fit: cover; }
  .prop-card-badges {
    position: absolute; top: 8px; left: 8px;
    display: flex; gap: 4px; flex-wrap: wrap;
  }
  .prop-badge {
    padding: 3px 8px; border-radius: 5px;
    font-size: 10px; font-weight: 700; color: #fff;
  }
  .pb-red    { background: #dc2626; }
  .pb-orange { background: #d97706; }
  .pb-blue   { background: #2563eb; }
  .pb-green  { background: #059669; }
  .pb-rec    { background: #dc2626; } /* 추천 */

  .prop-card-body { padding: 11px 13px 13px; }
  .prop-card-price {
    font-size: 15px; font-weight: 800; color: #c0392b; margin-bottom: 4px;
  }
  .prop-card-price .tx-type {
    font-size: 11px; font-weight: 700; color: #fff;
    background: #2563eb; border-radius: 3px; padding: 1px 5px; margin-right: 4px;
  }
  .prop-card-desc { font-size: 12px; color: #444; line-height: 1.5; margin-bottom: 5px; }
  .prop-card-num  { font-size: 11px; color: #aaa; }
  .prop-card-id   { font-size: 11px; color: #bbb; margin-left: auto; padding-left: 6px; white-space: nowrap; }
  .prop-card-loc  { font-size: 11px; color: #777; margin-top: 3px; display: flex; align-items: center; gap: 2px; }
  .prop-no-data { text-align: center; padding: 40px 20px; color: #aaa; grid-column: 1/-1; }
  .prop-img-fallback {
    width: 100%; height: 100%; align-items: center; justify-content: center;
    font-size: 48px; opacity: .6;
  }

  /* 하단 태그 줄 맨 앞 매물종류 배지 (PC: 눈에 띄게) — 타입별 고유 색으로 카테고리 강조 */
  .prop-type-chip {
    color: #fff; font-size: 11px; font-weight: 800;
    padding: 4px 9px; border-radius: 5px;
    display: inline-flex; align-items: center; gap: 4px;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
    letter-spacing: .1px; line-height: 1.3;
  }
  /* 사진 좌상단 상태 배지 (추천/확인매물 등) — 타입칩과 동일한 크기로 정렬 통일 */
  .prop-badge-top {
    color: #fff; font-size: 11px; font-weight: 800;
    padding: 4px 9px; border-radius: 5px;
    letter-spacing: .1px; line-height: 1.3;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
  }
  /* 우상단 리본(강력추천) */
  .prop-badge-ribbon {
    position: absolute; top: 0; right: 0; overflow: hidden;
    width: 80px; height: 80px; z-index: 3; pointer-events: none;
  }
  .prop-badge-ribbon-text {
    position: absolute; top: 16px; right: -18px; width: 84px;
    background: #dc2626; color: #fff; font-size: 11px; font-weight: 800;
    text-align: center; padding: 5px 0; transform: rotate(45deg);
    box-shadow: 0 2px 5px rgba(0,0,0,.35); letter-spacing: .5px;
  }
  /* 거래완료/계약완료 전체 오버레이 텍스트 */
  .prop-badge-overlay-text {
    color: #fff; font-size: 22px; font-weight: 900;
    letter-spacing: 4px; text-shadow: 0 2px 10px rgba(0,0,0,.7);
  }
  /* 사진 하단 특징 태그 (역세권/주차가능 등) — 톤을 하나로 통일한 글래스 스타일로 정돈 */
  .prop-badge-bottom {
    color: #fff; font-size: 10px; font-weight: 600;
    padding: 3px 8px; border-radius: 5px; line-height: 1.3;
    background: rgba(15, 23, 42, .55) !important;
    border: 1px solid rgba(255,255,255,.22);
    backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
  }

  /* ── 간편상담 + CTA ── */
  .inquiry-row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 16px; padding: 20px 0;
  }
  .inquiry-box {
    background: #fff; border-radius: 8px;
    border: 1px solid #e8ecf0; padding: 20px 22px;
  }
  .inquiry-title { font-size: 16px; font-weight: 800; color: #222; margin-bottom: 4px; }
  .inquiry-sub   { font-size: 12px; color: #888; margin-bottom: 14px; }
  .inquiry-form  { display: flex; flex-direction: column; gap: 8px; }
  .inquiry-row-input { display: flex; gap: 8px; }
  .inquiry-input {
    flex: 1; min-width: 0; padding: 9px 12px; border: 1px solid #dde3ec;
    border-radius: 5px; font-size: 13px; font-family: inherit; outline: none;
  }
  .inquiry-input:focus { border-color: #c0392b; }
  .inquiry-textarea {
    width: 100%; padding: 9px 12px; border: 1px solid #dde3ec;
    border-radius: 5px; font-size: 13px; font-family: inherit;
    resize: none; height: 72px; outline: none;
  }
  .inquiry-check { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #666; }
  .inquiry-check a { color: #c0392b; text-decoration: underline; }
  .inquiry-terms-btn {
    margin-left: auto; padding: 2px 8px; font-size: 11px; color: #555;
    background: #f2f4f7; border: 1px solid #dde3ec; border-radius: 4px;
    cursor: pointer; font-family: inherit; white-space: nowrap;
  }
  .inquiry-terms-btn:hover { background: #e8ecf0; }

  /* ── 개인정보 수집 안내 모달 ── */
  .terms-modal-overlay {
    display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5);
    z-index: 2000; align-items: center; justify-content: center; padding: 16px;
  }
  .terms-modal-overlay.active { display: flex; }
  .terms-modal {
    background: #fff; border-radius: 8px; max-width: 480px; width: 100%;
    max-height: 84vh; display: flex; flex-direction: column; overflow: hidden;
  }
  .terms-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid #eee;
  }
  .terms-modal-head h3 { font-size: 16px; font-weight: 800; color: #222; }
  .terms-modal-close {
    background: none; border: none; font-size: 20px; color: #999;
    cursor: pointer; line-height: 1; padding: 4px;
  }
  .terms-modal-body { padding: 18px 20px; overflow-y: auto; font-size: 13px; color: #444; line-height: 1.7; }
  .terms-modal-body h4 { font-size: 14px; font-weight: 800; color: #222; margin: 16px 0 8px; }
  .terms-modal-body h4:first-child { margin-top: 0; }
  .terms-modal-body ul { margin: 6px 0 0; padding-left: 18px; }
  .terms-modal-body li { margin-bottom: 4px; }
  .terms-modal-foot { padding: 14px 20px; border-top: 1px solid #eee; }
  .terms-modal-ok {
    width: 100%; padding: 11px; background: #e65c00; color: #fff;
    border: none; border-radius: 5px; font-size: 14px; font-weight: 700;
    cursor: pointer; font-family: inherit;
  }
  .terms-modal-ok:hover { background: #cc4f00; }
  .inquiry-submit {
    width: 100%; padding: 11px; background: #e65c00; color: #fff;
    border: none; border-radius: 5px; font-size: 14px; font-weight: 700;
    cursor: pointer; font-family: inherit;
  }
  .inquiry-submit:hover { background: #cc4f00; }

  .cta-cards { display: flex; flex-direction: column; gap: 12px; }
  .cta-card {
    display: flex; align-items: center; gap: 14px;
    background: #fff; border-radius: 8px; border: 1px solid #e8ecf0;
    padding: 16px 18px; cursor: pointer;
    transition: box-shadow .15s;
  }
  .cta-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
  .cta-card-icon { font-size: 32px; flex-shrink: 0; }
  .cta-card-text .cta-card-title { font-size: 15px; font-weight: 800; color: #222; margin-bottom: 3px; }
  .cta-card-text .cta-card-desc  { font-size: 12px; color: #888; }

  /* ── 정부기관 로고 바 ── */
  .gov-bar {
    background: #fff; border-top: 1px solid #e8ecf0; border-bottom: 1px solid #e8ecf0;
    padding: 16px 0; margin: 10px 0 0;
  }
  .gov-bar-inner {
    max-width: 1200px; margin: 0 auto; padding: 0 16px;
    display: flex; align-items: center; justify-content: center;
    gap: 30px; flex-wrap: wrap;
  }
  .gov-item {
    display: flex; align-items: center; gap: 7px;
    font-size: 12px; color: #555; font-weight: 600;
    white-space: nowrap; cursor: pointer;
    text-decoration: none;
    padding: 4px 8px; border-radius: 6px;
    transition: background .15s, color .15s;
  }
  .gov-item:hover { background: #f0f4ff; color: #1a56db; }
  .gov-item-icon { font-size: 20px; }

  /* ── 푸터: gnb.js(FNB_CSS)로 이전됨. #fnb-mount 사용 ── */

  /* ── 카카오 플로팅 버튼 ── */
  .float-btns {
    position: fixed; right: 16px; bottom: 80px;
    display: flex; flex-direction: column; gap: 8px; z-index: 999;
  }
  .float-btn {
    width: 52px; height: 52px; border-radius: 12px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700; cursor: pointer;
    box-shadow: 0 3px 12px rgba(0,0,0,.2);
    text-decoration: none;
  }
  .float-talk    { background: #03c75a; color: #fff; }
  .float-kakao   { background: #fee500; color: #3c1e1e; }
  .float-youtube { background: #ff0000; color: #fff; }
  .float-chat    { background: #1a56db; color: #fff; }
  .float-btn span { font-size: 18px; line-height: 1; margin-bottom: 2px; }

  /* ── 스크롤 탑(플로팅 버튼 그룹의 일원으로 편입 — 유튜브 버튼과 겹치던 문제 해소) ── */
  .scroll-top-btn {
    background: rgba(30,30,50,.75); color: #fff; border: none;
    font-family: inherit; font-size: 10px;
  }
  .scroll-top-btn span { font-size: 18px; }
  .scroll-top-btn:hover { background: rgba(30,30,50,.9); }

  /* ── 반응형 ── */
  @media (max-width: 1024px) {
    /* 카드 개수가 항상 8개(카테고리 2+6, 매물 8개)라 3열로 나누면
       나머지가 딱 안 떨어져 마지막 줄에 빈 칸이 남는 문제가 있었음(태블릿 가로모드에서 두드러짐).
       8은 4의 배수이므로 4열을 그대로 유지해 768px(모바일 전용 레이아웃 시작점) 직전까지 빈틈없이 채움 */
    .hero-wrap { min-height: 280px; }
    .hero-slide-content { padding: 0 28px; }
    .hero-main-title { font-size: 28px; }
  }

  @media (max-width: 768px) {
    .hero-wrap { min-height: 160px; }
    .hero-slide-content { padding: 0 20px; }
    .hero-slide { align-items: flex-end; padding-bottom: 44px; }
    .hero-tag-line { font-size: 12px; }
    .hero-main-title { font-size: 24px; margin-bottom: 8px; }
    .hero-sub { font-size: 13px; margin-bottom: 14px; }
    .hero-slide-content .hero-search { display: none; }
    .hero-arrow { width: 28px; height: 48px; font-size: 16px; }

    .hero-search-mobile-wrap { display: block; background: #fff; padding: 12px 16px; box-shadow: 0 2px 10px rgba(0,0,0,.08); position: relative; margin-top: 0; z-index: 5; }
    .hero-dots { bottom: 26px; }
    .hero-search-mobile { max-width: none; box-shadow: none; border: 1px solid #eee; margin-top: 0; }
    .hero-search-mobile input { height: 44px; font-size: 13px; padding: 0 12px; }
    .hero-search-mobile button { height: 44px; padding: 0 18px; font-size: 13px; }

    .sec-wrap { padding: 22px 0 16px; }
    .sec-title { font-size: 17px; }
    .sec-sub { font-size: 12px; margin-bottom: 12px; }

    .cat-grid { display: flex; flex-direction: column; gap: 8px; }
    .cat-top-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .cat-top-row .cat-card { height: auto; aspect-ratio: 4/2.2; }
    .cat-top-row .cat-bg-icon { font-size: 38px; }
    .cat-top-row .cat-name { font-size: 12.5px; }
    .cat-top-row .cat-sub { font-size: 10px; }

    /* 나머지 6개 종류는 공간 절약을 위해 3열 x 2줄, 라벨만 표시하는 단순 버튼형으로 */
    .cat-main-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
    }
    .cat-main-row .cat-card {
      height: auto;
      aspect-ratio: auto;
      min-height: 52px;
    }
    .cat-main-row .cat-bg-icon,
    .cat-main-row .cat-sub,
    .cat-main-row .cat-more-btn { display: none; }
    .cat-main-row .cat-overlay {
      position: static; height: 100%;
      background: rgba(0,0,0,.12);
      align-items: center; justify-content: center;
      padding: 6px 4px;
    }
    .cat-main-row .cat-name {
      font-size: 12px; text-align: center;
      white-space: normal; line-height: 1.25; margin-bottom: 0;
    }

    .prop-card-loc { flex-wrap: wrap; }
    .prop-card-loc-text { flex-basis: 100%; }
    .prop-card-id { display: none; }

    /* 카드가 2열(50%)로 좁아지므로 배지도 비율에 맞게 축소 (톤/모양은 PC와 동일하게 유지) */
    .prop-badge-top {
      font-size: 8.5px; padding: 2px 6px; letter-spacing: .1px;
    }
    .prop-badge-ribbon { width: 56px; height: 56px; }
    .prop-badge-ribbon-text {
      font-size: 8px; width: 60px; padding: 3px 0;
      top: 11px; right: -13px;
    }
    .prop-badge-overlay-text { font-size: 15px; letter-spacing: 2px; }
    .prop-type-chip {
      font-size: 8px; font-weight: 700;
      padding: 2px 5px; border-radius: 4px;
      gap: 2px; box-shadow: none;
    }
    .prop-badge-bottom {
      font-size: 8px; font-weight: 600;
      padding: 2px 5px; border-radius: 4px;
      gap: 2px; box-shadow: none;
    }


    .prop-grid {
      display: flex; grid-template-columns: none;
      overflow-x: auto; scroll-snap-type: x mandatory;
      gap: 10px; -webkit-overflow-scrolling: touch; scrollbar-width: none;
      overscroll-behavior-x: contain;
    }
    .prop-grid::-webkit-scrollbar { display: none; }
    .prop-grid .prop-page {
      display: flex; flex: 0 0 100%; gap: 10px; scroll-snap-align: start;
    }
    .prop-grid .prop-card {
      flex: 0 0 calc(50% - 5px);
    }
    .carousel-dots {
      display: flex; justify-content: center; align-items: center;
      gap: 6px; margin-top: 12px;
    }
    .carousel-dots .carousel-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: #d1d5db; transition: all .2s; cursor: pointer;
    }
    .carousel-dots .carousel-dot.active {
      width: 16px; border-radius: 3px; background: #c0392b;
    }
    .prop-tabs { display: none; }

    .inquiry-row { grid-template-columns: 1fr; gap: 14px; padding: 16px 0; }
    .inquiry-box { padding: 16px 18px; }
    .inquiry-input, .inquiry-textarea, .hero-search-mobile input, .lp-input { font-size: 16px; }
    .inquiry-check { flex-wrap: wrap; row-gap: 8px; }
    .inquiry-terms-btn { padding: 5px 10px; font-size: 12px; }

    .terms-modal { max-height: 88vh; }
    .terms-modal-head { padding: 14px 16px; }
    .terms-modal-body { padding: 16px; font-size: 12.5px; }
    .terms-modal-foot { padding: 12px 16px; }

    .gov-bar { display: none; }

    /* 상단바에 전화/문자 아이콘을 공통 노출하므로 사이드 플로팅 배지의 전화 버튼은 제거 */
    .float-chat { display: none; }
    /* 하단 고정 탭바(mobile-bottom-nav)에 가리지 않도록 살짝 띄움 */
    .float-btns { bottom: 76px; }
  }

  @media (max-width: 480px) {
    .hero-main-title { font-size: 20px; }
    .hero-sub { display: none; }
    .hero-search-mobile { border-radius: 6px; }
    .hero-search-mobile input { font-size: 13px; padding: 0 10px; }
    .hero-search-mobile button { padding: 0 14px; font-size: 12.5px; }

    .cat-grid { gap: 8px; }
    .cat-top-row { gap: 8px; }
    .cat-top-row .cat-card { aspect-ratio: 4/2.6; }
    .cat-main-row { gap: 6px; }
    .cat-main-row .cat-card { min-height: 46px; }
    .cat-main-row .cat-name { font-size: 11px; }

    .prop-card-img { aspect-ratio: 16/10; }
    .prop-badge-top { font-size: 7.5px; padding: 2px 5px; }
    .prop-badge-ribbon { width: 48px; height: 48px; }
    .prop-badge-ribbon-text {
      font-size: 7px; width: 52px; padding: 2px 0;
      top: 9px; right: -11px;
    }
    .prop-badge-overlay-text { font-size: 13px; letter-spacing: 1.5px; }
    .prop-badge-bottom,
    .prop-type-chip {
      font-size: 7px; padding: 2px 4px; gap: 1px;
    }


    .inquiry-row-input { flex-direction: column; }

    .terms-modal-overlay { padding: 10px; align-items: flex-end; }
    .terms-modal { max-height: 90vh; border-radius: 12px 12px 0 0; }
    .terms-modal-body { padding: 14px 16px; font-size: 12px; }
    .terms-modal-body h4 { font-size: 13px; }

    .gov-bar { padding: 12px 0; }
    .gov-bar-inner { gap: 10px 14px; }
    .gov-item-icon { font-size: 16px; }

    .float-btns { right: 10px; bottom: 76px; }
    .float-btn { width: 44px; height: 44px; font-size: 9px; }
    .float-btn span { font-size: 15px; }
  }
  /* Dark mode 비활성화: 이 페이지는 별도 다크 테마 토큰을 쓰지 않아
     prefers-color-scheme:dark 환경에서 정의되지 않은 CSS 변수(--color-bg-primary 등)로 인해
     헤더/푸터 배경이 투명 처리되던 문제가 있어 해당 블록을 제거함. */