/* =========================================================
   토양자원 서브페이지 공통 콘텐츠 CSS
   - 업로드 위치 : /css/tj_sub_common.css
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */

/* 서브페이지 공통 소제목/타이틀 */
.tj-sub-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: #519fed;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tj-sub-eyebrow::before {
    content: '';
    width: 36px;
    height: 2px;
    background: #519fed;
}

.tj-sub-page-title {
    margin: 0;
    color: #111;
    font-size: 34px;
    font-weight: 500;
    line-height: 1.36;
    letter-spacing: -0.052em;
    word-break: keep-all;
}

.tj-sub-page-title em {
    color: #519fed;
    font-style: normal;
}

/* sub0101 인사말 */
.tj-greeting {
    position: relative;
    width: 100%;
    padding: 10px 0 40px;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}

.tj-greeting * {
    box-sizing: border-box;
}

.tj-greeting__hero {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    align-items: stretch;
    gap: 54px;
    margin-top: 10px;
}

.tj-greeting__photo {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    border-radius: 0 90px 0 0;
    background: #eef4f8 url('/images/sub/sub0101_greeting.jpg') center center / cover no-repeat;
}

.tj-greeting__photo::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.22));
    pointer-events: none;
}

.tj-greeting__photo-text {
    position: absolute;
    left: 36px;
    right: 36px;
    bottom: 34px;
    z-index: 1;
    color: #fff;
}

.tj-greeting__photo-text strong {
    display: block;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.tj-greeting__photo-text span {
    display: block;
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.7;
    opacity: 0.92;
}

.tj-greeting__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 28px 0;
}

.tj-greeting__title {
    margin-bottom: 26px;
}

.tj-greeting__text {
    margin: 0;
    color: #444;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}

.tj-greeting__text + .tj-greeting__text {
    margin-top: 17px;
}

.tj-greeting__message {
    margin-top: 32px;
    padding: 26px 30px;
    border-left: 4px solid #519fed;
    background: #f6f9fc;
}

.tj-greeting__message p {
    margin: 0;
    color: #27313b;
    font-size: 19px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: -0.04em;
}

.tj-greeting__sign {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 32px;
    color: #222;
}

.tj-greeting__sign span {
    font-size: 15px;
    color: #666;
}

.tj-greeting__sign strong {
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.08em;
}

.tj-greeting__values {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 70px;
}

.tj-greeting__value {
    min-height: 190px;
    padding: 32px 26px;
    border: 1px solid #e4eaf0;
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-greeting__value:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,0.45);
    box-shadow: 0 18px 36px rgba(30, 50, 70, 0.08);
}

.tj-greeting__value-num {
    display: block;
    margin-bottom: 18px;
    color: #519fed;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.tj-greeting__value strong {
    display: block;
    margin-bottom: 12px;
    color: #111;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.tj-greeting__value p {
    margin: 0;
    color: #666;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: -0.035em;
}

.tj-greeting__bottom {
    position: relative;
    margin-top: 34px;
    padding: 40px 44px;
    overflow: hidden;
    background: linear-gradient(135deg, #10202c 0%, #1d3d52 100%);
    color: #fff;
}

.tj-greeting__bottom::after {
    content: '';
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    border: 48px solid rgba(255,255,255,0.06);
}

.tj-greeting__bottom strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 12px;
    font-size: 27px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: -0.045em;
}

.tj-greeting__bottom p {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0;
    color: rgba(255,255,255,0.82);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

@media screen and (max-width: 1200px) {
    .tj-greeting__hero {
        gap: 36px;
    }

    .tj-sub-page-title {
        font-size: 31px;
    }

    .tj-greeting__photo {
        min-height: 470px;
    }
}

@media screen and (max-width: 900px) {
    .tj-greeting {
        padding-bottom: 20px;
    }

    .tj-greeting__hero {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .tj-greeting__photo {
        min-height: 380px;
        border-radius: 0 64px 0 0;
    }

    .tj-greeting__body {
        padding: 0;
    }

    .tj-greeting__values {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 48px;
    }
}

@media screen and (max-width: 640px) {
    .tj-greeting__photo {
        min-height: 300px;
        border-radius: 0 42px 0 0;
    }

    .tj-greeting__photo-text {
        left: 24px;
        right: 24px;
        bottom: 24px;
    }

    .tj-greeting__photo-text strong {
        font-size: 22px;
    }

    .tj-greeting__photo-text span {
        font-size: 13px;
    }

    .tj-sub-eyebrow {
        font-size: 13px;
    }

    .tj-sub-page-title {
        font-size: 25px;
        line-height: 1.42;
    }

    .tj-greeting__title {
        margin-bottom: 22px;
    }

    .tj-greeting__text {
        font-size: 16px;
        line-height: 1.82;
    }

    .tj-greeting__message {
        margin-top: 26px;
        padding: 22px 22px;
    }

    .tj-greeting__message p {
        font-size: 17px;
    }

    .tj-greeting__sign {
        margin-top: 26px;
    }

    .tj-greeting__sign span {
        font-size: 14px;
    }

    .tj-greeting__sign strong {
        font-size: 21px;
    }

    .tj-greeting__values {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 38px;
    }

    .tj-greeting__value {
        min-height: auto;
        padding: 26px 22px;
    }

    .tj-greeting__bottom {
        padding: 30px 24px;
    }

    .tj-greeting__bottom strong {
        font-size: 22px;
    }

    .tj-greeting__bottom p {
        font-size: 15px;
        line-height: 1.75;
    }
}

/* =========================================================
   sub0102 비전 및 사업영역
   - 이미지 교체 경로
     1) /images/sub/sub0102_vision.jpg
   - 주요 사업영역은 SVG 아이콘 사용
========================================================= */
.tj-vision {
    position: relative;
    width: 100%;
    padding: 10px 0 40px;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}

.tj-vision * {
    box-sizing: border-box;
}

.tj-vision__intro {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 54px;
    align-items: stretch;
    margin-top: 10px;
}

.tj-vision__visual {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    border-radius: 0 90px 0 0;
    background: #eef4f8 url('/images/sub/sub0102_vision.jpg') center center / cover no-repeat;
}

.tj-vision__visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.34));
    pointer-events: none;
}

.tj-vision__visual-caption {
    position: absolute;
    left: 36px;
    right: 36px;
    bottom: 34px;
    z-index: 1;
    color: #fff;
}

.tj-vision__visual-caption strong {
    display: block;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.tj-vision__visual-caption span {
    display: block;
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.7;
    opacity: 0.9;
}

.tj-vision__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 28px 0;
}

.tj-vision__title {
    margin-bottom: 26px;
}

.tj-vision__text {
    margin: 0;
    color: #444;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}

.tj-vision__text + .tj-vision__text {
    margin-top: 17px;
}

.tj-vision__keyword {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 32px;
}

.tj-vision__keyword-item {
    padding: 22px 18px;
    border: 1px solid #e2e9f0;
    background: #fff;
    text-align: center;
}

.tj-vision__keyword-item span {
    display: block;
    margin-bottom: 9px;
    color: #519fed;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.tj-vision__keyword-item strong {
    display: block;
    color: #111;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.tj-vision__mission {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-top: 70px;
}

.tj-vision__mission-card {
    position: relative;
    overflow: hidden;
    min-height: 260px;
    padding: 42px 40px;
    background: #10202c;
    color: #fff;
}

.tj-vision__mission-card::before {
    content: '';
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    border: 48px solid rgba(255,255,255,0.06);
}

.tj-vision__mission-card:nth-child(2) {
    background: linear-gradient(135deg, #1d3d52 0%, #2d6481 100%);
}

.tj-vision__mission-label {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-bottom: 18px;
    color: rgba(255,255,255,0.78);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.16em;
}

.tj-vision__mission-card strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 18px;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.36;
    letter-spacing: -0.05em;
}

.tj-vision__mission-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: 520px;
    color: rgba(255,255,255,0.82);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}

.tj-vision__section-head {
    margin-top: 78px;
    margin-bottom: 30px;
    text-align: center;
}

.tj-vision__section-head .tj-sub-eyebrow {
    justify-content: center;
}

.tj-vision__section-head .tj-sub-eyebrow::before {
    display: none;
}

.tj-vision__section-head .tj-sub-page-title {
    font-size: 32px;
}

.tj-vision__section-head p {
    max-width: 760px;
    margin: 18px auto 0;
    color: #666;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}

.tj-vision__business {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.tj-vision__business-card {
    position: relative;
    overflow: hidden;
    min-height: 300px;
    padding: 34px 30px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e2e9f0;
    background: #fff;
    color: #222;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-vision__business-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,0.45);
    box-shadow: 0 18px 36px rgba(30, 50, 70, 0.08);
}

.tj-vision__business-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin-bottom: 22px;
    border-radius: 18px;
    background: #f3f8fe;
    color: #519fed;
}

.tj-vision__business-icon svg {
    width: 38px;
    height: 38px;
}

.tj-vision__business-num {
    display: block;
    margin-bottom: 14px;
    color: #519fed;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.tj-vision__business-card strong {
    display: block;
    margin-bottom: 12px;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
    color: #111;
}

.tj-vision__business-card p {
    margin: 0;
    color: #666;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.72;
    letter-spacing: -0.035em;
}

.tj-vision__process {
    margin-top: 70px;
    padding: 42px 40px;
    border: 1px solid #e2e9f0;
    background: #f7fafc;
}

.tj-vision__process-title {
    margin: 0 0 26px;
    color: #111;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: -0.045em;
}

.tj-vision__process-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tj-vision__process-list li {
    position: relative;
    min-height: 118px;
    padding: 24px 16px;
    background: #fff;
    border: 1px solid #e4eaf0;
    text-align: center;
}

.tj-vision__process-list span {
    display: block;
    margin-bottom: 9px;
    color: #519fed;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.tj-vision__process-list strong {
    display: block;
    color: #222;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: -0.04em;
}

@media screen and (max-width: 1200px) {
    .tj-vision__intro {
        gap: 36px;
    }

    .tj-vision__visual {
        min-height: 460px;
    }

    .tj-vision__business {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tj-vision__process-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 900px) {
    .tj-vision {
        padding-bottom: 20px;
    }

    .tj-vision__intro {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .tj-vision__visual {
        min-height: 360px;
        border-radius: 0 64px 0 0;
    }

    .tj-vision__content {
        padding: 0;
    }

    .tj-vision__mission {
        grid-template-columns: 1fr;
        margin-top: 52px;
    }

    .tj-vision__section-head {
        margin-top: 58px;
    }

    .tj-vision__business {
        grid-template-columns: 1fr;
    }

    .tj-vision__business-card {
    position: relative;
    overflow: hidden;
    min-height: 300px;
    padding: 34px 30px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e2e9f0;
    background: #fff;
    color: #222;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-vision__business-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,0.45);
    box-shadow: 0 18px 36px rgba(30, 50, 70, 0.08);
}

.tj-vision__business-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin-bottom: 22px;
    border-radius: 18px;
    background: #f3f8fe;
    color: #519fed;
}

.tj-vision__business-icon svg {
    width: 38px;
    height: 38px;
}

.tj-vision__business-num {
    display: block;
    margin-bottom: 14px;
    color: #519fed;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.tj-vision__business-card strong {
    display: block;
    margin-bottom: 12px;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
    color: #111;
}

.tj-vision__business-card p {
    margin: 0;
    color: #666;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.72;
    letter-spacing: -0.035em;
}

.tj-vision__process {
        margin-top: 52px;
    }
}

@media screen and (max-width: 640px) {
    .tj-vision__visual {
        min-height: 290px;
        border-radius: 0 42px 0 0;
    }

    .tj-vision__visual-caption {
        left: 24px;
        right: 24px;
        bottom: 24px;
    }

    .tj-vision__visual-caption strong {
        font-size: 22px;
    }

    .tj-vision__visual-caption span {
        font-size: 13px;
    }

    .tj-vision__title {
        margin-bottom: 22px;
    }

    .tj-vision__text {
        font-size: 16px;
        line-height: 1.82;
    }

    .tj-vision__keyword {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 26px;
    }

    .tj-vision__keyword-item {
        padding: 20px 16px;
    }

    .tj-vision__mission-card {
        min-height: auto;
        padding: 32px 24px;
    }

    .tj-vision__mission-card strong {
        font-size: 24px;
    }

    .tj-vision__mission-card p {
        font-size: 15px;
        line-height: 1.75;
    }

    .tj-vision__section-head .tj-sub-page-title {
        font-size: 25px;
    }

    .tj-vision__section-head p {
        font-size: 15px;
        line-height: 1.75;
    }

    .tj-vision__business-card {
    position: relative;
    overflow: hidden;
    min-height: 300px;
    padding: 34px 30px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e2e9f0;
    background: #fff;
    color: #222;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-vision__business-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,0.45);
    box-shadow: 0 18px 36px rgba(30, 50, 70, 0.08);
}

.tj-vision__business-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin-bottom: 22px;
    border-radius: 18px;
    background: #f3f8fe;
    color: #519fed;
}

.tj-vision__business-icon svg {
    width: 38px;
    height: 38px;
}

.tj-vision__business-num {
    display: block;
    margin-bottom: 14px;
    color: #519fed;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.tj-vision__business-card strong {
    display: block;
    margin-bottom: 12px;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
    color: #111;
}

.tj-vision__business-card p {
    margin: 0;
    color: #666;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.72;
    letter-spacing: -0.035em;
}

.tj-vision__process {
        padding: 30px 22px;
    }

    .tj-vision__process-title {
        font-size: 22px;
    }

    .tj-vision__process-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .tj-vision__process-list li {
        min-height: auto;
        padding: 22px 16px;
    }
}
/* =========================================================
   sub0102 비전 및 사업영역 - 주요 사업영역 SVG 카드 수정
   - 기존 이미지 배경 카드 대신 인라인 SVG 아이콘 카드로 구성
   - 기존 /css/tj_sub_common.css 하단에 그대로 추가 가능
========================================================= */
.tj-vision__business--svg .tj-vision__business-card {
    min-height: 320px;
    padding: 34px 30px 32px;
    justify-content: flex-start;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid #e3eaf1;
    color: #222;
    box-shadow: 0 16px 34px rgba(22, 40, 58, 0.06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-vision__business--svg .tj-vision__business-card::before {
    display: none;
}

.tj-vision__business--svg .tj-vision__business-card:hover {
    transform: translateY(-7px);
    border-color: rgba(81, 159, 237, 0.48);
    box-shadow: 0 24px 46px rgba(22, 40, 58, 0.1);
}

.tj-vision__business-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 78px;
    height: 78px;
    margin-bottom: 24px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(81, 159, 237, 0.12), rgba(81, 159, 237, 0.03));
    border: 1px solid rgba(81, 159, 237, 0.2);
}

.tj-vision__business-icon svg {
    display: block;
    width: 52px;
    height: 52px;
    fill: none;
    stroke: #519fed;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-vision__business--svg .tj-vision__business-num {
    margin-bottom: 12px;
    color: #519fed;
}

.tj-vision__business--svg .tj-vision__business-card strong {
    color: #111;
}

.tj-vision__business--svg .tj-vision__business-card p {
    color: #666;
}

@media screen and (max-width: 900px) {
    .tj-vision__business--svg .tj-vision__business-card {
        min-height: auto;
        padding: 30px 26px;
    }

    .tj-vision__business-icon {
        width: 72px;
        height: 72px;
        margin-bottom: 20px;
    }

    .tj-vision__business-icon svg {
        width: 48px;
        height: 48px;
    }
}

@media screen and (max-width: 640px) {
    .tj-vision__business--svg .tj-vision__business-card {
        padding: 28px 24px;
    }

    .tj-vision__business-icon {
        width: 66px;
        height: 66px;
        border-radius: 20px;
    }

    .tj-vision__business-icon svg {
        width: 43px;
        height: 43px;
    }
}

/* =========================================================
   sub0102 비전 및 사업영역 - SVG 아이콘 가로 중앙 정렬 보정
   - 주요 사업영역 카드 안에서 SVG 아이콘 박스가 가운데 위치하도록 조정
   - 기존 /css/tj_sub_common.css 하단에 그대로 추가 가능
========================================================= */
.tj-vision__business--svg .tj-vision__business-icon {
    margin: 0 auto 24px;
}

.tj-vision__business--svg .tj-vision__business-icon svg {
    margin: 0 auto;
}

@media screen and (max-width: 900px) {
    .tj-vision__business--svg .tj-vision__business-icon {
        margin: 0 auto 20px;
    }
}
/* =========================================================
   sub0201 오염퇴적물 처리기술
   - /css/tj_sub_common.css 하단에 그대로 추가 가능
   - 이미지 경로 : /images/sub/sub0201_tech01.jpg, sub0201_tech02.jpg, sub0201_tech03.jpg
========================================================= */
.tj-tech0201 {
    width: 100%;
    color: #222;
}

.tj-tech0201 * {
    box-sizing: border-box;
}

.tj-tech0201__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
    gap: 58px;
    align-items: center;
    margin: 10px 0 80px;
}

