/* realty.ayo.pe.kr — 공인중개사·아파트 단지 독자 스킨 (2026-09-27, 사이트 고유 디자인 규칙).
 *
 * 콘셉트: **분양 카탈로그 × 평면도**. 중개사무소와 아파트 단지를 찾는 사람은 "어디의 · 어떤 집(사무소)" 을
 * 본다 — 모델하우스 안내 책자와 평면도 도면의 말투로 화면을 짠다.
 * site.css(디자인 A) 위에 덮어쓰고 전부 body.site-realty 아래로 가둔다 — 다른 사이트에 새지 않는다.
 *
 *   헤더   : 짙은 숲색 판 위에 평면도(벽체·방 칸) 무늬 + 박공지붕 마크 + 명조풍 상호(Hahmlet)
 *   탭     : 동 번호판(놋쇠 테두리 사각 명판, 선택 시 놋쇠 채움)
 *   요약표 : 매물 안내 카드(위 놋쇠 띠 · 라벨 작은 대문자풍)
 *   질답   : 호수 문패 — 질문마다 101호·102호 … 번호판(CSS counter)
 *   목록   : 2열 세대 카드 — 모서리에 작은 박공지붕 표식
 *   지역   : 왼쪽 굵은 숲색 기둥이 있는 단지 표지판
 *   글꼴   : 제목 Hahmlet · 본문 IBM Plex Sans KR
 *
 * ⚠️ 광고 유닛(<ins>·.ad-top·.ad-row 안쪽)에는 배경·테두리·라벨을 씌우지 않는다(site.css 애드센스 절).
 * ⚠️ 질문(h2)과 답(p) 사이에 요소를 끼우지 않는다 — 장식은 ::before/::after 로만.
 * ⚠️ 색으로 좋고 나쁨(시세·호재)을 말하지 않는다 — 놋쇠색은 강조 표식일 뿐이다.
 */

