/* 바로설비 · 여러 페이지 공용 스타일 */
html,body{background:#f5f3ee;margin:0}
:root{
  --bg:#f5f3ee; --bg-2:#ece9e2; --paper:#fffdf9; --ink:#0d1726; --muted:#5a6574; --faint:rgba(13,23,38,.4);
  --line:rgba(13,23,38,.1); --line-2:rgba(13,23,38,.18);
  --dark:#0a1220; --dark-2:#121c2e; --on-dark:#f2f5f9; --on-dark-60:rgba(242,245,249,.62); --on-dark-line:rgba(242,245,249,.12);
  --blue:#1d7cf2; --blue-d:#0f5fc4; --blue-l:#8cc3ff; --blue-soft:#e5effc;
  --stain:#a77a45; --warn:#ffe58a;
  --ease:cubic-bezier(.22,1,.36,1); --expo:cubic-bezier(.16,1,.3,1);
  --pad:clamp(20px,4vw,56px);
}
*{box-sizing:border-box}
body{font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:8px}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:980px}
.mono{font-family:"Pretendard Variable",Pretendard,sans-serif;font-weight:500;letter-spacing:.16em;text-transform:uppercase}

/* 확인 필요 표시 (시안용) */
.ph{display:inline-block;background:var(--warn);color:#5a4500;font-size:12px;line-height:1.4;font-weight:600;padding:2px 7px;border-radius:5px;letter-spacing:0;white-space:normal;vertical-align:middle}
.ph-note{display:block;background:#fff7d1;border:1px dashed #d9b400;color:#5a4500;font-size:13px;line-height:1.55;padding:9px 13px;border-radius:10px;margin-top:20px;max-width:46rem}
body.clean .ph,body.clean .ph-note{display:none}
.toggle{position:fixed;right:16px;bottom:16px;z-index:60;font:600 12px/1 inherit;font-family:inherit;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 14px;cursor:pointer;box-shadow:0 6px 20px rgba(13,23,38,.25)}
body.clean .toggle{display:none}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 24px;border-radius:999px;font-weight:700;font-size:16px;text-decoration:none;white-space:nowrap;border:0;font-family:inherit;cursor:pointer;transition:transform .3s var(--ease),background .3s,box-shadow .3s}
.btn svg{width:18px;height:18px;flex:none}
.btn-main{background:var(--blue);color:#fff;box-shadow:0 12px 30px -12px rgba(29,124,242,.8),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-main:hover{background:var(--blue-d);transform:translateY(-2px)}
.btn-glass{background:rgba(255,255,255,.55);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(13,23,38,.12);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}
.btn-glass:hover{background:rgba(255,255,255,.85);transform:translateY(-2px)}
.btn-ghost{color:var(--on-dark);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.btn-ghost:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.more{display:inline-flex;align-items:center;gap:8px;margin-top:28px;font-weight:700;font-size:16px;color:var(--blue-d);text-decoration:none}
.more::after{content:"→";transition:transform .3s var(--ease)}
.more:hover::after{transform:translateX(4px)}
.dark .more{color:var(--blue-l)}

/* 내비 */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;width:min(1240px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 7px 7px 16px;border-radius:999px;background:rgba(255,253,249,.74);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:inset 0 0 0 1px rgba(13,23,38,.07),0 10px 30px -16px rgba(13,23,38,.35);animation:navIn .8s var(--ease) .05s both}
@keyframes navIn{from{opacity:0;transform:translate(-50%,-12px)}}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:19px;letter-spacing:-.025em;text-decoration:none;flex:none}
.logo img{width:30px;height:30px;object-fit:contain}
.nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav ul a{display:block;padding:9px 13px;border-radius:999px;font-size:14px;font-weight:500;color:rgba(13,23,38,.75);text-decoration:none;transition:background .2s}
.nav ul a:hover{background:rgba(13,23,38,.06)}
.nav ul a[aria-current="page"]{background:var(--ink);color:#fff}
.nav .right{display:flex;align-items:center;gap:6px}
.nav .btn{min-height:44px;font-size:15px;padding:0 18px}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(13,23,38,.06);cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:var(--ink);border-radius:2px;transition:transform .35s var(--ease),top .35s var(--ease)}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:25px}
.menu-open .burger span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){top:21px;transform:rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:45;background:rgba(245,243,238,.97);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:center;padding:0 28px;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.mmenu a{font-size:32px;font-weight:800;letter-spacing:-.04em;text-decoration:none;padding:8px 0;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .5s var(--ease)}
.mmenu a[aria-current="page"]{color:var(--blue)}
.mmenu .tel{margin-top:24px;font-size:20px;color:var(--blue-d)}
.menu-open{overflow:hidden}
.menu-open .mmenu{opacity:1;visibility:visible}
.menu-open .mmenu a{opacity:1;transform:none}
@media (max-width:1080px){.nav ul{display:none}.burger{display:block}}
@media (max-width:520px){.nav .btn .num{display:none}}

/* 섹션 공통 */
section{position:relative}
.sec{padding:clamp(96px,12vw,170px) 0}
.sec.tight{padding:clamp(72px,9vw,120px) 0}
.kick{font-size:12px;color:var(--blue-d);display:flex;align-items:center;gap:10px;margin:0 0 20px}
.kick::before{content:"";width:22px;height:1.5px;background:currentColor}
h2{font-size:clamp(34px,5vw,72px);line-height:1.1;letter-spacing:-.045em;font-weight:700;margin:0;max-width:15em}
h2 em{font-style:normal;color:var(--blue)}
h3{letter-spacing:-.03em}
.sub{font-size:clamp(16px,1.3vw,19px);color:var(--muted);margin:18px 0 0;max-width:36rem}
.sub b{color:var(--ink)}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.dark{background:var(--dark);color:var(--on-dark)}
.dark .kick{color:var(--blue-l)}
.dark h2 em{color:var(--blue-l)}
.dark .sub{color:var(--on-dark-60)}
.dark .sub b{color:var(--on-dark)}
.tint{background:var(--bg-2)}

/* 등장 */
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease) var(--dl,0ms),transform .9s var(--ease) var(--dl,0ms)}
[data-reveal].is-in{opacity:1;transform:none}
/* 시그니처: 물 차오름 공개 */
.rise{position:relative;overflow:hidden;clip-path:inset(100% 0 0 0);transition:clip-path 1.25s var(--expo) var(--dl,0ms)}
.rise.is-in{clip-path:inset(0 0 0 0)}
.rise>.wl{position:absolute;left:0;right:0;top:100%;height:3px;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(140,195,255,0),#bfe0ff 30%,#fff 50%,#bfe0ff 70%,rgba(140,195,255,0));box-shadow:0 0 18px 4px rgba(120,185,255,.55);opacity:0}
.rise.is-in>.wl{animation:wl 1.25s var(--expo) var(--dl,0ms) forwards}
@keyframes wl{0%{top:100%;opacity:1}85%{opacity:1}100%{top:-4px;opacity:0}}
.rise img,.rise video{transform:scale(1.12);transition:transform 1.8s var(--expo) var(--dl,0ms)}
.rise.is-in img,.rise.is-in video{transform:scale(1)}

/* 단어 밝아짐 */
.sweep{font-size:clamp(26px,3.4vw,48px);line-height:1.42;letter-spacing:-.035em;font-weight:600;max-width:22em;margin:0}
.sweep .sp{opacity:.15;transition:opacity .15s linear}
.sweep strong{color:var(--blue)}
.dark .sweep strong{color:var(--blue-l)}

/* ── 히어로 (영상) ── */
.hero{position:relative;min-height:680px;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center}
.hero.sub-hero{height:86vh;min-height:620px}
.hero-media{position:absolute;inset:0;clip-path:inset(100% 0 0 0);animation:heroRise 1.6s var(--expo) .1s forwards;background:#dfe3e6}
@keyframes heroRise{to{clip-path:inset(0 0 0 0)}}
.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,65% 50%);transform:scale(1.08);animation:settle 2.4s var(--expo) .1s forwards}
@keyframes settle{to{transform:scale(1)}}
.hero-media .wl{position:absolute;left:0;right:0;top:100%;height:3px;z-index:2;background:linear-gradient(90deg,transparent,#bfe0ff 30%,#fff 50%,#bfe0ff 70%,transparent);box-shadow:0 0 20px 5px rgba(120,185,255,.6);animation:wl 1.6s var(--expo) .1s forwards;opacity:0}
.hero-media::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(245,243,238,.92) 0%,rgba(245,243,238,.66) 30%,rgba(245,243,238,0) 56%)}
.hero.on-dark .hero-media::after{background:linear-gradient(90deg,rgba(6,12,22,.82) 0%,rgba(6,12,22,.5) 34%,rgba(6,12,22,0) 62%),linear-gradient(0deg,rgba(6,12,22,.5),rgba(6,12,22,0) 40%)}
.hero.on-dark{color:#fff}
.hero.on-dark .lead{color:rgba(255,255,255,.8)}
.hero.on-dark .lead b{color:#fff}
.hero.on-dark .loc{color:var(--blue-l)}
.hero.on-dark h1 em{color:var(--blue-l)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-top:80px}
.crumb{font-size:13px;font-weight:600;margin:0 0 16px;display:flex;gap:8px;align-items:center;color:var(--muted);animation:up .8s var(--ease) .4s both}
.crumb a{text-decoration:none}
.on-dark .crumb{color:rgba(255,255,255,.65)}
.loc{font-size:13px;font-weight:600;color:var(--blue-d);margin:0 0 22px;display:flex;align-items:center;gap:8px;animation:up .8s var(--ease) .5s both}
.loc svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
h1{font-size:clamp(44px,6.4vw,100px);line-height:1.04;letter-spacing:-.05em;font-weight:800;margin:0 0 26px;max-width:12em}
.sub-hero h1{font-size:clamp(40px,5.6vw,88px)}
h1 .ml{display:block;overflow:hidden;padding:.06em .1em .1em;margin:-.06em -.1em -.1em}
h1 .ml>span{display:block;animation:mlUp 1.1s var(--expo) both;animation-delay:calc(.55s + var(--i,0) * .13s)}
@keyframes mlUp{from{transform:translateY(112%)}}
h1 em{font-style:normal;color:var(--blue)}
.hero .lead{font-size:clamp(17px,1.4vw,20px);color:rgba(13,23,38,.74);margin:0 0 34px;max-width:30rem;animation:up .8s var(--ease) 1s both}
.hero .lead b{color:var(--ink)}
.hero .cta-row{animation:up .8s var(--ease) 1.15s both}
@keyframes up{from{opacity:0;transform:translateY(16px)}}
.proof{position:absolute;right:var(--pad);bottom:clamp(28px,5vh,56px);z-index:3;display:flex;border-radius:22px;background:rgba(255,253,249,.6);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 20px 50px -24px rgba(13,23,38,.45);animation:up .9s var(--ease) 1.35s both;color:var(--ink)}
.proof div{padding:16px 22px}
.proof div+div{border-left:1px solid var(--line)}
.proof strong{display:block;font-size:26px;letter-spacing:-.04em;line-height:1.15}
.proof span{font-size:13px;color:var(--muted)}
.tag-img{position:absolute;left:16px;bottom:14px;z-index:3;font-size:11px;color:rgba(13,23,38,.6);background:rgba(255,255,255,.65);padding:4px 9px;border-radius:999px}
.vctl{position:absolute;right:16px;top:84px;z-index:3;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.6);backdrop-filter:blur(8px);cursor:pointer;display:grid;place-items:center}
.vctl svg{width:14px;height:14px;fill:var(--ink)}
@media (max-width:900px){
  .hero,.hero.sub-hero{display:block;height:auto;min-height:0;padding-bottom:40px}
  .hero.on-dark{color:var(--ink)}
  .hero.on-dark .lead{color:rgba(13,23,38,.74)}.hero.on-dark .lead b{color:var(--ink)}
  .hero.on-dark .loc,.hero.on-dark .crumb{color:var(--blue-d)}
  .hero.on-dark h1 em{color:var(--blue)}
  .hero-media{position:relative;inset:auto;height:54vh;min-height:330px;border-radius:0 0 28px 28px;overflow:hidden}
  .hero-media::after,.hero.on-dark .hero-media::after{display:none}
  .hero .wrap{padding-top:30px}
  .proof{position:relative;right:auto;bottom:auto;margin:30px var(--pad) 0;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
  .proof div{flex:1;padding:14px 12px}
  .proof strong{font-size:21px}
  .proof span{font-size:12px}
  .tag-img{top:calc(max(54vh,330px) - 34px);bottom:auto}
  .vctl{top:auto;bottom:auto;top:calc(max(54vh,330px) - 50px)}
}

/* ── 목표 3칸 ── */
.goals{display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px;border-top:1px solid var(--line)}
.goals>div{padding:24px 26px 0 0}
.goals>div+div{padding-left:26px;border-left:1px solid var(--line)}
.goals b{display:block;font-size:21px;margin-bottom:6px;letter-spacing:-.03em}
.goals span{color:var(--muted);font-size:15px}
.dark .goals{border-color:var(--on-dark-line)}.dark .goals>div+div{border-color:var(--on-dark-line)}.dark .goals span{color:var(--on-dark-60)}
@media (max-width:760px){.goals{grid-template-columns:1fr}.goals>div,.goals>div+div{padding:20px 0;border-left:0;border-bottom:1px solid var(--line)}}

/* ── 사진 카드 ── */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:56px}
.bento>.card:nth-child(4n+1),.bento>.card:nth-child(4n+4){grid-column:span 7}
.bento>.card:nth-child(4n+2),.bento>.card:nth-child(4n+3){grid-column:span 5}
.card{position:relative;display:block;height:clamp(360px,36vw,520px);border-radius:28px;color:#fff;text-decoration:none;background:#cfd6de}
.card .rise{position:absolute;inset:0;border-radius:28px}
.card img{width:100%;height:100%;object-fit:cover}
.card:hover .rise.is-in img{transform:scale(1.05);transition:transform .9s var(--expo)}
.card .shade{position:absolute;inset:0;border-radius:28px;background:linear-gradient(0deg,rgba(6,12,22,.84) 0%,rgba(6,12,22,.35) 40%,rgba(6,12,22,0) 64%);z-index:2;pointer-events:none}
.card .txt{position:absolute;left:28px;right:84px;bottom:26px;z-index:3}
.card h3{font-size:clamp(26px,2.6vw,38px);margin:0 0 6px;line-height:1.15}
.card p{margin:0;font-size:15px;color:rgba(255,255,255,.84);max-width:26rem}
.card .no{position:absolute;left:28px;top:24px;z-index:3;font-size:12px;color:rgba(255,255,255,.92);text-shadow:0 1px 8px rgba(0,0,0,.35)}
.card .tag{position:absolute;right:20px;top:20px;z-index:3;font-size:11px;padding:4px 9px;border-radius:999px;background:rgba(0,0,0,.28);color:rgba(255,255,255,.85);backdrop-filter:blur(6px)}
.pill{position:absolute;right:22px;bottom:24px;z-index:4;height:44px;width:44px;border-radius:999px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:flex-end;overflow:hidden;white-space:nowrap;transition:width .35s var(--ease)}
.pill .lb{position:absolute;left:18px;top:50%;translate:0 -50%;font-size:14px;font-weight:700;opacity:0;transition:opacity .2s}
.pill svg{flex:none;width:44px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;transform:rotate(-45deg);transition:transform .35s var(--ease)}
.card:hover .pill,.card:focus-visible .pill{width:128px}
.card:hover .pill .lb,.card:focus-visible .pill .lb{opacity:1;transition-delay:.1s}
.card:hover .pill svg,.card:focus-visible .pill svg{transform:none}
@media (hover:none){.pill{width:128px}.pill .lb{opacity:1}.pill svg{transform:none}.card .txt{right:28px;bottom:84px}}
@media (max-width:860px){.bento>.card:nth-child(n){grid-column:1 / -1}.card{height:420px}}

/* ── 단면도 모션그래픽 (SVG) ── */
.xsec{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:center;margin-top:56px}
.xsec figure{margin:0;border-radius:28px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);padding:clamp(12px,2vw,24px);position:relative}
.xsec svg{width:100%;height:auto;display:block}
.xsec .cap{position:absolute;left:20px;bottom:16px;font-size:12px;color:var(--faint)}
.dark .xsec figure{background:var(--dark-2);box-shadow:inset 0 0 0 1px var(--on-dark-line)}
.xs-wall{fill:#e9e5dc;stroke:#cfc8ba;stroke-width:1.5}
.xs-slab{fill:#d9d3c6}
.xs-room{fill:#fbf9f4}
.xs-label{font:600 13px "Pretendard Variable",Pretendard,sans-serif;fill:#5a6574}
.xs-label.b{fill:#0d1726;font-size:14px}
.xs-pipe{fill:none;stroke:#9aa6b4;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.xs-flow{fill:none;stroke:var(--blue);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--len,1000);stroke-dashoffset:var(--len,1000)}
.xsec.is-in .xs-flow{animation:draw 2.4s var(--expo) .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.xs-leak{fill:var(--blue);opacity:0}
.xsec.is-in .xs-leak{animation:leakIn .6s ease 2.2s forwards}
@keyframes leakIn{to{opacity:1}}
.xs-pulse{fill:none;stroke:var(--blue);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.xsec.is-in .xs-pulse{animation:pulse 2s ease-out 2.4s infinite}
@keyframes pulse{0%{opacity:.8;transform:scale(.4)}100%{opacity:0;transform:scale(2.4)}}
.xs-stain{fill:var(--stain);opacity:0;transform-box:fill-box;transform-origin:center top}
.xsec.is-in .xs-stain{animation:stain 2.6s var(--ease) 2.8s forwards}
@keyframes stain{from{opacity:0;transform:scale(.2,.4)}to{opacity:.55;transform:none}}
.xs-drop{fill:var(--blue);opacity:0}
.xsec.is-in .xs-drop{animation:drip 1.6s cubic-bezier(.5,0,1,1) 3.6s infinite}
@keyframes drip{0%{opacity:0;transform:translateY(0)}10%{opacity:1}80%{opacity:1;transform:translateY(var(--fall,90px))}100%{opacity:0;transform:translateY(var(--fall,90px))}}
.xs-tag{opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s var(--ease)}
.xsec.is-in .xs-tag{opacity:1;transform:none}
.xsec.is-in .xs-tag.t1{transition-delay:1s}.xsec.is-in .xs-tag.t2{transition-delay:2.6s}.xsec.is-in .xs-tag.t3{transition-delay:3.4s}
.xs-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.xs-list li{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start;padding:18px 20px;border-radius:20px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.xs-list .n{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);color:var(--blue-d);display:grid;place-items:center;font-weight:800}
.xs-list b{display:block;font-size:18px;letter-spacing:-.025em}
.xs-list span{font-size:15px;color:var(--muted)}
@media (max-width:900px){.xsec{grid-template-columns:1fr}}

/* 핫스팟 단면 (누수 원인 4곳) */
.spots{position:relative}
.spot{cursor:pointer}
.spot circle.c{fill:var(--blue);stroke:#fff;stroke-width:3;transition:r .3s}
.spot text{font:800 13px "Pretendard Variable",Pretendard,sans-serif;fill:#fff;pointer-events:none}
.spot .ring{fill:none;stroke:var(--blue);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pulse 2.2s ease-out infinite}
.spot:nth-of-type(2) .ring{animation-delay:.5s}.spot:nth-of-type(3) .ring{animation-delay:1s}.spot:nth-of-type(4) .ring{animation-delay:1.5s}
.spot.on circle.c{fill:var(--ink)}
.spot-panel{margin-top:18px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.tabs button{font:inherit;font-size:15px;font-weight:700;padding:10px 16px;border-radius:999px;border:0;background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2);cursor:pointer;min-height:44px;transition:background .25s,color .25s}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff;box-shadow:none}
.dark .tabs button{background:transparent;color:var(--on-dark);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.dark .tabs button[aria-selected="true"]{background:#fff;color:var(--ink)}
.tabpanel{border-radius:24px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);padding:26px}
.tabpanel[hidden]{display:none}
.tabpanel h3{margin:0 0 8px;font-size:24px}
.tabpanel p{margin:0 0 10px;color:var(--muted)}
.tabpanel ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.tabpanel li{padding-left:22px;position:relative;font-size:16px}
.tabpanel li::before{content:"";position:absolute;left:4px;top:.65em;width:7px;height:7px;border-radius:50%;background:var(--blue)}
.tabpanel .tip{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--blue-soft);font-size:15px;color:var(--ink)}
.dark .tabpanel{background:var(--dark-2);box-shadow:inset 0 0 0 1px var(--on-dark-line)}
.dark .tabpanel p{color:var(--on-dark-60)}
.dark .tabpanel .tip{background:rgba(29,124,242,.16);color:var(--on-dark)}

/* ── 증상 체크 ── */
.check{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:start}
.meter{margin-top:40px;border-radius:24px;background:var(--ink);color:#fff;padding:24px 26px;display:flex;gap:22px;align-items:center}
.meter .n{font-size:64px;font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums;min-width:2.4ch}
.meter .n small{font-size:20px;opacity:.5;margin-left:2px}
.meter p{margin:0 0 12px;font-size:15px;color:rgba(255,255,255,.78);line-height:1.55}
.meter .btn{min-height:46px;font-size:15px;padding:0 18px;opacity:.35;pointer-events:none;transition:opacity .3s,transform .3s var(--ease),background .3s}
.meter.hot .btn{opacity:1;pointer-events:auto}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;margin:0;padding:0}
.chips button{width:100%;height:100%;min-height:104px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;text-align:left;font:inherit;font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1.4;color:var(--ink);background:var(--paper);border:0;border-radius:20px;padding:18px 18px 18px 20px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,background .25s,transform .3s var(--ease)}
.chips button:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--line-2),0 14px 30px -20px rgba(13,23,38,.4)}
.chips .box{flex:none;width:26px;height:26px;border-radius:8px;box-shadow:inset 0 0 0 1.5px var(--line-2);display:grid;place-items:center;transition:background .25s,box-shadow .25s}
.chips .box svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:3;opacity:0;transform:scale(.4);transition:all .3s var(--ease)}
.chips small{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-top:2px}
.chips button[aria-pressed="true"]{background:var(--blue);color:#fff;box-shadow:none}
.chips button[aria-pressed="true"] small{color:rgba(255,255,255,.75)}
.chips button[aria-pressed="true"] .box{background:#fff;box-shadow:none}
.chips button[aria-pressed="true"] .box svg{opacity:1;transform:none;stroke:var(--blue)}
@media (max-width:900px){.check{grid-template-columns:1fr}.meter{margin-top:28px}}
@media (max-width:420px){.chips{grid-template-columns:1fr}.chips button{min-height:64px;flex-direction:row;align-items:center;justify-content:flex-start}}

/* ── 4가지 질문 행 ── */
.rows{margin-top:56px;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:90px 1.1fr 1fr;gap:28px;padding:32px 0;border-bottom:1px solid var(--line)}
.row .no{font-size:13px;color:var(--blue-d);padding-top:6px}
.row h3{font-size:clamp(21px,1.9vw,26px);margin:0 0 8px;line-height:1.35}
.row p{margin:0;color:var(--muted);font-size:16px}
.row .ans{background:var(--blue-soft);border-radius:18px;padding:18px 20px;font-size:15px;line-height:1.6}
.row .ans b{display:block;font-size:12px;color:var(--blue-d);margin-bottom:4px}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:12px;padding:26px 0}}

/* 직접 시공 흐름 (움직이는 점) */
.chain{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.chain .col{border-radius:26px;padding:28px 26px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.chain .col.me{background:var(--ink);color:#fff;box-shadow:none}
.chain h4{margin:0 0 22px;font-size:14px;font-weight:600;color:var(--muted)}
.chain .me h4{color:var(--blue-l)}
.flowline{position:relative;display:flex;justify-content:space-between;align-items:center;gap:6px}
.flowline::before{content:"";position:absolute;left:10px;right:10px;top:50%;height:2px;background:var(--line-2)}
.me .flowline::before{background:rgba(255,255,255,.2)}
.flowline span{position:relative;z-index:1;padding:9px 13px;border-radius:999px;font-size:14px;font-weight:700;background:var(--bg-2);white-space:nowrap}
.me .flowline span{background:rgba(255,255,255,.1)}
.me .flowline span.b{background:var(--blue)}
.flowline i{position:absolute;z-index:2;top:50%;left:0;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--stain);box-shadow:0 0 0 4px rgba(167,122,69,.2);animation:travel 4.5s linear infinite}
.me .flowline i{background:var(--blue-l);box-shadow:0 0 0 4px rgba(140,195,255,.25);animation-duration:1.6s}
@keyframes travel{from{left:0}to{left:calc(100% - 10px)}}
.chain p{margin:20px 0 0;font-size:15px;color:var(--muted);line-height:1.65}
.chain .me p{color:rgba(255,255,255,.75)}
@media (max-width:760px){.chain{grid-template-columns:1fr}.flowline span{font-size:12px;padding:7px 9px}}

/* ── 숫자 ── */
.nums{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-top:1px solid var(--on-dark-line)}
.nums>div{padding:30px 24px 6px 0}
.nums>div+div{padding-left:24px;border-left:1px solid var(--on-dark-line)}
.nums strong{display:block;font-size:clamp(56px,7vw,112px);font-weight:800;letter-spacing:-.06em;line-height:.95}
.nums strong small{font-size:.32em;font-weight:700;letter-spacing:-.02em;margin-left:4px;color:var(--blue-l)}
.nums b{display:block;font-size:19px;margin-top:16px;letter-spacing:-.02em}
.nums p{margin:4px 0 0;font-size:15px;color:var(--on-dark-60)}
.nums .ph{margin-top:10px}
@media (max-width:900px){.nums{grid-template-columns:1fr 1fr}.nums>div:nth-child(3){padding-left:0;border-left:0}.nums>div{padding-bottom:28px;border-bottom:1px solid var(--on-dark-line)}}
@media (max-width:480px){.nums>div{padding-right:12px}.nums>div+div{padding-left:14px}.nums>div:nth-child(3){padding-left:0}}
.band{margin-top:clamp(72px,9vw,120px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.band .track{display:flex;width:max-content;animation:roll var(--dur,40s) linear infinite}
.band .grp{display:flex;align-items:center;font-size:clamp(56px,9vw,150px);font-weight:800;letter-spacing:-.05em;line-height:1.1;color:transparent;-webkit-text-stroke:1.2px rgba(242,245,249,.3);white-space:nowrap;padding-right:.4em}
.band .grp i{font-style:normal;color:var(--blue);-webkit-text-stroke:0;margin:0 .35em;font-size:.4em}
@keyframes roll{to{transform:translateX(-50%)}}

/* ── 현장 사진 벽 ── */
.wall{overflow:hidden;padding-top:56px;display:grid;gap:14px}
.wrow{display:flex;gap:14px;width:max-content;will-change:transform;transform:translate3d(-33.333%,0,0)}
.wrow figure{margin:0;flex:none;position:relative;width:400px;height:270px;border-radius:20px;overflow:hidden;background:#1a2638}
.wrow img{width:100%;height:100%;object-fit:cover}
.wrow figcaption{position:absolute;left:12px;bottom:12px;font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;background:rgba(6,12,22,.55);backdrop-filter:blur(8px);color:#fff}
@media (max-width:640px){.wrow figure{width:250px;height:172px;border-radius:16px}}
.wall-cap{margin:24px 0 0;font-size:13px;color:var(--on-dark-60)}

/* 갤러리 (격자) */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:48px}
.gallery figure{margin:0;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:#1a2638}
.gallery figure.tall{grid-row:span 2;aspect-ratio:auto}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--expo)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:rgba(6,12,22,.55);color:#fff;backdrop-filter:blur(8px)}
@media (max-width:860px){.gallery{grid-template-columns:1fr 1fr}}

/* ── 후기 ── */
.reviews{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:14px;margin-top:40px}
.rv{border-radius:24px;padding:22px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:12px;min-height:340px}
.rv.real{background:#fff;box-shadow:inset 0 0 0 1.5px var(--blue)}
.rv .badge{align-self:flex-start;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--blue);color:#fff}
.rv.ex .badge{background:var(--warn);color:#5a4500}
.rv.ex{background:repeating-linear-gradient(135deg,var(--paper) 0 14px,#f7f5f0 14px 28px);box-shadow:inset 0 0 0 1.5px rgba(13,23,38,.16)}
.rv .ph-img{align-self:stretch;aspect-ratio:4/3;border-radius:16px;overflow:hidden}
.rv .ph-img img{width:100%;height:100%;object-fit:cover}
.rv h3{margin:0;font-size:20px}
.rv p{margin:0;font-size:15px;color:var(--muted);line-height:1.6}
.rv .meta{margin-top:auto;font-size:13px;color:var(--faint)}
.rv .slot{flex:1;border:1.5px dashed rgba(13,23,38,.2);border-radius:16px;display:grid;place-items:center;text-align:center;padding:16px;font-size:14px;color:var(--muted);line-height:1.6}
@media (max-width:1040px){.reviews{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.reviews{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:40px calc(-1 * var(--pad)) 0;padding:0 var(--pad) 8px;scrollbar-width:none}.reviews::-webkit-scrollbar{display:none}.rv{flex:0 0 80%;scroll-snap-align:center}}

/* ── 비용 카드 ── */
.costs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.costs article{border-radius:26px;padding:28px 26px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.costs .k{font-size:13px;color:var(--blue-d);margin:0 0 14px;font-weight:700}
.costs h3{margin:0 0 10px;font-size:22px;line-height:1.35}
.costs p{margin:0;font-size:15px;color:var(--muted)}
@media (max-width:860px){.costs{grid-template-columns:1fr}}
.smalls{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.smalls b{font-size:15px;margin-right:6px}
.smalls span{padding:10px 16px;border-radius:999px;background:var(--blue-soft);color:var(--blue-d);font-size:15px;font-weight:600}

/* 방치 단계 (누수 번짐 타임라인) */
.spread{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.spread article{border-radius:24px;padding:22px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);position:relative;overflow:hidden}
.spread .blot{height:120px;border-radius:16px;background:#f4f1ea;position:relative;overflow:hidden;margin-bottom:18px}
.spread .blot i{position:absolute;left:50%;top:-30%;width:var(--s,30%);aspect-ratio:1;border-radius:46% 54% 60% 40%/50% 42% 58% 50%;background:radial-gradient(circle at 50% 40%,rgba(167,122,69,.55),rgba(167,122,69,.2) 70%,transparent 72%);transform:translateX(-50%) scale(0);transition:transform 1.6s var(--expo) var(--dl,0ms)}
.spread article.is-in .blot i{transform:translateX(-50%) scale(1)}
.spread .blot .mold{position:absolute;inset:0;background:radial-gradient(circle at 30% 70%,rgba(60,70,50,.35) 0 6px,transparent 7px),radial-gradient(circle at 70% 60%,rgba(60,70,50,.3) 0 5px,transparent 6px),radial-gradient(circle at 55% 82%,rgba(60,70,50,.35) 0 4px,transparent 5px);opacity:0;transition:opacity 1s 1s}
.spread article.is-in .mold{opacity:1}
.spread b{display:block;font-size:19px;letter-spacing:-.025em}
.spread span{font-size:15px;color:var(--muted)}
.spread .st{font-size:12px;color:var(--blue-d);font-weight:700;margin-bottom:6px;display:block}
@media (max-width:900px){.spread{grid-template-columns:1fr 1fr}}

/* 혼자 해 볼 일 vs 부를 일 */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px}
.vs>div{border-radius:26px;padding:28px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.vs>div.call{background:var(--ink);color:#fff;box-shadow:none}
.vs h3{margin:0 0 16px;font-size:22px}
.vs ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.vs li{padding-left:30px;position:relative;font-size:16px;line-height:1.55}
.vs li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:6px;background:var(--blue-soft)}
.vs li::after{content:"";position:absolute;left:6px;top:calc(.2em + 5px);width:8px;height:5px;border-left:2px solid var(--blue-d);border-bottom:2px solid var(--blue-d);transform:rotate(-45deg)}
.vs .call li::before{background:rgba(255,255,255,.12)}
.vs .call li::after{border-color:var(--blue-l)}
.vs .call p{color:rgba(255,255,255,.7);font-size:15px;margin:18px 0 0}
@media (max-width:760px){.vs{grid-template-columns:1fr}}

/* 전후 비교 슬라이더 */
.bax{position:relative;margin-top:56px;border-radius:28px;overflow:hidden;aspect-ratio:16/9;background:#ccc;--p:50%;user-select:none;touch-action:pan-y}
.bax img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bax .after{clip-path:inset(0 0 0 var(--p))}
.bax .bar{position:absolute;top:0;bottom:0;left:var(--p);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 16px rgba(0,0,0,.35);pointer-events:none}
.bax .knob{position:absolute;top:50%;left:var(--p);width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.3);pointer-events:none}
.bax .knob svg{width:24px;height:24px;stroke:var(--ink);fill:none;stroke-width:2.2}
.bax input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.bax .lb{position:absolute;top:18px;z-index:2;font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px;background:rgba(6,12,22,.6);color:#fff;backdrop-filter:blur(8px);pointer-events:none}
.bax .lb.l{left:18px}.bax .lb.r{right:18px;background:var(--blue)}
.bax .tagx{position:absolute;left:18px;bottom:16px;z-index:2;font-size:11px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.7);color:var(--muted);pointer-events:none}
@media (max-width:640px){.bax{aspect-ratio:4/3}}

/* 설치 품목 */
.items{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:48px}
.items div{border-radius:22px;padding:22px 18px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);transition:transform .35s var(--ease),box-shadow .35s}
.items div:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(29,124,242,.35),0 18px 40px -26px rgba(13,23,38,.4)}
.items svg{width:34px;height:34px;stroke:var(--blue);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:16px}
.items b{display:block;font-size:18px;letter-spacing:-.025em}
.items span{font-size:14px;color:var(--muted)}
@media (max-width:900px){.items{grid-template-columns:1fr 1fr}}

/* 신뢰 박스 */
.trust{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px}
.tbox{border-radius:28px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);padding:clamp(24px,3vw,40px)}
.tbox h3{margin:0 0 18px;font-size:14px;font-weight:600;color:var(--muted)}
.tbox ul{list-style:none;margin:0;padding:0}
.tbox li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--line);font-size:clamp(17px,1.5vw,21px);font-weight:600;letter-spacing:-.02em}
.tbox li span{font-size:14px;font-weight:500;color:var(--muted);white-space:nowrap}
.tbox dl{display:grid;grid-template-columns:auto 1fr;margin:0}
.tbox dt,.tbox dd{padding:14px 0;border-top:1px solid var(--line);margin:0}
.tbox dt{color:var(--muted);font-size:15px;padding-right:22px}
.tbox dd{font-weight:600;font-size:16px}
.tbox a.link{display:inline-block;margin-top:18px;font-size:14px;font-weight:600;color:var(--blue-d)}
@media (max-width:860px){.trust{grid-template-columns:1fr}}

/* 인용 */
.quote{font-size:clamp(28px,3.6vw,52px);line-height:1.35;letter-spacing:-.04em;font-weight:700;margin:0;max-width:20em}
.quote em{font-style:normal;color:var(--blue)}
.quote-by{margin-top:22px;font-size:15px;color:var(--muted)}

/* 지역 (영상 배경) */
.area{position:relative;height:min(92vh,820px);min-height:520px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;background:var(--dark)}
.area .rise{position:absolute;inset:0}
.area .rise video,.area .rise img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.area .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,12,22,.8) 0%,rgba(6,12,22,.2) 42%,rgba(6,12,22,0) 70%);pointer-events:none;z-index:1}
.area .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vw,88px)}
.area .kick{color:var(--blue-l)}
.area .sub{color:rgba(255,255,255,.8)}
.area .tag-img{left:auto;right:16px;top:16px;bottom:auto;color:rgba(255,255,255,.75);background:rgba(0,0,0,.3)}
.places{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.places span{padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);font-size:15px;font-weight:600}

/* 영상 패널 (섹션 안) */
.vpanel{position:relative;margin-top:56px;border-radius:28px;overflow:hidden;aspect-ratio:16/9;background:#1a2638}
.vpanel .rise{position:absolute;inset:0}
.vpanel video,.vpanel img{width:100%;height:100%;object-fit:cover}
.vpanel .tag-img{left:16px;bottom:16px;top:auto}

/* 순서 */
.steps{display:grid;grid-template-columns:repeat(var(--n,3),1fr);margin-top:64px;position:relative}
.steps::before{content:"";position:absolute;left:28px;width:calc(100% - 100% / var(--n,3));top:27px;height:2px;background:var(--line-2)}
.steps .fill{position:absolute;left:28px;top:27px;height:2px;background:var(--blue);width:0;transition:width 1.8s var(--expo) .2s}
.steps.is-in .fill{width:calc(100% - 100% / var(--n,3))}
.steps article{position:relative;padding-right:24px}
.steps .dot{width:56px;height:56px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--line-2);display:grid;place-items:center;font-size:20px;font-weight:800;color:var(--faint);position:relative;transition:background .4s,color .4s,box-shadow .4s}
.tint .steps .dot{background:var(--bg-2)}
.steps.is-in article:nth-of-type(2) .dot{transition-delay:.5s}.steps.is-in article:nth-of-type(3) .dot{transition-delay:1s}.steps.is-in article:nth-of-type(4) .dot{transition-delay:1.4s}.steps.is-in article:nth-of-type(5) .dot{transition-delay:1.8s}
.steps.is-in .dot{background:var(--blue);color:#fff;box-shadow:0 0 0 8px rgba(29,124,242,.12)}
.steps h3{margin:24px 0 6px;font-size:clamp(21px,1.9vw,27px)}
.steps p{margin:0;color:var(--muted);font-size:16px;max-width:20rem}
@media (max-width:760px){
  .steps{grid-template-columns:1fr;gap:28px}
  .steps::before{left:27px;width:2px;top:28px;bottom:28px;height:auto}
  .steps .fill{left:27px;top:28px;width:2px!important;height:0;transition:height 1.8s var(--expo) .2s}
  .steps.is-in .fill{height:calc(100% - 56px)}
  .steps article{display:grid;grid-template-columns:56px 1fr;column-gap:18px;padding:0}
  .steps .dot{grid-row:span 2}
  .steps h3{margin:10px 0 2px}
}

/* FAQ */
.faq{margin-top:72px;border-top:1px solid var(--line);max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-size:clamp(17px,1.5vw,20px);font-weight:600;letter-spacing:-.025em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-2);position:relative;transition:transform .35s var(--ease),background .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--blue-soft)}
.faq .a{padding:0 0 24px;color:var(--muted);font-size:16px;max-width:44rem}

/* 문자 상담 만들기 */
.smsbox{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin-top:56px;align-items:start}
.form{border-radius:28px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);padding:clamp(22px,3vw,36px);display:grid;gap:18px}
.form label{display:grid;gap:8px;font-size:15px;font-weight:700}
.form label small{font-weight:500;color:var(--muted)}
.form select,.form input,.form textarea{font:inherit;font-size:16px;padding:14px 16px;border-radius:14px;border:0;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);width:100%}
.form textarea{min-height:110px;resize:vertical}
.form .seg{display:flex;flex-wrap:wrap;gap:8px}
.form .seg button{font:inherit;font-size:15px;font-weight:600;padding:10px 14px;border-radius:999px;border:0;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);cursor:pointer;min-height:44px}
.form .seg button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:none}
.preview{border-radius:28px;background:#b9d2e8;padding:26px 22px;position:relative;min-height:320px}
.preview .bub{max-width:88%;margin-left:auto;background:#fee500;border-radius:18px 4px 18px 18px;padding:14px 16px;font-size:15px;line-height:1.6;white-space:pre-wrap;box-shadow:0 2px 0 rgba(0,0,0,.06)}
.preview .pt{font-size:12px;color:rgba(13,23,38,.6);margin-bottom:10px}
.preview .note{font-size:13px;color:rgba(13,23,38,.65);margin-top:16px}
@media (max-width:860px){.smsbox{grid-template-columns:1fr}}

/* 다음 페이지 링크 */
.nextlinks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.nextlinks a{display:block;border-radius:24px;padding:24px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s}
.nextlinks a:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(29,124,242,.4),0 18px 40px -26px rgba(13,23,38,.4)}
.nextlinks small{display:block;font-size:12px;color:var(--blue-d);margin-bottom:10px}
.nextlinks b{display:block;font-size:21px;letter-spacing:-.03em}
.nextlinks span{font-size:15px;color:var(--muted)}
.dark .nextlinks a{background:var(--dark-2);box-shadow:inset 0 0 0 1px var(--on-dark-line)}
.dark .nextlinks span{color:var(--on-dark-60)}
.dark .nextlinks small{color:var(--blue-l)}
@media (max-width:860px){.nextlinks{grid-template-columns:1fr}}

/* 마지막 + 푸터 */
.final{padding:clamp(110px,14vw,200px) 0 0;overflow:hidden}
.final h2{font-size:clamp(38px,6vw,96px);max-width:11em}
.final .tel{display:inline-block;font-size:clamp(46px,9vw,150px);font-weight:800;letter-spacing:-.055em;line-height:1;color:var(--blue-l);text-decoration:none;margin:36px 0 34px;font-variant-numeric:tabular-nums;transition:color .3s}
.final .tel:hover{color:#fff}
.final .fine{font-size:14px;color:var(--on-dark-60);margin:20px 0 0}
.foot{margin-top:clamp(80px,10vw,140px);border-top:1px solid var(--on-dark-line);padding:32px 0 0;display:grid;grid-template-columns:1.4fr 1fr;gap:24px;font-size:13px;line-height:1.8;color:var(--on-dark-60)}
.foot b{color:var(--on-dark)}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:flex-end;font-size:14px}
.foot nav a{text-decoration:none;color:var(--on-dark)}
.foot nav a:hover{color:var(--blue-l)}
@media (max-width:760px){.foot{grid-template-columns:1fr}.foot nav{justify-content:flex-start}}
.mark{font-size:clamp(80px,21vw,330px);font-weight:800;letter-spacing:-.07em;line-height:.8;color:rgba(242,245,249,.05);margin:40px 0 0 -.04em;white-space:nowrap;user-select:none;padding-bottom:110px}
@media (min-width:761px){.mark{padding-bottom:24px}}

/* 모바일 하단 바 */
.mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:55;display:none;gap:8px;padding:8px;border-radius:22px;background:rgba(255,253,249,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 0 0 1px var(--line),0 14px 34px -14px rgba(13,23,38,.4);transform:translateY(140%);transition:transform .5s var(--ease)}
.mbar .btn{flex:1;min-height:50px;font-size:15px;padding:0 12px}
.mbar .btn-glass{background:#fff}
body.past-hero .mbar{transform:none}
@media (max-width:760px){.mbar{display:flex}.toggle{top:76px;bottom:auto;right:12px;padding:7px 11px;font-size:11px;opacity:.85}}


/* 보정 */
.rv{color:var(--ink)}
.dark .costs article{background:var(--dark-2);box-shadow:inset 0 0 0 1px var(--on-dark-line)}
.dark .costs .k{color:var(--blue-l)}
.dark .costs p{color:var(--on-dark-60)}
.dark .ph-note{background:rgba(255,229,138,.1);color:#ffe58a;border-color:rgba(255,229,138,.4)}
.xsec.layers .xs-tag{transform:translateY(-34px)}
.xsec.layers.is-in .xs-tag{transform:none}
.xsec.layers.is-in .xs-tag.t1{transition-delay:.2s}.xsec.layers.is-in .xs-tag.t2{transition-delay:.6s}.xsec.layers.is-in .xs-tag.t3{transition-delay:1s}.xsec.layers.is-in .xs-tag.t4{transition-delay:1.4s}
.dark .chain .col:not(.me){background:var(--dark-2);box-shadow:inset 0 0 0 1px var(--on-dark-line);color:var(--on-dark)}
.dark .chain .col:not(.me) h4,.dark .chain .col:not(.me) p{color:var(--on-dark-60)}
.dark .chain .col:not(.me) .flowline span{background:rgba(255,255,255,.08)}
.dark .chain .col.me{background:var(--blue)}
.dark .chain .col.me h4{color:#fff}
.dark .chain .col.me p{color:rgba(255,255,255,.85)}
.dark .chain .col.me .flowline span.b{background:#fff;color:var(--ink)}
.tint .places span,.sec .places span{color:inherit}
.places.light span{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:none}
.xsec .cap{position:static;display:block;margin-top:10px;padding-left:4px}
@media (max-width:640px){.xs-label{font-size:16px}.xs-label.b{font-size:17px}}
