/* 간단홍 산뜻판 2026-10-28 — gandan5.css(그대로) + skin.css + parts.css + clip.css 를 합친 한 파일 */
/* 간단홍 v0.5 공용 스타일 — 종이 바탕 · 가는 줄 · 차림표.
   갈래 색은 body 클래스 하나로 바꾼다: .b-hub · .b-audit(청록) · .b-apt(초록) · .b-public(주홍).
   글꼴은 각 쪽 <head> 의 Google Fonts 링크 하나(Noto Sans KR · Gaegu · IBM Plex Mono).
   고정 단추가 있는 쪽은 gandan5.js(첫 화면이 보이는 동안 고정 단추 숨김)를 함께 싣는다.
   쓰는 법과 부품 예시는 docs/SKELETON.md. */

/* 1. 토큰 ------------------------------------------------------------ */
:root{
  color-scheme:light;
  --ink:#171a1f; --ink-2:#4f555e; --ink-3:#666c75;
  --rule:#dedbd1; --rule-2:#ebe9e1; --leader:#9a968a; --field-line:#8b9099;
  --surface:#ffffff; --surface-2:#eeece4; --paper-2:#f6f5f0;
  --paper:#faf7ef;
  --hub:#24565b; --clay-ink:#a65a3a;
  --warn-soft:#fff3d6; --warn-ink:#7a5200;
  --ok-soft:#e6f2ea; --ok-ink:#1f5f3a;
  --err:#a8261b; --err-soft:#fdecea; --err-ink:#8a2a1f;
  --accent:#24565b; --accent-ink:#ffffff; --accent-soft:#e3ece7; --accent-deep:#1d4549;
  --sans:"Noto Sans KR",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --hand:"Gaegu","Noto Sans KR","Malgun Gothic",cursive;
  --mono:"IBM Plex Mono","Noto Sans KR",ui-monospace,Menlo,Consolas,monospace;
  --r-input:10px; --r-control:12px; --r-card:16px; --r-pill:999px;
  --shadow-card:0 1px 0 rgba(20,20,20,.04),0 10px 28px -16px rgba(20,20,20,.25);
  --shadow-bar:0 -8px 24px -18px rgba(0,0,0,.4);
  --wrap:1120px; --gutter:clamp(16px,4vw,28px);
  --sticky-h:76px;
}
/* 갈래 색 — 바탕(--paper)과 강조색 한 벌 */
.b-hub,.b-audit{--accent:#24565b;--accent-soft:#e3ece7;--accent-deep:#1d4549;--paper:#faf7ef}
.b-apt{--accent:#0e6b56;--accent-soft:#dff0ea;--accent-deep:#2b4a41;--paper:#f6f5f0}
.b-public{--accent:#b5451f;--accent-soft:#fbe8df;--accent-deep:#6e2a12;--paper:#f6f5f0}

/* 2. 바탕 ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.6;word-break:keep-all;overflow-wrap:break-word}
main{flex:1 0 auto}
:where(h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol){margin:0}
img,svg{max-width:100%}
img{height:auto}
a{color:var(--accent);text-underline-offset:3px}
button{font:inherit}
[hidden]{display:none!important}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.mono{font-family:var(--mono)}
.nowrap{white-space:nowrap}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.chk{flex:none;color:var(--accent);font-weight:700}
.dash{flex:none;color:var(--ink-2);font-weight:700}
.prose>*+*{margin-top:.75em}
.prose ul,.prose ol{padding-left:1.3em}

/* 초점 · 건너뛰기 */
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.band :focus-visible{outline-color:#ffffff}
.skip{position:absolute;left:16px;top:-80px;z-index:50;padding:12px 16px;border-radius:0 0 12px 12px;background:var(--accent);color:var(--accent-ink);font-weight:700;text-decoration:none}
.skip:focus{top:0}

/* 3. 머리 (위 막대 · 메뉴) ---------------------------------------------- */
.topbar{position:relative;border-bottom:1px solid var(--rule);background:var(--paper)}
.topbar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 24px;padding-block:12px}
.brand{display:flex;align-items:baseline;gap:10px;min-height:44px;color:var(--accent);text-decoration:none}
.brand-word{font-family:var(--hand);font-weight:700;font-size:43px;line-height:1.1}
.brand-sub{font-size:14.5px;font-weight:700;color:var(--ink-2)}
.brand-sub.is-latin{font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.16em;color:var(--ink-3)}
.mainnav{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px;font-size:14.5px}
.mainnav a:not(.btn){display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2);text-decoration:none}
.mainnav a:not(.btn):hover{color:var(--ink);text-decoration:underline;text-underline-offset:6px}
.mainnav a[aria-current="page"]{color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
.navmenu{display:none}
.navmenu>summary{list-style:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--rule);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-size:14.5px;font-weight:700;cursor:pointer}
.navmenu>summary::-webkit-details-marker{display:none}
.navmenu>summary::after{content:"+";content:"+" / "";font-family:var(--mono);font-weight:500;color:var(--accent)}
.navmenu[open]>summary::after{content:"–";content:"–" / ""}
.navmenu-panel{position:absolute;left:0;right:0;top:100%;z-index:20;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:0 18px;padding:6px var(--gutter) 16px;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.navmenu-panel a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--rule-2);color:var(--ink);font-weight:500;text-decoration:none}
.navmenu-panel a[aria-current="page"]{color:var(--accent);font-weight:700}
.pagenav{border-bottom:1px solid var(--rule)}
.pagenav .wrap{display:flex;flex-wrap:wrap;gap:0 20px;font-size:14px}
.pagenav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2);text-decoration:none}
.pagenav a:hover{color:var(--accent);text-decoration:underline}

/* 4. 단추 · 글자 링크 ------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border:1px solid var(--accent);border-radius:var(--r-control);background:var(--accent);color:var(--accent-ink);font:inherit;font-size:16px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.btn-sm{min-height:44px;padding:0 18px;font-size:15px}
.btn-lg{min-height:52px;padding:0 28px}
.btn-block{display:flex;width:100%}
.btn-ghost{background:var(--surface);color:var(--accent)}
.btn-ghost:hover{filter:none;background:var(--accent-soft)}
.btn-inverse{background:#ffffff;border-color:#ffffff;color:var(--accent)}
.btn-inverse:hover{filter:none;background:var(--accent-soft)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;filter:none}
.link-strong{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.badge{display:inline-block;padding:1px 10px;border:1px solid var(--accent);border-radius:var(--r-pill);color:var(--accent);font-size:12.5px;font-weight:700;line-height:1.6;white-space:nowrap}
.badge-soft{display:inline-block;margin-left:4px;padding:1px 9px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:700;line-height:1.6;white-space:nowrap}
.badge-line{display:inline-block;padding:1px 10px;border:1px solid var(--ink-2);border-radius:var(--r-pill);color:var(--ink-2);font-size:12.5px;font-weight:700;line-height:1.6;white-space:nowrap}

/* 5. 첫 화면 --------------------------------------------------------- */
.hero{padding:68px 0 52px}
.hero.is-branch{padding-top:60px}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:48px 64px;align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:18px;min-width:0}
.hero h1{font-size:clamp(28px,4.2vw,44px);font-weight:900;letter-spacing:-.02em;line-height:1.24;text-wrap:balance}
.slogan{font-family:var(--hand);font-weight:700;font-size:27px;line-height:1.2;color:var(--clay-ink)}
.lede{max-width:30em;font-size:19px;line-height:1.6;color:var(--ink-2)}
.price-line{font-size:15px;color:var(--ink-2)}
.price-line b{color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;margin-top:6px}
.trust{display:flex;gap:8px;font-size:14.5px;color:var(--ink-2)}
.hero-fig{display:flex;flex-direction:column;gap:12px;min-width:0}
.hero-fig img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--rule);border-radius:var(--r-card);background:#f3ecdd}
.hero-fig figcaption{font-size:13px;color:var(--ink-3);text-align:right}
/* 그림 대신 카드 + 문단(공익 쪽 기한표 등) */
.hero-side{display:flex;flex-direction:column;gap:12px;min-width:0}

/* 진행 띠 (01 · 02 · 03) */
.journey{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0 32px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.journey li{display:flex;align-items:baseline;gap:12px;padding:17px 0}
.journey b{font-weight:700}
.no{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent)}

/* 6. 구역 머리 ------------------------------------------------------- */
.section{padding:60px 0 28px}
.section.is-roomy{padding-top:76px}
.section.is-end{padding-bottom:76px}
.eyebrow{margin:0 0 8px;font-size:12.5px;font-weight:700;letter-spacing:.12em;line-height:1.4;color:var(--accent)}
.sec-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:22px}
.sec-head h2,.h2{font-size:26px;font-weight:800;letter-spacing:-.01em;line-height:1.3;text-wrap:balance}
.sec-note{font-size:14.5px;color:var(--ink-2)}
.fine{margin-top:14px;font-size:13px;color:var(--ink-3)}
/* 간격(gap)을 가진 세로 묶음 안에서는 여백을 더하지 않는다 */
:is(.card,.box,.hero-copy,.inquiry-copy,.band-copy,.sc-side,.tab-panel,.form-stack)>.fine{margin-top:0}
:is(.inquiry-copy,.hero-copy)>.eyebrow{margin:0}
.price-cards+table.tier{margin-top:28px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:32px 64px;align-items:start}
.split>*{min-width:0}

