@charset "utf-8";

/* ==========================================================================
   JETCO 제품 목록 — Figma 시안 기준 (2026-07-22)
   - 페이지에서 headHtml.jsp 다음에 <link> 로 로드한다.
   - GNB / 푸터 / 레이아웃 리셋은 main.css 의 body.main-page 규칙을 재사용하므로
     이 페이지 <body> 는 class="main-page jt-product" 를 갖는다.
   - 여기서는 body.jt-product 스코프로 제품 목록 전용 스타일만 정의한다.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 페이지 바탕 (main.css 의 다크 배경을 덮어쓴다)
   -------------------------------------------------------------------------- */
body.jt-product {
    background: #FFFFFF !important;
    color: var(--jt-text-on-light);
}

/* 상단 패딩 = 고정 헤더 높이(59px) + 시안 여백 64px */
body.jt-product .jt-prd-wrap {
    padding: 123px 32px 88px;
    background: #FFFFFF;
}

body.jt-product .jt-prd-inner {
    width: 100%;
    max-width: 1360px;
    margin: 0 auto;
}

/* 헤더: 이 페이지는 흰 배경이라 반투명 헤더(rgba 0.85)가 밝게 비쳐 다른 페이지와 톤이 달라 보인다.
   상단 히어로가 있는 다른 페이지와 톤을 맞추기 위해 불투명 다크로 고정한다. (2026-07-24) */
