/* ---------------------------------------------------------------------
   CLOUDUS 브랜드 오버라이드
   - 원본 테마(qloud-style.css)는 수정하지 않고 이 파일에서 색상·폰트·신규 섹션만 덮어씀
   - 브랜드 컬러: 주 #0D6CC3, 보조 #4472C4, 네이비 #0D1E67(테마 유지)
--------------------------------------------------------------------- */
:root {
  --cu-primary: #0D6CC3;
  --cu-secondary: #4472C4;
  --cu-navy: #0D1E67;
  --cu-heading: #142149;
  --cu-text: #5e7290;
  --cu-bg-soft: #EEF4FB;
}

/* 폰트: Pretendard(한글) 우선 */
body, h1, h2, h3, h4, h5, h6, .iq-title, .icon-box-title, .iq-button, input, textarea, button,
header .navbar .navbar-nav .nav-item a {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Roboto', sans-serif !important;
}
h1, h2, h3, h4, h5, h6 { word-break: keep-all; letter-spacing: -0.01em; }
p, li { word-break: keep-all; }

/* 주 색상 치환 (#007BFC → #0D6CC3) */
a { color: var(--cu-primary); }
a:hover { color: var(--cu-secondary); }
input[type=submit], [type=submit], .iq-button { background: var(--cu-primary); }
input[type=submit]:hover, .iq-button:hover, .iq-button:focus { background: var(--cu-navy); }
.iq-button.iq-btn-outline { background: transparent; border: 2px solid var(--cu-primary); color: var(--cu-primary); }
.iq-button.iq-btn-outline:hover { background: var(--cu-primary); color: #fff; }
input:focus, textarea:focus, select:focus { border-color: var(--cu-primary); }
header .navbar .navbar-nav .nav-item a:hover, header .navbar .navbar-nav .nav-item a.active,
header.header2 .navbar .navbar-nav .nav-item a:hover, header.header2 .navbar .navbar-nav .nav-item a.active { color: var(--cu-primary); }
header.header2 .sub-main ul li a.iq-btn-outline { color: var(--cu-primary); border-color: var(--cu-primary); }
header .sub-main ul li a.iq-button { border-color: var(--cu-primary); background: var(--cu-primary); }
header .sub-main ul li a.iq-button:hover { color: var(--cu-primary); }
header .sub-main ul li a.iq-button.iq-btn-outline:hover { border-color: var(--cu-primary); background: var(--cu-primary); }
header .navbar-toggler { background: var(--cu-primary); }
.iq-icon-box-style-1 .icon-box-img i, .iq-icon-box-style-2 .icon-box-img i { color: var(--cu-primary); }
.iq-icon-box-style-2 .icon-box-img i { background: var(--cu-primary); color: #fff; }
.iq-help .iq-hover:hover { color: var(--cu-primary); }
.blue-bg { background: linear-gradient(135deg, var(--cu-primary) 0%, var(--cu-secondary) 100%); }
footer .copyright-footer a:hover, footer .footer-top .widget ul li a:hover, footer .social-icone li a:hover { color: #8fc1f0; }
footer .footer-top .widget ul li a:before { color: #8fc1f0; }
.iq-subtitle { color: var(--cu-primary); }

/* 헤더: 모든 페이지 흰 배경 고정 헤더(헤더2 변형) */
header.header2 { background: #ffffff; box-shadow: 0 1px 0 rgba(13,30,103,0.06); }
body.cu-home header.header2:not(.menu-sticky) { background: transparent; box-shadow: none; } /* 메인 상단: 헤더를 투명하게 해 히어로 도형이 화면 맨 위까지 올라오게 (스크롤 후 sticky는 흰색) */
header.header2 .navbar .navbar-nav>li { margin-right: 28px; }
header.header2 .navbar .navbar-nav .nav-item a { font-size: 15px; font-weight: 500; }
header.header2 .sub-main ul li a.iq-button { color: #fff; }
header.header2 .sub-main ul li a.iq-button:hover { background: var(--cu-navy); border-color: var(--cu-navy); color: #fff; }
@media (max-width: 992px) {
  header.header2 .navbar-collapse { background: #fff; padding: 10px 15px; border-radius: 6px; box-shadow: 0 8px 24px rgba(13,30,103,0.12); }
  header.header2 .navbar .navbar-nav>li { margin-right: 0; }
}

/* 히어로 (Revolution Slider 대체) */
.cu-hero { position: relative; overflow: hidden; background: var(--cu-bg-soft); padding: 170px 0 90px; }
.cu-hero .cu-eyebrow { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cu-primary); margin-bottom: 18px; }
.cu-hero h1 { font-size: 3.75rem; line-height: 1.2; font-weight: 800; color: var(--cu-heading); margin-bottom: 20px; }
.cu-hero h1 em { font-style: normal; color: var(--cu-primary); }
.cu-hero .cu-lead { font-size: 1.125rem; line-height: 1.7; color: var(--cu-text); margin-bottom: 30px; max-width: 600px; }
.cu-hero .cu-hero-cta .iq-button { margin: 0 10px 10px 0; }
.cu-hero .cu-hero-art img { max-width: 100%; height: auto; }
.cu-hero .cu-hero-note { margin-top: 24px; font-size: 14px; color: var(--cu-text); }
.cu-hero .cu-hero-note strong { color: var(--cu-heading); }
@media (max-width: 1199px) { .cu-hero h1 { font-size: 2.4rem; } }
@media (max-width: 992px)  { .cu-hero { padding: 60px 0 50px; } .cu-hero h1 { font-size: 2rem; } }

/* 섹션 공통 */
.cu-section { padding: 80px 0; }
.cu-section.cu-soft { background: var(--cu-bg-soft); }
.cu-section .iq-title-box { margin-bottom: 40px; }
.cu-intro { font-size: 1.1rem; line-height: 1.85; color: #3f4f6b; max-width: 900px; margin: 0 auto; }
.cu-status { display: inline-block; padding: 6px 14px; border-radius: 999px; background: rgba(13,108,195,0.1); color: var(--cu-primary); font-size: 13px; font-weight: 600; margin-bottom: 14px; }

/* 카드 보강 */
.iq-icon-box-style-1 { background: #fff; border-color: #e6ecf5; }
.iq-icon-box-style-1:hover { box-shadow: 0 12px 32px rgba(13,30,103,0.08); }
.iq-icon-box-style-1 .icon-box-img img { width: 90px; }
.iq-icon-box .icon-box-title { color: var(--cu-heading); font-weight: 700; } /* 카드 제목: 본문 회청색과 구분되도록 제목 네이비·700 */
.iq-icon-box-style-1 .icon-box-title a { color: var(--cu-heading); text-decoration: none; }
.iq-icon-box-style-5 { background: #fff; border-radius: 6px; }

/* 단계 흐름 */
.cu-steps { display: flex; flex-wrap: wrap; gap: 20px; counter-reset: step; }
.cu-steps .cu-step { flex: 1 1 200px; background: #fff; border: 1px solid #e6ecf5; border-radius: 8px; padding: 28px 22px; position: relative; }
.cu-steps .cu-step::before { counter-increment: step; content: counter(step, decimal-leading-zero); display: inline-block; width: 40px; height: 40px; line-height: 40px; text-align: center; border-radius: 50%; background: var(--cu-primary); color: #fff; font-weight: 700; margin-bottom: 14px; }
.cu-steps .cu-step h3 { font-size: 1.1rem; color: var(--cu-heading); margin-bottom: 8px; }
.cu-steps .cu-step p { margin: 0; font-size: 15px; }

/* AS-IS / TO-BE */
.cu-compare { background: #fff; border: 1px solid #e6ecf5; border-radius: 8px; padding: 28px; height: 100%; }
.cu-compare h3 { font-size: 1.15rem; color: var(--cu-heading); margin-bottom: 18px; }
.cu-compare .cu-label { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; color: #9aa6ba; }
.cu-compare .cu-asis { color: #6b7a90; margin-bottom: 16px; }
.cu-compare .cu-tobe { color: var(--cu-heading); font-weight: 600; }
.cu-compare .cu-arrow { color: var(--cu-primary); font-weight: 700; margin: 6px 0; }

/* 체크 리스트 */
.cu-check { list-style: none; padding: 0; margin: 0; }
.cu-check li { position: relative; padding-left: 28px; margin-bottom: 10px; }
.cu-check li::before { content: "\f00c"; font-family: FontAwesome; position: absolute; left: 0; top: 2px; color: var(--cu-primary); }

/* 배지(트랙션) */
.cu-badges { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.cu-badges .cu-badge { background: #fff; border: 1px solid #e6ecf5; border-radius: 8px; padding: 14px 20px; min-width: 180px; text-align: center; }
.cu-badges .cu-badge .cu-badge-year { display: block; font-size: 12px; color: var(--cu-primary); font-weight: 700; margin-bottom: 4px; }
.cu-badges .cu-badge .cu-badge-name { display: block; font-size: 15px; color: var(--cu-heading); font-weight: 600; }

/* 연혁 타임라인 */
.cu-timeline { list-style: none; padding: 0; margin: 0; border-left: 2px solid #dbe5f3; }
.cu-timeline li { position: relative; padding: 0 0 26px 30px; }
.cu-timeline li::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--cu-primary); }
.cu-timeline .cu-date { display: block; font-weight: 700; color: var(--cu-primary); font-size: 14px; margin-bottom: 4px; }
.cu-timeline .cu-event { color: var(--cu-heading); font-size: 16px; }

/* 표 */
/* 표: 흰 카드(둥근 모서리·옅은 그림자) 안에 가로 구분선만. 연한 파랑 섹션 배경과 분리되도록 테두리를 한 단계 진하게 */
.cu-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid #D5DFEE; border-radius: 10px; overflow: hidden; box-shadow: 0 6px 20px rgba(13, 30, 103, 0.06); }
.cu-table th, .cu-table td { padding: 15px 20px; border: 0; border-bottom: 1px solid #E3EAF4; vertical-align: top; text-align: left; line-height: 1.55; }
.cu-table tbody tr:last-child th, .cu-table tbody tr:last-child td { border-bottom: 0; } /* thead 행에는 적용하지 않음(헤더 하단선 유지) */
.cu-table thead th { background: #F3F7FC; color: var(--cu-heading); font-weight: 700; font-size: 14px; letter-spacing: 0.02em; border-bottom: 2px solid #D5DFEE; white-space: nowrap; }
.cu-table tbody th { background: #F8FAFD; color: var(--cu-heading); font-weight: 600; white-space: nowrap; width: 1%; border-right: 1px solid #E3EAF4; } /* 항목-내용 2열 표의 항목 열 */
.cu-table:has(tbody th) thead th:first-child { border-right: 1px solid #D5DFEE; } /* 항목 열이 있는 표는 헤더 행에도 같은 세로 구분선을 이어 줌 */
.cu-table tbody td:first-child:not(:last-child) { color: var(--cu-text); font-size: 14px; } /* 3열 표의 구분 열 */
.cu-table td { word-break: keep-all; } /* 한글 단어 중간('지니어(GENIER)' 등)에서 끊기지 않도록 공백에서만 줄바꿈 */
.cu-table td:first-child, .cu-table td:nth-child(3) { white-space: nowrap; } /* 3열 실적 표의 구분·시기 열만 줄바꿈 없이, 내용 열이 남은 폭을 사용 (2열 기업정보 표에는 미적용) */

/* FAQ (Bootstrap collapse) */
.cu-faq .card { border: 1px solid #e6ecf5; border-radius: 8px; margin-bottom: 12px; overflow: hidden; }
.cu-faq .card-header { background: #fff; border: 0; padding: 0; }
.cu-faq .card-header button { width: 100%; text-align: left; padding: 18px 48px 18px 22px; font-size: 1.05rem; font-weight: 600; color: var(--cu-heading); background: none; border: 0; position: relative; text-decoration: none; }
.cu-faq .card-header button::after { content: "\f107"; font-family: FontAwesome; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); color: var(--cu-primary); transition: transform .2s; }
.cu-faq .card-header button[aria-expanded="true"]::after { transform: translateY(-50%) rotate(180deg); }
.cu-faq .card-body { padding: 0 22px 20px; color: #3f4f6b; line-height: 1.8; }

/* 브레드크럼 */
.iq-breadcrumb-one { background: linear-gradient(135deg, var(--cu-navy) 0%, #143a8a 100%); }

/* 404 */
.cu-404 { padding: 180px 0 120px; text-align: center; }
.cu-404 .cu-code { font-size: 6rem; font-weight: 800; color: var(--cu-primary); line-height: 1; }

/* 푸터 메뉴 */
footer .footer-top .widget ul.menu li { margin-bottom: 8px; }
footer .footer-top .widget ul.menu li a { color: #c9d3e6; padding-left: 16px; position: relative; }
footer .iq-contact li span { color: #c9d3e6; }

/* 헤더 줄바꿈 방지 (데스크톱) */
header .navbar .navbar-nav .nav-item a { white-space: nowrap; }
header .sub-main { white-space: nowrap; flex-shrink: 0; }
header .sub-main ul { margin: 0; padding: 0; }
header .sub-main ul li a.iq-button { padding: 8px 18px; font-size: 14px; }
@media (max-width: 1199px) {
  header.header2 .navbar .navbar-nav>li { margin-right: 18px; }
  header.header2 .navbar .navbar-nav .nav-item a { font-size: 14px; }
  header .sub-main ul li a.iq-button { padding: 7px 14px; font-size: 13px; }
}
@media (max-width: 992px) {
  header .sub-main { display: none; }
}

/* ---------------------------------------------------------------
   히어로 전체화면형 (기존 Revolution Slider 레이아웃 재현)
   - 도형 6개를 가장자리에 배치하고 CSS 애니메이션으로 상하/좌우 10px 왕복
--------------------------------------------------------------- */
.cu-hero.cu-hero-full { min-height: 100vh; display: flex; align-items: center; padding: 120px 0 200px; } /* 하단 패딩을 키워 문구 중심을 화면 상단 약 40% 지점으로 */
.cu-hero-full .cu-hero-inner { position: relative; z-index: 2; perspective: 900px; }
/* 히어로 문구 등장: 구 사이트 슬라이더(rotateX 70deg → 0, Power4 easeInOut, 순차 등장)를 CSS로 재현 */
/* html.cu-anim은 인라인 스크립트가 즉시 붙이고, 페이지 로더가 사라진 뒤 html.cu-go를 붙여 재생 시작. JS가 없으면 그냥 보임 */
.cu-anim .cu-hero-full .cu-eyebrow, .cu-anim .cu-hero-full h1, .cu-anim .cu-hero-full .cu-lead, .cu-anim .cu-hero-full .cu-hero-cta {
  opacity: 0; transform-origin: 50% 50% -50px; transform: rotateX(70deg); backface-visibility: hidden;
}
.cu-anim.cu-go .cu-hero-full .cu-eyebrow, .cu-anim.cu-go .cu-hero-full h1, .cu-anim.cu-go .cu-hero-full .cu-lead, .cu-anim.cu-go .cu-hero-full .cu-hero-cta {
  animation: cu-flip-in 1.6s cubic-bezier(0.77, 0, 0.175, 1) forwards; animation-delay: .4s;
}
/* 구 슬라이더 타이밍: 제목 0.29s, 부제 0.83s, 버튼 1.1s 시작, 각 1.75s (축약형이 delay를 덮지 않도록 같은 선택자 깊이로 지정) */
.cu-anim.cu-go .cu-hero-full .cu-lead { animation-delay: 1s; }
.cu-anim.cu-go .cu-hero-full .cu-hero-cta { animation-delay: 1.8s; }
@keyframes cu-flip-in { from { opacity: 0; transform: rotateX(70deg); } to { opacity: 1; transform: none; } }
/* 배경 도형 슬라이드 등장(구 슬라이더: 가장자리에서 50px, 1s, 0/250/990ms). float 애니메이션(transform)과 겹치지 않도록 translate 속성을 transition으로 사용 */
.cu-anim .cu-shape { opacity: 0; translate: var(--cu-dx, 0) var(--cu-dy, 0); transition: translate .9s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity .9s ease-out; transition-delay: var(--cu-st, 0s); }
.cu-anim.cu-go .cu-shape { opacity: 1; translate: 0 0; }
.cu-s1 { --cu-dy: -50px; --cu-st: .35s; }
.cu-s2 { --cu-dy: -50px; --cu-st: .35s; }
.cu-s3 { --cu-dx: -50px; --cu-st: .1s; }
.cu-s4 { --cu-dy: 50px; --cu-st: .1s; }
.cu-s5 { --cu-dy: 50px; --cu-st: .1s; }
.cu-s6 { --cu-dx: 50px; --cu-st: 1.1s; }
.cu-hero-full .cu-hero-cta .iq-button { margin: 0 6px 10px; }
.cu-hero-full .cu-lead { max-width: 720px; }
.cu-hero-shapes { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
/* 히어로 배경 영상(도형 이미지 대체): 섹션을 꽉 채우고, 문구(z-index 2) 아래에 깔림 */
.cu-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .cu-hero-video { display: none; } .cu-hero.cu-hero-full { background: var(--cu-bg-soft) url("../images/hero-poster.jpg") center / cover no-repeat; } } /* 움직임 최소화 설정: 영상 대신 포스터 정지 이미지 */
.cu-shape { position: absolute; height: auto; will-change: transform; }
.cu-s1 { left: -3.5%; top: -3%;     width: 20%; animation: cu-float-y 3s ease-in-out infinite alternate; }
.cu-s2 { right: -3.3%; top: -3%;    width: 20%; animation: cu-float-y 3s ease-in-out infinite alternate-reverse; }
.cu-s3 { left: -3.4%; bottom: 9%;   width: 11%; animation: cu-float-y 3s ease-in-out infinite alternate; }
.cu-s4 { left: 9%; bottom: -6%;     width: 24%; animation: cu-float-x 3s ease-in-out infinite alternate-reverse; }
.cu-s5 { left: 47%; bottom: -7%;    width: 25%; animation: cu-float-x 3s ease-in-out infinite alternate; }
.cu-s6 { right: -9.5%; bottom: -4%; width: 24%; animation: cu-float-y 3s ease-in-out infinite alternate-reverse; }
@keyframes cu-float-y { from { transform: translateY(-10px); } to { transform: translateY(10px); } }
@keyframes cu-float-x { from { transform: translateX(-10px); } to { transform: translateX(10px); } }
@media (prefers-reduced-motion: reduce) { .cu-shape { animation: none; } .cu-anim .cu-shape { opacity: 1; translate: 0 0; transition: none; } .cu-hero-full .cu-eyebrow, .cu-hero-full h1, .cu-hero-full .cu-lead, .cu-hero-full .cu-hero-cta { animation: none; opacity: 1; transform: none; } }
@media (max-width: 1440px) { .cu-s1, .cu-s2 { top: 52px; } } /* 좁은 데스크톱: 투명 헤더의 로고·버튼과 상단 도형이 겹치지 않도록 */
@media (max-width: 1199px) {
  .cu-s1, .cu-s2 { width: 18%; }
  .cu-s4 { width: 26%; left: 5%; }
  .cu-s5 { width: 27%; left: 48%; }
}
@media (max-width: 992px) {
  .cu-hero.cu-hero-full { min-height: 0; padding: 60px 0 0; }
  .cu-s1, .cu-s2, .cu-s3, .cu-s5 { display: none; }
  .cu-shape { opacity: 0.7; }
  .cu-s4 { width: 46%; left: -8%; bottom: -3%; }
  .cu-s6 { width: 40%; right: -12%; bottom: -3%; }
  .cu-hero-full .cu-hero-inner { padding-bottom: 170px; }
}

/* 헤더 로고: width/height 속성(CLS 방지용)과 테마의 height:40px 충돌로 늘어지는 현상 방지 */
header .navbar .navbar-brand img { height: 40px; width: auto; }
header.menu-sticky .navbar .navbar-brand img { height: 40px; width: auto; }

/* 회사소개 기업정보: 표 아래 전체 폭 지도 */
.cu-company .cu-company-map iframe { width: 100%; height: 400px; min-height: 0; border-radius: 10px; border: 1px solid #D5DFEE; box-shadow: 0 6px 20px rgba(13, 30, 103, 0.06); display: block; }
@media (max-width: 767px) { .cu-company .cu-company-map iframe { height: 300px; } }

/* 푸터 연락처: 불필요한 줄바꿈 방지 */
footer .iq-contact li a span { font-size: 14px; }
footer .footer-top .widget ul.menu li a { font-size: 14px; }

/* 문의 페이지: 이메일 주소 + 복사 버튼 */
.cu-mail-box { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.cu-mail-box .cu-mail-addr { font-size: 1.35rem; font-weight: 700; color: var(--cu-heading); user-select: all; }
.cu-mail-box .iq-button { padding: 8px 18px; line-height: 1.6; }
.cu-mail-msg { margin-top: 10px; font-size: 14px; color: var(--cu-primary); min-height: 1.5em; }

/* 문의 폼 */
.cu-contact-form .cu-select { width: 100%; height: 50px; padding: 0 15px; border: 1px solid #e6ecf5; border-radius: 6px; background: #fff; color: var(--cu-text); margin-bottom: 20px; }
.cu-contact-form .cu-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cu-contact-form .cu-consent { margin: 0 0 20px; }
.cu-contact-form .cu-consent-label { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 14px; color: var(--cu-heading); cursor: pointer; }
.cu-contact-form .cu-consent-label input { margin: 4px 0 0; } /* 테마의 input 하단 여백 30px 제거 */
.cu-contact-form .cu-consent-label em { font-style: normal; color: #c62828; }
.cu-contact-form .cu-consent-text { margin: 6px 0 0 24px; font-size: 13px; line-height: 1.6; color: var(--cu-text); }
.cu-form-msg { margin: 12px 0 0; font-size: 14px; min-height: 1.5em; }
.cu-form-msg.is-ok { color: #1e8e3e; }
.cu-form-msg.is-error { color: #c62828; }
.cu-contact-alt { margin-top: 18px; font-size: 14px; color: var(--cu-text); }
.cu-addr-hq { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--cu-text); } /* 문의 페이지 본점 주소 병기 */
.cu-contact-alt .cu-mail-addr { font-weight: 700; color: var(--cu-heading); user-select: all; }
.cu-copy-btn { border: 1px solid var(--cu-primary); background: #fff; color: var(--cu-primary); border-radius: 4px; padding: 5px 12px; font-size: 13px; min-height: 32px; margin-left: 6px; cursor: pointer; }
.cu-copy-btn:hover { background: var(--cu-primary); color: #fff; }

/* 모바일 로고 축소: 390px 폭에서 로고가 화면 절반을 차지하지 않도록 */
@media (max-width: 992px) {
  header .navbar .navbar-brand img, header.menu-sticky .navbar .navbar-brand img { height: 30px; }
  header .navbar .navbar-brand { margin-left: 0 !important; }
}

/* 푸터 로고(흰색 SVG) 크기 */
footer .cu-footer-logo { height: 35px; width: auto; opacity: .95; }
footer .widget .iq-contact li i { width: 24px; margin-right: 12px; } /* 아이콘 폭을 고정해 텍스트 시작선 정렬 */
@media (max-width: 767px) {
  footer .footer-top .widget { margin-bottom: 0; } /* 모바일: 로고 아래 45px 여백 제거(열이 2개뿐이라 과함) */
  footer .footer-top { padding-top: 40px; }
}

/* 카드 높이 통일 (같은 행의 카드를 같은 높이로) */
.cu-equal > [class*="col-"] { display: flex; }
.cu-equal .iq-icon-box { width: 100%; }
.cu-check-wide li { padding-left: 30px; margin-bottom: 14px; font-size: 16px; line-height: 1.7; }
.cu-section-art { max-width: 100%; height: auto; border-radius: 12px; }

/* 지니어 BI (심볼+워드마크 PNG) */
.cu-bi-wrap { margin-bottom: 14px; display: flex; align-items: center; justify-content: center; gap: 12px; }
.cu-bi { height: 40px; width: auto; }
.cu-bi-suffix { font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cu-primary); }
@media (max-width: 576px) { .cu-bi { height: 32px; } }

/* 생성 이미지 배치 */
.cu-overview-art { max-width: 960px; width: 100%; height: auto; }
.cu-svc-art { max-height: 360px; width: auto; }
.iq-icon-box-style-5 .icon-box-content { width: 58%; padding-right: 10px; }
.iq-icon-box-style-5 .icon-box-img { width: 42%; text-align: center; padding: 22px 16px; }
.iq-icon-box-style-5 .icon-box-img img { max-height: 210px; width: auto; }

/* 카드 아이콘: flex 축소 방지. 이미지 아이콘은 96px 연한 파랑 원 안에 88px로 배치 */
.iq-icon-box-style-1 .icon-box-img { flex: 0 0 80px; width: 80px; margin-right: 18px; }
.iq-icon-box-style-1 .icon-box-img:has(> img) { flex: 0 0 96px; width: 96px; height: 96px; border-radius: 50%; background: var(--cu-bg-soft); display: flex; align-items: center; justify-content: center; }
.iq-icon-box-style-1 .icon-box-img img { width: 88px; max-width: none; height: auto; }

/* 제품 화면 캡처 */
.cu-shot { width: 100%; height: auto; border-radius: 10px; border: 1px solid #e3eaf4; box-shadow: 0 12px 32px rgba(13,30,103,0.10); background: #fff; }
.cu-step-row { margin-bottom: 110px; }
.cu-step-row:last-child { margin-bottom: 0; }
.cu-step-no { display: inline-block; width: 44px; height: 44px; line-height: 44px; text-align: center; border-radius: 50%; background: var(--cu-primary); color: #fff; font-weight: 700; margin-bottom: 14px; }
.cu-step-title { font-size: 1.4rem; color: var(--cu-heading); margin-bottom: 12px; }
@media (max-width: 992px) { .cu-step-row { margin-bottom: 48px; } .cu-step-row .col-lg-5 { margin-bottom: 18px; } }
/* 운영 섹션 3열: 캡처 높이 통일(위쪽 기준 크롭) */
.cu-ops-frame { position: relative; width: 100%; padding-top: 62.5%; overflow: hidden; border-radius: 10px; border: 1px solid #e3eaf4; box-shadow: 0 12px 32px rgba(13,30,103,0.10); background: #fff; }
.cu-ops-frame .cu-ops-shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; border: 0; box-shadow: none; border-radius: 0; }

/* 의미 단위 개행: 데스크톱에서만 문장별 줄바꿈, 모바일은 자연 줄바꿈 */
.cu-line + .cu-line::before { content: " "; } /* 모바일(inline)에서 문장 사이 공백 보장. block일 때는 선두 공백이 접혀 영향 없음 */
@media (min-width: 768px) { .cu-line { display: block; } }

/* 브레드크럼 영문 병기 */
.iq-breadcrumb-one .cu-crumb-en { color: #9fc3f0; font-size: 15px; letter-spacing: .06em; margin: 6px 0 0; font-weight: 500; }
/* BI + 접미 텍스트 베이스라인 정렬 */
.cu-bi-wrap { align-items: flex-end; }
.cu-bi-suffix { line-height: 1; padding-bottom: 4px; } /* GENIER 워드마크 베이스라인(이미지 하단에서 약 7px 위)에 글자 베이스라인을 맞춤 */

/* 서브페이지 상단 띠: 경로 표시 제거 후 제목 세로 중앙 정렬 */
.iq-breadcrumb-one { padding: 0; min-height: 300px; display: flex; align-items: center; }
.iq-breadcrumb-one .container { width: 100%; }
.iq-breadcrumb-two { padding: 0; }
@media (max-width: 992px) { .iq-breadcrumb-one { min-height: 200px; } }
.iq-breadcrumb-one .title { margin-bottom: 0; }
.iq-breadcrumb-one .cu-crumb-en { margin-top: 10px; }
.iq-breadcrumb-one .title { line-height: 1.2; }
.iq-breadcrumb-two { padding-top: 6px; }
/* 매뉴팩처링 흐름도: 이미지 자체 여백이 커서 표시 높이를 줄이고 위아래 간격 축소 */
.cu-overview-art { max-width: 1100px; max-height: 420px; width: 100%; object-fit: cover; object-position: center; }

/* 서브페이지 상단 띠: 테마 반응형 패딩 무효화 + 정중앙 정렬, 영문 부제 강화 */
.iq-breadcrumb-one, .iq-breadcrumb-one .iq-breadcrumb-two { padding: 0 !important; margin: 0 !important; }
.iq-breadcrumb-one { min-height: 300px !important; display: flex !important; align-items: center !important; justify-content: center; }
.iq-breadcrumb-one .title { margin: 0 !important; line-height: 1.2; }
.iq-breadcrumb-one .cu-crumb-en { margin: 14px 0 0 !important; font-family: 'Pretendard Variable', Pretendard, 'Inter', -apple-system, sans-serif; font-size: 22px; font-weight: 500; letter-spacing: .02em; color: #BFD8F7; text-transform: none; }
@media (max-width: 992px) { .iq-breadcrumb-one { min-height: 200px !important; } .iq-breadcrumb-one .cu-crumb-en { font-size: 17px; } }
/* 보이는 중앙 보정: 한글 제목 글꼴의 위쪽 여백을 상쇄 */
.iq-breadcrumb-one .iq-breadcrumb-two { padding-top: 22px !important; }

/* 고정 헤더(약 64px)가 띠 상단을 덮으므로, 그만큼 위쪽 여백을 둔 뒤 보이는 영역 안에서 중앙 정렬 */
.iq-breadcrumb-one { padding-top: 64px !important; min-height: 340px !important; box-sizing: border-box; }
.iq-breadcrumb-one .iq-breadcrumb-two { padding-top: 8px !important; }
@media (max-width: 992px) { .iq-breadcrumb-one { padding-top: 0 !important; min-height: 200px !important; } }

/* ---- 모바일 전반 점검(2026-11-05) 보정 ---- */
.iq-button.d-inline { display: inline-block !important; } /* 테마의 d-inline(display:inline)이 버튼 높이를 39px로 무너뜨리던 문제 */
.iq-button.iq-btn-outline { padding-top: 8px; padding-bottom: 8px; } /* 2px 테두리만큼 빼서 채움 버튼(52px)과 높이 통일 */
.cu-contact-form .cu-consent-label input { width: 16px; height: 16px; }
@media (max-width: 767px) {
  h2.iq-title { font-size: 1.625rem; line-height: 1.4; } /* 모바일에서 h2(32px)가 페이지 제목 h1(30px)보다 컸던 역전 해소 */
  .cu-section h3, .iq-icon-box .icon-box-title { font-size: 1.25rem; } /* 카드 제목 20px로 통일 */
  .cu-step-title { font-size: 1.25rem; }
}
@media (max-width: 575px) {
  .cu-table th, .cu-table td { padding: 10px 10px; font-size: 14px; } /* 3열 실적 표가 16px 넘치던 문제 */
}
