/* 사업 개요 */
.business-overview, .business-strategy, .business-infra { padding: var(--tf-content-space) 0; }
.business-overview > .tf-container { display: flex; flex-direction: column; gap: 5rem; }
.business-heading h2 { margin: 1.5rem 0 0; font-size: 3.5rem; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
.business-heading > p { margin: 1.5rem 0 0; font-size: 1.5rem; line-height: 1.5; }
.business-heading > small { display: block; color: var(--tf-primary-50); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.business-heading--center { text-align: center; }
.business-heading--center > small:last-child { margin-top: 1.5rem; color: var(--tf-neutral-50); font-size: .75rem; font-weight: 500; }
.business-heading--center h2:first-child { margin-top: 0; }
.business-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin: 0; }
.business-facts > div { display: flex; min-height: 18.3125rem; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--tf-neutral-90); border-radius: 1.5rem; padding: 2.5rem; text-align: center; }
.business-facts dt { font-size: .875rem; font-weight: 500; }
.business-facts dt::after { display: block; width: 2.25rem; height: 2px; margin: 1.25rem auto; content: ""; background: var(--tf-primary-50); }
.business-facts dd { display: flex; flex-direction: column; gap: 1.25rem; margin: 0; }
.business-facts strong { color: var(--tf-primary-50); font-size: 2.5rem; line-height: 1.3; }
.business-facts strong.business-facts__audience { font-size: 2.25rem; }
.business-facts dd > span { font-size: 1.5rem; font-weight: 500; }
.business-facts__space { display: none; }
.business-break { display: none; }

