/*
  에코114 고객 웹 공통 스타일 — 디자인 v2 (2026-10-19)
  기준: 시안 v2 `_design/04_리디자인_시안/index.html` — 사장님 "너무 마음에 들어"(커밋 85056fc · fb8bc88).
  옛 기준(_design/03_상세화면/기준안_홈.html · 기준안_시스템.html · 2026-09-23 2차)은 v2 부터 쓰지 않는다.

  지키는 것
  - 치수·색·굵기·비율은 tokens.css 의 변수만 쓴다. 여기에 숫자나 색을 새로 적지 않는다.
    반투명은 토큰 색을 color-mix 로 섞어 만든다(섞는 비율도 토큰 — --glass-mix · --overlay-mix …).
  - 한글은 어절 단위로 줄을 바꾼다(word-break: keep-all; overflow-wrap: anywhere).
    본문 폭을 ch 단위나 좁은 max-width 로 묶지 않는다.
  - 모바일 우선. PC 는 가운데 480px 한 줄로 같은 화면을 보여 준다(개발문서 §8-4).
  - 숲색(--color-forest) 판은 넓은 정보판(숫자 띠 · 강조 단계 · 바닥)에만 쓴다. 작은 상자·화살표로 단추처럼 보이게 하지 않는다
    (9/27 사장님 "검은 칸이 버튼으로 착각돼" — 그래서 '약속 칸'은 숲색이 아니라 옅은 미색 카드다 · 색토큰 §1).
  - 홈과 랜딩 열여덟 장이 같은 부품을 쓴다(머리 · 약속 칸 · 진행 순서 · 자주 물으시는 것 · 바닥 · 상담 띠) — 모양은 여기 한 곳에서 정한다.

  상담 띠(개발문서 §8-4 "상담 버튼 (하단 상담 띠)")
  - 일반 문서 스크롤을 쓰고, 상담 띠를 본문 흐름의 맨 끝에 두어 화면 아래에 붙인다(position: sticky).
    띠가 본문 흐름 안에 자리를 차지하므로, 버튼 글자가 두 줄이 되어도 끝까지 내리면 마지막 내용이 띠 위에 온다.
  - 이 때문에 html·body 에 overflow 를 주지 않는다(주면 sticky 가 풀린다).
*/

/* ── 1. 기본 ─────────────────────────────────────────── */
* { box-sizing: border-box; }
/* --dock-reserve: 키보드 초점이 상담 띠 뒤로 숨지 않게 화면 아래에 비워 두는 높이(토큰으로 계산한 값).
   띠 높이 = 윗선 + 위 여백 + 상담 버튼 + 아래 여백 + 아이폰 홈 막대 영역. 상담 버튼 글자("24시간 상담")는 많아야 두 줄이다.
   1em 은 상담 버튼 글자 크기다. html 글자 크기를 본문 크기로 맞춰 두어 html 에서도 1em 이 같은 뜻이 된다. */
