/* it_solution.css - IT 솔루션 소개 페이지 전용 스타일
 *
 * 네임스페이스 규칙: 이 파일의 모든 선택자는 `.it-`, `body.page-it`, `html` 로 시작합니다.
 * 맨 엘리먼트 선택자(h2 {}, a {})는 쓰지 않습니다 - 재사용 중인 .request-* / .process-* 를 오염시킵니다.
 * 다크 스타일은 .sec-hero(공용, style.css) / .it-band--dark 하위에만 존재합니다.
 */

/* plastic_solution.css 를 로드하지 않으므로 해당 파일의 스크롤바 지터 방지 규칙을 복원 */
html {
    scrollbar-gutter: stable;
}

/* style.css 의 게이트 전용 body(overflow:hidden; height:100vh) 해제
 * 선례: plastic_solution.css 의 body.page-plastic, contact.css 의 body.page-contact */
body.page-it {
    background-color: #FFFFFF;
    overflow-y: auto;
    height: auto;
    min-height: 100vh;
}

/* ============================================================
   밴드(풀블리드 섹션) 시스템
   ============================================================ */
.it-band {
    width: 100%;
}

.it-band--tint {
    background-color: #F8F9FA;
}

.it-band--dark {
    background-color: #143250;
    color: #FFFFFF;
}

.it-band__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 72px 20px;
}

/* ============================================================
   공통 타이포 / 유틸
   ============================================================ */
.it-eyebrow {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #514D6F;
    margin-bottom: 14px;
}

.it-band--dark .it-eyebrow,
/* 히어로는 이제 공용 .sec-hero (style.css) 를 쓴다 */
.sec-hero .it-eyebrow {
    color: #9ec5e8;
}

.it-section-head {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 48px auto;
}

.it-section-head h2 {
    font-size: 2.2rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.5px;
    line-height: 1.35;
    word-break: keep-all;
}

.it-section-head p {
    margin-top: 16px;
    font-size: 1.05rem;
    line-height: 1.75;
    color: #64748b;
    word-break: keep-all;
}

.it-band--dark .it-section-head h2 {
    color: #FFFFFF;
}

.it-band--dark .it-section-head p {
    color: rgba(255, 255, 255, 0.78);
}

.it-note {
    font-size: 0.8rem;
    color: #94a3b8;
    line-height: 1.6;
    word-break: keep-all;
}

/* 출처 표기용 아주 작은 각주 */
.it-credit {
    margin-top: 40px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.6;
    text-align: center;
    word-break: keep-all;
}

/* ============================================================
   히어로
   ============================================================ */
/* 히어로 껍데기(.sec-hero / .sec-hero__title / .sec-hero__lead / .sec-nav)는
   style.css 의 공용 컴포넌트로 옮겼다. /plastic_solution 과 골격을 공유한다.
   여기에는 IT 히어로에만 있는 것 - 큰 CTA 줄과 기술 파트너 표기 - 만 남긴다.
   사업부별 배경 이미지와 틴트는 두 페이지가 함께 읽는 style.css 에서 관리한다. */
.it-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 34px;
}

.it-hero__partner {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 44px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    max-width: 420px;
}

.it-hero__partner-label {
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.65);
    white-space: nowrap;
}

.it-hero__partner img {
    height: 22px;
    width: auto;
    opacity: 0.92;
}

/* ============================================================
   버튼
   ============================================================ */
/* 다크 배경 위에서 .request-btn 을 반전시키는 추가 클래스.
   (.it-band--dark .request-btn 처럼 공용 클래스를 재정의하지 않는다) */
.it-btn--invert {
    background-color: #FFFFFF;
    color: #143250;
}

.it-btn--invert:hover {
    background-color: #e8eef5;
    color: #143250;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}

.it-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 6px;
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.05rem;
    transition: background-color 0.2s, border-color 0.2s, transform 0.2s;
}

.it-btn-ghost:hover {
    background-color: rgba(255, 255, 255, 0.12);
    border-color: #FFFFFF;
    transform: translateY(-2px);
}

