:root{--ink:#2e3b42;--moss:#62807b;--mint:#e7edea;--sand:#f4f0ea;--clay:#8a6b5c;--clay-d:#6f5346;--line:#dde2df;--mut:#5a6b6a;--w:1120px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'IBM Plex Sans KR','Noto Sans KR',system-ui,sans-serif;color:var(--ink);background:#faf9f6;line-height:1.75;font-size:16px;word-break:keep-all;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:'Gothic A1','Noto Sans KR',sans-serif;line-height:1.3;letter-spacing:-.02em}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
/* header */
.hd{position:sticky;top:0;z-index:50;background:rgba(251,250,246,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:62px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-family:'Gothic A1',sans-serif;font-size:18px}
.brand img{width:34px;height:34px;border-radius:9px}
.brand small{display:block;font-size:11px;font-weight:500;color:var(--mut);line-height:1.1}
.nav{display:flex;gap:4px;align-items:center}
.nav a{text-decoration:none;font-size:15px;font-weight:600;padding:8px 12px;border-radius:999px}
.nav a:hover,.nav a[aria-current]{background:var(--mint)}
.nav a.tel{background:var(--clay);color:#fff;margin-left:6px}
.nav a.tel:hover{background:var(--clay-d)}
.mbtn{display:none;background:none;border:1px solid var(--line);border-radius:10px;width:42px;height:42px;font-size:20px;cursor:pointer;color:var(--ink)}
/* hero */
.hero{background:linear-gradient(160deg,var(--mint) 0%,var(--sand) 70%);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding-top:56px;padding-bottom:64px}
.eyebrow{display:inline-block;font-size:13px;font-weight:700;color:var(--moss);background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 14px;margin-bottom:16px}
.hero h1{font-size:clamp(34px,5.4vw,60px);font-weight:900;color:var(--ink);margin-bottom:18px}
.hero .ans{font-size:clamp(16px,1.9vw,19px);color:#37474c;max-width:34em;margin-bottom:26px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:800;border-radius:14px;padding:14px 26px;font-size:17px;min-height:52px;transition:transform .2s,background .2s;border:2px solid transparent;cursor:pointer;font-family:inherit}
.btn:hover{transform:translateY(-2px)}
.btn.p{background:var(--clay);color:#fff}.btn.p:hover{background:var(--clay-d)}
.btn.s{background:#fff;border-color:var(--ink);color:var(--ink)}
.hero .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;list-style:none}
.hero .chips li{font-size:14px;color:var(--mut);background:rgba(255,255,255,.7);border-radius:8px;padding:3px 10px}
.arch{position:relative;justify-self:center;width:100%;max-width:440px}
.arch::before{content:"";position:absolute;inset:14px -14px -14px 14px;border:2px solid var(--moss);border-radius:999px 999px 28px 28px;opacity:.5}
.arch img{position:relative;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px 28px 28px;box-shadow:0 24px 50px -24px rgba(46,59,66,.55);animation:rise .9s ease both}
.arch .badge{position:absolute;left:-14px;bottom:36px;background:var(--ink);color:#fff;border-radius:14px;padding:10px 16px;font-size:14px;font-weight:700;line-height:1.35;z-index:2;box-shadow:0 10px 24px -10px rgba(0,0,0,.5)}
.arch .badge b{display:block;font-size:12px;font-weight:500;color:#bfd0ca}
@keyframes rise{from{opacity:0;transform:translateY(18px) scale(1.03)}to{opacity:1;transform:none}}
/* sections */
section.blk{padding:56px 0;border-bottom:1px solid var(--line)}
section.blk:nth-of-type(even){background:#fff}
.blk h2{font-size:clamp(24px,3.4vw,34px);font-weight:800;margin-bottom:10px}
.blk h2::before{content:"";display:inline-block;width:10px;height:.8em;background:var(--clay);border-radius:3px;margin-right:12px;vertical-align:-.05em}
.sub{color:var(--mut);margin-bottom:26px;max-width:46em}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.strip.two{grid-template-columns:repeat(2,1fr)}
figure.ph{position:relative;border-radius:18px;overflow:hidden;background:var(--mint);box-shadow:0 14px 30px -20px rgba(46,59,66,.6)}
figure.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s ease}
figure.ph:hover img{transform:scale(1.06)}
figure.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(36,46,52,.82))}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;border-top:4px solid var(--moss)}
section.blk:nth-of-type(even) .card{background:var(--sand)}
.card h3{font-size:18px;margin-bottom:6px}.card p{font-size:15px;color:var(--mut)}
.card .n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:14px;margin-bottom:10px}
/* flow */
.flow{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;counter-reset:s}
.flow li{position:relative;padding:20px 16px 18px;background:#fff;border:1px solid var(--line);text-align:center;margin-left:-1px;counter-increment:s}
.flow li:first-child{border-radius:18px 0 0 18px;margin-left:0}.flow li:last-child{border-radius:0 18px 18px 0}
.flow li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;margin:0 auto 8px;border-radius:50%;background:var(--clay);color:#fff;font-weight:800}
.flow li::after{content:"▶";position:absolute;right:-9px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--moss);background:#faf9f6;z-index:2;line-height:1}
.flow li:last-child::after{display:none}
.flow b{display:block;font-size:16px}.flow span{font-size:14px;color:var(--mut);display:block;margin-top:4px;line-height:1.55}
/* table */
.tw{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
thead th{background:var(--ink);color:#fff;font-weight:700}
tbody th{background:var(--mint);width:24%}
tbody tr:last-child>*{border-bottom:0}
caption{text-align:left;padding:0 0 10px;font-weight:700;color:var(--mut);font-size:14px;caption-side:top}
/* ba slider */
.ba{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;max-width:760px;margin:0 auto;box-shadow:0 20px 40px -24px rgba(46,59,66,.7);--p:50%;touch-action:pan-y;user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .af{clip-path:inset(0 0 0 var(--p))}
.ba .bar{position:absolute;top:0;bottom:0;left:var(--p);width:3px;background:#fff;transform:translateX(-1.5px);pointer-events:none}
.ba .bar::after{content:"◀ ▶";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:var(--ink);font-size:11px;padding:8px 9px;border-radius:999px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba .tag{position:absolute;top:12px;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:800;color:#fff;background:rgba(46,59,66,.85)}
.ba .tg1{left:12px}.ba .tg2{right:12px;background:var(--clay)}
.bacap{text-align:center;color:var(--mut);font-size:14px;margin-top:10px}
/* text */
.long{columns:2;column-gap:40px;color:#3b4a4f;font-size:15.5px}
.long p{margin-bottom:14px;break-inside:avoid}
.long h3{font-size:17px;margin:4px 0 6px;break-after:avoid}
/* faq */
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:16px 52px 16px 18px;font-weight:700;font-size:16.5px;position:relative;min-height:54px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--clay);font-weight:500}
.faq details[open] summary::after{content:"−"}
.faq details[open]{border-color:var(--moss)}
.faq .a{padding:0 18px 16px;color:#3b4a4f;font-size:15.5px}
.faq .more[hidden]{display:none}
.moreb{display:block;margin:14px auto 0;background:none;border:2px solid var(--ink);color:var(--ink);font-weight:800;font-size:15.5px;border-radius:999px;padding:11px 28px;cursor:pointer;font-family:inherit}
.moreb:hover{background:var(--ink);color:#fff}
/* cta */
.cta{background:var(--ink);color:#fff;padding:60px 0;text-align:center}
.cta h2{font-size:clamp(24px,3.6vw,36px);font-weight:800;margin-bottom:10px;color:#fff}
.cta p{color:#c9d4d0;margin-bottom:24px}
.cta .btns{justify-content:center}
.cta .btn.s{background:transparent;color:#fff;border-color:#fff}
.cta small{display:block;margin-top:18px;color:#a3b3ad;font-size:13px}
/* hub */
.hubgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:30px}
.hubgrid a{display:block;background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.hubgrid a:hover{transform:translateY(-4px);box-shadow:0 18px 30px -20px rgba(46,59,66,.7)}
.hubgrid img{width:100%;aspect-ratio:4/3;object-fit:cover}
.hubgrid b{display:block;padding:12px 16px 2px;font-size:17px}.hubgrid span{display:block;padding:0 16px 14px;font-size:14px;color:var(--mut);line-height:1.5}
/* consult */
.callbox{background:#fff;border:2px solid var(--ink);border-radius:22px;padding:30px;text-align:center;max-width:620px;margin:0 auto;box-shadow:10px 10px 0 var(--mint)}
.callbox .num{display:block;font-family:'Gothic A1',sans-serif;font-weight:900;font-size:clamp(34px,8vw,52px);letter-spacing:.01em;text-decoration:none;color:var(--ink);margin:6px 0 16px}
.callbox .btns{justify-content:center}
/* footer */
.ft{background:#232d33;color:#c3cecb;padding:44px 0 36px;font-size:14.5px}
.ft .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:36px}
.ft h2{color:#fff;font-size:17px;margin-bottom:10px}
.ft address{font-style:normal;line-height:1.9}
.ft ul{list-style:none;columns:2;column-gap:20px}.ft li{margin-bottom:6px}
.ft a{text-decoration:none}.ft a:hover{color:#fff;text-decoration:underline}
.ft .cp{margin-top:26px;padding-top:18px;border-top:1px solid #38464d;font-size:13px;color:#93a29d}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.rv.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.arch img{animation:none}}
/* mobile */
@media(max-width:860px){
 .mbtn{display:block}
 .nav{display:none;position:absolute;top:62px;left:0;right:0;background:#faf9f6;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 20px 16px}
 .nav.open{display:flex}.nav a{padding:13px 14px;font-size:16px}.nav a.tel{margin:6px 0 0;text-align:center}
 .hero .wrap{grid-template-columns:1fr;gap:34px;padding-top:36px;padding-bottom:48px}
 .arch{max-width:520px}.arch img{aspect-ratio:4/3;border-radius:28px}.arch::before{border-radius:28px;inset:12px -10px -12px 10px}.arch .badge{left:10px;bottom:-14px}
 .strip{grid-template-columns:1fr}.strip.two{grid-template-columns:1fr 1fr}
 .long{columns:1}
 .ft .cols{grid-template-columns:1fr}
 /* 표: 모바일에서 카드형으로 풀어 잘림 방지 */
 table,thead,tbody,tr,th,td{display:block;width:100%}
 thead{position:absolute;left:-9999px}
 tbody tr{border-bottom:8px solid #edf0ee}tbody tr:last-child{border-bottom:0}
 tbody th{width:100%;border-bottom:1px solid var(--line)}
 td[data-l]::before{content:attr(data-l);display:block;font-size:12.5px;font-weight:700;color:var(--moss);margin-bottom:2px}
 td{border-bottom:1px solid var(--line)}
 .flow{grid-template-columns:1fr}
 .flow li,.flow li:first-child,.flow li:last-child{border-radius:0;margin:0 0 -1px;text-align:left;padding:14px 16px 14px 62px}
 .flow li:first-child{border-radius:16px 16px 0 0}.flow li:last-child{border-radius:0 0 16px 16px}
 .flow li::before{position:absolute;left:14px;top:14px;margin:0}
 .flow li::after{display:none}
 section.blk{padding:42px 0}
}
@media(max-width:480px){.strip.two{grid-template-columns:1fr}.btn{width:100%}.callbox{padding:22px 16px}.wrap{padding:0 16px}}
/* 메인 히어로: 차분한 빛 번짐 + 느린 줌 (추모 분위기) */
.arch.fx{filter:drop-shadow(0 24px 30px rgba(46,59,66,.3))}
.arch.fx img{box-shadow:none;clip-path:inset(0 round 999px 999px 28px 28px);animation:rise .9s ease both,drift 18s ease-in-out .9s infinite alternate}
.arch.fx::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:999px 999px 28px 28px;
 background:radial-gradient(ellipse 70% 55% at 78% 8%,rgba(255,240,214,.55),transparent 70%),linear-gradient(180deg,rgba(244,240,234,.08) 0%,rgba(46,59,66,.0) 45%,rgba(46,59,66,.38) 100%);
 mix-blend-mode:soft-light;animation:glow 7s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.07)}}
@keyframes glow{from{opacity:.55}to{opacity:1}}
@media(max-width:860px){.arch.fx img{clip-path:inset(0 round 28px)}.arch.fx::after{border-radius:28px}}
@media(prefers-reduced-motion:reduce){.arch.fx img,.arch.fx::after{animation:none}}