html { --dock-reserve: calc(var(--border-width) + var(--space-3) + max(var(--button-secondary-height), 1em * var(--line-height-button) * var(--two) + var(--space-3) * var(--two) + var(--border-width) * var(--two)) + var(--space-3) + env(safe-area-inset-bottom)); background: var(--color-surface); color-scheme: light; font-size: var(--font-size-body); scroll-padding-bottom: var(--dock-reserve); }
body { width: var(--full); max-width: var(--page-max); margin: var(--zero) auto; background: var(--color-bg); color: var(--color-text); font-family: var(--font-family); font-size: var(--font-size-body); font-weight: var(--font-weight-normal); line-height: var(--line-height-body); letter-spacing: var(--letter-spacing-body); word-break: keep-all; overflow-wrap: anywhere; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,p,ol,ul,dl,dd,figure { margin: var(--zero); }
h1,h2,h3,h4,strong { font-weight: var(--font-weight-strong); color: var(--color-text-strong); }
h1,h2 { font-weight: var(--font-weight-heavy); }
h1 { font-size: var(--font-size-display); line-height: var(--line-height-display); letter-spacing: var(--letter-spacing); }
h2 { font-size: var(--font-size-title); line-height: var(--line-height-title); letter-spacing: var(--letter-spacing); }
h3 { font-size: var(--font-size-section); line-height: var(--line-height-section); letter-spacing: var(--letter-spacing); }
h4 { font-size: var(--font-size-body); line-height: var(--line-height-body); }
ul,ol { list-style: none; padding: var(--zero); }
img { display: block; max-width: var(--full); }
button,input,textarea,select { font: inherit; color: inherit; }
button { cursor: pointer; }
button,input,a,summary { -webkit-tap-highlight-color: var(--color-clear); }
button,a,input,summary { touch-action: manipulation; }
button:disabled,input:disabled { cursor: not-allowed; }
a { color: inherit; text-underline-offset: var(--space-1); }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible { outline: var(--border-width-strong) solid var(--color-primary-strong); outline-offset: var(--space-1); }
/* 선 그림(화면에 바로 넣은 svg path) — 둥근 끝 선 */
svg { width: var(--icon-size); height: var(--icon-size); flex-shrink: var(--zero); fill: none; stroke: currentColor; stroke-width: var(--icon-stroke); stroke-linecap: round; stroke-linejoin: round; }
/* 면 그림 — 아이콘 묶음(/assets/img/icons.svg · Material Symbols Rounded = 앱 아이콘과 같은 모양) */
svg.ms { fill: currentColor; stroke: none; }
.small { font-size: var(--font-size-small); line-height: var(--line-height-small); color: var(--color-text-weak); }
.eyebrow { font-size: var(--font-size-small); line-height: var(--line-height-small); font-weight: var(--font-weight-medium); color: var(--color-text-weak); }
.gutter { padding-inline: var(--page-gutter); }
/* 낱말 묶음. 제목처럼 꼭 어절째 내려야 하는 곳에 붙인다("철거·" / "원상복구"). */
.word { display: inline-block; }

/* ── 2. 버튼 ─────────────────────────────────────────── */
/* 주 버튼: 화면에서 가장 중요한 행동 하나에만 쓴다. <a> 와 <button> 모두 같은 모양이다. 초록 바탕 + 흰 글씨(6.5:1) */
.button { display: flex; align-items: center; justify-content: center; gap: var(--space-2); width: var(--full); min-width: var(--touch-min); min-height: var(--button-height); padding: var(--space-3) var(--space-5); border: var(--border-width) solid var(--color-primary); border-radius: var(--radius-2); background: var(--color-primary); color: var(--color-on-primary); font-size: var(--font-size-button); font-weight: var(--font-weight-strong); line-height: var(--line-height-button); text-align: center; text-decoration: none; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; box-shadow: var(--shadow-1); }
.button:active { background: var(--color-primary-strong); border-color: var(--color-primary-strong); }
/* 보조 버튼: 흰 바탕 + 옅은 테두리 + 먹색 글씨(시안 v2) */
.button.secondary { min-height: var(--button-secondary-height); border-color: var(--color-border); background: var(--color-bg); color: var(--color-text-strong); font-size: var(--font-size-body); font-weight: var(--font-weight-strong); }
.button.secondary:active { background: var(--color-primary-weak); border-color: var(--color-primary); }
.button svg.ms { width: var(--icon-size); height: var(--icon-size); }
/* 작은 텍스트 버튼: 밑줄 + 화살표. 누름 영역은 48×48 이상 */
.text-button { display: inline-flex; align-items: center; justify-content: flex-start; gap: var(--space-2); min-width: var(--touch-min); min-height: var(--touch-min); padding: var(--space-2) var(--zero); border: none; border-radius: var(--radius-1); color: var(--color-primary-strong); background: var(--color-clear); font-size: var(--font-size-body); font-weight: var(--font-weight-medium); line-height: var(--line-height-body); text-decoration: underline; text-underline-offset: var(--space-1); }
/* 작은 표시(배지) — 누르는 것이 아니다. 누르는 칩은 .link-chips a(48px) · 신청서의 고르는 칩은 form.css .chip */
.badge { display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--chip-height); padding: var(--zero) var(--space-3); border-radius: var(--radius-pill); background: var(--color-primary-weak); color: var(--color-primary-strong); font-size: var(--font-size-small); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); }
.badge svg.ms { width: var(--icon-size-small); height: var(--icon-size-small); }

/* ── 3. 응대 약속(30분) + 신청 ───────────────────────── */
/* 옅은 미색 카드 안에 접수 시간 · 큰 초록 "30분" · 뜻. 바로 아래 가장 강한 버튼(신청).
   카드는 숲색·검은색으로 칠하지 않는다(9/27 사장님 "검은색 음영 있는 것 버튼으로 착각하게 돼") — 단추는 그 아래 초록 하나다.
   같은 부품을 쓰는 화면: 홈 · 랜딩 열여덟 장 · 신청 완료(form.css) · 지원금 결과(jiwongeum.css). */