/* 핵심 목표 지표 */
.business-metrics { position: relative; min-height: 49.9375rem; overflow: hidden; color: var(--tf-white); background: var(--tf-navy-5); }
.business-metrics__image, .business-metrics__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.business-metrics__image { object-fit: cover; mix-blend-mode: screen; }
.business-metrics__shade { z-index: -1; background: var(--tf-navy-5); }
.business-metrics__inner { position: relative; z-index: 1; display: flex; min-height: 49.9375rem; flex-direction: column; align-items: center; justify-content: center; padding-block: var(--tf-content-space); }
.business-metrics header { text-align: center; }
.business-metrics header span { color: var(--tf-primary-50); font-size: 1rem; font-weight: 600; }
.business-metrics h2 { margin: 1rem 0; font-size: 3.5rem; font-weight: 700; line-height: 1.2; }
.business-metrics header p { margin: 0; font-size: 1.5rem; line-height: 1.5; }
.business-metrics dl { display: grid; width: min(100%, 76rem); grid-template-columns: repeat(4, 1fr); margin: 5rem 0 0; }
.business-metrics dl > div { text-align: center; }
.business-metrics dt { display: flex; align-items: baseline; justify-content: center; gap: .25rem; }
.business-metrics dt strong { font-size: 4rem; line-height: 1.2; }
.business-metrics dt span { color: #518bf6; font-size: 2.25rem; }
.business-metrics dd { margin: .5rem 0 0; font-size: 1.5rem; font-weight: 500; }

/* 추진 전략 */
.business-strategy__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.business-strategy .business-heading { position: sticky; top: 10rem; align-self: start; }
.strategy-list { position: relative; display: flex; flex-direction: column; gap: 3.5rem; margin: 0; padding: 0; list-style: none; }
.strategy-list::before { position: absolute; top: 4.375rem; bottom: 15rem; left: 1.5rem; width: 1px; content: ""; background: var(--tf-neutral-90); }
.strategy-list > li { position: relative; display: grid; grid-template-columns: 3rem 1fr; gap: 2.5rem; }
.strategy-list__number { z-index: 1; display: grid; width: 3rem; height: 3rem; place-items: center; margin-top: 1.125rem; border-radius: 50%; color: var(--tf-white); background: var(--tf-primary-50); font-size: 1.125rem; font-weight: 600; }
.strategy-list h3 { margin: 0; font-size: 2rem; font-weight: 700; line-height: 1.3; }
.strategy-list p { margin: 1rem 0 1.5rem; font-size: 1.25rem; line-height: 1.5; }
.strategy-list ul { display: flex; flex-direction: column; gap: .5rem; margin: 0; border-radius: .5rem; padding: 1.25rem 1.25rem 1.25rem 2.75rem; background: var(--palette-neutral-98); font-size: 1.125rem; line-height: 1.5; list-style-type: disc; }
.strategy-list ul > li { opacity: .78; }

/* 팹 인프라와 서비스 연결 */
.business-infra { background: var(--tf-neutral-95); }
.business-infra > .tf-container { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 5rem; }
.infra-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; height: 50rem; margin: 0; }
.infra-grid__side { display: grid; min-width: 0; min-height: 0; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.infra-card { position: relative; min-width: 0; min-height: 0; overflow: hidden; border-radius: 1.25rem; color: var(--tf-white); }
.infra-card > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.infra-card:hover > img { transform: scale(1.04); }
.infra-card > div { position: absolute; right: 0; bottom: 0; left: 0; padding: 2.5rem; background: rgba(0,0,0,.6); }
.infra-card h3 { margin: 0; font-size: 2rem; font-weight: 700; line-height: 1.3; }
.infra-card p { margin: 1rem 0 0; font-size: 1.25rem; line-height: 1.5; }
.business-cta-wrap { position: relative; min-height: 12.8125rem; isolation: isolate; }
.business-cta { display: flex; min-height: 12.8125rem; align-items: center; justify-content: space-between; margin: 0; border-radius: 1.25rem; padding: 3rem 5rem; color: var(--tf-white); background: linear-gradient(90deg, var(--tf-primary-50), #164292); }
.business-cta p { margin: 0 0 .75rem; font-size: 1.25rem; font-weight: 500; }
.business-cta strong { font-size: 3.5rem; line-height: 1.2; }
.business-cta nav { display: flex; gap: 2.5rem; }
.business-cta a { display: flex; align-items: center; gap: .5rem; font-size: 1.25rem; font-weight: 600; }
.business-cta img { width: 1.5rem; height: 1.5rem; }

/* 1200 시안: 1200–1919px, 태블릿과 공유하는 본문 크기 */
@media (min-width: 768px) and (max-width: 1919.98px) {
  .business-heading h2, .business-metrics h2 { font-size: 2.5rem; line-height: 1.3; letter-spacing: -.01em; }
  .business-heading > p, .business-metrics header p { font-size: 1.25rem; letter-spacing: -.01em; }
  .business-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .business-facts > div { min-width: 0; min-height: 0; padding-block: calc(2.5rem - 1px); }
  .business-facts strong { font-size: 2.25rem; white-space: nowrap; letter-spacing: -.01em; }
  .business-facts strong.business-facts__audience { font-size: 2rem; }
  .business-facts dd > span { font-size: 1.25rem; letter-spacing: -.01em; }
  .business-metrics, .business-metrics__inner { min-height: 0; }
  .business-metrics h2 { margin-block: 1.5rem; }
  .business-metrics dl { width: 100%; gap: 1.25rem; }
  .business-metrics dt { align-items: center; }
  .business-metrics dt strong { font-size: 3.5rem; font-weight: 700; letter-spacing: -.01em; }
  .business-metrics dt span { color: var(--palette-primary-60); font-size: 1.5rem; font-weight: 700; line-height: 1.3; }
  .business-metrics dd { font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; }
  .business-strategy__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-strategy .business-heading > p, .business-infra .business-heading > p { font-weight: 600; }
  .strategy-list > li { grid-template-columns: 3rem minmax(0, 1fr); }
  .strategy-list::before { display: none; }
  .strategy-list > li:not(:last-child)::before { position: absolute; top: 4.125rem; bottom: -4.625rem; left: 1.46875rem; width: 1px; content: ""; background: var(--color-border-normal); }
  .strategy-list h3, .infra-card h3 { font-size: 1.5rem; letter-spacing: -.01em; }
  .strategy-list p, .infra-card p { font-size: 1.125rem; }
  .strategy-list ul { font-size: 1rem; }
  .business-cta-wrap, .business-cta { min-height: 0; }
  .business-cta { gap: 1.25rem; padding-inline: 2.5rem; }
  .business-cta p { margin-bottom: .25rem; font-size: 1.125rem; font-weight: 400; }
  .business-cta strong { display: block; font-size: 2.5rem; line-height: 1.3; letter-spacing: -.01em; }
  .business-cta a { white-space: nowrap; letter-spacing: -.01em; }
  .business-cta .tf-icon { width: 1.5rem; height: 1.5rem; flex-basis: 1.5rem; }
}

/* 태블릿: 768–1199px */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .business-facts { grid-template-columns: minmax(0, 1fr); }
  .business-facts__audience br { display: none; }
  .business-facts__audience .business-facts__space { display: inline; }
  .business-metrics dl { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--number-80); }
  .business-metrics dl > div { padding-block: 1.25rem; }
  .business-strategy__grid { grid-template-columns: minmax(0, 1fr); gap: var(--number-80); }
  .business-strategy .business-heading { position: static; text-align: center; }
  .business-infra > .tf-container { row-gap: var(--number-80); }
  .infra-grid { grid-template-columns: minmax(0, 1fr); height: auto; }
  .infra-card { height: 31.25rem; }
  .infra-card > div { padding-block: 1.25rem; }
  .business-cta { align-items: flex-start; flex-direction: column; }
}

/* 모바일: 360 시안의 글줄과 세로 카드 배치 */
@media (max-width: 767.98px) {
  .business-page { overflow-x: clip; }
  .business-overview > .tf-container { gap: 2.5rem; }
  .business-break { display: block; }
  .business-heading h2, .business-metrics h2 { font-size: 2rem; line-height: 1.3; letter-spacing: -.01em; }
  .business-heading h2 { margin-top: 1rem; }
  .business-heading > p, .business-metrics header p { font-size: 1rem; line-height: 1.5; }
  .business-heading > p, .business-heading--center > small:last-child { margin-top: 1rem; }
  .business-facts { grid-template-columns: minmax(0, 1fr); }
  .business-facts > div { min-width: 0; min-height: 0; padding: calc(2.5rem - 1px); }
  .business-facts dt::after { margin-block: .75rem; }
  .business-facts dd { gap: .75rem; }
  .business-facts strong, .business-facts strong.business-facts__audience { font-size: 1.5rem; letter-spacing: -.01em; white-space: nowrap; }
  .business-facts dd > span { font-size: 1rem; font-weight: 400; }
  .business-metrics, .business-metrics__inner { min-height: 0; }
  .business-metrics h2 { margin-block: 1rem; }
  .business-metrics dl { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2.5rem; }
  .business-metrics dl > div { padding-block: 1.25rem; }
  .business-metrics dt { align-items: center; }
  .business-metrics dt strong { font-size: 2rem; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; }
  .business-metrics dt span { color: var(--palette-primary-60); font-size: 1.125rem; font-weight: 600; line-height: 1.5; }
  .business-metrics dd { font-size: 1rem; font-weight: 600; }
  .business-strategy__grid { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .business-strategy .business-heading { position: static; text-align: center; }
  .strategy-list { gap: 2.5rem; }
  .strategy-list::before { display: none; }
  .strategy-list > li { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .75rem; }
  .strategy-list > li:not(:last-child)::before { position: absolute; top: 2.5rem; bottom: -2.5rem; left: 1.21875rem; width: 1px; content: ""; background: var(--color-border-normal); }
  .strategy-list__number { width: 2.5rem; height: 2.5rem; margin: 0; font-size: .875rem; }
  .strategy-list h3 { font-size: 1.25rem; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; }
  .strategy-list p { margin: .25rem 0 1rem; font-size: 1rem; word-break: keep-all; }
  .strategy-list ul { padding-inline: 2.25rem .75rem; font-size: 1rem; }
  .business-infra > .tf-container { row-gap: 2.5rem; }
  .infra-grid { height: auto; grid-template-columns: minmax(0, 1fr); }
  .infra-card { height: auto; aspect-ratio: 8 / 7; }
  .infra-card::after { position: absolute; inset: 0; border: 1px solid var(--color-border-normal); border-radius: inherit; content: ""; pointer-events: none; }
  .infra-card > div { padding: 1.25rem; text-align: center; }
  .infra-card h3 { font-size: 1.25rem; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; }
  .infra-card p { margin-top: .5rem; font-size: 1rem; }
  .business-cta-wrap { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .infra-card > img { transition: none; }
}
