/* 가격 계단 — 사이트마다 색만 바꿔 쓴다(--pl-*). 원본 tools/price-ladder/, 사이트 폴더에는 복사본. */
.pl{--pl-bg:transparent;--pl-ink:#141311;--pl-muted:#6d6a62;--pl-line:rgba(20,19,17,.14);--pl-card:rgba(255,255,255,.6);--pl-accent:#FF7A59;--pl-accent2:#8A5CFF;--pl-on-accent:#fff;--pl-glow:rgba(255,79,154,.55);
  position:relative;background:var(--pl-bg);color:var(--pl-ink);padding:clamp(56px,8vw,110px) 0;word-break:keep-all;overflow:hidden}
.pl .pl-wrap{width:min(1180px,100% - 40px);margin-inline:auto;display:grid;gap:clamp(18px,2.6vw,30px)}
.pl .pl-head{display:grid;gap:10px;max-width:760px}
.pl .pl-eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--pl-muted);font-weight:600}
.pl .pl-head h2{margin:0;font-size:clamp(30px,4.2vw,52px);line-height:1.1;letter-spacing:-.03em;font-weight:800;text-wrap:balance;font-family:var(--pl-font-display,inherit);color:var(--pl-ink)}
.pl .pl-head p{margin:0;font-size:clamp(15px,1.4vw,17px);line-height:1.65;color:var(--pl-muted);max-width:62ch}
.pl .pl-stair{position:relative;display:flex;gap:clamp(5px,1vw,10px);align-items:flex-end;height:clamp(118px,15vw,170px);padding-top:28px;border-bottom:1px solid var(--pl-line)}
.pl .pl-st{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:16px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.pl .pl-pr{font-size:clamp(10px,1.1vw,13px);font-weight:700;text-align:center;font-variant-numeric:tabular-nums;color:var(--pl-muted);white-space:nowrap;letter-spacing:-.01em;transition:color .35s}
.pl .pl-bar{display:block;border-radius:10px 10px 0 0;background:var(--pl-card);border:1px solid var(--pl-line);border-bottom:0;transition:background .45s,box-shadow .45s,border-color .45s}
.pl .pl-st:hover .pl-bar{border-color:var(--pl-muted)}
.pl .pl-st.done .pl-bar{background:color-mix(in srgb,var(--pl-accent) 22%,transparent)}
.pl .pl-st.on .pl-bar{background:linear-gradient(160deg,var(--pl-accent),var(--pl-accent2));border-color:transparent;box-shadow:0 14px 40px -10px var(--pl-glow)}
.pl .pl-st.on .pl-pr{color:var(--pl-ink)}
.pl .pl-st:focus-visible{outline:2px solid var(--pl-accent);outline-offset:4px;border-radius:8px}
.pl .pl-dot{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;transition:transform .7s cubic-bezier(.34,1.56,.64,1);pointer-events:none}
.pl .pl-dot::before{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--pl-accent) 30%,transparent),0 0 20px 4px var(--pl-glow)}
.pl .pl-names{display:flex;gap:clamp(5px,1vw,10px);margin-top:9px}
.pl .pl-names span{flex:1;min-width:0;text-align:center;font-size:clamp(11px,1.1vw,13px);line-height:1.3;color:var(--pl-muted);transition:color .35s}
.pl .pl-names span.on{color:var(--pl-ink);font-weight:700}
.pl .pl-note{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:var(--pl-muted)}
.pl .pl-auto{flex:none;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--pl-line);background:var(--pl-card);color:var(--pl-ink);font:inherit;font-size:12px;cursor:pointer}
.pl .pl-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(18px,3vw,40px);align-items:center}
.pl .pl-panel{display:grid;gap:8px;align-content:start}
.pl .pl-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pl .pl-tier{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl .pl-tag{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-muted);font-weight:600}
.pl .pl-tier b{font-size:clamp(20px,2.2vw,26px);font-weight:800;letter-spacing:-.02em}
.pl .pl-flag{font-style:normal;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:linear-gradient(120deg,var(--pl-accent),var(--pl-accent2));color:var(--pl-on-accent)}
.pl .pl-price{font-size:clamp(26px,3.2vw,38px);font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pl .pl-extra{font-size:13.5px;color:var(--pl-muted)}
.pl .pl-desc{margin:2px 0 0;font-size:clamp(15px,1.4vw,16.5px);line-height:1.65}
.pl .pl-cta{justify-self:start;display:inline-flex;gap:6px;align-items:center;margin-top:4px;padding:11px 18px;border-radius:999px;background:var(--pl-ink);color:var(--pl-bg-solid,#fff);text-decoration:none;font-weight:700;font-size:14px}
.pl .pl-panel>*{animation:pl-up .5s cubic-bezier(.16,1,.3,1) both}
.pl .pl-panel>*:nth-child(2){animation-delay:.05s}.pl .pl-panel>*:nth-child(3){animation-delay:.1s}.pl .pl-panel>*:nth-child(4){animation-delay:.15s}
.pl .pl-flow{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);align-items:center;padding:clamp(14px,2vw,22px);border-radius:22px;background:var(--pl-card);border:1px solid var(--pl-line)}
.pl .pl-node{display:grid;justify-items:center;gap:7px;text-align:center;min-width:0}
.pl .pl-node small{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--pl-muted)}
.pl .pl-node b{font-size:13.5px;line-height:1.35;font-weight:700}
.pl .pl-th{display:grid;place-items:center;width:clamp(64px,8vw,96px);aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--pl-line)}
.pl .pl-th img{width:100%;height:100%;object-fit:cover;display:block}
.pl .pl-th.raw img{transform:rotate(-4deg) scale(.86);border-radius:6px;box-shadow:0 0 0 3px #fff;filter:saturate(.85)}
.pl .pl-th-none i{width:44%;aspect-ratio:3/4;border:2px solid var(--pl-muted);border-radius:6px;opacity:.6}
.pl .pl-orb{position:relative;display:grid;place-items:center;width:clamp(58px,6vw,74px);aspect-ratio:1;border-radius:50%}
.pl .pl-orb::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--pl-accent),var(--pl-accent2),var(--pl-accent));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));animation:pl-spin 6s linear infinite}
.pl .pl-orb b{position:relative;font-size:clamp(13px,1.3vw,16px);font-weight:900}
.pl .pl-wire{position:relative;height:1px;background:var(--pl-line)}
.pl .pl-wire>i{position:absolute;top:50%;left:0;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#fff;box-shadow:0 0 12px 3px var(--pl-glow);opacity:0}
.pl .pl-flow.run .pl-me{animation:pl-up .45s cubic-bezier(.16,1,.3,1) both}
.pl .pl-flow.run .pl-wire>i{animation:pl-run .55s ease-in-out .45s both}
.pl .pl-flow.run .pl-mx .pl-orb::before{animation:pl-spin 6s linear infinite,pl-busy 1s ease-in-out .9s 1 both}
.pl .pl-flow.run .pl-w2>i{animation:pl-run .5s ease-in-out 1.75s both}
.pl .pl-flow.run .pl-out{animation:pl-pop .6s cubic-bezier(.34,1.56,.64,1) 2.15s both}
.pl .pl-dot.hop::before{animation:pl-hop .7s ease-out}
@keyframes pl-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pl-run{0%{left:0;opacity:1}100%{left:100%;opacity:1}}
@keyframes pl-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@keyframes pl-busy{0%,100%{filter:none}50%{filter:drop-shadow(0 0 12px var(--pl-glow)) brightness(1.25)}}
@keyframes pl-hop{0%{transform:scale(1)}35%{transform:scale(1.5)}100%{transform:scale(1)}}
@media (max-width:820px){
  .pl .pl-body{grid-template-columns:minmax(0,1fr)}
  .pl .pl-flow{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) 16px minmax(0,1fr);padding:14px 10px}
  .pl .pl-node b{font-size:12px}
  .pl .pl-names span{font-size:10.5px}
  .pl .pl-note{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.pl .pl-dot{transition:none}.pl .pl-orb::before,.pl .pl-flow.run *,.pl .pl-panel>*,.pl .pl-dot.hop::before{animation:none!important}.pl .pl-wire>i{opacity:0}}
