:root {
  --font-body: "Pretendard Variable", Pretendard, -apple-system, sans-serif;
  --font-kr: "Noto Sans KR", "Pretendard Variable", Pretendard, sans-serif;
  --deep: #0C1E36;
  --accent: #E8D9C4;
  --accent-deep: #C7A876;
  --accent-soft: #F5EEE4;
  --bg: #FFFFFF;
  --bg-soft: #F5F6F8;
  --ink: #1A1A1A;
  --desc: #475569;
  --line: #E4E7EC;
  --muted: #8A94A6;
  --max: 1080px;
  --radius: 999px;
  --card-radius: 14px;
  --title-display: 700 clamp(30px, 3.4vw, 40px)/1.2 var(--font-body);
  --body-4: 400 14.5px/1.7 var(--font-body);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); font: 400 16px/1.6 var(--font-body); letter-spacing: -0.02em; color: var(--ink); background: var(--bg); word-break: keep-all; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 28px; }
h1, h2, h3 { letter-spacing: -0.02em; }

/* ── 버튼 (B-21: 파스텔 accent 채움, 알약형) ── */
.btn-fill, .btn-line { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 30px; border-radius: var(--radius); font: 700 16px/1.2 var(--font-body); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.btn-fill { background: var(--accent); color: var(--deep); border: 1.5px solid var(--accent-deep); }
.btn-fill svg { width: 19px; height: 19px; flex-shrink: 0; }
.btn-fill:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(199,168,118,.35); }
.btn-line { border: 1.5px solid var(--line); color: var(--ink); }
.btn-line:hover { border-color: var(--deep); background: var(--bg-soft); transform: translateY(-2px); }