.response-composition { display: grid; gap: var(--space-3); margin-top: var(--space-5); }
.response-panel { padding: var(--space-4) var(--space-5); border-radius: var(--radius-4); background: var(--color-surface); color: var(--color-text-strong); }
.response-caption { display: flex; align-items: center; gap: var(--space-2); color: var(--color-text-weak); font-size: var(--font-size-small); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); }
.response-caption::before { content: ""; flex: none; width: var(--dot-size); height: var(--dot-size); border-radius: var(--radius-pill); background: var(--color-primary); box-shadow: var(--zero) var(--zero) var(--zero) var(--dot-ring) color-mix(in srgb, var(--color-primary) var(--ring-mix), transparent); }
.response-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-4); margin-top: var(--space-1); }
/* flex-wrap: 글자를 아주 크게 키워 "30분"이 칸보다 넓어지면 "3/0" 으로 쪼개지지 않고 "30 / 분" 으로 내려간다(1차 검수 규칙). */
.response-time { display: inline-flex; flex: var(--zero) var(--zero) auto; flex-wrap: wrap; align-items: baseline; gap: var(--space-1); color: var(--color-primary); font-size: var(--font-size-display); line-height: var(--line-height-display); font-weight: var(--font-weight-heavy); letter-spacing: var(--letter-spacing); }
.response-time .unit { font-size: var(--font-size-section); line-height: var(--line-height-section); }
/* width: max-content + overflow-wrap: normal — 설명이 "30분" 옆에 다 들어가지 않으면 한 글자씩 세로로 끊기지 않고 묶음째 아랫줄로 내려간다. */
.response-meaning { flex: var(--zero) var(--one) auto; width: max-content; max-width: var(--full); min-width: var(--zero); color: var(--color-text-strong); font-size: var(--font-size-body); line-height: var(--line-height-section); word-break: keep-all; overflow-wrap: normal; }
.response-meaning strong,.response-meaning span { display: block; }
.response-meaning strong { color: var(--color-text-strong); }
.response-meaning span { margin-top: var(--space-1); color: var(--color-text-weak); font-size: var(--font-size-small); }

/* ── 4. 하는 일 (홈 — 사진 큰 칸 하나 + 아이콘 칸 둘) ───────── */
/* 두 칸이 한 칸보다 좁아지면(좁은 폰 · 글자를 크게 키운 폰) 저절로 한 줄에 하나 — 낱말이 칸보다 길어 갈리지 않게(옛 하는 일 타일과 같은 방식) */
.service-bento { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(var(--full), var(--card-basis)), var(--grid-flex))); gap: var(--space-3); }
.service-feature { grid-column: var(--one) / var(--grid-end); position: relative; display: flex; align-items: flex-end; min-height: var(--feature-card-height); padding: var(--space-5); border-radius: var(--radius-4); overflow: hidden; background: var(--color-forest); color: var(--color-bg); text-decoration: none; }
.service-feature img { position: absolute; inset: var(--zero); width: var(--full); height: var(--full); object-fit: cover; }
.service-feature::after { content: ""; position: absolute; inset: var(--zero); background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--color-text-strong) var(--overlay-mix), transparent)); }
.feature-text { position: relative; z-index: var(--one); }
.service-feature .ex-pill { left: var(--space-4); right: auto; top: var(--space-4); }
.feature-text .badge { background: color-mix(in srgb, var(--color-bg) var(--line-on-light), transparent); color: var(--color-bg); }
.feature-text h3 { margin-top: var(--space-2); color: var(--color-bg); font-size: var(--font-size-section); line-height: var(--line-height-section); font-weight: var(--font-weight-heavy); }
.feature-text p { color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); font-size: var(--font-size-small); line-height: var(--line-height-small); }
.feature-go { position: absolute; right: var(--space-4); top: var(--space-4); z-index: var(--one); display: grid; place-items: center; width: var(--touch-min); height: var(--touch-min); border-radius: var(--radius-pill); background: var(--color-accent); color: var(--color-text-strong); }
.service-card { display: flex; flex-direction: column; min-width: var(--zero); min-height: var(--card-min-height); padding: var(--space-4); border-radius: var(--radius-4); background: var(--color-surface); color: var(--color-text-strong); text-decoration: none; }
.icon-box { display: grid; place-items: center; width: var(--icon-box-size); height: var(--icon-box-size); border-radius: var(--radius-1); background: var(--color-bg); color: var(--color-primary); box-shadow: var(--shadow-1); }
.service-card h3 { margin-top: auto; padding-top: var(--space-4); font-size: var(--font-size-body); line-height: var(--line-height-section); font-weight: var(--font-weight-heavy); }
.service-card p { margin-top: var(--space-1); color: var(--color-text-weak); font-size: var(--font-size-small); line-height: var(--line-height-small); }
.service-note { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); color: var(--color-text-weak); font-size: var(--font-size-small); line-height: var(--line-height-small); }
.service-note svg.ms { width: var(--icon-size-small); height: var(--icon-size-small); }

