/* BRIDGELAB 홈페이지 v3 · 디자인 토큰 (색·글꼴 수정은 이 :root 블록에서) */
:root{
  /* 색 */
  --c-blue:#0B57D0;          /* 링크·주 버튼·포커스 */
  --c-blue-hover:#0A4CB8;
  --c-navy:#0A1E5E;          /* 제목·헤더 텍스트·강조 괘선 */
  --c-ink:#1A1F2E;
  --c-ink-muted:#4E5666;
  --c-ink-subtle:#8A90A0;
  --c-canvas:#FFFFFF;
  --c-surface-1:#F3F6FB;
  --c-surface-2:#E1E7F0;
  --c-hairline:#D8DEE9;
  --c-line-strong:#A9B3C7;   /* 칩·도식 상자 테두리 */
  --c-teal:#0E7C9B;          /* 라벨·보조 강조·상태 표시 (13px 이상 600 굵기에서만 글자색으로) */
  --c-green:#5BC879;
  --c-inverse-ink-muted:#B9C4E0;

  /* 글꼴 */
  --font:"Pretendard Variable", Pretendard, "Malgun Gothic", "Helvetica Neue", Arial, sans-serif;

  /* 타입 스케일 */
  --fs-body:16px;
  --fs-body-sm:14px;
  --fs-caption:13px;

  /* 간격 */
  --sp-section:clamp(26px,4.4vw,44px);

  /* 레이아웃 */
  --container:1200px;
  --gutter:clamp(16px,3vw,32px);
  --header-h:64px;

  /* 괘선 */
  --rule:1px solid var(--c-hairline);
  --rule-strong:1px solid var(--c-navy);
  --rule-heavy:3px solid var(--c-navy);

  --t-fast:120ms ease;
}
@media (max-width:860px){ :root{ --header-h:56px; } html.no-js{ --header-h:104px; } }

/* ===== 기본 ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote,fieldset{margin:0}
ul,ol{padding:0}
fieldset{padding:0;border:0;min-width:0}
img{max-width:100%;height:auto}
body{font-family:var(--font);font-size:var(--fs-body);color:var(--c-ink);background:var(--c-canvas);line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
@media (min-width:900px){body{font-size:17px}}
a{color:inherit;text-decoration:none}
a:hover{color:var(--c-blue)}
:focus-visible{outline:2px solid var(--c-blue);outline-offset:2px}
section[id]{scroll-margin-top:var(--header-h)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
strong,b,dt,th{font-weight:600}
h1,h2,h3{color:var(--c-navy);font-weight:600}
h1{font-size:clamp(24px,6.2vw,36px);line-height:1.3;letter-spacing:-.01em}
h2{font-size:clamp(23px,2.4vw,31px);line-height:1.35;letter-spacing:-.01em}
h3{font-size:19px;line-height:1.4}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:8px;top:-80px;z-index:100;background:var(--c-navy);color:var(--c-canvas);padding:12px 16px;font-size:15px;font-weight:600}
.skip-link:focus,.skip-link:focus-visible{top:8px;color:var(--c-canvas)}
main:focus{outline:0}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.label{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--c-teal);line-height:1.4}
.label--muted{color:var(--c-ink-muted)}
.small{font-size:14px;line-height:1.65;color:var(--c-ink-muted)}
.lead{font-size:clamp(16px,1.3vw,18px);line-height:1.7;color:var(--c-ink-muted)}
.ext{white-space:nowrap}

/* ===== 버튼·칩 ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;font-size:15px;font-weight:600;line-height:1.3;text-align:center;border:1px solid var(--c-blue);background:var(--c-blue);color:var(--c-canvas);transition:background var(--t-fast),color var(--t-fast)}
.btn:hover{background:var(--c-blue-hover);border-color:var(--c-blue-hover);color:var(--c-canvas)}
.btn--ghost{background:var(--c-canvas);color:var(--c-blue)}
.btn--ghost:hover{background:var(--c-blue);border-color:var(--c-blue);color:var(--c-canvas)}
.btn--sm{min-height:40px;padding:0 16px;font-size:14px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-block;border:1px solid var(--c-line-strong);padding:1px 8px;font-size:13px;line-height:1.55;color:var(--c-ink-muted);background:transparent;font-weight:500}
.chip--teal{border-color:var(--c-teal);color:var(--c-teal);font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.tlink{color:var(--c-blue);font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.tlink:hover{color:var(--c-blue-hover)}

/* ===== 헤더 ===== */
.site-header{position:sticky;top:0;z-index:20;height:var(--header-h);background:var(--c-canvas);border-bottom:var(--rule)}
.site-header__in{height:100%;display:flex;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;flex:none;color:var(--c-navy)}
.brand:hover{color:var(--c-navy)}
.brand img{display:block;height:28px;width:auto}
.brand__word{font-size:17px;font-weight:700;letter-spacing:.08em;line-height:1}
.site-nav{margin-left:auto;min-width:0}
.site-nav ul{list-style:none;display:flex;align-items:center;gap:26px}
.site-nav a:not(.btn){display:inline-block;padding:6px 0;font-size:15px;color:var(--c-ink)}
.site-nav a:not(.btn):hover{color:var(--c-blue);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.site-nav a[aria-current]:not(.btn){color:var(--c-blue);font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.nav-toggle{display:none;min-width:64px;min-height:44px;padding:0 14px;font:inherit;font-size:15px;font-weight:600;color:var(--c-navy);background:var(--c-canvas);border:1px solid var(--c-navy);cursor:pointer;margin-left:auto}
@media (max-width:860px){
  .site-header{height:auto;min-height:var(--header-h)}
  .site-header__in{flex-wrap:wrap;gap:0 12px;height:auto;min-height:var(--header-h)}
  .site-nav{order:3;flex:0 0 100%;margin-left:0}
  html.no-js .site-header__in{align-content:center}
  html.no-js .site-nav{border-top:var(--rule)}
  html.no-js .site-nav ul{overflow-x:auto;gap:22px;white-space:nowrap;padding:2px 0}
  html.no-js .site-nav a:not(.btn){padding:10px 0}
  html.no-js .site-nav .btn{min-height:40px;padding:0 16px;font-size:14px}
  html.js .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  html.js .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--c-canvas);border-bottom:var(--rule);margin:0;padding:0}
  html.js .site-nav.is-open{display:block}
  html.js .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  html.js .site-nav li{border-top:var(--rule)}
  html.js .site-nav a:not(.btn){display:flex;align-items:center;min-height:48px;padding:0 var(--gutter);font-size:16px}
  html.js .site-nav li:last-child{padding:12px var(--gutter) 16px}
  html.js .site-nav li:last-child .btn{width:100%}
}

