.company-directory {
    gap: 30px;
    flex-wrap: nowrap;
}

.company-directory .menus { flex: 0 0 220px; }
.company-directory .m_title { color: #fff; }
.company-directory .directory-menu-title { font-size: 22px; padding-left: 4px; }
.company-directory .contents { flex: 1; min-width: 0; padding-bottom: 0; }
.company-directory .directory-content { padding: 28px 30px 30px; }
.company-directory h1 { margin: 0; font-size: 24px; line-height: 1.5; color: #222; }
.company-directory .directory-intro { margin: 6px 0 24px; color: #666; font-size: 14px; }
.company-directory .directory-search { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.company-directory .directory-search label { font-size: 15px; color: #333; }
.company-directory .directory-search input { flex: 1; min-width: 160px; height: 42px; border: 1px solid #ccc; border-radius: 3px; padding: 0 12px; font: inherit; }
.company-directory .directory-search button { height: 42px; padding: 0 25px; background: #dc0d0d; border-radius: 3px; color: #fff; cursor: pointer; font: inherit; }
.company-directory .directory-reset, .company-directory .directory-empty a { color: #c40c0c; text-decoration: underline; }
.company-directory .directory-count { margin: 20px 0 12px; color: #666; font-size: 14px; }
.company-directory .directory-count strong { color: #dc0d0d; }
.company-directory .directory-table-wrap { overflow-x: auto; border: 1px solid #e6e6e6; border-radius: 3px; }
.company-directory .directory-table { width: 100%; min-width: 620px; border-collapse: collapse; table-layout: fixed; text-align: left; font-size: 15px; line-height: 1.8; }
.company-directory .directory-table th { background: #fff4f3; color: #8e1717; font-weight: bold; }
.company-directory .directory-table th, .company-directory .directory-table td { padding: 14px 16px; vertical-align: top; border-bottom: 1px solid #e6e6e6; overflow-wrap: anywhere; }
.company-directory .directory-table tbody tr:last-child td { border-bottom: none; }
.company-directory .directory-table tbody tr:nth-child(even) { background: #fafafa; }
.company-directory .directory-number { width: 70px; text-align: center; color: #777; }
.company-directory .directory-name { width: 29%; color: #222; font-weight: 600; }
.company-directory .directory-description { color: #555; white-space: pre-wrap; }
.company-directory .directory-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 26px; font-size: 14px; }
.company-directory .directory-pagination a, .company-directory .directory-pagination .disabled, .company-directory .directory-pagination .current { min-width: 36px; padding: 7px 10px; text-align: center; border: 1px solid #ddd; border-radius: 3px; line-height: 20px; }
.company-directory .directory-pagination a { color: #444; }
.company-directory .directory-pagination a:hover { color: #dc0d0d; border-color: #dc0d0d; }
.company-directory .directory-pagination .current { background: #dc0d0d; border-color: #dc0d0d; color: #fff; }
.company-directory .directory-pagination .disabled { color: #999; background: #f5f5f5; }
.company-directory .directory-page-status { color: #666; padding: 7px 0; }
.company-directory .directory-empty { padding: 55px 16px; background: #fafafa; text-align: center; color: #666; line-height: 2.5; }
.company-directory a:focus-visible, .company-directory input:focus-visible, .company-directory button:focus-visible, .company-directory .directory-table-wrap:focus-visible { outline: 2px solid #c40c0c; outline-offset: 3px; }

@media (max-width: 1279px) {
    html.company-directory-page, html.company-directory-page body { min-width: 0; }
    .company-directory { width: calc(100vw - 32px); margin-left: 16px; margin-right: 16px; gap: 20px; }
    .company-directory .contents { width: auto; }
    .company-directory .directory-content { padding: 24px 20px; }
    .company-directory .directory-breadcrumb { font-size: 16px; text-indent: 20px; }
}

@media (max-width: 767px) {
    .company-directory { flex-direction: column; padding-top: 16px; }
    .company-directory .menus { width: 100%; flex: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .company-directory .m_title { width: 100%; grid-column: 1 / -1; height: 60px; }
    .company-directory .m_item { width: 100%; height: 56px; font-size: 15px; padding: 5px 8px; }
    .company-directory .contents { width: 100%; flex: none; }
    .company-directory .directory-content { padding: 20px 14px; }
    .company-directory .directory-breadcrumb { height: auto; min-height: 60px; padding: 18px 14px; text-indent: 0; line-height: 24px; font-size: 15px; }
    .company-directory .directory-search { gap: 10px; }
    .company-directory .directory-search label { width: 100%; }
    .company-directory .directory-search input { min-width: 0; }
    .company-directory .directory-search button { padding: 0 18px; }
}