/* ── 5. 진행 순서 (네 칸 카드 · 03 현장 방문 견적은 숲색 강조 칸) ─ */
.process-track { display: grid; gap: var(--space-3); }
.process-step { display: grid; grid-template-columns: auto minmax(var(--zero), var(--grid-flex)); align-items: start; gap: var(--space-4); padding: var(--space-4) var(--space-5); border-radius: var(--radius-4); background: var(--color-surface); }
.process-index { display: grid; place-items: center; min-width: var(--process-dot-size); min-height: var(--process-dot-size); padding-inline: var(--space-2); border-radius: var(--radius-pill); white-space: nowrap; background: var(--color-bg); color: var(--color-text-strong); font-size: var(--font-size-small); line-height: var(--line-height-small); font-weight: var(--font-weight-heavy); box-shadow: var(--shadow-1); }
.process-step h3 { font-size: var(--font-size-body); line-height: var(--line-height-section); font-weight: var(--font-weight-heavy); }
.process-step p { margin-top: var(--space-1); color: var(--color-text-weak); font-size: var(--font-size-small); line-height: var(--line-height-small); }
.process-feature { background: var(--color-forest); }
.process-feature .process-index { background: var(--color-accent); color: var(--color-text-strong); box-shadow: none; }
.process-feature h3 { margin-top: var(--space-2); color: var(--color-bg); font-size: var(--font-size-section); line-height: var(--line-height-section); }
.process-feature p { color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); }
.process-note { display: inline-flex; align-items: center; min-height: var(--chip-height); padding: var(--zero) var(--space-3); border-radius: var(--radius-pill); background: var(--color-accent); color: var(--color-text-strong); font-size: var(--font-size-small); line-height: var(--line-height-small); font-weight: var(--font-weight-strong); }

/* ── 6. 하단 상담 띠 ──────────────────────────────────── */
/* 화면 맨 아래 반투명 흰 띠. body(가운데 480px 열)의 마지막 요소로 두고 sticky 로 화면 아래에 붙인다.
   스크롤 중에는 화면 맨 아래에 붙어 있고, 끝까지 내리면 바닥 바로 아래 제자리에 놓여 마지막 내용을 가리지 않는다. */
.consultation-dock { position: sticky; bottom: var(--zero); z-index: var(--z-floating); display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); min-height: var(--dock-min-height); padding: var(--space-3) var(--page-gutter); padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom)); border-top: var(--border-width) solid var(--color-border); background: color-mix(in srgb, var(--color-bg) var(--glass-mix), transparent); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); clip-path: var(--dock-clip, none); }
/* 스크롤하기 전(맨 위)에 띠 윗선에 반쯤 걸친 것을 드러내거나(--dock-clip) 감춘다(--dock-veil — 띠 바로 위를 흰 바탕으로 덮는다).
   값은 dockGuard.mjs 가 화면에서 재어 넣고 스크롤하면 뺀다 — 접수 폼의 버튼 띠(form.css)와 같은 방식(실기 점검 W-7). */