/* ===== 섹션 공통 ===== */
.sec{padding:var(--sp-section) 0;border-top:var(--rule)}
.sec > .container > h2{margin-bottom:28px}
.sec__lead{max-width:44em;margin:-12px 0 28px}
.subh{margin:44px 0 16px}

/* ===== 첫 화면 ===== */
.hero{padding:clamp(28px,4vw,48px) 0 clamp(28px,3.4vw,44px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:48px;align-items:start}
.hero h1{margin:10px 0 18px}
@media (min-width:901px){.hero h1{font-size:clamp(29px,3.2vw,38px)}}
.hero__text{max-width:34em;color:var(--c-ink-muted)}
.hero .btns{margin:26px 0 30px}
.core3{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--rule-strong)}
.core3 li{padding:14px 16px 0;border-left:var(--rule)}
.core3 li:first-child{border-left:0;padding-left:0}
.core3 strong{display:block;color:var(--c-navy);font-size:15.5px;line-height:1.4;margin-bottom:4px}
.core3 span{display:block;font-size:14px;line-height:1.6;color:var(--c-ink-muted)}

.dg{--dg-gap:28px;padding-top:6px}
.dg__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr) minmax(0,1fr);column-gap:var(--dg-gap);align-items:stretch}
.dg__col{display:flex;flex-direction:column;gap:10px}
.dg__label{font-size:13px;font-weight:600;color:var(--c-teal);letter-spacing:.04em;margin-bottom:2px;line-height:1.4}
.dg__list{list-style:none;display:flex;flex-direction:column;gap:10px;flex:1 1 0}
.dg__item{position:relative;flex:1 1 0;border:1px solid var(--c-line-strong);padding:10px 12px;background:var(--c-canvas);font-size:14px;line-height:1.5}
.dg__item b{display:block;font-size:12.5px;color:var(--c-ink-muted);margin-bottom:2px;font-weight:600}
.dg__item span{display:block;color:var(--c-ink)}
.dg__item--q::after,.dg__item--r::before{content:"";position:absolute;top:50%;width:var(--dg-gap);height:1px;background:var(--c-navy)}
.dg__item--q::after{left:100%}
.dg__item--r::before{right:100%}
.dg__item i{position:absolute;top:50%;width:5px;height:5px;margin-top:-2px;background:var(--c-navy)}
.dg__item--q i{left:calc(100% + var(--dg-gap) - 5px)}
.dg__item--r i{right:calc(100% + var(--dg-gap) - 5px)}
.dg__core{flex:1 1 0;background:var(--c-navy);color:var(--c-canvas);padding:16px 14px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.dg__core strong{font-size:16px;line-height:1.45;color:var(--c-canvas)}
.dg__core ul{list-style:none;display:flex;flex-direction:column;gap:5px}
.dg__core li{font-size:12.5px;line-height:1.4;border:1px solid var(--c-inverse-ink-muted);padding:2px 8px;color:var(--c-canvas)}
.dg figcaption{margin-top:14px;font-size:13px;line-height:1.6;color:var(--c-ink-muted);border-top:var(--rule);padding-top:10px}

/* ===== 세 고객의 현안 ===== */
.cust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:36px;row-gap:0}
.cust__item{display:flex;flex-direction:column;border-top:var(--rule-heavy);padding-top:18px}
.cust__item h3{font-size:15px;letter-spacing:.03em;color:var(--c-teal)}
.cust__q{font-size:20px;font-weight:600;line-height:1.5;color:var(--c-navy);margin:8px 0 12px}
.cust__d{font-size:15px;line-height:1.7;color:var(--c-ink-muted)}
.cust__list{list-style:none;margin:20px 0 0;border-bottom:var(--rule)}
.cust__list li{padding:9px 0;border-top:var(--rule);font-size:15px;line-height:1.5}
.cust__out{margin:20px 0 14px}
.cust__out strong{display:block;color:var(--c-navy);font-size:16px;line-height:1.5;margin-top:2px}
.cust__link{align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;min-height:44px}
@supports (grid-template-rows:subgrid){
  @media (min-width:901px){
    .cust__item{display:grid;grid-row:span 6;grid-template-rows:subgrid;align-content:start}
    .cust__list{align-self:start}
  }
}
.cust__note{margin-top:32px;padding-top:14px;border-top:var(--rule);font-size:14px;color:var(--c-ink-muted);max-width:52em}

/* ===== 데이터·분석 기반 ===== */
.data__top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:56px;align-items:start}
.data__top h2{margin-bottom:12px!important}
.data__sub{font-size:19px;font-weight:600;color:var(--c-ink);line-height:1.55;margin-bottom:14px}
.data__top p:not(.data__sub){color:var(--c-ink-muted)}
.data__stats{display:flex;flex-direction:column;gap:24px}
.stat{border-left:4px solid var(--c-navy);padding:2px 0 2px 20px}
.stat__num{display:block;font-size:clamp(34px,3.6vw,46px);font-weight:300;line-height:1.15;color:var(--c-navy);letter-spacing:-.01em;margin:2px 0 6px}
.stat__note{font-size:13.5px;line-height:1.6;color:var(--c-ink-muted)}
.tbl{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6;margin-top:4px}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:13px 20px 13px 0;border-bottom:var(--rule)}
.tbl thead th{font-size:13px;color:var(--c-ink-muted);border-bottom:var(--rule-strong);padding-top:8px;padding-bottom:8px}
.tbl tbody th{color:var(--c-navy)}
.tbl .chip{margin:0 6px 4px 0}
.tbl--res td:nth-child(2){max-width:30em}
.tbl--res .chip{white-space:nowrap}
.tbl--res td:last-child a{display:block}
.tbl--res td:last-child a+a{margin:4px 0 0}
.stages{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:st;border-top:var(--rule-strong);border-bottom:var(--rule)}
.stages li{counter-increment:st;padding:14px 16px;border-left:var(--rule);font-weight:600;color:var(--c-navy);font-size:17px}
.stages li:first-child{border-left:0;padding-left:0}
.stages li::before{content:"단계 " counter(st);display:block;font-size:13px;color:var(--c-teal);margin-bottom:2px}
.data__stagenote{margin-top:14px;max-width:52em;color:var(--c-ink-muted);font-size:15px}
.blis{margin-top:44px;border-left:4px solid var(--c-teal);padding:2px 0 2px 22px;max-width:52em}
.blis h3{font-size:19px;margin-bottom:8px}
.blis p+p{margin-top:8px}

/* ===== 진행 방식 ===== */
.proc{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:var(--rule-strong);border-bottom:var(--rule)}
.proc li{padding:20px 22px 24px;border-left:var(--rule)}
.proc li:first-child{border-left:0;padding-left:0}
.proc__n{display:block;font-size:42px;font-weight:300;line-height:1;color:var(--c-teal);margin-bottom:12px}
.proc h3{font-size:18px;margin-bottom:6px}
.proc p{font-size:15px;line-height:1.7;color:var(--c-ink-muted)}
.proc__note{margin-top:14px;font-size:14px;color:var(--c-ink-muted)}