/* 7. 차림표 (이름 · 점선 · 금액 · 화살표) ------------------------------- */
.carte{border-top:2px solid var(--ink)}
/* 이름이 두 줄이 되면 점선과 금액은 마지막 줄에 붙는다(last baseline) */
.carte-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:baseline;align-items:last baseline;padding:12px 0;color:var(--ink);text-decoration:none}
.c-name{display:flex;align-items:baseline;align-items:last baseline;gap:12px;min-width:0}
/* 「A · B」 이름: 좁은 화면에서는 가운뎃점 자리에서 줄을 바꾼다(줄 끝 · 줄 머리에 점이 남지 않게) */
.sep{white-space:pre}
.c-title{font-size:17px;font-weight:700}
.leader{flex:1;min-width:12px;border-bottom:1px dotted var(--leader);transform:translateY(-4px)}
.c-price{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.amt{font-family:var(--mono);font-size:15px;font-weight:500}
.arrow{color:var(--accent);font-weight:700;transition:transform .15s}
.c-desc{grid-column:1/-1;font-size:14px;color:var(--ink-3)}
a.carte-row:hover .c-title{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
a.carte-row:hover .arrow{transform:translateX(3px)}
/* 큰 차림표 — 갈래 쪽 「맡는 업무」 */
.carte.is-lg .carte-row{gap:4px 14px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.carte.is-lg .c-name{gap:14px;align-items:baseline}
.carte.is-lg .c-title{font-size:19px;font-weight:800}
.carte.is-lg .amt{font-size:16px}
.carte.is-lg .c-desc{padding-left:32px;font-size:15px;color:var(--ink-2)}
.c-desc .muted{color:var(--ink-3)}
/* 줄 사이 가는 줄이 있는 차림표(자주 묻는 질문 묶음 · 계산기 「그 밖의 요금」) */
.carte.is-rows .carte-row{border-bottom:1px solid var(--rule-2)}
.carte.is-rows .carte-row:last-child{border-bottom-color:var(--rule)}

/* 홈 — 갈래별 묶음 */
.groups{border-top:2px solid var(--ink)}
.group{display:flex;flex-wrap:wrap;gap:16px 56px;padding:30px 0 22px;border-bottom:1px solid var(--rule)}
.group-head{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:6px}
.group-head h3{font-size:22px;font-weight:800;line-height:1.35}
.group-head h3 a{display:inline-block;min-height:44px;padding-block:7px;color:var(--ink);text-decoration:none}
.group-head h3 a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
.group-head h3 .arrow{margin-left:8px;font-size:18px}
.group-head p{font-size:14.5px;color:var(--ink-2)}
.group-head .group-note{font-size:13.5px;color:var(--ink-3)}
.group-rows{flex:2 1 460px;min-width:0;display:flex;flex-direction:column}
.group-rows .carte-row:not(:last-child){border-bottom:1px solid var(--rule-2)}

/* 8. 카드 (그림자는 요금 카드 · 신청서 · 첫 화면 카드만) --------------------- */
.card{min-width:0;padding:26px 28px 22px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:14px}
.box{min-width:0;padding:26px 28px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card)}

/* 요금 카드 · 구간 줄 */
.price-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:18px}
.price-card{gap:4px;padding:24px 24px 20px}
.price-card h3{font-size:17px;font-weight:700}
.pc-note{margin-bottom:8px;font-size:13px;color:var(--ink-3)}
.price-card.is-plain{padding:24px 4px 20px;background:none;border:0;box-shadow:none}
.tier-row{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-top:1px solid var(--rule-2);font-size:15px}
.tier-row>span:first-child{flex:0 1 auto;min-width:0}
.tier-row .amt{flex:none;font-size:15px;white-space:nowrap}
.tier-row .t-sub{display:block;font-size:13px;color:var(--ink-3)}
.tier-row.is-on{margin-inline:-10px;padding-inline:10px;border-radius:6px;background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.incl{list-style:none;padding:0}
.incl li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--rule);font-size:15px}
/* 구간 표 (계산기 쪽) */
table.tier{width:100%;border-collapse:collapse;font-size:15px}
table.tier caption{padding-bottom:8px;text-align:left;font-size:13px;color:var(--ink-3)}
table.tier th,table.tier td{padding:9px 10px 9px 0;border-top:1px solid var(--rule-2);text-align:left;vertical-align:baseline;font-weight:400}
table.tier thead th{border-top:2px solid var(--ink);font-size:12.5px;font-weight:700;color:var(--ink-2)}
table.tier .num{text-align:right;font-family:var(--mono);font-weight:500;white-space:nowrap}
/* 금액 칸의 글자 값(「별도 협의」 · 「별도 견적」)은 고정폭 글꼴로 벌어지지 않게 */
table.tier .num .ko{font-family:var(--sans)}
table.tier tr.is-on>*{background:var(--accent-soft);font-weight:700}
table.tier tr.is-on>:first-child{box-shadow:inset 3px 0 0 var(--accent);padding-left:10px}

/* 견적서 예시 카드 */
.quote-card{padding:26px 28px 22px}
.qc-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.qc-title{font-size:21px;font-weight:900;letter-spacing:.32em}
.qc-to{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding-bottom:14px;border-bottom:2px solid var(--ink);font-size:14.5px}
.qc-lines{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:baseline;font-size:15px}
.qc-lines .amt,.qc-total .amt{text-align:right}
.qc-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--rule)}
.qc-total .amt{font-size:22px;color:var(--accent)}
.qc-total b .muted{font-weight:400}
.qc-incl{padding:10px 14px;border-radius:10px;background:var(--paper);font-size:13.5px;color:var(--ink-2)}
.muted{color:var(--ink-3)}
.small{font-size:13.5px}

/* 9. 진행 순서 · 요점 ------------------------------------------------- */
.steps{list-style:none;padding:0;border-top:2px solid var(--ink)}
.steps li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px;padding:17px 0;border-bottom:1px solid var(--rule)}
.s-title{flex:0 0 160px;font-size:17px;font-weight:700}
.s-desc{flex:1 1 420px;min-width:0;font-size:15px;color:var(--ink-2)}
.points{display:flex;flex-direction:column;gap:22px;min-width:0}
.point{display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:1px solid var(--ink)}
.point h3{font-size:17px;font-weight:700}
.point p{font-size:15px;color:var(--ink-2)}

/* 옆문 (다른 쪽으로 가는 줄) */
.side-door{margin-top:18px;padding:14px 18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-control);color:var(--ink);text-decoration:none}
.side-door b{font-weight:700}
.side-door span:last-child{font-size:14px;color:var(--ink-2)}
.side-door:hover b{color:var(--accent);text-decoration:underline;text-underline-offset:4px}