.tj-tech0201__title {
    margin-bottom: 28px;
}

.tj-tech0201__lead {
    margin: 0 0 20px;
    color: #20252a;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.78;
    letter-spacing: -0.045em;
    word-break: keep-all;
}

.tj-tech0201__text {
    margin: 0;
    color: #606a73;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

.tj-tech0201__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 32px;
}

.tj-tech0201__tags span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid rgba(81, 159, 237, 0.25);
    border-radius: 999px;
    background: rgba(81, 159, 237, 0.07);
    color: #2879ca;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: -0.025em;
}

.tj-tech0201__hero-visual {
    position: relative;
}

.tj-tech0201__image-box {
    position: relative;
    overflow: hidden;
    min-height: 460px;
    border-radius: 34px 0 34px 34px;
    background: #eef4fa;
    box-shadow: 0 28px 60px rgba(25, 50, 75, 0.12);
}

.tj-tech0201__image-box::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 48%, rgba(0,0,0,0.42) 100%);
    pointer-events: none;
}

.tj-tech0201__image-box img,
.tj-tech0201__system-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tj-tech0201__image-caption {
    position: absolute;
    left: 28px;
    bottom: 26px;
    z-index: 2;
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
    padding: 14px 18px;
    border-radius: 16px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 12px 24px rgba(0,0,0,0.08);
}

.tj-tech0201__image-caption strong {
    color: #111;
    font-size: 13px;
    font-weight: 600;
}

.tj-tech0201__image-caption span {
    color: #666;
    font-size: 12px;
    font-weight: 300;
}

.tj-tech0201__section-head,
.tj-tech0201__flow-text,
.tj-tech0201__effect-head {
    max-width: 820px;
    margin: 0 auto 38px;
    text-align: center;
}

.tj-tech0201__section-head .tj-sub-page-title,
.tj-tech0201__flow-text .tj-sub-page-title,
.tj-tech0201__effect-head .tj-sub-page-title {
    margin-bottom: 18px;
}

.tj-tech0201__section-head p,
.tj-tech0201__flow-text p {
    margin: 0;
    color: #66717a;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

.tj-tech0201__point-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
    margin-bottom: 90px;
}

.tj-tech0201__point-card {
    position: relative;
    overflow: hidden;
    min-height: 295px;
    padding: 34px 28px 32px;
    border: 1px solid #e4ebf2;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(30, 55, 80, 0.055);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.tj-tech0201__point-card:hover {
    transform: translateY(-7px);
    border-color: rgba(81,159,237,0.45);
    box-shadow: 0 26px 55px rgba(30, 55, 80, 0.1);
}

.tj-tech0201__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin: 0 auto 24px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(81,159,237,0.12), rgba(81,159,237,0.03));
    border: 1px solid rgba(81,159,237,0.18);
}

.tj-tech0201__icon svg {
    display: block;
    width: 48px;
    height: 48px;
    fill: none;
    stroke: #519fed;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-tech0201__point-card > span {
    display: block;
    margin-bottom: 10px;
    color: #519fed;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .08em;
    text-align: center;
}

.tj-tech0201__point-card strong {
    display: block;
    margin-bottom: 13px;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
    text-align: center;
}

.tj-tech0201__point-card p {
    margin: 0;
    color: #666;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.72;
    letter-spacing: -0.035em;
    text-align: center;
    word-break: keep-all;
}

.tj-tech0201__flow-wrap {
    margin-bottom: 78px;
    padding: 62px 46px 50px;
    border-radius: 34px;
    background: linear-gradient(180deg, #f6fafe 0%, #fff 100%);
    border: 1px solid #e5eef7;
}

.tj-tech0201__flow-svg {
    overflow-x: auto;
    padding: 8px 0 0;
}

.tj-tech0201__flow-svg svg {
    display: block;
    width: 100%;
    min-width: 840px;
    height: auto;
}

.tj-flow-line {
    fill: none;
    stroke: #d2e2f1;
    stroke-width: 8;
    stroke-linecap: round;
}

.tj-flow-node circle {
    fill: #fff;
    stroke: url(#tjFlowGrad);
    stroke-width: 4;
    filter: url(#tjFlowShadow);
}

.tj-flow-node path {
    fill: none;
    stroke: #519fed;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-flow-node text {
    fill: #222;
    font-size: 22px;
    font-weight: 600;
    text-anchor: middle;
    letter-spacing: -0.04em;
}

.tj-tech0201__step-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    margin-bottom: 90px;
}

.tj-tech0201__step-card {
    position: relative;
    min-height: 210px;
    padding: 28px 22px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid #e3eaf1;
    box-shadow: 0 16px 34px rgba(30, 55, 80, 0.055);
}

.tj-tech0201__step-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 22px;
    right: 22px;
    height: 3px;
    background: #519fed;
}

.tj-tech0201__step-card span {
    display: block;
    margin-bottom: 13px;
    color: #519fed;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.tj-tech0201__step-card strong {
    display: block;
    margin-bottom: 12px;
    color: #111;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.tj-tech0201__step-card p {
    margin: 0;
    color: #666;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.68;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

.tj-tech0201__system {
    display: grid;
    grid-template-columns: minmax(380px, 0.95fr) minmax(0, 1.05fr);
    gap: 54px;
    align-items: center;
    margin-bottom: 92px;
}

.tj-tech0201__system-image {
    position: relative;
    overflow: hidden;
    height: 500px;
    border-radius: 0 34px 34px 34px;
    background: #eef4fa;
    box-shadow: 0 26px 56px rgba(30, 55, 80, 0.11);
}

.tj-tech0201__image-caption--dark {
    background: rgba(20, 34, 48, 0.82);
}

.tj-tech0201__image-caption--dark strong,
.tj-tech0201__image-caption--dark span {
    color: #fff;
}

.tj-tech0201__system-content .tj-sub-page-title {
    margin-bottom: 24px;
}

.tj-tech0201__system-content > p {
    margin: 0 0 30px;
    color: #606a73;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.82;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

.tj-tech0201__check-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tj-tech0201__check-list li {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 19px 22px;
    border-radius: 18px;
    background: #f7fafc;
    border: 1px solid #e5edf4;
}

.tj-tech0201__check-list strong {
    position: relative;
    color: #111;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.035em;
}

.tj-tech0201__check-list strong::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 10px;
    border-radius: 50%;
    background: #519fed;
    vertical-align: 2px;
}

.tj-tech0201__check-list span {
    color: #666;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: -0.035em;
}

.tj-tech0201__effect {
    padding: 58px 46px;
    border-radius: 34px;
    background: #17202a;
    color: #fff;
}

.tj-tech0201__effect .tj-sub-page-title,
.tj-tech0201__effect .tj-sub-eyebrow {
    color: #fff;
}

.tj-tech0201__effect .tj-sub-eyebrow::before {
    background: #fff;
}

.tj-tech0201__effect-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.tj-tech0201__effect-item {
    min-height: 220px;
    padding: 34px 30px;
    border-radius: 24px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
}

.tj-tech0201__effect-item span {
    display: block;
    margin-bottom: 18px;
    color: #7ec2ff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
}

.tj-tech0201__effect-item strong {
    display: block;
    margin-bottom: 14px;
    color: #fff;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-tech0201__effect-item p {
    margin: 0;
    color: rgba(255,255,255,0.74);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

@media screen and (max-width: 1200px) {
    .tj-tech0201__hero,
    .tj-tech0201__system {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .tj-tech0201__point-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .tj-tech0201__step-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .tj-tech0201__hero-visual {
        max-width: 760px;
        width: 100%;
        margin: 0 auto;
    }
}

@media screen and (max-width: 900px) {
    .tj-tech0201__hero {
        margin-bottom: 60px;
    }

    .tj-tech0201__lead {
        font-size: 18px;
    }

    .tj-tech0201__text,
    .tj-tech0201__section-head p,
    .tj-tech0201__flow-text p,
    .tj-tech0201__system-content > p {
        font-size: 16px;
    }

    .tj-tech0201__image-box,
    .tj-tech0201__system-image {
        min-height: 360px;
        height: 420px;
        border-radius: 26px;
    }

    .tj-tech0201__flow-wrap,
    .tj-tech0201__effect {
        padding: 44px 26px;
        border-radius: 26px;
    }

    .tj-tech0201__step-grid,
    .tj-tech0201__effect-list {
        grid-template-columns: 1fr;
    }

    .tj-tech0201__step-card {
        min-height: auto;
    }

    .tj-tech0201__check-list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

@media screen and (max-width: 640px) {
    .tj-tech0201__hero {
        gap: 32px;
        margin: 0 0 50px;
    }

    .tj-tech0201__lead {
        font-size: 16px;
        line-height: 1.72;
    }

    .tj-tech0201__text {
        font-size: 15px;
        line-height: 1.75;
    }

    .tj-tech0201__tags span {
        min-height: 34px;
        padding: 0 13px;
        font-size: 13px;
    }

    .tj-tech0201__image-box,
    .tj-tech0201__system-image {
        height: 300px;
        min-height: 300px;
        border-radius: 20px;
    }

    .tj-tech0201__image-caption {
        left: 16px;
        bottom: 16px;
        max-width: calc(100% - 32px);
        padding: 12px 14px;
    }

    .tj-tech0201__point-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-bottom: 60px;
    }

    .tj-tech0201__point-card {
        min-height: auto;
        padding: 30px 24px;
        border-radius: 22px;
    }

    .tj-tech0201__point-card strong {
        font-size: 20px;
    }

    .tj-tech0201__flow-wrap {
        margin-bottom: 52px;
        padding: 36px 18px;
    }

    .tj-tech0201__flow-svg svg {
        min-width: 760px;
    }

    .tj-tech0201__step-grid {
        gap: 12px;
        margin-bottom: 58px;
    }

    .tj-tech0201__step-card {
        padding: 24px 20px;
    }

    .tj-tech0201__step-card strong {
        font-size: 19px;
    }

    .tj-tech0201__system {
        gap: 34px;
        margin-bottom: 58px;
    }

    .tj-tech0201__check-list li {
        padding: 18px;
    }

    .tj-tech0201__effect {
        padding: 38px 20px;
        border-radius: 24px;
    }

    .tj-tech0201__effect-item {
        min-height: auto;
        padding: 28px 22px;
        border-radius: 20px;
    }

    .tj-tech0201__effect-item strong {
        font-size: 20px;
    }
}

/* =========================================================
   sub0201 오염퇴적물 처리기술 수정
   - 이미지 경로 안내 문구 제거 후 이미지 영역 높이 고정
   - 서버 업로드 이미지 경로: /images/sub/sub0201_tech01.jpg, /images/sub/sub0201_tech02.jpg
========================================================= */
.tj-tech0201__image-box {
    height: 460px;
    min-height: 0;
}

.tj-tech0201__image-box img,
.tj-tech0201__system-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tj-tech0201__image-caption {
    display: none !important;
}

@media screen and (max-width: 768px) {
    .tj-tech0201__image-box,
    .tj-tech0201__system-image {
        height: 300px;
        min-height: 300px;
    }
}


/* =========================================================
   sub0202 환경준설·오염물 수거
   - /css/tj_sub_common.css 하단에 그대로 추가
   - 이미지 경로 텍스트 화면 출력 없음
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */
.tj-dredge0202 {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}

.tj-dredge0202 * {
    box-sizing: border-box;
}

.tj-dredge0202__hero {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 86px;
}

.tj-dredge0202__hero-text {
    min-width: 0;
}

.tj-dredge0202__title {
    margin-bottom: 26px;
}

.tj-dredge0202__lead {
    margin: 0;
    color: #333;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.78;
    letter-spacing: -0.045em;
}

.tj-dredge0202__text {
    margin: 20px 0 0;
    color: #5b6470;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}

.tj-dredge0202__keyword {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.tj-dredge0202__keyword span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid rgba(81,159,237,0.26);
    border-radius: 999px;
    background: #f5f9fe;
    color: #2a6cae;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: -0.03em;
}

.tj-dredge0202__hero-visual {
    position: relative;
    min-width: 0;
}

.tj-dredge0202__image-box {
    position: relative;
    height: 460px;
    overflow: hidden;
    border-radius: 0 90px 0 0;
    background: #eef4f8;
}

.tj-dredge0202__image-box::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.20));
    pointer-events: none;
}

.tj-dredge0202__image-box img,
.tj-dredge0202__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tj-dredge0202__float-card {
    position: absolute;
    left: -38px;
    bottom: -32px;
    width: 260px;
    padding: 26px 24px;
    background: #fff;
    box-shadow: 0 24px 55px rgba(26,47,72,0.16);
}

.tj-dredge0202__float-card span {
    display: block;
    margin-bottom: 8px;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.tj-dredge0202__float-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.38;
    letter-spacing: -0.045em;
}

.tj-dredge0202__section-head {
    max-width: 880px;
    margin: 0 auto 40px;
    text-align: center;
}

.tj-dredge0202__section-head .tj-sub-eyebrow {
    justify-content: center;
}

.tj-dredge0202__section-head p {
    max-width: 760px;
    margin: 18px auto 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}

.tj-dredge0202__reason-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 84px;
}

.tj-dredge0202__reason-card {
    position: relative;
    min-height: 260px;
    padding: 34px 30px;
    overflow: hidden;
    border: 1px solid #e3eaf1;
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-dredge0202__reason-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,0.42);
    box-shadow: 0 20px 45px rgba(26, 47, 72, 0.09);
}