/* ===== 결과물 미리보기 ===== */
.docs{list-style:none}
.doc{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);column-gap:40px;padding:34px 0;border-top:var(--rule);align-items:start}
.doc:first-child{border-top:var(--rule-strong);padding-top:28px}
.doc__fig figcaption{margin-top:10px;font-size:13px;line-height:1.6;color:var(--c-ink-muted)}
.doc__frame{position:relative;display:block;max-height:520px;overflow:hidden;border:1px solid var(--c-ink-subtle);background:var(--c-canvas);cursor:zoom-in}
.doc__frame img{display:block;width:100%;height:auto}
.doc__open{position:absolute;right:0;bottom:0;background:var(--c-navy);color:var(--c-canvas);font-size:13px;font-weight:600;padding:3px 9px;line-height:1.5}
.doc__body .chip{margin-bottom:10px}
.doc__body h3{font-size:22px;margin-bottom:8px}
.doc__body p{color:var(--c-ink-muted);font-size:16px}
.doc__body .label{margin:20px 0 4px}
.doc__body dl div{padding:9px 0;border-top:var(--rule);font-size:14.5px;line-height:1.6}
.doc__body dl div:last-child{border-bottom:var(--rule)}
.doc__body dt{display:inline;color:var(--c-navy)}
.doc__body dt::after{content:" — ";font-weight:400;color:var(--c-ink-muted)}
.doc__body dd{display:inline;color:var(--c-ink-muted)}
.more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.more div{padding:12px 0;border-top:var(--rule);font-size:14.5px;line-height:1.65}
.more dt{color:var(--c-navy);margin-bottom:2px}
.more dd{color:var(--c-ink-muted)}
.more div:nth-child(-n+2){border-top:var(--rule-strong)}
.docs__after{margin-top:32px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center}

/* ===== 수행 사례 ===== */
.cases{list-style:none}
.cases__head{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:var(--rule-strong);border-bottom:var(--rule);font-size:13px;font-weight:600;color:var(--c-ink-muted)}
.cases__head span{padding:8px 18px}
.cases__head span:first-child{padding-left:0}
.case{padding:22px 0 0}
.case__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px}
.case__meta h3{font-size:19px}
.case dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:var(--rule-strong)}
.case dl > div{padding:2px 18px 22px;border-left:var(--rule);font-size:15px;line-height:1.7}
.case dl > div:first-child{border-left:0;padding-left:0}
.case dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.case dd{color:var(--c-ink)}

/* ===== 소개 요약 ===== */
.sum{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:64px;align-items:start}
.sum h2{margin-bottom:14px!important}
.sum p{color:var(--c-ink-muted)}
.sum .btns{margin-top:22px}
.exp{list-style:none;border-top:var(--rule-strong)}
.exp li{padding:14px 0;border-bottom:var(--rule);font-size:15.5px;line-height:1.7;color:var(--c-ink-muted)}
.exp strong{display:block;color:var(--c-navy);font-size:17px;margin-bottom:2px}

/* ===== 상담 ===== */
.ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:start}
.ct h2{margin-bottom:14px!important}
.ct__intro{color:var(--c-ink-muted);max-width:34em}
.ct-type{position:relative;margin-top:24px}
.ct-type legend{font-size:13px;font-weight:600;color:var(--c-teal);margin-bottom:8px;padding:0;letter-spacing:.04em}
.ct-r{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.ct-l{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;margin:0 8px 8px 0;border:1px solid var(--c-line-strong);font-size:15px;font-weight:600;color:var(--c-ink);cursor:pointer;background:var(--c-canvas)}
.ct-l:hover{border-color:var(--c-navy)}
.ct-r:checked + .ct-l{background:var(--c-navy);border-color:var(--c-navy);color:var(--c-canvas)}
.ct-r:focus-visible + .ct-l{outline:2px solid var(--c-blue);outline-offset:2px}
.ct-panels{margin-top:12px;border-top:var(--rule-strong);padding-top:16px}
.ct-p{display:none}
#ct-startup:checked ~ .ct-panels .ct-p-startup,
#ct-acvc:checked ~ .ct-panels .ct-p-acvc,
#ct-research:checked ~ .ct-panels .ct-p-research,
#ct-etc:checked ~ .ct-panels .ct-p-etc{display:block}
.ct-p ul{list-style:none;margin:4px 0 18px}
.ct-p li{padding:8px 0;border-top:var(--rule);font-size:15px;line-height:1.6;color:var(--c-ink)}
.ct-p li:last-child{border-bottom:var(--rule)}
.ct__right h3{font-size:19px;margin-bottom:10px}
.ct__right ol{margin:0 0 22px;padding-left:22px;font-size:16px;line-height:1.8}
.ct__right li::marker{color:var(--c-teal);font-weight:600}
.ct__right .btns{margin-bottom:24px}
.kv{border-top:var(--rule-strong);margin-bottom:14px}
.kv div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:var(--rule)}
.kv dt{font-size:14px;color:var(--c-ink-muted);padding-top:2px}
.kv dd{font-size:16px;line-height:1.6}
.kv a{color:var(--c-blue);text-decoration:underline;text-underline-offset:4px}

