/* ===== 키친테리어 cf.jibsuriworld.com — "먹줄(Ink-Line) Work Order" 리디자인 =====
   컨셉: 실측 기반 맞춤가구시공 = 목수가 먹줄(먹통에 적신 실)을 튕겨 정확한 절단선을 표시하는 것과 같은 일.
   한지(창호지) 톤 캔버스를 옻칠(전통 칠기) 톤의 짙은 프레임(헤더/푸터)이 감싸고, 유기/나전 느낌의 놋쇠·주칠 두 색이 구조/행동을 구분한다. */
:root{
  --color-bg:#EFE6D3; --color-bg-alt:#E4D8BD; --color-bg-alt-2:#D9CBA8; --color-bg-alt-3:#CCBB90;
  --color-ink:#1C1410; --color-ink-alt:#241A14;
  --color-text:#241A12; --color-text-alt:#332419; --color-text-muted:#5C4A3A; --color-text-subtle:#7B6A56; --color-text-faint:#B8A98F;
  --color-border:#CDBFA0; --color-border-alt:#B8A87D;
  --color-accent:#8F6B1E; --color-accent-soft:#C9A227;
  --color-tape:#B8321F; --color-tape-soft:#D9694A;
  --color-bg-invert:#1C1410; --color-text-invert:#E8DCC4;
  --color-overlay:rgba(20,14,10,.55);
  --text-on-light:#241A12; --text-on-dark:#E8DCC4;
  --font-heading:'SUIT Variable',system-ui,-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
  --font-mark:'Black Han Sans',var(--font-heading);
  --font-mono:var(--font-heading);
  --font-body:'SUIT Variable',system-ui,-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
  --tracking-tight:-0.02em;
  --container-max:1280px; --container-wide:1440px;
  --gutter:clamp(20px,4vw,48px); --section-pad:clamp(56px,9vw,108px);
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-snap:cubic-bezier(.34,1.56,.64,1);
  --radius-sm:3px; --radius-pill:999px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body,p,h1,h2,h3,h4,h5,h6,li,td,th,a,span,div,button{word-break:keep-all;overflow-wrap:break-word}
body{
  margin:0; background:var(--color-bg); color:var(--color-text); font-family:var(--font-body);
  line-height:1.7; -webkit-font-smoothing:antialiased; overflow-x:hidden; padding-bottom:0;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.container-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--gutter)}
section{padding:var(--section-pad) 0}

h1,h2,h3{font-family:var(--font-heading);font-weight:800;letter-spacing:var(--tracking-tight);line-height:1.25;margin:0;color:var(--color-text)}
.fs-h1{font-size:clamp(2rem,5vw,3.4rem)}
.fs-h2{font-size:clamp(1.6rem,3.4vw,2.5rem)}
.fs-h3{font-size:clamp(1.1rem,1.8vw,1.3rem)}
.fs-lede{font-size:clamp(1.02rem,1.4vw,1.15rem);color:var(--color-text-muted);line-height:1.8}

/* 절단 지시서의 항목 번호처럼 — 소제목 앞의 먹줄 표식 (튕긴 실 = 점 + 선) */
.fs-num{
  display:inline-flex;align-items:center;gap:.65rem;
  font-family:var(--font-mono);font-weight:700;font-size:.82rem;letter-spacing:.16em;
  color:var(--color-accent);margin-bottom:1rem;
}
.fs-num::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--color-tape);flex:none}
.fs-num::after{content:'';height:1.5px;width:52px;background:var(--color-accent);flex:none;transform-origin:left;transform:scaleX(0)}
.reveal.in .fs-num::after{transform:scaleX(1);transition:transform .55s var(--ease-snap) .15s}
@media (prefers-reduced-motion:reduce){.reveal.in .fs-num::after{transition:none;transform:scaleX(1)}}