/* 10. 신청서 --------------------------------------------------------- */
.inquiry{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:32px 56px;align-items:start}
.inquiry-copy{display:flex;flex-direction:column;gap:14px;min-width:0}
.inquiry-copy>p:not([class]){color:var(--ink-2)}
@media (min-width:761px){.inquiry-copy{position:sticky;top:16px}}
.form{margin:0;padding:28px;display:flex;flex-direction:column;gap:18px}
.form-stack{display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.field>.label{font-size:14.5px;font-weight:700}
.field.is-sub>label{font-size:14px;font-weight:400;color:var(--ink-2)}
.req{color:var(--err);font-weight:700}
.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;align-items:start}
/* 세대수 · 건물 유형 한 줄 — 선택칸 글자(「선택해 주세요 · 잘 모르겠어요」)가 잘리지 않게 유형 칸을 넓게, 좁으면 두 줄 */
.unit-type{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
.unit-type>.field{flex:1 1 140px}
.unit-type>.field+.field{flex:2 1 260px}
:is(.form,.calc-card,.field) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button]),select,textarea){
  width:100%;height:48px;padding:0 14px;border:1px solid var(--field-line);border-radius:var(--r-input);background:#ffffff;color:var(--ink);font:inherit;font-size:16px}
:is(.form,.field) select{padding:0 12px}
:is(.form,.field) textarea{height:auto;min-height:110px;padding:12px 14px;resize:vertical;line-height:1.6}
:is(.form,.calc-card,.field) ::placeholder{color:#6f747c;opacity:1}
:is(.form,.calc-card,.field) :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
:is(input,select,textarea)[aria-invalid="true"]{border-color:var(--err);box-shadow:0 0 0 1px var(--err)}
.field-help{font-size:13px;color:var(--ink-2)}
.field-error{font-size:13.5px;font-weight:700;color:var(--err)}
.field-error:empty{display:none}
.fs{margin:0;padding:14px 16px 16px;border:1px solid var(--rule);border-radius:var(--r-control);display:flex;flex-direction:column;gap:10px;min-width:0}
.fs>legend{padding:0 6px;font-size:14.5px;font-weight:700}
.fs-line{font-size:14.5px}
.check{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding-block:10px;font-size:15px;cursor:pointer}
.check input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}
.checks{display:flex;flex-direction:column}
.form-more{border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
.form-more>summary{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:14.5px;font-weight:700;color:var(--ink-2);cursor:pointer}
.form-more-body{padding:4px 0 16px;display:flex;flex-direction:column;gap:12px}
.consent{margin:0;padding:14px 16px 16px;border:0;border-radius:var(--r-control);background:var(--paper-2);display:flex;flex-direction:column;gap:8px;min-width:0}
.consent>legend{float:left;width:100%;padding:0;font-size:14.5px;font-weight:700}
.consent p{font-size:14px;color:var(--ink-2)}
.consent p b{color:var(--ink)}
.consent .check{font-size:14.5px}
.consent .consent-fine{font-size:13px;color:var(--ink-3)}
.form-foot{font-size:13px;color:var(--ink-3);text-align:center}
.form-status{font-size:14.5px;font-weight:700;color:var(--ink)}
.form-status:empty{display:none}
.form-status.is-error{color:var(--err)}
.form-result{padding:18px 20px;border-radius:var(--r-control);display:flex;flex-direction:column;gap:8px;font-size:15px}
.form-result h3{font-size:17px;font-weight:800}
.form-result.is-ok{background:var(--ok-soft);color:var(--ok-ink);border:1px solid #b9d8c4}
.form-result.is-error{background:var(--err-soft);color:var(--err-ink);border:1px solid #f0c4bf}
.form-result a{color:inherit;font-weight:700}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

/* 10-1. 접수 계약(docs/form_snippets · intake.js) 마크업을 그대로 붙여도 같은 모양이 되게 */
form[data-intake]{margin:0;display:flex;flex-direction:column;gap:18px;min-width:0}
form[data-intake] .field>label{font-size:14.5px;font-weight:700}
form[data-intake] button[type=submit]{display:flex;width:100%;min-height:52px}
.contact-either{margin:0;padding:14px 16px 16px;border:1px solid var(--rule);border-radius:var(--r-control);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;min-width:0}
.contact-either>legend{padding:0 6px;font-size:14.5px;font-weight:700}
form[data-intake] .contact-either .field>label{font-size:14px;font-weight:400;color:var(--ink-2)}
.either-badge{display:inline-block;margin-left:4px;padding:1px 9px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:700;line-height:1.6;white-space:nowrap}
.field.check{position:relative;flex-direction:row;align-items:flex-start;gap:10px;min-height:44px;padding-block:10px}
/* 체크칸을 label 덮개(::before) 위로 올린다 — 체크칸을 직접 눌러도 · 줄을 눌러도 체크된다 */
.field.check>input{position:relative;z-index:1;flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}
form[data-intake] .field.check>label{font-size:15px;font-weight:400;cursor:pointer}
/* 칸 옆 label 이 줄 전체를 덮어 44px 누름 영역이 되게 */
.field.check>label::before{content:"";position:absolute;inset:0}
.hint{font-size:13px;color:var(--ink-2)}
.optional-fields{border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);padding-bottom:4px}
.optional-fields[open]{padding-bottom:16px}
.optional-fields>summary,.privacy-consent details>summary{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:14.5px;font-weight:700;color:var(--ink-2);cursor:pointer}
.optional-fields>.field+.field{margin-top:12px}
/* 접는 줄 표시(+ / –) — summary 를 flex 로 두면 기본 삼각형이 사라지므로 */
:is(.optional-fields,.form-more,.privacy-consent details)>summary{list-style:none;gap:8px}
:is(.optional-fields,.form-more,.privacy-consent details)>summary::-webkit-details-marker{display:none}
:is(.optional-fields,.form-more,.privacy-consent details)>summary::after{content:"+";content:"+" / "";font-family:var(--mono);font-weight:500;color:var(--accent)}
:is(.optional-fields,.form-more,.privacy-consent details)[open]>summary::after{content:"–";content:"–" / ""}
.privacy-consent{margin:0;padding:14px 16px 16px;border:0;border-radius:var(--r-control);background:var(--paper-2);display:flex;flex-direction:column;gap:8px;min-width:0}
.privacy-consent>legend{float:left;width:100%;padding:0;font-size:14.5px;font-weight:700}
.privacy-consent p{font-size:14px;color:var(--ink-2)}
.privacy-consent p strong{color:var(--ink)}
.privacy-consent details>summary{min-height:44px;padding:4px 0;font-size:14px}
.consent-check{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding-block:10px;font-size:14.5px;cursor:pointer}
.consent-check input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}
.privacy-consent .consent-help,.privacy-consent .transfer-note{font-size:13px;color:var(--ink-2)}
input.prefilled,select.prefilled,textarea.prefilled{background:var(--accent-soft)}
/* 계산기 미리 채우기 안내(intake.js · apt.js 가 만드는 div.intake-prefill[role=status]) */
.intake-prefill{padding:14px 16px;border-radius:var(--r-control);background:var(--accent-soft);color:var(--accent-deep);display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:14.5px}
.intake-prefill strong{font-size:15.5px;font-weight:800}
.intake-prefill ul{padding-left:1.2em}
.intake-prefill a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-deep);font-weight:700}
/* 금액 칸 「읽은 금액」 줄(money-input.js 의 data-money-output · 계산기의 읽기 줄) */
.money-entry{display:flex;flex-direction:column;gap:6px;min-width:0}
.money-reading,.calc-read{display:block;font-size:13.5px;font-weight:500;color:var(--accent-deep)}
.money-reading:empty,.calc-read:empty{display:none}
.money-reading.is-warn{color:var(--warn-ink);font-weight:700}
.money-reading.money-invalid,.calc-read.money-invalid{color:var(--err);font-weight:700}
/* 수신거부 폼 안 안내 문단 */
form[data-intake] .note{font-size:13px;color:var(--ink-2)}
/* intake.js 의 접수 결과 칸 (data-state = success | error | unknown) */
.intake-status{padding:18px 20px;border-radius:var(--r-control);display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:15px;background:var(--paper-2);color:var(--ink)}
.intake-status strong{font-size:17px;font-weight:800}
.intake-status[data-state="success"]{background:var(--ok-soft);color:var(--ok-ink);border:1px solid #b9d8c4}
.intake-status[data-state="error"]{background:var(--err-soft);color:var(--err-ink);border:1px solid #f0c4bf}
.intake-status[data-state="unknown"]{background:var(--warn-soft);color:var(--warn-ink);border:1px solid #ecd48f}
.intake-status a{color:inherit;font-weight:700;overflow-wrap:anywhere}
.intake-again,.intake-retry{min-height:44px;margin-top:6px;padding:0 16px;border:1px solid currentColor;border-radius:var(--r-control);background:#ffffff;color:inherit;font-size:14.5px;font-weight:700;cursor:pointer;max-width:100%}
/* 정산 다건 내역 아래 도구(intake.js 가 만든다): 안내 · 「내역 지우기」 · 「계산기에서 다시 가져오기」 */
.breakdown-tools{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.breakdown-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.intake-mini{min-height:44px;padding:0 16px;border:1px solid var(--field-line);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-size:14.5px;font-weight:700;cursor:pointer}
.intake-mini-link{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-deep);font-size:14.5px;font-weight:700}
/* 탭 · 고르기 단추 (role=tab 은 aria-selected, 일반 단추는 aria-pressed) */
.tabs,.seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100px,100%),1fr));gap:8px}
.seg{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
.tab,.seg>button{min-height:46px;padding:6px 10px;border:1px solid var(--field-line);border-radius:var(--r-control);background:#ffffff;color:var(--ink-2);font:inherit;font-size:15px;font-weight:700;line-height:1.3;cursor:pointer}
.tab:hover,.seg>button:hover{border-color:var(--accent);color:var(--ink)}
.tab[aria-selected="true"],.seg>button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* 탭이 있는 신청서 카드 — 바깥 .card 안의 form.form 은 여백을 두 번 두지 않는다 */
.apply-card{gap:18px}
.card .tab-panel>.form{padding:0}
/* 주소 #q-… 로 왔을 때 탭 줄이 화면 위로 숨지 않게 */
.tab-panel{scroll-margin-top:96px}
/* 커피 · 카톡 안내 */
.promo{padding:12px 16px;border-radius:var(--r-control);background:var(--warn-soft);color:var(--warn-ink);font-size:14.5px}
.kakao-note{font-size:14.5px;color:var(--ink-2)}
.kakao-note a{color:var(--accent);font-weight:700;text-underline-offset:3px}

/* 11. 요금 계산 카드 (세무 쪽 첫 화면) ----------------------------------- */
.calc-card{padding:26px 28px 24px;gap:16px}
.calc-card h2{font-size:21px;font-weight:800;line-height:1.35}
.calc-card .eyebrow{margin:0 0 4px}
.calc-card input:not([type=checkbox],[type=radio]){height:50px;font-family:var(--mono);font-size:18px}
/* 단위가 붙은 입력칸(세대 · 호실 · 원) */
.unit-input{position:relative;min-width:0}
.unit-input input{padding-right:62px}
.unit-input .unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;color:var(--ink-2);pointer-events:none}
.fee-out{padding:16px 18px;border-radius:var(--r-control);background:var(--accent-soft);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.fee-num{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1.2;color:var(--accent)}
.fee-num .fee-unit{font-size:18px;font-weight:700}
/* 입력 전 안내 · 입력 오류는 금액처럼 크게 그리지 않는다 */
.fee-num.is-empty{font-size:16.5px;font-weight:500;letter-spacing:0;line-height:1.5;color:var(--ink-2)}
.fee-out.is-bad .fee-num{color:var(--err)}
.fee-out.is-bad .fee-num.is-empty{font-weight:700}
.fee-note{font-size:14px;color:var(--accent-deep)}

/* 12. 대상 확인 (자가점검) ---------------------------------------------- */
.selfcheck{padding:26px 28px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:22px 40px;align-items:start}
.sc-qs{display:flex;flex-direction:column;gap:22px;min-width:0}
.sc-q{display:flex;flex-direction:column;gap:12px}
.sc-label{display:flex;align-items:baseline;gap:10px;font-size:17px;font-weight:700}
.sc-no{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent)}
.sc-opts{display:flex;flex-direction:column;gap:8px}
.sc-opts.is-row{flex-direction:row;flex-wrap:wrap}
.sc-opts button{min-height:48px;padding:8px 16px;border:1px solid var(--field-line);border-radius:var(--r-control);background:#ffffff;color:var(--ink);font-size:15px;text-align:left;cursor:pointer}
.sc-opts button:hover{border-color:var(--accent)}
.sc-opts button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}
.sc-hint{font-size:13px;color:var(--ink-3)}
.sc-side{display:flex;flex-direction:column;gap:12px;min-width:0;position:sticky;top:16px}
.sc-result{padding:18px 20px;border-radius:var(--r-control);background:var(--accent-soft);color:var(--accent-deep);display:flex;flex-direction:column;gap:8px;font-size:15px}
.sc-r-title{font-size:17px;font-weight:700}
.sc-result ul{padding-left:1.2em}
.sc-result li+li{margin-top:4px}
.sc-result.is-yes{background:var(--accent-soft);color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent)}
.sc-result.is-maybe{background:var(--warn-soft);color:var(--warn-ink)}
.sc-result.is-no{background:var(--paper-2);color:var(--ink)}
.sc-result .btn{align-self:flex-start;margin-top:4px}
.sc-basis{font-size:12.5px;line-height:1.7;color:var(--ink-3)}
/* 결과 끝의 「남은 확인」 줄 · 결과 단추 여럿 · 덧붙임 · 다시 하기 */
.sc-result .sc-remain{list-style:none;margin-left:-1.2em;padding-top:8px;border-top:1px solid currentColor}
.sc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.sc-result .sc-actions .btn{margin-top:0}
.sc-more{font-size:13.5px}
.sc-reset{align-self:flex-start}
/* 질문 위 설명 한 줄(갈래가 바뀔 때) */
.sc-q-note{padding:10px 14px;border-left:3px solid var(--accent);background:var(--paper-2);font-size:14px;color:var(--ink-2)}
/* 첫 화면의 「대상 확인 시작」 카드(.card.calc-card.sc-start) */
.sc-start .sc-label{margin-top:2px}
.sc-start .sc-opts button{font-weight:700}
.sc-start .incl{margin-top:-4px}