/* ── 헤더 ── */
header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: var(--deep); }
.hdr-inner { display: flex; align-items: center; justify-content: space-between; height: 70px; }
.header-logo { display: flex; flex-direction: column; gap: 1px; line-height: 1.2; }
.logo-company { font: 500 11px/1.3 var(--font-kr); color: rgba(255,255,255,.55); }
.logo-keyword { font: 700 22px/1 var(--font-body); color: #fff; letter-spacing: -0.02em; }
.hdr-right { display: flex; align-items: center; gap: 26px; }
nav { display: flex; gap: 26px; }
nav a { font: 600 15px/1.25 var(--font-body); color: rgba(255,255,255,.82); }
nav a:hover { color: var(--accent); }
.hdr-cta { display: inline-flex; align-items: center; gap: 8px; font: 700 14.5px/1.2 var(--font-body); color: var(--deep); background: var(--accent); padding: 10px 22px; border-radius: var(--radius); transition: transform .18s ease; }
.hdr-cta:hover { transform: translateY(-1px); background: var(--accent-deep); color: #fff; }
.hdr-cta svg { width: 17px; height: 17px; }
@media (max-width: 640px) {
  .hdr-cta-text { display: none; }
  .hdr-cta-phone { padding: 0; width: 40px; height: 40px; border-radius: 50%; }
  nav { display: none; }
}

/* ── 메인 히어로 (full-bleed, DNA: 스플릿 아님) ── */
.hero-idx { position: relative; min-height: 640px; display: flex; align-items: flex-end; overflow: hidden; }
.hero-idx-bg { position: absolute; inset: 0; }
.hero-idx-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; animation: hxzoom 18s ease-in-out infinite alternate; }
@keyframes hxzoom { from { transform: scale(1); } to { transform: scale(1.06); } }
.hero-idx-scrim { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(12,30,54,.86) 0%, rgba(12,30,54,.55) 42%, rgba(12,30,54,.18) 75%, rgba(12,30,54,.05) 100%); }
.hero-idx-inner { position: relative; z-index: 2; padding: 170px 28px 64px; color: #fff; }
.hero-idx-eyebrow { font: 700 14px/1.4 var(--font-body); color: var(--accent); letter-spacing: .02em; margin-bottom: 14px; }
.hero-idx h1 { font: 700 clamp(34px, 5vw, 56px)/1.14 var(--font-body); margin-bottom: 14px; }
.hero-idx-lead { font: 500 18px/1.5 var(--font-body); color: rgba(255,255,255,.88); max-width: 32em; margin-bottom: 26px; white-space: nowrap; overflow: visible; }
.hero-idx-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-idx-btns .btn-line { border-color: rgba(255,255,255,.55); color: #fff; }
.hero-idx-btns .btn-line:hover { background: rgba(255,255,255,.12); border-color: #fff; }
@media (max-width: 900px) {
  .hero-idx { min-height: 520px; }
  .hero-idx-inner { padding: 128px 20px 48px; }
  .hero-idx-lead { font-size: 15px; white-space: normal; }
}
@media (max-width: 480px) {
  .hero-idx { min-height: 440px; }
  .hero-idx-inner { padding: 108px 18px 40px; }
  .hero-idx h1 { font-size: 27px; }
}

/* ── 섹션 공통 ── */
section { padding: 88px 0; }
.on-soft { background: var(--bg-soft); }
.sec-head { text-align: center; max-width: 640px; margin: 0 auto 44px; }
.sec-label { font: 700 13px/1 var(--font-body); color: var(--accent-deep); letter-spacing: .04em; margin-bottom: 12px; }
.sec-title { font: var(--title-display); color: var(--ink); }
.sec-intro { margin-top: 14px; font: 500 15.5px/1.6 var(--font-body); color: var(--desc); }
@media (max-width: 640px) { section { padding: 56px 0; } .sec-title { font-size: 24px; } }

/* ── 시공사례 가로 스크롤 스트립 (DNA: 그리드 아님) ── */
.cases-strip { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; -webkit-overflow-scrolling: touch; }
.cases-strip::-webkit-scrollbar { height: 6px; }
.cases-strip::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
.case-card { flex: 0 0 300px; scroll-snap-align: start; display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--card-radius); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.case-card:hover { box-shadow: 0 14px 30px rgba(12,30,54,.12); transform: translateY(-3px); }
.case-img { aspect-ratio: 4/3; overflow: hidden; background: var(--bg-soft); }
.case-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.case-card:hover .case-img img { transform: scale(1.05); }
.case-body { padding: 18px 20px 22px; }
.case-num { font: 700 12px/1 var(--font-body); color: var(--accent-deep); margin-bottom: 8px; }
.case-title { font: 700 17px/1.3 var(--font-body); color: var(--ink); margin-bottom: 6px; }
.case-cap { font: var(--body-4); color: var(--desc); }
.related-links { display: flex; flex-wrap: wrap; gap: 12px; }
.related-links a { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1 var(--font-body); color: var(--ink); border: 1px solid var(--line); padding: 13px 20px; border-radius: var(--radius); transition: border-color .2s, background .2s; }
.related-links a:hover { border-color: var(--accent-deep); background: var(--accent-soft); }
.related-links a b { color: var(--accent-deep); }

/* ── 서비스: 가로 리스트 (카드형 아님) ── */
.svc-list { display: flex; flex-direction: column; border-top: 1px solid var(--line); max-width: 820px; margin: 0 auto; }
.svc-row { display: flex; align-items: flex-start; gap: 26px; padding: 30px 4px; border-bottom: 1px solid var(--line); }
.svc-row-icon { flex-shrink: 0; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: var(--accent-soft); border-radius: 50%; color: var(--accent-deep); }
.svc-row-icon svg { width: 28px; height: 28px; }
.svc-row-num { font: 700 12px/1 var(--font-body); color: var(--muted); margin-bottom: 6px; }
.svc-row-text h3 { font: 700 19px/1.3 var(--font-body); color: var(--ink); margin-bottom: 6px; }
.svc-row-text p { font: var(--body-4); color: var(--desc); max-width: 46em; }
@media (max-width: 640px) { .svc-row { gap: 16px; padding: 22px 2px; } .svc-row-icon { width: 44px; height: 44px; } .svc-row-icon svg { width: 23px; height: 23px; } }

/* ── 배너 브레이크 ── */
.banner-break { position: relative; padding: 0; min-height: 320px; display: flex; align-items: center; overflow: hidden; }
.banner-break img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.55); }
.banner-break-inner { position: relative; z-index: 2; }
.banner-break-inner p { font: 700 clamp(19px, 2.6vw, 28px)/1.5 var(--font-body); color: #fff; max-width: 18em; }

/* ── 생활공간 칩 + 진행순서 ── */
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 56px; }
.chip-row span { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 11px 22px; font: 600 14px/1 var(--font-body); color: var(--ink); }
.process-wrap { text-align: center; }
.process-label { font: 700 13px/1 var(--font-body); color: var(--accent-deep); letter-spacing: .04em; margin-bottom: 20px; }
.process-steps { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; }
.process-step-item { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.process-step-badge { width: 44px; height: 44px; border-radius: 50%; background: var(--deep); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 17px/1 var(--font-body); }
.process-step-name { font: 600 14px/1 var(--font-body); color: var(--ink); }
.process-arrow { color: var(--muted); font-size: 18px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.process-step-card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--card-radius); padding: 26px 18px; text-align: center; }
.process-step-card .num { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--deep); color: #fff; font: 700 14px/1 var(--font-body); margin: 0 auto 14px; }
.process-step-card .name { display: block; font: 700 16px/1.3 var(--font-body); margin-bottom: 6px; }
.process-step-card .desc { display: block; font: var(--body-4); color: var(--desc); }
@media (max-width: 720px) { .process-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .process-grid { grid-template-columns: 1fr; } .process-steps { gap: 8px; } }

/* ── 가이드: 리스트형 (서비스와 다른 형태) ── */
.guide-list { display: flex; flex-direction: column; gap: 12px; max-width: 760px; margin: 0 auto; }
.guide-row { display: flex; align-items: center; gap: 20px; background: #fff; border: 1px solid var(--line); border-radius: var(--card-radius); padding: 22px 26px; transition: border-color .2s, box-shadow .2s; }
.guide-row:hover { border-color: var(--accent-deep); box-shadow: 0 10px 24px rgba(12,30,54,.08); }
.guide-row-num { flex-shrink: 0; font: 700 20px/1 var(--font-body); color: var(--accent-deep); }
.guide-row-text { flex-grow: 1; display: flex; flex-direction: column; gap: 4px; }
.guide-row-text b { font: 700 16.5px/1.3 var(--font-body); color: var(--ink); }
.guide-row-text span { font: var(--body-4); color: var(--desc); }
.guide-row-arrow { flex-shrink: 0; color: var(--muted); font-size: 18px; }
@media (max-width: 640px) { .guide-row-text span { display: none; } }

/* ── FAQ: 좌측 accent 보더형 (박스카드 아님) ── */
.faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.faq-item { border-left: 3px solid var(--line); background: #fff; transition: border-color .2s; }
.faq-item.open { border-left-color: var(--accent-deep); background: var(--accent-soft); }
.faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; text-align: left; font: 700 16px/1.4 var(--font-body); color: var(--ink); background: none; border: none; cursor: pointer; }
.faq-mark { flex-shrink: 0; font: 400 22px/1 var(--font-body); color: var(--accent-deep); transition: transform .2s; }
.faq-item.open .faq-mark { transform: rotate(45deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
.faq-a-inner { padding: 0 22px 20px; font: var(--body-4); color: var(--desc); }

/* ── 클로징 (FAQ 아래 · 푸터 직전) ── */
.closing { position: relative; padding: 0; min-height: 460px; display: flex; align-items: center; overflow: hidden; }
.closing-bg { position: absolute; inset: 0; }
.closing-bg img { width: 100%; height: 100%; object-fit: cover; }
.closing-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,30,54,.72) 0%, rgba(12,30,54,.5) 100%); }
.closing-inner { position: relative; z-index: 2; text-align: center; padding: 90px 28px; color: #fff; }
.closing-eyebrow { font: 700 13px/1 var(--font-body); letter-spacing: .1em; color: var(--accent); margin-bottom: 18px; }
.closing-inner h2 { font: 700 clamp(24px, 3.4vw, 36px)/1.4 var(--font-body); margin-bottom: 16px; }
.closing-lead { font: 500 16px/1.6 var(--font-body); color: rgba(255,255,255,.85); margin-bottom: 30px; }

/* ── 푸터 ── */
footer { background: var(--deep); color: #fff; padding: 64px 0 0; }
.foot-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.12); }
.foot-brand { font: 700 22px/1 var(--font-body); margin-bottom: 10px; }
.foot-tagline { font: 500 14.5px/1.6 var(--font-kr); color: rgba(255,255,255,.65); }
.foot-cta-btns { display: flex; gap: 12px; }
.foot-btn-line { border-color: rgba(255,255,255,.35); color: #fff; }
.foot-btn-line:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.foot-body { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 32px 0; }
.foot-info-list { display: flex; flex-wrap: wrap; gap: 6px 18px; font: 500 13.5px/1.7 var(--font-kr); color: rgba(255,255,255,.55); }
.foot-info-list dt { font-weight: 700; color: rgba(255,255,255,.75); }
.foot-info-list dt::after { content: ""; }
.foot-info-list dd { margin-right: 10px; }
.foot-info-list dd.nowrap { white-space: nowrap; }
.sitemap-link { font: 500 11.5px/1.6 var(--font-kr); color: rgba(255,255,255,.28); letter-spacing: .01em; }
.sitemap-link:hover { color: rgba(255,255,255,.5); }
.foot-copy { padding: 22px 0; border-top: 1px solid rgba(255,255,255,.1); font: 400 12.5px/1 var(--font-body); color: rgba(255,255,255,.4); text-align: center; }
@media (max-width: 640px) {
  .foot-top, .foot-body { flex-direction: column; align-items: flex-start; }
  .foot-info-list { flex-direction: column; gap: 2px; }
}

/* ── 플로팅 빠른상담 (좌측, 클릭 시 번호 노출) ── */
.float-quick { position: fixed; left: 22px; bottom: 26px; z-index: 200; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; transition: opacity .2s ease, transform .2s ease; }
.float-quick.is-hidden { opacity: 0; transform: translateY(8px); pointer-events: none; }
.fq-call { width: 56px; height: 56px; border-radius: 50%; background: var(--accent-deep); color: #fff; display: flex; align-items: center; justify-content: center; border: none; cursor: pointer; box-shadow: 0 6px 18px rgba(12,30,54,.28); }
.fq-call svg { width: 24px; height: 24px; }
.fq-reveal { display: none; align-items: center; gap: 10px; background: var(--deep); color: #fff; padding: 12px 20px 12px 14px; border-radius: var(--radius); font: 700 14.5px/1 var(--font-body); box-shadow: 0 8px 20px rgba(12,30,54,.3); }
.fq-reveal svg { width: 18px; height: 18px; color: var(--accent); }
.float-quick.open .fq-reveal { display: inline-flex; }
.fq-top { width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid var(--line); color: var(--ink); display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(12,30,54,.12); }
.fq-top svg { width: 18px; height: 18px; }
@media (max-width: 640px) { .float-quick { left: 14px; bottom: 18px; } .fq-call { width: 50px; height: 50px; } }

/* ── 서브페이지 공통 히어로 (배경 이미지 + 살짝 밝은 오버레이, 다크 금지) ── */
.page-hero { position: relative; min-height: 320px; display: flex; align-items: center; margin-top: 70px; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; filter: blur(1.5px) brightness(.98); }
.hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.42) 0%, rgba(255,255,255,.3) 55%, rgba(255,255,255,.5) 100%); }
.hero-inner { position: relative; z-index: 2; padding: 64px 28px; }
.hero-eyebrow { font: 700 13px/1 var(--font-body); color: var(--deep); letter-spacing: .04em; margin-bottom: 12px; text-shadow: 0 1px 12px rgba(255,255,255,.8); }
.page-hero h1 { font: 700 clamp(26px, 3.6vw, 38px)/1.25 var(--font-body); color: var(--deep); text-shadow: 0 1px 16px rgba(255,255,255,.7); }
.hero-lead { margin-top: 12px; font: 600 15.5px/1.6 var(--font-body); color: #26364d; max-width: 34em; text-shadow: 0 1px 14px rgba(255,255,255,.7); }
@media (max-width: 640px) { .page-hero { min-height: 240px; margin-top: 62px; } .hero-inner { padding: 44px 20px; } }

/* ── 상세(gallery-case) 교차 레이아웃 고정 규칙 ── */
.case-hero { min-height: 380px; }
.case-lead-img { max-width: 900px; margin: 0 auto 48px; }
.case-lead-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; }
.guide-body { max-width: 720px; margin: 0 auto; }
.guide-body svg { width: 40px; height: 40px; color: var(--accent-deep); margin-bottom: 18px; }
.guide-body h2 { font: 700 clamp(20px, 2.2vw, 26px)/1.4 var(--font-body); color: var(--ink); margin: 40px 0 14px; }
.guide-body h2:first-child { margin-top: 0; }
.guide-body p { font: 400 15px/1.9 var(--font-body); color: #4B5563; margin-bottom: 8px; }
.detail-eyebrow { font: 700 11px/1 var(--font-body); color: var(--accent-deep); letter-spacing: .06em; margin: 44px 0 8px; text-transform: uppercase; }
.detail-eyebrow:first-child { margin-top: 0; }
.detail-eyebrow b { margin-right: 6px; }
.guide-note { margin-top: 40px; padding: 22px 24px; background: var(--bg-soft); border-radius: var(--card-radius); font: var(--body-4); color: var(--desc); }
.case-points-section { max-width: 720px; margin: 0 auto; padding: 0 28px 24px; }
.case-points-section h3 { font: 700 18px/1.3 var(--font-body); margin-bottom: 16px; }
.case-points { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
.case-points li { font: var(--body-4); color: var(--desc); padding-left: 20px; position: relative; }
.case-points li::before { content: ""; position: absolute; left: 0; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-deep); }
@media (max-width: 560px) { .case-points { grid-template-columns: 1fr; } }
.case-cta-wrap { text-align: center; padding: 40px 28px 0; }
.case-nav { max-width: 720px; margin: 48px auto 0; padding: 24px 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 16px; font: 600 14.5px/1.4 var(--font-body); }
.case-nav a:hover { color: var(--accent-deep); }
@media (max-width: 560px) { .case-nav { flex-direction: column; text-align: center; gap: 12px; } }

/* ── About / Contact / Portfolio / Sitemap / Region ── */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.about-img { border-radius: var(--card-radius); overflow: hidden; aspect-ratio: 4/3; }
.about-img img { width: 100%; height: 100%; object-fit: cover; }
.about-text p { font: 400 15.5px/1.9 var(--font-body); color: var(--desc); margin-bottom: 16px; }
.info-list { margin-top: 28px; border-top: 1px solid var(--line); }
.info-list li { display: flex; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); font: 500 14.5px/1.5 var(--font-kr); color: var(--ink); }
.info-list li b { flex-shrink: 0; width: 110px; color: var(--muted); font-weight: 600; }
@media (max-width: 820px) { .about-grid { grid-template-columns: 1fr; gap: 32px; } }

.contact-card { max-width: 560px; margin: 0 auto; padding: 48px 40px; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--bg-soft); text-align: center; }
.contact-tel { display: block; font: 700 clamp(30px, 5vw, 40px)/1 var(--font-body); color: var(--deep); margin: 16px 0 10px; }
.contact-note { font: var(--body-4); color: var(--desc); margin-bottom: 28px; }
.hero-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.contact-info-list { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); text-align: left; display: flex; flex-direction: column; gap: 8px; font: 500 14px/1.6 var(--font-kr); color: var(--desc); }
.contact-info-list b { color: var(--ink); margin-right: 8px; }

