:root{
    --ink:#0C1116; --ink-2:#12181F; --slate:#3A4551; --line:#D6DBE0;
    --paper:#F4F6F8; --white:#FFFFFF;
    --signal:#1C51B9; --gate:#C8912B; --verify:#0E7C66; --halt:#B3261E;
    --rail:120px; --content-max:1180px; --col:760px;
    --r:2px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Pretendard Variable','Pretendard',-apple-system,sans-serif;
    background:var(--paper); color:var(--ink); line-height:1.75;
    -webkit-font-smoothing:antialiased;
    overflow-wrap:break-word; word-break:keep-all; text-wrap:wrap;
  }
  .mono{font-family:'IBM Plex Mono',ui-monospace,monospace;}
  .en{font-family:'IBM Plex Sans',sans-serif;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .label{
    font-family:'IBM Plex Mono',monospace; font-size:.75rem; font-weight:500;
    letter-spacing:.12em; text-transform:uppercase;
  }
  .wrap{max-width:var(--content-max); margin:0 auto; padding:0 32px;}
  .grid-rail{
    display:grid; grid-template-columns:var(--rail) 1fr; gap:0 24px;
  }
  .grid-rail:not(:has(.rail-code)),
  .grid-rail:has(> :only-child){grid-template-columns:1fr;}
  @media (max-width:900px){ .grid-rail{grid-template-columns:1fr;} .rail-code{display:none;} }
  .rail-code{
    writing-mode:vertical-rl; color:var(--slate); letter-spacing:.16em;
    align-self:start; padding-top:6px;
  }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50; background:rgba(244,246,248,.92);
    backdrop-filter:saturate(180%) blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    max-width:var(--content-max); margin:0 auto; padding:0 32px;
    height:72px; display:flex; align-items:center; justify-content:space-between;
  }
  .logo{display:flex; align-items:center; gap:10px; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:1.05rem; letter-spacing:.06em;}
  .logo .mark{
    width:14px; height:14px; background:var(--signal); transform:rotate(45deg);
    flex:none;
  }
  .logo .endorse{font-family:'IBM Plex Mono'; font-size:.62rem; letter-spacing:.1em; color:var(--slate); display:block; margin-top:1px; font-weight:500; text-transform:uppercase;}
  .logo-block{display:flex; flex-direction:column; line-height:1.1;}
  nav.links{display:flex; align-items:center; gap:24px;}
  @media (max-width:1000px){ nav.links{gap:16px;} }
  nav.links a{font-size:.92rem; color:var(--slate); transition:color .16s;}
  nav.links a:hover{color:var(--ink);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono'; font-size:.78rem; font-weight:500; letter-spacing:.08em;
    text-transform:uppercase; padding:11px 20px; border-radius:var(--r);
    border:1px solid transparent; cursor:pointer; transition:opacity .16s;
  }
  .btn:hover{opacity:.85;}
  .btn-signal{background:var(--signal); color:var(--white);}
  .btn-ghost{border-color:var(--line); color:var(--ink);}
  .btn-ghost-ink{border-color:#2A333D; color:var(--paper);}
  .navcta{display:inline-flex;}
  nav.links a.navcta, nav.links a.navcta:hover{color:var(--white); white-space:nowrap;} /* v2: nav 링크 색이 CTA 글자색을 덮던 문제 수정 */
  /* 모바일 메뉴는 아래 .menu-btn 규칙으로 처리 */

  /* ---------- Hero ---------- */
  .hero{background:linear-gradient(180deg,var(--ink) 0%, var(--ink-2) 100%); color:var(--paper); padding:96px 0 80px;}
  .hero .label{color:#6B7580; margin-bottom:28px; display:block;}
  .hero h1{
    font-family:'Pretendard Variable'; font-weight:800; font-size:3.75rem; letter-spacing:-.03em;
    line-height:1.15; margin-bottom:28px;
  }
  .hero h1 em{font-style:normal; color:var(--paper); border-bottom:3px solid var(--signal);}
  @media (max-width:720px){ .hero h1{font-size:2.25rem;} }
  .hero p.lead{
    font-size:1.125rem; color:#B8C0C8; margin-bottom:36px;
    text-align:left;
  }
  .hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px;}
  .hero-micro{font-size:.72rem; letter-spacing:.08em; color:#6B7580; margin-bottom:56px;}

  /* Gate Line */
  .gateline-panel{
    border:1px solid #2A333D; border-radius:var(--r); padding:28px 32px; background:#0F151B;
  }
  .gateline-row{display:flex; align-items:center; gap:0; overflow-x:auto;}
  .gl-seg{
    font-family:'IBM Plex Mono'; font-size:.82rem; letter-spacing:.06em; color:#C9D1D8;
    white-space:nowrap; padding:0 14px; position:relative;
  }
  .gl-line{height:1.5px; background:#3A4551; flex:1; min-width:32px; position:relative;}
  .gl-line.active{background:var(--signal);}
  .gl-diamond{
    width:16px; height:16px; background:var(--gate); transform:rotate(45deg); flex:none;
    position:relative;
  }
  .gl-caption{
    margin-top:16px; font-family:'IBM Plex Mono'; font-size:.72rem; letter-spacing:.1em;
    color:var(--gate); text-transform:uppercase; opacity:0; transition:opacity .3s ease;
  }
  .gateline-panel.show-exception .gl-caption{opacity:1;}
  .gl-approve{font-family:'IBM Plex Mono'; font-size:.68rem; color:#8A94A0; text-align:center; margin-top:6px;}

  /* ---------- Stats band (single-line, scripted reveal) ---------- */
  .stats{background:var(--paper); border-bottom:1px solid var(--line);}
  .stats-row{
    display:flex; align-items:flex-start; padding:60px 0;
    overflow-x:auto; -ms-overflow-style:none; scrollbar-width:none;
  }
  .stats-row::-webkit-scrollbar{display:none;}
  .stat{
    flex:1 1 0; min-width:172px;
    opacity:0; transform:translateY(16px);
    transition:opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
  }
  .stat.in-view{opacity:1; transform:translateY(0);}
  .stat-sep{
    width:5px; height:5px; flex:none; align-self:center; margin:0 clamp(12px,3vw,32px);
    background:var(--line); border-radius:50%;
  }
  .stat .num{
    font-family:'IBM Plex Mono'; font-weight:600; font-size:2.35rem; color:var(--verify);
    letter-spacing:-.01em; white-space:nowrap; display:block;
  }
  .stat .num .unit{font-size:1.3rem;}
  .stat .desc{
    color:var(--slate); font-size:.85rem; margin-top:8px; line-height:1.5;
    opacity:0; transform:translateY(6px);
    transition:opacity .5s ease, transform .5s ease;
  }
  .stat.in-view .desc{opacity:1; transform:translateY(0);}
  @media (max-width:820px){ .stat{min-width:150px;} .stat .num{font-size:1.9rem;} }
  @media (prefers-reduced-motion: reduce){
    .stat, .stat .desc{transition:none; opacity:1; transform:none;}
  }

  /* ---------- Section shell ---------- */
  section{padding:96px 0;}
  section.tight{padding:72px 0;}
  .section-head{margin-bottom:48px;}
  .section-head .label{color:var(--signal); margin-bottom:14px; display:block;}
  .section-head h2{
    font-family:'Pretendard Variable'; font-weight:800; font-size:2.5rem; letter-spacing:-.025em; line-height:1.2;
  }
  @media (max-width:720px){ .section-head h2{font-size:1.75rem;} }
  .section-head p{color:var(--slate); margin-top:16px; font-size:1rem;}

  /* Gate line divider */
  .divider{display:flex; align-items:center; gap:12px; padding:0 32px; max-width:var(--content-max); margin:0 auto;}
  .divider .ln{flex:1; height:1px; background:var(--line);}
  .divider .dm{width:9px; height:9px; background:var(--line); transform:rotate(45deg); flex:none;}

  /* ---------- Services ---------- */
  .svc-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;}
  @media (max-width:800px){ .svc-grid{grid-template-columns:1fr;} }
  .svc-card{background:var(--white); padding:36px 32px; display:flex; flex-direction:column;}
  a.svc-card{color:inherit;}
  a.svc-card:hover{background:var(--paper);}
  a.svc-card:focus-visible{outline:2px solid var(--signal); outline-offset:-2px;}
  .svc-card .idx{font-family:'IBM Plex Mono'; font-size:.75rem; color:var(--slate); letter-spacing:.08em;}
  .svc-card h3{font-family:'Pretendard Variable'; font-weight:700; font-size:1.5rem; letter-spacing:-.02em; margin:14px 0 12px;}
  .svc-card p{color:var(--slate); font-size:.96rem;}
  .svc-card .more{
    margin-top:auto; padding-top:22px;
    font-family:'IBM Plex Mono',monospace; font-size:.75rem; letter-spacing:.08em; color:var(--signal);
  }
  a.svc-card:hover .more{color:var(--ink);}
  .svc-card.gate{box-shadow:inset 3px 0 0 var(--gate);}
  .svc-card .accent{width:28px; height:3px; background:var(--signal); margin-top:20px;}
  .svc-card.gate .accent{background:var(--gate);}
  .svc-card.verify .accent{background:var(--verify);}

  /* ---------- Diagnose ---------- */
  .diag-panel{
    border:1px solid var(--line); border-radius:var(--r); background:var(--white);
    padding:40px;
  }
  .diag-feature-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
    padding-bottom:32px; margin-bottom:32px; border-bottom:1px solid var(--line);
  }
  @media (max-width:900px){ .diag-feature-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:480px){ .diag-feature-grid{grid-template-columns:1fr;} }
  .diag-feature .idx{color:var(--signal); display:block; margin-bottom:10px;}
  .diag-feature p{color:var(--slate); font-size:.9rem;}
  .ladder{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-bottom:32px;}
  .ladder-row{
    display:flex; align-items:center; gap:16px; background:var(--paper); padding:12px 18px;
    font-size:.92rem;
  }
  .ladder-row.current{background:var(--ink); color:var(--paper);}
  .ladder-tag{
    width:32px; height:32px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--white); border:1px solid var(--line); border-radius:var(--r); font-size:.7rem;
  }
  .ladder-row.current .ladder-tag{background:var(--verify); border-color:var(--verify); color:var(--white);}
  .diag-cta{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
  .diag-micro{font-size:.72rem; letter-spacing:.06em; color:var(--slate);}

  /* ---------- About / Founder ---------- */
  .about-band{background:var(--paper); color:var(--ink);}
  .about-band .label{color:var(--signal);}
  .about-band .section-head h2{color:var(--ink);}
  .about-band .section-head p{color:var(--slate);}
  .founder{display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:start;}
  @media (max-width:760px){ .founder{grid-template-columns:1fr;} }
  .avatar{
    width:100%; aspect-ratio:1; background:var(--white); border:1px solid var(--line); border-radius:var(--r);
    display:flex; align-items:center; justify-content:center;
  }
  .avatar .mark{width:56px; height:56px; background:var(--signal); transform:rotate(45deg);}
  .founder h3{font-family:'Pretendard Variable'; font-weight:700; font-size:1.375rem; margin-bottom:4px;}
  .founder .role{color:var(--gate); font-family:'IBM Plex Mono'; font-size:.78rem; letter-spacing:.08em; margin-bottom:24px; text-transform:uppercase;}
  .founder p{color:var(--slate); margin-bottom:16px;}
  .founder a{color:var(--signal); border-bottom:1px solid var(--line);}
  .founder a:hover{border-color:var(--signal);}
  .tag-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:24px;}
  .tag{
    font-family:'IBM Plex Mono'; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
    border:1px solid var(--line); color:var(--slate); background:var(--white); padding:6px 12px; border-radius:var(--r);
  }
  .team-note{margin-top:28px;}
  .about-band .cert-list{max-width:620px;}

  /* ---------- Team ---------- */
  .team-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
  @media (max-width:760px){ .team-grid{grid-template-columns:1fr;} }
  .team-grid > .team-card:only-child{grid-column:1 / -1; max-width:760px;} /* v3: 대표 파트너 단독 카드 */
  .team-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:32px;}
  .team-card .role{font-family:'IBM Plex Mono'; font-size:.72rem; color:var(--signal); letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px;}
  .team-card h3{font-family:'Pretendard Variable'; font-weight:700; font-size:1.25rem; margin-bottom:10px;}
  .team-card p{color:var(--slate); font-size:.92rem; margin-bottom:8px;}
  .team-card .company{color:var(--ink); font-size:.85rem; font-weight:600;}
  .cert-list{list-style:none; margin-top:16px; padding-top:16px; border-top:1px solid var(--line);}
  .cert-list li{font-size:.85rem; color:var(--slate); padding:3px 0; padding-left:16px; position:relative;}
  .cert-list li::before{content:"◇"; position:absolute; left:0; color:var(--gate); font-size:.65rem; top:6px;}

  /* ---------- Quote / testimonials ---------- */
  .quote-lead{
    margin:0 0 20px; padding:36px 40px;
    background:var(--white); border:1px solid var(--line); border-left:3px solid var(--gate);
  }
  .quote-lead blockquote{
    font-family:'Pretendard Variable'; font-weight:700; font-size:1.35rem;
    letter-spacing:-.02em; line-height:1.5;
  }
  .quote-lead figcaption{
    font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em;
    color:var(--slate); margin-top:18px;
  }
  @media (max-width:720px){ .quote-lead{padding:26px 22px;} .quote-lead blockquote{font-size:1.15rem;} }
  .quote-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;}
  @media (max-width:720px){ .quote-grid{grid-template-columns:1fr;} }
  .quote-card{background:var(--white); padding:28px 26px; display:flex; flex-direction:column; gap:14px;}
  .quote-card .qmark{color:var(--line); font-family:'IBM Plex Mono'; font-size:1.6rem; line-height:1;}
  .quote-card p{font-size:.95rem; color:var(--ink); flex:1;}
  .quote-card .src{font-family:'IBM Plex Mono'; font-size:.7rem; color:var(--slate); letter-spacing:.06em; border-top:1px solid var(--line); padding-top:12px;}

  /* ---------- Contact (paper) ---------- */
  .contact{background:var(--paper); color:var(--ink); border-top:1px solid var(--line);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:40px;} }
  .contact .label{color:var(--signal);}
  .contact h2{font-family:'Pretendard Variable'; font-weight:800; font-size:2.25rem; letter-spacing:-.02em; line-height:1.25; margin:0 0 20px;}
  .contact p.lead{color:var(--slate);}
  .field{margin-bottom:16px;}
  .field label{display:block; font-family:'IBM Plex Mono'; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); margin-bottom:6px;}
  .field input, .field textarea{
    width:100%; background:var(--white); border:1px solid var(--line);
    border-radius:var(--r); padding:12px 14px; color:var(--ink); font-family:'Pretendard Variable'; font-size:.92rem;
  }
  .field input::placeholder, .field textarea::placeholder{color:#8A94A0;}
  .field input:focus, .field textarea:focus{border-color:var(--signal); outline:2px solid var(--signal); outline-offset:2px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  @media (max-width:480px){ .field-row{grid-template-columns:1fr;} }
  .submit-btn{
    margin-top:8px; background:var(--signal); color:var(--white); border:none;
    font-family:'IBM Plex Mono'; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
    font-size:.8rem; padding:14px 28px; border-radius:var(--r); cursor:pointer;
  }
  .submit-btn:hover{opacity:.9;}

  /* ---------- Footer ---------- */
  footer{background:var(--ink); color:#8A94A0; padding:56px 0 32px;}
  .foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; padding-bottom:40px; border-bottom:1px solid #232B33;}
  @media (max-width:760px){ .foot-grid{grid-template-columns:1fr 1fr; row-gap:32px;} }
  .foot-grid h4{font-family:'IBM Plex Mono'; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#5A646E; margin-bottom:14px;}
  .foot-grid a, .foot-grid p{display:block; font-size:.88rem; color:#AEB7BF; margin-bottom:8px;}
  .foot-grid a:hover{color:var(--paper);}
  .foot-logo{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
  .foot-logo .mark{width:12px; height:12px; background:var(--paper); transform:rotate(45deg);}
  .foot-logo span{font-family:'IBM Plex Sans'; font-weight:600; letter-spacing:.06em; color:var(--paper);}
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center; padding-top:24px; flex-wrap:wrap; gap:12px;
    font-family:'IBM Plex Mono'; font-size:.7rem; letter-spacing:.04em; color:#5A646E;
  }
  .foot-bottom a{color:#5A646E;}
  .foot-bottom a:hover{color:#AEB7BF;}

  .visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
  .skip-link{
    position:absolute; left:16px; top:-48px; z-index:100;
    background:var(--ink); color:var(--white); padding:10px 14px;
    border:1px solid var(--paper); border-radius:var(--r);
  }
  .skip-link:focus{top:16px;}
  :focus-visible{outline:2px solid var(--signal); outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important; animation:none !important;} }

/* ====== site.css 추가분 (2026-10-22): 모바일 메뉴 · 하위 페이지 · 폼 상태 ====== */
.menu-btn{display:none;}
@media (max-width:820px){
  .menu-btn{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;align-items:center;background:transparent;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;}
  .menu-btn span{display:block;width:18px;height:2px;background:var(--ink);transition:transform .16s,opacity .16s;}
  header.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  header.open .menu-btn span:nth-child(2){opacity:0;}
  header.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  nav.links{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 32px 22px;}
  header.open nav.links{display:flex;}
  nav.links a{padding:13px 0;border-bottom:1px solid var(--line);font-size:1rem;}
  nav.links a.navcta{margin-top:16px;justify-content:center;border-bottom:0;padding:13px 20px;}
}
@media (max-width:480px){ .wrap{padding:0 20px;} .nav{padding:0 20px;} nav.links{padding:8px 20px 22px;} }
nav.links a[aria-current="page"]{color:var(--ink);font-weight:600;}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}
section[id]{scroll-margin-top:72px;}
.skip-link:focus{left:12px;}

/* 문의 폼 */
.field .req{color:var(--halt);margin-left:4px;}
.consent{display:flex;gap:10px;align-items:flex-start;margin:6px 0 18px;font-size:.85rem;line-height:1.6;color:var(--slate);}
.consent input{margin-top:4px;flex:none;width:16px;height:16px;accent-color:var(--signal);}
.consent a{text-decoration:underline;text-underline-offset:3px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-status{margin-top:14px;font-size:.9rem;line-height:1.6;min-height:1.4em;color:var(--slate);}
.form-status.err{color:var(--halt);}
.form-status.ok{color:var(--verify);}
.form-status button{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0;margin-left:6px;}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{border-color:var(--halt);}

/* 하위 페이지 */
.sub-hero{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%);color:var(--paper);padding:64px 0 56px;}
.crumb{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#8A94A0;margin-bottom:22px;}
.crumb a{color:#B8C0C8;}
.crumb a:hover{color:var(--white);}
.crumb span{margin:0 8px;color:#55606B;}
.sub-hero h1{font-weight:800;font-size:2.75rem;letter-spacing:-.03em;line-height:1.2;margin-bottom:20px;}
.sub-hero .lead{font-size:1.1rem;color:#B8C0C8;margin-bottom:32px;}
.sub-hero .hero-sub{font-size:.55em;font-weight:600;color:#B8C0C8;letter-spacing:0;}
.sub-hero .actions{display:flex;flex-wrap:wrap;gap:12px;}
@media (max-width:720px){ .sub-hero{padding:44px 0 40px;} .sub-hero h1{font-size:2rem;} }
.sec{padding:72px 0;}
.sec.alt{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sec-head{margin-bottom:36px;}
.sec-head .label{color:var(--signal);display:block;margin-bottom:10px;}
.sec-head h2{font-weight:700;font-size:1.75rem;letter-spacing:-.02em;line-height:1.35;margin-bottom:10px;}
.sec-head p{color:var(--slate);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.cards.two{grid-template-columns:repeat(2,1fr);}
@media (max-width:900px){ .cards,.cards.two{grid-template-columns:1fr;} }
.card{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--signal);padding:26px 26px 24px;display:flex;flex-direction:column;gap:10px;transition:border-color .16s,transform .16s;}
.sec.alt .card{background:var(--paper);}
a.card:hover{border-color:var(--ink);transform:translateY(-2px);}
.card.gate{border-top-color:var(--gate);} .card.verify{border-top-color:var(--verify);} .card.halt{border-top-color:var(--halt);}
.card .idx{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);}
.card h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em;line-height:1.4;}
.card p{font-size:.95rem;color:var(--slate);}
.card .more{margin-top:auto;font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.08em;color:var(--signal);padding-top:8px;}
.list{list-style:none;display:grid;gap:12px;max-width:var(--col);}
.list li{position:relative;padding-left:22px;color:var(--ink);}
.list li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;background:var(--signal);transform:rotate(45deg);}
.steps{list-style:none;counter-reset:s;display:grid;gap:14px;max-width:var(--col);}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px 18px;background:var(--white);border:1px solid var(--line);}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--signal);}
.steps b{display:block;margin-bottom:2px;}
.steps span{color:var(--slate);font-size:.95rem;}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);background:var(--white);max-width:var(--content-max);}
.facts > div{padding:20px 22px;border-right:1px solid var(--line);}
.facts > div:last-child{border-right:0;}
.facts dt{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin-bottom:6px;}
.facts dd{font-weight:600;}
@media (max-width:720px){ .facts{grid-template-columns:1fr;} .facts > div{border-right:0;border-bottom:1px solid var(--line);} .facts > div:last-child{border-bottom:0;} }
.tbl{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);font-size:.95rem;}
.tbl th,.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.tbl th{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);background:var(--paper);}
.tbl tr:last-child td{border-bottom:0;}
.tbl-scroll{overflow-x:auto;}
.cta-band{background:var(--ink);color:var(--paper);padding:64px 0;}
.cta-band h2{font-weight:700;font-size:1.75rem;letter-spacing:-.02em;margin-bottom:10px;line-height:1.35;}
.cta-band p{color:#B8C0C8;margin-bottom:26px;}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:12px;}
.note{font-size:.85rem;color:var(--slate);max-width:var(--col);margin-top:20px;}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.chip{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.06em;border:1px solid var(--line);padding:5px 10px;color:var(--slate);background:var(--white);}
.prose{max-width:var(--col);}
.prose h2{font-size:1.2rem;font-weight:700;margin:36px 0 10px;letter-spacing:-.01em;}
.prose p,.prose li{color:var(--ink);margin-bottom:10px;}
.prose ul{padding-left:20px;margin-bottom:10px;}
.prose a{color:var(--signal);text-decoration:underline;text-underline-offset:3px;}
.prose .intro{padding:16px 18px;border-left:3px solid var(--signal);background:var(--white);margin-bottom:8px;}
.page-404{padding:110px 0 120px;text-align:left;}
.page-404 h1{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;margin:10px 0 14px;}

/* ---------- 한 줄 정의 · FAQ · 글 ---------- */
.defn{max-width:var(--col);border-left:3px solid var(--gate);background:var(--white);padding:18px 22px;margin-bottom:28px;}
.defn .label{display:block;color:var(--gate);margin-bottom:6px;}
.defn p{font-weight:600;line-height:1.7;}
.defn-sec{padding:40px 0 0;}
.faq{max-width:var(--col);display:grid;gap:10px;}
.faq details{background:var(--white);border:1px solid var(--line);}
.sec.alt .faq details{background:var(--paper);}
.faq summary{cursor:pointer;padding:16px 20px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--signal);}
.faq details[open] summary::after{content:"−";}
.faq summary:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}
.faq details p{padding:0 20px 18px;color:var(--slate);}
.faq details a,.prose a{color:var(--signal);border-bottom:1px solid var(--line);}
.article p{margin-bottom:14px;}
.article .tbl-scroll{margin:14px 0 8px;}
.article .steps{margin:14px 0;}
.draft-note{max-width:var(--col);border:1px solid var(--gate);background:#FBF5E8;color:var(--ink);padding:12px 16px;margin-bottom:24px;font-size:.9rem;}
.contact .list li{color:var(--ink);}
.contact .list li::before{background:var(--signal);}
.contact .list a{color:var(--signal);border-bottom:1px solid var(--line);}
.contact .list a:hover{border-color:var(--signal);}
.contact .note{color:var(--slate);}

/* ---------- Insights 글 표준 구성 ---------- */
.sub-hero .byline{color:#B8C0C8;font-size:.92rem;}
.sub-hero .byline a{color:var(--paper);border-bottom:1px solid var(--gate);}
.keypoints{max-width:var(--col);background:var(--white);border:1px solid var(--line);border-top:3px solid var(--signal);padding:18px 22px;margin-bottom:28px;}
.keypoints .label{display:block;color:var(--signal);margin-bottom:8px;}
.keypoints ul{list-style:none;display:grid;gap:8px;}
.keypoints li{position:relative;padding-left:20px;}
.keypoints li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;background:var(--signal);transform:rotate(45deg);}
.toc{max-width:var(--col);margin-bottom:36px;font-size:.95rem;}
.toc .label{display:block;color:var(--slate);margin-bottom:8px;}
.toc ol{list-style:decimal-leading-zero;padding-left:2.2em;display:grid;gap:4px;color:var(--slate);}
.toc a{color:var(--ink);border-bottom:1px solid var(--line);}
.toc a:hover{border-color:var(--signal);}
.prose h2{scroll-margin-top:84px;}
.prose .tbl{font-size:.9rem;}
.sources,.related,.faq-wrap{max-width:var(--col);margin-top:48px;}
.sources h2,.related h2,.faq-wrap h2{font-size:1.2rem;font-weight:700;letter-spacing:-.01em;margin-bottom:12px;}
.sources ol{padding-left:1.4em;display:grid;gap:6px;color:var(--slate);font-size:.92rem;}
.sources a{color:var(--signal);border-bottom:1px solid var(--line);}
.related .list a{color:var(--signal);border-bottom:1px solid var(--line);}
.author-box{max-width:var(--col);margin-top:48px;padding:20px 22px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gate);display:grid;gap:4px;}
.author-box .mono{font-size:.78rem;color:var(--slate);}
.author-box p{color:var(--slate);font-size:.95rem;margin-top:6px;}
.author-box a{color:var(--signal);border-bottom:1px solid var(--line);}

