/* ==========================================================================
   비범한전문직 — Design System v3 "Clear Growth"  (기준 문서: DESIGN_v3.md)
   화이트 + 쿨그레이 · 딥 네이비 주색 · 오렌지 포인트(CTA·수치·하이라이트) · 둥근 카드 · 부드러운 그림자
   v2(흑백 에디토리얼) 백업: assets/_old/style_v2.css
   ========================================================================== */

/* ── 0. 토큰 ─────────────────────────────────────────────────────────── */
:root{
  --navy:#0B1F44;        /* 주색: 제목·네이비 면 (흰 16.2:1) */
  --navy-2:#16336B;      /* 네이비 호버·보조 면 */
  --navy-3:#24467F;
  --text:#334155;        /* 본문 (흰 10.4 / 회 9.7) */
  --muted:#5B6676;       /* 캡션·메타 (흰 5.8 / 회 5.4) */
  --bg:#FFFFFF;
  --bg-2:#F5F7FA;        /* 교차 섹션 */
  --bg-3:#EBEFF5;        /* 이미지 자리·눌림 */
  --line:#E2E7EF;        /* 카드 테두리·구분선 */
  --line-2:#CED6E2;
  --orange:#FF4D1A;      /* 포인트: CTA 면·큰 수치·하이라이트 (로고와 동일) */
  --orange-2:#F03F0C;    /* CTA 호버 */
  --orange-ink:#C93608;  /* 흰·회 바탕 위 작은 오렌지 글자 (흰 5.2) */
  --orange-tint:#FFF1EB;
  --navy-tint:#EEF2F9;
  --on-navy:#FFFFFF;
  --on-navy-2:#C5CFDF;   /* 네이비 위 보조 글자 (10.3) */
  --r-sm:12px; --r:16px; --r-lg:24px; --r-xl:32px;
  --sh-1:0 1px 2px rgba(11,31,68,.05),0 2px 8px rgba(11,31,68,.04);
  --sh-2:0 2px 4px rgba(11,31,68,.04),0 12px 32px rgba(11,31,68,.08);
  --sh-3:0 4px 8px rgba(11,31,68,.05),0 24px 56px rgba(11,31,68,.14);
  --f-sans:Pretendard,"Pretendard Variable",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --wrap:1240px;
  --gut:clamp(20px,4vw,40px);
  --sec:clamp(80px,9vw,128px);
  --hd:72px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

/* ── 1. 기본 ─────────────────────────────────────────────────────────── */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hd) + 72px)}
body{font-family:var(--f-sans);color:var(--text);background:var(--bg);font-size:17px;line-height:1.7;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
img{height:auto}
ol,ul{list-style:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{color:var(--navy);font-weight:800;letter-spacing:-.035em;line-height:1.25}
b,strong{font-weight:700;color:var(--navy)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.nw{white-space:nowrap}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--navy);color:#fff;padding:10px 14px;z-index:100;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}

/* ── 2. 헤더 · 서브내비 ─────────────────────────────────────────────── */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.hd.scrolled{border-bottom-color:var(--line);box-shadow:0 4px 20px rgba(11,31,68,.05)}
.hd .wrap{display:flex;align-items:center;gap:40px;height:var(--hd)}
.logo{display:flex;align-items:center;color:var(--navy);flex:none}
.logo-h{height:27px;width:auto}
.gnb{display:flex;gap:6px;margin-left:auto}
.gnb a{position:relative;padding:8px 14px;border-radius:10px;font-size:16px;font-weight:600;color:var(--text);transition:color .2s,background .2s}
.gnb a:hover{color:var(--navy);background:var(--bg-2)}
.gnb a[aria-current]{color:var(--navy);font-weight:700}
.gnb a[aria-current]::after{content:"";position:absolute;left:50%;bottom:0;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--orange)}
.hd-cta{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:12px;background:var(--navy);color:#fff;font-size:15px;font-weight:700;transition:background .2s}
.hd-cta:hover{background:var(--navy-2)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;margin-left:auto;margin-right:-10px}
.burger span{display:block;height:2px;border-radius:2px;background:var(--navy);margin:6px 11px;transition:transform .25s var(--ease),opacity .2s}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.mnav{display:none}
@media(max-width:1000px){
  .gnb,.hd-cta{display:none}.burger{display:block}
  .logo-h{height:23px}
  .mnav.open{display:flex;flex-direction:column;background:#fff;padding:8px var(--gut) 24px;border-top:1px solid var(--line);max-height:calc(100vh - var(--hd));overflow:auto}
  .mnav a{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);font-size:19px;font-weight:700;color:var(--navy)}
  .mnav a::after{content:"→";color:var(--muted);font-weight:500}
  .mnav a[aria-current]{color:var(--orange-ink)}
  .mnav a:last-child{margin-top:18px;border:0;border-radius:var(--r-sm);background:var(--orange);color:#fff;justify-content:center;padding:16px}
  .mnav a:last-child::after{content:none}
}
.subnav{position:sticky;top:var(--hd);z-index:40;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;align-items:center;gap:24px;height:56px}
.subnav b{font-size:16px;font-weight:800;flex:none}
.subnav nav{display:flex;align-items:center;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.subnav nav::-webkit-scrollbar{display:none}
.subnav nav a{flex:none;padding:6px 12px;border-radius:999px;font-size:15px;font-weight:600;color:var(--muted);transition:color .2s,background .2s}
.subnav nav a:hover{color:var(--navy);background:var(--bg-2)}
.subnav .btn{height:36px;padding:0 14px;font-size:14px;margin-left:8px;border-radius:10px}
@media(max-width:600px){.subnav b{display:none}.subnav nav{margin-left:0;width:100%}.subnav .btn{margin-left:auto}}

/* ── 3. 버튼 · 링크 · 배지 ──────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:58px;padding:0 28px;border-radius:14px;border:1.5px solid transparent;font-size:19px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s}
.btn .arw{transition:transform .25s var(--ease)}
.btn:hover .arw{transform:translateX(4px)}
.btn.pri{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(255,77,26,.25)}  /* 19px bold = 큰 글자 기준 3:1 충족 */
.btn.pri:hover{background:var(--orange-2);transform:translateY(-2px);box-shadow:0 12px 28px rgba(255,77,26,.32)}
.btn.line{background:#fff;color:var(--navy);border-color:var(--line-2)}
.btn.line:hover{border-color:var(--navy);transform:translateY(-2px)}
.btn.navy{background:var(--navy);color:#fff}
.btn.navy:hover{background:var(--navy-2)}
.btn.line-w{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn.line-w:hover{background:rgba(255,255,255,.1);border-color:#fff}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:480px){.ctas .btn{flex:1 1 100%}.btn{height:56px;padding:0 20px}}
.more{display:inline-flex;align-items:center;gap:8px;margin-top:32px;font-size:17px;font-weight:700;color:var(--navy)}
.more::after{content:"→";color:var(--orange-ink);transition:transform .25s var(--ease)}
.more:hover::after{transform:translateX(4px)}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--orange-ink);letter-spacing:-.01em}
.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:15px;font-weight:700;color:var(--navy);box-shadow:var(--sh-1)}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px var(--orange-tint)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.tags span{padding:4px 10px;border-radius:8px;background:var(--navy-tint);font-size:14px;font-weight:700;color:var(--navy-2)}
.ex{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.note{margin-top:24px;font-size:14px;line-height:1.6;color:var(--muted)}
.ico{width:22px;height:22px;flex:none}
em{font-style:normal}

/* ── 4. 섹션 · 섹션 헤더 ───────────────────────────────────────────── */
.sec{padding:var(--sec) 0}
.sec.alt{background:var(--bg-2)}
.sec.tight{padding-top:0}
.sh{max-width:760px;margin-bottom:clamp(40px,5vw,64px)}
.sh h2{margin-top:14px;font-size:clamp(30px,3.6vw,46px);line-height:1.22;letter-spacing:-.045em}
.sh p{margin-top:18px;font-size:clamp(17px,1.3vw,19px);line-height:1.7;color:var(--text)}
.sh.center{margin-left:auto;margin-right:auto;text-align:center}
.sh.center .kicker{justify-content:center}
.sh-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:clamp(40px,5vw,64px)}
.sh-row .sh{margin-bottom:0}
.sh-row .more{margin:0 0 6px;flex:none}
@media(max-width:760px){.sh-row{flex-direction:column;align-items:flex-start;gap:20px}}

/* ── 5. 홈 히어로 ──────────────────────────────────────────────────── */
.hero{position:relative;padding:clamp(48px,6vw,88px) 0 clamp(64px,7vw,104px);background:linear-gradient(180deg,#F7F9FC 0%,#fff 100%);overflow:hidden}
.hero::before{content:"";position:absolute;right:-12%;top:-30%;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(36,70,127,.09),transparent);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(40px,5vw,72px);align-items:center}
.hero h1{margin-top:24px;font-size:clamp(40px,5.3vw,72px);line-height:1.16;letter-spacing:-.055em;font-weight:800}
.hero h1 em,.phero h1 em{color:var(--orange)}
.hero .lead{margin-top:24px;max-width:540px;font-size:clamp(18px,1.45vw,20px);line-height:1.7;color:var(--text)}
.hero .ctas{margin-top:36px}
.trust{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.trust p{font-size:14px;font-weight:600;color:var(--muted)}
.trust ul{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.trust li{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:15px;font-weight:700;color:var(--navy);box-shadow:var(--sh-1)}
.trust .ico{width:20px;height:20px}
.kk{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#FEE500}
.kk .ico{width:15px;height:15px}
/* 사진 + 떠 있는 UI 카드 */
.visual{position:relative;padding:28px 0 36px 28px}
.visual .ph{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);aspect-ratio:4/3.4;background:var(--bg-3)}
.visual .ph img{width:100%;height:100%;object-fit:cover}
.ui{position:absolute;background:#fff;border-radius:18px;box-shadow:var(--sh-3);border:1px solid rgba(226,231,239,.8);padding:16px 18px;animation:floatIn .8s .3s var(--ease) both}
.ui small{display:block;font-size:13px;font-weight:600;color:var(--muted);line-height:1.4}
.ui b{display:block;font-size:15px;font-weight:700;line-height:1.4}
.ui-kpi{left:-8px;bottom:0;width:250px;animation-delay:.45s}
.ui-kpi .big{display:flex;align-items:baseline;gap:4px;margin:4px 0 10px;font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--orange)}
.ui-kpi .big span{font-size:20px}
.ui-kpi .bars{display:flex;align-items:flex-end;gap:6px;height:44px}
.ui-kpi .bars i{flex:1;border-radius:4px 4px 2px 2px;background:var(--navy-tint)}
.ui-kpi .bars i:last-child{background:var(--orange)}
.ui-kpi .bars i:nth-child(1){height:100%}.ui-kpi .bars i:nth-child(2){height:88%}.ui-kpi .bars i:nth-child(3){height:76%}.ui-kpi .bars i:nth-child(4){height:62%}.ui-kpi .bars i:nth-child(5){height:50%}
.ui-noti{right:-12px;top:0;display:flex;gap:12px;align-items:center;width:290px;animation-delay:.6s}
.ui-noti .dot{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#FEE500}
.ui-noti .dot svg{width:22px;height:22px}
.ui-check{right:24px;bottom:56px;display:flex;gap:10px;align-items:center;animation-delay:.75s}
.ui-check .ok{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff}
.ui-check .ok svg{width:16px;height:16px}
@keyframes floatIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:960px){
  .hero .wrap{grid-template-columns:1fr}
  .visual{padding:20px 0 28px 0;max-width:640px}
}
@media(max-width:560px){
  .ui-kpi{left:-4px;width:200px;padding:12px 14px}.ui-kpi .big{font-size:30px}.ui-kpi .bars{height:30px}
  .ui-noti{right:auto;left:-4px;top:-6px;width:auto;max-width:260px;padding:10px 14px 10px 10px}.ui-noti .dot{width:34px;height:34px}
  .ui-kpi{left:auto;right:-4px}
  .ui b{font-size:14px}
  .ui-check{display:none}
}

/* ── 6. 서브 히어로 ───────────────────────────────────────────────── */
.phero{position:relative;padding:clamp(48px,6vw,88px) 0 clamp(56px,6vw,96px);background:linear-gradient(180deg,#F5F7FA 0%,#fff 100%);overflow:hidden}
.phero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,72px);align-items:center}
.phero.solo .wrap{grid-template-columns:1fr}
.phero h1{margin-top:20px;font-size:clamp(36px,4.4vw,60px);line-height:1.2;letter-spacing:-.05em}
.phero .lead{margin-top:22px;max-width:580px;font-size:clamp(17px,1.35vw,19px);line-height:1.75}
.phero .ctas{margin-top:32px}
.phero .visual{padding:20px 0 28px 20px}
.phero .visual .ph{aspect-ratio:4/3}
@media(max-width:960px){.phero .wrap{grid-template-columns:1fr}.phero .visual{padding:12px 0 24px;max-width:640px}}
/* 서브 히어로 위 작은 UI 카드 */
.ui-rank{left:-8px;bottom:0;width:260px}
.ui-rank .r{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-top:6px;border-radius:10px;font-size:14px;font-weight:600;color:var(--text)}
.ui-rank .r i{width:22px;height:22px;flex:none;border-radius:50%;background:var(--bg-3);display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;color:var(--muted)}
.ui-rank .r.hl{background:var(--orange-tint);color:var(--navy);font-weight:700}
.ui-rank .r.hl i{background:var(--orange);color:#fff}
.ui-chip{right:-8px;top:0;display:flex;align-items:center;gap:10px}
.ui-chip .ico{width:28px;height:28px}
@media(max-width:560px){.ui-rank{width:220px;padding:12px}.ui-chip{right:-4px;padding:10px 12px}}

/* ── 7. 서비스 사진 카드 (홈 4) ───────────────────────────────────── */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.svc:hover{transform:translateY(-6px);box-shadow:var(--sh-3)}
.svc .im{aspect-ratio:16/11;overflow:hidden;background:var(--bg-3)}
.svc .im img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.svc:hover .im img{transform:scale(1.04)}
.svc .bd{display:flex;flex-direction:column;flex:1;padding:22px 22px 24px}
.svc .icos{display:flex;gap:6px;margin-bottom:14px;min-height:22px}
.svc h3{font-size:21px}
.svc p{margin-top:8px;font-size:16px;line-height:1.6;color:var(--text);flex:1}
.svc .go{margin-top:18px;font-size:15px;font-weight:700;color:var(--navy);display:inline-flex;gap:6px}
.svc .go::after{content:"→";color:var(--orange-ink);transition:transform .25s var(--ease)}
.svc:hover .go::after{transform:translateX(4px)}
@media(max-width:1100px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.svc-grid{grid-template-columns:1fr}.svc .im{aspect-ratio:16/9}}

/* ── 8. 아이콘 카드 (서비스 6 · 하는 일) ─────────────────────────── */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,2.4vw,32px);box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.alt .card{border-color:transparent}
.card h3{font-size:clamp(19px,1.5vw,21px)}
.card p{margin-top:10px;font-size:16px;line-height:1.65;color:var(--text)}
.card .lbl{display:inline-block;margin-bottom:14px;font-size:14px;font-weight:800;letter-spacing:.04em;color:var(--orange-ink)}
.fi{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:20px;background:var(--navy-tint);color:var(--navy)}
.fi svg{width:26px;height:26px}
.card:hover .fi{background:var(--navy);color:#fff}
.fi,.card:hover .fi{transition:background .3s,color .3s}
.card .n{position:absolute;top:24px;right:26px;font-size:15px;font-weight:800;color:var(--line-2);font-variant-numeric:tabular-nums}

/* ── 9. 진료과 3D 아이콘 카드 ─────────────────────────────────────── */
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.spec{display:grid;grid-template-columns:132px 1fr;gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 28px 24px 20px;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.alt .spec{border-color:transparent}
.spec:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.spec .well{width:132px;height:132px;border-radius:22px;background:linear-gradient(160deg,#F7F9FC,#EEF2F8);display:grid;place-items:center;overflow:hidden}
.spec .well img{width:116px;height:116px;object-fit:contain;mix-blend-mode:multiply;transition:transform .5s var(--ease)}
.spec:hover .well img{transform:scale(1.07) rotate(-2deg)}
.spec h3{font-size:21px}
.spec p{margin-top:8px;font-size:16px;line-height:1.6}
@media(max-width:1100px){.spec-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.spec-grid{grid-template-columns:1fr}.spec{grid-template-columns:96px 1fr;gap:18px;padding:18px 20px 18px 16px}.spec .well{width:96px;height:96px;border-radius:18px}.spec .well img{width:86px;height:86px}}

/* ── 10. 사진 + 텍스트 스플릿 ─────────────────────────────────────── */
.media{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px);align-items:center}
.media.rev .m-img{order:2}
.m-img{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-2);aspect-ratio:4/3.2;background:var(--bg-3)}
.m-img img{width:100%;height:100%;object-fit:cover}
.m-img figcaption{position:absolute;left:16px;bottom:16px;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.94);font-size:14px;font-weight:700;color:var(--navy);box-shadow:var(--sh-1)}
.m-body .sh{margin-bottom:32px}
.rows{display:grid;gap:12px}
.rows li{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:start;padding:20px 22px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.alt .rows li{border-color:transparent}
.rows .tg{grid-row:span 2;min-width:64px;padding:5px 0;border-radius:8px;background:var(--navy);color:#fff;font-size:13px;font-weight:800;text-align:center;letter-spacing:.04em}
.rows h3{font-size:19px}
.rows p{font-size:16px;line-height:1.6}
@media(max-width:960px){.media{grid-template-columns:1fr}.media.rev .m-img{order:0}}

/* ── 11. 전담 팀 (사진 콜라주 + 역할 + 원칙) ─────────────────────── */
.team-wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,5vw,80px);align-items:center}
.collage{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:14px;aspect-ratio:1.25}
.collage figure{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-3);box-shadow:var(--sh-1)}
.collage figure:first-child{grid-row:span 2}
.collage img{width:100%;height:100%;object-fit:cover}
.collage figcaption{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.94);font-size:13px;font-weight:700;color:var(--navy)}
.roles{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-8px 0 28px}
.roles li{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:16px;font-weight:700;color:var(--navy);box-shadow:var(--sh-1)}
.roles li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.roles li.tail{background:none;border:0;box-shadow:none;padding:0 4px;font-weight:600;color:var(--text)}
.roles li.tail::before{content:none}
.principles{display:grid;gap:12px}
.principles li{display:grid;grid-template-columns:44px 1fr;gap:4px 16px;padding:20px 22px;border-radius:var(--r);background:#fff;box-shadow:var(--sh-1)}
.principles .k{grid-row:span 2;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--orange-tint);color:var(--orange-ink);font-size:15px;font-weight:800}
.principles b{font-size:18px;line-height:1.4}
.principles p{font-size:16px;line-height:1.6}
@media(max-width:960px){.team-wrap{grid-template-columns:1fr}}
@media(max-width:560px){.collage{aspect-ratio:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.collage figure:first-child{grid-row:auto;grid-column:span 2;aspect-ratio:16/10}.collage figure{aspect-ratio:1}}

/* ── 12. 비교표 ──────────────────────────────────────────────────── */
.cmp{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-2);overflow:hidden}
.cmp th,.cmp td{padding:22px 28px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);font-size:17px;line-height:1.55}
.cmp tbody tr:last-child>*{border-bottom:0}
.cmp thead th{background:var(--bg-2);font-size:15px;font-weight:700;color:var(--muted);padding-top:18px;padding-bottom:18px}
.cmp thead th.us{background:var(--navy);color:#fff;font-size:17px;font-weight:800}
.cmp thead th.us span{display:inline-flex;align-items:center;gap:8px}
.cmp thead th.us span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.cmp tbody th{width:18%;font-size:16px;font-weight:800;color:var(--navy)}
.cmp td.them{width:36%;color:var(--muted)}
.cmp td.them::before{content:"";display:inline-block;width:16px;height:2px;margin-right:12px;vertical-align:middle;background:var(--line-2)}
.cmp td.us{background:#FAFBFE;color:var(--navy);font-weight:700;border-left:2px solid var(--navy)}
.cmp thead th.us{border-left:2px solid var(--navy)}
.cmp td.us::before{content:"";display:inline-block;width:22px;height:22px;margin-right:12px;vertical-align:-5px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
@media(max-width:760px){
  .cmp,.cmp tbody,.cmp tr,.cmp th,.cmp td{display:block;width:100%}
  .cmp{background:none;box-shadow:none;border-radius:0;overflow:visible}
  .cmp thead{display:none}
  .cmp tr{margin-bottom:12px;background:#fff;border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden}
  .cmp th,.cmp td{width:100%!important;padding:14px 18px;border-bottom:1px solid var(--line)}
  .cmp tbody th{background:var(--bg-2);font-size:15px}
  .cmp td.us{border-left:0;background:#fff}
  .cmp td::after{content:attr(data-label);display:block;order:-1;font-size:13px;font-weight:700;color:var(--muted)}
  .cmp td{display:flex;flex-direction:column;gap:4px}
  .cmp td::before{display:none!important}
  .cmp td.us::after{color:var(--orange-ink)}
}

/* ── 13. 영상 카드 ───────────────────────────────────────────────── */
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vgrid.four{grid-template-columns:repeat(4,1fr);margin-top:20px}
.vid{display:block;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.alt .vid{border-color:transparent}
.vid:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}
.vid .th{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0B1F44}
.vid .th img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.vid:hover .th img{transform:scale(1.04)}
.vid .th::after{content:"";position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:rgba(255,77,26,.95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E") 55% 50%/24px no-repeat;box-shadow:0 8px 24px rgba(255,77,26,.35);transition:transform .3s var(--ease)}
.vid:hover .th::after{transform:scale(1.1)}
.vid .cap{display:flex;flex-direction:column;gap:6px;padding:16px 20px 20px;font-size:17px;font-weight:700;color:var(--navy);line-height:1.4}
.vid .cap small{order:-1;align-self:flex-start;padding:3px 9px;border-radius:7px;background:var(--navy-tint);font-size:13px;font-weight:700;color:var(--navy-2)}
.vid.feature{display:grid;grid-template-columns:1.6fr 1fr;align-items:stretch}
.vid.feature .th{aspect-ratio:16/9}
.vid.feature .th::after{width:76px;height:76px;margin:-38px 0 0 -38px;background-size:30px}
.vid.feature .cap{justify-content:center;padding:32px 36px;font-size:clamp(22px,2vw,28px);letter-spacing:-.03em;line-height:1.3}
.vid.feature .cap small{font-size:14px}
.vid.feature .cap span{display:block;margin-top:8px;font-size:16px;font-weight:500;color:var(--text);letter-spacing:-.01em;line-height:1.6}
.vgrid.four .cap{font-size:16px;padding:14px 16px 18px}
.vgrid.four .th::after{width:46px;height:46px;margin:-23px 0 0 -23px;background-size:20px}
@media(max-width:1000px){.vgrid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.vgrid{grid-template-columns:1fr 1fr}.vid.feature{grid-template-columns:1fr}.vid.feature .cap{padding:22px 22px 26px}}
@media(max-width:560px){.vgrid{grid-template-columns:1fr}.vgrid.four{grid-template-columns:1fr 1fr;gap:12px}.vgrid.four .cap{font-size:15px;padding:12px 12px 14px}}
/* 숏폼 */
.ai{display:grid;grid-template-columns:300px 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.vid.short{max-width:300px}
.vid.short .th{aspect-ratio:9/16}
.ai-list{display:grid;gap:12px}
.ai-list li{display:grid;grid-template-columns:44px 1fr;gap:4px 16px;padding:22px 24px;border-radius:var(--r);background:#fff;box-shadow:var(--sh-1)}
.ai-list .k{grid-row:span 2;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800;font-size:15px}
.ai-list h3{font-size:19px}
.ai-list p{font-size:16px;line-height:1.6}
.ai-txt h3{font-size:clamp(22px,2vw,28px)}
.ai-txt p{margin-top:12px;font-size:17px}
@media(max-width:760px){.ai{grid-template-columns:1fr}.vid.short{max-width:260px;margin:0 auto}}

/* ── 14. 레퍼런스: 로고 카드 · 작업물 ─────────────────────────────── */
.clients{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.client{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.alt .client{border-color:transparent}
.client:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.client .lg{flex:none;width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--bg-3);display:grid;place-items:center;box-shadow:0 0 0 1px var(--line)}
.client .lg img{width:100%;height:100%;object-fit:cover}
.client .lg.type{background:var(--navy);color:#fff;font-size:14px;font-weight:800;letter-spacing:-.02em;box-shadow:none}
.client .lg.type.or{background:var(--orange-tint);color:var(--orange-ink)}
.client div{min-width:0}
.client b{display:block;font-size:16px;line-height:1.35}
.client span:not(.lg){display:block;margin-top:2px;font-size:14px;line-height:1.45;color:var(--muted)}
@media(max-width:1100px){.clients{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.clients{grid-template-columns:1fr}}
.works-h{display:flex;align-items:center;gap:10px;margin:56px 0 20px;font-size:19px;font-weight:800;color:var(--navy)}
.works-h::before{content:"";width:4px;height:20px;border-radius:2px;background:var(--orange)}
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.work{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.alt .work{border-color:transparent}
.work:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}
.work figure{position:relative;aspect-ratio:1;overflow:hidden;background:var(--bg-3)}
.work img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease)}
.work:hover img{transform:scale(1.04)}
.work .badge{position:absolute;left:14px;top:14px;padding:5px 10px;border-radius:8px;background:rgba(11,31,68,.88);color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em}
.work .badge.live{background:var(--orange)}
.work .meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 20px 18px}
.work .meta b{font-size:17px}
.work .meta span{font-size:15px;color:var(--muted)}
@media(max-width:860px){.works{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.works{grid-template-columns:1fr}}

/* ── 15. 수치 카드 ───────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{display:flex;flex-direction:column;padding:32px 28px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid var(--line)}
.alt .stat{border-color:transparent}
.stat .k{order:-1;font-size:15px;font-weight:700;color:var(--muted);line-height:1.45}
.stat .v{margin-top:20px;font-size:clamp(52px,5.4vw,76px);font-weight:800;line-height:1;letter-spacing:-.05em;color:var(--navy);font-variant-numeric:tabular-nums}
.stat .v small{margin-left:4px;font-size:.38em;letter-spacing:-.02em;color:var(--navy)}
.stat.hi{background:var(--navy);border-color:var(--navy)}
.stat.hi .k{color:var(--on-navy-2)}
.stat.hi .v,.stat.hi .v small{color:var(--orange)}
.stat .s{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.stat.hi .s{border-color:rgba(255,255,255,.15);color:var(--on-navy-2)}
@media(max-width:1000px){.stats{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.stats{gap:12px}.stat{padding:22px 18px}.stat .v{font-size:44px}}

/* ── 16. 스텝 UI ─────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:20px;counter-reset:st}
.step{position:relative;padding:28px 24px 28px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid var(--line)}
.alt .step{border-color:transparent}
.step::before{counter-increment:st;content:"STEP " counter(st,decimal-leading-zero);display:inline-block;padding:5px 10px;border-radius:8px;background:var(--navy-tint);font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--navy-2)}
.step:first-child::before{background:var(--navy);color:#fff}
.step:not(:last-child)::after{content:"";position:absolute;right:-16px;top:34px;z-index:1;width:12px;height:12px;border-top:2px solid var(--line-2);border-right:2px solid var(--line-2);transform:rotate(45deg)}
.step h3{margin-top:18px;font-size:19px;line-height:1.4}
.step p{margin-top:10px;font-size:16px;line-height:1.65}
@media(max-width:1100px){.steps{grid-template-columns:repeat(2,1fr)}.step::after{display:none}}
@media(max-width:600px){
  .steps{grid-template-columns:1fr;gap:0;padding-left:20px;border-left:2px solid var(--line)}
  .step{margin:0 0 14px;box-shadow:var(--sh-1)}
  .step:not(:last-child)::after{display:block;content:"";left:-27px;right:auto;top:30px;width:12px;height:12px;border:0;border-radius:50%;background:var(--orange);transform:none;box-shadow:0 0 0 4px var(--orange-tint)}
  .step:last-child::after{content:"";position:absolute;left:-27px;top:30px;width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px var(--orange-tint)}
}

/* ── 17. 화면 예시 목업 ─────────────────────────────────────────── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mock{position:relative;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-2);border:1px solid var(--line);padding:24px}
.mock .mh{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.mock .mh b{font-size:17px}
.mock .st-tag{padding:4px 10px;border-radius:999px;background:var(--bg-2);font-size:13px;font-weight:700;color:var(--muted)}
.mock .st-tag.good{background:var(--orange-tint);color:var(--orange-ink)}
.mock .row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 14px;border-radius:12px;font-size:16px;color:var(--text)}
.mock .row+.row{margin-top:2px}
.mock .row>span:last-child{flex:none;font-size:14px;color:var(--muted);text-align:right}
.mock .row.dim{opacity:.55}
.mock .row.hl{background:var(--orange-tint);color:var(--navy);font-weight:700}
.mock .row.hl>span:last-child{color:var(--orange-ink);font-weight:700}
.mock .bad{text-decoration:line-through;text-decoration-color:var(--orange);text-decoration-thickness:2px;color:var(--muted)}
.mock .ex{position:absolute;top:-12px;right:20px;background:#fff}
.mock.phone{max-width:none}
.mock .rk{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:10px;border-radius:50%;background:var(--bg-3);font-size:13px;font-weight:800;color:var(--muted);vertical-align:1px}
.mock .row.hl .rk{background:var(--orange);color:#fff}
.mock .arrow{display:none}
.expr{max-width:860px}
.expr .row{flex-wrap:wrap}
@media(max-width:760px){.split{grid-template-columns:1fr}.mock{padding:20px 16px}.mock .row{padding:12px 10px;font-size:15px}}
@media(max-width:600px){.expr .row{flex-direction:column;align-items:flex-start;gap:4px}.expr .row>span:last-child{text-align:left}}

/* ── 18. FAQ · 하지 않는 것 · 사례 ───────────────────────────────── */
.faq{display:grid;gap:12px;max-width:900px}
.faq details{background:#fff;border-radius:var(--r);box-shadow:var(--sh-1);border:1px solid var(--line);transition:box-shadow .3s}
.alt .faq details{border-color:transparent}
.faq details[open]{box-shadow:var(--sh-2)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;font-size:18px;font-weight:700;color:var(--navy);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--navy-tint);color:var(--navy);font-size:15px;font-weight:800}
.faq summary span{flex:1}
.faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1F44' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .3s var(--ease),background-color .3s}
.faq details[open] summary::after{transform:rotate(45deg);background-color:var(--orange-tint)}
.faq details p{padding:0 24px 24px 74px;font-size:16px;line-height:1.75}
@media(max-width:560px){.faq summary{padding:18px;font-size:17px;gap:14px}.faq details p{padding:0 18px 20px}}
.nolist{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nolist div{padding:28px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid var(--line)}
.nolist b{display:flex;align-items:center;gap:12px;font-size:19px}
.nolist b::before{content:"";flex:none;width:32px;height:32px;border-radius:50%;background:var(--orange-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C93608' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/16px no-repeat}
.nolist p{margin-top:12px;font-size:16px;line-height:1.65}
@media(max-width:860px){.nolist{grid-template-columns:1fr}}
.case{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;background:#fff;border-radius:var(--r-xl);box-shadow:var(--sh-2);overflow:hidden}
.case-v{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,4vw,56px);background:var(--navy);color:#fff;position:relative;overflow:hidden}
.case-v::after{content:"";position:absolute;right:-30%;bottom:-40%;width:90%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(255,77,26,.28),transparent)}
.case-v .k{position:relative;font-size:16px;font-weight:700;color:var(--on-navy-2)}
.case-v .v{position:relative;margin-top:12px;font-size:clamp(72px,9vw,128px);font-weight:800;line-height:1;letter-spacing:-.06em;color:var(--orange)}
.case-v .v small{font-size:.4em;margin-left:4px}
.case-t{padding:clamp(28px,4vw,56px)}
.case-t .lbl{display:inline-block;padding:5px 10px;border-radius:8px;background:var(--navy-tint);font-size:14px;font-weight:700;color:var(--navy-2)}
.case-t h3{margin-top:16px;font-size:clamp(23px,2.2vw,30px)}
.case-t p{margin-top:12px;font-size:17px}
.case-do{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}
.case-do li{padding:14px 16px;border-radius:12px;background:var(--bg-2)}
.case-do b{display:block;font-size:14px;color:var(--muted);font-weight:600}
.case-do span{display:block;margin-top:2px;font-size:17px;font-weight:800;color:var(--navy)}
.case-t .more{margin-top:24px}
@media(max-width:860px){.case{grid-template-columns:1fr}}
@media(max-width:420px){.case-do{grid-template-columns:1fr}}

/* ── 19. CTA 배너 ────────────────────────────────────────────────── */
.cta{padding:0 0 var(--sec)}
.sec.alt+.cta{background:linear-gradient(180deg,var(--bg-2) 50%,#fff 50%);padding-top:0}
.cta-box{position:relative;overflow:hidden;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:40px;padding:clamp(40px,5.5vw,80px);border-radius:var(--r-xl);background:var(--navy);color:#fff}
.cta-box::before{content:"";position:absolute;left:-10%;top:-60%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(36,70,127,.9),transparent)}
.cta-box::after{content:"";position:absolute;right:-8%;bottom:-70%;width:55%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(255,77,26,.30),transparent)}
.cta-box>*{position:relative;z-index:1}
.cta-box h2{color:#fff;font-size:clamp(30px,3.8vw,50px);line-height:1.24;letter-spacing:-.05em}
.cta-box p{margin-top:18px;font-size:clamp(17px,1.35vw,19px);color:var(--on-navy-2);max-width:560px}
.cta-box .ctas{justify-content:flex-end}
.cta-box .ph{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.cta-box .ph img{width:100%;height:100%;object-fit:cover}
.cta-side{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.cta-side .btn{width:100%}
.cta-side small{text-align:center;font-size:14px;color:var(--on-navy-2)}
@media(max-width:860px){.cta-box{grid-template-columns:1fr;gap:28px}.cta-side{max-width:420px}}

/* ── 20. 광고 대시보드 목업 ─────────────────────────────────────── */
.dash{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-3);border:1px solid var(--line);overflow:hidden}
.dash .bar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--bg-2)}
.dash .bar i{width:10px;height:10px;border-radius:50%;background:var(--line-2)}
.dash .bar i:first-child{background:var(--orange)}
.dash .bar span{margin-left:8px;font-size:14px;font-weight:700;color:var(--navy)}
.dash .bar em{margin-left:auto;font-size:13px;font-weight:600;color:var(--muted)}
.dash .body{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}
.dash .kpi{padding:16px;border-radius:14px;background:var(--bg-2)}
.dash .kpi small{display:block;font-size:13px;font-weight:600;color:var(--muted)}
.dash .kpi b{display:block;margin-top:4px;font-size:clamp(26px,2.4vw,34px);font-weight:800;letter-spacing:-.04em;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums}
.dash .kpi.hi{background:var(--navy)}
.dash .kpi.hi small{color:var(--on-navy-2)}
.dash .kpi.hi b{color:var(--orange)}
.dash .kpi .sub{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:6px;background:rgba(255,77,26,.18);font-size:13px;font-weight:700;color:#FFB59E}
.dash .chart{grid-column:span 2;position:relative;padding:16px;border-radius:14px;border:1px solid var(--line)}
.dash .cl{display:block;font-size:13px;font-weight:700;color:var(--muted)}
.dash .chart .tag{position:absolute;right:14px;top:12px}
.dash .chart svg{margin-top:8px;width:100%;height:auto;overflow:visible}
.dash .grid-l line{stroke:var(--line);stroke-width:1}
.dash .area{fill:url(#ga)}
.dash .ln{fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round}
.dash .ln-sub{fill:none;stroke:var(--line-2);stroke-width:2;stroke-dasharray:6 8}
.dash .draw{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 2s .4s cubic-bezier(.4,0,.2,1) forwards}
.dash .pt{fill:var(--orange);stroke:#fff;stroke-width:3;opacity:0;animation:hiIn .4s 2s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes hiIn{to{opacity:1}}
.dash .side{grid-column:span 2;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.dash .side div{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:12px;background:var(--bg-2);font-size:13px;font-weight:700;color:var(--navy)}
.dash .side .on{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.dash .side .on::before{content:"";width:6px;height:6px;border-radius:50%;background:#16A34A}
@media(max-width:420px){.dash .body{padding:12px;gap:8px}.dash .kpi{padding:12px}.dash .side{grid-template-columns:repeat(2,1fr)}}

/* ── 21. 칼럼 카드 ───────────────────────────────────────────────── */
.col-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.col-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.col-card:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}
.col-card .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-3)}
.col-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.col-card:hover .thumb img{transform:scale(1.04)}
.col-card .thumb span{position:absolute;left:14px;top:14px;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.95);font-size:13px;font-weight:700;color:var(--navy)}
.col-card .txt{display:flex;flex-direction:column;flex:1;padding:22px 24px 26px}
.col-card .cat{font-size:14px;font-weight:600;color:var(--muted)}
.col-card h3{margin-top:8px;font-size:20px;line-height:1.4}
.col-card p:not(.cat){margin-top:10px;font-size:16px;line-height:1.6;flex:1}
.col-card .go{margin-top:18px;font-size:15px;font-weight:700;color:var(--navy)}
.col-card .go::after{content:" →";color:var(--orange-ink)}
@media(max-width:960px){.col-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.col-grid{grid-template-columns:1fr}}

/* ── 22. 푸터 · 카카오 버튼 · 라이트박스 ─────────────────────────── */
.ft{background:var(--bg-2);border-top:1px solid var(--line);padding:56px 0 40px;margin-top:0}
.ft-top{display:flex;flex-wrap:wrap;align-items:center;gap:24px 40px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.ft-logo{color:var(--navy)}
.ft-logo .logo-s{height:58px;width:auto}
.ft-sig{font-size:16px;font-weight:800;color:var(--navy)}
.ft-sig span{display:block;font-size:14px;font-weight:500;color:var(--muted)}
.ft-top nav{display:flex;flex-wrap:wrap;gap:6px 20px;margin-left:auto}
.ft-top nav a{font-size:15px;font-weight:600;color:var(--text)}
.ft-top nav a:hover{color:var(--navy)}
.ft-info{padding-top:24px;display:grid;gap:4px}
.ft-info p{font-size:14px;line-height:1.7;color:var(--muted)}
@media(max-width:760px){.ft-top nav{margin-left:0;width:100%}}
.fab{position:fixed;right:20px;bottom:20px;z-index:60;width:60px;height:60px;display:grid;place-items:center;border-radius:20px;background:#FEE500;color:#191600;box-shadow:0 10px 28px rgba(11,31,68,.22);transition:transform .25s var(--ease)}
.fab:hover{transform:translateY(-3px) scale(1.04)}
.fab svg{width:30px;height:30px}
.fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lb{border:0;padding:0;background:transparent;width:min(1100px,92vw);max-width:none;margin:auto;overflow:visible}
.lb::backdrop{background:rgba(6,16,36,.88)}
.lb-v{aspect-ratio:16/9;background:#000;border-radius:16px;overflow:hidden}
.lb-v iframe{width:100%;height:100%;border:0}
.lb.v{width:min(420px,88vw,calc(82vh * 9 / 16))}
.lb.v .lb-v{aspect-ratio:9/16}
.lb-x{position:absolute;top:-56px;right:0;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--navy);font-size:18px;font-weight:700;cursor:pointer}

/* ── 23. 모션 ───────────────────────────────────────────────────── */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.in.card:hover,.js .rv.in.svc:hover,.js .rv.in.spec:hover,.js .rv.in.vid:hover,.js .rv.in.work:hover,.js .rv.in.col-card:hover{transform:translateY(-5px);transition-delay:0s!important}
.js .rv.in.client:hover{transform:translateY(-3px);transition-delay:0s!important}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .dash .draw{stroke-dashoffset:0}.dash .pt{opacity:1}
}

/* ── 24. 보조 레이아웃 ─────────────────────────────────────────── */
/* 왼쪽 고정 섹션 헤더 + 오른쪽 내용 */
.side{display:grid;grid-template-columns:minmax(280px,.8fr) 1.4fr;gap:clamp(40px,6vw,96px);align-items:start}
.side>.sh{position:sticky;top:calc(var(--hd) + 88px);margin-bottom:0}
.sh .btn{margin-top:28px;height:52px;font-size:17px}
.sh .more{margin-top:24px}
@media(max-width:960px){.side{grid-template-columns:1fr;gap:40px}.side>.sh{position:static}}
/* 섹션 헤더 오른쪽 작은 사진 */
.sh-ph{flex:none;width:min(360px,34%);aspect-ratio:16/10;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);background:var(--bg-3)}
.sh-ph img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.sh-ph{width:100%}}
/* 세로 스텝(타임라인) */
.steps.v{grid-template-columns:1fr;gap:14px}
.steps.v .step{display:grid;grid-template-columns:96px 1fr;gap:4px 20px;padding:24px 28px}
.steps.v .step::before{grid-row:span 2;align-self:start;text-align:center}
.steps.v .step::after{display:none}
.steps.v .step h3{margin-top:0}
.steps.v .step p{margin-top:4px}
@media(max-width:600px){
  .steps.v{padding-left:20px}
  .steps.v .step{grid-template-columns:1fr;padding:22px 20px}
  .steps.v .step::before{justify-self:start;margin-bottom:12px}
  .steps.v .step::after{display:block}
}
/* 히어로 숫자 카드 */
.ui-stat{left:-8px;bottom:0;width:240px;animation-delay:.45s}
.ui-stat .big{display:flex;align-items:baseline;gap:4px;margin:6px 0 8px;font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--orange)}
.ui-stat .big span{font-size:20px}
@media(max-width:560px){.ui-stat{width:200px;padding:12px 14px}.ui-stat .big{font-size:34px}}
/* 영상 종류 카드 */
.card.fmt{padding:14px 14px 26px}
.card.fmt img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;margin-bottom:20px}
.card.fmt h3,.card.fmt p{padding:0 10px}
/* 채널 카드 */
.chan{display:flex;gap:8px;align-items:center;min-height:52px;margin-bottom:18px}
.chan .ico{width:40px;height:40px;padding:8px;border-radius:12px;background:var(--bg-2)}
.chan .kk{width:40px;height:40px;border-radius:12px}
.chan .kk .ico{width:24px;height:24px;padding:0;background:none}
/* 전환 흐름 */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative}
.flow li{position:relative;padding:32px 28px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.flow li+li::before{content:"";position:absolute;left:-17px;top:50px;z-index:2;width:14px;height:14px;border-top:2.5px solid var(--line-2);border-right:2.5px solid var(--line-2);transform:rotate(45deg)}
.flow li.hi{background:var(--navy);border-color:var(--navy);box-shadow:var(--sh-3)}
.flow li.hi h3{color:#fff}
.flow li.hi>p{color:var(--on-navy-2)}
.flow li.hi .fi{background:rgba(255,255,255,.1);color:#fff}
.flow h3{font-size:21px}
.flow p{margin-top:10px;font-size:16px;line-height:1.65}
.flow .fast{display:flex;align-items:center;gap:16px;margin-top:22px;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.08)}
.flow .fast b{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--orange)}
.flow .fast b small{font-size:20px;margin-left:2px;color:var(--orange)}
.flow .fast span{font-size:15px;font-weight:600;line-height:1.5;color:#fff}
@media(max-width:860px){.flow{grid-template-columns:1fr}.flow li+li::before{left:50%;top:-17px;margin-left:-7px;transform:rotate(135deg)}}
/* 포트폴리오 히어로 작업물 모자이크 */
.works-mosaic{aspect-ratio:1.15;box-shadow:none}
.works-mosaic figure:first-child img,.works-mosaic figure:nth-child(2) img{object-position:top}
.works-mosaic figure{box-shadow:var(--sh-2)}
@media(max-width:960px){.works-mosaic{max-width:640px}}

/* ── 25. 칼럼 본문 ─────────────────────────────────────────────── */
.art-sec{padding-top:clamp(40px,5vw,72px)}
.article{max-width:800px}
.art-head{text-align:left}
.art-head h1{margin-top:20px;font-size:clamp(32px,4vw,50px);line-height:1.25;letter-spacing:-.05em}
.art-head .meta{margin-top:16px;font-size:15px;font-weight:600;color:var(--muted)}
.cover{margin:36px 0 44px;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:16/8.5;box-shadow:var(--sh-2);background:var(--bg-3)}
.cover img{width:100%;height:100%;object-fit:cover}
.article .lede{font-size:clamp(19px,1.6vw,21px);line-height:1.8;font-weight:500;color:var(--navy)}
.article h2{display:flex;align-items:center;gap:12px;margin:60px 0 18px;font-size:clamp(23px,2.2vw,28px);line-height:1.35}
.article h2::before{content:"";flex:none;width:5px;height:1.1em;border-radius:3px;background:var(--orange)}
.article p,.article li{font-size:18px;line-height:1.85}
.article>p{margin-bottom:12px}
.article ul{display:grid;gap:10px;margin:8px 0 20px}
.article li{position:relative;padding:16px 20px 16px 52px;border-radius:var(--r);background:var(--bg-2)}
.article li::before{content:"";position:absolute;left:18px;top:calc(16px + .48em);width:20px;height:20px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
.article .box{margin:40px 0;padding:28px 32px;border-radius:var(--r-lg);background:var(--orange-tint);border-left:4px solid var(--orange);font-size:clamp(19px,1.8vw,22px);font-weight:700;line-height:1.6;letter-spacing:-.03em;color:var(--navy)}
.article .mock{margin:28px 0 12px}
.article .mock .row>span:first-child{line-height:1.6}
.art-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:64px;padding-top:28px;border-top:1px solid var(--line)}
.art-foot .more{margin:0}
.art-foot .back{display:inline-flex;align-items:center;height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line-2);font-size:15px;font-weight:700;color:var(--navy)}
.art-foot .back::before{content:"← ";margin-right:4px}
.art-foot .back:hover{border-color:var(--navy)}
.art-sec+.cta{padding-top:0}
@media(max-width:600px){.article li{padding:14px 16px 14px 46px}.article li::before{left:14px}.article .box{padding:22px 20px}.article .mock .row{flex-direction:column;align-items:flex-start;gap:4px}}