.portfolio-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .portfolio-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .portfolio-grid { grid-template-columns: 1fr; } }

.dong-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 24px; }
.dong-chip { font: 500 14px/1 var(--font-body); color: var(--desc); background: var(--bg-soft); border: 1px solid var(--line); padding: 9px 16px; border-radius: var(--radius); }
.nearby-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.nearby-list a { font: 600 14.5px/1 var(--font-body); color: var(--ink); border: 1px solid var(--line); padding: 10px 18px; border-radius: var(--radius); }
.nearby-list a:hover { border-color: var(--accent-deep); background: var(--accent-soft); }

.sitemap-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.sitemap-col h2 { font: 700 15px/1 var(--font-body); color: var(--accent-deep); margin-bottom: 16px; }
.sitemap-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.sitemap-col a { font: 500 14px/1.4 var(--font-kr); color: var(--desc); }
.sitemap-col a:hover { color: var(--ink); }
@media (max-width: 900px) { .sitemap-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sitemap-grid { grid-template-columns: 1fr; } }

/* ── 모바일 공통 정렬 규칙 ── */
@media (max-width: 640px) {
  .sec-head, .contact-card, .closing-inner { text-align: center; }
  .foot-info-list { text-align: left; }
  .case-cta-wrap .hero-btns, .hero-idx-btns { justify-content: center; }
}