/* ===== 헤더 — 어두운 잉크 프레임 ===== */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;padding:1rem 0;background:rgba(32,29,24,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-ink-alt)}
.hdr-inner{display:flex;align-items:center;justify-content:space-between}
.hdr-logo{font-family:var(--font-mark);font-weight:400;font-size:1.15rem;letter-spacing:0;color:var(--text-on-dark)}
.hdr-logo span{color:var(--color-tape-soft)}
.hdr-nav{display:flex;gap:1.8rem;font-size:.9rem;color:var(--color-text-faint)}
.hdr-nav a{transition:color .25s var(--ease)}
.hdr-nav a:hover{color:var(--text-on-dark)}
.hdr-cta{padding:.6rem 1.2rem;border:1px solid var(--color-tape-soft);border-radius:var(--radius-sm);font-size:.86rem;font-weight:700;color:var(--color-tape-soft)}
.hdr-burger{display:none;position:relative;width:34px;height:34px;background:none;border:0;cursor:pointer;padding:0}
.hdr-burger::before{content:'';position:absolute;left:6px;right:6px;top:16px;height:2px;background:var(--text-on-dark);box-shadow:0 -7px 0 var(--text-on-dark),0 7px 0 var(--text-on-dark)}
#mob-nav{position:fixed;inset:0 0 0 auto;width:78vw;max-width:340px;background:var(--color-ink);transform:translateX(100%);transition:transform .35s var(--ease);z-index:60;padding:5rem 1.8rem 2rem;border-left:1px solid var(--color-ink-alt)}
#mob-nav.open{transform:translateX(0)}
#mob-nav a{display:block;padding:.9rem 0;border-bottom:1px solid var(--color-ink-alt);font-size:1.05rem;color:var(--text-on-dark)}
#nav-backdrop{position:fixed;inset:0;background:rgba(10,9,6,.6);z-index:55;opacity:0;pointer-events:none;transition:opacity .3s}
#nav-backdrop.open{opacity:1;pointer-events:auto}

/* ===== 버튼 — 파란 먹줄(정보/구조) vs 주황 절단선(행동) ===== */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 1.9rem;min-height:52px;border-radius:var(--radius-sm);background:var(--color-tape);color:var(--text-on-dark);border:1px solid var(--color-tape);font-weight:700;transition:.3s var(--ease)}
.btn .arrow{transition:transform .3s var(--ease)}
.btn-ghost{background:transparent;color:var(--color-text);border:1px solid var(--color-border-alt)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:transparent;color:var(--color-tape)}
  .btn:hover .arrow{transform:translateX(6px)}
  .btn-ghost:hover{background:var(--color-ink);color:var(--text-on-dark);border-color:var(--color-ink)}
  .card:hover{background:var(--color-ink);color:var(--text-on-dark)}
  .card:hover h3{color:var(--text-on-dark)}
  .card:hover p{color:var(--color-text-faint)}
  .card:hover .fs-num{color:var(--color-accent-soft)}
  .dp-card:hover img{transform:scale(1.06)}
}

/* ===== 히어로 ===== */
/* 세부페이지 헤더 — 홈 히어로(사진 크로스페이드형)와 다른, 텍스트 중심의 짧은 구성 */
.detail-hero{padding:calc(var(--section-pad) + 3rem) 0 calc(var(--section-pad) * .5);background-color:var(--color-bg);background-size:cover;background-position:center;background-repeat:no-repeat}

