/*     2358784 : 스크롤 블록/셀 슬라이드 js      */
.empty__2358784__ {padding:20px 10px;background:#fafafa;font-size:13px;color:blue;text-align:center}
.empty__2358784__ p{font-size:17px;font-weight:bold}
.empty__2358784__ dl{margin:0;text-align:left;color:#333}
.empty__2358784__ dt{margin-bottom:5px;font-size:14px}
.empty__2358784__ dd{margin:0;font-size:13px}


/*     2358794 : 이미지      */
.shgroup, .shgroup .sub_top_wrap, .contents_wrap .sub_page_top {display:none;}
#sub_view #container .contents_wrap, #sub_view #container .contents_wrap .contents {padding:0;}
.section ul, .section li {list-style: none; vertical-align: middle;}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --primary: #0074ff;
  --primary-pale: #328fff;
  --text-main: #1a1a1a;
  --text-sub: #666;
  --text-muted: #aaa;
  --border: #efefef;
  --pill: 100px;
  --font: 'font-family: 'Pretendard-Regular';
  --max: 1400px;
}

a { text-decoration: none; color: inherit; }
button {font-family: 'Pretendard-Regular'; cursor: pointer; border: none; background: none; }
.wrap { max-width: 1400px; margin: 0 auto; padding: 0 40px; }

/* ── HERO ── */
.hero {
  min-height: 100vh;background: linear-gradient(135deg, #1a0533 0%, #2d0a6b 35%, #3b0f8a 60%, #1e1060 100%);
  position: relative; overflow: hidden;display: flex; align-items: center;
}
/* 배경 빛 효과 */
.hero::before {
	content: '';position: absolute; top: -20%; right: 5%;width: 600px; height: 600px;
	background: radial-gradient(ellipse, rgba(139,92,246,0.25) 0%, transparent 70%);pointer-events: none;
}
.hero::after {
    content: '';position: absolute; bottom: -10%; left: 20%;width: 400px; height: 400px;
	background: radial-gradient(ellipse, rgba(59,130,246,0.15) 0%, transparent 70%);pointer-events: none;
}
/* 배경 도트 패턴 */
.hero-dots {
  position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 32px 32px;
}
.hero .wrap {position: relative; z-index: 2; display: grid; grid-template-columns: 2fr 3fr;align-items: center; gap: 30px; padding:0;}
.hero-text { display: flex; flex-direction: column; justify-content: center; align-self: center; }
 
.hero-kido {display: inline-flex; align-items: center; gap: 10px;margin-bottom: 30px;}
.hero-kido-badge {
	display: inline-flex; align-items: center; gap: 8px;background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.2);padding: 8px 16px; border-radius: var(--pill);
}
.hero-kido-dot {
  width: 8px; height: 8px; border-radius: 50%;background: #a78bfa;box-shadow: 0 0 8px rgba(167,139,250,0.8);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .6; transform: scale(0.85); }
}
.hero-kido-text { font-size: 12px; font-family: 'Pretendard-Regular'; color: rgba(255,255,255,0.7); letter-spacing: 0.05em; word-break:keep-all;}
 
.hero-sub {font-size: 14px; font-family: 'Pretendard-Regular'; color: #a78bfa;letter-spacing: 0.15em; text-transform: uppercase;margin-bottom: 20px;word-break:keep-all;}
.hero-title {margin-bottom: 25px;font-size: 55px; font-family: 'Pretendard-Bold'; line-height: 1.2em;color: #fff; letter-spacing: -.05em;word-break:keep-all;}
.hero-title em { font-style: normal; color: #c4b5fd; letter-spacing: -.05em; word-break:keep-all;}
.hero-title strong { font-family: 'Pretendard-Bold'; color: #fff; }
 
.hero-desc {font-size: 16px; font-family: 'Pretendard-Regular'; color: rgba(255,255,255,0.65);line-height: 1.7em; margin-bottom: 30px; max-width: 480px;word-break:keep-all;}
 
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-btn-primary {
	display: inline-flex; align-items: center; gap: 8px;font-size: 16px; font-family: 'Pretendard-Bold'; color: #fff; background: var(--primary);
	padding: 15px 30px; border-radius: var(--pill);transition: all .2s;box-shadow: 0 8px 24px rgba(124,58,237,0.4);word-break:keep-all;
}
.hero-btn-primary:hover { background: #6d28d9; transform: translateY(-2px); }
.hero-btn-primary svg { width: 15px; height: 15px; }
.hero-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;font-size: 16px; font-family: 'Pretendard-Bold'; color: rgba(255,255,255,0.85);
  background: rgba(255,255,255,0.1);border: 1px solid rgba(255,255,255,0.25);padding: 15px 30px; border-radius: var(--pill);transition: all .2s;word-break:keep-all;
}
.hero-btn-ghost:hover { background: rgba(255,255,255,0.18); }
.hero-btn-ghost svg { width: 15px; height: 15px; }
 
/* 스크롤 인디케이터 */
.hero-scroll {position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%);display: flex; flex-direction: column; align-items: center; gap: 8px; z-index: 2;}
.hero-scroll-text { font-size: 10px; font-family: 'Pretendard-Bold'; letter-spacing: 0.2em; color: rgba(255,255,255,0.4); text-transform: uppercase; word-break:keep-all;}
.hero-scroll-line {width: 1px; height: 48px;background: linear-gradient(to bottom, rgba(255,255,255,0.4), transparent);animation: scrolldown 1.8s ease-in-out infinite;}

@keyframes scrolldown {
  0% { transform: scaleY(0); transform-origin: top; opacity: 1; }
  50% { transform: scaleY(1); transform-origin: top; opacity: 1; }
  100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
}
 
/* SVG 영역 */
.hero-visual {position: relative; display: flex; align-items: center; justify-content: center;align-self: center;}
.hero-visual svg { width: 100%; height: auto; }

/* ── LOGO SLIDER ── */
.logo-slider {background: #fff;border-top: 1px solid var(--border);border-bottom: 1px solid var(--border);overflow: hidden;position: relative;padding: 30px 0;}
.logo-slider::before,
.logo-slider::after {content: ''; position: absolute; top: 0; width: 160px; height: 100%; z-index: 2; pointer-events: none;}
.logo-slider::before { left: 0;  background: linear-gradient(to right, #fff 60%, transparent 100%); }
.logo-slider::after  { right: 0; background: linear-gradient(to left,  #fff 60%, transparent 100%); }
 
/* track은 flex + CSS animation으로만 움직임 — JS 불필요 */
.logo-track {display: flex;align-items: center;width: max-content;animation: logoScroll 20s linear infinite;}
.logo-slider:hover .logo-track {animation-play-state: paused;}

@keyframes logoScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
 
.logo-item {display: flex;align-items: center;justify-content: center;padding: 0 50px;flex-shrink: 0;height: 70px;position: relative;}
.logo-item + .logo-item::before {content: '';position: absolute; left: 0; top: 50%; transform: translateY(-50%);width: 1px; height: 26px; background: #e8e8e8;}
.logo-item img {height: 50px;width: auto;max-width: 200px;object-fit: contain;filter: grayscale(100%) opacity(0.55);transition: filter .3s ease;display: block;}
.logo-item:hover img { filter: grayscale(0%) opacity(1); }
 
/* 반응형 */
@media (max-width: 1023px) {
  .wrap, .hero .wrap { padding: 0 5%; }
  .logo-item img { filter: none; opacity: 1; } 
  /* ── 모바일: 하나씩 페이드 전환 ── */
  /* 스크롤 트랙 숨기고 슬라이더를 고정 높이 박스로 전환 */
  .logo-slider {padding: 0;}
  .logo-slider::before,
  .logo-slider::after { display: none; }
 
  .logo-track {display: block;width: 100%;animation: none; position: relative;height:50px;}
 
  /* 모든 아이템 절대위치로 겹쳐 쌓기 */
  .logo-item {position: absolute;inset: 0;width: 100%;height: 100%;padding: 0;display: flex;align-items: center;justify-content: center;opacity: 0;animation: logoFade 18s linear infinite;}
  .logo-item + .logo-item::before { display: none; }
 
  /* SET2는 숨김 (모바일에서는 SET1 6개만 사용) */
  .logo-item:nth-child(n+7) { display: none; }
 
  /* 6개 아이템 순차 딜레이 — 각 3초씩 표시 (총 18s 루프) */
  .logo-item:nth-child(1) { animation-delay:  0s; }
  .logo-item:nth-child(2) { animation-delay:  3s; }
  .logo-item:nth-child(3) { animation-delay:  6s; }
  .logo-item:nth-child(4) { animation-delay:  9s; }
  .logo-item:nth-child(5) { animation-delay: 12s; }
  .logo-item:nth-child(6) { animation-delay: 15s; }

  .logo-item img {height: 50px;max-width: 220px;}
}
/* 페이드인 → 유지 → 페이드아웃 keyframe
   전체 18s 중 1개 아이템이 담당하는 구간: 3s = 100% * (3/18) ≈ 16.6% */
@keyframes logoFade {
  0%      { opacity: 0; }
  5%      { opacity: 1; }        /* 페이드인 */
  13.33%  { opacity: 1; }        /* 유지 */
  16.66%  { opacity: 0; }        /* 페이드아웃 */
  100%    { opacity: 0; }        /* 다음 루프까지 대기 */
}

@media (max-width: 1023px) {
	.logo-slider {padding:10px 0;}
	.logo-item:hover img, .logo-item img { filter: none; opacity: 1; }
}
@media (max-width: 768px) {
	.logo-item { padding: 0 20px; }
}

/* ── VOUCHER INFO ── */
.voucher-info { padding: 80px 0; background: #fff; }
.vi-head { text-align: center; margin-bottom: 50px; }
.vi-eyebrow { font-size: 12px; font-family: 'Pretendard-Bold'; letter-spacing: 0.15em; color: var(--primary); text-transform: uppercase; margin-bottom: 15px; }
.vi-title {font-size: 35px; font-family: 'Pretendard-Bold'; line-height: 1.5em; letter-spacing: -.03em; color: var(--text-main); word-break:keep-all;}
.vi-title em { font-style: normal; color: var(--primary); word-break:keep-all;}
.vi-desc { font-size: 16px; font-family: 'Pretendard-Regular'; color: var(--text-sub); line-height: 1.7em; margin-top: 15px; word-break:keep-all;}
 
/* 단계 카드 */
.vi-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; margin-bottom: 56px; }
.vi-step {padding: 36px 28px; border-radius: 0; background: #f7f7f7;position: relative; transition: background .2s;}
.vi-step:first-child { border-radius: 20px 0 0 20px; }
.vi-step:last-child  { border-radius: 0 20px 20px 0; }
.vi-step:hover { background: #f0f9ff; }
.vi-step-num {font-size: 40px; font-family: 'Pretendard-Bold'; line-height: 1;color: var(--primary); opacity: 0.12;letter-spacing: -.05em; margin-bottom: 15px;word-break:keep-all;}
.vi-step-icon {display: flex; align-items: center; justify-content: center;width: 44px; height: 44px; border-radius: 13px;margin-bottom: 15px;}
.vi-step-icon svg { width: 22px; height: 22px; color: #fff; }
.vi-step-title { font-size: 16px; font-family: 'Pretendard-Bold'; color: var(--text-main); margin-bottom: 10px; letter-spacing: -.01em; }
.vi-step-desc { font-size: 14px; font-family: 'Pretendard-Regular'; color: var(--text-sub); line-height: 1.7em; word-break:keep-all;}
 
/* 서비스 분야 태그 */
.vi-fields { }
.vi-fields-title { font-size: 14px; font-family: 'Pretendard-Bold'; color: var(--text-sub); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 15px; text-align: center; word-break:keep-all;}
.vi-tags { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.vi-tag {
	display: inline-flex; align-items: center; gap: 7px;font-size: 14px; font-family: 'Pretendard-Bold';padding: 10px 20px;
	border-radius: var(--pill);border: 1px solid var(--border);transition: all .2s; cursor: default;word-break:keep-all;
}
.vi-tag:hover { border-color: var(--primary); color: var(--primary); background: #faf5ff; }
.vi-tag-dot { width: 7px; height: 7px; border-radius: 50%; }
  
/* ── STRENGTHS ── */
.strengths { padding: 80px 0; background: #fafafa; }
.st-head { margin-bottom: 50px; }
.st-eyebrow { font-size: 12px; font-family: 'Pretendard-Bold'; letter-spacing: 0.16em; color: var(--primary); text-transform: uppercase; margin-bottom: 10px; }
.st-title {font-size: 35px; font-family: 'Pretendard-Bold'; line-height: 1.5em; letter-spacing: -.03em; color: var(--text-main); word-break:keep-all;}
.st-title em { font-style: normal; color: var(--primary); }
.st-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.st-card {background: #fff; border-radius: 20px;padding: 30px 25px;border: 1px solid var(--border);transition: transform .2s, box-shadow .2s;}
.st-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(124,58,237,.07); }
.st-card-icon {width: 48px; height: 48px; border-radius: 14px;display: flex; align-items: center; justify-content: center;margin-bottom: 20px;}
.st-card-icon svg { width: 24px; height: 24px; color: #fff; }
.st-card-title { font-size: 18px; font-family: 'Pretendard-Bold'; color: var(--text-main); margin-bottom: 10px; letter-spacing: -.03em; word-break:keep-all;}
.st-card-desc { font-size: 16px; font-family: 'Pretendard-Regular'; color: var(--text-sub); line-height: 1.7em; word-break:keep-all;}

/* ══════════════════════════════════════════
   HISTORY (연혁) — GSAP 스크롤 타임라인
══════════════════════════════════════════ */
.history {padding: 100px 0;background: #fff;overflow: hidden;}
.history .wrap { position: relative; } 
.history-head { margin-bottom: 70px; }
.history-eyebrow { font-size: 16px; font-family: 'Pretendard-Bold'; letter-spacing: 0.2em; color: var(--primary); text-transform: uppercase; margin-bottom: 10px; word-break:keep-all;}
.history-title { font-size: 35px; font-family: 'Pretendard-Bold'; line-height: 1.5em; letter-spacing: -.03em; color: var(--text-main); word-break: keep-all; }
.history-title em { font-style: normal; color: var(--primary); word-break:keep-all;}
 
/* 타임라인 레이아웃 */
.timeline {position: relative;padding-left: 0;}
 
/* 세로 선 */
.timeline-line {position: absolute;left: 160px;top: 0;bottom: 0;width: 2px;background: var(--border);transform-origin: top;}
.timeline-line-fill {position: absolute;left: 0;top: 0;width: 100%;height: 0%;background: linear-gradient(to bottom, var(--primary), var(--primary-pale));transition: height .05s;}
 
/* 연도 그룹 */
.year-group {display: grid;grid-template-columns: 160px 1fr;position: relative;margin-bottom: 50px;opacity: 0;transform: translateY(30px);}
.year-group:last-child { margin-bottom: 0; }
 
/* 연도 레이블 */
.year-label {position: relative;padding-right: 40px;display: flex;align-items: flex-start;padding-top: 3px;}
.year-num {font-size: 35px;font-family: 'Pretendard-Bold';color: var(--primary);letter-spacing: -.04em;line-height: 1; word-break:keep-all;}
/* 도트 */
.year-dot {position: absolute;right: -7px;top: 7px;width: 14px;height: 14px;border-radius: 50%;background: var(--primary);border: 3px solid #fff;box-shadow: 0 0 0 2px var(--primary);z-index: 1;}
 
/* 항목 목록 */
.year-items {padding-left: 40px;padding-top: 0;}
.year-item {display: flex;align-items: flex-start;gap: 12px;padding: 12px 0;border-bottom: 1px solid var(--border);opacity: 0;transform: translateX(-12px);}
.year-item:last-child { border-bottom: none; }
.year-item-bullet {flex-shrink: 0;width: 6px;height: 6px;border-radius: 50%;background: var(--primary);opacity: 0.5;margin-top: 8px;}
.year-item-text {font-size: 16px;color: var(--text-main);line-height: 1.6em;word-break: keep-all;}
.year-item-text strong {color: var(--primary);font-family: 'Pretendard-Bold';}

/* ── CTA ── */
.cta { padding: 80px 0 0; }
.cta-card {border-radius: 24px;background: linear-gradient(135deg, #1a0533 0%, #2d0a6b 50%, #1e1060 100%);padding: 70px 55px; text-align: center;position: relative; overflow: hidden;}
.cta-card::before {content: '';position: absolute; top: -30%; right: -5%;width: 400px; height: 400px;background: radial-gradient(ellipse, rgba(139,92,246,0.3) 0%, transparent 65%);pointer-events: none;}
.cta-card::after {content: '';position: absolute; bottom: -20%; left: 10%;width: 300px; height: 300px;background: radial-gradient(ellipse, rgba(59,130,246,0.2) 0%, transparent 65%);pointer-events: none;}
.cta-badge {display: inline-block; position: relative; z-index: 1;font-size: 12px; font-family: 'Pretendard-Bold'; letter-spacing: 0.15em; text-transform: uppercase;color: #a78bfa; background: rgba(167,139,250,0.15);border: 1px solid rgba(167,139,250,0.3);padding: 5px 15px; border-radius: var(--pill); margin-bottom: 20px;word-break:keep-all;}
.cta-title {position: relative; z-index: 1;font-size: 35px; font-family: 'Pretendard-Bold'; line-height: 1.5em;letter-spacing: -.05em; color: #fff; margin-bottom: 15px;word-break:keep-all;}
.cta-title em {font-family: 'Pretendard-Regular'; font-style:normal; color: #c4b5fd; }
.cta-desc {
	position: relative; z-index: 1;margin-bottom: 35px;font-size: 16px; font-family: 'Pretendard-Regular';
	color: rgba(255,255,255,0.6);line-height: 1.7em;word-break:keep-all;
}
.cta-btn {
	display: inline-flex; align-items: center; gap: 8px;font-size: 16px; font-family: 'Pretendard-Bold'; color: #fff;background: var(--primary);
	padding: 15px 35px; border-radius: var(--pill);transition: all .2s; position: relative; z-index: 1;box-shadow: 0 8px 24px rgba(124,58,237,0.5);
}
.cta-btn:hover { background: #6d28d9; transform: translateY(-2px); }
.cta-btn svg { width: 15px; height: 15px; }

/* ── RESPONSIVE ── */
@media (max-width: 1023px) {
	.wrap, .hero .wrap {padding:0 5%}
	.services .wrap {padding:0}
	.svc-icon {display:none;}
	.svc-block-text { padding: 30px 25px;}
}

@media (max-width: 768px) {
	.hero-title { font-size: 35px; }
	.hero .wrap, .vi-steps, .st-grid {gap: 0; grid-template-columns: 1fr; }
	.hero-btns, .vi-step, .st-card {margin-bottom:30px;}
	.vi-step:last-child, .st-card:last-child {margin-bottom:0;}
	.voucher-info, .strengths, .cta {padding:50px 0;}
	.vi-steps {margin-bottom:0;}
	.vi-step {padding: 30px 25px;}
	.vi-step:first-child, .vi-step:last-child {border-radius:0;}
	.vi-step-icon, .vi-step::after {display:none;}
	.vi-step-title, .vi-fields-title, .st-card-title {font-size:22px;}
	.vi-fields-title {margin-top:30px;}
	.vi-step-desc, .st-card-desc {font-size:18px;}
	.svc-inner { padding: 40px 35px; gap: 0; grid-template-columns: 1fr; }
	.svc-num { display: none; }
	.cta-card { padding: 50px 35px; }
	.cta-title { font-size: 30px; }
	.services { padding: 50px 0; }
}

@media (max-width: 540px) {
  .hero { padding: 0; }
  .hero-desc br { display: none; }
  .svc-inner, .cta-card  { padding: 30px 25px; }
  .svc-title { font-size: 20px; }
  .cta-btn { width: 100%; justify-content: center; }
}

@media (min-width: 1024px) {
	.hero {min-height: 100vh;}
	.vi-eyebrow, .vi-step-desc, .vi-fields-title, .vi-tag, .st-eyebrow {font-size:16px;}
	.vi-title {font-size:45px;}
	.hero-desc, .svc-desc, .vi-desc, .vi-step-title, .cta-desc {font-size:18px;}
	.hero-badge, .hero-kido-text, .svc-tag, .cta-badge {font-size:14px;}
	.svc-desc {max-width:700px;}
	.svc-block {margin-bottom:50px;}
	.vi-fields-title {margin-bottom:30px;}
}

/*     2359724 : 공백      */
.solid_line__2359724__ {box-sizing:border-box; display:block; position:relative; width:100%; height:120px;}
.solid_line__2359724__.build_edit_mode {min-height:10px; border:1px dashed red;}
.solid_line__2359724__.build_edit_mode:before {content:'Blank'; display:block; position:absolute; top:50%; left:0; right:0; margin-top:-10px; padding:5px 0; font-size:13px; color:red; text-align:center; line-height:1;}

@media all and (max-width:1023px){
	.solid_line__2359724__ {height:60px;}
}