.tj-dredge0202__reason-card::after {
    content: '';
    position: absolute;
    right: -46px;
    bottom: -52px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 28px solid rgba(81,159,237,0.07);
}

.tj-dredge0202__reason-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: #f2f8ff;
    color: #519fed;
}

.tj-dredge0202__reason-icon svg {
    display: block;
    width: 38px;
    height: 38px;
}

.tj-dredge0202 svg path,
.tj-dredge0202 svg circle,
.tj-dredge0202 svg line,
.tj-dredge0202 svg polyline,
.tj-dredge0202 svg rect {
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-dredge0202__reason-card strong {
    display: block;
    color: #111;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-dredge0202__reason-card p {
    position: relative;
    z-index: 1;
    margin: 16px 0 0;
    color: #626b74;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: -0.035em;
}

.tj-dredge0202__process {
    margin-bottom: 84px;
    padding: 58px 52px;
    background: #f6f9fc;
}

.tj-dredge0202__process-top {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 42px;
    align-items: end;
    margin-bottom: 42px;
}

.tj-dredge0202__process-top p {
    margin: 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-dredge0202__flow-svg {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
}

.tj-dredge0202__flow-svg svg {
    display: block;
    width: 100%;
    min-width: 980px;
    height: auto;
}

.tj-dredge0202__flow-line {
    fill: none;
    stroke: #d6e2ee;
    stroke-width: 8;
    stroke-linecap: round;
}

.tj-dredge0202__flow-node circle {
    fill: #fff;
    stroke: #519fed;
    stroke-width: 3;
    filter: drop-shadow(0 12px 18px rgba(28,61,94,0.12));
}

.tj-dredge0202__flow-node path,
.tj-dredge0202__flow-node rect,
.tj-dredge0202__flow-node line,
.tj-dredge0202__flow-node polyline {
    stroke: #519fed;
    stroke-width: 4;
}

.tj-dredge0202__flow-node text {
    fill: #202b36;
    font-size: 22px;
    font-weight: 600;
    text-anchor: middle;
    letter-spacing: -0.04em;
}

.tj-dredge0202__flow-arrow {
    fill: none;
    stroke: #b8c8d8;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-dredge0202__method {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 52px;
    align-items: center;
    margin-bottom: 84px;
}

.tj-dredge0202__photo {
    position: relative;
    height: 460px;
    overflow: hidden;
    border-radius: 90px 0 0 0;
    background: #eef4f8;
}

.tj-dredge0202__method-content p {
    margin: 20px 0 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.86;
    letter-spacing: -0.035em;
}

.tj-dredge0202__method-list {
    display: grid;
    gap: 14px;
    margin: 30px 0 0;
    padding: 0;
    list-style: none;
}

.tj-dredge0202__method-list li {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    padding: 18px 20px;
    border: 1px solid #e1e8ef;
    background: #fff;
}

.tj-dredge0202__method-list strong {
    color: #111;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.035em;
}

.tj-dredge0202__method-list span {
    color: #66717c;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

.tj-dredge0202__type-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 84px;
}

.tj-dredge0202__type-card {
    min-height: 238px;
    padding: 30px 24px;
    border-top: 3px solid #519fed;
    background: #fff;
    box-shadow: 0 12px 35px rgba(25, 45, 65, 0.07);
}

.tj-dredge0202__type-card span {
    display: block;
    margin-bottom: 16px;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.tj-dredge0202__type-card strong {
    display: block;
    color: #111;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-dredge0202__type-card p {
    margin: 14px 0 0;
    color: #65707a;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: -0.035em;
}

.tj-dredge0202__control {
    position: relative;
    overflow: hidden;
    padding: 52px 56px;
    background: linear-gradient(135deg, #10202c 0%, #1c4057 100%);
    color: #fff;
}

.tj-dredge0202__control::after {
    content: '';
    position: absolute;
    right: -88px;
    bottom: -105px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 50px solid rgba(255,255,255,0.055);
}

.tj-dredge0202__control .tj-sub-eyebrow,
.tj-dredge0202__control .tj-sub-page-title,
.tj-dredge0202__control .tj-sub-page-title em {
    color: #fff;
}

.tj-dredge0202__control .tj-sub-eyebrow::before {
    background: #fff;
}

.tj-dredge0202__control-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 46px;
    align-items: center;
}

.tj-dredge0202__control-text p {
    margin: 20px 0 0;
    color: rgba(255,255,255,0.78);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-dredge0202__control-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.tj-dredge0202__control-item {
    padding: 24px 24px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.06);
}

.tj-dredge0202__control-item span {
    display: block;
    margin-bottom: 10px;
    color: #8bc5ff;
    font-size: 14px;
    font-weight: 600;
}

.tj-dredge0202__control-item strong {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 19px;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.tj-dredge0202__control-item p {
    margin: 0;
    color: rgba(255,255,255,0.72);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

@media screen and (max-width: 1180px) {
    .tj-dredge0202__hero,
    .tj-dredge0202__method,
    .tj-dredge0202__control-grid {
        grid-template-columns: 1fr;
    }

    .tj-dredge0202__float-card {
        left: 24px;
    }

    .tj-dredge0202__reason-grid,
    .tj-dredge0202__type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tj-dredge0202__process-top {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 768px) {
    .tj-dredge0202__hero {
        gap: 34px;
        margin-bottom: 62px;
    }

    .tj-dredge0202__lead {
        font-size: 18px;
    }

    .tj-dredge0202__text,
    .tj-dredge0202__section-head p,
    .tj-dredge0202__process-top p,
    .tj-dredge0202__method-content p,
    .tj-dredge0202__control-text p {
        font-size: 16px;
    }

    .tj-dredge0202__image-box,
    .tj-dredge0202__photo {
        height: 300px;
        border-radius: 0 54px 0 0;
    }

    .tj-dredge0202__photo {
        border-radius: 54px 0 0 0;
    }

    .tj-dredge0202__float-card {
        position: static;
        width: 100%;
        margin-top: 14px;
        box-shadow: 0 12px 30px rgba(26,47,72,0.10);
    }

    .tj-dredge0202__reason-grid,
    .tj-dredge0202__type-grid,
    .tj-dredge0202__control-list {
        grid-template-columns: 1fr;
    }

    .tj-dredge0202__reason-card {
        min-height: auto;
        padding: 28px 24px;
    }

    .tj-dredge0202__process,
    .tj-dredge0202__control {
        padding: 38px 22px;
        margin-left: -20px;
        margin-right: -20px;
    }

    .tj-dredge0202__method-list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

@media screen and (max-width: 480px) {
    .tj-dredge0202__keyword span {
        width: 100%;
        justify-content: center;
    }

    .tj-dredge0202__section-head {
        text-align: left;
    }

    .tj-dredge0202__section-head .tj-sub-eyebrow {
        justify-content: flex-start;
    }

    .tj-dredge0202__flow-svg svg {
        min-width: 860px;
    }
}
/* =========================================================
   sub0203 입자분리·Soil Washing
   - /css/tj_sub_common.css 하단에 그대로 추가
   - 이미지 경로 텍스트 화면 출력 없음
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */
.tj-soilwash0203 {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}

.tj-soilwash0203 * {
    box-sizing: border-box;
}

.tj-soilwash0203__hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 86px;
}

.tj-soilwash0203__hero-text {
    min-width: 0;
}

.tj-soilwash0203__title {
    margin-bottom: 26px;
}

.tj-soilwash0203__lead {
    margin: 0;
    color: #333;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.78;
    letter-spacing: -0.045em;
}

.tj-soilwash0203__text {
    margin: 20px 0 0;
    color: #5b6470;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__keyword {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.tj-soilwash0203__keyword span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid rgba(81,159,237,.26);
    border-radius: 999px;
    background: #f5f9fe;
    color: #2a6cae;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: -0.03em;
}

.tj-soilwash0203__hero-visual {
    position: relative;
    min-width: 0;
}

.tj-soilwash0203__image-box {
    position: relative;
    height: 460px;
    overflow: hidden;
    border-radius: 0 90px 0 0;
    background: #eef4f8;
}

.tj-soilwash0203__image-box::after,
.tj-soilwash0203__photo::after,
.tj-soilwash0203__result-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.18));
    pointer-events: none;
}

.tj-soilwash0203__image-box img,
.tj-soilwash0203__photo img,
.tj-soilwash0203__result-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tj-soilwash0203__float-card {
    position: absolute;
    left: -38px;
    bottom: -32px;
    width: 284px;
    padding: 26px 24px;
    background: #fff;
    box-shadow: 0 24px 55px rgba(26,47,72,.16);
}

.tj-soilwash0203__float-card span {
    display: block;
    margin-bottom: 8px;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .08em;
}

.tj-soilwash0203__float-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.38;
    letter-spacing: -0.045em;
}

.tj-soilwash0203__section-head {
    max-width: 880px;
    margin: 0 auto 40px;
    text-align: center;
}

.tj-soilwash0203__section-head .tj-sub-eyebrow {
    justify-content: center;
}

.tj-soilwash0203__section-head p {
    max-width: 760px;
    margin: 18px auto 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__point-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 84px;
}

.tj-soilwash0203__point-card {
    position: relative;
    min-height: 260px;
    padding: 34px 30px;
    overflow: hidden;
    border: 1px solid #e3eaf1;
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-soilwash0203__point-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,.42);
    box-shadow: 0 20px 45px rgba(26,47,72,.09);
}

.tj-soilwash0203__point-card::after {
    content: '';
    position: absolute;
    right: -46px;
    bottom: -52px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 28px solid rgba(81,159,237,.07);
}

.tj-soilwash0203__point-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: #f2f8ff;
    color: #519fed;
}

.tj-soilwash0203__point-icon svg {
    display: block;
    width: 40px;
    height: 40px;
}