.hero{position:relative;background:var(--color-bg);overflow:hidden}
.hero-inner{position:relative;max-width:var(--container-wide);margin:0 auto;padding:calc(var(--section-pad) + 3.2rem) var(--gutter) var(--section-pad);display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.hero-text{min-width:0}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-sm);background:var(--color-ink);font-family:var(--font-heading);font-weight:600;font-size:.85rem;letter-spacing:.02em;color:var(--color-accent-soft);margin-bottom:1.4rem}
.hero-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--color-tape-soft)}
.hero h1{color:var(--color-text);font-size:clamp(2.2rem,5.4vw,3.9rem);position:relative;padding-bottom:1.2rem}
.hero h1::after{content:'';position:absolute;left:2px;bottom:0;height:3px;width:104px;background:var(--color-tape);transform-origin:left;transform:scaleX(0);animation:snapIn .6s var(--ease-snap) .3s forwards}
.hero-sub{color:var(--color-text-muted);font-size:clamp(1rem,1.5vw,1.15rem);margin-top:1.2rem;max-width:520px}
.hero-cta{display:flex;gap:1rem;margin-top:2.1rem;flex-wrap:wrap}
.hero-frame{position:relative;aspect-ratio:4/5;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border-alt);box-shadow:0 30px 60px -28px rgba(32,29,24,.45)}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:heroFade 15s infinite,heroZoom 15s infinite}
.hero-slide:nth-child(1){animation-delay:0s}
.hero-slide:nth-child(2){animation-delay:5s}
.hero-slide:nth-child(3){animation-delay:10s}
@keyframes heroFade{0%{opacity:0}5%{opacity:1}30%{opacity:1}35%{opacity:0}100%{opacity:0}}
@keyframes heroZoom{0%{transform:scale(1.12)}30%{transform:scale(1.02)}35%{transform:scale(1.12)}100%{transform:scale(1.12)}}
@keyframes snapIn{0%{transform:scaleX(0)}70%{transform:scaleX(1.08)}100%{transform:scaleX(1)}}
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;padding-top:calc(var(--section-pad) + 2rem)}
  .hero-frame{aspect-ratio:16/10;order:-1}
}
@media (prefers-reduced-motion:reduce){.hero-slide{animation:none;opacity:1}.hero h1::after{animation:none;transform:scaleX(1)}}

/* ===== 카드/그리드 ===== */
.dp-g2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.dp-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dp-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.dp-stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center;align-items:center}
@media(max-width:1024px){.dp-g3,.dp-g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.dp-g2,.dp-g3,.dp-g4{grid-template-columns:1fr}}
@media(max-width:600px){.dp-stat3{grid-template-columns:1fr;gap:16px}}

.card{background:var(--color-bg-alt);border:1px solid var(--color-border);padding:clamp(24px,3vw,36px);transition:.35s var(--ease)}
.card h3{margin-bottom:.5rem}
.card p{color:var(--color-text-muted);font-size:.95rem;margin:0}
.card p.contact-phone{font-family:var(--font-heading);font-weight:800;font-size:clamp(1.3rem,3.2vw,2.2rem);color:var(--color-text);letter-spacing:.01em;white-space:nowrap;margin:1rem 0 1.4rem}

.dp-card{display:block;background:var(--color-bg-alt);border:1px solid var(--color-border);overflow:hidden}
.dp-card img{transition:transform .5s var(--ease)}
.dp-card-body{padding:1.1rem 1.3rem 1.4rem}
.dp-card-cat{display:inline-block;padding:.25rem .6rem;border-radius:var(--radius-sm);background:var(--color-ink);font-family:var(--font-heading);font-weight:600;font-size:.72rem;color:var(--color-accent-soft);letter-spacing:.04em;text-transform:uppercase}
.dp-card h3{font-size:1.05rem;margin-top:.4rem}

/* 더보기(상담 유도) 카드 — 그리드 홀수 항목 보정용 */
.more-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--color-tape);color:var(--color-tape);font-size:1.1rem;transition:.3s var(--ease)}
.card-more,.term-card-more{display:grid;grid-template-columns:1fr auto;align-items:start;column-gap:1rem;row-gap:.3rem;border-style:dashed;border-color:var(--color-border-alt);transition:.3s var(--ease)}
.card-more .more-ico,.term-card-more .more-ico{grid-column:2;grid-row:1;align-self:center;flex:none}
.card-more h3{grid-column:1;grid-row:1;align-self:center;margin:0}
.term-card-more h4{grid-column:1;grid-row:1;align-self:center;margin:0}
.card-more p{grid-column:1/-1;grid-row:2;margin:0}
.stat-block-more{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-style:dashed;border-color:var(--color-border-alt);transition:.3s var(--ease)}
.dp-card-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;min-height:220px;border:1px dashed var(--color-border-alt);background:var(--color-bg-alt);padding:1.5rem}
.dp-card-more h3{margin:0}
.dp-card-more p{color:var(--color-text-muted);font-size:.85rem;margin:0}
.dp-card-more-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--color-tape);color:var(--color-tape);font-size:1.1rem}
@media (hover:hover) and (pointer:fine){
  .card-more:hover,.stat-block-more:hover,.term-card-more:hover,.dp-card-more:hover{border-color:var(--color-tape);background:var(--color-bg-alt-2)}
  .card-more:hover .more-ico,.stat-block-more:hover .more-ico,.term-card-more:hover .more-ico,.dp-card-more:hover .dp-card-more-ico{background:var(--color-tape);color:var(--text-on-dark)}
}