/* 리드베리 전용 강조 버튼 (자사 SaaS 로 유도하는 유일한 외부 링크) */
.it-btn-accent {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #3b5bdb;
    color: #FFFFFF;
    padding: 15px 30px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.05rem;
    box-shadow: 0 6px 18px rgba(59, 91, 219, 0.25);
    transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.it-btn-accent:hover {
    background-color: #2f4bb8;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(59, 91, 219, 0.32);
}

/* 보조 텍스트 링크 (서비스 2~5 의 상담 유도) */
.it-btn-text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 1rem;
    color: #514D6F;
    text-decoration: none;
    border-bottom: 1px solid rgba(81, 77, 111, 0.35);
    padding-bottom: 2px;
    transition: color 0.2s, border-color 0.2s;
}

.it-btn-text:hover {
    color: #3b3852;
    border-bottom-color: #3b3852;
}

/* ============================================================
   카드 기본형 (design_system.md §4.3)
   ============================================================ */
.it-card {
    /* 썸네일이 카드 모서리까지 꽉 차려면 음수 마진이 패딩과 정확히 같아야 한다.
       브레이크포인트마다 패딩이 달라지므로 변수로 묶어 둔다. */
    --it-card-pad: 28px;
    background: #FFFFFF;
    border: 1px solid #EAEAEA;
    border-radius: 12px;
    padding: var(--it-card-pad);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.it-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

.it-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.45;
    word-break: keep-all;
}

.it-card p {
    margin-top: 12px;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #475569;
    word-break: keep-all;
}

/* ============================================================
   2. 제공 서비스 (리드베리 포함 5종, 설명 좌 / 패널 우 고정)
   ============================================================ */
.it-svc-items {
    display: flex;
    flex-direction: column;
    gap: 68px;
}

.it-svc-item__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
}

.it-svc-item__icon,
.it-step__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: #514D6F;
    color: #FFFFFF;
    box-shadow: 0 4px 12px rgba(81, 77, 111, 0.25);
}

/* 리드베리는 아이콘 대신 서비스 로고를 그대로 넣는다 */
.it-svc-item__icon--lb {
    background: #edf2ff;
    padding: 6px;
}

.it-svc-item__icon img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 8px;
}

.it-svc-item__index {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: #cbd5e1;
    font-variant-numeric: tabular-nums;
}

.it-svc-item__badge {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: #514D6F;
    background: rgba(81, 77, 111, 0.08);
    padding: 5px 12px;
    border-radius: 4px;
}

.it-svc-item__badge--lb {
    color: #3b5bdb;
    background: #edf2ff;
}

.it-svc-item__title {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.5px;
    line-height: 1.35;
    margin-bottom: 15px;
    word-break: keep-all;
}

.it-svc-item__desc {
    font-size: 1.05rem;
    color: #475569;
    line-height: 1.75;
    margin-bottom: 20px;
    word-break: keep-all;
}

/* 서비스 우측(또는 좌측) 패널 - 5종 모두 동일한 카드 형태로 통일 */
.it-svc-panel {
    flex: 1;
    /* .request-section 이 992 이하에서 flex-direction: column + align-items: center 로 바뀌면
       교차축(가로)이 콘텐츠 크기로 줄어든다. .request-image 와 동일하게 100% 를 명시한다. */
    width: 100%;
    background: #FFFFFF;
    border: 1px solid #e2e8f0;
    border-top: 3px solid #514D6F;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(30, 41, 59, 0.07);
}

.it-svc-panel--lb {
    border-top-color: #4c6ef5;
}

.it-svc-panel__label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 18px;
}

/* 산출물 목록 */
.it-deliverables {
    list-style: none;
    margin: 0;
    padding: 0;
}

.it-deliverables li {
    position: relative;
    padding-left: 26px;
    margin-bottom: 12px;
    font-size: 0.97rem;
    line-height: 1.65;
    color: #334155;
    word-break: keep-all;
}

.it-deliverables li:last-child {
    margin-bottom: 0;
}

.it-deliverables li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 700;
    color: #514D6F;
}

/* 리드베리 지표 */
.it-lb-stats {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 0;
    padding: 0;
}

.it-stat {
    text-align: center;
}

.it-stat__num {
    display: block;
    font-size: 1.75rem;
    font-weight: 700;
    color: #3b5bdb;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.it-stat__label {
    display: block;
    margin-top: 8px;
    font-size: 0.85rem;
    color: #64748b;
    line-height: 1.5;
    word-break: keep-all;
}