body.site-realty {
  --fg: #1d2622;
  --fg-soft: #44524c;
  --muted: #74817b;
  --line: #d6dcd3;
  --line-soft: #e7ebe4;
  --bg: #ffffff;
  --bg-soft: #f1f3ee;
  --accent: #23523f;          /* 숲색(모델하우스 외벽) */
  --accent-strong: #163a2c;
  --accent-soft: #e3ede7;
  --accent-wash: #f3f7f3;
  --accent-line: #b9cfc2;
  --forest: #1c3f33;
  --brass: #b0843a;           /* 놋쇠 명판 */
  --brass-soft: #f4ead6;
  --paper: #f5f3ec;
  --title: "Hahmlet", "Noto Serif KR", "Apple SD Gothic Neo", serif;
  --radius: 4px;
  --wrap: 880px;
  background: var(--paper);
  font-family: "IBM Plex Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

body.site-realty main,
body.site-realty .site-foot,
body.site-realty .ad-top,
body.site-realty .top-search { max-width: var(--wrap); }

/* ── 헤더: 평면도 판 ─────────────────────────────────────────────────── */
body.site-realty .site-head {
  position: relative;
  max-width: none;
  margin: 0 0 6px;
  padding: 26px max(20px, calc((100% - var(--wrap)) / 2 + 20px)) 18px;
  border-bottom: 5px solid var(--brass);
  background-color: var(--forest);
  /* 평면도: 굵은 벽체(큰 칸) + 얇은 가구선(작은 칸) */
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, .10) 3px, transparent 3px),
    linear-gradient(rgba(255, 255, 255, .10) 3px, transparent 3px),
    linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px);
  background-size: 180px 120px, 180px 120px, 20px 20px, 20px 20px;
  background-position: -40px -30px, -40px -30px, 0 0, 0 0;
  align-items: flex-end;
}
body.site-realty .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-right: auto;
  font-family: var(--title);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.5px;
  line-height: 1.15;
}
/* 박공지붕 마크 — 지붕 삼각 + 문 */
body.site-realty .brand::before {
  content: "";
  flex: none;
  width: 30px; height: 30px;
  background:
    linear-gradient(var(--forest), var(--forest)) 11px 18px / 8px 12px no-repeat,
    var(--brass);
  clip-path: polygon(50% 0, 100% 45%, 88% 45%, 88% 100%, 12% 100%, 12% 45%, 0 45%);
}
body.site-realty .brand a { color: #fff; }
body.site-realty .brand a:hover { color: #f4ead6; }

/* 탭: 동 번호판 */
body.site-realty .site-head nav { gap: 8px; }
body.site-realty .site-head nav a {
  padding: 6px 14px;
  border-radius: 3px;
  border: 1.5px solid var(--brass);
  background: rgba(0, 0, 0, .18);
  color: #f4ead6;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .2px;
}
body.site-realty .site-head nav a:hover,
body.site-realty .site-head nav a.on {
  background: var(--brass);
  color: #1c2a23;
  text-decoration: none;
}

/* 검색창 */
body.site-realty .site-search input[type="search"] {
  border: 1.5px solid var(--forest);
  border-radius: 3px;
  background: #fff;
}
body.site-realty .site-search button {
  border-radius: 3px;
  background: var(--forest);
  font-weight: 600;
}
body.site-realty .site-search button:hover { background: var(--brass); color: #1c2a23; }

/* ── 제목·경로 ───────────────────────────────────────────────────────── */
body.site-realty .crumb { font-size: 12.5px; }
body.site-realty .crumb a { color: var(--fg-soft); }
body.site-realty .crumb a::after { content: "  ▸"; font-size: 9px; color: var(--brass); }
body.site-realty .crumb span { color: var(--accent); font-weight: 600; }

body.site-realty h1 {
  position: relative;
  font-family: var(--title);
  font-weight: 700;
  font-size: 31px;
  line-height: 1.3;
  letter-spacing: -0.6px;
  color: var(--forest);
  margin: 18px 0 24px;
  padding-left: 18px;
}
/* 제목 왼쪽 기둥 — 위는 놋쇠 머릿돌 */
body.site-realty h1::before {
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 6px;
  background: linear-gradient(var(--brass) 0 12px, var(--forest) 12px);
}
body.site-realty .lead { color: var(--fg-soft); margin: -6px 0 24px; }
body.site-realty .data-date {
  display: inline-block;
  margin: -8px 0 16px;
  padding: 3px 10px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: #fff;
  font-size: 12.5px;
  color: var(--muted);
}

/* ── 요약표: 매물 안내 카드 ───────────────────────────────────────────── */
body.site-realty .summary {
  border: 1px solid var(--accent-line);
  border-top: 5px solid var(--brass);
  border-radius: 0;
  background: #fff;
  font-size: 15px;
  box-shadow: 0 8px 22px rgba(28, 63, 51, .07);
}
body.site-realty .summary tr + tr th,
body.site-realty .summary tr + tr td { border-top: 1px solid var(--line-soft); }
body.site-realty .summary th {
  width: 104px;
  padding: 12px 14px;
  background: var(--accent-wash);
  color: var(--accent);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .6px;
  border-right: 1px solid var(--line-soft);
}
body.site-realty .summary td { padding: 12px 16px; font-weight: 500; }
body.site-realty .btn { border-radius: 3px; }
body.site-realty .btn-phone {
  border: 1.5px solid var(--brass);
  color: #7d5a1e;
  background: var(--brass-soft);
}
body.site-realty .btn-phone:hover { background: var(--brass); color: #1c2a23; }

/* ── 질답: 호수 문패 ─────────────────────────────────────────────────── */
body.site-realty .qa-head {
  font-family: var(--title);
  font-size: 20px;
  font-weight: 700;
  color: var(--forest);
}
body.site-realty .qa-head::before {
  content: "";
  width: 22px; height: 22px;
  border-radius: 0;
  background: var(--brass);
  clip-path: polygon(50% 0, 100% 45%, 88% 45%, 88% 100%, 12% 100%, 12% 45%, 0 45%);
}
body.site-realty .qa { counter-reset: rq; }
body.site-realty .qa-list {
  padding: 6px 24px;
  border: 1px solid var(--line);
  border-radius: 0;
  background:
    linear-gradient(90deg, var(--accent-soft) 0 4px, transparent 4px),
    #fff;
  box-shadow: none;
}
body.site-realty .qa-item {
  counter-increment: rq;
  padding: 18px 0;
  border-bottom: 1px dashed var(--line);
}
body.site-realty .qa-item:last-child { border-bottom: 0; }
body.site-realty .qa-item h2 {
  align-items: baseline;
  gap: 12px;
  font-size: 17px;
  color: var(--forest);
}
body.site-realty .qa-item h2::before {
  content: "1" counter(rq, decimal-leading-zero) "호";
  flex: none;
  min-width: 52px;
  padding: 1px 6px;
  border: 1.5px solid var(--brass);
  border-radius: 2px;
  background: var(--forest);
  color: #f4ead6;
  font-family: var(--title);
  font-size: 12.5px;
  font-weight: 600;
  text-align: center;
  letter-spacing: .3px;
}
body.site-realty .qa-item p {
  padding-left: 64px;
  color: var(--fg-soft);
  line-height: 1.8;
}

/* ── 지도·주변 ───────────────────────────────────────────────────────── */
body.site-realty .mapsec-head { font-family: var(--title); color: var(--forest); }
body.site-realty .map-box { border-radius: 0; }
body.site-realty .map-label { color: var(--accent); font-weight: 700; }
body.site-realty .near { border-top: 3px double var(--accent-line); }
body.site-realty .near h2 {
  border-left: 0;
  padding-left: 22px;
  position: relative;
  font-family: var(--title);
  font-weight: 600;
  color: var(--forest);
}
/* 위치 핀 — 물방울 도형 */
body.site-realty .near h2::before {
  content: "";
  position: absolute;
  left: 2px; top: 6px;
  width: 12px; height: 12px;
  border-radius: 50% 50% 50% 0;
  background: var(--brass);
  transform: rotate(-45deg);
}
body.site-realty .near-block {
  padding: 2px 18px 16px;
  background: #fff;
  border: 1px solid var(--line);
}
body.site-realty .near ul { padding-left: 4px; }
body.site-realty .near li { padding: 4px 0; border-bottom: 1px dotted var(--line); }
body.site-realty .near li:last-child { border-bottom: 0; }
body.site-realty .dist {
  border-radius: 2px;
  background: var(--forest);
  color: #f4ead6;
}

/* ── 목록: 세대 카드 ─────────────────────────────────────────────────── */
body.site-realty section.list > h2,
body.site-realty section.children > h2,
body.site-realty section.other-sites > h2 {
  font-family: var(--title);
  font-size: 19px;
  font-weight: 600;
  color: var(--forest);
  border-bottom: 2px solid var(--forest);
}
body.site-realty .place-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
body.site-realty .place-list li {
  position: relative;
  padding: 16px 16px 14px 46px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  align-content: start;
}
body.site-realty .place-list li:not(.ad-row)::before {
  content: "";
  position: absolute;
  left: 14px; top: 18px;
  width: 20px; height: 20px;
  background:
    linear-gradient(#fff, #fff) 7px 11px / 6px 9px no-repeat,
    var(--accent);
  clip-path: polygon(50% 0, 100% 45%, 88% 45%, 88% 100%, 12% 100%, 12% 45%, 0 45%);
}
body.site-realty .place-list li:not(.ad-row):hover { border-color: var(--brass); box-shadow: inset 0 -3px 0 var(--brass); }
body.site-realty .place-list li > a { color: var(--forest); font-size: 16px; }
body.site-realty .place-list li.ad-row {
  grid-column: 1 / -1;
  padding: 0; border: 0; background: none; box-shadow: none;
}
body.site-realty .cat {
  border-radius: 2px;
  background: var(--brass-soft);
  color: #7d5a1e;
  font-weight: 600;
}

/* 지역 링크: 단지 표지판 */
body.site-realty .region-links {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
}
body.site-realty .region-links li {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--forest);
  background: #fff;
}
body.site-realty .region-links li:hover { border-left-color: var(--brass); background: var(--accent-wash); }
body.site-realty .region-links li { flex-wrap: wrap; min-width: 0; }
body.site-realty .region-links li > a { color: var(--forest); min-width: 0; overflow-wrap: anywhere; }
body.site-realty .count { color: #8a6526; font-weight: 600; }

/* 메뉴 카드: 모델하우스 */
body.site-realty .menu-cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
body.site-realty .menu-cards li {
  position: relative;
  padding: 64px 20px 20px;
  border: 1px solid var(--accent-line);
  border-radius: 0;
  background: #fff;
  flex-wrap: wrap;
}
body.site-realty .menu-cards li::before {
  content: "";
  position: absolute;
  left: 20px; top: 14px;
  width: 64px; height: 40px;
  background:
    linear-gradient(90deg, var(--forest) 0 8px, transparent 8px 22px, var(--forest) 22px 30px, transparent 30px) 10px 24px / 48px 16px no-repeat,
    var(--accent-soft);
  border-bottom: 3px solid var(--forest);
  clip-path: polygon(50% 0, 100% 40%, 100% 100%, 0 100%, 0 40%);
}
body.site-realty .menu-cards li:hover { border-color: var(--brass); background: var(--accent-wash); }
body.site-realty .menu-cards li > a { font-family: var(--title); font-size: 21px; color: var(--forest); }

/* ── 출처·삭제요청·바닥 ───────────────────────────────────────────────── */
body.site-realty .source { border-top: 1px solid var(--accent-line); }
body.site-realty .source h2 { font-family: var(--title); color: var(--forest); }
body.site-realty .removal {
  border-radius: 0;
  border-color: var(--accent-line);
  border-top: 4px solid var(--forest);
  background: var(--accent-wash);
  box-shadow: none;
}
body.site-realty .removal::before { display: none; }
body.site-realty .removal-icon { border-radius: 2px; background: var(--forest); color: #f4ead6; }
body.site-realty .btn-removal { background: var(--forest); box-shadow: none; }
body.site-realty .btn-removal:hover { background: var(--accent-strong); }

body.site-realty main.not-found h1 { font-size: 28px; }

body.site-realty .site-foot {
  max-width: none;
  margin-top: 48px;
  padding: 22px max(20px, calc((100% - var(--wrap)) / 2 + 20px)) 42px;
  border-top: 5px solid var(--brass);
  background: var(--forest);
  color: rgba(244, 234, 214, .82);
}
body.site-realty .site-foot a { color: #f4ead6; }

@media (max-width: 600px) {
  body.site-realty .site-head { padding: 20px 16px 14px; }
  body.site-realty .brand { font-size: 21px; gap: 10px; }
  body.site-realty .brand::before { width: 24px; height: 24px; background:
    linear-gradient(var(--forest), var(--forest)) 9px 14px / 6px 10px no-repeat, var(--brass); }
  body.site-realty h1 { font-size: 24px; padding-left: 14px; }
  body.site-realty .qa-list { padding: 4px 14px; }
  body.site-realty .qa-item h2 { flex-direction: column; gap: 6px; }
  body.site-realty .qa-item p { padding-left: 0; }
  body.site-realty .place-list { grid-template-columns: 1fr; }
  body.site-realty .region-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site-realty .summary th { width: 84px; padding: 10px; }
  body.site-realty .site-foot { padding: 20px 16px 36px; }
}

/* ── 다크 모드: 밤의 단지 ─────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  body.site-realty {
    --fg: #e7ece8;
    --fg-soft: #b9c4be;
    --muted: #8d9a93;
    --line: #33403a;
    --line-soft: #29342f;
    --bg: #17201c;
    --bg-soft: #1e2924;
    --accent: #8fc7ac;
    --accent-strong: #b3dcc7;
    --accent-soft: #223a2f;
    --accent-wash: #1b2a23;
    --accent-line: #3b5a4b;
    --forest: #13291f;
    --brass: #d2a95c;
    --brass-soft: #3a3020;
    --paper: #111815;
  }
  body.site-realty h1,
  body.site-realty .qa-head,
  body.site-realty .qa-item h2,
  body.site-realty .mapsec-head,
  body.site-realty .near h2,
  body.site-realty section.list > h2,
  body.site-realty section.children > h2,
  body.site-realty section.other-sites > h2,
  body.site-realty .source h2,
  body.site-realty .place-list li > a,
  body.site-realty .region-links li > a,
  body.site-realty .menu-cards li > a { color: #e3efe7; }
  body.site-realty h1::before { background: linear-gradient(var(--brass) 0 12px, var(--accent) 12px); }
  body.site-realty section.list > h2,
  body.site-realty section.children > h2,
  body.site-realty section.other-sites > h2 { border-bottom-color: var(--accent-line); }
  body.site-realty .summary,
  body.site-realty .qa-list,
  body.site-realty .near-block,
  body.site-realty .place-list li:not(.ad-row),
  body.site-realty .region-links li,
  body.site-realty .menu-cards li,
  body.site-realty .data-date,
  body.site-realty .site-search input[type="search"] { background: var(--bg); }
  body.site-realty .qa-list { background: linear-gradient(90deg, var(--accent-soft) 0 4px, transparent 4px), var(--bg); }
  body.site-realty .region-links li { border-left-color: var(--accent); }
  body.site-realty .count,
  body.site-realty .cat,
  body.site-realty .btn-phone { color: #e6c587; }
  body.site-realty .place-list li:not(.ad-row)::before { background: linear-gradient(var(--bg), var(--bg)) 7px 11px / 6px 9px no-repeat, var(--accent); }
  body.site-realty .menu-cards li::before {
    background:
      linear-gradient(90deg, var(--accent) 0 8px, transparent 8px 22px, var(--accent) 22px 30px, transparent 30px) 10px 24px / 48px 16px no-repeat,
      var(--accent-soft);
    border-bottom-color: var(--accent);
  }
  body.site-realty .btn-removal { background: #2c5a46; }
  body.site-realty .removal-icon { background: #2c5a46; }
}
body.site-realty .cat:empty { display: none; }

/* 값이 빈 요약표 줄(원본에 없는 칸)은 접는다 */
body.site-realty .summary tr:has(> td:empty) { display: none; }