/* Before/After — 대조 표식 (파랑=현황, 주황=완성) */
.site-photo{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}
.site-photo img{width:100%;height:auto;display:block}

/* 뱃지 — 펀치 태그 */
.card-badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{padding:.35rem .9rem;background:var(--color-bg-alt-2);border:1px solid var(--color-border-alt);border-radius:var(--radius-sm);font-family:var(--font-heading);font-weight:600;font-size:.82rem;letter-spacing:.01em;color:var(--color-text-muted)}
@media(max-width:768px){.card-badges{flex-direction:column;align-items:flex-start;gap:6px}}

/* 진행 과정 — 실제 순서가 있는 유일한 번호 매김 */
.proc-list{display:flex;list-style:none;margin:0;padding:0}
.proc-step{flex:1;position:relative;padding:0 12px;text-align:center}
.proc-step:not(:last-child)::after{content:'';position:absolute;top:24px;left:50%;width:100%;height:2px;background:var(--color-border-alt);z-index:0}
.proc-num{position:relative;z-index:1;margin:0 auto 14px;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-ink);border:2px solid var(--color-tape);color:var(--color-accent-soft);font-family:var(--font-mono);font-weight:700}
.proc-step p{color:var(--color-text-muted);font-size:.92rem;margin:0}
.proc-step h4{font-size:1rem;margin:0 0 .3rem;font-family:var(--font-heading)}
@media(max-width:768px){
  .proc-list{flex-direction:column;gap:10px}
  .proc-step{padding:24px 0}
  .proc-step::after{display:none}
}

/* 신뢰뱃지/스탯 */
.trust-grid{border-top:1px solid var(--color-border)}
.trust-item{padding:2rem 0;border-bottom:1px solid var(--color-border)}
.trust-item .fs-num{position:relative;display:inline-flex}
.trust-item p{margin-top:1rem;color:var(--color-text-muted);font-size:.9rem}