/* ===== 상세 페이지 ===== */
.crumb{padding:16px 0 0;font-size:14px}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 0;color:var(--c-ink-muted)}
.crumb li+li::before{content:"\203A";margin:0 8px;color:var(--c-ink-subtle)}
.crumb a:hover{text-decoration:underline}
.crumb [aria-current]{color:var(--c-navy);font-weight:600}
.phead{margin-top:18px;border-top:var(--rule-heavy);padding:22px 0 clamp(32px,4vw,48px)}
.phead h1{margin:6px 0 8px;font-size:clamp(28px,5vw,40px)}
.phead__p{font-size:clamp(18px,1.8vw,21px);line-height:1.55;color:var(--c-ink);max-width:34em}
.phead__nav{list-style:none;display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:18px;font-size:14px}
.phead__nav a{display:inline-flex;align-items:center;min-height:36px;color:var(--c-blue);text-decoration:underline;text-underline-offset:4px}
.qlist{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 40px}
.qlist li{border-left:3px solid var(--c-teal);padding:2px 0 2px 18px;font-size:17px;line-height:1.7;color:var(--c-ink)}
.defs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.defs > div{padding:20px 32px 24px 0;border-top:var(--rule)}
.defs > div:nth-child(even){padding:20px 0 24px 32px;border-left:var(--rule)}
.defs > div:nth-child(-n+2){border-top:var(--rule-strong)}
.defs h3,.rowlist h3{margin-bottom:6px;font-size:19px}
.defs p,.rowlist p{font-size:15.5px;line-height:1.75;color:var(--c-ink-muted)}
.defs--4{border-bottom:var(--rule)}
.note{margin-top:20px;border-left:3px solid var(--c-teal);padding:2px 0 2px 16px;font-size:14.5px;line-height:1.7;color:var(--c-ink-muted);max-width:56em}
.steps5{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:s5;border-top:var(--rule-strong);border-bottom:var(--rule)}
.steps5 li{counter-increment:s5;padding:16px 16px 18px;border-left:var(--rule);font-weight:600;color:var(--c-navy);font-size:16px;line-height:1.5}
.steps5 li:first-child{border-left:0;padding-left:0}
.steps5 li::before{content:counter(s5);display:block;font-size:28px;font-weight:300;color:var(--c-teal);line-height:1.1;margin-bottom:6px}
.related{margin-top:36px;padding:14px 0;border-top:var(--rule);border-bottom:var(--rule);font-size:15px;color:var(--c-ink-muted)}
.related strong{color:var(--c-navy);margin-right:8px}
.others{padding:14px 0;font-size:14.5px;color:var(--c-ink-muted)}
.others a{color:var(--c-blue);text-decoration:underline;text-underline-offset:4px;margin-left:14px;display:inline-flex;align-items:center;min-height:36px}
.band{background:var(--c-surface-1);border-top:var(--rule-strong);padding:clamp(36px,4.5vw,56px) 0}
.band h2{margin-bottom:10px}
.band p{max-width:40em;color:var(--c-ink-muted)}
.band .btns{margin:22px 0 14px}
.band__line{font-size:14.5px;color:var(--c-ink-muted)}
.band__line a{color:var(--c-blue);text-decoration:underline;text-underline-offset:4px}
.contrast{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
.contrast > div{border-top:var(--rule-strong);padding-top:14px}
.contrast h3{font-size:18px;margin-bottom:8px}
.contrast ul{list-style:none}
.contrast li{padding:10px 0;border-top:var(--rule);font-size:15.5px;line-height:1.65}
.contrast li b{display:block;color:var(--c-navy)}
.contrast li span{color:var(--c-ink-muted);font-size:14.5px}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
.cols2 > div{padding:6px 0 0 18px;border-left:3px solid var(--c-navy)}
.cols2 h3{font-size:19px;margin-bottom:6px}
.cols2 p{font-size:16px;color:var(--c-ink-muted)}
.cols3{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--rule-strong);border-bottom:var(--rule)}
.cols3 li{padding:18px 24px 20px;border-left:var(--rule)}
.cols3 li:first-child{border-left:0;padding-left:0}
.cols3 h3{font-size:19px;margin-bottom:4px}
.cols3 p{font-size:15.5px;color:var(--c-ink-muted)}
.rowlist{list-style:none;border-top:var(--rule-strong)}
.rowlist > li{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);column-gap:40px;padding:20px 0;border-bottom:var(--rule)}
.rowlist h3{margin-bottom:0}
.rowlist .chip{display:inline-block;margin-top:8px}
.steps4{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:s4;border-top:var(--rule-strong);border-bottom:var(--rule)}
.steps4 li{counter-increment:s4;padding:16px 20px 20px;border-left:var(--rule)}
.steps4 li:first-child{border-left:0;padding-left:0}
.steps4 li::before{content:counter(s4);display:block;font-size:30px;font-weight:300;line-height:1.1;color:var(--c-teal);margin-bottom:6px}
.steps4 b{display:block;color:var(--c-navy);font-size:17px;margin-bottom:4px}
.steps4 span{font-size:15px;line-height:1.7;color:var(--c-ink-muted)}
.chiprow{display:flex;align-items:center;gap:12px;margin:-12px 0 20px}

/* ===== about ===== */
.about-head{margin-top:18px;border-top:var(--rule-heavy);padding:22px 0 clamp(28px,4vw,44px)}
.about-head h1,.about-head p:not(.label){max-width:46em}
.about-head h1{margin:6px 0 14px;font-size:clamp(25px,5vw,38px)}
.about-head p{color:var(--c-ink-muted)}
.facts{list-style:none;border-top:var(--rule-strong)}
.facts li{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);column-gap:40px;padding:14px 0;border-bottom:var(--rule);font-size:16px;line-height:1.7}
.facts strong{color:var(--c-navy)}
.facts span{color:var(--c-ink-muted)}
.prof{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:56px;align-items:start}
.prof ol,.prof ul{list-style:none;border-top:var(--rule-strong)}
.prof li{padding:12px 0;border-bottom:var(--rule);font-size:16px;line-height:1.65;color:var(--c-ink-muted)}
.prof li strong{color:var(--c-navy)}
.prof h3{margin:0 0 12px;font-size:19px}
.prof ol{counter-reset:pf}
.prof ol li{counter-increment:pf;display:grid;grid-template-columns:28px minmax(0,1fr)}
.prof ol li::before{content:counter(pf);color:var(--c-teal);font-weight:600}
.exp-rows{list-style:none;border-top:var(--rule-strong)}
.exp-rows li{display:grid;grid-template-columns:minmax(0,1fr) 110px 150px;column-gap:24px;align-items:start;padding:13px 0;border-bottom:var(--rule);font-size:15.5px;line-height:1.65}
.exp-rows--prev li{grid-template-columns:minmax(0,1fr) minmax(0,260px)}
.exp-rows .t{color:var(--c-ink-muted)}
.exp-rows .chip{justify-self:start}
.prev-note{margin:0 0 10px;font-size:14.5px;color:var(--c-ink);font-weight:600}
.addr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:start}

/* ===== 푸터 ===== */
.site-footer{background:var(--c-navy);color:var(--c-inverse-ink-muted);padding:36px 0 28px;font-size:14px;line-height:1.7}
.site-footer a{color:var(--c-canvas)}
.site-footer a:hover{color:var(--c-canvas);text-decoration:underline}
.site-footer :focus-visible{outline-color:var(--c-canvas)}
.site-footer__links{list-style:none;display:flex;flex-wrap:wrap;align-items:center;margin:8px 0 10px}
.site-footer__links li+li::before{content:"\00b7";margin:0 10px;color:var(--c-inverse-ink-muted)}
.site-footer__links a{display:inline-flex;align-items:center;min-height:36px;font-size:14.5px}
.site-footer__copy{font-size:13px;margin-top:6px}