/* ---------- 외부 블로그 링크 목록 ---------- */
.pl-h{font-size:1.05rem;font-weight:700;margin:28px 0 12px;display:flex;align-items:baseline;gap:10px;}
.pl-h .mono{font-size:.75rem;color:var(--slate);font-weight:500;}
.postlist{list-style:none;max-width:var(--col);border-top:2px solid var(--ink);background:var(--white);}
.postlist li{border-bottom:1px solid var(--line);}
.postlist a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:14px 16px;}
.postlist a:hover .pl-title{color:var(--signal);}
.postlist a:focus-visible{outline:2px solid var(--signal);outline-offset:-2px;}
.pl-title{font-weight:600;line-height:1.5;}
.pl-meta{font-size:.78rem;color:var(--slate);white-space:nowrap;}
@media (max-width:720px){ .postlist a{flex-direction:column;gap:4px;} }

/* ---------- Business Credential 다운로드 ---------- */
.doc-card{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;max-width:var(--content-max);background:var(--white);border:1px solid var(--line);border-left:4px solid var(--signal);padding:28px 30px;}
.sec.alt .doc-card{background:var(--paper);}
.doc-card .label{display:block;color:var(--signal);margin-bottom:8px;}
.doc-card h2,.doc-card h3{font-weight:700;font-size:1.35rem;letter-spacing:-.02em;line-height:1.4;margin-bottom:8px;}
.doc-card p{color:var(--slate);}
.doc-card .meta{margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--slate);}
@media (max-width:720px){ .doc-card{grid-template-columns:1fr;padding:22px;} }
.cred-dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;overflow:auto;}
.cred-dialog:not([open]){display:none;}
.cred-dialog::backdrop{background:rgba(12,17,22,.66);}
.cred-dialog[open]{display:flex;align-items:center;justify-content:center;padding:16px;}
.cred-panel{position:relative;width:100%;max-width:480px;background:var(--white);border-top:4px solid var(--gate);padding:30px 28px 26px;color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35);}
.cred-eyebrow{color:var(--signal);display:block;margin-bottom:8px;}
.cred-panel h2{font-weight:800;font-size:1.5rem;letter-spacing:-.02em;margin-bottom:8px;}
.cred-desc{color:var(--slate);font-size:.95rem;margin-bottom:20px;}
.cred-close{position:absolute;top:10px;right:12px;width:40px;height:40px;border:0;background:transparent;font-size:1.8rem;line-height:1;color:var(--slate);cursor:pointer;}
.cred-close:hover{color:var(--ink);}
.cred-close:focus-visible,.cred-submit:focus-visible,.cred-field input:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}
.cred-field{display:grid;gap:6px;margin-bottom:14px;}
.cred-field label{font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.08em;color:var(--slate);}
.cred-field .req{color:var(--halt);margin-left:3px;}
.cred-field input{font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--ink);}
.cred-field input[aria-invalid="true"]{border-color:var(--halt);}
.cred-consent{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--slate);margin:6px 0 16px;}
.cred-consent input{margin-top:.3em;flex:none;}
.cred-consent a{color:var(--signal);border-bottom:1px solid var(--line);}
.cred-dialog .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.cred-submit{width:100%;font:inherit;font-weight:700;padding:14px;border:0;background:var(--signal);color:var(--white);border-radius:var(--r);cursor:pointer;}
.cred-submit:hover{background:#17439a;}
.cred-submit:disabled{opacity:.6;cursor:progress;}
.cred-status{min-height:1.4em;margin-top:12px;font-size:.9rem;color:var(--slate);}
.cred-status.ok{color:var(--verify);}
.cred-status.err{color:var(--halt);}
.cred-status a{text-decoration:underline;}
body:has(.cred-dialog[open]){overflow:hidden;}
.prose code,.tbl code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.88em;background:var(--paper);border:1px solid var(--line);padding:1px 5px;border-radius:2px;word-break:break-all;}
.prose blockquote{max-width:var(--col);border-left:3px solid var(--gate);background:var(--white);padding:14px 18px;margin:18px 0;color:var(--slate);font-size:.95rem;}
.prose blockquote p{margin:0;}