.it-svc-panel .it-note {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #f1f5f9;
    text-align: center;
}

/* ============================================================
   3. 태온 X 코마소프트 (역할 분담)
   ============================================================ */

/* 섹션 안에서 한 단계 내려가는 소제목 블록 (h3 기준) */
.it-subhead {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 40px auto;
}

.it-subhead h3 {
    font-size: 1.6rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.5px;
    line-height: 1.4;
    word-break: keep-all;
}

.it-subhead p {
    margin-top: 14px;
    font-size: 1.02rem;
    line-height: 1.75;
    color: #64748b;
    word-break: keep-all;
}

.it-role-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: stretch;
}

.it-role-card {
    display: flex;
    flex-direction: column;
}

.it-role-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e2e8f0;
    min-height: 46px;
}

.it-role-card__name {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1e293b;
}

.it-role-card__logo {
    height: 24px;
    width: auto;
}

/* 태온 CI 는 하단에 작은 태그라인이 붙어 있어 같은 높이면 본문이 뭉갠다 */
.it-role-card__logo--taeon {
    height: 30px;
}

.it-role-card__role {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #514D6F;
    background: rgba(81, 77, 111, 0.08);
    padding: 5px 12px;
    border-radius: 4px;
    white-space: nowrap;
}

.it-role-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.it-role-list li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 12px;
    font-size: 0.98rem;
    line-height: 1.7;
    color: #475569;
    word-break: keep-all;
}

.it-role-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #514D6F;
}

.it-role-card__meta {
    margin-top: auto;
    padding-top: 18px;
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.6;
    word-break: keep-all;
}

/* ============================================================
   6. 진행 프로세스 (아이콘 카드 6종)
   ============================================================ */
.it-step-grid {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 0;
    padding: 0;
}

.it-step {
    display: flex;
    flex-direction: column;
}

.it-step__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.it-step__num {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -1px;
    color: #e2e8f0;
    font-variant-numeric: tabular-nums;
}

.it-step__title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.4;
    word-break: keep-all;
}

.it-step__desc {
    margin-top: 10px;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #64748b;
    word-break: keep-all;
}

/* ============================================================
   4. 포트폴리오 + 보유 기술
   ============================================================ */
.it-pf-grid {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 0;
    padding: 0;
}

.it-pf-card {
    --it-card-pad: 26px;
    display: flex;
    flex-direction: column;
    padding: var(--it-card-pad);
}

/* 카드 상단 썸네일. 카드 패딩(26px)만큼 음수 마진으로 빼내 상단 모서리까지 꽉 채운다.
   원본은 480x480 정사각 목업이라 4/3 로 cover 크롭하면 여백만 잘려 피사체는 남는다. */
.it-pf-card__thumb {
    margin: calc(var(--it-card-pad) * -1) calc(var(--it-card-pad) * -1) 20px;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    background-color: #f1f5f9;
}

.it-pf-card__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.it-pf-card:hover .it-pf-card__thumb img {
    transform: scale(1.05);
}

.it-pf-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.it-pf-card__tag {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: #514D6F;
    background: rgba(81, 77, 111, 0.08);
    padding: 5px 10px;
    border-radius: 4px;
    white-space: nowrap;
}

.it-pf-card__year {
    font-size: 0.82rem;
    font-weight: 600;
    color: #94a3b8;
    font-variant-numeric: tabular-nums;
}

.it-pf-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.4;
    word-break: keep-all;
}

.it-pf-card__sub {
    margin-top: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #514D6F;
    line-height: 1.5;
    word-break: keep-all;
}

.it-pf-card__desc {
    margin-top: 14px;
    font-size: 0.92rem;
    line-height: 1.7;
    color: #64748b;
    word-break: keep-all;
}

/* 기본 노출 9건 외 나머지는 숨김. display:none 이므로 접근성 트리·탭 순서에서 자동 제외된다.
   IntersectionObserver 가 발화하지 않으므로 이 카드에는 .it-reveal 을 절대 붙이지 않는다. */
.it-pf-card--extra {
    display: none;
}

.it-pf-grid.is-expanded .it-pf-card--extra {
    display: flex;
}

.it-pf-actions {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.it-pf-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 30px;
    background: #FFFFFF;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #334155;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.it-pf-toggle:hover {
    background-color: #514D6F;
    border-color: #514D6F;
    color: #FFFFFF;
}