/* ===== 반응형: 태블릿 ===== */
@media (max-width:1100px){
  .case dl > div,.cases__head span{padding-left:12px;padding-right:12px}
}
@media (max-width:960px){
  .stat__num{font-size:34px}
}
/* ===== 반응형: 단일 열 ===== */
@media (max-width:900px){
  .hero__grid{display:block}
  .hero .dg{margin-top:32px}
  .cust{display:block}
  .cust__item{margin-bottom:36px}
  .cust__item:last-child{margin-bottom:0}
  .data__top{display:block}
  .data__stats{margin-top:28px}
  .proc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proc li{padding-left:20px;border-top:var(--rule)}
  .proc li:nth-child(odd){border-left:0;padding-left:0}
  .proc li:nth-child(-n+2){border-top:0}
  .doc{display:block}
  .doc__body{margin-top:18px}
  .more{display:block}
  .more div:nth-child(2){border-top:var(--rule)}
  .sum{display:block}
  .sum .exp{margin-top:28px}
  .ct{display:block}
  .ct__right{margin-top:36px;padding-top:28px;border-top:var(--rule-strong)}
  .qlist{grid-template-columns:minmax(0,1fr)}
  .cols3{grid-template-columns:minmax(0,1fr)}
  .cols3 li{border-left:0;padding-left:0;border-top:var(--rule)}
  .cols3 li:first-child{border-top:0}
  .steps4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps4 li{border-top:var(--rule)}
  .steps4 li:nth-child(odd){border-left:0;padding-left:0}
  .steps4 li:nth-child(-n+2){border-top:0}
  .steps5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps5 li{border-top:var(--rule)}
  .steps5 li:nth-child(3n+1){border-left:0;padding-left:0}
  .steps5 li:nth-child(-n+3){border-top:0}
  .prof{display:block}
  .prof > div + div{margin-top:36px}
  .addr{display:block}
  .addr .btns{margin-top:22px}
  .contrast{display:block}
  .contrast > div + div{margin-top:32px}
  .cols2{display:block}
  .cols2 > div + div{margin-top:24px}
  .rowlist > li{display:block}
  .rowlist > li > div:first-child{margin-bottom:6px}
  .facts li{display:block}
  .exp-rows li,.exp-rows--prev li{display:block}
  .exp-rows .t,.exp-rows .chip{margin-top:4px;display:inline-block;margin-right:8px}
  /* 수행 사례 */
  .cases__head{display:none}
  .case dl{display:block}
  .case dl > div{border-left:0;padding:12px 0;border-top:var(--rule)}
  .case dl > div:first-child{border-top:0}
  .case dl > div:last-child{padding-bottom:20px}
  .case dt{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;display:block;font-size:13px;color:var(--c-teal);margin-bottom:2px}
}
@media (max-width:760px){
  /* 표: 셀 블록 쌓기(data-label) */
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .tbl,.tbl tbody,.tbl tr,.tbl td,.tbl th{display:block;width:100%}
  .tbl tr{padding:14px 0;border-bottom:var(--rule)}
  .tbl tbody tr:first-child{border-top:var(--rule-strong)}
  .tbl th,.tbl td{border:0;padding:5px 0}
  .tbl td::before,.tbl tbody th[data-label]::before{content:attr(data-label);display:block;font-size:13px;font-weight:600;color:var(--c-teal);margin-bottom:1px}
  .tbl tbody th.k{font-size:17px;padding-top:0}
  .tbl tbody th.k::before{display:none}
  .tbl--res td:nth-child(2){max-width:none}
  .stages{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stages li{border-top:var(--rule);padding:12px 14px}
  .stages li:nth-child(odd){border-left:0;padding-left:0}
  .stages li:nth-child(-n+2){border-top:0}
}
@media (max-width:640px){
  .core3{grid-template-columns:minmax(0,1fr)}
  .core3 li,.core3 li:first-child{border-left:0;padding:12px 0 0;border-top:var(--rule);margin-top:12px}
  .core3 li:first-child{border-top:0;margin-top:0;padding-top:14px}
  .proc{grid-template-columns:minmax(0,1fr)}
  .proc li,.proc li:nth-child(odd){padding:18px 0 20px;border-left:0}
  .proc li:nth-child(-n+2){border-top:var(--rule)}
  .proc li:first-child{border-top:0}
  .steps4{grid-template-columns:minmax(0,1fr)}
  .steps4 li,.steps4 li:nth-child(odd){border-left:0;padding-left:0;border-top:var(--rule)}
  .steps4 li:first-child{border-top:0}
  .steps5{grid-template-columns:minmax(0,1fr)}
  .steps5 li,.steps5 li:nth-child(3n+1){border-left:0;padding-left:0;border-top:var(--rule);display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;padding-top:12px;padding-bottom:12px}
  .steps5 li:first-child{border-top:0}
  .steps5 li::before{margin:0;font-size:24px}
  .defs{display:block}
  .defs > div,.defs > div:nth-child(even){padding:18px 0 20px;border-left:0;border-top:var(--rule)}
  .defs > div:first-child{border-top:var(--rule-strong)}
  .btns .btn{width:100%}
  .ct-l{flex:1 1 calc(50% - 8px);justify-content:center;margin-right:0}
  .doc__open{font-size:12.5px}
  .kv div{grid-template-columns:60px minmax(0,1fr)}
  .stat{padding-left:16px}
  /* 도식: 문안 아래 세로 배치(질문 3 → 교차 검토 → 결과) */
  .dg__cols{display:flex;flex-direction:column;row-gap:30px}
  .dg__item{flex:none}
  .dg__item--q::after,.dg__item--r::before,.dg__item i{display:none}
  .dg__core{flex:none}
  .dg__col--c{position:relative}
  .dg__col--c::before,.dg__col--c::after{content:"";position:absolute;left:20px;width:1px;height:30px;background:var(--c-navy)}
  .dg__col--c::before{bottom:100%}
  .dg__col--c::after{top:100%}
}
@media (max-width:640px){
  .site-footer__links li+li::before{display:none}
  .site-footer__links li{margin-right:18px}
}
@media (max-width:380px){
  .site-nav .btn{padding:0 12px}
}
@media print{
  .site-header{position:static}
  .skip-link,.nav-toggle{display:none}
  .site-footer{background:none;color:var(--c-ink)}
  .site-footer a,.site-footer__links li+li::before{color:var(--c-ink)}
}

/* =====================================================================
   v3.1 추가 · 섹션별 도식(HTML/CSS) + 이미지 슬롯
   도식은 이미지가 아니라 HTML/CSS이므로 문구는 HTML에서 고칩니다.
   ===================================================================== */

/* ===== 도식 공통 ===== */
.fg{margin:44px 0 0}
.fg--first{margin-top:0}
.fg__title{font-size:13px;font-weight:600;letter-spacing:.04em;line-height:1.4;color:var(--c-teal);margin:0 0 10px}
.fg figcaption{margin-top:14px;padding-top:10px;border-top:var(--rule);font-size:13px;line-height:1.6;color:var(--c-ink-muted)}
.fgwrap{padding-bottom:var(--sp-section)}
.sechead + .fg{margin-top:8px}
.ct .fg{margin-top:26px}

/* ===== 흐름 행: 고객별 가진 것·필요한 것 / 현안›검토›산출물 ===== */
.fl{--fl-gap:34px;--fl-who:140px}
.fl__head,.fl__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--fl-gap)}
.fl--who .fl__head,.fl--who .fl__row{grid-template-columns:var(--fl-who) repeat(3,minmax(0,1fr))}
.fl__head{border-bottom:var(--rule-strong);padding-bottom:6px;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--c-teal);letter-spacing:.04em}
.fl__rows{list-style:none}
.fl__row{align-items:stretch;margin-bottom:12px}
.fl__who{align-self:center;font-size:16px;line-height:1.4;color:var(--c-navy);border-left:3px solid var(--c-navy);padding-left:12px}
.fl__c{position:relative;display:flex;align-items:center;border:1px solid var(--c-line-strong);background:var(--c-canvas);padding:10px 14px;font-size:14.5px;line-height:1.55}
.fl__c:last-child{border-color:var(--c-navy)}
.fl__k{font-size:13px;font-weight:600;color:var(--c-teal)}
@media (min-width:761px){
  .fl__k{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .fl__c:not(:last-child)::before{content:"";position:absolute;left:100%;top:50%;width:var(--fl-gap);border-top:1px solid var(--c-navy)}
  .fl__c:not(:last-child)::after{content:"\203A";position:absolute;left:calc(100% + (var(--fl-gap) - 14px) / 2);top:50%;width:14px;height:22px;margin-top:-11px;background:var(--c-canvas);color:var(--c-navy);font-size:20px;line-height:20px;text-align:center}
}
@media (max-width:900px){ .fl{--fl-gap:28px;--fl-who:112px} }
@media (max-width:760px){
  .fl__head{display:none}
  .fl__row,.fl--who .fl__row{display:block;margin:0;padding:16px 0 6px;border-top:var(--rule)}
  .fl__row:first-child{border-top:var(--rule-strong)}
  .fl__who{display:block;border-left:0;padding:0;margin-bottom:10px;font-size:17px}
  .fl__c{display:block;border:0;background:none;padding:0 0 14px 26px;font-size:15px}
  .fl__c:last-child{border:0}
  .fl__k{display:block;margin-bottom:1px}
  .fl__c::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;background:var(--c-navy)}
  .fl__c:not(:last-child)::after{content:"";position:absolute;left:4px;top:19px;bottom:-6px;width:1px;background:var(--c-navy)}
}

