  body { background: #fff; }

/* ---- index ---- */

  .section-label { font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #0A5488; }
  .section-title { font-family: var(--font-display); font-size: 50px; font-weight: 800; letter-spacing: -0.03em; color: #0a1317; line-height: 1.18; margin: 10px 0 0; }
  .section-sub   { font-size: 18px; color: #0a1317; max-width: 560px; margin: 14px 0 0; line-height: 1.6; letter-spacing: -0.02em; }
/* 핵심역량 소제목 — 넓은 화면에서는 한 줄, 좁아지면 자연 줄바꿈 */
  .sub-oneline { max-width: none; }
  @media (min-width: 1240px) { .sub-oneline { white-space: nowrap; font-size: 16.5px; } }
  @media (max-width: 1040px) { .capability-grid { grid-template-columns: 1fr 1fr !important; } }
  @media (max-width: 620px) { .capability-grid { grid-template-columns: 1fr !important; } }
  .section-head  { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 34px; gap: 32px; flex-wrap: wrap; }

/* ---- about ---- */

  .sec-title { font-family: var(--font-display); font-size: 40px; font-weight: 800; letter-spacing: -0.035em; color: #0a1317; line-height: 1.25; margin: 0; }
  .sec-label { font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #0A5488; }
  @media (max-width: 1040px) { .company-facts { grid-template-columns: 1fr 1fr !important; row-gap: 36px; } }
  @media (max-width: 620px) { .company-facts { grid-template-columns: 1fr !important; } }
  .body-copy { font-size: 17.5px; line-height: 1.75; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }

/* ---- vision ---- */

  .vision-label { position: relative; display: inline-block; padding-top: 18px; }
  .vision-label > .num { position: absolute; top: -16px; left: -6px; font-family: var(--font-display); font-size: 70px; font-weight: 800; color: #eef1f5; letter-spacing: -0.04em; line-height: 1; z-index: 0; }
  .vision-label > .txt { position: relative; z-index: 1; font-family: var(--font-display); font-size: 23px; font-weight: 800; letter-spacing: 0.06em; color: #B5680B; }
  @media (max-width: 1040px) { .mission-grid { grid-template-columns: 1fr 1fr !important; } }
  @media (max-width: 620px) { .mission-grid { grid-template-columns: 1fr !important; } }

/* ---- partner ---- */

  .eyebrow-rule { position: relative; display: inline-block; padding-top: 18px; }
  .eyebrow-rule > .num { position: absolute; top: -16px; left: -6px; font-family: var(--font-display); font-size: 70px; font-weight: 800; color: #eef1f5; letter-spacing: -0.04em; line-height: 1; z-index: 0; }
  .eyebrow-rule > .txt { position: relative; z-index: 1; font-family: var(--font-display); font-size: 23px; font-weight: 800; letter-spacing: 0.06em; color: #B5680B; }
  .partner-orbs { display: grid; grid-template-columns: repeat(4, max-content); column-gap: 52px; row-gap: 40px; align-items: center; justify-content: center; }
  .partner-orb-cell { position: relative; display: flex; justify-content: center; }
  .partner-plus { position: absolute; left: -26px; top: 50%; transform: translate(-50%, -50%); color: #8f9dab; display: inline-flex; }
  @media (max-width: 1040px) {
    .partner-orbs { grid-template-columns: repeat(2, max-content); }
    .partner-orb-cell:nth-child(odd) .partner-plus { display: none; }
  }
  @media (max-width: 620px) {
    .partner-orbs { grid-template-columns: max-content; }
    .partner-plus { display: none !important; }
  }

/* ---- directions ---- */

/* ---- sap-diagnostics ---- */

  .biz-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  .biz-tag { display: flex; align-items: center; gap: 20px; }
  .biz-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .biz-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #B5680B; white-space: nowrap; }
  .biz-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  @media (max-width: 1040px) {
    .effect-circles { grid-template-columns: 1fr 1fr !important; }
    .target-cases   { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 620px) {
    .service-cards { grid-template-columns: 1fr !important; }
    .effect-circles, .target-cases { grid-template-columns: 1fr !important; }
  }

/* ---- vibe-coding ---- */

  .sol-sub  { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: -18px 0 28px; word-break: keep-all; }
  .biz-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  .biz-tag { display: flex; align-items: center; gap: 20px; }
  .biz-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .biz-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #B5680B; white-space: nowrap; }
  .biz-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  @media (max-width: 1280px) {
    .process-steps { grid-template-columns: 1fr 1fr !important; grid-template-rows: none !important; }
    .process-steps > article { grid-row: auto !important; grid-column: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; }
    .process-arrow { display: none !important; }
  }
  @media (max-width: 1180px) {
    .dev-cycle    { grid-template-columns: 1fr 1fr 1fr !important; grid-template-rows: none !important; }
    .dev-cycle > div { grid-row: auto !important; grid-column: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; align-items: center !important; }
    .cycle-arrow { display: none !important; }
    .detail-row { grid-template-columns: 62px minmax(0,1fr) !important; }
    .detail-row > div:last-child { grid-column: 2 !important; }
  }
  @media (max-width: 1080px) {
    .effect-circles { grid-template-columns: 1fr 1fr !important; }
    .target-cases   { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 740px) {
    .process-steps { grid-template-columns: 1fr !important; }
    .dev-cycle    { grid-template-columns: 1fr 1fr !important; }
    .detail-row { grid-template-columns: 1fr !important; gap: 12px !important; }
    .detail-row > div:last-child { grid-column: 1 !important; }
    .service-cards { grid-template-columns: 1fr !important; }
    .vibe-compare { grid-template-columns: 1fr 1fr !important; column-gap: 12px !important; row-gap: 4px !important; }
    /* 명시 배치 해제 후 라벨을 밴드 제목으로 */
    .vibe-compare > * { grid-column: auto !important; grid-row: auto !important; }
    .vibe-compare > :nth-child(3n+1) { grid-column: 1 / -1 !important; justify-content: flex-start !important; padding: 16px 0 6px !important; }
    .vibe-compare > :nth-child(1) { display: none !important; }
    .vibe-compare .vc-dash { display: none !important; }
    /* 밴드가 분리되므로 값 셀은 모두 라운드 */
    .vibe-compare > :nth-child(3n+2), .vibe-compare > :nth-child(3n) { border-radius: 10px !important; border-top: none !important; }
    .effect-circles, .target-cases { grid-template-columns: 1fr !important; }
  }

/* ---- it-build ---- */

  .biz-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  .biz-tag { display: flex; align-items: center; gap: 20px; }
  .biz-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .biz-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #B5680B; white-space: nowrap; }
  .biz-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  @media (max-width: 1080px) {
    .effect-circles { grid-template-columns: 1fr 1fr !important; }
    .record-cards   { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 740px) {
    .service-cards  { grid-template-columns: 1fr !important; }
    .effect-circles { grid-template-columns: 1fr !important; }
    .record-cards   { grid-template-columns: 1fr !important; }
  }

/* ---- it-operations ---- */

  .biz-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  .biz-tag { display: flex; align-items: center; gap: 20px; }
  .biz-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .biz-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #B5680B; white-space: nowrap; }
  .biz-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  @media (max-width: 1080px) {
    .effect-circles { grid-template-columns: 1fr 1fr !important; }
    .record-cards   { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 740px) {
    .service-cards  { grid-template-columns: 1fr !important; }
    .effect-circles { grid-template-columns: 1fr !important; }
    .record-cards   { grid-template-columns: 1fr !important; }
  }

/* ---- solution-owlens ---- */

  .sol-tag { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; }
  .sol-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .sol-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #B5680B; white-space: nowrap; }
  .sol-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  .sol-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  @media (max-width: 1080px) {
    .owl-hero-grid  { grid-template-columns: 1fr !important; gap: 32px !important; }
    .owl-intro-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
    .owl-strength-grid { grid-template-columns: 1fr !important; gap: 26px !important; }
    .feature-grid-3 { grid-template-columns: 1fr 1fr !important; }
    .benefit-grid   { grid-template-columns: 1fr 1fr !important; }
    .arch-grid      { grid-template-columns: 1fr !important; grid-template-rows: none !important; }
    .arch-grid > div { grid-row: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; }
    .arch-flow      { height: auto !important; align-self: center; justify-self: center; padding: 8px 0 !important; }
    .arch-arrow     { transform: rotate(90deg); }
  }
  @media (max-width: 740px) {
    .benefit-grid { grid-template-columns: 1fr !important; }
    .tool-cols    { grid-template-columns: 1fr !important; }
    .feature-grid { grid-template-columns: 1fr !important; }
  }

/* ---- solution-varam ---- */

  .sol-tag { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; }
  .sol-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .sol-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #8F4F06; white-space: nowrap; }
  .sol-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  .sol-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }
  .sol-sub  { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: -18px 0 28px; word-break: keep-all; }
  .varam-b4 > div { padding: 18px 20px 20px !important; gap: 8px !important; }
  .varam-b4 > div > span:nth-child(3) { width: 42px !important; height: 42px !important; border-radius: 11px !important; }
  .varam-b4 > div > span:nth-child(2) { font-size: 52px !important; right: 14px !important; bottom: 6px !important; }

  @media (max-width: 1080px) {
    .owl-intro-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
    .varam-b4       { grid-template-columns: 1fr 1fr !important; }
    .varam-why      { grid-template-columns: 1fr !important; gap: 28px !important; }
    .varam-features { grid-template-columns: 1fr 1fr !important; }
    .vibe-flow      { grid-template-columns: 1fr 1fr !important; }
    .varam-parts    { grid-template-columns: 1fr 1fr !important; grid-template-rows: none !important; }
    .varam-parts > div { grid-row: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; }
    .varam-flow     { grid-template-columns: 1fr 1fr !important; grid-template-rows: none !important; gap: 26px 18px !important; }
    .varam-flow > div { grid-row: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; }
    .varam-benefits { grid-template-columns: 1fr 1fr !important; grid-template-rows: none !important; gap: 34px 20px !important; }
    .varam-benefits > div { grid-row: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; }
    .varam-value    { grid-template-columns: 1fr 1fr !important; }
    .varam-value > div[style*="span 2"] { grid-column: 1 / -1; grid-row: 1 !important; order: -1; justify-content: center; }
    .varam-hub      { min-height: 215px !important; }
    .hub-arrows     { display: none; }
    .hub-arrows-stacked { display: block !important; }
  }

  @media (max-width: 680px) {
    .varam-b4       { grid-template-columns: 1fr !important; }
    .varam-features { grid-template-columns: 1fr !important; }
    .vibe-flow      { grid-template-columns: 1fr !important; }
    .varam-parts    { grid-template-columns: 1fr !important; }
    .varam-flow     { grid-template-columns: 1fr !important; }
    .varam-benefits { grid-template-columns: 1fr !important; }
    .varam-value    { grid-template-columns: 1fr !important; }
    .value-body     { grid-template-columns: 1fr !important; }
  }

/* ---- solution-partners ---- */

  .sol-tag { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; }
  .sol-tag > .ko { background: #0a1317; color: #fff; font-family: var(--font-display); font-size: 19px; font-weight: 800; letter-spacing: -0.02em; padding: 11px 22px; border-radius: 8px; white-space: nowrap; }
  .sol-tag > .en { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: #8F4F06; white-space: nowrap; }
  .sol-tag > .rule { flex: 1; height: 1px; background: #dee3e9; }
  .sol-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0; word-break: keep-all; }

  @media (max-width: 1080px) {
    .partner-sol-row { grid-template-columns: 260px minmax(0,1fr) !important; gap: 28px !important; }
  }
  @media (max-width: 740px) {
    .partner-sol-row { grid-template-columns: 1fr !important; gap: 18px !important; }
  }

/* ---- ref-clients ---- */

  .ref-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0 auto 36px; max-width: 900px; text-align: center; word-break: keep-all; }
  @media (max-width: 1080px) {
    .ref-client-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  }
  @media (max-width: 820px) {
    .ref-client-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  }
  @media (max-width: 560px) {
    .ref-client-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: 1fr !important; }
  }

/* ---- ref-cases ---- */

  .ref-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0 auto 36px; max-width: 900px; text-align: center; word-break: keep-all; }
  @media (max-width: 1080px) {
    .ref-client-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  }
  @media (max-width: 820px) {
    .ref-client-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 560px) {
    .ref-client-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: 1fr !important; }
  }

/* ---- ref-case ---- */

  .ref-lead { font-size: 17.5px; line-height: 1.7; color: #0a1317; letter-spacing: -0.02em; margin: 0 auto 36px; max-width: 900px; text-align: center; word-break: keep-all; }
  @media (max-width: 1080px) {
    .ref-client-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  }
  @media (max-width: 820px) {
    .ref-client-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 900px) {
    .case-head  { grid-template-columns: 1fr !important; gap: 24px !important; }
    .case-lists { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 560px) {
    .ref-client-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
    .ref-case-grid   { grid-template-columns: 1fr !important; }
  }

/* ---- news ---- */

  @media (max-width: 720px) {
    /* 모바일: 윗줄 [구분 태그 … 날짜], 아랫줄 제목(화면 폭 전체) — 제목이 좁은 칸에서 여러 줄로 접히지 않도록 */
    .news-head { display: block !important; border-bottom: none !important; }
    .news-head > span { display: none !important; }
    .news-no { display: none !important; }
    .news-row { display: block !important; position: relative; }
    .news-row > span:nth-child(2) { padding: 18px 4px 20px !important; }
    .sp-row__line { flex-direction: column; gap: 10px !important; }
    .sp-row__line .sp-tag { align-self: flex-start; }
    .sp-row__title { line-height: 1.55 !important; }
    .news-date { position: absolute; top: 21px; right: 4px; line-height: 1.5; }
    .news-search { flex-wrap: wrap; }
    .news-search input { flex: 1 1 100% !important; order: -1; width: 100% !important; }
    .news-art-head { flex-direction: column; gap: 12px !important; }
  }

/* ---- library ---- */

  @media (max-width: 1080px) { .library-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; } }
  @media (max-width: 760px)  { .library-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 14px !important; } }

/* ---- contact ---- */

  .cf-wide { grid-column: 1 / -1; }
  @media (max-width: 820px) {
    .cf-grid { grid-template-columns: 1fr !important; }
    .cf-field { grid-template-columns: 1fr !important; gap: 7px !important; }
    .cf-field > label { padding-top: 0 !important; }
    .cf-privacy { grid-template-columns: 1fr !important; gap: 2px !important; }
    .cf-privacy dd { margin-bottom: 8px !important; }
  }

/* ---- privacy ---- */
