:root{--bg:#f5f2ec;--ink:#16282c;--teal:#1d5a63;--teal-d:#123c43;--acc:#a8693a;--line:#d9d3c7;--mute:#5b6a6d;--white:#fff;--serif:"Noto Serif KR",serif;--sans:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",ui-sans-serif,system-ui,sans-serif;--lab:ui-monospace,"SFMono-Regular",Menlo,monospace;--py:104px;--py-s:64px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.75;font-size:16px;letter-spacing:-.005em;-webkit-text-size-adjust:100%}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{padding-left:1.2em}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px;margin:0 auto;padding:0 20px}
.label{font-family:var(--lab);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.3;color:var(--teal-d)}
h1{font-size:clamp(34px,5vw,56px);letter-spacing:-.01em}
h2{font-size:clamp(24px,3vw,34px);margin-bottom:20px}
h3{font-size:20px;margin-bottom:8px}
.sec{padding:var(--py) 0}.sec-s{padding:var(--py-s) 0}.alt{background:var(--bg)}
.lead{font-size:18px;color:var(--ink);max-width:760px}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.site-header__in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:20px;color:var(--teal-d)}
.brand img{width:36px;height:36px}
.nav{display:flex;gap:28px;justify-content:center;font-size:15px}
.nav a:hover{color:var(--acc)}
.btn{display:inline-block;padding:12px 26px;border:1px solid var(--teal-d);background:var(--teal-d);color:#fff;font-size:15px;border-radius:0;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--acc);border-color:var(--acc)}
.btn.ghost{background:transparent;color:var(--teal-d)}.btn.ghost:hover{color:#fff}
.tog{display:none;background:none;border:0;padding:8px;cursor:pointer}
.tog span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0}
/* intro / cases */
.intro{padding:72px 0 40px}
.intro h1{margin:12px 0 20px}
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{display:block;background:#fff;border:1px solid var(--line)}
.cmp{display:grid;grid-template-columns:1fr 1fr;position:relative}
.cmp img{width:100%;aspect-ratio:4/3;object-fit:cover}
.cmp b{position:absolute;bottom:8px;font-family:var(--lab);font-size:11px;letter-spacing:.12em;background:rgba(22,40,44,.8);color:#fff;padding:2px 8px;font-weight:400}
.cmp b:first-of-type{left:8px}.cmp b:last-of-type{right:8px}
.card__b{padding:18px 20px 22px}
.card__b h3{font-size:18px;margin:6px 0}
.card__b p{font-size:14.5px;color:var(--mute)}
.card:hover h3{color:var(--acc)}
.more{text-align:center;margin-top:40px}
.cases .is-hidden{display:none}
/* hero */
.hero-image{position:relative;height:460px;overflow:hidden}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,60,67,.55),rgba(18,60,67,0))}
.hero-image p{position:absolute;z-index:2;left:max(20px,calc(50% - 570px));bottom:36px;color:#fff;font-family:var(--serif);font-size:clamp(20px,2.6vw,30px);max-width:620px}
/* def */
.def{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.def .tiles{display:grid;gap:16px}
.tile{border:1px solid var(--line);padding:20px 22px;background:#fff}
.tile h3{font-size:18px}
.tile p{font-size:15px;color:var(--mute)}
/* service cards */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc .card__b{padding:16px 18px 20px}
.svc img{width:100%;aspect-ratio:3/2;object-fit:cover}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;padding:0;counter-reset:s}
.steps li{border-top:2px solid var(--teal-d);padding-top:14px;counter-increment:s}
.steps li::before{content:"0" counter(s);font-family:var(--lab);color:var(--acc);letter-spacing:.12em;font-size:13px;display:block;margin-bottom:4px}
.steps b{font-family:var(--serif);font-weight:500;font-size:18px;display:block;margin-bottom:4px}
.steps span{font-size:14.5px;color:var(--mute)}
/* table */
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px}
th,td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
th{background:var(--bg);font-weight:600;white-space:nowrap}
/* faq */
details{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:20px 40px 20px 2px;position:relative;font-family:var(--serif);font-size:18px;color:var(--teal-d)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:6px;top:16px;font-size:24px;color:var(--acc)}
details[open] summary::after{content:"\2212"}
details p{padding:0 2px 22px;color:var(--ink)}
/* cta */
.cta{background:var(--teal-d);color:#fff;text-align:center;padding:84px 0}
.cta h2{color:#fff}.cta p{margin-bottom:28px;color:#d6e3e4}
.cta .btn{background:#fff;color:var(--teal-d);border-color:#fff}.cta .btn:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
/* footer */
.site-footer{background:#0e1d20;color:#b9c6c8;padding:56px 0 90px;font-size:14px}
.site-footer a:hover{color:#fff}
.site-footer__nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:24px;color:#fff}
.site-footer p{margin:2px 0}
/* subpage */
.crumb{font-size:13px;color:var(--mute);padding:20px 0 0}
.crumb a:hover{color:var(--acc)}
.page-h{padding:28px 0 12px}
.page-h h1{font-size:clamp(28px,4vw,44px);margin:8px 0 16px}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px;color:var(--mute);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:22px 0}
.meta-row b{color:var(--ink);font-weight:600}
.story p{margin-bottom:20px}
.story h2{margin-top:44px}
.story figure{margin:24px 0}
.story figure img{width:100%}
.story figcaption{font-size:13px;color:var(--mute);margin-top:6px}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}
.pgrid figure{margin:0}
.pgrid img{aspect-ratio:4/3;object-fit:cover}
.sum{background:var(--bg);padding:22px 28px;margin:32px 0}
.sum li{margin:6px 0}
blockquote{border-left:3px solid var(--acc);padding:6px 0 6px 20px;margin:32px 0;font-family:var(--serif);font-size:18px;color:var(--teal-d)}
blockquote cite{display:block;font-family:var(--sans);font-size:13px;color:var(--mute);margin-top:8px;font-style:normal}
.upd{font-size:13px;color:var(--mute);margin:32px 0 0}
.steps-l{padding-left:1.4em}.steps-l li{margin:10px 0}
.cta-box{border:1px solid var(--line);padding:28px;margin:40px 0;text-align:center;background:var(--bg)}
.cta-box p{margin-bottom:16px}
/* floating */
.float{position:fixed;right:20px;bottom:20px;z-index:60}
.float .btn{box-shadow:0 6px 20px rgba(0,0,0,.25)}
/* consult */
.cbtns{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}
@media(max-width:1023px){.cases,.svc{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.def{grid-template-columns:1fr;gap:28px}:root{--py:72px}}
@media(max-width:700px){
.nav{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;flex-direction:column;gap:0;border-bottom:1px solid var(--line)}
.nav.open{display:flex}.nav a{padding:14px 20px;border-top:1px solid var(--line)}
.tog{display:block}.site-header__in{grid-template-columns:1fr auto}.site-header .btn{display:none}
.cases,.svc,.steps,.pgrid{grid-template-columns:1fr}.pgrid{grid-template-columns:1fr 1fr}
.hero-image{height:320px}.intro{padding:44px 0 28px}:root{--py:56px}
}
/* ===== v2: 섹션 구분 / 헤딩 위계 / 카드·버튼 UX ===== */
:root{--chip-b:#7a5c3a;--chip-p:#1d5a63;--chip-a:#2f7d4f;--shadow:0 10px 28px rgba(18,60,67,.12)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.sec,.sec-s{border-top:1px solid var(--line)}
.sec.alt,.sec-s.alt{border-top-color:#e6e0d3}
.cta,.related,.phead{border-top:0}
h2{position:relative;padding-top:18px;margin-bottom:26px}
h2::before{content:"";position:absolute;top:0;left:0;width:36px;height:2px;background:var(--acc)}
.cta h2::before{left:50%;margin-left:-18px;background:#fff}
.story h2{margin-top:0}
.story h3,.sec h3{margin-top:30px;padding-left:12px;border-left:3px solid var(--line)}
.card h3,.tile h3,.card__b h3,.svc h3{padding-left:0;border-left:0;margin-top:6px}
summary h3{padding:0;border:0;margin:0}
.story p+h2,.story ul+h2,.story figure+h2,.story .tbl+h2{margin-top:56px}
.story ul li,.story ol li{margin:6px 0}
/* 세부페이지 상단 밴드 (메인 톤) */
.phead{background:var(--bg);padding:28px 0 44px}
.phead .crumb{padding:0 0 22px}
.phead h1{font-size:clamp(28px,4.2vw,46px);margin:10px 0 18px;max-width:900px}
.phead .lead{max-width:760px}
.phead .meta-row{margin-bottom:0;border-color:#cfc8b8}
.crumb{font-size:13px;color:var(--mute)}
/* 전/후 */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ba figure,.story figure{position:relative;margin:24px 0}
.ba figure{margin:0}
.ba img,.story figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line)}
.chip{display:inline-block;font-family:var(--lab);font-size:11.5px;letter-spacing:.08em;color:#fff;padding:3px 10px;line-height:1.6;font-weight:400;vertical-align:middle}
.chip-b{background:var(--chip-b)}.chip-p{background:var(--chip-p)}.chip-a{background:var(--chip-a)}
h2 .chip{margin-right:12px;position:relative;top:-3px}
figure .chip{position:absolute;top:10px;left:10px;z-index:2}
.ba__b img{border-bottom:3px solid var(--chip-b)}.ba__a img{border-bottom:3px solid var(--chip-a)}
.story figure:has(.chip-b) img{border-bottom:3px solid var(--chip-b)}
.story figure:has(.chip-a) img{border-bottom:3px solid var(--chip-a)}
.story figure:has(.chip-p) img{border-bottom:3px solid var(--chip-p)}
.pgrid figure{margin:0}
.pgrid{gap:12px}
/* 카드 UX */
.card{transition:transform .25s,box-shadow .25s,border-color .25s;overflow:hidden}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--teal)}
.card img{transition:transform .5s}
.card:hover img{transform:scale(1.04)}
.thumb{overflow:hidden}.thumb img{width:100%;aspect-ratio:3/2;object-fit:cover}
.more-link{display:inline-block;margin-top:12px;font-size:14px;color:var(--teal);border-bottom:1px solid currentColor}
.card:hover .more-link{color:var(--acc)}
.card--wide{display:grid;grid-template-columns:1.1fr 1fr;align-items:stretch}
.card--wide .card__b{display:flex;flex-direction:column;justify-content:center;padding:28px}
.related{background:var(--bg)}
.related .svc{margin-top:8px}
.btn{transition:background .2s,color .2s,border-color .2s}
.cbtns{margin:28px 0 0}
details{transition:background .2s}details[open]{background:#faf8f3}
summary:hover{color:var(--acc)}
.sum{border-left:3px solid var(--chip-a)}
.site-footer__brand{font-family:var(--serif);font-size:20px;color:#fff;margin-bottom:12px}
@media(max-width:700px){
.ba{gap:8px}.card--wide{grid-template-columns:1fr}
.phead{padding:20px 0 32px}
h2 .chip{display:table;margin:0 0 8px;top:0}
.story figure .chip,.ba .chip{font-size:10.5px;padding:2px 8px}
.pgrid{grid-template-columns:1fr 1fr}
.sec{padding:52px 0}.sec-s{padding:44px 0}
}
h2.label{padding-top:0;margin-bottom:20px}h2.label::before{display:none}
.ba figcaption{padding:10px 14px;text-align:center;font-weight:600;color:var(--teal-d);background:#fff;border:1px solid var(--line);border-top:0}.ba img{border-bottom:0!important}