/* 13. 기한표 (공익 쪽 첫 화면) ------------------------------------------ */
.dl-card{padding:24px 26px 10px;gap:0}
.dl-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;padding-bottom:12px}
.dl-top h2{font-size:18px;font-weight:800;line-height:1.35}
.dl-top span{font-size:13px;color:var(--ink-3)}
table.dl{width:100%;border-collapse:collapse;font-size:14.5px}
table.dl th,table.dl td{padding:10px 14px 10px 0;border-top:1px solid var(--rule-2);text-align:left;vertical-align:baseline;font-weight:400}
table.dl thead th{padding-block:8px;border-top:2px solid var(--ink);font-size:12.5px;font-weight:700;color:var(--ink-2)}
table.dl thead th.dl-us{color:var(--accent)}
table.dl tbody th b{font-weight:700}
table.dl td.dl-us{font-family:var(--mono);font-weight:500;color:var(--accent)}
.dl-sub{display:block;font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--ink-3)}
.dl-lab{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dl-after{font-size:13px;color:var(--ink-3)}

/* 14. 자주 묻는 질문 --------------------------------------------------- */
.qa-list{border-top:2px solid var(--ink)}
.qa{border-bottom:1px solid var(--rule)}
.qa>summary{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:44px;padding:16px 0;font-size:17px;font-weight:700;cursor:pointer}
.qa>summary::-webkit-details-marker{display:none}
.qa>summary::after{content:"+";content:"+" / "";flex:none;font-family:var(--mono);font-weight:500;color:var(--accent)}
.qa[open]>summary::after{content:"–";content:"–" / ""}
.qa>summary:hover{color:var(--accent)}
.qa-body{padding:0 0 18px;font-size:15.5px;color:var(--ink-2)}

/* 15. 마무리 띠 ------------------------------------------------------ */
.band{background:var(--accent);color:var(--accent-ink)}
.band-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:32px 64px;align-items:center;padding-block:60px}
.band-copy{display:flex;flex-direction:column;gap:12px;min-width:0}
.band-copy h2{font-size:26px;font-weight:800;letter-spacing:-.01em;line-height:1.3;text-wrap:balance}
.band-copy p{font-size:16px;color:var(--accent-soft)}
.band-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.band-actions>p{align-self:stretch}
.band-link{display:inline-flex;align-items:center;min-height:44px;color:#ffffff;font-size:15px;text-underline-offset:4px}
.band-note{padding-top:14px;border-top:1px solid rgba(255,255,255,.28);font-size:14px;color:var(--accent-soft)}
.band-note+.band-note{padding-top:0;border-top:0}

/* 16. 바닥글 --------------------------------------------------------- */
.footer{margin-top:auto;border-top:1px solid var(--rule)}
.footer .wrap{padding-top:32px;padding-bottom:44px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-2)}
.f-name{font-weight:700;color:var(--ink)}
.footer a{color:var(--ink-2)}
.f-nav{display:flex;flex-wrap:wrap;gap:0 18px;margin-top:6px}
.f-nav a{display:inline-flex;align-items:center;min-height:44px}
.f-nav a[aria-current="page"]{color:var(--ink);font-weight:700}
.f-fine{margin-top:6px;color:var(--ink-3)}

/* 17. 휴대폰 아래 고정 단추 (신청서 있는 쪽만) -------------------------- */
.sticky-bar{display:none}

/* 넓은 화면 · 좁은 화면에서만 보이는 것(같은 조작이 한 화면에 두 벌 보이지 않게) */
@media (min-width:761px){.only-narrow{display:none!important}}
@media (max-width:760px){.only-wide{display:none!important}}

/* 18. 반응형 --------------------------------------------------------- */
@media (max-width:860px){
  .mainnav{display:none}
  .navmenu{display:block}
}
@media (max-width:760px){
  .brand-word{font-size:36px}
  .hero{padding:40px 0 36px}
  .hero.is-branch{padding-top:36px}
  .hero-grid{gap:32px}
  .slogan{font-size:24px}
  .lede{font-size:17px}
  .section{padding-top:52px}
  .section.is-roomy{padding-top:56px}
  .section.is-end{padding-bottom:56px}
  .sec-head h2,.h2,.band-copy h2{font-size:21px}
  .journey li{padding:13px 0}
  .group{padding:24px 0 18px}
  .group-head h3{font-size:20px}
  .card,.quote-card,.calc-card,.selfcheck,.box{padding:22px 18px}
  .form{padding:22px 18px}
  .price-card{padding:20px 18px 16px}
  .price-card.is-plain{padding:12px 0}
  .dl-card{padding:20px 18px 6px}
  .carte.is-lg .c-desc{padding-left:0}
  .s-title{flex-basis:auto}
  .band-grid{padding-block:44px}
  .footer .wrap{padding-bottom:36px}
  .sc-side{position:static}
  /* 고정 단추 — 결과 문구를 가리지 않게 쪽 아래 여백과 스크롤 여백을 둔다 */
  .sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--rule);box-shadow:var(--shadow-bar)}
  .sticky-bar .btn{flex:1;min-height:48px;font-size:15px}
  body.has-sticky,body:has(>.sticky-bar){padding-bottom:calc(var(--sticky-h) + env(safe-area-inset-bottom))}
  html:has(.sticky-bar){scroll-padding-bottom:calc(var(--sticky-h) + 24px)}
  .tab-panel{scroll-margin-top:124px}
  /* 첫 화면이 보이는 동안(gandan5.js 가 body.hero-in-view 를 단다 · 첫 화면에 이미 「견적서 받기」가 있음),
     신청서 · 계산 카드 · 대상 확인을 쓰는 동안, 결과가 나온 뒤, 신청서로 막 이동했을 때는 숨긴다 */
  body.hero-in-view .sticky-bar,
  body:has(form:focus-within) .sticky-bar,
  body:has(.calc-card:focus-within) .sticky-bar,
  body:has(.selfcheck:focus-within) .sticky-bar,
  body:has(.form-status:not(:empty)) .sticky-bar,
  body:has(.form-result:not([hidden])) .sticky-bar,
  body:has(.intake-status:not([hidden])) .sticky-bar,
  body:has(.sc-result:is(.is-yes,.is-no,.is-maybe)) .sticky-bar,
  body:has(:is(#apply,#inquiry,#q-gongsi,#q-jeongsan,#q-social,[data-form-section]):target) .sticky-bar{display:none}
}
@media (max-width:560px){
  .sep{display:block;height:0;overflow:hidden}
  .carte.is-lg .leader{display:none}
  /* 기한표: 업무 → 법정 기한 → 보내 주실 날, 한 줄씩 */
  table.dl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.dl tr{display:block;padding:10px 0;border-top:1px solid var(--rule-2)}
  table.dl tbody th,table.dl tbody td{display:block;padding:2px 0;border:0}
  .dl-lab{position:static;width:auto;height:auto;margin:0 6px 0 0;overflow:visible;clip:auto;font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--ink-3)}
  table.dl .dl-sub{display:inline;margin-left:4px}
}
@media (max-width:400px){
  /* 작은 휴대폰: 낱말표 · 갈래 이름 · 「전체 메뉴」가 한 줄에 들어가게 */
  .topbar-in{column-gap:12px}
  .brand{gap:8px}
  .brand-word{font-size:34px}
  .brand-sub{font-size:13px}
  .navmenu>summary{gap:6px;padding:0 12px}
}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  .topbar,.sticky-bar,.navmenu,.band-actions{display:none!important}
  body{background:#ffffff}
}

/* ==========================================================================
   간단홍 산뜻판(2026-10-28) — 위 gandan5 부품을 흰 바탕 · 옅은 민트 · 둥근 카드로 다시 입힌다.
   글꼴은 Noto Sans KR 하나(손글씨 Gaegu 는 로고와 한 줄 문구만). 숫자도 같은 글꼴의 고정폭 숫자.
   ========================================================================== */