.tj-soilwash0203 svg path,
.tj-soilwash0203 svg circle,
.tj-soilwash0203 svg line,
.tj-soilwash0203 svg polyline,
.tj-soilwash0203 svg rect {
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-soilwash0203__point-card strong {
    display: block;
    color: #111;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-soilwash0203__point-card p {
    position: relative;
    z-index: 1;
    margin: 16px 0 0;
    color: #626b74;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__process {
    margin-bottom: 84px;
    padding: 58px 52px;
    background: #f6f9fc;
}

.tj-soilwash0203__process-top {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 42px;
    align-items: end;
    margin-bottom: 42px;
}

.tj-soilwash0203__process-top p {
    margin: 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__flow-svg {
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 8px;
}

.tj-soilwash0203__flow-svg svg {
    display: block;
    width: 100%;
    min-width: 980px;
    height: auto;
    color: #519fed;
}

.tj-soilwash0203__main-line,
.tj-soilwash0203__flow-arrow,
.tj-soilwash0203__branch path {
    color: rgba(81,159,237,.42);
}

.tj-soilwash0203__flow-node circle {
    fill: #fff;
    stroke: #519fed;
    stroke-width: 3;
}

.tj-soilwash0203__flow-node path,
.tj-soilwash0203__flow-node rect {
    color: #519fed;
}

.tj-soilwash0203__flow-node text,
.tj-soilwash0203__branch text {
    fill: #26313d;
    stroke: none;
    font-size: 18px;
    font-weight: 500;
    text-anchor: middle;
    letter-spacing: -0.04em;
}

.tj-soilwash0203__branch rect {
    fill: #fff;
    stroke: rgba(81,159,237,.46);
    stroke-width: 2;
}

.tj-soilwash0203__split {
    display: grid;
    grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr);
    gap: 54px;
    align-items: center;
    margin-bottom: 84px;
}

.tj-soilwash0203__photo {
    position: relative;
    height: 440px;
    overflow: hidden;
    border-radius: 80px 0 0 0;
    background: #eef4f8;
}

.tj-soilwash0203__split-content p {
    margin: 0 0 26px;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tj-soilwash0203__list li {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid #e2eaf2;
    background: #fff;
}

.tj-soilwash0203__list strong {
    color: #0e2740;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.tj-soilwash0203__list span {
    color: #5f6872;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__output-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 84px;
}

.tj-soilwash0203__output-card {
    min-height: 238px;
    padding: 30px 26px;
    background: #fff;
    border-top: 3px solid #519fed;
    box-shadow: 0 18px 45px rgba(26,47,72,.08);
}

.tj-soilwash0203__output-card span {
    display: block;
    margin-bottom: 22px;
    color: #519fed;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .08em;
}

.tj-soilwash0203__output-card strong {
    display: block;
    color: #111;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-soilwash0203__output-card p {
    margin: 16px 0 0;
    color: #626b74;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__result {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
    gap: 46px;
    align-items: center;
    padding: 58px;
    background: #102339;
}

.tj-soilwash0203__result .tj-sub-page-title,
.tj-soilwash0203__result .tj-sub-page-title em,
.tj-soilwash0203__result .tj-sub-eyebrow,
.tj-soilwash0203__result-text p {
    color: #fff;
}

.tj-soilwash0203__result .tj-sub-eyebrow::before {
    background: #fff;
}

.tj-soilwash0203__result-text p {
    margin: 20px 0 0;
    color: rgba(255,255,255,.78);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-soilwash0203__result-visual {
    position: relative;
    height: 360px;
    overflow: hidden;
    background: rgba(255,255,255,.08);
}

@media screen and (max-width: 1180px) {
    .tj-soilwash0203__hero,
    .tj-soilwash0203__split,
    .tj-soilwash0203__result,
    .tj-soilwash0203__process-top {
        grid-template-columns: 1fr;
    }

    .tj-soilwash0203__float-card {
        left: 24px;
    }

    .tj-soilwash0203__point-grid,
    .tj-soilwash0203__output-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 768px) {
    .tj-soilwash0203__hero {
        gap: 34px;
        margin-bottom: 62px;
    }

    .tj-soilwash0203__lead {
        font-size: 18px;
    }

    .tj-soilwash0203__text,
    .tj-soilwash0203__section-head p,
    .tj-soilwash0203__process-top p,
    .tj-soilwash0203__split-content p,
    .tj-soilwash0203__result-text p {
        font-size: 16px;
    }

    .tj-soilwash0203__image-box,
    .tj-soilwash0203__photo,
    .tj-soilwash0203__result-visual {
        height: 300px;
        border-radius: 0 54px 0 0;
    }

    .tj-soilwash0203__photo {
        border-radius: 54px 0 0 0;
    }

    .tj-soilwash0203__float-card {
        position: static;
        width: 100%;
        margin-top: 14px;
        box-shadow: 0 12px 30px rgba(26,47,72,.10);
    }

    .tj-soilwash0203__point-grid,
    .tj-soilwash0203__output-grid {
        grid-template-columns: 1fr;
    }

    .tj-soilwash0203__point-card {
        min-height: auto;
        padding: 28px 24px;
    }

    .tj-soilwash0203__process,
    .tj-soilwash0203__result {
        padding: 38px 22px;
        margin-left: -20px;
        margin-right: -20px;
    }

    .tj-soilwash0203__list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

@media screen and (max-width: 480px) {
    .tj-soilwash0203__keyword span {
        width: 100%;
        justify-content: center;
    }

    .tj-soilwash0203__section-head {
        text-align: left;
    }

    .tj-soilwash0203__section-head .tj-sub-eyebrow {
        justify-content: flex-start;
    }

    .tj-soilwash0203__flow-svg svg {
        min-width: 920px;
    }
}

/* =========================================================
   sub0204 중금속 안정화·토양개량
   - /css/tj_sub_common.css 하단에 그대로 추가
   - 이미지 경로 텍스트 화면 출력 없음
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */
.tj-stabil0204 {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}

.tj-stabil0204 * {
    box-sizing: border-box;
}

.tj-stabil0204__hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 86px;
}

.tj-stabil0204__hero-text {
    min-width: 0;
}

.tj-stabil0204__title {
    margin-bottom: 26px;
}

.tj-stabil0204__lead {
    margin: 0;
    color: #333;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.78;
    letter-spacing: -0.045em;
}

.tj-stabil0204__text {
    margin: 20px 0 0;
    color: #5b6470;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}

.tj-stabil0204__keyword {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.tj-stabil0204__keyword span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid rgba(81,159,237,.26);
    border-radius: 999px;
    background: #f5f9fe;
    color: #2a6cae;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: -0.03em;
}

.tj-stabil0204__hero-visual {
    position: relative;
    min-width: 0;
}

.tj-stabil0204__image-box,
.tj-stabil0204__photo,
.tj-stabil0204__result-visual {
    position: relative;
    overflow: hidden;
    background: #eef4f8;
}

.tj-stabil0204__image-box {
    height: 460px;
    border-radius: 0 90px 0 0;
}

.tj-stabil0204__image-box::after,
.tj-stabil0204__photo::after,
.tj-stabil0204__result-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.18));
    pointer-events: none;
}

.tj-stabil0204__image-box img,
.tj-stabil0204__photo img,
.tj-stabil0204__result-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tj-stabil0204__float-card {
    position: absolute;
    left: -38px;
    bottom: -32px;
    width: 292px;
    padding: 26px 24px;
    background: #fff;
    box-shadow: 0 24px 55px rgba(26,47,72,.16);
}

.tj-stabil0204__float-card span {
    display: block;
    margin-bottom: 8px;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .08em;
}

.tj-stabil0204__float-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.38;
    letter-spacing: -0.045em;
}

.tj-stabil0204__section-head {
    max-width: 910px;
    margin: 0 auto 40px;
    text-align: center;
}

.tj-stabil0204__section-head .tj-sub-eyebrow,
.tj-stabil0204__use-head .tj-sub-eyebrow {
    justify-content: center;
}

.tj-stabil0204__section-head p {
    max-width: 780px;
    margin: 18px auto 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}

.tj-stabil0204__principle {
    margin-bottom: 72px;
    padding: 44px 34px 34px;
    border: 1px solid #e2eaf2;
    background: linear-gradient(180deg, #fff 0%, #f7fbff 100%);
    overflow-x: auto;
}

.tj-stabil0204__principle-svg {
    min-width: 900px;
}

.tj-stabil0204__principle-svg svg {
    display: block;
    width: 100%;
    height: auto;
}

.tj-stabil0204 svg path,
.tj-stabil0204 svg circle,
.tj-stabil0204 svg line,
.tj-stabil0204 svg polyline,
.tj-stabil0204 svg rect {
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tj-stabil0204__svg-line,
.tj-stabil0204__thin-line {
    color: rgba(81,159,237,.32);
}

.tj-stabil0204__svg-arrow {
    color: #519fed;
}

.tj-stabil0204__svg-node circle {
    fill: #fff;
    stroke: url(#tjStabilGrad);
    stroke-width: 5;
}

.tj-stabil0204__svg-node path,
.tj-stabil0204__svg-node circle:not(:first-child) {
    color: #519fed;
}

.tj-stabil0204__svg-node text,
.tj-stabil0204__reaction text,
.tj-stabil0204__bottom-label text {
    font-size: 22px;
    font-weight: 500;
    text-anchor: middle;
    fill: #25313d;
    letter-spacing: -0.04em;
}

.tj-stabil0204__reaction rect {
    fill: #eef7ff;
    stroke: rgba(81,159,237,.3);
    stroke-width: 2;
}

.tj-stabil0204__reaction text {
    font-size: 19px;
    fill: #2a6cae;
}

.tj-stabil0204__bottom-label rect {
    fill: #fff;
    stroke: #dbe7f2;
    stroke-width: 2;
}

.tj-stabil0204__bottom-label text {
    font-size: 19px;
    fill: #3f4b56;
}

.tj-stabil0204__point-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 84px;
}

.tj-stabil0204__point-card {
    position: relative;
    min-height: 260px;
    padding: 34px 30px;
    overflow: hidden;
    border: 1px solid #e3eaf1;
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.tj-stabil0204__point-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,.42);
    box-shadow: 0 20px 45px rgba(26,47,72,.09);
}

.tj-stabil0204__point-card::after {
    content: '';
    position: absolute;
    right: -46px;
    bottom: -52px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 28px solid rgba(81,159,237,.07);
}

.tj-stabil0204__point-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin: 0 0 24px;
    border-radius: 50%;
    background: #f2f8ff;
    color: #519fed;
}

.tj-stabil0204__point-icon svg {
    display: block;
    width: 42px;
    height: 42px;
}

.tj-stabil0204__point-card strong {
    display: block;
    color: #111;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-stabil0204__point-card p {
    position: relative;
    z-index: 1;
    margin: 16px 0 0;
    color: #626b74;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: -0.035em;
}

.tj-stabil0204__split {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
    margin-bottom: 84px;
}

.tj-stabil0204__photo {
    height: 430px;
    border-radius: 80px 0 0 0;
}

.tj-stabil0204__split-content p {
    margin: 22px 0 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-stabil0204__list {
    list-style: none;
    margin: 30px 0 0;
    padding: 0;
    border-top: 1px solid #e4ebf2;
}

.tj-stabil0204__list li {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    padding: 18px 0;
    border-bottom: 1px solid #e4ebf2;
}

.tj-stabil0204__list strong {
    color: #111;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.tj-stabil0204__list span {
    color: #66707b;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

.tj-stabil0204__process {
    margin-bottom: 84px;
    padding: 58px 52px;
    background: #f6f9fc;
}

.tj-stabil0204__process-top {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 42px;
    align-items: end;
    margin-bottom: 38px;
}

.tj-stabil0204__process-top p {
    margin: 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-stabil0204__step-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.tj-stabil0204__step {
    position: relative;
    min-height: 206px;
    padding: 28px 20px;
    background: #fff;
    border: 1px solid #e2eaf2;
}

.tj-stabil0204__step::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -12px;
    width: 12px;
    height: 1px;
    background: #b9cfe3;
}

.tj-stabil0204__step:last-child::after {
    display: none;
}

.tj-stabil0204__step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #519fed;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
}

.tj-stabil0204__step strong {
    display: block;
    color: #111;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-stabil0204__step p {
    margin: 12px 0 0;
    color: #64707b;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

.tj-stabil0204__use {
    margin-bottom: 84px;
}

.tj-stabil0204__use-head {
    margin-bottom: 34px;
    text-align: center;
}

.tj-stabil0204__use-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.tj-stabil0204__use-card {
    min-height: 230px;
    padding: 34px 28px;
    border: 1px solid #e2eaf2;
    background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);
}

.tj-stabil0204__use-card span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #edf6ff;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
}

.tj-stabil0204__use-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}

.tj-stabil0204__use-card p {
    margin: 14px 0 0;
    color: #626d78;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: -0.035em;
}

.tj-stabil0204__result {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: 50px;
    align-items: center;
    padding: 48px;
    background: #102235;
    color: #fff;
}

.tj-stabil0204__result .tj-sub-page-title {
    color: #fff;
}

.tj-stabil0204__result .tj-sub-page-title em {
    color: #80c3ff;
}

.tj-stabil0204__result-text p {
    margin: 22px 0 0;
    color: rgba(255,255,255,.76);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: -0.035em;
}

.tj-stabil0204__result-visual {
    height: 330px;
}

@media screen and (max-width: 1200px) {
    .tj-stabil0204__hero,
    .tj-stabil0204__split {
        gap: 42px;
    }

    .tj-stabil0204__step-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tj-stabil0204__step::after {
        display: none;
    }

    .tj-stabil0204__use-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 900px) {
    .tj-stabil0204__hero,
    .tj-stabil0204__split,
    .tj-stabil0204__process-top,
    .tj-stabil0204__result {
        grid-template-columns: 1fr;
    }

    .tj-stabil0204__hero {
        margin-bottom: 64px;
    }

    .tj-stabil0204__image-box,
    .tj-stabil0204__photo {
        height: 360px;
    }

    .tj-stabil0204__float-card {
        left: 22px;
        right: 22px;
        bottom: 22px;
        width: auto;
    }

    .tj-stabil0204__point-grid {
        grid-template-columns: 1fr;
    }

    .tj-stabil0204__process {
        padding: 42px 28px;
    }

    .tj-stabil0204__result {
        padding: 38px 28px;
    }
}

@media screen and (max-width: 640px) {
    .tj-stabil0204__hero {
        gap: 30px;
        margin-bottom: 54px;
    }

    .tj-stabil0204__lead {
        font-size: 18px;
        line-height: 1.72;
    }

    .tj-stabil0204__text,
    .tj-stabil0204__section-head p,
    .tj-stabil0204__split-content p,
    .tj-stabil0204__process-top p,
    .tj-stabil0204__result-text p {
        font-size: 15px;
        line-height: 1.78;
    }

    .tj-stabil0204__keyword span {
        min-height: 34px;
        padding: 0 13px;
        font-size: 13px;
    }

    .tj-stabil0204__image-box,
    .tj-stabil0204__photo,
    .tj-stabil0204__result-visual {
        height: 280px;
        border-radius: 0 48px 0 0;
    }

    .tj-stabil0204__float-card {
        position: relative;
        left: auto;
        right: auto;
        bottom: auto;
        margin: -38px 18px 0;
        padding: 22px 20px;
    }

    .tj-stabil0204__float-card strong {
        font-size: 19px;
    }

    .tj-stabil0204__principle {
        padding: 24px 18px;
        margin-bottom: 52px;
    }

    .tj-stabil0204__point-card {
        min-height: auto;
        padding: 28px 24px;
    }

    .tj-stabil0204__point-card strong {
        font-size: 21px;
    }

    .tj-stabil0204__process {
        margin-bottom: 58px;
        padding: 32px 20px;
    }

    .tj-stabil0204__step-grid,
    .tj-stabil0204__use-grid {
        grid-template-columns: 1fr;
    }

    .tj-stabil0204__step {
        min-height: auto;
        padding: 24px 22px;
    }

    .tj-stabil0204__list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .tj-stabil0204__use-card {
        min-height: auto;
        padding: 28px 24px;
    }

    .tj-stabil0204__result {
        padding: 30px 20px;
    }
}