.consultation-dock::before { content: ""; position: absolute; left: var(--zero); right: var(--zero); bottom: calc(var(--full) + var(--border-width)); height: var(--dock-veil, var(--zero)); background: var(--color-bg); }
/* 상담 버튼 자신에 초점이 갈 때는 화면을 움직이지 않는다(판정 상자를 비워 둔 높이만큼 위로 옮겨 "이미 보인다"고 판단하게 한다). */
.consultation-button { width: auto; max-width: var(--full); padding-inline: var(--space-5); gap: var(--space-2); border-radius: var(--radius-pill); scroll-margin-top: var(--dock-reserve); scroll-margin-bottom: calc(var(--dock-reserve) * -1); }
/* 앱 안(웹뷰)에서는 띠를 숨긴다 — 앱은 하단 탭 "상담"이 같은 일을 한다(개발문서 §8-4 · D-1).
   in-app 표시는 각 화면 머리말의 인라인 한 줄이 그리기 전에 <html> 에 붙인다(User-Agent 의 앱 표시 — §9-2). */
html.in-app { --dock-reserve: var(--zero); }
html.in-app .consultation-dock { display: none; }
html.in-app .home-footer { padding-bottom: calc(var(--space-6) + env(safe-area-inset-bottom)); }

/* ── 7. 머리 · 첫 화면 ─────────────────────────────────── */
.page-header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: var(--header-height); padding-block: var(--space-2); }
/* 뒤로 단추가 있는 화면(신청서 · 내 요청 · 지원금 · 방침)은 [←][로고] 를 왼쪽에 나란히 */
.page-header:has(.icon-button) { justify-content: flex-start; }
.brand { color: var(--color-text-strong); font-size: var(--font-size-section); font-weight: var(--font-weight-strong); line-height: var(--line-height-section); letter-spacing: var(--letter-spacing); }
/* 머리띠 로고(색토큰 §6): 가로형 로고 그림 — 높이 32px(--icon-size-service) · 폭은 그림 비율대로(약 107px). 이름은 대체 글(alt="에코114"). */
.brand-logo { display: block; height: var(--icon-size-service); width: auto; }
/* 홈 밖 페이지의 로고는 홈으로 가는 링크 — 누르는 곳은 48px(--touch-min). 머리띠 위아래 여백(8px)과 합쳐 머리띠 높이 64px 그대로
   (v2 — 머리 오른쪽 대표번호 알약(48px)과 같은 높이로 맞추려고 여백을 16 → 8 로 줄이고 링크의 음수 여백을 뺐다). */