/* A. 토큰 ------------------------------------------------------------ */
:root{
  --ink:#121619; --ink-2:#424a52; --ink-3:#68707a;
  --rule:#e2e8e6; --rule-2:#eef2f1; --leader:#c9d3d0; --field-line:#cfd9d6;
  --surface:#ffffff; --surface-2:#f6f9f8; --paper-2:#f4f8f7; --paper:#ffffff;
  --bg-soft:#f6f9f8; --bg-mint:#ecf5f2;
  --brand:#1f6a65; --brand-deep:#16504c; --brand-soft:#e2f0ec; --brand-ink:#17524e;
  --clay:#c47756; --clay-ink:#a65a3a; --clay-soft:#f9ece5;
  --apt:#13705b; --apt-soft:#e0f1eb; --pub:#b84f27; --pub-soft:#fcebe2; --intl:#2c5799; --intl-soft:#e8eef9;
  --ok:#1d7a4c; --ok-soft:#e3f4ea;
  --accent:#1f6a65; --accent-soft:#e2f0ec; --accent-deep:#16504c;
  --mono:"Noto Sans KR",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --r-input:12px; --r-control:14px; --r-card:22px; --r-pill:999px;
  --shadow-card:0 1px 2px rgba(16,24,40,.05),0 16px 36px -22px rgba(16,48,44,.38);
  --shadow-lg:0 2px 6px rgba(16,24,40,.05),0 34px 64px -30px rgba(16,48,44,.5);
  --shadow-bar:0 -10px 30px -22px rgba(16,48,44,.5);
  --wrap:1224px; --gutter:clamp(16px,4vw,32px);
  --sticky-h:72px;
}
/* 갈래 색: 아파트·건물·해외(국문)·홈 = 청록, 공익·보조금 = 주홍. 바탕은 모두 흰색 */
.b-hub,.b-audit,.b-apt{--accent:#1f6a65;--accent-soft:#e2f0ec;--accent-deep:#16504c;--paper:#ffffff}
.b-public,.brand-pub{--accent:#b84f27;--accent-soft:#fcebe2;--accent-deep:#8f3a1b;--paper:#ffffff;
  --brand:#b84f27;--brand-deep:#8f3a1b;--brand-soft:#fcebe2;--brand-ink:#8f3a1b}
.b-intl,.brand-intl{--accent:#2c5799;--accent-soft:#e8eef9;--accent-deep:#1f3f73;
  --brand:#2c5799;--brand-deep:#1f3f73;--brand-soft:#e8eef9;--brand-ink:#1f3f73}

/* B. 바탕 ------------------------------------------------------------ */
body{font-size:17px;line-height:1.68;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}
a{color:var(--accent)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,#fff);outline-offset:3px;border-radius:6px}
.amt,.no,.sc-no,table.tier .num,table.dl td.dl-us{font-family:var(--sans);font-variant-numeric:tabular-nums}

/* C. 단추 ------------------------------------------------------------ */
.btn{min-height:54px;padding:0 24px;border:0;border-radius:var(--r-control);background:var(--accent);color:#fff;font-size:17px;font-weight:700;letter-spacing:-.01em;
  box-shadow:0 10px 22px -12px color-mix(in srgb,var(--accent) 80%,transparent);transition:background .15s,transform .15s,box-shadow .15s}
.btn:hover{filter:none;background:var(--accent-deep)}
.btn:active{transform:translateY(1px)}
.btn-sm{min-height:42px;padding:0 18px;font-size:15px;border-radius:12px;box-shadow:none}
.btn-lg{min-height:56px;padding:0 28px}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--rule);box-shadow:none}
.btn-ghost:hover{background:var(--bg-soft);color:var(--ink)}
.btn-inverse{background:#fff;color:var(--accent-deep);box-shadow:none}
.btn-inverse:hover{background:var(--accent-soft)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;box-shadow:none}
.link-strong{font-size:16px;color:var(--accent);text-decoration-thickness:1.5px}
.badge{border:0;background:var(--accent-soft);color:var(--accent-deep);padding:3px 11px}
.badge-line{border:1px solid var(--rule);color:var(--ink-2);background:#fff;padding:2px 10px}

/* D. 첫 화면 --------------------------------------------------------- */
.hero{position:relative;overflow:hidden;padding:60px 0 44px;background:
  radial-gradient(900px 420px at 92% -10%,rgba(196,119,86,.12),transparent 62%),
  radial-gradient(760px 520px at 6% -4%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 60%),
  linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,#fff) 0%,#fff 82%)}
.hero.is-branch{padding-top:56px}
.hero-grid{grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));gap:40px 56px}
.hero-copy{gap:16px}
.hero h1{font-size:clamp(30px,4.1vw,50px);font-weight:800;letter-spacing:-.035em;line-height:1.2}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-copy>.eyebrow{align-self:flex-start;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 8px;max-width:100%;margin:0;padding:6px 14px;border:1px solid var(--rule);border-radius:var(--r-pill);background:#fff;
  font-size:14px;font-weight:600;letter-spacing:0;color:var(--accent-deep);box-shadow:0 6px 16px -12px rgba(16,48,44,.4)}
.hero-copy>.eyebrow::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--clay)}
.slogan{font-size:30px}
.lede{font-size:19px;max-width:34em}
.price-line{font-size:15.5px;line-height:1.7}
.actions{gap:12px 18px;margin-top:10px}
.trust{align-items:center;font-size:15px}
.trust .chk,.incl .chk{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:800}
.hero .card{border-radius:28px;box-shadow:var(--shadow-lg);border-color:#e9efed}

/* 진행 띠 (01 · 02 · 03) */
.journey{border:0;gap:12px;margin-block:8px 0}
.journey li{padding:14px 18px;border-radius:16px;background:var(--bg-soft);border:1px solid var(--rule-2);align-items:center}
.journey .no{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:12.5px;font-weight:800}

/* E. 구역 ------------------------------------------------------------ */
.section{padding:84px 0 36px}
.section.is-roomy{padding-top:88px}
.section.is-end{padding-bottom:88px}
.section.is-soft,.is-soft{background:var(--bg-soft)}
.section.is-soft{padding-bottom:84px}
.eyebrow{font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--accent);margin:0 0 10px}
.sec-head{margin-bottom:30px;align-items:flex-end}
.sec-head h2,.h2{font-size:clamp(25px,3vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.28}
.sec-note{font-size:15.5px;color:var(--ink-3)}
.fine{font-size:13.5px;color:var(--ink-3);line-height:1.6}

/* 차림표 */
.carte{border-top:1px solid var(--rule)}
.carte-row{padding:15px 0}
.c-title{font-size:17px}
.leader{border-bottom:1.5px dotted var(--leader)}
.amt{font-size:16px;font-weight:700}
.carte.is-lg{display:grid;gap:14px;border-top:0}
.carte.is-lg .carte-row{padding:22px 24px;border:1px solid var(--rule);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-card);transition:transform .2s,border-color .2s}
.carte.is-lg a.carte-row:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 35%,var(--rule))}
.carte.is-lg .c-title{font-size:20px;letter-spacing:-.02em}
.carte.is-lg .amt{font-size:17px;color:var(--accent)}
.carte.is-lg .c-desc{padding-left:40px;line-height:1.65}
.carte.is-lg .no{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:var(--accent-soft);color:var(--accent-deep);font-size:12.5px;font-weight:800;align-self:center}
.carte.is-lg .leader{border-bottom-color:transparent}

/* 카드 · 요금 */
.card{border-color:var(--rule);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.box{border-color:var(--rule);border-radius:var(--r-card)}
.price-cards{gap:20px}
.price-card{padding:26px 26px 22px}
.price-card h3{font-size:20px;font-weight:800;letter-spacing:-.02em}
.tier-row{padding:10px 0;border-top-color:var(--rule-2)}
.tier-row.is-on{border-radius:10px;background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.incl li{align-items:flex-start;border-top-color:var(--rule-2)}
table.tier th,table.tier td{padding:11px 10px 11px 0;border-top-color:var(--rule-2)}
table.tier thead th{border-top:0;border-bottom:1.5px solid var(--rule);font-size:13px;color:var(--ink-3)}
table.tier .num{font-weight:700}
table.tier tr.is-on>*{background:var(--accent-soft)}
.quote-card{border-radius:24px}
.qc-to{border-bottom:1.5px solid var(--rule)}
.qc-incl{background:var(--bg-soft)}

/* 진행 순서 → 카드 */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:16px;border-top:0}
.steps li{flex-direction:column;align-items:flex-start;gap:8px;padding:24px 24px 22px;border:1px solid var(--rule);border-radius:var(--r-card);background:#fff}
.steps li>.no{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-size:13.5px;font-weight:800;margin-bottom:6px}
.s-title{flex:none;font-size:19px;font-weight:800;letter-spacing:-.02em}
.s-desc{flex:none;font-size:15px;line-height:1.65}
.point{border-top:1px solid var(--rule);padding-top:18px}
.side-door{margin-top:20px;padding:16px 20px;border-radius:16px;border-color:var(--rule);box-shadow:var(--shadow-card)}

/* F. 신청서 ---------------------------------------------------------- */
.inquiry{gap:36px 64px}
.inquiry-copy{gap:16px}
.inquiry-copy>p:not([class]){font-size:16px;line-height:1.7}
.form{padding:30px}
.card.form{border-radius:28px;box-shadow:var(--shadow-lg);border-color:#e6ecea}
:is(.form,.calc-card,.field) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button]),select,textarea){
  height:52px;border:1.5px solid var(--field-line);border-radius:12px;font-size:16px;transition:border-color .15s,box-shadow .15s}
:is(.form,.field) textarea{height:auto}
:is(.form,.calc-card,.field) :is(input,select,textarea):focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}
.field>label,.field>.label{font-size:15px}
.optional-fields{border-color:var(--rule-2)}
.privacy-consent,.consent{background:var(--bg-soft);border-radius:16px;padding:16px 18px 18px}
.consent-check input,.check input,.field.check>input{accent-color:var(--accent)}
.intake-status,.form-result{border-radius:16px}
form[data-intake] button[type=submit]{min-height:56px}
.tab,.seg>button{min-height:46px;border:1.5px solid var(--field-line);border-radius:12px}
.tab[aria-selected="true"],.seg>button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}

/* 계산 카드 */
.calc-card{padding:28px 28px 26px;border-radius:28px}
.calc-card h2{font-size:21px;letter-spacing:-.02em}
.calc-card input:not([type=checkbox],[type=radio]){height:56px;font-family:var(--sans);font-size:22px;font-weight:700}
.fee-out{padding:18px 20px;border-radius:18px;background:var(--bg-mint)}
.fee-num{font-size:40px;font-weight:800;letter-spacing:-.03em;color:var(--accent-deep)}
.fee-note{color:var(--ink-3)}

