/* ═══════════════════════════════════════════════════════════
   여수포털뉴스 · 거래포털 · 부동산 전용 CSS
   realestate.css
═══════════════════════════════════════════════════════════ */

/* ── CSS 변수 ── */
:root {
  --re-primary:      #e67e22;
  --re-primary-dark: #c0392b;
  --re-blue:         #2563eb;
  --re-green:        #16a34a;
  --re-red:          #dc2626;
  --re-purple:       #7c3aed;
  --re-gray:         #64748b;
  --re-bg:           #f8fafc;
  --re-white:        #ffffff;
  --re-border:       #e2e8f0;
  --re-text:         #1e293b;
  --re-muted:        #64748b;
  --re-radius:       10px;
  --re-shadow:       0 2px 8px rgba(0,0,0,.08);
  --re-shadow-lg:    0 6px 24px rgba(0,0,0,.12);
}

/* ── sector-inner grid 탈출 ── */
.re-subnav,
.re-page-header,
.re-type-tabs,
.re-filter-panel,
.re-content-wrap { grid-column: 1 / -1; width: 100%; box-sizing: border-box; }

/* ══ 서브네비 ══ */
.re-subnav { background:#fff; border-bottom:1px solid #e2e8f0; position:sticky; top:0; z-index:50; }
.re-subnav-inner { max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; gap:4px; padding:10px 16px; align-items:center; }
.re-snav-item { display:inline-flex; align-items:center; gap:5px; padding:7px 14px; border-radius:20px; background:#f1f5f9; color:#475569; font-size:13px; font-weight:500; text-decoration:none; transition:all .15s; }
.re-snav-item:hover,.re-snav-item.active { background:var(--re-primary); color:#fff; }
.re-snav-write { margin-left:auto; display:inline-flex; align-items:center; gap:6px; padding:7px 16px; border-radius:20px; background:var(--re-primary); color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.re-snav-write:hover { background:var(--re-primary-dark); }

/* ══ 페이지 헤더 ══ */
.re-page-header { background:linear-gradient(135deg,#e67e22 0%,#d35400 100%); color:#fff; padding:28px 24px; }
.re-page-header-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
.re-page-header h1 { margin:0 0 6px; font-size:24px; font-weight:800; }
.re-page-header p  { margin:0; opacity:.88; font-size:13.5px; }

/* ══ 거래유형 탭 ══ */
.re-type-tabs { background:#fff; border-bottom:1px solid #e2e8f0; }
.re-type-tabs-inner { max-width:1100px; margin:0 auto; display:flex; gap:0; overflow-x:auto; }
.re-ttab { display:flex; align-items:center; gap:6px; padding:11px 18px; font-size:13px; font-weight:600; color:#64748b; text-decoration:none; border-bottom:2px solid transparent; white-space:nowrap; transition:all .15s; }
.re-ttab:hover  { color:var(--re-primary); }
.re-ttab.active { color:var(--re-primary); border-bottom-color:var(--re-primary); }
.re-ttab-cnt { font-size:11px; background:#f1f5f9; border-radius:10px; padding:1px 7px; }
.re-ttab.active .re-ttab-cnt { background:#fff3cd; color:#b45309; }

/* ══ 필터 패널 ══ */
.re-filter-panel { background:#fff; border-bottom:1px solid #e2e8f0; padding:12px 0; }
.re-filter-inner { max-width:1100px; margin:0 auto; padding:0 16px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.re-fselect,.re-finput { padding:6px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13px; color:#374151; background:#fff; }
.re-fselect:focus,.re-finput:focus { outline:none; border-color:var(--re-primary); }
.re-fbtn-search { padding:6px 16px; border-radius:8px; background:var(--re-primary); color:#fff; border:none; font-size:13px; font-weight:600; cursor:pointer; }
.re-fbtn-reset { padding:6px 12px; border-radius:8px; background:#f1f5f9; color:#64748b; border:1.5px solid #e2e8f0; font-size:13px; cursor:pointer; text-decoration:none; }

/* ══ 콘텐츠 ══ */
.re-content-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 260px; gap:24px; padding:24px 16px 60px; align-items:start; }
.re-list-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.re-list-total { font-size:13px; color:#64748b; }
.re-sort-sel { padding:5px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13px; background:#fff; }

/* ── 카드 그리드 (3열) ── */
.re-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.re-card { display:flex; flex-direction:column; background:#fff; border-radius:12px; border:1.5px solid #f1f5f9; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.06); text-decoration:none; color:#1e293b; transition:all .18s; }
.re-card:hover { border-color:#fed7aa; box-shadow:0 4px 14px rgba(230,126,34,.12); transform:translateY(-2px); }

/* 썸네일 */
.re-card-thumb { position:relative; width:100%; padding-top:70%; background:#f8fafc; overflow:hidden; }
.re-card-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.re-card:hover .re-card-thumb img { transform:scale(1.04); }
.re-thumb-blank { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:32px; color:#cbd5e1; }
.re-sold-overlay { position:absolute; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:700; }

/* 뱃지 */
.re-deal-badge { position:absolute; top:8px; left:8px; padding:3px 9px; border-radius:6px; font-size:11px; font-weight:700; z-index:3; }
.re-prop-badge { position:absolute; top:8px; right:8px; padding:3px 9px; border-radius:6px; font-size:11px; font-weight:700; background:rgba(0,0,0,.45); color:#fff; z-index:3; }
.re-badge-sale  { background:#fee2e2; color:#dc2626; }
.re-badge-rent  { background:#dbeafe; color:#2563eb; }
.re-badge-lease { background:#d1fae5; color:#059669; }
.re-badge-short { background:#ede9fe; color:#7c3aed; }
.re-badge-new   { background:#fff3cd; color:#b45309; }

/* 카드 본문 */
.re-card-body { padding:12px 13px 14px; }
.re-card-region { font-size:11px; color:#94a3b8; margin-bottom:3px; }
.re-card-title { font-size:13.5px; font-weight:700; margin-bottom:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.re-card-price { font-size:17px; font-weight:800; color:var(--re-primary); margin-bottom:5px; }
.re-card-area { font-size:11.5px; color:#94a3b8; display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
.re-card-features { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:4px; }
.re-feat-tag { display:inline-block; padding:2px 7px; background:#f1f5f9; color:#64748b; border-radius:4px; font-size:10px; }
.re-card-meta { font-size:11.5px; color:#94a3b8; display:flex; flex-wrap:wrap; gap:8px; padding-top:8px; border-top:1px solid #f1f5f9; }

/* ── 사이드바 ── */
.re-sb-box { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:18px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.re-sb-title { font-size:14px; font-weight:700; color:#1e293b; margin-bottom:14px; }

/* ── 거래완료 뱃지 ── */
.re-badge-sold { background:#e2e8f0; color:#64748b; }

/* ── 빈 상태 ── */
.re-empty { grid-column:1/-1; text-align:center; padding:60px 24px; background:#f8fafc; border-radius:14px; color:#94a3b8; }
.re-empty i { font-size:40px; display:block; margin-bottom:10px; }

/* ── 페이지네이션 ── */
.re-pagination { display:flex; align-items:center; justify-content:center; gap:4px; margin-top:28px; grid-column:1/-1; }
.re-pag-btn { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:8px; font-size:13px; text-decoration:none; font-weight:500; background:#fff; color:#475569; border:1.5px solid #e2e8f0; transition:all .15s; }
.re-pag-btn:hover  { border-color:var(--re-primary); color:var(--re-primary); }
.re-pag-btn.active { background:var(--re-primary); color:#fff; border-color:var(--re-primary); }
.re-pag-btn.disabled { opacity:.4; pointer-events:none; }

@media (max-width:860px) { .re-content-wrap{grid-template-columns:1fr;} .re-sidebar{display:none;} }
@media (max-width:600px) { .re-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:400px) { .re-grid{grid-template-columns:1fr;} }

/* ═══════════════════════════════
   상세보기 공통 – 마켓 구조 통일
═══════════════════════════════ */

/* mkt-detail-wrap 재정의 (부동산 색상 적용) */
.mkt-detail-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 280px; gap:24px; padding:24px 16px 60px; align-items:start; }
.mkt-gallery-main { width:100%; border-radius:14px; overflow:hidden; background:#1e293b; }
.mkt-gallery-main img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; cursor:zoom-in; }
.mkt-gallery-blank { width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; font-size:60px; color:#4b5563; background:#f8fafc; border-radius:14px; }
.mkt-detail-h1 { font-size:20px; font-weight:800; color:#1e293b; margin:16px 0 10px; }
.mkt-price-box { background:var(--re-bg); border:1.5px solid #fed7aa; border-radius:12px; padding:14px 18px; margin-bottom:16px; }
.mkt-price-main { font-size:24px; font-weight:800; color:var(--re-primary); }
.mkt-info-table { width:100%; border-collapse:collapse; margin-bottom:18px; }
.mkt-info-table th, .mkt-info-table td { padding:8px 12px; border-bottom:1px solid #f1f5f9; font-size:13.5px; text-align:left; }
.mkt-info-table th { color:#64748b; font-weight:600; width:80px; background:#f8fafc; }
.mkt-desc-box { background:#fff; border:1.5px solid #f1f5f9; border-radius:12px; padding:16px; margin-bottom:16px; }
.mkt-desc-box h3 { font-size:15px; font-weight:700; margin:0 0 10px; }
.mkt-desc-box p  { font-size:14px; line-height:1.8; color:#374151; white-space:pre-wrap; margin:0; }
.mkt-nav-row { display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.mkt-nav-btn { flex:1; padding:10px 14px; border-radius:9px; font-size:13px; font-weight:600; border:1.5px solid #e2e8f0; background:#fff; color:#475569; cursor:pointer; text-decoration:none; text-align:center; transition:all .15s; white-space:nowrap; }
.mkt-nav-btn:hover { border-color:var(--re-primary); color:var(--re-primary); }
.mkt-nav-btn.danger { border-color:#dc2626; color:#dc2626; }
.mkt-nav-btn.danger:hover { background:#dc2626; color:#fff; }
.mkt-contact-card { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:18px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.mkt-contact-card h3 { font-size:14px; font-weight:700; margin:0 0 12px; }
.mkt-contact-phone { font-size:18px; font-weight:800; color:var(--re-primary); margin-bottom:12px; }
.mkt-call-btn { display:block; width:100%; padding:10px; border-radius:9px; background:var(--re-primary); color:#fff; font-size:14px; font-weight:700; text-align:center; text-decoration:none; box-sizing:border-box; transition:background .15s; }
.mkt-call-btn:hover { background:var(--re-primary-dark); }
@media (max-width:860px) { .mkt-detail-wrap { grid-template-columns:1fr; } }

/* ═══════════════════════════════
   상세보기 (detail)  – 기존 red- 클래스 보존
═══════════════════════════════ */
.red-wrap { grid-column:1/-1; width:100%; box-sizing:border-box; padding:24px 16px 60px; }
.red-wrap-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 280px; gap:24px; align-items:start; }

/* 등록 완료 알림 */
.red-written-notice { background:#d1fae5; border:1.5px solid #6ee7b7; color:#065f46; padding:12px 16px; border-radius:10px; margin-bottom:16px; display:flex; align-items:center; gap:8px; font-size:13.5px; grid-column:1/-1; }

/* 본문 2단 레이아웃 */
.red-body { display:grid; grid-template-columns:1fr 280px; gap:24px; align-items:start; }
.red-main { min-width:0; }

/* 헤더 영역 */
.red-header { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:22px; margin-bottom:18px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-breadcrumb { display:flex; align-items:center; gap:6px; font-size:12px; color:#94a3b8; margin-bottom:12px; }
.red-breadcrumb a { color:#94a3b8; text-decoration:none; }
.red-breadcrumb a:hover { color:var(--re-primary); }
.red-badges { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.red-badge { padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; }
.red-title { font-size:20px; font-weight:800; color:#1e293b; margin:0 0 12px; line-height:1.35; }
.red-price-box { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.red-price-main { font-size:24px; font-weight:800; color:var(--re-primary); }
.red-price-sub { font-size:14px; font-weight:600; color:#64748b; }
.red-meta-row { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:#94a3b8; padding-top:12px; border-top:1px solid #f1f5f9; }
.red-meta-row span { display:inline-flex; align-items:center; gap:4px; }

/* 갤러리 */
.red-gallery { margin-bottom:18px; }
.red-gallery-main { width:100%; border-radius:14px; overflow:hidden; background:#1e293b; cursor:zoom-in; }
.red-gallery-main img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.red-gallery-blank { width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; font-size:60px; color:#4b5563; background:#f8fafc; border-radius:14px; }
.red-gallery-thumbs { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.red-thumb { width:66px; height:66px; border-radius:8px; overflow:hidden; cursor:pointer; border:2px solid transparent; transition:all .15s; flex-shrink:0; }
.red-thumb.active { border-color:var(--re-primary); }
.red-thumb img { width:100%; height:100%; object-fit:cover; }

/* 정보 박스 */
.red-infobox { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-infobox-header { padding:12px 18px; font-size:14px; font-weight:700; color:#1e293b; background:#f8fafc; border-bottom:1.5px solid #f1f5f9; display:flex; align-items:center; gap:8px; }
.red-inforow { display:grid; grid-template-columns:100px 1fr; border-bottom:1px solid #f1f5f9; }
.red-inforow:last-child { border-bottom:none; }
.red-inforow-label { padding:10px 14px; background:#f8fafc; font-size:12px; font-weight:600; color:#64748b; display:flex; align-items:center; gap:5px; border-right:1px solid #f1f5f9; }
.red-inforow-val { padding:10px 14px; font-size:13.5px; color:#1e293b; }
.red-inforow-val.price-val { font-size:16px; font-weight:800; color:var(--re-primary); }

/* 특징 태그 */
.red-feature-tags { display:flex; flex-wrap:wrap; gap:6px; padding:12px 18px; }
.red-feat-tag { padding:3px 10px; background:#fff3e0; color:var(--re-primary); border:1px solid #fed7aa; border-radius:6px; font-size:11px; font-weight:700; }

/* 상세 설명 */
.red-desc { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-desc-body { padding:16px 18px; font-size:14px; line-height:1.85; color:#374151; white-space:pre-wrap; margin:0; }

/* 하단 버튼 */
.red-footer-btns { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.red-fbtn { display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:9px; font-size:13px; font-weight:600; border:1.5px solid #e2e8f0; background:#fff; color:#475569; cursor:pointer; text-decoration:none; text-align:center; transition:all .15s; }
.red-fbtn:hover { border-color:var(--re-primary); color:var(--re-primary); }
.red-fbtn-edit { background:#2563eb; color:#fff; border-color:#2563eb; }
.red-fbtn-edit:hover { background:#1d4ed8; color:#fff; }
.red-fbtn-delete { background:#dc2626; color:#fff; border-color:#dc2626; }
.red-fbtn-delete:hover { background:#b91c1c; color:#fff; }

/* 이전/다음 */
.red-prevnext { border:1.5px solid #f1f5f9; border-radius:12px; overflow:hidden; margin-top:16px; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-pn-item { display:flex; align-items:center; gap:10px; padding:11px 16px; text-decoration:none; color:#1e293b; border-bottom:1px solid #f1f5f9; font-size:13px; transition:background .15s; }
.red-pn-item:last-child { border-bottom:none; }
.red-pn-item:hover { background:#fff9f0; }
.red-pn-dir { font-size:11px; color:#94a3b8; min-width:34px; }
.red-pn-title { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.red-pn-price { font-size:11.5px; color:var(--re-primary); font-weight:700; white-space:nowrap; }

/* 사이드바 카드 공통 */
.red-side-card { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-side-header { padding:12px 18px; font-size:14px; font-weight:700; color:#1e293b; background:#f8fafc; border-bottom:1.5px solid #f1f5f9; display:flex; align-items:center; gap:8px; }
.red-side-body { padding:16px 18px; }

/* 연락처 카드 */
.red-contact-card { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-contact-header { padding:13px 18px; font-weight:700; font-size:14px; background:linear-gradient(135deg,#e67e22,#d35400); color:#fff; display:flex; align-items:center; gap:8px; }
.red-contact-body { padding:16px 18px; }
.red-contact-type { display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:12px; margin-bottom:10px; }
.red-contact-type-owner  { background:#d1fae5; color:#065f46; }
.red-contact-type-agency { background:#dbeafe; color:#1e40af; }
.red-contact-name { font-size:16px; font-weight:800; color:#1e293b; margin-bottom:12px; }
.red-phone-btn { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; padding:11px; background:var(--re-primary); color:#fff; border:none; border-radius:9px; font-size:14px; font-weight:700; text-align:center; text-decoration:none; cursor:pointer; transition:background .15s; margin-bottom:8px; box-sizing:border-box; }
.red-phone-btn:hover { background:var(--re-primary-dark); }
.red-phone-hint { font-size:11px; color:#94a3b8; text-align:center; }

/* 요약 정보 카드 */
.red-summary-card { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; overflow:hidden; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.red-summary-header { padding:12px 16px; font-weight:700; font-size:14px; background:#f8fafc; border-bottom:1.5px solid #f1f5f9; display:flex; align-items:center; gap:6px; color:#1e293b; }
.red-summary-body { padding:12px 16px; display:flex; flex-direction:column; gap:9px; font-size:13px; color:#64748b; }
.red-summary-item { display:flex; justify-content:space-between; align-items:center; }
.red-summary-item .sval { font-weight:700; color:#1e293b; text-align:right; }
.red-summary-item .sval.price { color:var(--re-primary); font-size:15px; }

/* ═══════════════════════════════
   등록/수정 폼 (write / edit)  – 마켓 패턴
═══════════════════════════════ */
.rew-container { grid-column:1/-1; width:100%; box-sizing:border-box; padding:24px 16px 60px; }
.rew-container-inner { max-width:860px; margin:0 auto; }

/* 페이지 타이틀 */
.rew-page-title { margin-bottom:22px; }
.rew-page-title h1 { font-size:20px; font-weight:800; color:#1e293b; margin:0 0 5px; }
.rew-page-title p { font-size:13px; color:#64748b; margin:0; }
.rew-required-mark { color:#dc2626; }

/* 섹션 카드 */
.rew-section { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:22px; margin-bottom:18px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.rew-section-title { font-size:15px; font-weight:700; color:#1e293b; margin:0 0 16px; padding-bottom:10px; border-bottom:1.5px solid #f1f5f9; display:flex; align-items:center; gap:8px; }
.rew-section-title i { color:var(--re-primary); }

/* 행 레이아웃 */
.rew-row { display:grid; grid-template-columns:120px 1fr; border-bottom:1px solid #f1f5f9; min-height:48px; }
.rew-row:last-child { border-bottom:none; }
.rew-label { padding:12px 14px; background:#f8fafc; color:#64748b; font-size:13px; font-weight:600; display:flex; align-items:center; gap:5px; }
.rew-label.rew-required::after { content:' *'; color:#dc2626; }
.rew-field { padding:10px 14px; display:flex; flex-direction:column; justify-content:center; gap:6px; }

/* 입력 요소 */
.rew-input,.rew-select,.rew-textarea { padding:8px 12px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13.5px; color:#1e293b; background:#fff; outline:none; transition:border-color .15s; box-sizing:border-box; }
.rew-input:focus,.rew-select:focus,.rew-textarea:focus { border-color:var(--re-primary); }
.rew-input { width:100%; }
.rew-input-sm { max-width:130px; }
.rew-input-md { max-width:220px; }
.rew-textarea { width:100%; min-height:90px; resize:vertical; font-family:inherit; }
.rew-select-group { display:flex; gap:8px; flex-wrap:wrap; }
.rew-inline { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rew-unit { font-size:13px; color:#64748b; }
.rew-hint { font-size:11.5px; color:#94a3b8; display:flex; align-items:center; gap:4px; }

/* 이미지 업로드 */
.rew-img-upload-area { border:2px dashed #e2e8f0; border-radius:10px; padding:22px; text-align:center; cursor:pointer; transition:all .15s; background:#fafafa; position:relative; }
.rew-img-upload-area:hover { border-color:var(--re-primary); background:#fff9f0; }
.rew-img-upload-area input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.rew-img-upload-icon { font-size:28px; color:#cbd5e1; margin-bottom:8px; }
.rew-img-upload-text { font-size:13.5px; color:#64748b; }
.rew-img-upload-sub { font-size:11.5px; color:#94a3b8; margin-top:4px; }
.rew-img-preview-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.rew-img-preview-item { width:80px; height:80px; border-radius:8px; overflow:hidden; position:relative; border:1.5px solid #e2e8f0; }
.rew-img-preview-item img { width:100%; height:100%; object-fit:cover; }

/* 거래유형 라디오 칩 */
.rew-deal-type-group { display:flex; gap:8px; flex-wrap:wrap; padding-top:4px; }
.rew-deal-type-label { display:inline-flex; align-items:center; gap:5px; padding:7px 14px; border:1.5px solid #e2e8f0; border-radius:20px; cursor:pointer; font-size:13px; font-weight:600; color:#64748b; transition:all .15s; user-select:none; }
.rew-deal-type-label input { display:none; }
.rew-deal-type-label:hover { border-color:var(--re-primary); color:var(--re-primary); }
.rew-deal-type-label.checked { background:var(--re-primary); color:#fff; border-color:var(--re-primary); }

/* 오류 알럿 */
.rew-alert { padding:13px 16px; border-radius:10px; margin-bottom:18px; display:flex; align-items:flex-start; gap:10px; font-size:13.5px; }
.rew-alert-error { background:#fef2f2; border:1.5px solid #fca5a5; color:#991b1b; }
.rew-alert-error ul { margin:4px 0 0 16px; padding:0; }
.rew-alert-error li { font-size:13px; line-height:1.7; }

/* 제출 버튼 */
.rew-submit-row { display:flex; gap:10px; justify-content:center; margin-top:6px; padding-top:6px; }
.rew-btn-submit { padding:12px 36px; border-radius:10px; background:var(--re-primary); color:#fff; font-size:15px; font-weight:700; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:background .15s; }
.rew-btn-submit:hover { background:var(--re-primary-dark); }
.rew-btn-cancel { padding:12px 24px; border-radius:10px; background:#f1f5f9; color:#475569; font-size:15px; font-weight:600; border:1.5px solid #e2e8f0; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:all .15s; }
.rew-btn-cancel:hover { background:#e2e8f0; }

/* ══ 거래포털 메인 인덱스 ══ */
.deal-index-wrap { grid-column:1/-1; width:100%; box-sizing:border-box; max-width: 100%; padding: 0 16px 60px; }
.deal-index-wrap-inner { max-width: 1200px; margin: 0 auto; }
.deal-hero {
  background: linear-gradient(135deg, #e67e22 0%, #c0392b 100%);
  color: #fff; padding: 40px 24px; border-radius: 0 0 20px 20px;
  margin-bottom: 32px; text-align: center;
}
.deal-hero h1 { font-size: 2rem; font-weight: 900; margin: 0 0 10px; }
.deal-hero p { margin: 0 0 20px; opacity: .85; font-size: 0.95rem; }
.deal-submenu-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px; max-width: 720px; margin: 0 auto;
}
.deal-submenu-card {
  background: rgba(255,255,255,.15); border-radius: 12px;
  padding: 18px 10px; text-align: center; text-decoration: none;
  color: #fff; transition: all .2s; border: 2px solid rgba(255,255,255,.2);
}
.deal-submenu-card:hover { background: rgba(255,255,255,.25); transform: translateY(-3px); }
.deal-submenu-card.active { background: rgba(255,255,255,.3); border-color: rgba(255,255,255,.6); }
.deal-submenu-icon { font-size: 1.8rem; margin-bottom: 8px; }
.deal-submenu-name { font-size: 0.85rem; font-weight: 700; }

/* 최근 부동산 섹션 */
.deal-section { margin-bottom: 36px; }
.deal-section-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--re-border);
}
.deal-section-title {
  font-size: 1.1rem; font-weight: 800; color: var(--re-text);
  display: flex; align-items: center; gap: 8px;
}
.deal-section-more {
  font-size: 0.82rem; color: var(--re-primary); text-decoration: none;
  display: flex; align-items: center; gap: 4px;
}
.deal-section-more:hover { text-decoration: underline; }

/* 비밀번호 모달 */
#rePwModal {
  display: none; position: fixed; inset: 0; z-index: 999;
  background: rgba(0,0,0,.5); align-items: center; justify-content: center;
}
#rePwModal.open { display: flex; }
.re-pw-modal-box {
  background: var(--re-white); border-radius: 14px; padding: 28px 28px 24px;
  width: 340px; max-width: 95vw; box-shadow: 0 20px 60px rgba(0,0,0,.2);
}
.re-pw-modal-icon { text-align: center; font-size: 2rem; color: var(--re-primary); margin-bottom: 8px; }
.re-pw-modal-title { text-align: center; font-size: 1rem; font-weight: 700; color: var(--re-text); margin-bottom: 4px; }
.re-pw-modal-desc { text-align: center; font-size: 0.82rem; color: var(--re-muted); margin-bottom: 18px; }
.re-pw-modal-input {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--re-border);
  border-radius: 8px; font-size: 0.9rem; outline: none; margin-bottom: 14px;
  box-sizing: border-box; transition: border-color .15s;
}
.re-pw-modal-input:focus { border-color: var(--re-primary); }
.re-pw-modal-btns { display: flex; gap: 8px; }
.re-pw-modal-submit {
  flex: 1; padding: 10px; background: var(--re-primary); color: var(--re-white);
  border: none; border-radius: 8px; font-size: 0.88rem; font-weight: 700;
  cursor: pointer; transition: background .15s;
}
.re-pw-modal-submit:hover { background: var(--re-primary-dark); }
.re-pw-modal-cancel {
  padding: 10px 16px; background: var(--re-white); color: var(--re-muted);
  border: 1.5px solid var(--re-border); border-radius: 8px;
  font-size: 0.85rem; cursor: pointer; transition: all .15s;
}
.re-pw-modal-cancel:hover { background: var(--re-bg); }

/* ══ 라이트박스 ══ */
#reLightbox {
  display: none; position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,.92); align-items: center; justify-content: center;
}
#reLightbox.open { display: flex; }
#reLightboxImg { max-width: 92vw; max-height: 88vh; border-radius: 6px; }
#reLightboxClose {
  position: absolute; top: 16px; right: 16px;
  background: rgba(255,255,255,.15); border: none; color: #fff;
  font-size: 1.3rem; width: 40px; height: 40px; border-radius: 50%;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}

/* ══ 반응형 ══ */
@media (max-width: 900px) {
  .red-body { grid-template-columns: 1fr; }
  .red-contact-card { position: static; }
  .deal-submenu-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .re-grid { grid-template-columns: 1fr; }
  .red-title { font-size: 1.2rem; }
  .red-price-main { font-size: 1.4rem; }
  .rew-row { grid-template-columns: 90px 1fr; }
  .rew-label { padding: 10px 10px; font-size: 0.75rem; }
  .rew-field { padding: 8px 10px; }
  .deal-submenu-grid { grid-template-columns: repeat(2, 1fr); }
}