/* ===== 정보원 교차 매트릭스 ===== */
.xm{width:100%;table-layout:fixed;border-collapse:collapse;font-size:15px;line-height:1.5}
.xm th,.xm td{padding:11px 10px;border-bottom:var(--rule);vertical-align:middle}
.xm thead th{padding-top:8px;padding-bottom:8px;border-bottom:var(--rule-strong);font-size:13px;color:var(--c-ink-muted);text-align:center;line-height:1.4}
.xm thead th:first-child,.xm tbody th{text-align:left;width:28%}
.xm thead th:first-child,.xm tbody th{padding-left:0}
.xm tbody th{color:var(--c-navy)}
.xm td{text-align:center;font-size:19px;line-height:1;color:var(--c-navy);border-left:var(--rule)}
.fg__legend{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:12px;font-size:14px;color:var(--c-ink)}
.fg__legend span span{color:var(--c-navy);margin-right:4px}
@media (max-width:640px){
  .xm{font-size:14px}
  .xm thead th{font-size:12.5px;padding-left:4px;padding-right:4px}
  .xm tbody th{width:31%;font-size:14px}
  .xm td{padding-left:4px;padding-right:4px}
}

/* ===== 가로 선 + 사각 노드 띠(rail): 자료 활용 순서·상담 진행·확인 단계 ===== */
.rail{--n:4;list-style:none;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));border-top:1px solid var(--c-navy)}
.rail--3{--n:3}
.rail > li{position:relative;padding:18px 30px 0 0;font-size:15.5px;font-weight:600;line-height:1.5;color:var(--c-navy)}
.rail > li:not(:first-child){padding-left:18px}
.rail > li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--c-navy)}
.rail > li:not(:first-child)::before{left:18px}
.rail--chev > li:not(:last-child)::after{content:"\203A";position:absolute;top:-12px;right:8px;width:14px;height:22px;background:var(--c-canvas);color:var(--c-navy);font-size:20px;line-height:20px;text-align:center;font-weight:400}
.rail__d{display:block;font-weight:400;font-size:14.5px;color:var(--c-ink-muted);margin-top:1px}
.rail a.tlink{font-size:15.5px}
.stl{margin-top:24px}
.stl__l{display:block;margin-bottom:14px;font-size:13px;font-weight:600;color:var(--c-teal)}
@media (max-width:640px){
  .rail{grid-template-columns:minmax(0,1fr);border-top:0}
  .rail > li,.rail > li:not(:first-child){padding:0 0 18px 28px}
  .rail > li:last-child{padding-bottom:0}
  .rail > li::before,.rail > li:not(:first-child)::before{left:0;top:7px}
  .rail > li:not(:last-child)::after,.rail--chev > li:not(:last-child)::after{content:"";position:absolute;left:4px;right:auto;top:19px;bottom:-7px;width:1px;height:auto;background:var(--c-navy);font-size:0}
}

/* ===== 후보표 한 행 ===== */
.row6{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--c-line-strong);border-top:3px solid var(--c-navy)}
.row6 li{padding:14px 14px 16px;border-left:var(--rule);font-size:15px;font-weight:600;line-height:1.45;color:var(--c-navy)}
.row6 li:first-child{border-left:0}
@media (max-width:640px){
  .row6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row6 li{border-top:var(--rule)}
  .row6 li:nth-child(odd){border-left:0}
  .row6 li:nth-child(-n+2){border-top:0}
}

/* ===== 결과물 섹션 머리: 제목·리드 + S3 ===== */
.sechead{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:48px;align-items:start}
.sechead h2{margin-bottom:28px}
@media (max-width:900px){.sechead{display:block}.sechead .slot{display:none}}

/* ===== 진행 방식 띠(.proc): 가로 선 위 노드 / 모바일 세로 선 ===== */
.proc{position:relative}
.proc li{position:relative}
.proc li::before{content:"";position:absolute;top:-5px;left:22px;width:9px;height:9px;background:var(--c-navy)}
.proc li:first-child::before{left:0}
@media (max-width:900px){ .proc li:nth-child(odd)::before{left:0} .proc li:nth-child(even)::before{left:20px} }
@media (max-width:640px){
  .proc li,.proc li:nth-child(odd){padding-left:30px}
  .proc li,.proc li:nth-child(-n+2),.proc li:first-child{border-top:0}
  .proc li::before,.proc li:first-child::before,.proc li:nth-child(odd)::before,.proc li:nth-child(even)::before{left:0;top:36px}
  .proc li:not(:last-child)::after{content:"";position:absolute;left:4px;top:40px;bottom:-36px;width:1px;background:var(--c-navy)}
}