/* 대상 확인 */
.selfcheck{padding:30px;border-radius:var(--r-card);border-color:var(--rule);box-shadow:var(--shadow-card)}
.sc-opts button{min-height:50px;border:1.5px solid var(--field-line);border-radius:14px;font-weight:600}
.sc-opts button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.sc-result{border-radius:18px;background:var(--bg-mint)}
.sc-q-note{border-left-color:var(--accent);background:var(--bg-soft);border-radius:0 12px 12px 0}

/* 기한표 */
.dl-card{border-radius:24px}
table.dl thead th{border-top:0;border-bottom:1.5px solid var(--rule)}
table.dl th,table.dl td{border-top-color:var(--rule-2)}

/* 자주 묻는 질문 → 카드 */
.qa-list{border-top:0;display:grid;gap:10px}
.qa{border:1px solid var(--rule);border-radius:16px;background:#fff;padding:0 22px}
.qa>summary{padding:18px 0;font-size:16.5px}
.qa>summary::after{font-size:22px;font-weight:400;color:var(--ink-3)}
.qa-body{padding:0 0 20px;font-size:15.5px;line-height:1.75}

/* G. 마무리 띠 → 둥근 상자 -------------------------------------------- */
.band{background:transparent;color:#fff;padding:0 var(--gutter) 88px}
.band .band-grid{max-width:calc(var(--wrap) - 2*var(--gutter));padding:56px;border-radius:32px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--accent-deep) 0%,var(--accent) 62%,color-mix(in srgb,var(--accent) 80%,#fff) 100%)}
.band-copy h2{font-size:clamp(24px,2.8vw,34px);letter-spacing:-.03em;color:#fff}
.band-copy p{color:rgba(255,255,255,.84)}
.band .btn,.band .btn-inverse{background:#fff;color:var(--accent-deep);box-shadow:none}
.band .btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.band-note{color:rgba(255,255,255,.78)}

/* H. 휴대폰 아래 고정 단추 ------------------------------------------------ */
@media (max-width:760px){
  .sticky-bar{gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--rule)}
  .sticky-bar .btn{min-height:50px;font-size:16px}
}

/* I. 휴대폰 ---------------------------------------------------------- */
@media (max-width:760px){
  body{font-size:16px}
  .hero{padding:30px 0 30px}
  .hero.is-branch{padding-top:28px}
  .hero-grid{gap:26px}
  .hero h1{font-size:clamp(29px,8vw,36px)}
  .lede{font-size:16.5px}
  .slogan{font-size:25px}
  .section{padding-top:60px}
  .section.is-roomy{padding-top:60px}
  .section.is-end,.section.is-soft{padding-bottom:60px}
  .sec-head{margin-bottom:22px}
  .sec-head h2,.h2{font-size:24px}
  .band{padding-bottom:60px}
  .band .band-grid{padding:36px 24px;border-radius:24px}
  .carte.is-lg .carte-row{padding:18px}
  .carte.is-lg .c-desc{padding-left:0}
  .form,.card.form{padding:22px 18px;border-radius:22px}
  .calc-card,.selfcheck{padding:22px 18px}
  .fee-num{font-size:34px}
  .qa{padding:0 16px}
  .journey{grid-template-columns:1fr;gap:8px}
}

/* ==========================================================================
   산뜻판 새 부품 — 머리 · 첫 화면 그림 카드 · 갈래 문 · 숫자 띠 · 카드 묶음 · 바닥글
   ========================================================================== */

/* 머리 (모든 쪽 공통: 물결 표시 + 간단홍 + 갈래 이름표) */
.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--rule-2)}
.nav-in{display:flex;align-items:center;gap:24px;min-height:72px}
.logo{display:inline-flex;align-items:center;gap:8px;flex:none;color:var(--brand);text-decoration:none}
.logo img,.logo .mark{width:34px;height:34px;display:block;flex:none}
.logo b{font-family:var(--hand);font-weight:700;font-size:34px;line-height:1;letter-spacing:0;color:#1f6a65}
.logo b.latin{font-family:var(--sans);font-size:24px;font-weight:800;letter-spacing:-.03em}
.logo .svc{margin-left:4px;padding:3px 10px;border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-ink);font-size:14px;font-weight:700;line-height:1.5;white-space:nowrap}
.logo .svc.pub{background:var(--pub-soft);color:#8f3a1b}
.logo .svc.intl{background:var(--intl-soft);color:#1f3f73}
.menu{display:flex;align-items:center;gap:4px 24px;margin-left:auto;font-size:15.5px;font-weight:500}
.menu a{color:var(--ink-2);text-decoration:none;white-space:nowrap}
.menu a:hover{color:var(--brand)}
.menu a[aria-current="page"]{color:var(--ink);font-weight:700}
.menu .back{color:var(--ink-3)}
.nav-cta{flex:none}
.m-menu{display:none;position:static}
.m-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--rule);border-radius:12px;background:#fff;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer}
.m-menu>summary::-webkit-details-marker{display:none}
.m-menu>summary::after{content:"";width:14px;height:10px;background:linear-gradient(currentColor 0 0) 0 0/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 50%/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 100%/100% 2px no-repeat}
.m-menu[open]>summary{background:var(--bg-soft)}
.m-panel{position:absolute;left:0;right:0;top:100%;display:grid;padding:6px var(--gutter) 14px;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 20px 30px -24px rgba(16,48,44,.4)}
.m-panel a{display:flex;align-items:center;min-height:50px;border-bottom:1px solid var(--rule-2);color:var(--ink);font-weight:600;text-decoration:none}
.m-panel a:last-child{border-bottom:0}
.m-panel a[aria-current="page"]{color:var(--brand)}
.m-panel .back{color:var(--ink-3);font-weight:500}

/* 첫 화면 문구 부품 */
.chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;margin:0;padding:6px 14px;border:1px solid var(--rule);border-radius:var(--r-pill);background:#fff;color:var(--brand-ink);font-size:14.5px;font-weight:600;line-height:1.5;box-shadow:0 6px 16px -12px rgba(16,48,44,.4)}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--clay);display:inline-block;flex:none}
.hero .slogan{margin:4px 0 -6px}
.hero-copy>.chip{align-self:flex-start}
.ticks{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:9px}
.ticks li{display:flex;gap:10px;align-items:center;font-size:16px;color:var(--ink-2)}
.ticks li>i{flex:none;width:22px;height:22px;border-radius:50%;background:var(--brand-soft);display:grid;place-items:center}
.ticks li>i::before{content:"";width:10px;height:6px;margin-top:-2px;border-left:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(-45deg)}
.btn .ar{transition:transform .2s}
.btn:hover .ar{transform:translateX(3px)}
@media (min-width:861px){.home .hero h1{font-size:clamp(31px,4.4vw,56px)}}
@media (min-width:1100px){.home .hero-grid{grid-template-columns:1.06fr .94fr;gap:40px}}
@media (min-width:861px) and (max-width:1099px){.home .hero-grid{grid-template-columns:1fr}.home .art{width:100%;max-width:560px}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.calc-link{display:none}

/* 첫 화면 그림: 손님이 받는 서류 카드 */
.art{position:relative;height:540px;min-width:0}
.art-bg{position:absolute;inset:54px 0 34px 40px;border-radius:36px;background:linear-gradient(150deg,#e4f2ee 0%,#f3f9f7 55%,#fbf4ee 100%);border:1px solid #e3eeeb;overflow:hidden}
.a-card{position:absolute;background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);border:1px solid #edf1f0}
.q-card{top:100px;left:96px;width:330px;padding:22px 22px 18px}
.q-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.q-head b{font-size:20px;letter-spacing:-.02em}
.tag{font-size:12px;font-weight:700;color:var(--clay-ink);background:var(--clay-soft);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap}
.q-to{font-size:13px;color:var(--ink-3);margin:0 0 12px}
.q-row{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:9px 0;border-top:1px dashed var(--rule)}
.q-row span{color:var(--ink-2)}
.q-row b{font-weight:700;white-space:nowrap}
.q-sum{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:6px;padding:12px 14px;background:var(--bg-mint);border-radius:12px}
.q-sum span{font-size:13px;color:var(--brand-ink);font-weight:600}
.q-sum b{font-size:19px;color:var(--brand-deep);white-space:nowrap}
.m-card{top:14px;right:0;width:262px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start}
.m-ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--brand);display:grid;place-items:center}
.m-card p{margin:0;font-size:13px;color:var(--ink-3);line-height:1.45}
.m-card p b{display:block;color:var(--ink);font-size:15px;margin:1px 0 2px}
.d-card{bottom:0;right:14px;width:282px;padding:16px 18px}
.d-top{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px}
.d-ok{width:28px;height:28px;border-radius:50%;background:var(--ok);display:grid;place-items:center;flex:none}
.d-card ul{list-style:none;margin:10px 0 0;padding:0;font-size:13px;color:var(--ink-2)}
.d-card li{display:flex;justify-content:space-between;gap:10px;padding:4px 0}
.d-card li span:last-child{color:var(--ok);font-weight:700;white-space:nowrap}
.art-bg svg{position:absolute;right:-40px;bottom:-30px;width:360px;opacity:.5}
.blob{position:absolute;border-radius:50% 46% 52% 48%;background:var(--clay);opacity:.9}
.blob.a{width:18px;height:20px;top:70px;left:60px;transform:rotate(-14deg)}
.blob.b{width:12px;height:13px;top:92px;left:86px;opacity:.6}

/* 갈래 문 (어느 쪽이세요?) */
.doors-wrap{padding-top:4px;padding-bottom:64px}
.doors-title{font-size:15px;font-weight:700;color:var(--ink-3);margin:0 0 14px}
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.door{position:relative;display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);padding:24px 24px 20px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-card);transition:transform .2s,box-shadow .2s,border-color .2s}
.door:hover{transform:translateY(-3px);border-color:#cfe1dc}
.d-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:10px}
.door.apt .d-ic{background:var(--apt-soft)} .door.pub .d-ic{background:var(--pub-soft)} .door.intl .d-ic{background:var(--intl-soft)}
.door h3{margin:0;font-size:21px;letter-spacing:-.02em;display:flex;align-items:center;gap:6px}
.door h3 .ar{margin-left:auto;color:var(--ink-3);font-weight:500}
.door .who{margin:0;font-size:14.5px;color:var(--ink-3)}
.door .px{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--rule-2);font-size:14.5px;color:var(--ink-2);display:grid;gap:4px}
.door .px b{color:var(--ink)}
.door.apt .px b{color:var(--apt)} .door.pub .px b{color:var(--pub)} .door.intl .px b{color:var(--intl)}
/* 문 전체가 제목 링크로 눌리고, 다른 쪽으로 가는 안쪽 줄 링크는 그 위에 놓인다 */
.door h3 a{display:flex;align-items:center;gap:6px;flex:1;min-width:0;color:inherit;text-decoration:none}
.door h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r-card)}
.door .px a{position:relative;z-index:1;color:inherit;text-decoration:none}
.door .px a:hover{text-decoration:underline;text-underline-offset:3px}
@supports selector(.door:has(a)){
  .door h3 a:focus-visible{outline:0}
  .door:has(h3 a:focus-visible){outline:3px solid color-mix(in srgb,var(--accent) 55%,#fff);outline-offset:3px}
}

/* 숫자 띠 */
.stats{background:var(--bg-soft);border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
.stats-in{display:grid;grid-template-columns:repeat(3,1fr)}
.stat{padding:36px 28px}
.stat+.stat{border-left:1px solid var(--rule)}
.stat b{display:block;font-size:38px;line-height:1.1;letter-spacing:-.03em;color:var(--brand-deep);font-weight:800}
.stat span{display:block;margin-top:8px;font-weight:600}
.stat small{display:block;margin-top:6px;font-size:13px;color:var(--ink-3);line-height:1.5}

/* 새 구역 */
.sec{padding:88px 0}
.sec.soft{background:var(--bg-soft)}
.sec.flush-top{padding-top:0}
.sec .sec-head{display:block}
.sec .sec-head h2{margin:0}
.sec-head .sec-note{margin-top:12px}

/* 업무와 요금 카드 */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.svc{background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);padding:26px 26px 10px;box-shadow:var(--shadow-card);color:var(--ink);text-decoration:none}
.svc-head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.lab{display:inline-block;font-size:12.5px;font-weight:700;border-radius:var(--r-pill);padding:3px 10px;line-height:1.6;white-space:nowrap}
.lab,.svc.aud .lab{color:var(--brand-ink);background:var(--brand-soft)}
.svc.apt .lab,.lab.apt{color:var(--apt);background:var(--apt-soft)}
.svc.pub .lab,.lab.pub{color:var(--pub);background:var(--pub-soft)}
.svc.intl .lab,.lab.intl{color:var(--intl);background:var(--intl-soft)}
.svc h3{margin:6px 0 2px;font-size:21px;letter-spacing:-.02em}
.svc h3 a{color:inherit;text-decoration:none}
.svc h3 a:hover{color:var(--brand)}
.svc h3 .ar{color:var(--ink-3);font-weight:500}
.svc .who{margin:0 0 10px;font-size:14.5px;color:var(--ink-3)}
.row{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:15px 0;border-top:1px solid var(--rule-2);color:var(--ink);text-decoration:none}
a.row:hover b{color:var(--brand)}
.row b{font-size:16.5px}
.row .p{font-weight:800;white-space:nowrap;text-align:right;color:var(--brand)}
.svc.apt .row .p{color:var(--apt)} .svc.pub .row .p{color:var(--pub)} .svc.intl .row .p{color:var(--intl)}
.row small{grid-column:1/-1;font-size:13.5px;color:var(--ink-3);line-height:1.5}
.vat-note{font-size:14px;color:var(--ink-3);margin:22px 0 0}
a.svc.row-card{display:block;padding-bottom:22px;transition:transform .2s,border-color .2s}
a.svc.row-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 30%,var(--rule))}