a.brand { display: flex; align-items: center; min-height: var(--touch-min); }
/* 머리 오른쪽 대표번호(시안 v2) — 누르면 전화. 번호는 갈리지 않게 한 줄 */
.header-call { display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--touch-min); padding: var(--zero) var(--space-4); border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text-strong); font-size: var(--font-size-label); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); text-decoration: none; white-space: nowrap; }
.header-call svg.ms { width: var(--icon-size-chip); height: var(--icon-size-chip); color: var(--color-primary); }
.hero { padding-block: var(--space-3) var(--zero); }
.hero h1 { font-size: var(--font-size-title); line-height: var(--line-height-title); }
.hero .badge + h1 { margin-top: var(--space-4); }
/* 홈 첫 문구는 가장 크게 — 좁은 폰(320)에서도 첫 줄이 갈리지 않게 화면 폭에 맞춰 27~36px */
.hero-home h1 { font-size: clamp(var(--font-size-title), var(--hero-fluid), var(--font-size-display)); line-height: var(--line-height-display); }
/* 제목 안 첫 칩(철거 · 원상복구 · 폐기물 정리) — 검색에도 제목의 일부로 읽힌다 */
.hero-home h1 .badge { margin-bottom: var(--space-4); letter-spacing: var(--letter-spacing-body); }
.hero-headline { display: block; }
/* 연두 형광펜 — 글자 아래쪽에 연두를 깐다(연두 위 글씨는 먹색 · 색토큰 §3) */
.hero mark { background: none; color: inherit; box-shadow: inset var(--zero) var(--mark-depth) var(--zero) var(--color-accent); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.intro { margin-top: var(--space-3); color: var(--color-text); font-size: var(--font-size-body); line-height: var(--line-height-body); }
.intro strong { font-weight: var(--font-weight-strong); color: var(--color-primary-strong); }
.hero-more { margin-top: var(--space-3); }
.hero-note { display: flex; align-items: center; justify-content: center; gap: var(--space-2); margin-top: var(--space-3); color: var(--color-text-weak); font-size: var(--font-size-small); line-height: var(--line-height-small); text-align: center; }
/* 첫 화면 사진 — 깨끗하게 비운 공간(지금은 견본 사진 · "예시 사진" 표시를 붙인다 — 사장님 10/19) */
.hero-photo { position: relative; margin-top: var(--space-5); aspect-ratio: var(--photo-ratio-hero); border-radius: var(--radius-5); overflow: hidden; background: var(--color-surface); }
.hero-photo img,.case-photo img { width: var(--full); height: var(--full); object-fit: cover; }
.photo-badge { position: absolute; top: var(--space-3); left: var(--space-3); display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--chip-height); padding: var(--zero) var(--space-3) var(--zero) var(--space-2); border-radius: var(--radius-pill); background: color-mix(in srgb, var(--color-bg) var(--glass-mix), transparent); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); color: var(--color-text-strong); font-size: var(--font-size-small); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); }
.photo-badge svg.ms { width: var(--icon-size-chip); height: var(--icon-size-chip); color: var(--color-primary); }
/* "예시 사진" 알약 — 견본 사진마다 붙인다(대표님 현장 사진으로 바꾸면 뗀다) */
.ex-pill { position: absolute; top: var(--space-3); right: var(--space-3); z-index: var(--two); display: inline-flex; align-items: center; min-height: var(--chip-height); padding: var(--zero) var(--space-3); border-radius: var(--radius-pill); background: color-mix(in srgb, var(--color-text-strong) var(--overlay-mix), transparent); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); color: var(--color-bg); font-size: var(--font-size-small); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); white-space: nowrap; }
.ex-pill.at-bottom { top: auto; right: var(--space-2); bottom: var(--space-2); }
.photo-caption { position: absolute; left: var(--space-3); right: var(--space-3); bottom: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-4); background: color-mix(in srgb, var(--color-text-strong) var(--overlay-mix), transparent); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); color: var(--color-bg); }
.photo-caption strong { display: block; color: var(--color-bg); font-size: var(--font-size-body); line-height: var(--line-height-section); }
.photo-caption span { display: block; color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); font-size: var(--font-size-small); line-height: var(--line-height-small); }
/* 숫자 띠(숲색 정보판 — 단추가 아니다) */
.facts { display: grid; grid-template-columns: repeat(var(--two), minmax(var(--zero), var(--grid-flex))); margin: var(--space-5) var(--page-gutter) var(--zero); padding: var(--space-5) var(--space-2); border-radius: var(--radius-4); background: var(--color-forest); color: var(--color-bg); text-align: center; }
.facts > div { padding-inline: var(--space-2); }
.facts > div + div { border-left: var(--border-width) solid color-mix(in srgb, var(--color-bg) var(--line-on-dark), transparent); }
.facts strong { display: block; color: var(--color-accent); font-size: var(--font-size-title); line-height: var(--line-height-title); font-weight: var(--font-weight-heavy); letter-spacing: var(--letter-spacing); }
.facts strong small { margin-left: var(--space-1); font-size: var(--font-size-label); }
.facts span { display: block; margin-top: var(--space-1); color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); font-size: var(--font-size-small); line-height: var(--line-height-small); }