/* ===== 수행 사례 머리 띠 ===== */
.cases__head span{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--c-navy)}
.cases__head span::before{content:"";flex:none;width:7px;height:7px;background:var(--c-navy)}
.cases__head i{position:relative;flex:1 1 auto;height:0;margin-right:2px;border-top:1px solid var(--c-navy);font-style:normal}
.cases__head i::after{content:"\203A";position:absolute;right:-4px;top:-13px;padding-left:2px;background:var(--c-canvas);color:var(--c-navy);font-size:20px;line-height:24px}
@media (max-width:900px){
  .cases__head{display:block;border:0;padding:0;margin:0 0 6px}
  .cases__head span,.cases__head span:first-child{display:block;position:relative;padding:0 0 12px 26px;font-size:14.5px}
  .cases__head span::before{position:absolute;left:0;top:7px}
  .cases__head span:not(:last-child)::after{content:"";position:absolute;left:4px;top:19px;bottom:-6px;width:1px;background:var(--c-navy)}
  .cases__head span:last-child{padding-bottom:4px}
  .cases__head i{display:none}
}

/* ===== 세 경험의 교차 ===== */
.x3{position:relative;max-width:640px;aspect-ratio:2 / 1}
.x3__r{list-style:none;margin:0}
.x3__r li{position:absolute;display:flex;flex-direction:column;padding:10px 12px;font-size:13.5px;line-height:1.45;color:var(--c-ink-muted)}
.x3__r strong{font-size:15.5px;color:var(--c-navy)}
.x3__a{left:0;top:0;width:64%;height:64%;border:1px solid var(--c-navy);align-items:flex-start}
.x3__a span:not(.visually-hidden),.x3__b span:not(.visually-hidden){max-width:54%}
.x3__b{left:36%;top:0;width:64%;height:64%;border:1px solid var(--c-blue);align-items:flex-end;text-align:right}
.x3__c2{left:18%;top:36%;width:64%;height:64%;border:1px solid var(--c-teal);align-items:center;justify-content:flex-end;text-align:center}
.x3__c{position:absolute;left:calc(36% + 1px);top:calc(36% + 1px);width:calc(28% - 2px);height:calc(28% - 2px);display:flex;align-items:center;justify-content:center;background:var(--c-surface-1);font-size:15.5px;font-weight:700;letter-spacing:.04em;color:var(--c-navy);text-align:center}
@media (max-width:640px){
  .x3{aspect-ratio:6 / 5}
  .x3__r li{padding:8px 9px;font-size:12.5px}
  .x3__r strong{font-size:14.5px}
  .x3__c{font-size:14px;letter-spacing:0}
}
.sum .fg{margin-bottom:28px}

/* ===== 기업별 통합 검토보고서 구성도 ===== */
.rep{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:36px;align-items:stretch}
.rep__doc{border:1px solid var(--c-navy);background:var(--c-canvas)}
.rep__title{padding:12px 18px;border-bottom:1px solid var(--c-navy);background:var(--c-surface-1);font-size:17px;font-weight:600;color:var(--c-navy);line-height:1.4}
.rep__mods{list-style:none;display:grid;gap:10px;padding:16px 18px 18px}
.rep__mods li{position:relative;border:1px solid var(--c-line-strong);padding:10px 14px 10px 32px;font-size:15px;line-height:1.55;color:var(--c-ink)}
.rep__mods li::before{content:"";position:absolute;left:14px;top:17px;width:7px;height:7px;background:var(--c-navy)}
.rep__out{list-style:none;display:grid;grid-template-rows:repeat(3,1fr);gap:12px}
.rep__out li{display:flex;flex-direction:column;justify-content:center;border:1px dashed var(--c-ink-subtle);padding:12px 16px;font-size:15px;line-height:1.5;color:var(--c-ink)}
.rep__out b{color:var(--c-navy)}
.rep__out span{font-size:14px;color:var(--c-ink-muted)}
.fg + .contrast{margin-top:36px}
@media (max-width:760px){
  .rep{display:block}
  .rep__out{margin-top:14px;grid-template-rows:none}
}

/* ===== 연구원창업 4단계: 흐름 + 역할 레인 ===== */
.steps4--flow li{position:relative}
.steps4--flow .nd{position:absolute;top:-5px;left:20px;width:9px;height:9px;background:var(--c-navy)}
.steps4--flow li:first-child .nd{left:0}
.lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px;margin-top:20px}
.lane{padding:9px 16px;font-size:14.5px;font-weight:600;line-height:1.5;color:var(--c-navy);background:var(--c-surface-1);border:1px solid var(--c-navy)}
.lane--1{grid-column:1 / 5}
.lane--2{grid-column:2 / 5;background:var(--c-canvas);border-color:var(--c-teal);color:var(--c-teal)}
@media (min-width:721px) and (max-width:900px){
  .steps4--flow{grid-template-columns:repeat(4,minmax(0,1fr))}
  .steps4--flow li,.steps4--flow li:nth-child(odd){border-top:0;border-left:var(--rule);padding-left:20px}
  .steps4--flow li:first-child{border-left:0;padding-left:0}
}
@media (max-width:720px){
  .steps4--flow{grid-template-columns:minmax(0,1fr)}
  .steps4--flow li,.steps4--flow li:nth-child(odd){border:0;padding:14px 0 18px 30px}
  .steps4--flow .nd,.steps4--flow li:first-child .nd{left:0;top:22px}
  .steps4--flow li:not(:last-child)::after{content:"";position:absolute;left:4px;top:26px;bottom:-22px;width:1px;background:var(--c-navy)}
  .lanes{display:block}
  .lane{margin-bottom:8px}
  .lane--2{margin-left:30px}
}