.it-pf-toggle__icon {
    transition: transform 0.3s ease;
}

.it-pf-toggle[aria-expanded="true"] .it-pf-toggle__icon {
    transform: rotate(180deg);
}

/* 보유 기술 — 카드 격자 대신 '라벨 + 칩' 한 줄짜리 스펙 시트로 배치해
   세로를 줄이고 그룹 간 비교가 바로 되게 한다. */
.it-tech {
    margin-top: 56px;
    padding-top: 40px;
    border-top: 1px solid #e2e8f0;
}

.it-tech-groups {
    display: flex;
    flex-direction: column;
    border-top: 1px solid #e2e8f0;
}

.it-tech-group {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid #e2e8f0;
}

.it-tech-group h4 {
    flex: 0 0 100px;
    padding-top: 7px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #514D6F;
}

.it-tech-list {
    flex: 1;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.it-tech-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.87rem;
    font-weight: 500;
    color: #334155;
    white-space: nowrap;
}

.it-tech-chip__yrs {
    font-size: 0.72rem;
    font-weight: 700;
    color: #FFFFFF;
    background: #514D6F;
    padding: 2px 7px;
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
}

/* ============================================================
   5. 클라이언트 (무한 가로 스크롤 마퀴)
   ============================================================ */
.it-clients__head {
    /* .it-band__inner 의 상하 패딩을 줄여 마퀴와 붙인다 (source order 로 승리) */
    padding-top: 54px;
    padding-bottom: 32px;
}

.it-clients__foot {
    max-width: 1200px;
    margin: 0 auto;
    padding: 26px 20px 54px 20px;
}

.it-marquee {
    display: flex;
    overflow: hidden;
    /* 양 끝을 페이드시켜 잘린 느낌을 없앤다 */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.it-marquee__track {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: clamp(40px, 5vw, 72px);
    padding-right: clamp(40px, 5vw, 72px);
    min-width: max-content;
    list-style: none;
    margin: 0;
    animation: it-marquee-scroll 47s linear infinite;
}

/* WCAG 2.2.2 - 움직이는 콘텐츠를 멈출 수단을 제공한다 */
.it-marquee:hover .it-marquee__track,
.it-marquee:focus-within .it-marquee__track {
    animation-play-state: paused;
}

@keyframes it-marquee-scroll {
    to {
        transform: translateX(-100%);
    }
}

.it-client-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: fit-content;
    height: 96px;
}

.it-client-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 210px;
    max-height: 70px;
    object-fit: contain;
    opacity: 0.82;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

/* viewBox 기반 SVG가 내용 맞춤 flex 폭에서 0으로 축소되지 않도록 렌더링 폭을 명시한다. */
.it-client-logo .it-client-logo__image--artiwells {
    width: 210px;
}

/* 공식 흰색 PAL 원본을 밝은 배경에서 사용할 수 있도록 단색 다크형으로 반전한다. */
.it-client-logo .it-client-logo__image--reversed {
    filter: brightness(0) saturate(100%);
    opacity: 0.76;
}

.it-client-logo:hover img {
    opacity: 1;
    transform: scale(1.04);
}

/* ============================================================
   7. FAQ (native <details>)
   ============================================================ */

/* ============================================================
   8. 최종 CTA
   ============================================================ */
.it-cta {
    text-align: center;
}

.it-cta__title {
    font-size: clamp(1.5rem, 3.4vw, 2.2rem);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.5px;
    word-break: keep-all;
}

.it-cta__desc {
    margin: 20px auto 0 auto;
    max-width: 58ch;
    font-size: 1.02rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.82);
    word-break: keep-all;
}

.it-cta__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 34px;
}

.it-cta__meta {
    margin-top: 28px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.7;
}

/* ============================================================
   스크롤 리빌
   숨김 상태는 CSS 기본값이 아니라 JS 가 html.it-reveal-on 을 붙였을 때만 적용된다.
   따라서 prefers-reduced-motion 사용자나 JS 실패 시에는 opacity:0 규칙 자체가 존재하지 않는다.
   ============================================================ */
html.it-reveal-on .it-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