/* ── 8. 구역 · 바로가기 · 작업 후 모습 · 자주 물으시는 것 ─── */
.home-section { padding-block: var(--space-7) var(--zero); }
.section-head { margin-bottom: var(--space-5); }
.section-head h2 { font-size: var(--font-size-section); line-height: var(--line-height-section); }
.section-head .eyebrow { margin-bottom: var(--space-1); color: var(--color-primary); font-weight: var(--font-weight-strong); }
.find-title { font-size: var(--font-size-body); line-height: var(--line-height-section); }
.link-chips + .find-title { margin-top: var(--space-5); }
.link-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.link-chips a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--touch-min); padding: var(--zero) var(--space-4); border: var(--border-width) solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-bg); color: var(--color-text-strong); font-size: var(--font-size-label); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); text-decoration: none; }
.link-chips svg.ms { width: var(--icon-size-chip); height: var(--icon-size-chip); color: var(--color-primary); }
.case-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(var(--full), var(--card-basis)), var(--grid-flex))); gap: var(--space-3); }
.case-grid figure { min-width: var(--zero); border-radius: var(--radius-4); overflow: hidden; background: var(--color-surface); }
.case-grid figure:first-child { grid-column: var(--one) / var(--grid-end); }
.case-photo { position: relative; aspect-ratio: var(--photo-ratio-card); background: var(--color-border); }
.case-grid figure:first-child .case-photo { aspect-ratio: var(--photo-ratio-wide); }
.case-badge { position: absolute; top: var(--space-2); left: var(--space-2); display: inline-flex; align-items: center; min-height: var(--chip-height); padding: var(--zero) var(--space-3); border-radius: var(--radius-pill); background: var(--color-accent); color: var(--color-text-strong); font-size: var(--font-size-small); font-weight: var(--font-weight-strong); line-height: var(--line-height-small); }
.case-grid figcaption { padding: var(--space-3) var(--space-4) var(--space-4); }
.case-grid figcaption strong { display: block; font-size: var(--font-size-body); line-height: var(--line-height-section); }
.case-grid figcaption span { display: block; margin-top: var(--space-1); color: var(--color-text-weak); font-size: var(--font-size-small); line-height: var(--line-height-small); }
/* 자주 물으시는 것 — 홈 · 랜딩 공통(줄로 나눈 접는 목록) */
.faq { border-top: var(--border-width) solid var(--color-border); }
.faq-item { border-bottom: var(--border-width) solid var(--color-border); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: var(--touch-min); padding-block: var(--space-4); color: var(--color-text-strong); font-weight: var(--font-weight-strong); list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary svg { flex-shrink: var(--zero); color: var(--color-text-weak); }
.faq-item[open] summary svg { transform: scaleY(calc(var(--zero) - var(--one))); }
.faq-answer { padding-bottom: var(--space-4); color: var(--color-text); }
.faq-answer .text-button { margin-top: var(--space-2); }

/* 지원금("폐업하시나요?") — 연두 카드(연두 위 글씨는 먹색만 · 색토큰 §3). 링크는 윗선 + 오른쪽 화살표로 알린다(글자 색만으로 알리지 않게). */
.home-support { margin: var(--space-7) var(--page-gutter) var(--zero); padding: var(--space-5); border-radius: var(--radius-4); background: var(--color-accent); color: var(--color-text-strong); }
.home-support .eyebrow,.home-support p { color: var(--color-text-strong); }
.home-support .eyebrow { font-weight: var(--font-weight-strong); }
.home-support h2 { margin-top: var(--space-1); color: var(--color-text-strong); font-size: var(--font-size-section); line-height: var(--line-height-section); }
.home-support p { margin-top: var(--space-2); }
.support-mark { color: var(--color-text-strong); }
.support-link { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); width: var(--full); min-height: var(--touch-min); margin-top: var(--space-4); padding: var(--space-3) var(--zero) var(--zero); border: none; border-top: var(--border-width) solid color-mix(in srgb, var(--color-text-strong) var(--line-on-light), transparent); background: var(--color-clear); color: var(--color-text-strong); font-size: var(--font-size-body); font-weight: var(--font-weight-strong); text-align: left; text-decoration: none; }

/* ── 9. 바닥 (숲색 정보판) ─────────────────────────────── */
.home-footer { margin-top: var(--space-7); padding-block: var(--space-6); background: var(--color-forest); color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); }
.home-footer h2 { color: var(--color-bg); font-size: var(--font-size-body); line-height: var(--line-height-body); }
.home-footer .region { margin-top: var(--space-1); font-size: var(--font-size-small); line-height: var(--line-height-small); }
.home-footer .small { color: color-mix(in srgb, var(--color-bg) var(--on-dark-weak), transparent); }
.telephone { min-width: var(--touch-min); min-height: var(--touch-min); display: inline-flex; align-items: center; gap: var(--space-2); margin-top: var(--space-3); color: var(--color-text-strong); font-size: var(--font-size-body); font-weight: var(--font-weight-strong); text-decoration: none; }
.telephone svg { width: var(--icon-size-chip); height: var(--icon-size-chip); color: var(--color-primary); }
.home-footer .telephone { color: var(--color-bg); }
.home-footer .telephone svg { color: var(--color-accent); }
.business { margin-top: var(--space-4); padding-top: var(--space-4); border-top: var(--border-width) solid var(--color-border); }
.home-footer .business { border-top-color: color-mix(in srgb, var(--color-bg) var(--line-on-dark), transparent); }
.business p + p { margin-top: var(--space-2); }
.policy-links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-3); }
.policy-links a { display: inline-flex; align-items: center; min-width: var(--touch-min); min-height: var(--touch-min); color: var(--color-text-weak); font-size: var(--font-size-small); font-weight: var(--font-weight-medium); }
.home-footer .policy-links a { color: var(--color-bg); font-weight: var(--font-weight-strong); }