/* invert 섹션 — 어두운 잉크 밴드 */
.section-invert{background:var(--color-bg-invert);color:var(--color-text-invert)}
.section-invert h2,.section-invert h3{color:var(--color-text-invert)}
.section-invert .fs-lede{color:var(--color-text-faint)}
.section-invert .fs-num{color:var(--color-accent-soft)}
.section-invert .card{background:var(--color-ink-alt);border-color:#3a352c}
.section-invert .card p{color:var(--color-text-faint)}
.section-invert .proc-step p{color:var(--color-text-faint)}
.section-invert .proc-step h4{color:var(--color-text-invert)}
.section-invert .checklist li{color:var(--color-text-faint);border-color:#3a352c}
@media (hover:hover) and (pointer:fine){
  .section-invert .card:hover{background:var(--color-bg-alt);color:var(--color-text)}
  .section-invert .card:hover h3{color:var(--color-text)}
  .section-invert .card:hover p{color:var(--color-text-muted)}
}

/* CTA 배너 */
.cta-banner{background-color:var(--color-ink);background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--text-on-dark);text-align:center}
.cta-banner h2{color:var(--text-on-dark);margin-bottom:1rem}
.cta-banner .fs-lede{color:var(--color-text-faint);margin-bottom:2rem}

/* FAQ */
.faq details{border-bottom:1px solid var(--color-border);padding:1.3rem 0}
.faq summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:700;list-style:none;font-family:var(--font-heading)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ico{font-size:1.3rem;color:var(--color-tape);transition:transform .3s var(--ease)}
.faq details[open] summary .ico{transform:rotate(45deg)}
.faq .faq-a{color:var(--color-text-muted);margin-top:1rem;line-height:1.8}

/* 가이드 페이지 컴포넌트 */
.guide-toc{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0}
.guide-toc a{padding:.5rem 1rem;border:1px solid var(--color-border-alt);border-radius:var(--radius-pill);font-size:.85rem;color:var(--color-text-muted)}
.term-card{background:var(--color-bg-alt);border:1px solid var(--color-border);padding:1.4rem}
.term-card h4{font-family:var(--font-heading);color:var(--color-accent);margin-bottom:.5rem}
.term-card p{color:var(--color-text-muted)}
.compare-table{width:100%;border-collapse:collapse}
.compare-table th,.compare-table td{border:1px solid var(--color-border);padding:.9rem 1rem;text-align:left;font-size:.92rem}
.compare-table th{background:var(--color-bg-alt-2);font-family:var(--font-heading);color:var(--color-text)}
.table-scroll{overflow-x:auto}
.checklist li{position:relative;padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--color-border);color:var(--color-text-muted)}
.checklist li::before{content:'✓';position:absolute;left:0;color:var(--color-tape);font-weight:700}
.stat-block{text-align:center;padding:1.6rem;border:1px solid var(--color-border);background:var(--color-bg-alt)}
.stat-block p{color:var(--color-text-muted)}

/* 푸터 — 어두운 잉크 프레임(헤더와 짝) */
.ftr{background:var(--color-ink);color:var(--text-on-dark);border-top:1px solid var(--color-ink-alt);padding:4rem 0 2rem}
.ftr-grid{display:grid;grid-template-columns:1.3fr 1fr 1.3fr;gap:2.5rem}
.ftr h4{font-family:var(--font-mono);font-size:.82rem;color:var(--color-accent-soft);margin-bottom:1rem;letter-spacing:.1em;text-transform:uppercase}
.ftr address{font-style:normal;color:var(--color-text-faint);font-size:.9rem;line-height:2}
.ftr-links li{margin-bottom:.7rem}
.ftr-links a{color:var(--color-text-faint);font-size:.92rem}
.ftr-links a:hover{color:var(--text-on-dark)}
.ftr-cats a{color:var(--color-text-faint);font-size:.88rem;display:block;margin-bottom:.6rem}
.ftr-cats a:hover{color:var(--text-on-dark)}
.ftr-copy{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--color-ink-alt);color:var(--color-text-subtle);font-size:.8rem}
@media(max-width:768px){.ftr-grid{grid-template-columns:1fr;gap:2rem}}

/* 모바일 스티키 CTA / 플로팅 */
#mob-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;grid-template-columns:1fr 1fr;background:var(--color-ink);border-top:1px solid var(--color-ink-alt);transform:translateY(110%);transition:transform .4s var(--ease)}
#mob-bar.show{transform:translateY(0)}
#mob-bar a{padding:1rem;text-align:center;font-weight:700;color:var(--text-on-dark)}
#mob-bar a:first-child{background:var(--color-tape);color:var(--text-on-dark)}
#float-cta{position:fixed;right:28px;bottom:28px;z-index:40;padding:1rem 1.4rem;border-radius:var(--radius-sm);background:var(--color-tape);color:var(--text-on-dark);font-weight:700;box-shadow:0 10px 30px rgba(32,29,24,.35);display:flex;align-items:center;gap:.6rem}
#float-cta::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--color-ink);animation:pulse 1.9s infinite}
@keyframes pulse{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}
@media(max-width:768px){
  #mob-bar{display:grid}
  #float-cta{display:none}
  .hdr-nav,.hdr-cta{display:none}
  body{padding-bottom:64px}
  .hdr-burger{display:flex}
}

/* 스크롤 리빌 */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:translateY(0)}

/* 반응형 */
@media(max-width:1024px){.ftr-grid{grid-template-columns:1fr 1fr}}
