/* 섹션 간 여백 (회사소개 한정) — 위/아래 80 통일 */
.ek-section { padding: 80px 0; }
.ek-page-hero { padding-bottom: 80px; }
/* 섹션 타이틀 굵기·크기 (회사소개 한정) — 포트폴리오 스케일 */
.ek-section-title { font-weight: 500; font-size: clamp(23px, 3.6vw, 34px); }
/* 타이틀 폰트 종류 — Pretendard 통일 */
.ek-page-hero h1,
.ek-section-title,
.ek-sol-sub, .ek-sol-card h4,
.dg-do-h2,
.ek-ws-title,
.ek-biz-name,
.ek-tl-year { font-family: 'Pretendard', sans-serif; }
/* eyebrow 영문 굵기 통일 700 */
.ek-eyebrow, .dg-do-eyebrow,
.ek-sol-head .ek-eyebrow, .ek-biz-head .ek-eyebrow,
.ek-tl-head .ek-eyebrow, .ek-location-section .ek-eyebrow { font-weight: 700; }

/* 비주얼(히어로) 배경 이미지 */
.ek-page-hero { position: relative; border-bottom: none; background: linear-gradient(180deg, rgba(8, 11, 20, .25) 0%, rgba(8, 11, 20, .32) 45%, rgba(8, 11, 20, .72) 100%), url(../img/visual-bg.jpg) center/cover no-repeat, #0b1120; color: #fff; }
.ek-page-hero .ek-breadcrumb, .ek-page-hero .ek-breadcrumb a, .ek-page-hero .ek-breadcrumb span, .ek-page-hero .ek-breadcrumb i, .ek-page-hero h1 { color: #fff; }
.ek-page-hero .ek-breadcrumb a { opacity: .85; }
.ek-page-hero p { color: #d7dce4; }
/* 비주얼 히어로 — 풀블리드 이미지 + 하단 대형 헤드라인 */
.ek-hero-visual { padding: 44px 0 60px; }
.ek-hero-visual .ek-container { display: flex; flex-direction: column; min-height: 58vh; }
.ek-hero-bottom { margin-top: auto; }
.ek-hero-bottom p { margin: 0 0 16px; max-width: 640px; color: #d7dce4; font-size: 1.05rem; }
.ek-hero-visual h1 { margin: 0; font-size: clamp(2.6rem, 7.5vw, 6rem); font-weight: 800; line-height: 1.03; letter-spacing: -.02em; }
@media (max-width: 800px) {
    .ek-hero-visual { padding: 28px 0 40px; }
    .ek-hero-visual .ek-container { min-height: 46vh; }
    .ek-hero-visual h1 { font-size: clamp(2.1rem, 8vw, 3rem); }
    .ek-hero-bottom p { font-size: .98rem; margin-bottom: 12px; }
}

/* ── 인사말 ── */
.ek-greeting-wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: start; }
.ek-greeting-head .ek-section-title { margin: 0; font-size: clamp(2rem, 2.55rem, 2.55rem); }
.ek-greeting-body { border-top: 1px solid var(--ink); padding-top: 34px; }
.ek-greeting-body p { margin: 0 0 20px; color: var(--muted); font-size: 1.05rem; line-height: 1.85; }
.ek-greeting-body strong { color: var(--ink); font-weight: 700; }
.ek-greeting-sign { margin-top: 32px; color: var(--ink); font-weight: 700; font-size: 1.02rem; display: flex; align-items: center; flex-wrap: wrap; }
.ek-sign-hand { font-family: 'Nanum Pen Script', 'Pretendard', cursive; color: #111; font-weight: 400; font-size: 2.6rem; line-height: 1; margin-left: 14px; transform: rotate(-6deg); transform-origin: left center; white-space: nowrap; }
.ek-sign-hand span { display: inline-block; }
.js .ek-sign-hand span { clip-path: inset(0 100% 0 0); }
.js .ek-greeting-body.in .ek-sign-hand span { animation: ekSignWrite .55s ease-out both; }
.js .ek-greeting-body.in .ek-sign-hand span:nth-child(1) { animation-delay: .45s; }
.js .ek-greeting-body.in .ek-sign-hand span:nth-child(2) { animation-delay: 1s; }
.js .ek-greeting-body.in .ek-sign-hand span:nth-child(3) { animation-delay: 1.55s; }
.js .ek-greeting-body.in .ek-sign-hand span:nth-child(4) { animation-delay: 2.1s; }
@keyframes ekSignWrite { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@media (prefers-reduced-motion: reduce) { .js .ek-sign-hand span { clip-path: none; animation: none; } }
@media (max-width: 800px) { .ek-greeting-wrap { grid-template-columns: 1fr; gap: 32px; } .ek-greeting-body { padding-top: 28px; } .ek-greeting-body p { font-size: 1rem; } }

/* ── 솔루션/서비스 (레퍼런스 레이아웃) ── */
.ek-sol-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; margin-bottom: 80px; }
.ek-sol-head .ek-eyebrow { color: var(--ink); font-size: .95rem; font-weight: 600; letter-spacing: 0; margin: 0; }
.ek-sol-sub { font-size: clamp(2rem, 2.55rem, 2.55rem); font-weight: 500; line-height: 1.25; letter-spacing: -.01em; text-align: right; }
.ek-sol-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.ek-sol-media { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: #eef1f5; color: #fff; margin-bottom: 18px; }
.ek-sol-media i { font-size: 3.6rem; color: rgba(255, 255, 255, .95); }
.ek-sol-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .55s cubic-bezier(.22, .61, .36, 1); }
.ek-sol-card:hover .ek-sol-media img { transform: scale(1.08); }
.ek-sol-card h4 { font-size: 1.15rem; font-weight: 800; margin-bottom: 8px; }
.ek-sol-card p { color: var(--muted); font-size: .95rem; line-height: 1.6; }
@media (max-width: 800px) {
    .ek-sol-head { grid-template-columns: 1fr; gap: 12px; }
    .ek-sol-sub { text-align: left; }
    .ek-sol-grid { grid-template-columns: 1fr; gap: 24px; }
    .ek-sol-media { aspect-ratio: 16 / 10; }
}

/* ── 사업(스튜디오) 카드 → /business ── */
.ek-biz-section { padding: 80px 0 0; border-top: 1px solid var(--line); }
.ek-biz-head { padding: 40px 0 80px; margin-bottom: 0; }
.ek-biz-head .ek-eyebrow { color: var(--ink); font-size: .95rem; font-weight: 600; letter-spacing: 0; margin-bottom: 16px; }
.ek-biz-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.ek-biz-item { position: relative; display: flex; flex-direction: column; min-height: 440px; padding: 46px 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); transition: background .25s ease, transform .32s cubic-bezier(.34, 1.56, .64, 1); }
.ek-biz-item:first-child { border-left: 1px solid var(--line); }
.ek-biz-item:hover { background: var(--canvas); transform: translateY(-6px); }
.ek-biz-no { color: var(--muted); font-size: 1.15rem; font-weight: 800; letter-spacing: .05em; }
.ek-biz-name { display: flex; align-items: center; gap: 6px; margin-top: 44px; font-size: 1.2rem; font-weight: 800; }
.ek-biz-name i { color: var(--muted); font-size: 1.05rem; transition: transform .25s ease, color .25s ease; }
.ek-biz-item:hover .ek-biz-name i { color: var(--blue); transform: translate(2px, -2px); }
.ek-biz-en { margin-top: 4px; color: var(--muted); font-size: .85rem; font-weight: 700; }
.ek-biz-desc { margin: 14px 0 0; color: var(--muted); font-size: .82rem; font-weight: 400; line-height: 1.55; }
.ek-biz-media { margin-top: auto; display: flex; align-items: flex-end; }
.ek-biz-media img { width: 56px; height: 56px; }
@media (max-width: 800px) { .ek-biz-grid { grid-template-columns: 1fr 1fr; } .ek-biz-item { min-height: 220px; } .ek-biz-item:nth-child(odd) { border-left: 1px solid var(--line); } }
@media (max-width: 460px) { .ek-biz-grid { grid-template-columns: 1fr; } .ek-biz-item { min-height: auto; } }

/* ── 신뢰 지표: 숫자로 증명 (digital 이식) ── */
.dg-do { background: #f8f9fb; }
.dg-do-in { max-width: 1080px; margin: 0 auto; padding: 80px 28px 52px; color: var(--ink); text-align: center; }
.dg-do-eyebrow { display: block; color: var(--ink); font-weight: 600; font-size: .95rem; letter-spacing: 0; margin-bottom: 16px; }
.dg-do-h2 { font-weight: 500; font-size: clamp(23px, 3.6vw, 34px); line-height: 1.25; letter-spacing: -.02em; color: var(--ink); margin: 0; }
.dg-do-h2 .hl { background: linear-gradient(100deg, #3699ff 0%, #2563eb 55%, #1b3aa3 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.dg-do-sub { color: var(--muted); font-size: 15px; margin: 16px auto 50px; max-width: 620px; line-height: 1.7; }
.dg-do-nums { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 80px; }
.dg-do-stat { text-align: center; position: relative; padding: 0 10px; }
.dg-do-stat + .dg-do-stat::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 1px; background: #d5d9e0; }
.dg-do-pre { font-size: 14.5px; font-weight: 800; color: var(--blue); letter-spacing: .04em; margin-bottom: 14px; }
.dg-do-v { font-weight: 800; letter-spacing: -.02em; line-height: 1; color: var(--ink); font-size: clamp(26px, 3.4vw, 40px); }
.dg-do-v .u { font-size: .42em; font-weight: 800; margin-left: 3px; color: var(--blue); }
.dg-do-k { font-size: 13px; margin-top: 11px; color: var(--muted); }
.ek-logos-band { padding: 56px 0 80px; background: #f8f9fb; }
@media (max-width: 900px) { .dg-do-nums { grid-template-columns: repeat(2, 1fr); gap: 36px 0; } .dg-do-stat:nth-child(odd)::before { display: none; } }
@media (max-width: 480px) { .dg-do-in { padding: 64px 20px; } }

/* ── 협력사 로고 마키 (digital 이식) ── */
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.marquee_track { display: flex; gap: 50px; align-items: center; width: max-content; animation: marq 28s linear infinite; }
@keyframes marq { to { transform: translateX(-50%); } }
.marquee_track img { height: 30px; width: auto; }

/* ── 타임라인 (스크롤 파란선) ── */
.ek-tl-section { background: linear-gradient(rgba(10, 15, 26, .55), rgba(10, 15, 26, .68)), url(../img/history-bg.jpg) center/cover no-repeat, #0a0f1a; color: var(--white); }
.ek-tl-head { text-align: center; margin-bottom: 80px; }
.ek-tl-head .ek-eyebrow { color: var(--blue); font-size: .95rem; font-weight: 600; letter-spacing: 0; }
.ek-location-section .ek-eyebrow { color: var(--ink); font-size: .95rem; font-weight: 600; letter-spacing: 0; }
.ek-tl-head .ek-section-title { margin: 0 auto; color: var(--white); }
.ek-timeline { position: relative; padding: 0; }
.ek-tl-item:last-child { padding-bottom: 0; }
.ek-tl-track { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); background: rgba(255, 255, 255, .1); }
.ek-tl-fill { width: 100%; height: 0; background: linear-gradient(180deg, #3699ff, #2563eb); box-shadow: 0 0 12px rgba(54, 153, 255, .7); transition: height .1s linear; }
.ek-tl-item { position: relative; width: 50%; padding: 0 48px 72px; box-sizing: border-box; }
.ek-tl-item:nth-child(odd) { margin-left: 50%; text-align: left; }
.ek-tl-item:nth-child(even) { margin-left: 0; text-align: right; }
.ek-tl-dot { position: absolute; top: 6px; width: 15px; height: 15px; border-radius: 50%; background: #1a2436; border: 2px solid rgba(255, 255, 255, .25); z-index: 2; transition: background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.ek-tl-item:nth-child(odd) .ek-tl-dot { left: -7.5px; }
.ek-tl-item:nth-child(even) .ek-tl-dot { right: -7.5px; }
.ek-tl-item.on .ek-tl-dot { background: var(--blue); border-color: #8ec5ff; box-shadow: 0 0 0 5px rgba(37, 99, 235, .2), 0 0 14px rgba(54, 153, 255, .8); }
.ek-tl-year { font-size: 1.9rem; font-weight: 850; color: #8ec5ff; letter-spacing: -.01em; margin-bottom: 6px; }
.ek-tl-title { font-size: 1.15rem; font-weight: 800; color: #fff; letter-spacing: -.01em; line-height: 1.35; margin: 0 0 15px; }
.ek-tl-list { display: inline-block; text-align: left; }
.ek-tl-list li { position: relative; margin-bottom: 8px; padding-left: 14px; color: #c3cad6; font-size: .95rem; }
.ek-tl-list li::before { content: '-'; position: absolute; left: 0; color: #8a93a4; }
/* 스크롤 등장 제거 — 타임라인 텍스트(연도·제목·항목) 즉시 노출 */
.js .ek-tl-year, .js .ek-tl-title, .js .ek-tl-list li { opacity: 1; transform: none; }
.ek-tl-list li:nth-child(1) { transition-delay: .08s; }
.ek-tl-list li:nth-child(2) { transition-delay: .20s; }
.ek-tl-list li:nth-child(3) { transition-delay: .32s; }
.ek-tl-list li:nth-child(4) { transition-delay: .44s; }
.ek-tl-list li:nth-child(5) { transition-delay: .56s; }
.ek-tl-list li:nth-child(6) { transition-delay: .68s; }
@media (prefers-reduced-motion: reduce) { .js .ek-tl-list li, .js .ek-tl-year, .js .ek-tl-title { opacity: 1; transform: none; } }
@media (max-width: 720px) {
    .ek-tl-track { left: 20px; }
    .ek-tl-item, .ek-tl-item:nth-child(odd), .ek-tl-item:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 56px 52px; text-align: left; }
    .ek-tl-item:nth-child(odd) .ek-tl-dot, .ek-tl-item:nth-child(even) .ek-tl-dot { left: 13px; right: auto; }
}

/* ── 워크스페이스 사진 갤러리 ── */
.ek-ws-section { background: var(--canvas); overflow: hidden; }
.ek-ws-head { text-align: center; margin-bottom: 80px; }
.ek-ws-title { font-size: clamp(23px, 3.6vw, 34px); line-height: 1.25; font-weight: 500; letter-spacing: -.01em; }
.ek-ws-title span { color: var(--blue); }
.ek-ws-head p { max-width: 720px; margin: 18px auto 0; color: var(--muted); font-size: 1.02rem; line-height: 1.7; }
.ek-ws-strip { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.ek-ws-track { display: flex; gap: 20px; width: max-content; animation: ek-ws-scroll 35s linear infinite; }
@keyframes ek-ws-scroll { to { transform: translateX(-50%); } }
.ek-ws-tile { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 380px; height: 260px; border-radius: 12px; overflow: hidden; background: #e7eaf0; color: #9aa4b2; font-size: .9rem; }
.ek-ws-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 600px) { .ek-ws-tile { width: 280px; height: 200px; } }

/* ── 오시는 길 (지도) ── */
.ek-location-section .ek-section-head { text-align: center; margin-bottom: 80px; }
.ek-location-section .ek-section-title { margin: 0 auto; }
.ek-location { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: stretch; }
.ek-location-map { position: relative; height: 400px; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); }
.ek-location-map .root_daum_roughmap { width: 100% !important; }
.ek-location-map .root_daum_roughmap .wrap_map { height: 400px !important; }
.ek-location-info { display: flex; flex-direction: column; justify-content: center; border-top: 1px solid var(--line); }
.ek-location-info li { display: flex; flex-direction: column; gap: 8px; padding: 22px 4px; border-bottom: 1px solid var(--line); }
.ek-location-info span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .04em; }
.ek-location-info strong { font-size: 1.05rem; }
@media (max-width: 800px) { .ek-location { grid-template-columns: 1fr; gap: 28px; } .ek-location-map { min-height: 300px; } }

/* 타이틀 굵기 — 한글 타이틀 800 (eyebrow 영문 700) */
.ek-page-hero h1, .ek-hero-visual h1, .ek-section-title, .ek-sol-sub, .ek-sol-card h4, .dg-do-h2, .ek-ws-title, .ek-biz-name, .ek-tl-year { font-weight: 800; }
/* 예외 — 이 두 타이틀만 700 유지 */
.ek-greeting-head .ek-section-title, .ek-sol-sub { font-weight: 700; }