body.jt-product .jt-header,
body.jt-product .jt-header.is-scrolled { background: #08101A; }

/* GNB 현재 메뉴 표시 */
body.jt-product .jt-gnb > li.is-on > a {
    color: #F4F9FF;
    font-weight: 700;
    border-bottom: 2px solid var(--jt-blue);
    padding-bottom: 10px;
}

/* --------------------------------------------------------------------------
   2. 페이지 헤더
   -------------------------------------------------------------------------- */
body.jt-product .jt-prd-badge {
    display: inline-flex;
    align-items: center;
    padding: 7px 17px;
    border-radius: 999px;
    background: linear-gradient(175deg, #0C3164 0%, #001339 100%);
    border: 1px solid rgba(55, 131, 240, 0.55);
    color: #9CC6FF;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.77px;
    line-height: 1;
}
body.jt-product .jt-prd-title {
    margin-top: 18px;
    font-size: 44px;
    font-weight: 800;
    line-height: 1.2;
    color: #050E1A;
}
body.jt-product .jt-prd-lead {
    margin-top: 14px;
    font-size: 16px;
    line-height: 1.7;
    color: #4B535E;
}

/* --------------------------------------------------------------------------
   3. 필터 — 카테고리 / 제조사 / 유형
   -------------------------------------------------------------------------- */
body.jt-product .jt-prd-filters { padding-top: 30px; }

body.jt-product .jt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* 3-1. 카테고리 칩 — 미선택: 연한 하늘색 배경 + #076BE3 글씨 / 선택: #076BE3 배경 + 흰 글씨 */
body.jt-product .jt-chip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 19px;
    border-radius: 999px;
    background: #E3EFFC;   /* 연한 하늘색 */
    border: 0;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.06);
    font-size: 14px;
    font-weight: 700;
    color: #076BE3;
    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
body.jt-product .jt-chip:hover { transform: translateY(-1px); box-shadow: 0 5px 13px rgba(7, 107, 227, 0.18); }
body.jt-product .jt-chip .jt-chip-num {
    font-size: 12px;
    font-weight: 700;
    color: rgba(7, 107, 227, 0.62);
}
/* 선택됨 = #076BE3 배경 + 흰 글씨 */
body.jt-product .jt-chip.is-on {
    background: #076BE3;
    box-shadow: 0 8px 18px rgba(7, 107, 227, 0.4);
    color: #FFFFFF;
    font-weight: 800;
    transform: translateY(-1px);
}
body.jt-product .jt-chip.is-on .jt-chip-num { color: rgba(255, 255, 255, 0.9); }

/* 3-2. 제조사 칩 (컬러 점) */
body.jt-product .jt-brands {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-bottom: 12px;
}
body.jt-product .jt-brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 17px;
    border-radius: 999px;
    background: #FFFFFF;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.07);
    font-size: 13px;
    font-weight: 600;
    color: #464E58;
    transition: box-shadow .2s ease, transform .2s ease;
}
body.jt-product .jt-brand:hover { box-shadow: 0 4px 12px rgba(82, 100, 128, 0.14); transform: translateY(-1px); }
body.jt-product .jt-brand i {
    width: 9px; height: 9px;
    border-radius: 50%;
    background: currentColor;
}
/* 제조사별 포인트 컬러 */
body.jt-product .jt-brand.b-opentext i { color: #3D7EDE; box-shadow: 0 0 8px rgba(61, 126, 222, 0.7); }
body.jt-product .jt-brand.b-magnet   i { color: #008CD1; box-shadow: 0 0 8px rgba(0, 140, 209, 0.7); }
body.jt-product .jt-brand.b-cellebrite i { color: #0086D8; box-shadow: 0 0 8px rgba(0, 134, 216, 0.7); }
body.jt-product .jt-brand.b-intella  i { color: #6674DE; box-shadow: 0 0 8px rgba(102, 116, 222, 0.7); }
body.jt-product .jt-brand.b-xways    i { color: #0093C1; box-shadow: 0 0 8px rgba(0, 147, 193, 0.7); }

/* 3-3. 유형 탭 + 검색 */
body.jt-product .jt-prd-toolbar {
    display: flex;
    justify-content: flex-end;   /* 탭·검색을 모두 우측으로 */
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 14px;
    padding-top: 23px;
    border-top: 1px solid rgba(188, 197, 209, 0.8);
}
body.jt-product .jt-tabs { display: flex; flex-wrap: wrap; gap: 10px; }
/* 유형 | 기업·공공 구분선 */
body.jt-product .jt-tools-sep { width: 1px; height: 22px; background: #C6CEDB; }
body.jt-product .jt-tab {
    display: inline-flex;
    align-items: center;
    padding: 10px 19px;
    border-radius: 24px;
    background: #FFFFFF;
    border: 1px solid #C6CEDB;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.06);
    font-size: 14px;
    font-weight: 600;
    color: #464E58;
    transition: border-color .2s ease, transform .2s ease;
}body.jt-product .jt-tab-2 {
    display: inline-flex;
    align-items: center;
    padding: 10px 19px;
    border-radius: 8px;
    background: #FFFFFF;
    border: 1px solid #C6CEDB;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.06);
    font-size: 14px;
    font-weight: 600;
    color: #464E58;
    transition: border-color .2s ease, transform .2s ease;
}
body.jt-product .jt-tab:hover,
body.jt-product .jt-tab-2:hover { border-color: #9BB6DC; transform: translateY(-1px); }
/* 유형(jt-tab)·구분(jt-tab-2) 선택 시 동일하게 '불 들어오는' 강조 (2026-07-24) */
body.jt-product .jt-tab.is-on,
body.jt-product .jt-tab-2.is-on {
    background: var(--jt-blue);
    border-color: var(--jt-blue);
    box-shadow: 0 6px 16px rgba(7, 107, 227, 0.3);
    color: #F4F9FF;
    font-weight: 800;
}

body.jt-product .jt-prd-search {
    display: inline-flex;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #C6CEDB;
    border-radius: 9px;
    padding: 0 12px 0 8px;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.08);
}
/* 검색 아이콘 버튼 (jetco_search_icon) */
body.jt-product .jt-search-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
body.jt-product .jt-search-btn img { width: 20px; height: 20px; display: block; }
/* 세로 구분선 */
body.jt-product .jt-search-sep {
    width: 1px;
    height: 14px;
    background: #C6CEDB;
    margin: 0 8px;
}
body.jt-product .jt-prd-search input[type="text"] {
    width: 190px;
    padding: 10px 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-family: var(--jt-font);
    font-size: 14px;
    color: #2C333D;
    box-sizing: border-box;
    outline: none;
}
body.jt-product .jt-prd-search input::placeholder { color: #7B8189; }
/* 총 제품 수 바 (그리드 위 좌측) + 2×2 그리드 아이콘 */
body.jt-product .jt-prd-countbar {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 26px;
}
body.jt-product .jt-count-ico {
    flex: none;
    width: 16px; height: 16px;
    background:
        linear-gradient(var(--jt-blue) 0 0) top left / 6.5px 6.5px no-repeat,
        linear-gradient(var(--jt-blue) 0 0) top right / 6.5px 6.5px no-repeat,
        linear-gradient(var(--jt-blue) 0 0) bottom left / 6.5px 6.5px no-repeat,
        linear-gradient(var(--jt-blue) 0 0) bottom right / 6.5px 6.5px no-repeat;
}
body.jt-product .jt-prd-count {
    font-size: 15px;
    font-weight: 700;
    color: var(--jt-blue-link);
    white-space: nowrap;
}

/* --------------------------------------------------------------------------
   4. 제조사 그룹 + 제품 카드
   -------------------------------------------------------------------------- */
body.jt-product .jt-prd-group { padding-top: 26px; }
body.jt-product .jt-prd-group + .jt-prd-group { padding-top: 34px; }

body.jt-product .jt-group-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}
body.jt-product .jt-group-dot {
    width: 11px; height: 11px;
    border-radius: 50%;
    background: #007CCE;
    box-shadow: 0 0 10px rgba(0, 124, 206, 0.6);
}
body.jt-product .jt-prd-group.g-opentext .jt-group-dot { background: #156CDD; box-shadow: 0 0 10px rgba(21, 108, 221, 0.6); }
body.jt-product .jt-group-name {
    font-size: 22px;
    font-weight: 800;
    color: #050E1A;
}
body.jt-product .jt-group-count {
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(7, 107, 227, 0.1);
    font-size: 13px;
    font-weight: 700;
    color: #596475;
}

body.jt-product .jt-prd-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

/* 평면 그리드(제조사 그룹 없이 전체 카드 나열) — Figma 4열 (2026-07-24) */
body.jt-product .jt-prd-grid-flat {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 26px;
}
body.jt-product .jt-prd-grid-flat img{
    width: 67%;
    height: 240px;
    object-fit: contain;
    display: block;
    margin: 0 auto 12px;
    border-radius: 10px;

}

/* 선택된 제조사(파트너) pill */
body.jt-product .jt-brand.is-on {
    background: var(--jt-blue);
    box-shadow: 0 6px 16px rgba(7, 107, 227, 0.3);
    color: #F4F9FF;
    font-weight: 800;
}
body.jt-product .jt-brand.is-on i { color: #FFFFFF; box-shadow: 0 0 8px rgba(255, 255, 255, 0.8); }

body.jt-product .jt-prd-card {
    /* Keep thumbnail blending inside its own card background. */
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-height: 250px;
    box-sizing: border-box;
    padding: 26px 26px 28px;
    border-radius: 16px;
    background: linear-gradient(168deg, #FFFFFF 0%, #EBF5FC 100%);
    border: 1px solid #CBDAE3;
    border-left-width: 4px;
    box-shadow: -6px 0 18px -4px rgba(0, 115, 196, 0.3);
    transition: transform .25s ease, box-shadow .25s ease;
}
/* Blend white JPEG backgrounds into the card without changing source assets.
   Scope to uploaded product thumbnails, excluding placeholders and UI icons. */
body.jt-product .jt-prd-card > .jt-thumb-img[src^="/upload/prod_gall/"] {
    mix-blend-mode: multiply;
}
body.jt-product .jt-prd-card:hover {
    transform: translateY(-4px);
    box-shadow: -6px 6px 26px -4px rgba(0, 115, 196, 0.42);
}
body.jt-product .jt-prd-group.g-opentext .jt-prd-card {
    background: linear-gradient(168deg, #FFFFFF 0%, #EEF4FD 100%);
    border-color: #D0D8E5;
    box-shadow: -6px 0 18px -4px rgba(4, 98, 211, 0.3);
}

body.jt-product .jt-card-top {
    display: flex;
    align-items: center;
    gap: 8px;
}
body.jt-product .jt-card-abbr {
    padding: 5px 10px 6px;
    border-radius: 6px;
    background: rgba(0, 124, 206, 0.12);
    font-family: var(--jt-font-en);
    font-size: 13px;
    font-weight: 700;
    color: #0066B7;
}
body.jt-product .jt-card-cate {
    padding: 4px 12px;
    border-radius: 999px;
    background: #006DB9;
    font-size: 12px;
    font-weight: 800;
    color: #F4F9FF;
}
body.jt-product .jt-prd-group.g-opentext .jt-card-abbr { background: rgba(21, 108, 221, 0.12); color: #0056C5; }
body.jt-product .jt-prd-group.g-opentext .jt-card-cate { background: #054594; }

body.jt-product .jt-card-name {
    margin-top: 17px;
    font-size: 20px;
    font-weight: 800;
    color: #030915;
}
body.jt-product .jt-card-vendor {
    margin-top: 11px;
    font-size: 13px;
    font-weight: 700;
    color: #596475;
}
body.jt-product .jt-card-desc {
    margin-top: 12px;
    font-size: 14.5px;
    line-height: 1.7;
    color: #363E48;
}
body.jt-product .jt-card-more {
    margin-top: auto;
    padding-top: 26px;
    font-size: 13.5px;
    font-weight: 800;
    color: #0066B7;
    opacity: .75;
    transition: opacity .2s ease;
}
body.jt-product .jt-prd-card:hover .jt-card-more { opacity: 1; }
body.jt-product .jt-prd-group.g-opentext .jt-card-more { color: #0056C5; }

/* 등록된 제품이 없을 때 */
body.jt-product .jt-prd-empty {
    padding: 80px 20px;
    text-align: center;
    font-size: 15px;
    color: #5C646F;
    background: rgba(255, 255, 255, 0.6);
    border: 1px dashed #C6CEDB;
    border-radius: 16px;
}

/* --------------------------------------------------------------------------
   5. 페이지네이션
   -------------------------------------------------------------------------- */
body.jt-product .jt-prd-paging {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    padding: 60px 0 20px;
}
body.jt-product .jt-page-num {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 600;
    color: #000000;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
body.jt-product .jt-page-num:hover {
    background: rgba(0, 0, 0, 0.05);
}
body.jt-product .jt-page-num.is-on {
    background: #000000;
    color: #FFFFFF;
    font-weight: 700;
}
body.jt-product .jt-page-arw {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #000000;
    opacity: 0.9;
    transition: opacity .2s ease, transform .2s ease;
}
body.jt-product .jt-page-arw:hover {
    opacity: 1;
    transform: scale(1.1);
}
body.jt-product .jt-page-arw svg {
    display: block;
}

/* --------------------------------------------------------------------------
   6. 하단 CTA 배너
   -------------------------------------------------------------------------- */
body.jt-product .jt-prd-cta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 34px;
    padding: 30px 34px;
    border-radius: 18px;
    background: linear-gradient(176deg, #00419B 0%, #001E5C 100%);
}
body.jt-product .jt-cta-tit {
    font-size: 17px;
    font-weight: 800;
    color: #F4F9FF;
}
body.jt-product .jt-cta-desc {
    margin-top: 6px;
    font-size: 14px;
    color: #BACFEF;
}
body.jt-product .jt-cta-btn {
    display: inline-flex;
    align-items: center;
    padding: 14px 26px;
    border-radius: 9px;
    background: #F4F9FF;
    font-size: 15px;
    font-weight: 800;
    color: #04193A;
    transition: transform .2s ease, box-shadow .2s ease;
}
body.jt-product .jt-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25); }

/* --------------------------------------------------------------------------
   7. 반응형
   -------------------------------------------------------------------------- */
@media (max-width: 1280px) {
    body.jt-product .jt-prd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.jt-product .jt-prd-grid-flat { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
    body.jt-product .jt-prd-grid-flat { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
    body.jt-product .jt-prd-wrap { padding: 107px 24px 72px; }
    body.jt-product .jt-prd-title { font-size: 34px; }
    body.jt-product .jt-prd-toolbar { align-items: flex-start; }
    body.jt-product .jt-prd-search { width: 100%; justify-content: space-between; }
}

@media (max-width: 768px) {
    body.jt-product .jt-prd-wrap { padding: 95px 20px 56px; }
    body.jt-product .jt-prd-title { font-size: 28px; }
    body.jt-product .jt-prd-lead { font-size: 15px; }
    body.jt-product .jt-prd-grid { grid-template-columns: 1fr; gap: 16px; }
    body.jt-product .jt-prd-grid-flat { grid-template-columns: 1fr; gap: 16px; }
    body.jt-product .jt-chip { padding: 10px 15px; font-size: 13px; }
    body.jt-product .jt-tab  { padding: 9px 15px; font-size: 13px; }
    body.jt-product .jt-prd-search input[type="text"] { width: 100%; }
    body.jt-product .jt-prd-search { flex-direction: column; align-items: stretch; gap: 10px; }
    body.jt-product .jt-prd-count { text-align: right; }
    body.jt-product .jt-group-name { font-size: 19px; }
    body.jt-product .jt-prd-cta { flex-direction: column; align-items: flex-start; padding: 24px; }
    body.jt-product .jt-cta-btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   제품 상세 (read) — Figma 시안 기준 (2026-07-22)
   <body class="main-page jt-product jt-prd-view">
   ========================================================================== */

body.jt-prd-view .jt-view-wrap {
    padding: 103px 32px 96px;   /* 고정 헤더 59 + 시안 44 */
    background: #FFFFFF;
}
body.jt-prd-view .jt-view-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

/* ---- 브레드크럼 ---- */
body.jt-prd-view .jt-crumb-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
body.jt-prd-view .jt-crumb-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 700;
    color: var(--jt-blue-link);
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s ease;
}
body.jt-prd-view .jt-crumb-back:hover { color: var(--jt-blue); }
body.jt-prd-view .jt-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #5C646F;
}
body.jt-prd-view .jt-crumb a { color: #5C646F; }
body.jt-prd-view .jt-crumb a:hover { color: var(--jt-blue); }
body.jt-prd-view .jt-crumb .is-now { font-weight: 700; color: #10171F; }

/* ---- 본문 2단 ---- */
body.jt-prd-view .jt-view-cols {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    margin-top: 32px;
}
body.jt-prd-view .jt-view-main { flex: 1 1 0; min-width: 0; }
body.jt-prd-view .jt-view-side { width: 340px; flex: none; }

/* ---- 제품 헤드 ---- */
body.jt-prd-view .jt-view-head {
    display: flex;
    align-items: flex-start;
    gap: 36px;
}
body.jt-prd-view .jt-view-thumb {
    position: relative;
    width: 220px;
    flex: none;
    box-sizing: border-box;
    padding: 19px;
    border-radius: 16px;
    /*background: linear-gradient(156deg, #FFFFFF 0%, #E6EFFC 100%);*/
    border: 1px solid #C9D2DE;
    box-shadow: 0 14px 34px -14px rgba(62, 100, 156, 0.35);
}
body.jt-prd-view .jt-view-thumb img { display: block; width: 100%; border-radius: 8px; }
body.jt-prd-view .jt-view-thumb .jt-thumb-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 228px;
    border-radius: 8px;
    background: rgba(11, 38, 71, 0.06);
    font-family: var(--jt-font-en);
    font-size: 11px;
    letter-spacing: 1px;
    color: #8A9AB0;
}
body.jt-prd-view .jt-official {
    position: absolute;
    top: 11px; right: 11px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(7, 107, 227, 0.9);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.5px;
    color: #FFFFFF;
}

body.jt-prd-view .jt-view-info { flex: 1 1 0; min-width: 0; }
body.jt-prd-view .jt-vendor-badge {
    display: inline-flex;
    padding: 7px 17px;
    border-radius: 999px;
    background: linear-gradient(174deg, #0C3164 0%, #001339 100%);
    border: 1px solid rgba(55, 131, 240, 0.55);
    font-size: 11.5px;
    font-weight: 800;
    color: #9CC6FF;
}
body.jt-prd-view .jt-view-title {
    margin-top: 18px;
    font-size: 36px;
    font-weight: 800;
    line-height: 1.25;
    color: #050E1A;
}
body.jt-prd-view .jt-view-sub {
    margin-top: 10px;
    font-size: 16px;
    color: #4B535E;
}
body.jt-prd-view .jt-view-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
    padding-bottom: 16px;
}
body.jt-prd-view .jt-view-tags span {
    padding: 8px 16px;
    border-radius: 999px;
    background: #FFFFFF;
    border: 1px solid #C6CEDB;
    box-shadow: 0 1px 3px rgba(82, 100, 128, 0.06);
    font-size: 12.5px;
    font-weight: 700;
    color: #3E4858;
}
body.jt-prd-view .jt-view-quote {
    padding: 17px 22px 18px 26px;
    border-left: 4px solid #0462D3;
    border-radius: 0 14px 14px 0;
    background: linear-gradient(177deg, #FFFFFF 0%, #EEF4FD 100%);
    box-shadow: -6px 0 18px -4px rgba(4, 98, 211, 0.3);
    font-size: 16px;
    line-height: 1.85;
    color: #293342;
}

/* 제품 개요(좌) + 스펙 세로 카드(우) 2단 */
body.jt-prd-view .jt-view-body {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    margin-top: 48px;
}
body.jt-prd-view .jt-view-body-main { flex: 1 1 0; min-width: 0; }
body.jt-prd-view .jt-view-body-main .jt-view-sec { margin-top: 0; }
body.jt-prd-view .jt-view-body-side { width: 340px; flex: none; }
body.jt-prd-view .jt-view-body-side .jt-side-card { margin-top: 0; }

/* ---- 섹션 제목 ---- */
body.jt-prd-view .jt-view-sec { margin-top: 48px; }
body.jt-prd-view .jt-view-sec-tit {
    font-size: 22px;
    font-weight: 800;
    color: #050E1A;
}
body.jt-prd-view .jt-view-desc {
    max-width: 760px;
    margin-top: 17px;
    font-size: 15.5px;
    line-height: 1.95;
    color: #3B434D;
}

/* ---- 주요 기능 카드 (2열) ---- */
body.jt-prd-view .jt-feat-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 40px;
    margin-top: 20px;
}
body.jt-prd-view .jt-feat {
    box-sizing: border-box;
    padding: 25px 10px 25px 10px;
    border-radius: 14px;
    /*background: linear-gradient(163deg, #FFFFFF 0%, #EEF4FD 100%);*/
    /*border: 1px solid #D0D8E5;*/
    /*border-left-width: 4px;*/
    /*box-shadow: -6px 0 18px -4px rgba(4, 98, 211, 0.3);*/
    display: flex;
    gap: 40px;
    /*margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);*/
}
/* 2. 홀수 번째 항목 (1, 3, 5...) : 흰색 배경 */
body.jt-prd-view .jt-feat:nth-child(odd) {
    background: #FFFFFF;
}
/* 3. 짝수 번째 항목 (2, 4, 6...) : 옅은 회색 배경 */
body.jt-prd-view .jt-feat:nth-child(even) {
    background: #F5F7FA; /* 원하는 회색 컬러 코드(#헥스코드)로 변경 가능 */
}
body.jt-prd-view .jt-feat > div.jt-feat-img-db {
  flex: 8;
}
body.jt-prd-view .jt-feat > div.jt-feat-head {
  flex: 5;
}
body.jt-prd-view .jt-feat-head {
    display: flex;
    align-items: stretch;
    gap: 10px;
    place-items: center;

}
body.jt-prd-view .jt-feat-head > div {
  width: 100%
}
/*body.jt-prd-view .jt-feat-head::before {
    content: '';
    flex: none;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #156CDD;
    box-shadow: 0 0 8px rgba(21, 108, 221, 0.6);
}*/
body.jt-prd-view .jt-feat-tit {
    font-size: 25px;
    font-weight: 800;
    color: #0B5AD6;
}
body.jt-prd-view .jt-feat-txt {
    margin-top: 31px;
    font-size: 16px;
    line-height: 1.65;
    color: #414853;
}
body.jt-prd-view .jt-feat-img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 221px;
    margin-top: 16px;
    /*border-radius: 10px;*/
    /*border: 1px solid #D0D8E5;*/
    /*background: rgba(11, 38, 71, 0.05);*/
    background-size: cover;
    background-position: center;
    font-family: var(--jt-font-en);
    /*font-size: 11px;*/
    /*letter-spacing: 1px;*/
    color: #8A9AB0;
}
/* DB 주요기능 이미지(contents 에디터) — 피그마: 카드 상단에 배치 */
body.jt-prd-view .jt-feat-img-db {
    display: block;
    height: auto;
    margin: 0 0 0px 0;
    padding: 0;
    overflow: hidden;
    border-radius: 10px;
    /*border: 1px solid #D0D8E5;*/
    /*background: #fff;*/
}
body.jt-prd-view .jt-feat-img-db img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    margin: 0;
}
body.jt-prd-view .jt-feat-img-db p { margin: 0; height: 100%; }

/* ---- 사이드 ---- */
body.jt-prd-view .jt-side-cta {
    display: block;
    padding: 17px 24px;
    border-radius: 10px;
    background: var(--jt-blue);
    box-shadow: 0 16px 34px rgba(7, 107, 227, 0.4);
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: #F4F9FF;
    transition: transform .2s ease;
}
body.jt-prd-view .jt-side-cta:hover { transform: translateY(-2px); }

body.jt-prd-view .jt-side-card {
    margin-top: 20px;
    border-radius: 14px;
    background: linear-gradient(169deg, #FFFFFF 0%, #EEF4FD 100%);
    border: 1px solid #D0D8E5;
    box-shadow: 0 10px 30px -12px rgba(70, 100, 145, 0.2);
    overflow: hidden;
}
body.jt-prd-view .jt-spec-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px 15px;
    border-top: 1px solid #D8DFE8;
    font-size: 13.5px;
}
body.jt-prd-view .jt-spec-row:first-child { border-top: 0; }
body.jt-prd-view .jt-spec-row dt { color: #5C646F; }
body.jt-prd-view .jt-spec-row dd { margin: 0; font-weight: 700; color: #10171F; text-align: right; }

body.jt-prd-view .jt-side-pad { padding: 23px; }
body.jt-prd-view .jt-vendor-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
body.jt-prd-view .jt-vendor-logo {
    width: 38px; height: 38px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: linear-gradient(160deg, #276ED2 0%, #00419B 100%);
    font-size: 13px;
    font-weight: 800;
    color: #FFFFFF;
}
/* 제조사 로고 (partner.imagename1) — 제조사명 위에 작게 (2026-08-04)
   로고 원본 비율이 2.4:1 ~ 6.3:1 로 제각각이라, 고정 크기 박스 안에 contain 시켜
   어떤 로고든 차지하는 영역이 동일하도록 맞춘다(비율은 유지, 왜곡/잘림 없음). */
body.jt-prd-view .jt-vendor-logo-sm {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 32px;
    margin-bottom: 11px;
}
body.jt-prd-view .jt-vendor-logo-sm img {
    /* 높이를 32px 로 통일 — 폭은 로고 비율대로 (뭉툭한 로고가 작아 보이지 않게)
       max-width 는 6:1 이상으로 길쭉한 로고(OpenText 등)가 혼자 커 보이는 것을 막는 상한 */
    height: 100%;
    width: auto;
    max-width: 155px;
    object-fit: contain;
    /* 로고 PNG 의 흰 배경을 카드 배경(연파랑)에 자연스럽게 녹인다 */
    mix-blend-mode: multiply;
}
body.jt-prd-view .jt-vendor-nm { font-size: 15px; font-weight: 800; color: #050E1A; }
body.jt-prd-view .jt-vendor-meta { margin-top: 2px; font-size: 12px; color: #5C646F; }
body.jt-prd-view .jt-vendor-txt {
    margin-top: 15px;
    font-size: 13px;
    line-height: 1.7;
    color: #464E58;
}

body.jt-prd-view .jt-side-label {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.52px;
    text-transform: uppercase;
    color: #5C646F;
}
body.jt-prd-view .jt-rel {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
    padding: 10px;
    border-radius: 10px;
    transition: background .2s ease;
}
body.jt-prd-view .jt-rel:hover { background: rgba(39, 110, 210, 0.07); }
body.jt-prd-view .jt-rel-ico {
    width: 36px; height: 36px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(39, 110, 210, 0.14);
    border: 1px solid rgba(39, 110, 210, 0.35);
    font-size: 11px;
    font-weight: 800;
    color: #1659B5;
}
body.jt-prd-view .jt-rel-nm { display: block; font-size: 14px; font-weight: 700; color: #0C121A; }
body.jt-prd-view .jt-rel-sub { display: block; margin-top: 2px; font-size: 12px; color: #5C646F; }

/* ---- 라이선스 비교 ---- */
body.jt-prd-view .jt-lic {
    padding: 8px 32px 88px;
    background: #FFFFFF;
}
body.jt-prd-view .jt-lic-inner { width: 100%; max-width: 1280px; margin: 0 auto; }
body.jt-prd-view .jt-lic-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
}
body.jt-prd-view .jt-lic-badge {
    display: inline-flex;
    padding: 7px 17px;
    border-radius: 999px;
    background: linear-gradient(174deg, #0C3164 0%, #001339 100%);
    border: 1px solid rgba(55, 131, 240, 0.55);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.66px;
    color: #9CC6FF;
}
body.jt-prd-view .jt-lic-tit {
    margin-top: 14px;
    font-size: 26px;
    font-weight: 800;
    color: #050E1A;
}
body.jt-prd-view .jt-lic-tiers { display: flex; flex-wrap: wrap; gap: 12px; }
body.jt-prd-view .jt-tier {
    padding: 11px 21px;
    border-radius: 10px;
    text-align: center;
}
body.jt-prd-view .jt-tier b { display: block; font-size: 14px; font-weight: 800; }
body.jt-prd-view .jt-tier span { display: block; margin-top: 2px; font-size: 12px; opacity: .85; }
body.jt-prd-view .jt-tier.t-ess {
    background: linear-gradient(170deg, #C6EFFF 0%, #A4DEF9 100%);
    border: 1px solid rgba(0, 142, 193, 0.5);
    color: #00436B;
}
body.jt-prd-view .jt-tier.t-adv {
    background: linear-gradient(170deg, #C9E3FF 0%, #AED0FF 100%);
    border: 1px solid rgba(67, 133, 228, 0.55);
    color: #00327E;
}
body.jt-prd-view .jt-tier.t-pre {
    background: linear-gradient(168deg, #E2DFFF 0%, #CEC9FF 100%);
    border: 1px solid rgba(126, 110, 211, 0.5);
    color: #3E2685;
}

body.jt-prd-view .jt-lic-box {
    margin-top: 31px;
    padding: 13px;
    border-radius: 16px;
    background: linear-gradient(170deg, #FFFFFF 0%, #EEF4FD 100%);
    border: 1px solid #D0D8E5;
    box-shadow: 0 20px 50px -20px rgba(62, 100, 156, 0.3);
}
body.jt-prd-view .jt-lic-scroll { overflow-x: auto; border-radius: 10px; }
body.jt-prd-view table.jt-lic-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    table-layout: fixed;
}
body.jt-prd-view .jt-lic-table th {
    padding: 16px 22px;
    background: linear-gradient(176deg, #004296 0%, #002267 100%);
    font-size: 13px;
    font-weight: 800;
    color: #F4F9FF;
    text-align: left;
}
body.jt-prd-view .jt-lic-table th.c { text-align: center; width: 132px; }
body.jt-prd-view .jt-lic-table th:first-child { width: 132px; }
body.jt-prd-view .jt-lic-table td {
    padding: 15px 22px 14px;
    border-top: 1px solid #D8DFE8;
    background: #FFFFFF;
    font-size: 14px;
    color: #192029;
    vertical-align: middle;
}
body.jt-prd-view .jt-lic-table tr:nth-child(even) td { background: #F3F7FC; }
body.jt-prd-view .jt-lic-table td.grp {
    font-size: 13.5px;
    font-weight: 800;
    color: #0057C0;
}
body.jt-prd-view .jt-lic-table td.c { text-align: center; }
body.jt-prd-view .jt-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    color: #FFFFFF;
}
body.jt-prd-view .jt-mark.m-ess { background: #0077B4; }
body.jt-prd-view .jt-mark.m-adv { background: #1C65C8; }
body.jt-prd-view .jt-mark.m-pre { background: #6851C3; }

/* 라이선스 비교표 = 고정 이미지 1장 (2026-07-24) */
/* 이미지가 자체 디자인된 표이므로 박스 장식(테두리·배경·그림자)을 없애고 이미지만 꽉 채운다 */
body.jt-prd-view .jt-lic-imgbox {
    padding: 0;
    overflow: visible;
    border: none;
    background: none;
    box-shadow: none;
    border-radius: 16px;
    /* 위·아래 섹션(.jt-lic-inner max-width:1280px)과 좌우 정렬을 맞춘다 */
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
body.jt-prd-view .jt-lic-img {
    display: block;
    width: auto;
    height: auto;
    border-radius: 16px;
}
body.jt-prd-view .jt-lic-ph {
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    min-height: 260px;
    padding: 40px 20px;
    text-align: center;
    border-radius: 15px;
    background: repeating-linear-gradient(135deg, #F3F7FC 0 14px, #EAF1FA 14px 28px);
    color: #5C646F;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.7;
}
body.jt-prd-view .jt-lic-ph small { font-size: 12.5px; font-weight: 400; color: #8A93A0; }

body.jt-prd-view .jt-lic-note {
    margin-top: 14px;
    font-size: 12.5px;
    color: #5C646F;
}
body.jt-prd-view .jt-lic-foot {
    display: flex;
    justify-content: flex-end;
    padding-top: 14px;
}
body.jt-prd-view .jt-lic-btn {
    display: inline-flex;
    padding: 16px 28px;
    border-radius: 9px;
    background: var(--jt-blue);
    box-shadow: 0 16px 34px rgba(7, 107, 227, 0.4);
    font-size: 15px;
    font-weight: 800;
    color: #F4F9FF;
    transition: transform .2s ease;
}
body.jt-prd-view .jt-lic-btn:hover { transform: translateY(-2px); }

/* ---- 하단 행: 제조사 · 같은 제조사 제품 · 문의 (우측 사이드 → 이동) ---- */
body.jt-prd-view .jt-lic-foot.jt-foot-grid {
    justify-content: flex-start;
    align-items: stretch;
    gap: 20px;
    margin-top: 120px;
    padding-top: 0;
    flex-wrap: wrap;
}
/* 카드 공통(제조사·같은 제조사 제품) */
body.jt-prd-view .jt-foot-card {
    flex: 1 1 0;
    min-width: 260px;
    margin-top: 0;
    box-sizing: border-box;
    padding: 24px 26px;
    border-radius: 16px;
    background: #EEF4FD;   /* 사이트 공통 아주 약한 하늘색 */
    border: 1px solid #E2E8F1;
    box-shadow: 0 12px 30px -16px rgba(70, 100, 145, 0.22);
}
/* 1. 제조사 — 파란 좌측 액센트 */
body.jt-prd-view .jt-foot-vendor { border-left: 4px solid var(--jt-blue); }
/* 2. 같은 제조사 제품 — 넓게 + 미니카드 가로 */
body.jt-prd-view .jt-foot-rel { flex: 2 1 0; min-width: 360px; }
body.jt-prd-view .jt-rel-list {
    display: flex;
    flex-wrap: nowrap;   /* 한 줄 고정 */
    gap: 30px;
    margin-top: 16px;
}
/* 내부 카드(테두리·배경) 없이 콘텐츠만 3열로 나열 */
body.jt-prd-view .jt-relcard {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    transition: color .2s ease;
}
body.jt-prd-view .jt-relcard:hover .jt-relcard-nm { color: var(--jt-blue-link); }
body.jt-prd-view .jt-relcard-badge {
    align-self: flex-start;
    margin-bottom: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--jt-blue);
    font-size: 10.5px;
    font-weight: 800;
    color: #FFFFFF;
    white-space: nowrap;
}
body.jt-prd-view .jt-relcard-nm { font-size: 18px; font-weight: 800; color: #0C121A; }
body.jt-prd-view .jt-relcard-vendor { font-size: 12.5px; font-weight: 700; color: #3E4858; }
body.jt-prd-view .jt-relcard-desc { margin-top: 2px; font-size: 12px; line-height: 1.5; color: #5C646F; }
/* 3. 문의하기 — 다크블루 카드 */
body.jt-prd-view .jt-foot-consult {
    flex: none;
    width: 282px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    padding: 28px 26px;
    border-radius: 16px;
    /* 더 강하고 선명한 그라데이션 (밝은 블루 → 딥 네이비, 대비 강화) */
    background: linear-gradient(150deg, #2A8CF7 0%, #0B5AD6 42%, #04246B 100%);
    box-shadow: 0 20px 40px -16px rgba(11, 90, 214, 0.7);
    text-align: center;
    color: #EAF2FF;
}
body.jt-prd-view .jt-foot-consult-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px; height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #9CD0FF;
}
body.jt-prd-view .jt-foot-consult-ico svg { width: 26px; height: 26px; }
body.jt-prd-view .jt-foot-consult-txt {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.65;
    color: #EAF2FF;
}
body.jt-prd-view .jt-foot-consult-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 26px;
    border-radius: 999px;
    background: #FFFFFF;
    font-size: 14px;
    font-weight: 800;
    color: #0A50B8;
    transition: transform .2s ease, box-shadow .2s ease;
}
body.jt-prd-view .jt-foot-consult:hover .jt-foot-consult-btn { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, 0.2); }

/* ---- 반응형 ---- */
@media (max-width: 1180px) {
    body.jt-prd-view .jt-view-cols { flex-direction: column; }
    body.jt-prd-view .jt-view-side { width: 100%; }
    body.jt-prd-view .jt-feat-grid { grid-template-columns: 1fr; }
    body.jt-prd-view .jt-lic-foot.jt-foot-grid { flex-direction: column; }
    body.jt-prd-view .jt-foot-consult { width: 100%; }
    body.jt-prd-view .jt-view-body { flex-direction: column; gap: 28px; }
    body.jt-prd-view .jt-view-body-side { width: 100%; }
}
@media (max-width: 1024px) {
    body.jt-prd-view .jt-view-wrap { padding: 87px 24px 72px; }
    body.jt-prd-view .jt-lic { padding: 8px 24px 72px; }
    body.jt-prd-view .jt-view-title { font-size: 30px; }
}
@media (max-width: 768px) {
    body.jt-prd-view .jt-view-wrap { padding: 79px 20px 56px; }
    body.jt-prd-view .jt-lic { padding: 8px 20px 56px; }
    body.jt-prd-view .jt-view-head { flex-direction: column; gap: 20px; }
    body.jt-prd-view .jt-view-thumb { width: 100%; }
    body.jt-prd-view .jt-view-title { font-size: 25px; }
    body.jt-prd-view .jt-view-sec { margin-top: 36px; }
    body.jt-prd-view .jt-lic-tit { font-size: 21px; }
    body.jt-prd-view .jt-lic-btn { width: 100%; justify-content: center; }

    body.jt-prd-view .jt-feat {
        flex-direction: column; /* 요소를 세로로 쌓음 */
        gap: 20px; /* 모바일에서는 간격을 40px에서 20px 정도로 줄이는 것을 추천합니다 */
    }

    body.jt-prd-view .jt-feat-img {
        order: 1; /* 첫 번째로 배치 (위) */
    }

    body.jt-prd-view .jt-feat-head {
        order: 2; /* 두 번째로 배치 (아래) */
    }
}
