.filter-container {
    display: grid;
    box-sizing: border-box;
    column-gap: 24px;

    /* 12단 그리드 시스템 정확히 재현 */
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto 1fr;
    grid-template-areas:
    "b b a a a a a a a a a a"
    "b b c c c c c c c c c c";
}
.filter-container input:focus,
.filter-container select:focus {
    outline: none; /* 기본 파란색 outline 제거 */
}
.filter-container button {
    cursor: pointer;
}
.filter-container form {
    display: contents;
}
.filter-container .search-wrap {
    grid-area: a;
    /* background: #ff9999; */
    display: flex;
    flex-direction: row;
    gap: 24px;
}
.filter-container .taxonomy-wrap {
    grid-area: b;
    padding-right: 19%;
    /* background: #9999ff; */
}
.filter-container .result-wrap {
    grid-area: c;
    /* background: #99ff99; */
}
.filter-container .taxonomy-groups > .taxonomy-group + .taxonomy-group {
    margin-top: 40px;
}

.filter-container .download-title {
    font-size: 34px;
    font-weight: 500;
    color: #000;
}
.filter-form .search-row {
    justify-content: space-between;
}
.filter-container .filter-row {
    display: flex;
    width: 100%;
}
.filter-container .row {
    display: flex;
    flex-direction: row;
}
.filter-container .gap-24 {
    gap: 24px;
}
.dx-search {
    font-size: 14px;
    font-weight: 500;
    padding: 17px 26px 16px;
    border: 1px solid #595959;
    border-radius: 100px;;
    flex: 1;
}
#dx-software-pagination {
    margin-top: 40px;
}
#dx-version-scope {
    font-size: 14px;
    font-weight: 500;
    padding: 17px 26px 16px;
    border: 1px solid #595959;
    border-radius: 100px;
    width: 326px;

    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: white url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23333' d='M0 0l5 6 5-6z'/></svg>") no-repeat;
    background-position: calc(100% - 20px) center;
    background-size: 10px;
    padding-right: 40px; /* 화살표 공간 확보 */
}

/* Firefox에서 배경이 안 보이는 경우 대비 */
#dx-version-scope::-ms-expand {
    display: none;
}