html.it-reveal-on .it-reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* 카드는 리빌과 hover 리프트가 같은 transform 을 쓴다.
   위 .is-visible 규칙이 더 구체적이라 그대로 두면 등장 후 hover 가 죽으므로
   등장이 끝난 카드에서만 hover 리프트를 명시적으로 되살린다. */
html.it-reveal-on .it-card.it-reveal.is-visible:hover {
    transform: translateY(-5px);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* 같은 줄에 함께 들어오는 카드는 좌 → 우로 흘려 보낸다 (열 수가 달라져도 자연스럽게 보인다) */
html.it-reveal-on .it-stagger > .it-reveal:nth-child(3n + 2) {
    transition-delay: 0.1s;
}

html.it-reveal-on .it-stagger > .it-reveal:nth-child(3n + 3) {
    transition-delay: 0.2s;
}

/* 히어로처럼 순서를 직접 정해야 하는 곳 */
html.it-reveal-on .it-reveal.it-delay-1 { transition-delay: 0.12s; }
html.it-reveal-on .it-reveal.it-delay-2 { transition-delay: 0.24s; }
html.it-reveal-on .it-reveal.it-delay-3 { transition-delay: 0.36s; }
html.it-reveal-on .it-reveal.it-delay-4 { transition-delay: 0.48s; }
html.it-reveal-on .it-reveal.it-delay-5 { transition-delay: 0.60s; }

/* 마퀴는 전역 reduced-motion 블록이 animation-duration 을 0.01ms 로 강제해도
   animation-name 자체를 없애 완전히 멈춘다. 대신 손으로 스크롤할 수 있게 한다. */
@media (prefers-reduced-motion: reduce) {
    .it-marquee {
        overflow-x: auto;
    }

    .it-marquee__track {
        animation: none;
    }

    .it-marquee__track--clone {
        display: none;
    }
}

/* ============================================================
   반응형 (저장소 브레이크포인트: 1024 / 992 / 768 / 600)
   992 의 타임라인 재배치는 plastic_request.css 에서 그대로 상속받는다.
   ============================================================ */
@media (max-width: 1024px) {
    .it-band__inner {
        padding: 56px 20px;
    }

    .it-pf-grid,
    .it-step-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .it-role-grid {
        grid-template-columns: 1fr;
    }

    .it-section-head {
        margin-bottom: 36px;
    }

    .it-clients__foot {
        padding-bottom: 56px;
    }
}

@media (max-width: 992px) {
    .it-svc-items {
        gap: 48px;
    }
}

@media (max-width: 768px) {
    .it-band__inner {
        padding: 44px 16px;
    }

    .it-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .it-hero__actions .request-btn,
    .it-hero__actions .it-btn-ghost {
        justify-content: center;
    }

    .it-hero__partner {
        margin-top: 34px;
    }

    .it-section-head h2 {
        font-size: 1.7rem;
    }

    .it-section-head p {
        font-size: 0.98rem;
    }

    .it-svc-item__title {
        font-size: 1.45rem;
    }

    .it-svc-item__desc {
        font-size: 0.98rem;
    }

    .it-svc-panel {
        padding: 24px;
    }

    .it-lb-stats {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .it-subhead h3 {
        font-size: 1.35rem;
    }

    .it-card {
        --it-card-pad: 24px;
    }

    .it-tech {
        margin-top: 40px;
        padding-top: 32px;
    }

    .it-tech-group {
        flex-direction: column;
        gap: 10px;
        padding: 14px 0;
    }

    .it-tech-group h4 {
        flex: none;
        padding-top: 0;
    }

    .it-clients__head {
        padding-bottom: 28px;
    }

    .it-clients__foot {
        padding: 24px 16px 44px 16px;
    }

    .it-cta__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .it-cta__actions .request-btn,
    .it-cta__actions .it-btn-ghost {
        justify-content: center;
    }
}

@media (max-width: 600px) {
    .it-pf-grid,
    .it-step-grid {
        grid-template-columns: 1fr;
    }

    .it-client-logo {
        width: fit-content;
        height: 82px;
    }

    .it-client-logo img {
        max-width: 176px;
        max-height: 60px;
    }

    .it-client-logo .it-client-logo__image--artiwells {
        width: 176px;
    }

    .it-tech-chip {
        padding: 7px 11px;
        font-size: 0.83rem;
    }

    .it-stat__num {
        font-size: 1.55rem;
    }

    .it-role-card__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}