/* 진행 순서 카드 */
.step-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;margin:0;padding:0}
.step-cards.four{grid-template-columns:repeat(4,1fr)}
.step-card{position:relative;background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);padding:26px}
.step-card .n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;font-size:15px}
.step-card h3{margin:16px 0 6px;font-size:19px;letter-spacing:-.02em}
.step-card p{margin:0;font-size:15px;color:var(--ink-2)}
.step-card .when{display:inline-block;margin-top:14px;font-size:13px;font-weight:700;color:var(--brand-ink);background:var(--brand-soft);border-radius:var(--r-pill);padding:4px 11px}

/* 받게 되는 문서 */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.docs.two{grid-template-columns:repeat(2,1fr);max-width:820px}
.doc{margin:0;background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card)}
.doc>a{display:block;color:inherit;text-decoration:none}
.doc img{display:block;width:100%;aspect-ratio:600/420;object-fit:cover;object-position:top;border-bottom:1px solid var(--rule-2);background:#f3f6f5}
.doc figcaption{padding:14px 18px 16px;font-weight:700;font-size:15.5px}
.doc figcaption small{display:block;font-weight:400;font-size:13px;color:var(--ink-3);margin-top:2px}

/* 검토하는 사람 */
.who-card{display:flex;gap:22px;align-items:center;background:linear-gradient(135deg,var(--bg-mint),#fff);border:1px solid #d9ebe6;border-radius:28px;padding:30px 34px;margin-top:22px}
.who-ic{flex:none;width:64px;height:64px;border-radius:20px;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-card)}
.who-card h3{margin:0;font-size:20px}
.who-card p{margin:4px 0 0;color:var(--ink-2);font-size:15px}

/* 마무리 상자 */
.cta-band{background:linear-gradient(135deg,var(--brand-deep) 0%,var(--brand) 60%,color-mix(in srgb,var(--brand) 80%,#fff) 100%);color:#fff;border-radius:32px;padding:56px;display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center;position:relative;overflow:hidden}
.cta-band h2{color:#fff;font-size:clamp(25px,3vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.28;margin:0}
.cta-band p{color:rgba(255,255,255,.84);margin:12px 0 0}
.cta-band .btn{background:#fff;color:var(--brand-deep);box-shadow:none}
.cta-band .btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.cta-band .acts{display:grid;gap:12px;justify-items:stretch}
.cta-band small{display:block;color:rgba(255,255,255,.72);font-size:13px;margin-top:16px}

/* 요금 카드 묶음(세무) */
.tier-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.tier-card{background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);padding:26px;box-shadow:var(--shadow-card);min-width:0}
.tier-card h3{margin:8px 0 0;font-size:21px;letter-spacing:-.02em}
.tier-card .from{font-size:15px;color:var(--ink-3);margin:2px 0 14px}
.tier-card .from b{font-size:30px;color:var(--brand-deep);letter-spacing:-.02em}
.tier-card table{width:100%;border-collapse:collapse;font-size:15px}
.tier-card td{padding:9px 0;border-top:1px solid var(--rule-2)}
.tier-card td:last-child{text-align:right;font-weight:700}
.tier-card .inc{margin:16px 0 0;padding:0;list-style:none;font-size:14.5px;color:var(--ink-2);display:grid;gap:6px}
.tier-card .inc li{display:flex;gap:8px}
.tier-card .inc li::before{content:"✓";color:var(--brand);font-weight:800}
.tier-card .basis{font-size:13px;color:var(--ink-3);margin:12px 0 0}

/* 거래처 이야기 */
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.voice-grid.two{grid-template-columns:repeat(2,1fr);max-width:820px}
.voice{background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);padding:24px;margin:0;display:flex;flex-direction:column;gap:16px}
.voice blockquote{margin:0;font-size:16px;line-height:1.7;color:var(--ink)}
.voice blockquote::before{content:"\201C";display:block;font-size:40px;line-height:.6;color:var(--clay);font-family:Georgia,serif;margin-bottom:8px}
.voice figcaption{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-3);margin-top:auto}
.voice figcaption i{flex:none;width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-style:normal;font-weight:800}
.voice-note{font-size:13.5px;color:var(--ink-3);margin:14px 0 0}

/* 자주 묻는 질문 (새 쪽) */
.faq-list{display:grid;gap:10px}
.faq-list details{background:#fff;border:1px solid var(--rule);border-radius:16px;padding:0 22px}
.faq-list summary{list-style:none;cursor:pointer;padding:18px 0;font-weight:700;font-size:16.5px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;color:var(--ink-3);font-weight:400;font-size:22px;line-height:1}
.faq-list details[open]>summary::after{content:"\2013"}
.faq-list details>:not(summary){margin:0 0 14px;color:var(--ink-2);font-size:15.5px;line-height:1.75}
.faq-list details>:last-child{margin-bottom:20px}
.faq-list .more{border:0;background:transparent;padding:0}
.faq-list .more>summary{justify-content:flex-start;color:var(--brand);font-size:15.5px}
.faq-list .more>summary::after{content:"+";color:var(--brand)}
.faq-list .more[open]>summary::after{content:"\2013"}
.faq-list .more>.faq-list{margin:0 0 0}
.faq-basis{font-size:13px;color:var(--ink-3);margin:16px 0 0}

/* 신청 구역 */
.apply{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}
.apply>*{min-width:0}
.apply-side h2{margin:0 0 10px;font-size:clamp(25px,3vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.28}
.apply-side ul{margin:24px 0 0;padding:0;list-style:none;display:grid;gap:14px}
.apply-side li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:var(--ink-2)}
.apply-side li b{display:block;color:var(--ink)}
.apply-side li>i{flex:none;width:30px;height:30px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center;font-style:normal;font-weight:800;color:var(--brand-ink);font-size:14px}
.apply-side .side-note{margin-top:22px;font-size:14px;color:var(--ink-3)}
@media (min-width:861px){.apply-side{position:sticky;top:96px}}
/* 예전 쪽 신청서(.form) 를 새 카드로 */
.apply .form{margin:0;background:#fff;border:1px solid #e6ecea;border-radius:28px;padding:32px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:18px}
.apply .form .row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px}
.apply .form .optional-fields[open]{display:flex;flex-direction:column;gap:14px}
.apply .form .optional-fields[open]>summary{margin-bottom:2px}
.apply .form button[type=submit]{display:flex;width:100%;min-height:56px}
.apply .form .submit-promise{margin:-6px 0 0;text-align:center;font-size:14px;font-weight:600;color:var(--brand-ink)}
.apply .form .note{margin:0;font-size:13.5px;color:var(--ink-3)}
.apply .form .note a{color:var(--ink-2)}
.apply .form fieldset{min-width:0}
.submission-status{margin:0;padding:16px 18px;border-radius:16px;background:var(--bg-soft);font-weight:700}
.submission-status[data-state="success"]{background:var(--ok-soft);color:#14532d}
.submission-status[data-state="error"]{background:var(--err-soft);color:var(--err-ink)}

/* 공시 기한 띠 · 확인 카드 */
.deadline{display:flex;gap:14px;align-items:center;margin-top:6px;background:#fff8ea;border:1px solid #f1e2bf;border-radius:16px;padding:14px 18px;font-size:15px;color:#5f4a12;max-width:560px}
.deadline b{color:#3f3005}
.deadline .cal{flex:none;width:44px;height:48px;border-radius:10px;background:#fff;border:1px solid #f1e2bf;display:grid;grid-template-rows:14px 1fr;overflow:hidden;text-align:center}
.deadline .cal span{background:#d9822b;color:#fff;font-size:10px;font-weight:800;line-height:14px}
.deadline .cal strong{font-size:17px;line-height:32px;color:#3f3005}

/* 세무 첫 화면 계산 카드 */
.calc{position:relative;background:#fff;border:1px solid var(--rule);border-radius:28px;box-shadow:var(--shadow-lg);padding:26px 26px 22px;max-width:460px;margin-left:auto;width:100%}
.calc h3{margin:0 0 14px;font-size:18px}
.toggle{display:grid;grid-template-columns:1fr 1fr;background:var(--bg-soft);border-radius:14px;padding:4px;gap:4px;margin-bottom:18px}
.toggle button{border:0;background:transparent;border-radius:11px;min-height:42px;font:600 15px var(--sans);color:var(--ink-3);cursor:pointer}
.toggle button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 2px 8px -4px rgba(0,0,0,.25)}
.c-field{display:block;font-size:14px;font-weight:600;color:var(--ink-2)}
.inp{display:flex;align-items:center;gap:8px;margin-top:8px;border:1.5px solid var(--rule);border-radius:14px;height:56px;padding:0 16px;background:#fff}
.inp:focus-within{border-color:var(--brand)}
.inp input{border:0;outline:0;font:700 22px var(--sans);width:100%;min-width:0;color:var(--ink);background:transparent}
.inp span{color:var(--ink-3);font-weight:600}
.res{margin-top:16px;background:var(--bg-mint);border-radius:18px;padding:18px 20px}
.res .t{font-size:13.5px;color:var(--brand-ink);font-weight:600}
.res .v{font-size:40px;font-weight:800;letter-spacing:-.03em;color:var(--brand-deep);line-height:1.15;margin-top:2px}
.res .v small{font-size:18px;font-weight:700}
.res .b{font-size:13px;color:var(--ink-3);margin-top:4px}
.calc .add{font-size:13.5px;color:var(--ink-2);margin:12px 2px 16px}
.calc .btn{width:100%}

/* 바닥글 */
.foot{margin-top:auto;padding:48px 0 56px;border-top:1px solid var(--rule-2);color:var(--ink-3);font-size:13.5px;line-height:1.75}
.foot .logo{margin-bottom:12px}
.foot .logo img,.foot .logo .mark{width:28px;height:28px}
.foot .logo b{font-size:28px}
.foot .logo b.latin{font-size:20px}
.foot p{margin:2px 0}
.foot a{color:var(--ink-2)}
.foot .links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:14px}
.foot .links a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none}
.foot .links a:hover{text-decoration:underline}
.foot .basis{margin-top:14px;font-size:12.5px}

/* 휴대폰 아래 고정 단추(새 쪽) */
.sticky{display:none}

/* 움직임: 한 번만, 짧게 */
@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .7s cubic-bezier(.2,.7,.2,1) backwards}
  .rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.3s}.rise.d4{animation-delay:.42s}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .m-card{animation:bob 6s ease-in-out 1.2s infinite}
  @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
}

/* 휴대폰 */
@media (max-width:1100px){
  .menu{gap:4px 18px;font-size:15px}
  .menu .back{display:none}
}
@media (max-width:860px){
  .nav-in{min-height:62px;gap:12px}
  .logo img,.logo .mark{width:30px;height:30px}
  .logo b{font-size:30px}
  .logo b.latin{font-size:21px}
  .menu,.nav-cta{display:none}
  .m-menu{display:block;margin-left:auto}
  .art{height:auto;order:3}
  .home .art{display:none}
  .home .hero .actions{display:none}
  .calc-link{display:inline-block;margin-top:4px;font-weight:700;color:var(--brand);font-size:15.5px}
  .doors-wrap{padding-top:24px;padding-bottom:40px}
  .doors{grid-template-columns:1fr;gap:10px}
  .door{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:16px}
  .d-ic{width:46px;height:46px;margin:0;border-radius:14px}
  .door .tx{flex:1;min-width:0}
  .door h3{font-size:18px}
  .door .who{font-size:13.5px}
  .door .px{flex-basis:100%;margin:6px 0 0;padding-top:10px;font-size:13.5px}
  .stats-in{grid-template-columns:1fr}
  .stat{padding:22px 4px}
  .stat+.stat{border-left:0;border-top:1px solid var(--rule)}
  .stat b{font-size:32px}
  .sec{padding:60px 0}
  .menu-grid,.step-cards,.step-cards.four,.tier-grid,.apply{grid-template-columns:1fr}
  .apply{gap:28px}
  .svc{padding:22px 20px 6px}
  .docs,.docs.two,.voice-grid,.voice-grid.two{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-right:calc(var(--gutter)*-1);padding-right:var(--gutter)}
  .doc,.voice{scroll-snap-align:start}
  .who-card{flex-direction:column;align-items:flex-start;padding:24px}
  .cta-band{grid-template-columns:1fr;padding:36px 24px;border-radius:24px}
  .apply .form{padding:24px 18px;border-radius:22px}
  .faq-list details{padding:0 16px}
  .sticky{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--rule)}
  .sticky.one{grid-template-columns:1fr}
  .sticky .btn{min-height:50px;font-size:16px;padding:0 10px}
  body:has(>.sticky){padding-bottom:calc(var(--sticky-h) + env(safe-area-inset-bottom))}
  .calc{max-width:none;margin:0}
  .q-card{position:relative;top:auto;left:auto;width:auto;margin:0}
  .deadline{max-width:none}
}
@media print{.nav,.sticky,.m-menu{display:none!important}}
/* 첫 화면 짧은 움직임(약 9초 반복) — 견적서 → 「동의합니다」 답장 → 신고 완료 보고 */
.clip{position:relative}
.clip .a-card{will-change:opacity,transform}
.clip .m-card{animation:none;top:0;right:0;z-index:3}
.clip .q-card{top:100px;left:84px}
.clip .r-card{top:352px;left:0;width:226px;padding:14px 16px 14px;z-index:2}
.r-top{display:flex;align-items:center;gap:10px}
.r-av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--apt-soft);color:var(--apt);display:grid;place-items:center;font-weight:800;font-size:15px}
.r-top p{margin:0;font-size:12.5px;color:var(--ink-3);line-height:1.4}
.r-top p b{display:block;font-size:14px;color:var(--ink)}
.r-msg{margin:10px 0 0;padding:10px 14px;border-radius:4px 14px 14px 14px;background:var(--bg-soft);font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.r-ok{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:4px 10px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:12.5px;font-weight:700}
.clip .d-card{top:350px;bottom:auto;right:0;z-index:2}
.clip-steps{position:absolute;left:0;top:0;display:flex;gap:6px;margin:0;padding:0;list-style:none}
.clip-steps li{display:flex;align-items:center;gap:6px;padding:5px 12px 5px 6px;border-radius:999px;background:#fff;border:1px solid var(--rule);font-size:13px;font-weight:700;color:var(--ink-3);transition:background .3s,color .3s,border-color .3s}
.clip-steps li i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--rule-2);font-style:normal;font-size:11.5px;color:var(--ink-3);transition:background .3s,color .3s}
.clip-steps li.on{background:var(--brand);border-color:var(--brand);color:#fff}
.clip-steps li.on i{background:#fff;color:var(--brand)}
.clip-steps li.done{color:var(--brand-ink);border-color:#cfe1dc}
.clip-steps li.done i{background:var(--brand-soft);color:var(--brand)}
/* 휴대폰: 첫 화면(갈래와 가격) 바로 아래 「이렇게 진행돼요」 */
.clip-sec{display:none}
@media (max-width:860px){
  .clip-sec{display:block;padding:6px 0 44px}
  .clip-sec h2{font-size:22px;line-height:1.35;margin:0 0 12px}
  .clip.phone{height:628px}
  .clip.phone .art-bg{inset:72px 0 0 0;border-radius:26px}
  .clip.phone .blob,.clip.phone .m-card{display:none}
  .clip.phone .q-card{position:absolute;top:48px;left:0;right:auto;width:min(322px,100%);margin:0}
  .clip.phone .r-card{top:302px;left:auto;right:0;width:236px}
  .clip.phone .d-card{top:464px;right:auto;left:0;width:272px}
  .clip.phone .clip-steps{left:0;right:0;top:0}
}