/* =========================================================
   sub0205 준설수 처리
   - /css/tj_sub_common.css 하단에 그대로 추가
   - 이미지 경로 텍스트 화면 출력 없음
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */
.tj-water0205 {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-water0205 *,
.tj-plant0206 * { box-sizing: border-box; }
.tj-water0205__hero,
.tj-plant0206__hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 86px;
}
.tj-water0205__hero-text,
.tj-plant0206__hero-text { min-width: 0; }
.tj-water0205__title,
.tj-plant0206__title { margin-bottom: 26px; }
.tj-water0205__lead,
.tj-plant0206__lead {
    margin: 0;
    color: #333;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.78;
    letter-spacing: -0.045em;
}
.tj-water0205__text,
.tj-plant0206__text {
    margin: 20px 0 0;
    color: #5b6470;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.92;
    letter-spacing: -0.035em;
}
.tj-water0205__keyword,
.tj-plant0206__keyword {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}
.tj-water0205__keyword span,
.tj-plant0206__keyword span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid rgba(81,159,237,.26);
    border-radius: 999px;
    background: #f5f9fe;
    color: #2a6cae;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: -0.03em;
}
.tj-water0205__hero-visual,
.tj-plant0206__hero-visual {
    position: relative;
    min-width: 0;
}
.tj-water0205__image-box,
.tj-plant0206__image-box {
    position: relative;
    height: 460px;
    overflow: hidden;
    border-radius: 0 90px 0 0;
    background: #eef4f8;
}
.tj-water0205__image-box::after,
.tj-water0205__result-visual::after,
.tj-water0205__bottom-card::after,
.tj-plant0206__image-box::after,
.tj-plant0206__photo::after,
.tj-plant0206__gallery-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.18));
    pointer-events: none;
}
.tj-water0205__image-box img,
.tj-water0205__result-visual img,
.tj-water0205__bottom-card img,
.tj-plant0206__image-box img,
.tj-plant0206__photo img,
.tj-plant0206__gallery-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tj-water0205__float-card,
.tj-plant0206__float-card {
    position: absolute;
    left: -38px;
    bottom: -32px;
    width: 286px;
    padding: 26px 24px;
    background: #fff;
    box-shadow: 0 24px 55px rgba(26,47,72,.16);
}
.tj-water0205__float-card span,
.tj-plant0206__float-card span {
    display: block;
    margin-bottom: 8px;
    color: #519fed;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .08em;
}
.tj-water0205__float-card strong,
.tj-plant0206__float-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.38;
    letter-spacing: -0.045em;
}
.tj-water0205__section-head,
.tj-plant0206__section-head {
    max-width: 900px;
    margin: 0 auto 40px;
    text-align: center;
}
.tj-water0205__section-head .tj-sub-eyebrow,
.tj-plant0206__section-head .tj-sub-eyebrow {
    justify-content: center;
}
.tj-water0205__section-head p,
.tj-plant0206__section-head p {
    max-width: 760px;
    margin: 18px auto 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-water0205__point-grid,
.tj-plant0206__system-grid {
    display: grid;
    gap: 22px;
    margin-bottom: 84px;
}
.tj-water0205__point-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tj-water0205__point-card,
.tj-plant0206__system-card {
    position: relative;
    min-height: 258px;
    padding: 34px 30px;
    overflow: hidden;
    border: 1px solid #e3eaf1;
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tj-water0205__point-card:hover,
.tj-plant0206__system-card:hover {
    transform: translateY(-6px);
    border-color: rgba(81,159,237,.42);
    box-shadow: 0 20px 45px rgba(26,47,72,.09);
}
.tj-water0205__point-card::after,
.tj-plant0206__system-card::after {
    content: '';
    position: absolute;
    right: -46px;
    bottom: -52px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 28px solid rgba(81,159,237,.07);
}
.tj-water0205__point-icon,
.tj-plant0206__system-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin: 0 0 24px;
    border-radius: 50%;
    background: #f2f8ff;
    color: #519fed;
}
.tj-water0205__point-icon svg,
.tj-plant0206__system-icon svg {
    display: block;
    width: 48px;
    height: 48px;
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-water0205__point-card strong,
.tj-plant0206__system-card strong {
    display: block;
    position: relative;
    z-index: 1;
    color: #111;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.045em;
}
.tj-water0205__point-card p,
.tj-plant0206__system-card p {
    position: relative;
    z-index: 1;
    margin: 16px 0 0;
    color: #5c6670;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-water0205__process,
.tj-plant0206__layout {
    margin-bottom: 86px;
    padding: 54px 46px;
    background: linear-gradient(135deg, #f6f9fc 0%, #eef6ff 100%);
    overflow: hidden;
}
.tj-water0205__process-head {
    max-width: 780px;
    margin-bottom: 34px;
}
.tj-water0205__process-head p,
.tj-plant0206__layout-text p {
    margin: 18px 0 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.78;
    letter-spacing: -0.035em;
}
.tj-water0205__step-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}
.tj-water0205__step-card {
    position: relative;
    min-height: 230px;
    padding: 26px 20px 24px;
    background: #fff;
    border: 1px solid rgba(81,159,237,.18);
    text-align: center;
}
.tj-water0205__step-card::before {
    content: '';
    position: absolute;
    top: 50%;
    right: -14px;
    width: 26px;
    height: 26px;
    border-top: 2px solid #519fed;
    border-right: 2px solid #519fed;
    transform: translateY(-50%) rotate(45deg);
    background: #f4f9ff;
    z-index: 2;
}
.tj-water0205__step-card:last-child::before { display: none; }
.tj-water0205__step-card > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: #519fed;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}
.tj-water0205__step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    color: #519fed;
}
.tj-water0205__step-icon svg {
    width: 58px;
    height: 58px;
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-water0205__step-card strong {
    display: block;
    color: #16283a;
    font-size: 19px;
    font-weight: 500;
    letter-spacing: -0.04em;
}
.tj-water0205__step-card p {
    margin: 12px 0 0;
    color: #62707c;
    font-size: 15px;
    line-height: 1.65;
    font-weight: 300;
    letter-spacing: -0.035em;
}
.tj-water0205__result {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 48px;
    align-items: center;
    margin-bottom: 56px;
}
.tj-water0205__result-visual {
    position: relative;
    height: 390px;
    overflow: hidden;
    background: #eef4f8;
}
.tj-water0205__result-content p {
    margin: 18px 0 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.82;
    letter-spacing: -0.035em;
}
.tj-water0205__data-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
}
.tj-water0205__data-list div {
    padding: 22px 20px;
    background: #f6f9fc;
    border-left: 3px solid #519fed;
}
.tj-water0205__data-list strong {
    display: block;
    color: #519fed;
    font-size: 31px;
    font-weight: 600;
    line-height: 1;
}
.tj-water0205__data-list span {
    display: block;
    margin-top: 10px;
    color: #2b3642;
    font-size: 15px;
    letter-spacing: -0.035em;
}
.tj-water0205__table-wrap {
    overflow-x: auto;
    margin-bottom: 56px;
    border-top: 2px solid #1e2935;
}
.tj-water0205__table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
}
.tj-water0205__table caption {
    overflow: hidden;
    position: absolute;
    width: 1px;
    height: 1px;
    clip: rect(1px, 1px, 1px, 1px);
}
.tj-water0205__table th,
.tj-water0205__table td {
    padding: 18px 14px;
    border-bottom: 1px solid #e2e8ef;
    text-align: center;
    font-size: 16px;
    letter-spacing: -0.035em;
}
.tj-water0205__table th {
    background: #f6f9fc;
    color: #16283a;
    font-weight: 500;
}
.tj-water0205__table td { color: #4e5b67; }
.tj-water0205__bottom-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.tj-water0205__bottom-card {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    background: #111;
}
.tj-water0205__bottom-card div {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    width: 100%;
    padding: 30px;
    color: #fff;
}
.tj-water0205__bottom-card strong {
    display: block;
    font-size: 24px;
    font-weight: 500;
    letter-spacing: -0.045em;
}
.tj-water0205__bottom-card p {
    margin: 12px 0 0;
    color: rgba(255,255,255,.82);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: -0.035em;
}

/* =========================================================
   sub0206 플랜트 시스템
   - /css/tj_sub_common.css 하단에 그대로 추가
   - 이미지 경로 텍스트 화면 출력 없음
   - font-family 지정 없음
   - 포인트 컬러 : #519fed
========================================================= */
.tj-plant0206 {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-plant0206__system-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.tj-plant0206__system-card {
    min-height: 288px;
}
.tj-plant0206__system-icon {
    margin: 0 auto 24px;
}
.tj-plant0206__system-card {
    text-align: center;
}
.tj-plant0206__layout {
    display: grid;
    grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
    gap: 40px;
    align-items: center;
}
.tj-plant0206__layout-svg {
    overflow: hidden;
    padding: 24px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(81,159,237,.18);
}
.tj-plant0206__layout-svg svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 260px;
}
.tj-plant0206__machine rect {
    fill: #fff;
    stroke: #519fed;
    stroke-width: 4;
}
.tj-plant0206__machine path {
    fill: none;
    stroke: #519fed;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-plant0206__machine text,
.tj-plant0206__sub-unit text {
    fill: #182838;
    font-size: 24px;
    font-weight: 500;
    text-anchor: middle;
    letter-spacing: -0.04em;
}
.tj-plant0206__pipe {
    fill: none;
    stroke: #519fed;
    stroke-width: 5;
    stroke-linecap: round;
}
#tjPlantArrow path {
    fill: #519fed;
    stroke: none;
}
.tj-plant0206__sub-unit rect {
    fill: #fff;
    stroke: rgba(81,159,237,.55);
    stroke-width: 3;
}
.tj-plant0206__sub-unit path {
    fill: none;
    stroke: rgba(81,159,237,.5);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-plant0206__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 52px;
    align-items: center;
    margin-bottom: 66px;
}
.tj-plant0206__photo {
    position: relative;
    height: 430px;
    overflow: hidden;
    background: #eef4f8;
}
.tj-plant0206__split-content p {
    margin: 18px 0 0;
    color: #5c6670;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.82;
    letter-spacing: -0.035em;
}
.tj-plant0206__list {
    display: grid;
    gap: 12px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}
.tj-plant0206__list li {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 18px 0;
    border-bottom: 1px solid #e2e8ef;
}
.tj-plant0206__list strong {
    color: #16283a;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.04em;
}
.tj-plant0206__list span {
    color: #5c6670;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}
.tj-plant0206__gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.tj-plant0206__gallery-card {
    position: relative;
    min-height: 360px;
    overflow: hidden;
    background: #111;
}
.tj-plant0206__gallery-card strong,
.tj-plant0206__gallery-card p {
    position: relative;
    z-index: 2;
}
.tj-plant0206__gallery-card strong {
    position: absolute;
    left: 30px;
    bottom: 92px;
    display: block;
    color: #fff;
    font-size: 25px;
    font-weight: 500;
    letter-spacing: -0.045em;
}
.tj-plant0206__gallery-card p {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 30px;
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.65;
    letter-spacing: -0.035em;
}

@media screen and (max-width: 1180px) {
    .tj-water0205__hero,
    .tj-plant0206__hero,
    .tj-water0205__result,
    .tj-plant0206__split,
    .tj-plant0206__layout {
        grid-template-columns: 1fr;
        gap: 42px;
    }
    .tj-water0205__point-grid,
    .tj-plant0206__system-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .tj-water0205__step-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .tj-water0205__step-card::before { display: none; }
}
@media screen and (max-width: 768px) {
    .tj-water0205__hero,
    .tj-plant0206__hero {
        margin-bottom: 60px;
    }
    .tj-water0205__lead,
    .tj-plant0206__lead {
        font-size: 18px;
        line-height: 1.72;
    }
    .tj-water0205__text,
    .tj-plant0206__text,
    .tj-water0205__section-head p,
    .tj-plant0206__section-head p,
    .tj-water0205__process-head p,
    .tj-plant0206__layout-text p,
    .tj-water0205__result-content p,
    .tj-plant0206__split-content p {
        font-size: 16px;
        line-height: 1.72;
    }
    .tj-water0205__image-box,
    .tj-plant0206__image-box,
    .tj-water0205__result-visual,
    .tj-plant0206__photo {
        height: 320px;
        border-radius: 0 50px 0 0;
    }
    .tj-water0205__float-card,
    .tj-plant0206__float-card {
        left: 18px;
        right: 18px;
        bottom: -34px;
        width: auto;
        padding: 22px 20px;
    }
    .tj-water0205__point-grid,
    .tj-plant0206__system-grid,
    .tj-water0205__step-grid,
    .tj-water0205__bottom-grid,
    .tj-water0205__data-list,
    .tj-plant0206__gallery {
        grid-template-columns: 1fr;
    }
    .tj-water0205__point-card,
    .tj-plant0206__system-card {
        min-height: auto;
        padding: 30px 24px;
    }
    .tj-water0205__process,
    .tj-plant0206__layout {
        padding: 38px 22px;
        margin-bottom: 60px;
    }
    .tj-water0205__step-card {
        min-height: auto;
        padding: 26px 22px;
    }
    .tj-water0205__bottom-card,
    .tj-plant0206__gallery-card {
        min-height: 300px;
    }
    .tj-plant0206__layout-svg {
        padding: 14px;
        overflow-x: auto;
    }
    .tj-plant0206__layout-svg svg {
        min-width: 780px;
    }
    .tj-plant0206__list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}
@media screen and (max-width: 480px) {
    .tj-water0205__image-box,
    .tj-plant0206__image-box,
    .tj-water0205__result-visual,
    .tj-plant0206__photo {
        height: 260px;
    }
    .tj-water0205__keyword span,
    .tj-plant0206__keyword span {
        width: 100%;
        justify-content: center;
    }
    .tj-water0205__float-card strong,
    .tj-plant0206__float-card strong {
        font-size: 19px;
    }
    .tj-water0205__bottom-card div,
    .tj-plant0206__gallery-card p {
        padding: 24px 20px;
    }
    .tj-plant0206__gallery-card strong {
        left: 20px;
        bottom: 110px;
    }
    .tj-plant0206__gallery-card p {
        left: 20px;
        right: 20px;
    }
}


/* =========================================================
   sub0301 ~ sub0304 생태계 복원 페이지 공통
   - 생태복원 Road Map / Capping / 복원효과 / 자원순환형 복원
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
========================================================= */
.tj-eco-page {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-eco-page * { box-sizing: border-box; }
.tj-eco-page img { max-width: 100%; display: block; }
.tj-eco-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
    gap: 54px;
    align-items: center;
    padding: 10px 0 70px;
}
.tj-eco-hero__lead {
    margin: 24px 0 0;
    color: #444;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-eco-hero__text {
    margin: 16px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-eco-hero__keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}
.tj-eco-hero__keywords span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid rgba(81,159,237,.28);
    border-radius: 999px;
    background: #f4f9ff;
    color: #286aa9;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: -0.025em;
}
.tj-eco-hero__visual { position: relative; }
.tj-eco-hero__image {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border-radius: 38px 0 38px 0;
    background: #eef4f8;
    box-shadow: 0 24px 60px rgba(20,50,80,.12);
}
.tj-eco-hero__image img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}
.tj-eco-hero__badge {
    position: absolute;
    left: -24px;
    bottom: 34px;
    width: 190px;
    padding: 22px 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(20,50,80,.15);
}
.tj-eco-hero__badge span {
    display: block;
    color: #519fed;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
}
.tj-eco-hero__badge strong {
    display: block;
    margin-top: 8px;
    color: #111;
    font-size: 19px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.04em;
}
.tj-eco-section-head {
    max-width: 880px;
    margin: 0 auto 38px;
    text-align: center;
}
.tj-eco-section-head .tj-sub-eyebrow { justify-content: center; }
.tj-eco-section-head p {
    margin: 18px auto 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-eco-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin: 0 0 80px;
}
.tj-eco-card {
    min-height: 246px;
    padding: 34px 28px;
    border: 1px solid #e5edf5;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
}
.tj-eco-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin-bottom: 24px;
    border-radius: 20px;
    background: #f4f9ff;
}
.tj-eco-card__icon svg {
    width: 38px;
    height: 38px;
    stroke: #519fed;
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-eco-card strong {
    display: block;
    color: #111;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.36;
    letter-spacing: -0.04em;
}
.tj-eco-card p {
    margin: 14px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-eco-flow {
    margin: 0 0 82px;
    padding: 44px;
    border-radius: 34px;
    background: linear-gradient(135deg, #f5faff 0%, #ffffff 58%, #f8fbf7 100%);
    border: 1px solid #e5edf5;
}
.tj-eco-flow__top {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 34px;
    align-items: end;
    margin-bottom: 34px;
}
.tj-eco-flow__top p {
    margin: 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-eco-flow__list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}
.tj-eco-flow__item {
    position: relative;
    min-height: 180px;
    padding: 24px 18px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid #e5edf5;
    text-align: center;
}
.tj-eco-flow__item::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -14px;
    width: 14px;
    height: 2px;
    background: #519fed;
    opacity: .45;
}
.tj-eco-flow__item:last-child::after { display: none; }
.tj-eco-flow__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 15px;
    border-radius: 50%;
    background: #519fed;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}
.tj-eco-flow__item strong {
    display: block;
    color: #111;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-eco-flow__item p {
    margin: 10px 0 0;
    color: #666;
    font-size: 14px;
    line-height: 1.55;
    letter-spacing: -0.035em;
}
.tj-eco-split {
    display: grid;
    grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
    gap: 48px;
    align-items: center;
    margin: 0 0 82px;
}
.tj-eco-split--reverse { grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); }
.tj-eco-split--reverse .tj-eco-split__photo { order: 2; }
.tj-eco-split__photo {
    min-height: 390px;
    overflow: hidden;
    border-radius: 34px;
    background: #eef4f8;
}
.tj-eco-split__photo img {
    width: 100%;
    height: 100%;
    min-height: 390px;
    object-fit: cover;
}
.tj-eco-split__content p {
    margin: 18px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-eco-list {
    display: grid;
    gap: 12px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}
.tj-eco-list li {
    position: relative;
    padding: 18px 20px 18px 48px;
    border: 1px solid #e5edf5;
    border-radius: 18px;
    background: #fff;
    color: #444;
    font-size: 15px;
    line-height: 1.65;
    letter-spacing: -0.035em;
}
.tj-eco-list li::before {
    content: '';
    position: absolute;
    left: 20px;
    top: 25px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #519fed;
}
.tj-eco-list strong { color: #111; font-weight: 600; }
.tj-eco-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 82px;
}
.tj-eco-stat {
    padding: 34px 24px;
    border-radius: 26px;
    background: #111b28;
    color: #fff;
    text-align: center;
}
.tj-eco-stat span {
    display: block;
    color: rgba(255,255,255,.64);
    font-size: 14px;
    letter-spacing: -.025em;
}
.tj-eco-stat strong {
    display: block;
    margin-top: 10px;
    color: #fff;
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -.04em;
}
.tj-eco-stat p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.72);
    font-size: 14px;
    line-height: 1.5;
}
.tj-capping-diagram {
    margin: 0 0 82px;
    padding: 44px;
    border: 1px solid #e5edf5;
    border-radius: 34px;
    background: #f8fbff;
}
.tj-capping-diagram__wrap {
    width: 100%;
    max-width: 980px;
    margin: 34px auto 0;
}
.tj-capping-diagram svg { width: 100%; height: auto; display: block; }
.tj-capping-diagram .water { fill: #dff0ff; }
.tj-capping-diagram .cap { fill: #f3dd9a; }
.tj-capping-diagram .soil { fill: #b98b63; }
.tj-capping-diagram .polluted { fill: #7f5d4b; }
.tj-capping-diagram text { font-size: 18px; font-weight: 600; fill: #1f2d3d; letter-spacing: -1px; }
.tj-cycle-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 44px;
    align-items: center;
    margin: 0 0 82px;
    padding: 46px;
    border-radius: 34px;
    border: 1px solid #e5edf5;
    background: #fff;
    box-shadow: 0 18px 48px rgba(20,50,80,.06);
}
.tj-cycle-svg svg { width: 100%; height: auto; display: block; }
.tj-cycle-svg circle.main { fill: #f4f9ff; stroke: #519fed; stroke-width: 4; }
.tj-cycle-svg circle.node { fill: #fff; stroke: #111; stroke-width: 3; }
.tj-cycle-svg path { stroke: #519fed; stroke-width: 4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.tj-cycle-svg text { fill: #111; font-size: 15px; font-weight: 600; letter-spacing: -1px; }
.tj-cycle-text p { margin: 18px 0 0; color: #666; font-size: 16px; line-height: 1.85; letter-spacing: -0.035em; }
@media (max-width: 1180px) {
    .tj-eco-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-eco-flow__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tj-eco-flow__item::after { display: none; }
    .tj-eco-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .tj-eco-hero, .tj-eco-split, .tj-eco-split--reverse, .tj-cycle-grid { grid-template-columns: 1fr; gap: 34px; }
    .tj-eco-split--reverse .tj-eco-split__photo { order: 0; }
    .tj-eco-hero__badge { left: 22px; bottom: 22px; }
    .tj-eco-flow__top { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 640px) {
    .tj-eco-hero { padding-bottom: 54px; }
    .tj-eco-hero__lead { font-size: 17px; line-height: 1.75; }
    .tj-eco-hero__text, .tj-eco-split__content p, .tj-cycle-text p { font-size: 15px; }
    .tj-eco-hero__image, .tj-eco-hero__image img { min-height: 300px; }
    .tj-eco-hero__badge { width: 165px; padding: 18px; }
    .tj-eco-card-grid, .tj-eco-flow__list, .tj-eco-stat-grid { grid-template-columns: 1fr; }
    .tj-eco-flow, .tj-capping-diagram, .tj-cycle-grid { padding: 26px 18px; border-radius: 24px; }
    .tj-eco-card { min-height: auto; padding: 28px 22px; }
    .tj-eco-split__photo, .tj-eco-split__photo img { min-height: 280px; }
    .tj-eco-stat strong { font-size: 29px; }
}



/* =========================================================
   sub0401 ~ sub0406 사업분야 페이지 공통
   - 오염준설토 처리 / 하천·호소 생태복원 / 중금속오염토 안정화
   - 하수슬러지 자원화 / 토양개량·지반안정화 / 가축분뇨 퇴비화
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
========================================================= */
.tj-biz-page {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-biz-page * { box-sizing: border-box; }
.tj-biz-page img { display: block; max-width: 100%; }
.tj-biz-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
    gap: 54px;
    align-items: center;
    padding: 10px 0 70px;
}
.tj-biz-hero__lead {
    margin: 24px 0 0;
    color: #444;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-biz-hero__text {
    margin: 16px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-biz-hero__visual { position: relative; }
.tj-biz-hero__image {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border-radius: 38px 0 38px 0;
    background: #eef4f8;
    box-shadow: 0 24px 60px rgba(20,50,80,.12);
}
.tj-biz-hero__image img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}
.tj-biz-hero__badge {
    position: absolute;
    left: -24px;
    bottom: 34px;
    width: 178px;
    padding: 22px 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(20,50,80,.15);
}
.tj-biz-hero__badge span {
    display: block;
    color: #519fed;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
}
.tj-biz-hero__badge strong {
    display: block;
    margin-top: 8px;
    color: #111;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.035em;
}
.tj-biz-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 82px;
}
.tj-biz-card {
    min-height: 268px;
    padding: 36px 30px;
    border: 1px solid #e5edf5;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
    transition: transform .25s ease, box-shadow .25s ease;
}
.tj-biz-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 46px rgba(20,50,80,.1);
}
.tj-biz-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    margin: 0 0 24px;
    border-radius: 22px;
    background: #f4f9ff;
}
.tj-biz-card__icon svg {
    display: block;
    width: 40px;
    height: 40px;
    stroke: #519fed;
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-biz-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-biz-card p {
    margin: 14px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-biz-process {
    margin: 0 0 84px;
    padding: 48px;
    border-radius: 36px;
    background: linear-gradient(135deg, #f4f9ff 0%, #ffffff 100%);
    border: 1px solid #e5edf5;
}
.tj-biz-section-head {
    max-width: 880px;
    margin: 0 auto 34px;
    text-align: center;
}
.tj-biz-section-head .tj-sub-eyebrow { justify-content: center; }
.tj-biz-section-head p {
    margin: 18px auto 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-biz-step-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.tj-biz-step {
    position: relative;
    min-height: 210px;
    padding: 30px 24px;
    border-radius: 26px;
    background: #fff;
    border: 1px solid rgba(81,159,237,.18);
    box-shadow: 0 10px 28px rgba(20,50,80,.05);
}
.tj-biz-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: #519fed;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}
.tj-biz-step strong {
    display: block;
    color: #111;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-biz-step p {
    margin: 12px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.72;
    letter-spacing: -0.035em;
}
.tj-biz-split {
    display: grid;
    grid-template-columns: minmax(360px, 0.88fr) minmax(0, 1fr);
    gap: 54px;
    align-items: center;
    margin: 0 0 30px;
}
.tj-biz-split__photo {
    overflow: hidden;
    min-height: 380px;
    border-radius: 0 38px 0 38px;
    background: #eef4f8;
}
.tj-biz-split__photo img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
}
.tj-biz-split__content p {
    margin: 18px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-biz-check-list {
    list-style: none;
    margin: 26px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.tj-biz-check-list li {
    position: relative;
    padding: 15px 18px 15px 46px;
    border: 1px solid #e5edf5;
    border-radius: 16px;
    background: #fff;
    color: #333;
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: -0.035em;
}
.tj-biz-check-list li:before {
    content: '';
    position: absolute;
    left: 18px;
    top: 20px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #519fed;
    box-shadow: 0 0 0 6px rgba(81,159,237,.12);
}
@media screen and (max-width: 1100px) {
    .tj-biz-hero,
    .tj-biz-split {
        grid-template-columns: 1fr;
        gap: 34px;
    }
    .tj-biz-hero__badge {
        left: 22px;
        bottom: 22px;
    }
    .tj-biz-step-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media screen and (max-width: 900px) {
    .tj-biz-card-grid {
        grid-template-columns: 1fr;
    }
    .tj-biz-process {
        padding: 34px 24px;
        border-radius: 28px;
    }
}
@media screen and (max-width: 640px) {
    .tj-biz-hero {
        padding: 0 0 54px;
    }
    .tj-biz-hero__lead {
        font-size: 17px;
        line-height: 1.75;
    }
    .tj-biz-hero__text,
    .tj-biz-section-head p,
    .tj-biz-split__content p {
        font-size: 15px;
        line-height: 1.75;
    }
    .tj-biz-hero__image,
    .tj-biz-hero__image img {
        min-height: 300px;
    }
    .tj-biz-hero__badge {
        position: static;
        width: auto;
        margin-top: 14px;
        border-radius: 18px;
    }
    .tj-biz-card {
        min-height: auto;
        padding: 28px 22px;
        border-radius: 24px;
    }
    .tj-biz-card__icon {
        width: 62px;
        height: 62px;
        margin-bottom: 18px;
        border-radius: 18px;
    }
    .tj-biz-card strong,
    .tj-biz-step strong {
        font-size: 19px;
    }
    .tj-biz-step-grid {
        grid-template-columns: 1fr;
    }
    .tj-biz-step {
        min-height: auto;
        padding: 26px 22px;
        border-radius: 22px;
    }
    .tj-biz-split__photo,
    .tj-biz-split__photo img {
        min-height: 280px;
    }
    .tj-biz-check-list li {
        font-size: 15px;
        padding-left: 42px;
    }
}


/* =========================================================
   sub0501 ~ sub0504 실적·사례 페이지
   - 대표 실적 / 태화강 생태복원 / 강릉 신리천 복원 / 형산강 처리방안
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
========================================================= */
.tj-case-page {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-case-page * { box-sizing: border-box; }
.tj-case-page img { display: block; max-width: 100%; }
.tj-case-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
    gap: 54px;
    align-items: center;
    padding: 10px 0 72px;
}
.tj-case-hero__lead {
    margin: 24px 0 0;
    color: #444;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-case-hero__text {
    margin: 16px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-case-hero__visual { position: relative; }
.tj-case-hero__image {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border-radius: 38px 0 38px 0;
    background: #eef4f8;
    box-shadow: 0 24px 60px rgba(20,50,80,.12);
}
.tj-case-hero__image img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}
.tj-case-hero__badge {
    position: absolute;
    left: -24px;
    bottom: 34px;
    width: 182px;
    padding: 22px 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(20,50,80,.15);
}
.tj-case-hero__badge span {
    display: block;
    color: #519fed;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
}
.tj-case-hero__badge strong {
    display: block;
    margin-top: 8px;
    color: #111;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.035em;
}
.tj-case-section-head {
    max-width: 900px;
    margin: 0 auto 34px;
    text-align: center;
}
.tj-case-section-head .tj-sub-eyebrow { justify-content: center; }
.tj-case-section-head p {
    margin: 18px auto 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-case-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 76px;
}
.tj-case-stat {
    padding: 30px 24px;
    border: 1px solid #e5edf5;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
    text-align: center;
}
.tj-case-stat span {
    display: block;
    color: #519fed;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
}
.tj-case-stat strong {
    display: block;
    margin-top: 12px;
    color: #111;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -0.05em;
}
.tj-case-stat p {
    margin: 10px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.65;
    letter-spacing: -0.035em;
}
.tj-case-table-wrap {
    margin: 0 0 82px;
    overflow: hidden;
    border: 1px solid #e5edf5;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(20,50,80,.06);
}
.tj-case-table-scroll { overflow-x: auto; }
.tj-case-table {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
}
.tj-case-table th,
.tj-case-table td {
    padding: 18px 22px;
    border-bottom: 1px solid #edf2f7;
    color: #333;
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: -0.035em;
    text-align: left;
}
.tj-case-table th {
    background: #f4f9ff;
    color: #111;
    font-weight: 600;
}
.tj-case-table tr:last-child td { border-bottom: 0; }
.tj-case-table td:first-child { font-weight: 600; color: #111; }
.tj-case-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 82px;
}
.tj-case-card {
    min-height: 278px;
    padding: 34px 30px;
    border: 1px solid #e5edf5;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
}
.tj-case-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin: 0 0 24px;
    border-radius: 22px;
    background: #f4f9ff;
}
.tj-case-card__icon svg {
    width: 42px;
    height: 42px;
    display: block;
    stroke: #519fed;
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-case-card strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-case-card p {
    margin: 14px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-case-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin: 0 0 82px;
}
.tj-case-photo {
    overflow: hidden;
    border-radius: 30px;
    background: #eef4f8;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
}
.tj-case-photo img {
    width: 100%;
    height: 270px;
    object-fit: cover;
}
.tj-case-photo figcaption {
    padding: 20px 22px;
    color: #333;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.035em;
}
.tj-case-process {
    margin: 0 0 84px;
    padding: 48px;
    border-radius: 36px;
    background: linear-gradient(135deg, #f4f9ff 0%, #ffffff 100%);
    border: 1px solid #e5edf5;
}
.tj-case-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    position: relative;
}
.tj-case-flow__item {
    position: relative;
    min-height: 210px;
    padding: 30px 22px;
    border-radius: 26px;
    background: #fff;
    border: 1px solid rgba(81,159,237,.18);
    box-shadow: 0 10px 28px rgba(20,50,80,.05);
    text-align: center;
}
.tj-case-flow__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: #519fed;
}
.tj-case-flow__icon svg {
    width: 34px;
    height: 34px;
    display: block;
    stroke: #fff;
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-case-flow__item strong {
    display: block;
    color: #111;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-case-flow__item p {
    margin: 12px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: -0.035em;
}
.tj-case-split {
    display: grid;
    grid-template-columns: minmax(360px, 0.88fr) minmax(0, 1fr);
    gap: 54px;
    align-items: center;
    margin: 0 0 30px;
}
.tj-case-split__photo {
    overflow: hidden;
    min-height: 380px;
    border-radius: 0 38px 0 38px;
    background: #eef4f8;
}
.tj-case-split__photo img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
}
.tj-case-split__content p {
    margin: 18px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-case-check-list {
    list-style: none;
    margin: 26px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.tj-case-check-list li {
    position: relative;
    padding: 15px 18px 15px 46px;
    border: 1px solid #e5edf5;
    border-radius: 16px;
    background: #fff;
    color: #333;
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: -0.035em;
}
.tj-case-check-list li:before {
    content: '';
    position: absolute;
    left: 18px;
    top: 20px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #519fed;
    box-shadow: 0 0 0 6px rgba(81,159,237,.12);
}
.tj-case-map-svg {
    width: 100%;
    margin: 0 0 82px;
    padding: 38px;
    border: 1px solid #e5edf5;
    border-radius: 34px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(20,50,80,.06);
    overflow: hidden;
}
.tj-case-map-svg svg {
    display: block;
    width: 100%;
    height: auto;
}
.tj-case-map-svg text {
    fill: #222;
    font-weight: 600;
    letter-spacing: -0.04em;
}
.tj-case-map-svg .blue { stroke: #519fed; }
.tj-case-map-svg .dark { stroke: #222; }
.tj-case-map-svg .light { fill: #f4f9ff; }
.tj-case-map-svg .accent { fill: #519fed; }
@media screen and (max-width: 1100px) {
    .tj-case-hero,
    .tj-case-split { grid-template-columns: 1fr; gap: 34px; }
    .tj-case-hero__badge { left: 22px; bottom: 22px; }
    .tj-case-stat-grid,
    .tj-case-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-case-card-grid,
    .tj-case-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 768px) {
    .tj-case-hero { padding-bottom: 50px; }
    .tj-case-hero__lead { font-size: 18px; }
    .tj-case-hero__image,
    .tj-case-hero__image img { min-height: 300px; }
    .tj-case-hero__badge { position: static; width: auto; margin-top: 14px; border-radius: 18px; }
    .tj-case-stat-grid,
    .tj-case-card-grid,
    .tj-case-photo-grid,
    .tj-case-flow { grid-template-columns: 1fr; }
    .tj-case-card { min-height: auto; padding: 28px 22px; border-radius: 24px; }
    .tj-case-card__icon { width: 62px; height: 62px; margin-bottom: 18px; border-radius: 18px; }
    .tj-case-process { padding: 30px 20px; border-radius: 26px; }
    .tj-case-flow__item { min-height: auto; padding: 26px 22px; border-radius: 22px; }
    .tj-case-photo img { height: 240px; }
    .tj-case-split__photo,
    .tj-case-split__photo img { min-height: 280px; }
    .tj-case-map-svg { padding: 18px; border-radius: 24px; overflow-x: auto; }
    .tj-case-map-svg svg { min-width: 760px; }
    .tj-case-table th,
    .tj-case-table td { padding: 15px 16px; font-size: 14px; }
}


/* =========================================================
   sub0601 특허·인증서 페이지
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
   - 이미지 경로 텍스트 화면 표시 없음
========================================================= */
.tj-cert-page {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-cert-page * { box-sizing: border-box; }
.tj-cert-page img { display: block; max-width: 100%; }
.tj-cert-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
    gap: 54px;
    align-items: center;
    padding: 10px 0 76px;
}
.tj-cert-hero__lead {
    margin: 24px 0 0;
    color: #444;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-cert-hero__text {
    margin: 16px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-cert-hero__visual { position: relative; }
.tj-cert-hero__image {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border-radius: 38px 0 38px 0;
    background: #eef4f8;
    box-shadow: 0 24px 60px rgba(20,50,80,.12);
}
.tj-cert-hero__image:before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.28) 100%);
    z-index: 1;
    pointer-events: none;
}
.tj-cert-hero__image img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}
.tj-cert-hero__badge {
    position: absolute;
    left: -24px;
    bottom: 34px;
    width: 190px;
    padding: 22px 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(20,50,80,.15);
    z-index: 2;
}
.tj-cert-hero__badge span {
    display: block;
    color: #519fed;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
}
.tj-cert-hero__badge strong {
    display: block;
    margin-top: 8px;
    color: #111;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.035em;
}
.tj-cert-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 78px;
}
.tj-cert-stat {
    padding: 30px 24px;
    border: 1px solid #e5edf5;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
    text-align: center;
}
.tj-cert-stat span {
    display: block;
    color: #519fed;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}
.tj-cert-stat strong {
    display: block;
    margin-top: 12px;
    color: #111;
    font-size: 28px;
    font-weight: 600;
    letter-spacing: -0.05em;
}
.tj-cert-stat p {
    margin: 10px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.65;
    letter-spacing: -0.035em;
}
.tj-cert-section-head {
    max-width: 900px;
    margin: 0 auto 34px;
    text-align: center;
}
.tj-cert-section-head .tj-sub-eyebrow { justify-content: center; }
.tj-cert-section-head p {
    margin: 18px auto 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-cert-patent-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 0 0 82px;
}
.tj-cert-patent-card {
    display: flex;
    gap: 22px;
    min-height: 190px;
    padding: 30px;
    border: 1px solid #e5edf5;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
}
.tj-cert-patent-card__no {
    flex: 0 0 auto;
    width: 82px;
    height: 82px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 26px;
    background: #f4f9ff;
    color: #519fed;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.035em;
}
.tj-cert-patent-card__body span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(81,159,237,.1);
    color: #317bc4;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -0.025em;
}
.tj-cert-patent-card__body strong {
    display: block;
    margin-top: 14px;
    color: #111;
    font-size: 21px;
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: -0.045em;
}
.tj-cert-patent-card__body p {
    margin: 12px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-cert-gallery {
    margin: 0 0 84px;
}
.tj-cert-gallery__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}
.tj-cert-gallery__item {
    overflow: hidden;
    border: 1px solid #e5edf5;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(20,50,80,.06);
}
.tj-cert-gallery__thumb {
    height: 260px;
    background: #f4f9ff;
    overflow: hidden;
}
.tj-cert-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}
.tj-cert-gallery__item figcaption {
    padding: 18px 16px;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: -0.035em;
    text-align: center;
}
.tj-cert-verify {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 34px;
    align-items: stretch;
    margin: 0 0 86px;
}
.tj-cert-verify__box {
    padding: 42px;
    border-radius: 34px;
    border: 1px solid #e5edf5;
    background: linear-gradient(135deg, #f4f9ff 0%, #fff 100%);
}
.tj-cert-verify__box h4 {
    margin: 0;
    color: #111;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.05em;
}
.tj-cert-verify__box p {
    margin: 18px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
.tj-cert-verify__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.tj-cert-verify__item {
    padding: 28px 24px;
    border-radius: 26px;
    border: 1px solid #e5edf5;
    background: #fff;
    box-shadow: 0 12px 30px rgba(20,50,80,.05);
}
.tj-cert-verify__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 0 18px;
    border-radius: 22px;
    background: #f4f9ff;
}
.tj-cert-verify__icon svg {
    display: block;
    width: 38px;
    height: 38px;
    fill: none;
    stroke: #519fed;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tj-cert-verify__item strong {
    display: block;
    color: #111;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: -0.04em;
}
.tj-cert-verify__item p {
    margin: 10px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: -0.035em;
}
.tj-cert-flow-wrap {
    margin: 0 0 86px;
    padding: 46px;
    border-radius: 36px;
    background: #111827;
    overflow: hidden;
}
.tj-cert-flow-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 34px;
}
.tj-cert-flow-head h4 {
    margin: 0;
    color: #fff;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.05em;
}
.tj-cert-flow-head p {
    max-width: 560px;
    margin: 0;
    color: rgba(255,255,255,.7);
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-cert-flow-svg {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
}
.tj-cert-flow-svg svg {
    display: block;
    min-width: 920px;
    width: 100%;
    height: auto;
}
.tj-cert-flow-svg .line { stroke: rgba(255,255,255,.22); stroke-width: 3; }
.tj-cert-flow-svg .circle { fill: #172033; stroke: #519fed; stroke-width: 3; }
.tj-cert-flow-svg .icon { fill: none; stroke: #519fed; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.tj-cert-flow-svg .num { fill: #519fed; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.tj-cert-flow-svg .title { fill: #fff; font-size: 18px; font-weight: 700; letter-spacing: -0.04em; }
.tj-cert-flow-svg .desc { fill: rgba(255,255,255,.68); font-size: 13px; letter-spacing: -0.035em; }
.tj-cert-note {
    padding: 30px 34px;
    border-left: 5px solid #519fed;
    border-radius: 0 24px 24px 0;
    background: #f4f9ff;
    color: #444;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: -0.035em;
}
@media screen and (max-width: 1180px) {
    .tj-cert-hero { grid-template-columns: 1fr; gap: 36px; }
    .tj-cert-hero__image, .tj-cert-hero__image img { min-height: 360px; }
    .tj-cert-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-cert-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tj-cert-verify { grid-template-columns: 1fr; }
}
@media screen and (max-width: 900px) {
    .tj-cert-patent-grid { grid-template-columns: 1fr; }
    .tj-cert-flow-head { display: block; }
    .tj-cert-flow-head p { margin-top: 14px; }
    .tj-cert-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 640px) {
    .tj-cert-hero { padding: 0 0 54px; }
    .tj-cert-hero__lead { font-size: 17px; }
    .tj-cert-hero__image, .tj-cert-hero__image img { min-height: 280px; }
    .tj-cert-hero__badge { left: 18px; bottom: 18px; width: 170px; padding: 18px 20px; }
    .tj-cert-stat-grid,
    .tj-cert-verify__list,
    .tj-cert-gallery__grid { grid-template-columns: 1fr; }
    .tj-cert-patent-card { display: block; padding: 26px 22px; }
    .tj-cert-patent-card__no { width: 70px; height: 70px; margin-bottom: 18px; font-size: 18px; }
    .tj-cert-gallery__thumb { height: 360px; }
    .tj-cert-verify__box { padding: 30px 24px; }
    .tj-cert-verify__box h4,
    .tj-cert-flow-head h4 { font-size: 24px; }
    .tj-cert-flow-wrap { padding: 30px 20px; border-radius: 28px; }
    .tj-cert-note { padding: 24px 22px; }
}
/* =========================================================
   sub0601 특허·인증서 모달 보기 추가
   - 특허증 썸네일 클릭 시 모달 확대
   - 기존 tj_sub_common.css 맨 아래에 이어 붙여 사용
========================================================= */
.tj-cert-gallery__button {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    overflow: hidden;
}
.tj-cert-gallery__button .tj-cert-gallery__thumb {
    display: block;
}
.tj-cert-gallery__zoom {
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%) translateY(10px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    height: 38px;
    padding: 0 18px;
    border-radius: 999px;
    background: rgba(17,24,39,.86);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.025em;
    opacity: 0;
    transition: opacity .25s ease, transform .25s ease;
    z-index: 2;
}
.tj-cert-gallery__button:before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.24);
    opacity: 0;
    transition: opacity .25s ease;
    z-index: 1;
}
.tj-cert-gallery__button:hover:before,
.tj-cert-gallery__button:focus-visible:before {
    opacity: 1;
}
.tj-cert-gallery__button:hover .tj-cert-gallery__zoom,
.tj-cert-gallery__button:focus-visible .tj-cert-gallery__zoom {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.tj-cert-gallery__button:focus-visible {
    outline: 3px solid rgba(81,159,237,.45);
    outline-offset: -3px;
}
.tj-cert-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 34px;
}
.tj-cert-modal.is-open {
    display: flex;
}
.tj-cert-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(8,15,25,.78);
    backdrop-filter: blur(4px);
}
.tj-cert-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1080px, 100%);
    max-height: calc(100vh - 68px);
    display: flex;
    flex-direction: column;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(0,0,0,.3);
    overflow: hidden;
}
.tj-cert-modal__head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 68px;
    padding: 18px 24px;
    border-bottom: 1px solid #e5edf5;
}
.tj-cert-modal__head strong {
    color: #111;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: -0.04em;
}
.tj-cert-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f4f9ff;
    color: #111;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}
.tj-cert-modal__close:hover,
.tj-cert-modal__close:focus-visible {
    background: #519fed;
    color: #fff;
}
.tj-cert-modal__body {
    position: relative;
    min-height: 320px;
    overflow: auto;
    background: #f7fafc;
    text-align: center;
}
.tj-cert-modal__body img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 170px);
    margin: 0 auto;
    object-fit: contain;
}
.tj-cert-modal__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(17,24,39,.72);
    color: #fff;
    font-size: 42px;
    line-height: 1;
    cursor: pointer;
}
.tj-cert-modal__nav:hover,
.tj-cert-modal__nav:focus-visible {
    background: #519fed;
}
.tj-cert-modal__prev { left: 18px; }
.tj-cert-modal__next { right: 18px; }
body.tj-cert-modal-open {
    overflow: hidden;
}
@media screen and (max-width: 640px) {
    .tj-cert-modal {
        padding: 16px;
    }
    .tj-cert-modal__dialog {
        max-height: calc(100vh - 32px);
        border-radius: 20px;
    }
    .tj-cert-modal__head {
        min-height: 58px;
        padding: 12px 16px;
    }
    .tj-cert-modal__head strong {
        font-size: 16px;
    }
    .tj-cert-modal__close {
        width: 38px;
        height: 38px;
        font-size: 26px;
    }
    .tj-cert-modal__body img {
        max-height: calc(100vh - 120px);
    }
    .tj-cert-modal__nav {
        width: 42px;
        height: 42px;
        font-size: 34px;
    }
    .tj-cert-modal__prev { left: 10px; }
    .tj-cert-modal__next { right: 10px; }
}

/* =========================================================
   sub0504 ~ sub0508 추가 실적·사례 페이지
   - 시화 유수지/간선수로 / 포천천 세척수 재활용 / 광교 물순환 시스템
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
========================================================= */
.tj-case-section-head h4 {
    margin: 10px 0 0;
    color: #111;
    font-size: 34px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.055em;
}
.tj-case-process-svg {
    width: 100%;
    overflow-x: auto;
    padding: 10px 0 0;
}
.tj-case-process-svg svg {
    display: block;
    width: 100%;
    min-width: 880px;
    height: auto;
}
.tj-case-process-svg circle {
    fill: #fff;
    stroke: #222;
    stroke-width: 4;
}
.tj-case-process-svg line {
    stroke: #519fed;
    stroke-width: 5;
    stroke-linecap: round;
}
.tj-case-process-svg text {
    fill: #111;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -0.04em;
}
.tj-case-process--blue {
    background: linear-gradient(135deg, #f0f8ff 0%, #ffffff 100%);
}
.tj-case0504 .tj-case-table td:last-child,
.tj-case0505 .tj-case-table td:last-child,
.tj-case0506 .tj-case-table td:nth-child(3) {
    color: #1f6fba;
    font-weight: 600;
}
@media screen and (max-width: 900px) {
    .tj-case-section-head h4 { font-size: 28px; }
    .tj-case-process-svg svg { min-width: 760px; }
}
@media screen and (max-width: 640px) {
    .tj-case-section-head h4 { font-size: 24px; }
    .tj-case-process-svg { margin: 0 -20px; padding: 10px 20px 0; }
}

/* =========================================================
   sub0507 현장갤러리 / sub0508 언론보도[뉴스영상]
   - 기존 /css/tj_sub_common.css 맨 아래에 추가
========================================================= */
.tj-gallery-page,
.tj-video-page {
    position: relative;
    width: 100%;
    color: #222;
    word-break: keep-all;
    box-sizing: border-box;
}
.tj-gallery-page *,
.tj-video-page * { box-sizing: border-box; }
.tj-gallery-intro,
.tj-video-intro {
    max-width: 920px;
    margin: 0 auto 54px;
    text-align: center;
}
.tj-gallery-intro .tj-sub-eyebrow,
.tj-video-intro .tj-sub-eyebrow { justify-content: center; }
.tj-gallery-intro p,
.tj-video-intro p {
    margin: 20px auto 0;
    color: #666;
    font-size: 17px;
    line-height: 1.85;
    letter-spacing: -0.035em;
}
.tj-gallery-intro strong { color: #519fed; font-weight: 600; }
.tj-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}
.tj-gallery-card {
    display: block;
    width: 100%;
    overflow: hidden;
    padding: 0;
    border: 1px solid #e5edf5;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20,50,80,.06);
    text-align: left;
    cursor: pointer;
}
.tj-gallery-card__thumb {
    position: relative;
    display: block;
    overflow: hidden;
    height: 250px;
    background: #eef4f8;
}
.tj-gallery-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}
.tj-gallery-card:hover .tj-gallery-card__thumb img { transform: scale(1.04); }
.tj-gallery-card.is-missing .tj-gallery-card__thumb:before {
    content: '이미지 업로드 필요';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #8a9aaa;
    font-size: 15px;
    font-weight: 600;
}
.tj-gallery-card__body {
    display: block;
    padding: 22px 24px 24px;
}
.tj-gallery-card__body em {
    display: block;
    color: #519fed;
    font-size: 13px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .04em;
}
.tj-gallery-card__body strong {
    display: block;
    margin-top: 8px;
    color: #111;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.04em;
}
.tj-gallery-card__body small {
    display: block;
    margin-top: 8px;
    color: #666;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: -0.035em;
}
.tj-gallery-modal[aria-hidden="true"] { display: none; }
.tj-gallery-modal {
    position: fixed;
    z-index: 99999;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
}
.tj-gallery-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.72);
}
.tj-gallery-modal__box {
    position: relative;
    z-index: 1;
    width: min(1080px, 94vw);
    max-height: 92vh;
    overflow: auto;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(0,0,0,.28);
}
.tj-gallery-modal__box img {
    display: block;
    width: 100%;
    max-height: 74vh;
    object-fit: contain;
    background: #111;
}
.tj-gallery-modal__text {
    padding: 22px 28px 26px;
}
.tj-gallery-modal__text strong {
    display: block;
    color: #111;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.035em;
}
.tj-gallery-modal__text p {
    margin: 8px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.65;
}
.tj-gallery-modal__close {
    position: absolute;
    right: 16px;
    top: 16px;
    z-index: 2;
    width: 54px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-size: 13px;
    cursor: pointer;
}
.tj-gallery-admin {
    margin: 0 0 54px;
    padding: 30px;
    border: 1px solid #dce8f3;
    border-radius: 28px;
    background: #f8fbff;
}
.tj-gallery-admin h4 {
    margin: 0 0 20px;
    color: #111;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.04em;
}
.tj-gallery-admin__add {
    padding: 22px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid #e5edf5;
}
.tj-gallery-admin__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.tj-gallery-admin label {
    display: block;
    color: #333;
    font-size: 13px;
    font-weight: 600;
}
.tj-gallery-admin input[type="text"],
.tj-gallery-admin input[type="number"],
.tj-gallery-admin input[type="file"] {
    width: 100%;
    height: 42px;
    margin-top: 7px;
    padding: 0 12px;
    border: 1px solid #d7e3ef;
    border-radius: 10px;
    background: #fff;
    color: #333;
}
.tj-gallery-admin input[type="file"] { padding-top: 9px; }
.tj-gallery-admin__wide { grid-column: span 2; }
.tj-gallery-admin__check {
    display: flex !important;
    align-items: center;
    gap: 7px;
    padding-top: 26px;
}
.tj-gallery-admin button {
    height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: #519fed;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.tj-gallery-admin__add > button { margin-top: 16px; }
.tj-gallery-admin__list {
    display: grid;
    gap: 10px;
    margin-top: 20px;
}
.tj-gallery-admin__row {
    display: grid;
    grid-template-columns: 78px 1fr 120px 1.4fr 78px 150px 80px 64px 64px;
    gap: 8px;
    align-items: center;
    padding: 10px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e5edf5;
}
.tj-gallery-admin__thumb {
    position: relative;
    height: 58px;
    overflow: hidden;
    border-radius: 10px;
    background: #eef4f8;
}
.tj-gallery-admin__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tj-gallery-admin__thumb.is-missing:before {
    content: '없음';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #9aa;
    font-size: 12px;
}
.tj-gallery-admin__use {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.tj-video-grid {
    display: grid;
    gap: 30px;
}
.tj-video-card {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid #e5edf5;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(20,50,80,.06);
}
.tj-video-card__media {
    background: #111;
}
.tj-video-card__media video {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    background: #111;
}
.tj-video-card__body {
    padding: 38px;
}
.tj-video-card__body span {
    display: block;
    color: #519fed;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .09em;
}
.tj-video-card__body h4 {
    margin: 12px 0 0;
    color: #111;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.045em;
}
.tj-video-card__body p {
    margin: 16px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: -0.035em;
}
.tj-video-card__path {
    margin-top: 20px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f4f9ff;
    color: #397ec3;
    font-size: 13px;
    line-height: 1.5;
    word-break: break-all;
}
.tj-video-card__body a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    margin-top: 20px;
    padding: 0 22px;
    border-radius: 999px;
    background: #519fed;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
@media (max-width: 1100px) {
    .tj-gallery-admin__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-gallery-admin__row { grid-template-columns: 70px 1fr 1fr; }
    .tj-gallery-admin__row input,
    .tj-gallery-admin__row label,
    .tj-gallery-admin__row button { min-width: 0; }
    .tj-video-card { grid-template-columns: 1fr; }
    .tj-video-card__media video { min-height: 260px; }
}
@media (max-width: 768px) {
    .tj-gallery-intro,
    .tj-video-intro { margin-bottom: 34px; }
    .tj-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .tj-gallery-card { border-radius: 18px; }
    .tj-gallery-card__thumb { height: 160px; }
    .tj-gallery-card__body { padding: 15px 14px 17px; }
    .tj-gallery-card__body strong { font-size: 16px; }
    .tj-gallery-card__body em { font-size: 12px; }
    .tj-gallery-admin { padding: 18px; border-radius: 20px; }
    .tj-gallery-admin__grid { grid-template-columns: 1fr; }
    .tj-gallery-admin__wide { grid-column: span 1; }
    .tj-gallery-admin__row { grid-template-columns: 60px 1fr; }
    .tj-gallery-admin__row button { width: 100%; }
    .tj-gallery-modal { padding: 14px; }
    .tj-gallery-modal__text { padding: 18px; }
    .tj-video-card { border-radius: 20px; }
    .tj-video-card__body { padding: 24px 20px; }
    .tj-video-card__body h4 { font-size: 21px; }
    .tj-video-card__media video { min-height: 210px; }
}

/* 영상 경로 텍스트 노출 방지 */
.tj-video-card__path { display: none !important; }