/* ===== 대표 경력 타임라인 ===== */
.tl{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.tl__z{grid-row:1;margin:0 8px 18px 0;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.4;color:var(--c-teal);background:var(--c-surface-1);border-top:2px solid var(--c-teal)}
.tl__z--1{grid-column:1 / 3}
.tl__z--2{grid-column:3 / 4}
.tl__z--3{grid-column:4 / 5}
.tl__n{grid-row:2;position:relative;padding:26px 18px 0 0;font-size:15px;line-height:1.55}
.tl__n::before{content:"";position:absolute;top:6px;left:0;right:0;border-top:1px solid var(--c-navy)}
.tl__n::after{content:"";position:absolute;top:0;left:0;width:14px;height:14px;border:2px solid var(--c-navy);background:var(--c-canvas)}
.tl__n--last::before{display:none}
.tl__n--last::after{background:var(--c-navy)}
.tl__n strong{display:block;font-size:16px;line-height:1.45;color:var(--c-navy);margin-bottom:4px}
.tl__role{display:block;font-size:14px;line-height:1.6;color:var(--c-ink-muted)}
.tl__zl{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.prof--tl{display:block}
.prof--tl > div + div{margin-top:40px}
@media (max-width:900px){
  .tl__n{padding-right:12px}
  .tl__n strong{font-size:15px}
}
@media (max-width:760px){
  .tl{display:block}
  .tl__z{display:none}
  .tl__n,.tl__n--last{position:relative;padding:0 0 22px 34px}
  .tl__n--last{padding-bottom:0}
  .tl__n::before{display:block;left:6px;right:auto;top:8px;bottom:-8px;border-top:0;border-left:1px solid var(--c-navy)}
  .tl__n--last::before{display:none}
  .tl__n::after{top:0;left:0}
  .tl__zl{position:static;width:auto;height:auto;margin:0 0 2px;overflow:visible;clip:auto;white-space:normal;display:block;font-size:13px;font-weight:600;color:var(--c-teal)}
}

/* ===== 이미지 슬롯(ChatGPT 생성 이미지 자리) ===== */
/* 파일이 없으면 슬롯의 대체 배경(옅은 면색 + 얇은 격자선)이 그대로 보이고, img는 onerror로 숨겨집니다. */
.slot{position:relative;overflow:hidden;aspect-ratio:4 / 3;border:1px solid var(--c-hairline);background-color:var(--c-surface-1);background-image:linear-gradient(var(--c-hairline) 1px,transparent 1px),linear-gradient(90deg,var(--c-hairline) 1px,transparent 1px);background-size:24px 24px}
/* img에 width/height를 주지 않는다: 파일이 없을 때 alt="" 깨진 이미지가 크기 없이 사라지도록 */
.slot img{position:relative;display:block;width:auto;max-width:100%;height:auto;color:transparent;font-size:0}
.slot img[hidden]{display:none}
.slot--16x9{aspect-ratio:16 / 9}
/* S2 띠: 4:1 원본을 가로로 긴 띠로 가운데 기준 잘라 표시(데스크톱 최대 160px, 모바일 72px). 파일이 없으면 면색 + 라벨만 보임 */
.slot--band{aspect-ratio:auto;height:160px;margin-bottom:28px;background-color:var(--c-surface-1);background-image:url(img/customers-band.png);background-size:cover;background-position:center;background-repeat:no-repeat}
.slot--band.is-loaded .slot__lbl{display:none}
@media (max-width:900px){.slot--band{height:120px}}
@media (max-width:640px){.slot--band{height:72px;margin-bottom:20px}}
.slot__lbl{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;padding:0;font-size:15px;line-height:1.5;color:var(--c-navy);text-align:center}
.slot__lbl b{display:flex;align-items:center;justify-content:center;padding:0 10px;font-weight:600}
.slot__lbl b + b{border-left:1px solid var(--c-line-strong)}
.slot--plain{background-image:none}
.mini3{position:absolute;inset:16% 14%}
.mini3 i{position:absolute;border:1px solid var(--c-navy)}
.mini3 i:nth-child(1){left:0;top:0;width:64%;height:64%}
.mini3 i:nth-child(2){left:36%;top:0;width:64%;height:64%;border-color:var(--c-blue)}
.mini3 i:nth-child(3){left:18%;top:36%;width:64%;height:64%;border-color:var(--c-teal)}
.mini3 i:nth-child(4){left:calc(36% + 1px);top:calc(36% + 1px);width:calc(28% - 2px);height:calc(28% - 2px);border:0;background:var(--c-surface-2)}
@media (max-width:640px){ .slot__lbl{font-size:12.5px} .slot__lbl b{padding:0 4px} }

/* 첫 화면 배경 슬롯(S1): 도식 뒤 레이어, 파일이 없으면 흰 바탕 그대로 */
.hero{position:relative;overflow:hidden}
.hero__grid{position:relative;z-index:1}
.hero-bg{position:absolute;right:0;bottom:0;z-index:0;width:min(56%,860px);aspect-ratio:3 / 2;pointer-events:none}
.hero-bg img{display:block;width:auto;max-width:100%;height:auto;opacity:.28;color:transparent;font-size:0}
.hero-bg img[hidden]{display:none}
@media (max-width:900px){.hero-bg{display:none}}

/* 머리말 오른쪽 슬롯(S4~S7): 데스크톱 2열, 모바일은 머리말 아래 폭 100% */
@media (min-width:901px){
  .phead--img,.about-head--img{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:56px;align-items:center}
  .phead--img > .phead__txt{grid-column:1;grid-row:1}
  .phead--img > .slot{grid-column:2;grid-row:1}
  .about-head--img > :not(.slot){grid-column:1}
  .about-head--img > .slot{grid-column:2;grid-row:1 / span 3}
}
@media (max-width:900px){
  .phead--img .slot,.about-head--img .slot{margin-top:26px;width:100%}
}

/* 소개 요약 오른쪽: 세 경험 도식 + 경험 3줄 */
@media (max-width:900px){ .sum__r{margin-top:32px} }
.sum .fg + .exp{margin-top:0}

/* 대표 경력 타임라인 영역 */
.prof-tl{margin-bottom:40px}
.prof-tl h3{margin:0 0 14px}


/* ===== QA 보정(줄바꿈 품질) ===== */
.tbl tbody th,.tbl td .tlink{text-wrap:balance}
p .tlink,.note .tlink,li .tlink{white-space:nowrap}
/* 모바일: 이미지가 없는 빈 슬롯(S5~S7 격자)은 숨김. 파일을 넣으면 자동으로 표시됨 */
@media (max-width:900px){
  .slot--16x9:has(> img[hidden]){display:none}
}
@media (max-width:900px){
  .phead{padding-bottom:12px}
  .fgwrap > .fg:first-child{margin-top:16px}
  html.js .site-nav.is-open{border-bottom:1px solid var(--c-line-strong, #0A1E5E)}
}

/* 소개 요약: 위 2열(문안 + 도식), 아래 경험 3열 */
.sum > .exp{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px;margin-top:40px}
.sum > .exp li{border-bottom:0;padding:14px 0 0}
@media (max-width:900px){ .sum > .exp{display:block;margin-top:28px} .sum > .exp li{border-bottom:var(--rule);padding:14px 0} .sum__r{margin-top:28px} }
@media (max-width:900px){
  .facts li > strong,.facts li > span{display:block}
  .facts li > strong{margin-bottom:2px}
  .exp-rows li > span:first-child{display:block}
}