.filter-container .taxonomy-row {
    flex-wrap: wrap;
    margin-top: 60px;
}
.filter-container .taxonomy-group {
    flex: 1;
}
.filter-container .taxonomy-group strong {
    padding: 10px;
    display: block;
    font-weight: 700;
    font-size: 28px;
    line-height: 1.3;
    letter-spacing: -0.0236em;
    color: #2A2A2A; 
}
.filter-container .terms-list {
    display: flex;
    flex-direction: column;
    margin-top: 10px;
    /* gap: 15px; */
}
.filter-container .terms-list label {
    font-size: 22px;
    line-height: 1.36;
    letter-spacing: -0.0194em;
    color: #2A2A2A;
    padding: 10px;
}
.filter-container .terms-list label span {
    margin-left: 8px;
}
.button-row {
    margin-top: 40px;
    /* justify-content: end; */
}
#dx-clear-filters {
    background-color: #B3B3B3;
    color: #fff;
    font-size: 16px;
    display: inline-flex;
    flex-direction: row;
    gap: 10px;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 170px;
    height: 50px;
    border: 0;
    border-radius: 5px;
}
.dx-results {
    width: 100%; border-collapse: collapse;
    margin-top: 80px;
}
.dx-results th[data-sortable-by] {
    position: relative;
    cursor: pointer;
}
.dx-results th[data-sortable-by]:hover .sort-buttons,
.dx-results th[data-sortable-by].sorted .sort-buttons {
    visibility: visible;
}
.sortable-column {
    display: flex;
    /* justify-content: space-between; */
    align-items: center;
    width: 100%;
}
.sort-buttons {
    display: flex;
    flex-direction: column;
    visibility: hidden;
    margin-right: 5px;
}
.sort-buttons button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #999;
    display: inline-flex;
    height: 10px;
    align-items: center;
    justify-content: center;
}
.sort-buttons button:hover {
    color: #333;
}
.dx-results th[data-sortable-by].sorted-asc .sort-asc,
.dx-results th[data-sortable-by].sorted-desc .sort-desc {
    color: #005EEB;
}
.dx-results th {
    text-align: left;
    font-size: 14px;
    font-weight: 600;
    padding-bottom: 20px;
    border-bottom: 2px solid rgba(0,0,0,.8);
    color: #3F3D3D;
}
.dx-results td {
    padding: 30px 0 0;
    text-align: left;
    color: #6E6E6E;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.6;
}
.dx-results tr td:last-child {
  /* width: 211px; */
  /* 필요 시 !important 로 강제 적용 */
  /* width: 211px !important; */
}
.dx-results tbody > tr + tr > td {
    /* border-top: 1px solid rgba(215,215,215,.8); */
}
.dx-results .title {
    font-size: 18px;
    font-weight: 500;
    color: #000;
}
.dx-results .date {
    font-weight: 400;
}
.dx-results .document {
    text-decoration: underline;
    color: #005EEB;
}
.dx-results th.file {
    padding-right: 130px;
} 
.dx-results .file {
    text-align: right;
}
.dx-results .file a {
    border: 1px solid #005EEB;
    border-radius: 50px;
    color: #005EEB;
    font-size: 18px;
    font-weight: 400;
    padding-left: 24px;
    padding-right: 24px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 30px;
    line-height: 1;
}
.dx-results .doc-file {
    text-align: center;
}
.dx-results .doc-file a {
    color: #005EEB;
    display: inline-flex;
    align-items: center;
}
.dx-results b {
    display: none;
}
label input[type="radio"]:disabled + span { color: #aaa; }


@media (max-width: 991px) {
    .filter-container {
        display: flex;
        flex-direction: column;
    }
    .filter-container .taxonomy-wrap {
        margin-top: 36px;
        display: flex;
        flex-direction: column;
        padding-right: 0;
    }
    .filter-container .taxonomy-groups {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        width: 100%
    }
    .filter-container .taxonomy-groups > .taxonomy-group + .taxonomy-group {
        margin-top: 0;
        border-top: none;
        padding-top: 0;
    }
}
@media (max-width: 767px) {
    .filter-container {
        display: flex;
        flex-direction: column;
    }
    .filter-container .search-wrap {
        flex-direction: column;
        gap: 20px;
    }
    #dx-version-scope {
        width: 100%;
    }
    .filter-container .terms-list {
        flex-direction: row;
        margin-top: 13px;
        gap: 24px;
    }
    .filter-container .taxonomy-groups {
        flex-direction: column;
        justify-content: space-between;
        width: 100%;
        gap: 20px;
    }

    .filter-container .dx-results {
        border-top: 2px solid rgba(0,0,0,.8)
    }
    .filter-container .dx-results thead {
        display: none;
    }
    .filter-container .dx-results tr {
        display: flex;
        flex-direction: column;
    }
    .dx-results td {
        border: none !important;
    }
    .filter-container .dx-results tbody > tr + tr > td:first-child {
        border-top: 1px solid rgba(215,215,215,.8) !important;
        margin-top: 30px;
    }
    .dx-results {
        margin-top: 20px;
    }
    .dx-results td.title {
        padding: 22px 0 17px;
    }
    .dx-results td {
        padding: 1px 0;
        text-align: left;
        color: #6E6E6E;
    }
    .dx-results b {
        display: inline-block;
    }
    .dx-results .file {
        height: inherit;
        border-left: none;
        padding-top: 16px;
        padding-left: 0;
        text-align: inherit;
        width: 100%;
    }
    .dx-results .file a {
        width: 100%;
        justify-content: center;
    }
}