/* Public-facing KCN pages — match Modesy .container responsive widths */
.industrial-wrap { width:100%; max-width:1270px; margin:0 auto; padding:24px 15px; }
@media (min-width:1400px) { .industrial-wrap { max-width:1320px; } }
@media (max-width:1260px) { .industrial-wrap { max-width:100% !important; } }
.ipho-home { width:100%; flex:0 0 100%; max-width:100%; }
.ipho-home .ipho-section { clear:both; display:block; width:100%; margin:34px 0; }
.ipho-hero { background:#fff; border:1px solid #e8edf3; border-radius:12px; padding:30px 32px; margin:24px 0 34px; box-shadow:0 8px 24px rgba(18, 38, 63, .06); }
.ipho-hero-inner { display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap; }
.ipho-hero-text { flex:1; min-width:280px; }
.ipho-hero-text h2 { font-size:30px; margin:0 0 10px; color:#222; }
.ipho-hero-text p { font-size:15px; color:#5f6b7a; line-height:1.7; margin:0 0 18px; max-width:620px; }
.ipho-hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.ipho-btn { display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border-radius:8px; font-weight:600; text-decoration:none; font-size:14px; transition:all .18s ease; }
.ipho-btn-primary { background:var(--mds-color-main); border:1px solid var(--mds-color-main); color:#fff; }
.ipho-btn-primary:hover { color:#fff; filter:brightness(.96); transform:translateY(-1px); }
.ipho-btn-ghost { background:#fff; border:1px solid #d7e0ea; color:#405261; }
.ipho-btn-ghost:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); background:#f9fcfc; }
.ipho-hero-stats { display:grid; grid-template-columns:repeat(3, minmax(120px, 1fr)); gap:12px; min-width:320px; }
.ipho-stat { background:#f8fafc; border:1px solid #e8edf3; border-radius:10px; padding:16px 14px; text-align:center; }
.ipho-stat .num { display:block; font-size:30px; font-weight:800; line-height:1; color:#222; }
.ipho-stat .lbl { font-size:11px; color:#6b7a89; text-transform:uppercase; letter-spacing:.6px; margin-top:6px; }
.ipho-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; border-bottom:1px solid #edf1f5; padding-bottom:10px; }
.ipho-head h3 { font-size:22px; margin:0; color:#222; }
.ipho-more { color:var(--mds-color-main); text-decoration:none; font-weight:600; font-size:14px; }
.ipho-more:hover { text-decoration:underline; color:var(--mds-color-main); }
.ipho-region-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.ipho-region-card { display:block; padding:18px 20px; background:#fff; border:1px solid #e8edf3; border-radius:8px; text-decoration:none; color:inherit; transition:box-shadow .2s, transform .2s, border-color .2s; }
.ipho-region-card:hover { box-shadow:0 8px 20px rgba(18, 38, 63, .08); transform:translateY(-2px); border-color:rgba(0,0,0,.08); }
.ipho-region-name { font-weight:700; font-size:15px; color:#222; margin-bottom:6px; }
.ipho-region-meta { font-size:13px; color:#7a8793; }
.industrial-breadcrumbs { margin:10px 0 18px; font-size:14px; color:#666; }
.industrial-breadcrumbs ol { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px; }
.industrial-breadcrumbs li:not(:last-child)::after { content:"›"; margin-left:6px; color:#bbb; }
.industrial-breadcrumbs a { color:var(--mds-color-main); text-decoration:none; }
.industrial-breadcrumbs a:hover { text-decoration:underline; }

.industrial-page-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:12px; border-bottom:1px solid #eee; padding-bottom:12px; margin-bottom:20px; }
.industrial-page-header h1 { margin:0; font-size:26px; color:#222; }
.industrial-page-header .meta { font-size:14px; color:#888; }
.industrial-page-header-main { display:flex; flex-direction:column; gap:6px; }
.industrial-page-lead { margin:0; font-size:14px; color:#6b7a89; }
.industrial-page-lead strong { color:#222; font-weight:700; }
.industrial-page-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.industrial-meta-pill { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:999px; border:1px solid #e2e8f0; background:#fff; color:#6b7a89; font-weight:600; }
.btn-map-link { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 16px; background:var(--mds-color-main); color:#fff; text-decoration:none; border-radius:8px; font-weight:600; font-size:14px; transition:filter .18s ease, transform .18s ease; }
.btn-map-link:hover { color:#fff; filter:brightness(.96); transform:translateY(-1px); }

/* Filter bar */
.industrial-filter { background:#fafafa; border:1px solid #eee; border-radius:10px; padding:14px; margin-bottom:20px; }
.industrial-filter form { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; }
.industrial-filter .field { display:flex; flex-direction:column; min-width:160px; }
.industrial-filter label { font-size:12px; color:#666; margin-bottom:4px; font-weight:600; text-transform:uppercase; }
.industrial-filter select, .industrial-filter input { padding:7px 9px; border:1px solid #ddd; border-radius:4px; font-size:14px; background:#fff; }
.industrial-filter select, .industrial-filter input { min-height:42px; }
.industrial-filter button { padding:8px 18px; background:var(--mds-color-main); color:#fff; border:0; border-radius:8px; font-weight:600; cursor:pointer; min-height:42px; }
.industrial-filter .reset { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 14px; background:#fff; color:#556372; border:1px solid #d6dee8; border-radius:8px; text-decoration:none; font-weight:600; }
.industrial-filter .reset:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); background:#f9fcfc; }
.industrial-field-xs { min-width:110px !important; }
.industrial-field-sm { min-width:150px !important; }
.industrial-field-md { min-width:190px !important; }
.industrial-field-grow { flex:1; min-width:220px !important; }
.industrial-filter-actions { min-width:170px; }
.industrial-filter-label-placeholder { visibility:hidden; }
.industrial-filter-action-row { display:flex; gap:8px; }
.industrial-filter-summary { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid #eceff3; }
.industrial-filter-summary-label { font-size:13px; font-weight:600; color:#556372; }
.industrial-chip { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; background:#fff; border:1px solid #d8e1ea; color:#41515f; font-size:12px; font-weight:600; }

/* Select2 for public industrial pages: derived from dashboard/add-product */
.industrial-filter .form-group,
.map-sidebar .form-group,
.industrial-inquiry-section .form-group { margin-bottom:0; }
.industrial-filter .select2-container,
.industrial-inquiry-section .select2-container,
.map-sidebar .select2-container { width:100% !important; }
.industrial-filter .select2-container--default .select2-selection--single,
.industrial-inquiry-section .select2-container--default .select2-selection--single,
.map-sidebar .select2-container--default .select2-selection--single {
    border:1px solid #dfe0e6 !important;
    border-radius:2px !important;
    height:36px !important;
    min-height:36px;
    background:#fff;
    padding:8px 12px !important;
}
.industrial-filter .select2-container .select2-selection--single .select2-selection__rendered,
.industrial-inquiry-section .select2-container .select2-selection--single .select2-selection__rendered,
.map-sidebar .select2-container .select2-selection--single .select2-selection__rendered {
    padding-left:0;
    padding-right:0;
    line-height:1.5;
    margin-top:-3px !important;
    color:#27313b;
    font-size:14px;
}
.industrial-filter .select2-container--default .select2-selection--single .select2-selection__arrow,
.industrial-inquiry-section .select2-container--default .select2-selection--single .select2-selection__arrow,
.map-sidebar .select2-container--default .select2-selection--single .select2-selection__arrow {
    height:28px;
    right:3px;
}
.industrial-filter .select2-container--default .select2-selection--single .select2-selection__arrow b,
.industrial-inquiry-section .select2-container--default .select2-selection--single .select2-selection__arrow b,
.map-sidebar .select2-container--default .select2-selection--single .select2-selection__arrow b {
    margin-left:-8px !important;
    margin-top:2px !important;
}
.industrial-filter .select2-container--default.select2-container--open .select2-selection--single,
.industrial-filter .select2-container--default.select2-container--focus .select2-selection--single,
.industrial-inquiry-section .select2-container--default.select2-container--open .select2-selection--single,
.industrial-inquiry-section .select2-container--default.select2-container--focus .select2-selection--single,
.map-sidebar .select2-container--default.select2-container--open .select2-selection--single,
.map-sidebar .select2-container--default.select2-container--focus .select2-selection--single {
    border-color:var(--mds-color-main);
}
.select2-dropdown { border:1px solid #d2d6de; border-radius:0; }
.select2-dropdown.select2-dropdown--below { margin-top:0; }
.select2-search--dropdown { padding:10px; }
.select2-container--default .select2-search--dropdown .select2-search__field {
    min-height:42px;
    border:1px solid var(--mds-color-main) !important;
    border-radius:0;
    padding:8px 10px;
    font-size:14px;
}
.select2-results__option {
    padding:12px 14px;
    font-size:14px;
}
.select2-container--default .select2-results__option[aria-selected=true] {
    background:#ddd;
    color:#444;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background:var(--mds-color-main);
    color:#fff;
}

/* IP card grid */
.ip-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.ip-card { background:#fff; border:1px solid #eee; border-radius:8px; overflow:hidden; transition:box-shadow .2s, transform .2s; }
.ip-card:hover { box-shadow:0 6px 18px rgba(0,0,0,.08); transform:translateY(-2px); }
.ip-card-link { display:block; color:inherit; text-decoration:none; }
.ip-card-img { position:relative; aspect-ratio:16/9; overflow:hidden; background:#f4f4f4; }
.ip-card-img.no-img::before { content:"\f1ad"; font-family:"FontAwesome"; font-size:48px; color:#ccc; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
.ip-card-img img { width:100%; height:100%; object-fit:cover; display:block; }
.ip-card-badges { position:absolute; top:8px; left:8px; display:flex; gap:4px; }
.ip-card-badges .badge { padding:3px 8px; font-size:11px; font-weight:700; border-radius:3px; color:#fff; }
.badge-hot { background:#e74c3c; }
.badge-pro { background:#f39c12; }
.ip-card-body { padding:14px 16px; }
.ip-card-title { font-size:16px; font-weight:600; margin:0 0 8px; line-height:1.35; color:#222; }
.ip-card-meta { display:flex; flex-direction:column; gap:4px; font-size:12px; color:#888; margin-bottom:8px; }
.ip-card-meta span { display:inline-flex; align-items:center; gap:5px; min-width:0; }
.ip-card-meta i { color:#aaa; flex-shrink:0; }
/* Address / investor: single line with ellipsis so cards stay tidy */
.ip-card-addr, .ip-card-investor { max-width:100%; }
.ip-card-addr > :not(i), .ip-card-investor > :not(i) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-card-addr, .ip-card-investor { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* Short description — clamp to max 2 lines */
.ip-card-summary {
    font-size:13px; color:#555; margin:0; line-height:1.45;
    display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
    overflow:hidden !important; text-overflow:ellipsis;
    max-height:2.9em; /* fallback cap ≈ 2 lines if line-clamp unsupported */
}
.ip-card-link:hover .ip-card-title { color:var(--mds-color-main); }

.rank-page-header {
    align-items:flex-end;
    border-bottom:1px solid #eaeaef;
    margin-bottom:18px;
    padding-bottom:18px;
}

.rank-page-wrap {
    max-width:1320px;
    padding-bottom:30px;
}

.rank-page-header .industrial-page-lead {
    max-width:720px;
}

.rank-action-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:40px;
    padding:0 14px;
    border:1px solid #dfe0e6;
    border-radius:3px;
    background:#fff;
    color:#333;
    font-size:14px;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    transition:background .18s ease, border-color .18s ease, color .18s ease;
}

.rank-action-btn svg {
    width:16px;
    height:16px;
    fill:currentColor;
    flex:0 0 auto;
}

.rank-action-btn:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    text-decoration:none;
}

.rank-action-btn-primary {
    border-color:var(--mds-color-main);
    background:var(--mds-color-main);
    color:#fff;
}

.rank-action-btn-primary:hover {
    background:#008f84;
    border-color:#008f84;
    color:#fff;
}

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

.rank-summary-card {
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    padding:12px;
}

.rank-summary-icon,
.rank-block-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #eaeaef;
    border-radius:3px;
    background:#f9fcfc;
    color:var(--mds-color-main);
    flex:0 0 auto;
}

.rank-summary-icon {
    width:36px;
    height:36px;
}

.rank-block-icon {
    width:30px;
    height:30px;
}

.rank-summary-icon svg,
.rank-block-icon svg {
    width:17px;
    height:17px;
    fill:currentColor;
}

.rank-summary-body {
    display:block;
    min-width:0;
}

.rank-summary-body strong {
    display:block;
    color:#222;
    font-size:13px;
    font-weight:700;
    line-height:1.35;
}

.rank-summary-body small {
    display:block;
    margin-top:3px;
    color:#777;
    font-size:12px;
    line-height:1.35;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.rank-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
}

.rank-block {
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    box-shadow:none;
    overflow:hidden;
}

.rank-block h3 {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:58px;
    margin:0;
    padding:13px 15px;
    border-bottom:1px solid #eaeaef;
    color:#222;
    font-size:15px;
    font-weight:700;
    line-height:1.35;
}

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

.rank-list li {
    display:grid;
    grid-template-columns:30px minmax(0, 1fr) max-content;
    align-items:center;
    gap:10px;
    min-height:56px;
    padding:10px 14px;
    border-bottom:1px solid #f0f0f2;
}

.rank-list li:last-child {
    border-bottom:0;
}

.rank-list li:hover {
    background:#fafafa;
}

.rank-list li.empty {
    display:block;
    color:#888;
    text-align:center;
    padding:20px 14px;
}

.rank-list .rk {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    background:#f7f7f7;
    border:1px solid #eaeaef;
    border-radius:3px;
    color:#555;
    font-size:13px;
    font-weight:700;
}

.rank-list li:first-child .rk {
    background:var(--mds-color-main);
    border-color:var(--mds-color-main);
    color:#fff;
}

.rank-list .nm {
    min-width:0;
    color:#333;
    font-size:14px;
    font-weight:600;
    line-height:1.35;
    text-decoration:none;
}

.rank-list .nm small {
    display:block;
    margin-top:3px;
    color:#777;
    font-size:12px;
    font-weight:400;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.rank-list .nm:hover {
    color:var(--mds-color-main);
}

.rank-list .vl {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 9px;
    border:1px solid #eaeaef;
    border-radius:3px;
    background:#f9fcfc;
    color:var(--mds-color-main);
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
    text-align:right;
}

@media (max-width: 1024px) {
    .rank-summary-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .rank-page-header {
        align-items:flex-start;
    }

    .rank-page-header .industrial-page-actions,
    .rank-action-btn {
        width:100%;
    }

    .rank-summary-grid,
    .rank-grid {
        grid-template-columns:1fr;
    }
}

@media (max-width: 520px) {
    .rank-list li {
        grid-template-columns:30px minmax(0, 1fr);
        align-items:flex-start;
    }

    .rank-list .vl {
        grid-column:2;
        justify-self:flex-start;
    }
}

.industrial-table-wrap { overflow-x:auto; border:1px solid #e8edf3; border-radius:10px; background:#fff; box-shadow:0 8px 22px rgba(18, 38, 63, .04); }
.company-table { min-width:860px; margin:0; }
.company-table th { background:#f8fafc; color:#556372; font-size:12px; text-transform:uppercase; letter-spacing:.3px; }
.company-table td { vertical-align:top; }
.company-table .title-cell strong { display:block; font-size:14px; color:#27313b; margin-bottom:2px; }
.company-table .title-cell .meta { display:block; margin-top:4px; }
.company-table a { color:var(--mds-color-main); text-decoration:none; font-weight:600; }
.company-table a:hover { text-decoration:underline; }
.company-link-out { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; background:#f4f8f8; border:1px solid #dbe7e6; }
.company-link-out:hover { background:#eef7f6; border-color:var(--mds-color-main); text-decoration:none !important; }

.industry-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }
.industry-card { display:block; padding:16px 18px; background:#fff; border:1px solid #e8edf3; border-radius:10px; text-decoration:none; color:inherit; transition:box-shadow .2s, transform .2s, border-color .2s; box-shadow:0 8px 22px rgba(18, 38, 63, .04); }
.industry-card:hover { box-shadow:0 8px 22px rgba(18, 38, 63, .08); transform:translateY(-2px); border-color:rgba(0,0,0,.08); }
.industry-name { font-weight:600; font-size:15px; color:#333; margin-bottom:10px; min-height:40px; line-height:1.45; }
.industry-bar { height:6px; background:#edf3f3; border-radius:3px; overflow:hidden; margin-bottom:8px; }
.industry-bar span { display:block; height:100%; background:var(--mds-color-main); }
.industry-count { font-size:13px; color:var(--mds-color-main); font-weight:600; }

/* Empty state */
.industrial-empty { padding:60px 20px; text-align:center; color:#999; border:2px dashed #eee; border-radius:8px; }

/* Pagination */
.industrial-pagination { margin-top:30px; display:flex; justify-content:center; }
.industrial-pagination nav { width:auto; }
.industrial-pagination .pagination { display:flex; gap:6px; list-style:none; padding:0; margin:0; align-items:center; flex-wrap:wrap; }
.industrial-pagination .page-item { margin:0; }
/* target both <a> and <span> variants CI4 outputs, with high specificity to beat theme defaults */
.industrial-pagination .page-item .page-link,
.industrial-pagination .page-item > a,
.industrial-pagination .page-item > span {
    display:flex; align-items:center; justify-content:center;
    min-width:40px; height:40px; padding:0 12px;
    border:1px solid #e3e0ee; border-radius:8px;
    color:#555; background:#fff; text-decoration:none;
    font-weight:600; font-size:14px; line-height:1;
    box-shadow:none; transition:all .15s;
}
.industrial-pagination .page-item .page-link:hover,
.industrial-pagination .page-item > a:hover { background:#f8fbfb; border-color:var(--mds-color-main); color:var(--mds-color-main); }
.industrial-pagination .page-item.active .page-link,
.industrial-pagination .page-item.active > a,
.industrial-pagination .page-item.active > span {
    background:var(--mds-color-main) !important; color:#fff !important; border-color:var(--mds-color-main) !important;
}
.industrial-pagination .page-item.disabled .page-link,
.industrial-pagination .page-item.disabled > span { color:#bbb; background:#fafafa; border-color:#eee; cursor:default; }

/* Detail page */
.ip-detail-page {
    --ip-detail-sidebar-width:260px;
    --ip-detail-column-gap:28px;
}
.ip-svg { display:inline-block; vertical-align:-2px; flex:0 0 auto; }
.ip-detail-header { display:flex; gap:30px; flex-wrap:wrap; margin:4px 0 22px; align-items:flex-start; }
.ip-detail-header .img { flex:0 0 365px; max-width:100%; aspect-ratio:16/10; background:#f7f7f7; border:1px solid #edf0f2; border-radius:3px; overflow:hidden; }
.ip-detail-header .img img { width:100%; height:100%; object-fit:cover; }
.ip-detail-header .info { flex:1; min-width:280px; padding-top:2px; }
.ip-detail-header h1 { font-size:28px; line-height:1.28; font-weight:500; margin:0 0 12px; color:#222; }
.ip-detail-header .meta-row { display:flex; flex-wrap:wrap; gap:8px 20px; margin-bottom:14px; font-size:14px; color:#666; }
.ip-detail-header .meta-row span { display:inline-flex; align-items:center; gap:5px; }
.ip-detail-header .meta-row i { color:#aaa; }
.ip-detail-header .meta-row strong { color:#222; font-weight:600; }
.ip-detail-header .meta-row a { color:#555; text-decoration:none; }
.ip-detail-header .meta-row a:hover { color:var(--mds-color-main); }
.ip-detail-header .info > p { margin:0 0 16px; color:#555; line-height:1.6 !important; }
.ip-detail-header .stat-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:10px; margin-top:14px; }
.ip-detail-header .stat { background:#fafafa; border:1px solid #f0f0f0; padding:13px 14px; border-radius:3px; }
.ip-detail-header .stat .label { font-size:11px; color:#777; text-transform:uppercase; font-weight:700; letter-spacing:.2px; }
.ip-detail-header .stat .value { font-size:18px; font-weight:600; color:#222; margin-top:4px; }

.ip-detail-profile-cover {
    margin:0;
    padding:0;
}

.ip-detail-profile-cover .row {
    margin:0;
}

.ip-detail-profile-cover-link {
    position:relative;
    display:block;
    width:100%;
    height:400px;
    overflow:hidden;
    background:#f7f7f7;
    cursor:zoom-in;
}

.ip-detail-profile-cover-link::after {
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:44%;
    background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.34));
    pointer-events:none;
}

.ip-detail-profile-cover-link img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.ip-detail-gallery-count {
    position:absolute;
    right:20px;
    bottom:18px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:30px;
    padding:0 12px;
    border:1px solid rgba(255,255,255,.26);
    border-radius:3px;
    background:rgba(0,0,0,.52);
    color:#fff;
    font-size:12px;
    font-weight:700;
}

.ip-detail-gallery-count .ip-svg {
    stroke:#fff;
}

.ip-detail-page-profile-cover .industrial-wrap {
    padding-top:0;
}

.ip-detail-page-profile-cover .ip-detail-profile-top {
    display:block;
    float:left;
    width:100%;
    margin:0 0 45px;
    gap:0;
    flex-wrap:nowrap;
}

.ip-detail-page-profile-cover .ip-detail-profile-top::after,
.ip-detail-page-profile-cover .ip-detail-profile-details::after {
    content:"";
    display:block;
    clear:both;
}

.ip-detail-page-profile-cover .ip-detail-profile-details {
    width:100%;
    display:table;
    position:relative;
    float:left;
}

.ip-detail-page-profile-cover .ip-detail-profile-details .left {
    display:table-cell;
    vertical-align:top;
    text-align:left;
    width:var(--ip-detail-sidebar-width);
    padding-right:var(--ip-detail-column-gap);
}

.ip-detail-page-profile-cover .ip-detail-profile-details .right,
.ip-detail-page-profile-cover .ip-detail-profile-details .info {
    display:table-cell;
    vertical-align:top;
    width:auto;
    flex:initial;
    flex-basis:auto;
    min-width:0;
    padding-top:0;
}

.ip-profile-avatar {
    display:block;
    width:180px;
    height:180px;
    border-radius:4px;
    overflow:hidden;
    background:#fbfbfb;
}

.ip-profile-avatar .img-profile {
    width:180px;
    height:180px;
    border-radius:4px;
    object-fit:cover;
    display:block;
}

.ip-detail-page-profile-cover .ip-detail-header h1 {
    font-size:26px;
    line-height:26px;
    font-weight:600;
    margin:0 0 8px !important;
    color:#222;
    width:auto;
    word-break:break-word;
}

.ip-detail-page-profile-cover .ip-detail-header .meta-row {
    display:block;
    margin:0 0 10px;
    font-size:14px;
    color:#6A6A6A;
}

.ip-detail-page-profile-cover .ip-detail-header .meta-row span {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-right:15px;
    padding-right:15px;
    border-right:1px solid #E1E3DF;
    margin-bottom:8px;
}

.ip-detail-page-profile-cover .ip-detail-header .meta-row span:last-child {
    border-right:0;
}

.ip-detail-page-profile-cover .ip-detail-header .meta-row .ip-svg {
    color:#777;
}

.ip-detail-page-profile-cover .ip-detail-header .info > p {
    line-height:24px !important;
    margin:0 0 12px;
    max-width:920px;
}

.ip-detail-page-profile-cover .ip-detail-header .stat-grid {
    grid-template-columns:repeat(auto-fit, minmax(150px, max-content));
    gap:8px;
    margin-top:10px;
}

.ip-detail-page-profile-cover .ip-detail-header .stat {
    padding:10px 13px;
    border:1px solid #e8e8e8;
    border-radius:3px;
    background:#fff;
}

.ip-detail-page-profile-cover .ip-detail-header .stat .value {
    font-size:16px;
}

.ip-detail-page-profile-cover .ip-detail-actions-profile {
    margin:18px 0 0;
    line-height:1;
    gap:10px;
}

.ip-profile-cta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px 16px;
    padding:12px;
    border:1px solid #e8e8ee;
    border-radius:4px;
    background:#fbfcfd;
}

.ip-profile-cta-main,
.ip-profile-cta-tools {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.ip-profile-cta-main {
    flex:1 1 320px;
}

.ip-profile-cta-tools {
    justify-content:flex-end;
    flex:0 1 auto;
}

.ip-profile-primary-cta,
.ip-detail-actions button.ip-profile-primary-cta {
    min-height:42px;
    height:42px;
    padding:0 18px;
    font-weight:700;
}

.ip-profile-primary-cta .ip-svg {
    width:16px;
    height:16px;
}

.ip-profile-quick-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:42px;
    padding:0 14px;
    border:1px solid #dfe0e6;
    border-radius:3px;
    background:#fff;
    color:#444;
    font-size:13px;
    font-weight:600;
    text-decoration:none;
    transition:border-color .15s, color .15s, background .15s;
}

.ip-profile-quick-link:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    text-decoration:none;
    background:#fff;
}

.ip-profile-tool-btn,
.ip-detail-actions .ip-profile-tool-btn,
.ip-detail-actions .sl-btn.ip-profile-tool-btn {
    min-height:38px;
    height:38px;
    padding:0 12px;
    border-radius:3px;
    font-size:13px;
    font-weight:600;
}

.ip-detail-actions .industrial-compare-link.ip-profile-compare-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-height:38px;
    padding:0 10px;
    border:1px solid transparent;
    border-radius:3px;
    color:#666;
    font-size:13px;
    line-height:1;
    text-decoration:none;
}

.ip-detail-actions .industrial-compare-link.ip-profile-compare-link:hover {
    border-color:#dfe0e6;
    background:#fff;
    color:var(--mds-color-main);
}

.ip-detail-actions .industrial-compare-link.ip-profile-compare-link .industrial-compare-count {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    background:rgba(0,169,157,.12);
    color:var(--mds-color-main);
    font-size:12px;
    font-weight:700;
}

.ip-profile-cta-compact {
    --ip-profile-cta-height:42px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:14px 0 0;
    padding:0;
    border:0;
    background:transparent;
    width:auto;
    justify-content:flex-start;
}

.ip-profile-more-wrap {
    position:relative;
    display:inline-flex;
}

.ip-profile-more-btn {
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:var(--ip-profile-cta-height);
    min-width:var(--ip-profile-cta-height);
    height:var(--ip-profile-cta-height);
    min-height:var(--ip-profile-cta-height);
    max-height:var(--ip-profile-cta-height);
    padding:0;
    border:1px solid #dfe0e6;
    border-radius:3px;
    background:#fff;
    color:#444;
    line-height:1;
    cursor:pointer;
    transition:border-color .15s, color .15s, background .15s;
}

.ip-profile-more-btn:hover,
.ip-profile-more-btn[aria-expanded="true"] {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    background:#fff;
}

.ip-profile-more-menu {
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    z-index:80;
    width:210px;
    padding:6px;
    border:1px solid #e2e4ea;
    border-radius:4px;
    background:#fff;
    box-shadow:0 12px 30px rgba(27,31,38,.14);
}

.ip-profile-more-menu::before {
    content:"";
    position:absolute;
    top:-6px;
    right:14px;
    width:10px;
    height:10px;
    border-left:1px solid #e2e4ea;
    border-top:1px solid #e2e4ea;
    background:#fff;
    transform:rotate(45deg);
}

.ip-profile-more-menu[hidden] {
    display:none !important;
}

.ip-detail-actions .ip-profile-menu-action,
.ip-profile-more-menu .ip-profile-menu-action,
.ip-profile-more-menu a.ip-profile-menu-action,
.ip-profile-more-menu button.ip-profile-menu-action {
    position:relative !important;
    top:auto !important;
    right:auto !important;
    display:flex !important;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    width:100% !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 10px !important;
    border:0 !important;
    border-radius:3px !important;
    background:#fff !important;
    color:#444 !important;
    font-size:13px;
    font-weight:600;
    line-height:1;
    text-align:left;
    text-decoration:none;
    box-shadow:none !important;
    transform:none !important;
}

.ip-profile-more-menu .ip-profile-menu-action:hover {
    background:#f8fbfb !important;
    color:var(--mds-color-main) !important;
}

@media (max-width: 768px) {
    .ip-detail-profile-cover-link {
        height:240px;
    }

    .ip-detail-page-profile-cover .ip-detail-profile-details,
    .ip-detail-page-profile-cover .ip-detail-profile-details .left,
    .ip-detail-page-profile-cover .ip-detail-profile-details .right,
    .ip-detail-page-profile-cover .ip-detail-profile-details .info {
        display:block;
        width:100%;
    }

    .ip-detail-page-profile-cover .ip-detail-profile-details .left {
        padding-right:0;
        margin-bottom:16px;
    }

    .ip-detail-page-profile-cover .ip-detail-header .meta-row span {
        border-right:0;
        padding-right:0;
    }

    .ip-profile-cta {
        align-items:stretch;
    }

    .ip-profile-cta-main,
    .ip-profile-cta-tools,
    .ip-profile-primary-cta,
    .ip-profile-quick-link {
        width:100%;
    }

    .ip-profile-cta-tools {
        justify-content:flex-start;
    }

    .ip-profile-cta-compact,
    .ip-profile-cta-compact .ip-profile-primary-cta {
        width:auto;
    }

    .ip-profile-cta-compact {
        width:100%;
        justify-content:flex-start;
    }

    .ip-profile-more-wrap {
        flex:0 0 42px;
    }

    .ip-profile-more-menu {
        left:auto;
        right:0;
        width:min(260px, calc(100vw - 40px));
    }

    .ip-detail-gallery-count {
        right:12px;
        bottom:12px;
    }
}

.ip-detail-actions { display:flex; gap:8px; align-items:center; margin:14px 0; flex-wrap:wrap; }
.ip-detail-actions .industrial-compare-add,
.ip-header-inquiry-btn,
.ip-detail-export {
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    min-height:36px; padding:0 14px; border-radius:3px;
    font-size:13px; font-weight:600; cursor:pointer; text-decoration:none;
    transition:background .15s, border-color .15s, color .15s;
}
.ip-detail-actions .industrial-compare-add { background:#fff; color:#555; border:1px solid #d8d8d8; }
.ip-detail-actions .industrial-compare-add:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); }
button.ip-header-inquiry-btn,
.ip-detail-actions button.ip-header-inquiry-btn {
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:38px;
    height:38px;
    padding:0 16px;
    border-radius:3px;
    border:1px solid var(--mds-color-main) !important;
    background:var(--mds-color-main) !important;
    color:#fff !important;
    font-family:inherit;
    font-size:13px;
    font-weight:600;
    line-height:1;
    cursor:pointer;
    text-decoration:none;
    box-shadow:none;
    outline:0;
    transition:filter .15s, background .15s, border-color .15s;
}
button.ip-header-inquiry-btn svg,
.ip-detail-actions button.ip-header-inquiry-btn svg {
    width:14px;
    height:14px;
    flex-shrink:0;
    stroke:currentColor;
}
button.ip-header-inquiry-btn:hover,
.ip-detail-actions button.ip-header-inquiry-btn:hover {
    color:#fff !important;
    filter:brightness(94%);
}
button.ip-header-inquiry-btn:focus,
.ip-detail-actions button.ip-header-inquiry-btn:focus {
    border-color:var(--mds-color-main) !important;
    box-shadow:0 0 0 2px rgba(13,148,136,.12);
}
.ip-detail-actions .industrial-compare-link { font-size:13px; color:#555; text-decoration:none; }
.ip-detail-actions .industrial-compare-link:hover { color:var(--mds-color-main); }
.ip-detail-actions .sl-btn {
    position:relative; top:auto; right:auto; width:auto; height:36px;
    padding:0 14px; border-radius:3px; border:1px solid #d8d8d8;
    background:#fff; gap:7px; font-size:13px; font-weight:600; color:#555;
    box-shadow:none; transform:none;
}
.ip-detail-actions .sl-btn:hover { color:#e91e63; border-color:#e91e63; transform:none; }
.ip-detail-actions .sl-btn i { color:#e91e63; }
.ip-detail-export { background:var(--mds-color-main); border:1px solid var(--mds-color-main); color:#fff; }
.ip-detail-export:hover { color:#fff; filter:brightness(.96); }

/* ── Revamped IP detail action dock (boxed layout) ───────────────── */
.ip-action-dock {
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    margin:16px 0 22px; padding:14px 16px;
    background:#fff; border:1px solid #e6e8ee; border-radius:12px;
    box-shadow:0 8px 24px rgba(31,41,55,.06);
}
.ip-action-dock-primary { display:flex; flex:0 0 auto; }
.ip-action-dock-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-left:auto; }

/* Primary CTA — larger / rounder than the global inquiry button */
.ip-action-dock .ip-action-cta {
    min-height:46px !important; height:auto !important; padding:0 22px !important;
    border-radius:10px !important; font-size:14px !important; font-weight:700 !important;
    box-shadow:0 6px 16px rgba(13,148,136,.22);
}
.ip-action-dock .ip-action-cta svg { width:17px; height:17px; }

/* Tool buttons — outline pills */
.ip-action-dock .ip-action-tool {
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    min-height:42px; padding:0 15px; border-radius:10px;
    border:1px solid #dfe2e9; background:#fff; color:#4b5563;
    font-size:13px; font-weight:600; cursor:pointer; text-decoration:none; line-height:1;
    transition:border-color .15s, color .15s, background .15s, box-shadow .15s, transform .12s;
}
.ip-action-dock .ip-action-tool svg { width:16px; height:16px; flex:0 0 auto; }
.ip-action-dock .ip-action-tool:hover {
    border-color:var(--mds-color-main); color:var(--mds-color-main);
    background:#f4fbfa; transform:translateY(-1px);
}
/* Compare button "added" state (toggled by JS) */
.ip-action-dock .industrial-compare-add.is-added {
    border-color:var(--mds-color-main); color:#fff; background:var(--mds-color-main);
}
/* Export as ghost tool — override the global accent !important rules */
.ip-action-dock a.ip-detail-export.ip-action-tool {
    background:#fff !important; border:1px solid #dfe2e9 !important; color:#4b5563 !important;
    min-height:42px !important; border-radius:10px !important; font-weight:600 !important; filter:none;
}
.ip-action-dock a.ip-detail-export.ip-action-tool:hover {
    border-color:var(--mds-color-main) !important; color:var(--mds-color-main) !important;
    background:#f4fbfa !important; filter:none;
}
/* Shortlist active (heart filled red) */
.ip-action-dock .sl-btn.ip-action-tool.sl-active {
    border-color:#ef4444; color:#ef4444; background:#fef2f2;
}
.ip-action-dock .sl-btn.ip-action-tool.sl-active svg { fill:#ef4444; }

/* Compare count badge */
.ip-action-dock .ip-action-count {
    display:inline-flex; align-items:center; gap:6px; min-height:42px; padding:0 10px;
    border-radius:10px; background:transparent; border:1px solid transparent;
    font-size:13px; font-weight:700; color:#9aa1ad; text-decoration:none;
    transition:color .15s;
}
.ip-action-dock .ip-action-count .industrial-compare-count {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:22px; height:22px; padding:0 6px; border-radius:11px;
    background:#e6e8ee; color:#6b7280; font-size:12px; font-weight:800; transition:background .15s, color .15s;
}
.ip-action-dock .ip-action-count.has-items .industrial-compare-count { background:var(--mds-color-main); color:#fff; }
.ip-action-dock .ip-action-count.has-items { color:var(--mds-color-main); }
.ip-action-dock .ip-action-count:hover { color:var(--mds-color-main); }
.ip-action-dock .ip-action-count-go { font-size:14px; line-height:1; }
.ip-action-dock .ip-action-count:not(.has-items) .ip-action-count-go { display:none; }

@media (max-width:640px) {
    .ip-action-dock { gap:10px; padding:12px; }
    .ip-action-dock-primary { flex:1 1 100%; }
    .ip-action-dock .ip-action-cta { width:100%; }
    .ip-action-dock-tools { margin-left:0; width:100%; }
    .ip-action-dock .ip-action-tool { flex:1 1 auto; }
    .ip-action-dock .ip-action-count { flex:0 0 auto; }
}

.ip-incentive-card {
    display:flex; align-items:center; gap:14px; padding:14px 16px;
    background:#f8fbfb; border:1px solid #e3eeee; border-radius:3px;
    margin:0 0 18px; flex-wrap:wrap;
}
.ip-incentive-copy { flex:1; min-width:200px; }
.ip-incentive-title { font-size:13px; font-weight:700; color:#333; margin-bottom:3px; }
.ip-incentive-title i { color:var(--mds-color-main); margin-right:5px; }
.ip-incentive-hint { font-size:12px; color:#777; line-height:1.45; }
.ip-incentive-btn {
    display:inline-flex; align-items:center; gap:7px; padding:9px 16px;
    background:var(--mds-color-main); color:#fff; border-radius:3px;
    text-decoration:none; font-weight:600; font-size:13px; white-space:nowrap; flex-shrink:0;
}
.ip-incentive-btn:hover { color:#fff; filter:brightness(.96); }

/* Tabs */
.industrial-tabs { position:sticky; top:0; z-index:40; background:#fff; border-bottom:1px solid #eee; display:flex; gap:0; margin-bottom:20px; overflow-x:auto; box-shadow:0 2px 6px rgba(0,0,0,.05); }
.industrial-tabs a { padding:12px 16px; color:#666; text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; font-weight:500; }
.industrial-tabs a:hover { color:var(--mds-color-main); }
.industrial-tabs a.active { color:var(--mds-color-main); border-bottom-color:var(--mds-color-main); }
.ip-detail-tab-layout {
    display:grid;
    grid-template-columns:var(--ip-detail-sidebar-width) minmax(0, 1fr);
    gap:var(--ip-detail-column-gap);
    align-items:start;
    margin-top:18px;
    clear:both;
    width:100%;
}
.ip-detail-tab-sidebar {
    position:sticky;
    top:84px;
    z-index:20;
    max-height:calc(100vh - 104px);
    overflow-y:auto;
    padding:8px;
    border:1px solid #eaeaef;
    border-radius:4px;
    background:#fff;
}
.ip-detail-tab-layout .industrial-tabs {
    position:relative;
    top:auto;
    z-index:20;
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:0;
    max-height:none;
    overflow:visible;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.ip-detail-tab-sidebar .ip-incentive-card-sidebar {
    display:block;
    margin:10px 0 0;
    padding:14px;
    border-color:#e4eeee;
    background:#f8fbfb;
}
.ip-detail-tab-sidebar .ip-incentive-copy {
    min-width:0;
}
.ip-detail-tab-sidebar .ip-incentive-title {
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:6px;
    line-height:1.35;
}
.ip-detail-tab-sidebar .ip-incentive-title i {
    margin-right:0;
}
.ip-detail-tab-sidebar .ip-incentive-hint {
    margin-bottom:12px;
}
.ip-detail-tab-sidebar .ip-incentive-btn {
    width:100%;
    justify-content:center;
    min-height:38px;
    padding:9px 12px;
}
.ip-detail-tab-layout .industrial-tabs a {
    display:flex;
    align-items:center;
    min-height:40px;
    padding:10px 12px;
    border:0;
    border-radius:3px;
    margin:0;
    color:#555;
    font-size:13px;
    line-height:1.35;
    white-space:normal;
}
.ip-detail-tab-layout .industrial-tabs a:hover {
    background:#f8fbfb;
    color:var(--mds-color-main);
}
.ip-detail-tab-layout .industrial-tabs a.active {
    background:rgba(0,169,157,.1);
    color:var(--mds-color-main);
    border:0;
    font-weight:700;
}
.ip-detail-tab-main {
    min-width:0;
}
.industrial-tab-section { padding:20px 0; scroll-margin-top:64px; }
.industrial-tab-section h2 { font-size:20px; font-weight:500; color:#333; margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid #eee; }
.industrial-tab-section h3 { font-size:16px; font-weight:600; color:#444; margin:18px 0 8px; }
.industrial-content { line-height:1.7; color:#444; }
.industrial-content img { max-width:100%; height:auto; }
.industrial-content table { width:100%; border-collapse:collapse; margin:10px 0; }
.industrial-content th, .industrial-content td { border:1px solid #ddd; padding:8px 12px; text-align:left; }

@media (max-width: 991px) {
    .ip-detail-tab-layout {
        display:block;
        margin-top:14px;
    }
    .ip-detail-tab-sidebar {
        position:relative;
        top:auto;
        z-index:20;
        max-height:none;
        overflow:visible;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .ip-detail-tab-layout .industrial-tabs {
        top:0;
        flex-direction:row;
        gap:0;
        max-height:none;
        overflow-x:auto;
        overflow-y:hidden;
        margin:0 0 20px;
        padding:0;
        border:0;
        border-bottom:1px solid #eee;
        border-radius:0;
        box-shadow:0 2px 6px rgba(0,0,0,.05);
    }
    .ip-detail-tab-layout .industrial-tabs a {
        min-height:44px;
        padding:12px 16px;
        border-radius:0;
        border-bottom:2px solid transparent;
        white-space:nowrap;
    }
    .ip-detail-tab-layout .industrial-tabs a.active {
        background:#fff;
        border-bottom-color:var(--mds-color-main);
    }
    .ip-detail-tab-sidebar .ip-incentive-card-sidebar {
        display:flex;
        align-items:center;
        gap:14px;
        margin:0 0 18px;
        padding:14px 16px;
        background:#f8fbfb;
        border-color:#e3eeee;
    }
    .ip-detail-tab-sidebar .ip-incentive-hint {
        margin-bottom:0;
    }
    .ip-detail-tab-sidebar .ip-incentive-btn {
        width:auto;
        flex-shrink:0;
    }
}

/* ── IP detail (boxed) — mobile refinements ─────────────────────── */
@media (max-width: 768px) {
    .ip-detail-page-boxed .container { padding-left:14px; padding-right:14px; }
    .ip-detail-page-boxed .ip-detail-header { gap:16px; margin-bottom:16px; }
    .ip-detail-page-boxed .ip-detail-header .img { flex:0 0 100%; max-width:100%; aspect-ratio:16/9; }
    .ip-detail-page-boxed .ip-detail-header .info { min-width:0; width:100%; }
    .ip-detail-page-boxed .ip-detail-header h1 { font-size:22px; line-height:1.3; margin-bottom:10px; }
    .ip-detail-page-boxed .ip-detail-header .meta-row { gap:6px 14px; font-size:13px; margin-bottom:12px; }
    .ip-detail-page-boxed .ip-detail-header .meta-row span { max-width:100%; min-width:0; overflow-wrap:anywhere; }
    .ip-detail-page-boxed .ip-detail-header .meta-row a { overflow-wrap:anywhere; }
    /* Two compact stat tiles per row instead of one tall column */
    .ip-detail-page-boxed .ip-detail-header .stat-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; margin-top:12px; }
    .ip-detail-page-boxed .ip-detail-header .stat { padding:10px 11px; }
    .ip-detail-page-boxed .ip-detail-header .stat .value { font-size:16px; }
    .ip-detail-page-boxed .industrial-tab-section { padding:16px 0; scroll-margin-top:56px; }
    .ip-detail-page-boxed .industrial-tab-section h2 { font-size:18px; }
    .ip-detail-page-boxed .industrial-cominip-table { font-size:12.5px; }
    .ip-detail-page-boxed .industrial-cominip-table th,
    .ip-detail-page-boxed .industrial-cominip-table td { padding:7px 8px; white-space:nowrap; }
}
@media (max-width: 400px) {
    .ip-detail-page-boxed .ip-detail-header h1 { font-size:20px; }
    .ip-detail-page-boxed .ip-detail-header .stat-grid { grid-template-columns:1fr; }
}

/* Province / Region grid */
.province-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:14px; }
.province-card { background:#fff; border:1px solid #eee; border-radius:6px; padding:14px; text-decoration:none; color:inherit; transition:box-shadow .2s; display:flex; align-items:center; gap:12px; }
.province-card:hover { box-shadow:0 4px 14px rgba(0,0,0,.06); }
.province-card img { width:48px; height:48px; object-fit:cover; border-radius:6px; }
.province-card .name { font-weight:600; font-size:14px; }
.province-card .count { font-size:12px; color:#888; }

/* Region intro */
.industrial-intro { background:#fafafa; padding:20px; border-radius:8px; margin-bottom:24px; line-height:1.6; color:#555; }
.industrial-section-title { font-size:20px; margin:24px 0 14px; color:#333; }

/* Companies-in-IP table */
.industrial-cominip-table { width:100%; border-collapse:collapse; font-size:13px; }
.industrial-cominip-table th, .industrial-cominip-table td { border:1px solid #eee; padding:8px 10px; vertical-align:top; }
.industrial-cominip-table th { background:#fafafa; font-weight:600; text-align:left; }
.industrial-cominip-table tbody tr:hover { background:#fafaff; }
.industrial-cominip-table i { color:#888; margin-right:4px; }

/* Diagram-history grid */
.industrial-diagram-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:14px; }
.industrial-diagram-item { background:#fff; border:1px solid #eee; border-radius:6px; overflow:hidden; }
.industrial-diagram-item img { width:100%; height:180px; object-fit:cover; display:block; }
.industrial-diagram-item.no-img img { display:none; }
.industrial-diagram-item .caption { padding:10px 12px; }
.industrial-diagram-item .name { font-weight:600; font-size:14px; color:#333; }
.industrial-diagram-item .date { font-size:12px; color:#888; margin-top:4px; }

/* Compare page */
.industrial-compare-table { width:100%; border-collapse:collapse; font-size:14px; }
.industrial-compare-table th, .industrial-compare-table td { border:1px solid #eee; padding:10px 14px; vertical-align:top; }
.industrial-compare-table th.label { width:200px; background:#fafafa; color:#555; font-weight:600; text-align:left; }
.industrial-compare-table th.ip { background:#f8fbfb; color:var(--mds-color-main); font-weight:700; }
.industrial-compare-table .remove-btn { float:right; color:#999; text-decoration:none; font-size:18px; line-height:1; }
.industrial-compare-table .remove-btn:hover { color:#e74c3c; }
.industrial-compare-empty { padding:60px 20px; text-align:center; color:#888; }

/* Advisor cards */
.advisor-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:18px; }
.advisor-card { background:#fff; border:1px solid #eee; border-radius:8px; padding:18px; text-align:center; }
.advisor-card .photo { width:120px; height:120px; margin:0 auto 12px; border-radius:50%; overflow:hidden; background:#f4f4f4; }
.advisor-card .photo img { width:100%; height:100%; object-fit:cover; }
.advisor-card .name { font-weight:600; font-size:16px; color:#333; }
.advisor-card .position { font-size:13px; color:var(--mds-color-main); margin-top:4px; }
.advisor-card .desc { font-size:13px; color:#666; margin-top:8px; line-height:1.5; }

/* Legal documents table */
.legal-table { width:100%; border-collapse:collapse; font-size:14px; }
.legal-table th, .legal-table td { border:1px solid #eee; padding:10px 12px; }
.legal-table th { background:#fafafa; text-align:left; font-weight:600; }
.legal-table .title-cell strong { color:#333; }
.legal-table .meta { font-size:12px; color:#888; }
.legal-table a.btn-download { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; background:var(--mds-color-main); color:#fff; text-decoration:none; border-radius:3px; font-size:13px; }
.legal-table a.btn-download:hover { background:#6a3eea; }

/* Bulletin cards */
.bulletin-page-wrap {
    max-width:1320px;
    padding-bottom:30px;
}

.bulletin-page-header {
    align-items:flex-end;
    border-bottom:1px solid #eaeaef;
    margin-bottom:18px;
    padding-bottom:18px;
}

.bulletin-count-chip {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:36px;
    padding:0 12px;
    border:1px solid #eaeaef;
    border-radius:3px;
    background:#f9fcfc;
    color:#555;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
}

.bulletin-count-chip svg,
.bulletin-meta-row svg,
.bulletin-read-link svg,
.bulletin-img-placeholder svg {
    fill:currentColor;
    flex:0 0 auto;
}

.bulletin-count-chip svg,
.bulletin-meta-row svg,
.bulletin-read-link svg {
    width:15px;
    height:15px;
}

.bulletin-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
    gap:16px;
}

.bulletin-card {
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-width:0;
    box-shadow:none;
}

.bulletin-card .img {
    position:relative;
    aspect-ratio:16/9;
    background:#f7f7f7;
    border-bottom:1px solid #f0f0f0;
    overflow:hidden;
}

.bulletin-card .img img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.bulletin-img-placeholder {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    color:rgba(255,255,255,0.85);
    background:#1565C0; /* overridden by inline style */
}
.bulletin-img-placeholder svg {
    width:36px;
    height:36px;
    fill:rgba(255,255,255,0.9);
}
.bulletin-img-placeholder .bulletin-no {
    font-size:11px;
    font-weight:700;
    letter-spacing:.5px;
    opacity:.85;
}

.bulletin-card .body {
    padding:14px 15px 15px;
    flex:1;
    display:flex;
    flex-direction:column;
    min-width:0;
}

.bulletin-card .name {
    color:#222;
    font-size:15px;
    line-height:1.4;
    font-weight:600;
    margin:0 0 7px;
}

.bulletin-card .brief {
    margin:0;
    color:#666;
    flex:1;
    font-size:13px;
    line-height:1.55;
}

.bulletin-card .footer {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid #f0f0f2;
    color:#777;
    font-size:12px;
}

.bulletin-meta-row {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 12px;
    min-width:0;
}

.bulletin-meta-row span {
    display:inline-flex;
    align-items:center;
    gap:5px;
    white-space:nowrap;
}

.bulletin-read-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:30px;
    padding:0 10px;
    border:1px solid #eaeaef;
    border-radius:3px;
    background:#fff;
    color:var(--mds-color-main);
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.bulletin-read-link:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    text-decoration:none;
}

@media (max-width: 768px) {
    .bulletin-page-header {
        align-items:flex-start;
    }

    .bulletin-count-chip {
        width:100%;
    }
}

@media (max-width: 520px) {
    .bulletin-grid {
        grid-template-columns:1fr;
    }

    .bulletin-card .footer {
        align-items:flex-start;
        flex-direction:column;
    }
}

/* Investment guide */
.guide-section { background:#fff; border:1px solid #eee; border-radius:8px; padding:24px; margin-bottom:20px; }
.guide-section h2 { color:var(--mds-color-main); margin-top:0; }
.guide-step { display:flex; gap:16px; margin-bottom:16px; }
.guide-step .num { flex:0 0 44px; height:44px; background:var(--mds-color-main); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:18px; }
.guide-step .body h3 { margin:0 0 6px; font-size:16px; color:#333; }
.guide-step .body p { margin:0; color:#666; line-height:1.55; }

/* Occupancy bar + benchmark + industry cluster (IP detail) */
.occ-wrap { margin-top:16px; }
.occ-head { display:flex; justify-content:space-between; font-size:13px; color:#555; margin-bottom:5px; }
.occ-head strong { color:var(--mds-color-main); font-size:15px; }
.occ-bar { height:9px; background:#eeeeee; border-radius:999px; overflow:hidden; }
.occ-bar span { display:block; height:100%; background:var(--mds-color-main); }
.occ-note { font-size:12px; color:#888; margin-top:5px; }
.bench-note { margin-top:12px; padding:9px 12px; border-radius:3px; font-size:13px; border:1px solid transparent; }
.bench-note strong { font-weight:700; }
.bench-good { background:#eef8f1; color:#2e7d32; border-color:#d9efdf; }
.bench-high { background:#fff7ec; color:#d15d00; border-color:#ffe0b8; }
.cluster-wrap { margin-top:16px; }
.cluster-head { font-size:13px; font-weight:700; color:#555; margin-bottom:8px; text-transform:uppercase; letter-spacing:.3px; }
.cluster-row { display:flex; align-items:center; gap:10px; padding:4px 0; text-decoration:none; color:inherit; }
.cluster-row .cl-name { flex:0 0 130px; font-size:13px; color:#444; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cluster-row .cl-bar { flex:1; height:8px; background:#edf3f3; border-radius:4px; overflow:hidden; }
.cluster-row .cl-bar span { display:block; height:100%; background:var(--mds-color-main); }
.cluster-row .cl-cnt { flex:0 0 30px; text-align:right; font-size:12px; color:var(--mds-color-main); font-weight:600; }
.cluster-row:hover .cl-name { color:var(--mds-color-main); }

/* Province profile stats */
.prov-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:16px 0 24px; }
.prov-stat { background:#f7f3ff; border-radius:8px; padding:16px; text-align:center; }
.prov-stat .num { display:block; font-size:26px; font-weight:800; color:#5b34d6; line-height:1; }
.prov-stat .lbl { font-size:12px; color:#888; text-transform:uppercase; margin-top:5px; }

@media (max-width: 768px) {
    .ipho-hero { padding:22px 20px; }
    .ipho-hero-text h2 { font-size:24px; }
    .ipho-hero-stats { width:100%; min-width:0; grid-template-columns:repeat(3, 1fr); }
    .ipho-btn { width:100%; justify-content:center; }
    .industrial-page-actions { width:100%; }
    .btn-map-link,
    .industrial-meta-pill { width:100%; justify-content:center; }
    .industrial-filter-actions { width:100%; min-width:0; }
    .industrial-filter-action-row { width:100%; }
    .industrial-filter-action-row button,
    .industrial-filter-action-row .reset { flex:1; justify-content:center; }
}

.industrial-breadcrumbs a,
.ipho-home .advisor-card .position,
.advisor-card .position,
.guide-section h2,
.occ-head strong,
.cluster-row .cl-cnt,
.cluster-row:hover .cl-name,
.industrial-tabs a:hover,
.industrial-tabs a.active,
.prov-stat .num,
.bulletin-card .footer a,
.industrial-compare-table th.ip { color:var(--mds-color-main); }

.industrial-filter button,
.legal-table a.btn-download,
.guide-step .num,
.industrial-pagination .page-item.active .page-link,
.industrial-pagination .page-item.active > a,
.industrial-pagination .page-item.active > span { background:var(--mds-color-main) !important; border-color:var(--mds-color-main) !important; }

.industrial-filter button:hover,
.legal-table a.btn-download:hover { filter:brightness(.96); }

.cluster-row .cl-bar span { background:var(--mds-color-main); }
.occ-bar span { background:var(--mds-color-main); }

/* ═══════════════════════════════════════════════════════════════
   COMPARE FEATURE — IP card button + floating bar + compare table
   ═══════════════════════════════════════════════════════════════ */

/* ── Compare button on IP card ── */
.ip-card-compare { padding:0 12px 12px; }
.ip-compare-btn {
    display:block; width:100%;
    padding:6px 10px;
    font-size:12px; font-weight:600;
    border:1.5px solid var(--mds-color-main); border-radius:5px;
    background:transparent; color:var(--mds-color-main);
    cursor:pointer; transition:background .15s, color .15s;
    text-align:center;
}
.ip-compare-btn:hover { background:var(--mds-color-main); color:#fff; }
.ip-compare-btn.is-added { background:var(--mds-color-main); color:#fff; border-color:var(--mds-color-main); }

/* ── Floating compare bar ── */
.cmp-bar {
    position:fixed; bottom:0; left:0; right:0; z-index:1200;
    background:#1e1b4b; color:#fff;
    box-shadow:0 -3px 16px rgba(0,0,0,.25);
    padding:10px 20px;
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.cmp-bar-inner { display:flex; align-items:center; gap:14px; width:100%; flex-wrap:wrap; }
.cmp-bar-label { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; white-space:nowrap; }
.cmp-bar-count { background:var(--mds-color-main); color:#fff; border-radius:50%; width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.cmp-bar-thumbs { display:flex; gap:8px; flex:1; flex-wrap:wrap; }
.cmp-bar-thumb { position:relative; display:flex; align-items:center; gap:6px; background:rgba(255,255,255,.1); border-radius:5px; padding:4px 24px 4px 6px; font-size:11px; max-width:160px; }
.cmp-bar-thumb img { width:28px; height:28px; object-fit:cover; border-radius:3px; }
.cmp-bar-thumb-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100px; }
.cmp-bar-thumb-rm { position:absolute; top:3px; right:4px; background:none; border:none; color:rgba(255,255,255,.7); font-size:14px; cursor:pointer; padding:0; line-height:1; }
.cmp-bar-thumb-rm:hover { color:#fff; }
.cmp-bar-actions { display:flex; gap:8px; align-items:center; margin-left:auto; }
.cmp-bar-btn-go { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:5px; background:var(--mds-color-main); color:#fff; text-decoration:none; font-size:13px; font-weight:700; white-space:nowrap; transition:filter .15s; }
.cmp-bar-btn-go:hover { filter:brightness(1.1); color:#fff; }
.cmp-bar-btn-clear { padding:7px 12px; border-radius:5px; border:1.5px solid rgba(255,255,255,.4); background:transparent; color:rgba(255,255,255,.8); font-size:12px; cursor:pointer; transition:border-color .15s,color .15s; }
.cmp-bar-btn-clear:hover { border-color:#fff; color:#fff; }
.cmp-bar-max { width:100%; font-size:12px; color:#fbbf24; font-weight:600; }

/* ══════════════════════════════════════════════════════════════
   COMPARE PAGE LAYOUT
   ══════════════════════════════════════════════════════════════ */
.cmp-page-wrap { max-width:1320px; }

.cmp-page-header { margin-bottom:16px; }
.cmp-page-header-main { display:flex; flex-direction:column; gap:6px; }
.cmp-page-title { display:flex; align-items:center;  margin:0; font-size:24px; color:#222; }
.cmp-page-title .fa { color:var(--mds-color-main); }
.cmp-page-subtitle { margin:0; font-size:14px; color:#6b7a89; line-height:1.6; }
.cmp-page-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.cmp-state { padding:60px 20px; text-align:center; color:#94a3b8; border:1px solid #e6ebf1; border-radius:3px; background:#fff; }
.cmp-state h3 { margin:0 0 8px; color:#4b5563; font-size:22px; }
.cmp-state p { margin:0; font-size:14px; line-height:1.7; }
.cmp-state-icon { font-size:48px; color:#d7dee8; display:block; margin-bottom:16px; }
.cmp-state-spinner { font-size:36px; }

/* ── Page header clear button ── */
.cmp-clear-page-btn { height:36px; padding:0 14px; border-radius:3px; border:1px solid #de524a; background:transparent; color:#de524a; font-size:12px; font-weight:600; cursor:pointer; transition:background .15s,color .15s; }
.cmp-clear-page-btn:hover { background:#dc2626; color:#fff; }

/* ── Province → IP selectors inside every column header ── */
.cmp-col-selectors {
    width:100%; display:flex; flex-direction:column; gap:10px;
    padding:0 0 12px 0; border-bottom:1px solid #e2e8f0; margin-bottom:10px;
}
.cmp-selector-group { text-align:left; }
.cmp-selector-group .control-label { display:block; font-size:12px; color:#5f6b7a; margin-bottom:4px; font-weight:600 !important; }
.cmp-col-selectors .select2-container { width:100% !important; }
.cmp-col-selectors .select2-container--default .select2-selection--single,
.cmp-col-selectors .select2-selection .select2-selection--single {
    border:1px solid #dfe0e6 !important;
    border-radius:2px !important;
    height:36px !important;
    padding:8px 12px !important;
    background:#fff;
}
.cmp-col-selectors .select2-container .select2-selection--single .select2-selection__rendered {
    margin-top:-3px !important;
    padding-left:0;
    padding-right:0;
    color:#495057;
    font-size:13px;
}
.cmp-col-selectors .select2-container--default .select2-selection--single .select2-selection__arrow { height:28px; right:3px; }
.cmp-col-selectors .select2-container--default .select2-selection--single .select2-selection__arrow b { margin-left:-8px !important; margin-top:2px !important; }
.cmp-sel-ip:disabled  { background:#f8f9fc; color:#94a3b8; cursor:not-allowed; }

/* Empty slot: hint below selectors */
.cmp-empty-hint {
    display:flex; flex-direction:column; align-items:center; gap:6px;
    color:#cbd5e1; font-size:12px; padding:16px 0;
}
.cmp-empty-hint .fa { font-size:26px; }

/* Header label column */
.cmp-head-title { vertical-align:top; padding-top:18px; }

/* ══════════════════════════════════════════════════════════════
   COMPARE TABLE — fixed equal-width columns
   ══════════════════════════════════════════════════════════════ */
.cmp-wrap { overflow-x:auto; padding-bottom:90px; border-radius:3px; border:1px solid #e2e8f0; box-shadow:0 1px 4px rgba(0,0,0,.04); }

.cmp-table {
    width:100%; border-collapse:collapse;
    font-size:13.5px; table-layout:fixed;
    background:#fff;
}

/* colgroup column widths */
.cmp-col-label { width:180px; }
.cmp-col-ip    { width:calc((100% - 180px) / 4); }

.cmp-table thead.is-scrolled th { box-shadow:0 2px 8px rgba(0,0,0,.08); }

/* Header TH */
.cmp-label-col {
    background:#f7f8fb; color:#55606e;
    font-size:11px; font-weight:600; text-align:left;
    padding:11px 14px; border-bottom:1px solid #e2e8f0;
    vertical-align:middle; white-space:nowrap;
}
.cmp-sticky { position:sticky; left:0; z-index:5; }
.cmp-label-col.cmp-sticky { z-index:12; background:#f7f8fb; }

/* IP column header cell */
.cmp-ip-col {
    padding:0; vertical-align:top;
    border-left:1px solid #e2e8f0; background:#fff;
}
.cmp-ip-header {
    display:flex; flex-direction:column; align-items:center;
    padding:16px 12px 14px; gap:8px; text-align:center;
    background:#fafbfc; border-bottom:2px solid var(--mds-color-main);
    position:relative; height:100%;
}

/* IP image: fixed height, full width, cover */
.cmp-ip-img-link { display:block; width:100%; }
.cmp-ip-img {
    width:100%; height:130px;
    object-fit:cover; border-radius:7px; display:block;
    transition:opacity .2s;
}
.cmp-ip-img:hover { opacity:.9; }

/* Default image placeholder (same height as real image) */
.cmp-ip-img-placeholder {
    width:100%; height:130px; border-radius:7px;
    background:linear-gradient(135deg, #f8fbfb 0%, #c7d2fe 100%);
    display:flex; align-items:center; justify-content:center;
    color:var(--mds-color-main); font-size:40px;
}

.cmp-ip-name { font-size:13px; font-weight:700; color:#414456; text-decoration:none; line-height:1.4; }
.cmp-ip-name:hover { color:var(--mds-color-main); }
.cmp-ip-province { font-size:11px; color:#64748b; }
.cmp-ip-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; margin-top:4px; }
.cmp-btn-primary { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:0 12px; border-radius:3px; background:var(--mds-color-main); color:#fff; text-decoration:none; font-size:11px; font-weight:700; white-space:nowrap; transition:filter .15s; }
.cmp-btn-primary:hover { filter:brightness(.96); color:#fff; }
.cmp-btn-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:0 12px; border-radius:3px; border:1px solid var(--mds-color-main); color:var(--mds-color-main); text-decoration:none; font-size:11px; font-weight:700; white-space:nowrap; transition:background .15s,color .15s; }
.cmp-btn-secondary:hover { background:var(--mds-color-main); color:#fff; }

/* Remove button */
.cmp-remove-btn {
    position:absolute; top:8px; right:8px;
    background:#f1f3f7; border:none; border-radius:50%;
    width:26px; height:26px; font-size:13px;
    cursor:pointer; color:#64748b;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s, color .15s;
}
.cmp-remove-btn:hover { background:#ef4444; color:#fff; }

/* Empty "add" slot */
.cmp-add-col { background:#f9fafb; }
.cmp-add-slot { display:flex; align-items:center; justify-content:center; min-height:240px; padding:20px; }
.cmp-add-link {
    display:flex; flex-direction:column; align-items:center; gap:10px;
    color:#94a3b8; font-size:13px; cursor:pointer;
    padding:24px 16px; border:2px dashed #cbd5e1; border-radius:10px;
    transition:border-color .15s, color .15s; width:100%; text-align:center;
}
.cmp-add-link .fa { font-size:30px; }
.cmp-add-link:hover { border-color:var(--mds-color-main); color:var(--mds-color-main); }

/* ── Section header rows ── */
.cmp-section > th {
    background:#f5f6fa; color:#55606e;
    font-size:11px; font-weight:700; text-transform:uppercase;
    letter-spacing:.05em; padding:9px 14px;
    border-top:1px solid #e4e7ee; border-bottom:1px solid #e4e7ee;
}
.cmp-section > th .fa { margin-right:6px; }

/* ── Data rows ── */
.cmp-row:nth-child(even) td, .cmp-row:nth-child(even) th { background:#fafbfc; }
.cmp-row:hover td, .cmp-row:hover th { background:#f5f8fb !important; }
.cmp-val-col {
    padding:11px 14px; border-bottom:1px solid #f1f5f9;
    border-left:1px solid #f1f5f9; vertical-align:middle;
    text-align:center; color:#1e293b; word-break:break-word;
}
.cmp-pad-col { background:#f9fafb !important; }

/* ── Typography helpers ── */
.cmp-na   { color:#cbd5e1; font-style:italic; }
.cmp-unit { color:#94a3b8; font-size:11px; margin-left:2px; }
.cmp-sub  { color:#64748b; }
.cmp-tag  { display:inline-block; padding:3px 8px; border-radius:999px; background:#eef7f6; color:var(--mds-color-main); font-size:12px; font-weight:600; }
.cmp-map-link { font-size:12px; color:var(--mds-color-main); }
.cmp-contact-link { color:#1e293b; font-size:12px; word-break:break-all; }
.cmp-contact-link .fa { color:var(--mds-color-main); margin-right:4px; }
.cmp-text-cell { font-size:12px; color:#374151; line-height:1.5; text-align:left; display:block; }

/* ── Best-value badge ── */
.cmp-badge-best {
    display:inline-block; margin-left:4px; padding:2px 6px;
    background:#16a34a; color:#fff; border-radius:10px;
    font-size:10px; font-weight:700; vertical-align:middle;
}

/* ── Occupancy progress bar ── */
.cmp-progress { height:6px; background:#e2e8f0; border-radius:3px; overflow:hidden; margin-bottom:4px; width:80%; margin-left:auto; margin-right:auto; }
.cmp-progress-bar { height:6px; border-radius:3px; transition:width .4s; }

/* ── Responsive ── */
@media (max-width:900px) {
    .cmp-col-label { width:120px; }
    .cmp-label-col { font-size:11px; padding:8px 10px; }
    .cmp-val-col   { padding:8px 10px; font-size:12px; }
    .cmp-sel-province, .cmp-sel-ip { font-size:11px; padding:6px; }
}
@media (max-width:600px) {
    .cmp-bar-thumbs { display:none; }
    .cmp-bar { padding:8px 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   VERIFIED CHECK ICON + TOOLTIP  (next to IP name on detail page)
   ═══════════════════════════════════════════════════════════════ */
.ip-verified-check { position:relative; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:#16a34a; color:#fff; cursor:help; flex-shrink:0; outline:none; vertical-align:middle; }
.ip-verified-check svg { width:14px; height:14px; }
.ip-verified-tip { position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(4px); width:280px; max-width:78vw; background:#fff; color:#555; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.14); padding:12px 14px; font-size:13px; line-height:1.5; font-weight:400; text-align:left; white-space:normal; opacity:0; visibility:hidden; transform:translateX(-50%) translateY(4px); transition:opacity .15s ease, transform .15s ease, visibility 0s linear .15s; z-index:9999; }
.ip-verified-tip strong { display:block; color:#15803d; font-size:14px; margin-bottom:3px; font-weight:700; }
.ip-verified-tip em { display:block; color:#999; font-style:normal; font-size:11px; margin-top:5px; }
.ip-verified-tip::before { content:""; position:absolute; bottom:100%; left:50%; transform:translateX(-50%); border:7px solid transparent; border-bottom-color:#fff; }
.ip-verified-check:hover .ip-verified-tip,
.ip-verified-check:focus .ip-verified-tip,
.ip-verified-check:focus-visible .ip-verified-tip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); transition:opacity .15s ease, transform .15s ease, visibility 0s linear 0s; }

/* ═══════════════════════════════════════════════════════════════
   DOCUMENT LIBRARY  (/document-library)
   ═══════════════════════════════════════════════════════════════ */

/* ── Minimal palette: white / #222 / greys + ONE accent (--mds-color-main) ──
   Restyled to match the product detail page (few colors, clean, monochrome). */

/* Header (slim, no gradient) */
.doclib-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:0 0 18px; margin-bottom:24px; border-bottom:1px solid #ececec; background:#fff; color:#222; border-radius:0; }
.doclib-hero-text { flex:1; min-width:260px; }
.doclib-hero-text h1 { font-size:24px; margin:0 0 4px; color:#222; font-weight:700; }
.doclib-hero-text h1 .fa { display:none; }
.doclib-hero-text p { font-size:14px; color:#888; margin:0; }
.doclib-hero-stats { display:flex; gap:26px; flex-wrap:wrap; }
.doclib-hero-stat { text-align:left; }
.doclib-hero-stat .num { display:block; font-size:22px; font-weight:700; line-height:1; color:#222; }
.doclib-hero-stat .lbl { font-size:11px; color:#999; text-transform:uppercase; letter-spacing:.5px; margin-top:4px; }

/* Category pill tabs */
.doclib-cats { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.doclib-cat-pill {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:7px 14px;
    border-radius:20px;
    border:1.5px solid #e5e7eb;
    background:#fff;
    color:#374151;
    font-size:13px;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
    transition:all .18s;
}
.doclib-cat-pill:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    text-decoration:none;
    background:#fff;
}
.doclib-cat-pill.active {
    background:var(--mds-color-main);
    border-color:var(--mds-color-main);
    color:#fff;
}
.doclib-cat-pill .fa {
    font-size:12px;
    color:currentColor;
}
.doclib-cat-pill .cnt {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 7px;
    border-radius:999px;
    background:#f3f4f6;
    color:#6b7280;
    font-size:11px;
    font-weight:700;
    line-height:1;
}
.doclib-cat-pill.active .cnt {
    background:rgba(255,255,255,.22);
    color:#fff;
}

/* Document table list */
.doclib-table-wrap {
    --doclib-table-cols: minmax(420px,1fr) minmax(76px,max-content) minmax(90px,max-content) minmax(64px,max-content) 76px minmax(126px,max-content);
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    overflow:hidden;
}
.doclib-table-head,
.doclib-row {
    display:grid;
    grid-template-columns:var(--doclib-table-cols);
    gap:12px;
    align-items:center;
}
.doclib-table-head {
    padding:11px 16px;
    background:#fafafa;
    border-bottom:1px solid #eaeaef;
    color:#777;
    font-size:11px;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
}
.doclib-action-label {
    visibility:hidden;
}
.doclib-row {
    padding:14px 16px;
    border-bottom:1px solid #f0f0f0;
    transition:background .15s;
}
.doclib-row:last-child { border-bottom:0; }
.doclib-row:hover { background:#fbfbfb; }
.doclib-doc-cell {
    display:flex;
    align-items:flex-start;
    gap:12px;
    min-width:0;
}
.doclib-ft-icon,
.doclib-ft-pdf, .doclib-ft-word, .doclib-ft-excel,
.doclib-ft-ppt, .doclib-ft-zip, .doclib-ft-file { flex:0 0 46px; height:46px; border-radius:6px; display:flex; align-items:center; justify-content:center; background:#f3f4f6; color:#222; }
.doclib-ft-label { font-size:11px; line-height:1; font-weight:800; letter-spacing:.04em; }
.doclib-doc-main { min-width:0; }
.doclib-status-badges { display:flex; gap:5px; margin-top:6px; }
.doclib-badge { display:inline-block; padding:2px 8px; border-radius:3px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.3px; border:1px solid transparent; }
.doclib-badge-hot { background:#f3f4f6; color:#222; }
.doclib-badge-pro { background:#fff; color:#222; border-color:#222; }
.doclib-card-title { font-size:14px; font-weight:600; color:#222; line-height:1.35; margin:0; text-decoration:none; display:block; }
.doclib-card-title:hover { color:var(--mds-color-main); text-decoration:none; }
.doclib-card-title.no-link { color:#222; cursor:default; }
.doclib-card-summary { font-size:12px; color:#777; line-height:1.45; margin:5px 0 0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.doclib-meta-row { display:flex; flex-wrap:wrap; gap:8px 14px; font-size:12px; color:#999; }
.doclib-meta-row span { display:inline-flex; align-items:center; gap:4px; }
.doclib-meta-row .fa { font-size:11px; color:#bbb; }
.doclib-cat-chip {
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:28px;
    padding:5px 10px;
    border-radius:20px;
    background:#fff;
    color:#374151;
    font-size:12px;
    font-weight:600;
    line-height:1;
    border:1.5px solid #e5e7eb;
    white-space:nowrap;
}
.doclib-table-muted,
.doclib-dl-count {
    color:#777;
    font-size:12px;
}
.doclib-dl-count {
    font-weight:600;
    text-align:center;
}
.doclib-table-action {
    display:flex;
    justify-content:flex-end;
}
.doclib-download-btn { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:8px 14px; background:var(--mds-color-main); color:#fff; border-radius:3px; text-decoration:none; font-weight:500; font-size:13px; transition:filter .15s; }
.doclib-download-btn:hover { filter:brightness(94%); color:#fff; text-decoration:none; }
.doclib-download-btn.no-file { background:#f3f4f6; color:#bbb; cursor:default; pointer-events:none; }
.doclib-dl-count { font-size:12px; color:#999; display:flex; align-items:center; gap:4px; }
.doclib-reset-filter {
    max-width:42px;
    min-width:42px;
    height:40px;
    padding:0 !important;
}
.doclib-reset-filter svg {
    width:16px;
    height:16px;
    stroke:currentColor;
}

/* Empty state */
.doclib-empty { padding:60px 20px; text-align:center; border:1px solid #ececec; border-radius:8px; color:#aaa; }
.doclib-empty i { font-size:40px; margin-bottom:14px; display:block; color:#ddd; }

@media (max-width:640px) {
    .doclib-hero { flex-direction:column; align-items:flex-start; gap:14px; }
    .doclib-hero-text h1 { font-size:20px; }
    .doclib-table-head { display:none; }
    .doclib-row {
        grid-template-columns:1fr;
        gap:10px;
        align-items:start;
    }
    .doclib-table-cat,
    .doclib-table-muted,
    .doclib-dl-count,
    .doclib-table-action {
        padding-left:58px;
        text-align:left;
        justify-content:flex-start;
    }
}

/* ═══════════════════════════════════════════════════════════════
   INCENTIVE FINDER  (/incentive-finder)
   ═══════════════════════════════════════════════════════════════ */

/* Hero banner */
.incf-hero { background:linear-gradient(135deg,var(--mds-color-main) 0%,var(--mds-color-main) 100%); border-radius:12px; padding:32px 36px; margin-bottom:24px; color:#fff; display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.incf-hero-text { flex:1; min-width:260px; }
.incf-hero-text h1 { font-size:28px; margin:0 0 8px; color:#fff; font-weight:800; }
.incf-hero-text p { font-size:15px; color:rgba(255,255,255,.82); margin:0; }
.incf-hero-stats { display:flex; gap:14px; flex-wrap:wrap; }
.incf-hero-stat { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); border-radius:10px; padding:14px 20px; text-align:center; min-width:100px; }
.incf-hero-stat .num { display:block; font-size:26px; font-weight:800; line-height:1; color:#fff; }
.incf-hero-stat .lbl { font-size:11px; color:rgba(255,255,255,.72); text-transform:uppercase; letter-spacing:.6px; margin-top:5px; }

/* Results meta bar */
.incf-results-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:0 0 16px; }
.incf-results-count { font-size:14px; color:#666; }
.incf-results-count strong { color:#222; }
.incf-active-filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.incf-chip { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; background:#f0ebff; border:1px solid #c9b8f5; color:var(--mds-color-main); font-size:12px; font-weight:600; }

/* Card grid */
.incf-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:18px; }
.incf-card { background:#fff; border:1px solid #e8edf3; border-radius:12px; overflow:hidden; transition:box-shadow .2s, transform .2s; box-shadow:0 2px 8px rgba(18,38,63,.04); display:flex; flex-direction:column; }
.incf-card:hover { box-shadow:0 8px 24px rgba(18,38,63,.10); transform:translateY(-2px); }
.incf-card.is-best { border-color:var(--mds-color-main); box-shadow:0 0 0 2px rgba(124,77,255,.18), 0 6px 20px rgba(18,38,63,.08); }

/* Card header */
.incf-card-head { padding:18px 20px 14px; border-bottom:1px solid #f0f2f5; display:flex; align-items:flex-start; gap:14px; }
.incf-cit { flex:0 0 auto; text-align:center; background:linear-gradient(135deg,var(--mds-color-main),var(--mds-color-main)); border-radius:10px; padding:12px 16px; color:#fff; min-width:76px; }
.incf-cit .rate { display:block; font-size:26px; font-weight:900; line-height:1; }
.incf-cit .lbl  { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.5px; margin-top:4px; opacity:.82; }
.incf-card-title-wrap { flex:1; min-width:0; }
.incf-best-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; background:var(--mds-color-main); color:#fff; border-radius:999px; font-size:11px; font-weight:700; margin-bottom:6px; }
.incf-card-name { font-size:15px; font-weight:700; color:#222; margin:0 0 6px; line-height:1.35; }
.incf-card-desc { font-size:13px; color:#666; margin:0; line-height:1.5; }

/* Card body */
.incf-card-body { padding:14px 20px 16px; flex:1; }

/* Year boxes */
.incf-years-row { display:flex; gap:8px; margin-bottom:14px; }
.incf-year-box { flex:1; background:#f8fafc; border:1px solid #e8edf3; border-radius:8px; padding:10px 8px; text-align:center; }
.incf-year-box .num { font-size:20px; font-weight:800; color:var(--mds-color-main); line-height:1; }
.incf-year-box .lbl { font-size:10px; color:#8898a8; margin-top:3px; text-transform:uppercase; letter-spacing:.3px; line-height:1.3; }
.incf-year-box.is-zero .num { color:#d1d5db; }
.incf-year-box.is-zero { background:#fafafa; }

/* Timeline bar */
.incf-timeline { margin-bottom:14px; }
.incf-timeline-bar { display:flex; height:8px; border-radius:4px; overflow:hidden; background:#e8edf3; }
.incf-tl-exempt { background:var(--mds-color-main); }
.incf-tl-half   { background:#dfe0e6; }
.incf-tl-normal { background:#e2e8f0; }
.incf-timeline-labels { display:flex; justify-content:space-between; margin-top:5px; font-size:11px; color:#8898a8; }

/* Applicability tags */
.incf-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.incf-tag { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600; border:1px solid; }
.incf-tag-province { border-color:#b3d4f5; background:#eef6ff; color:#1565c0; }
.incf-tag-career   { border-color:#a7d7c8; background:#e0f2f1; color:#00695c; }
.incf-tag-typeip   { border-color:#ffe082; background:#fffde7; color:#e65100; }
.incf-tag-any      { border-color:#e0e0e0; background:#f5f5f5; color:#9e9e9e; font-weight:500; }

/* Legal basis */
.incf-legal { font-size:12px; color:#8898a8; line-height:1.6; border-top:1px solid #f0f2f5; padding-top:10px; margin-top:4px; }
.incf-legal strong { color:#556372; }

/* Empty state */
.incf-empty { padding:64px 20px; text-align:center; border:2px dashed #e2e8f0; border-radius:10px; color:#9aa5b3; }
.incf-empty i { font-size:42px; margin-bottom:14px; display:block; }

@media (max-width:640px) {
    .incf-hero { padding:22px 18px; }
    .incf-hero-text h1 { font-size:22px; }
    .incf-grid { grid-template-columns:1fr; }
    .incf-hero-stat { min-width:80px; padding:10px 12px; }
    .incf-hero-stat .num { font-size:20px; }
}

/* ══════════════════════════════════════════════════════════════
   Shortlist / Wishlist  (.sl-*)
═══════════════════════════════════════════════════════════════ */
/* Heart button on card */
.sl-btn {
    position:absolute; top:10px; right:10px; z-index:5;
    width:34px; height:34px; border-radius:50%;
    background:rgba(255,255,255,.92); border:1px solid #e0e0e0;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all .18s ease;
    box-shadow:0 2px 6px rgba(0,0,0,.1);
}
.sl-btn:hover { background:#fff; border-color:#e91e63; transform:scale(1.12); }
.sl-btn i { font-size:15px; color:#bbb; transition:color .18s; }
.sl-btn.sl-active i { color:#e91e63; }
.sl-btn.sl-active { border-color:#e91e63; background:#fff5f8; }
/* make ip-card-img relative so button is positioned correctly */
.ip-card-img { position:relative; }

/* Floating shortlist bar */
.sl-bar {
    position:fixed; bottom:0; left:0; right:0; z-index:1040;
    background:linear-gradient(90deg,#222 0%,#333 100%);
    color:#fff;
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px; gap:16px; flex-wrap:wrap;
    box-shadow:0 -4px 16px rgba(26,35,126,.22);
    transform:translateY(100%); transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.sl-bar.sl-bar-visible { transform:translateY(0); }
.sl-bar-left { display:flex; align-items:center; gap:14px; }
.sl-bar-icon { font-size:22px; color:#f48fb1; }
.sl-bar-label { font-size:15px; font-weight:700; }
.sl-bar-label .sl-bar-count { font-size:20px; font-weight:900; color:#f48fb1; margin-right:4px; }
.sl-bar-sub { font-size:12px; opacity:.75; margin-top:2px; }
.sl-bar-actions { display:flex; gap:10px; align-items:center; }
.sl-bar-btn {
    display:inline-flex; align-items:center; gap:7px; padding:9px 18px;
    border-radius:8px; font-weight:700; font-size:14px; cursor:pointer;
    text-decoration:none; border:0; transition:filter .15s, transform .15s;
}
.sl-bar-btn:hover { filter:brightness(.92); transform:translateY(-1px); color:inherit; }
.sl-bar-btn-primary { background:#f48fb1; color:#222; }
.sl-bar-btn-ghost { background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.35); }
.sl-bar-btn-clear { background:transparent; color:rgba(255,255,255,.6); font-size:13px; border:0; padding:6px 10px; }
.sl-bar-btn-clear:hover { color:#fff; }

/* My Shortlist page */
.sl-page-hero {
    background:linear-gradient(135deg,#222 0%,#333 100%);
    border-radius:14px; padding:32px 36px; margin-bottom:28px; color:#fff;
    display:flex; align-items:center; gap:24px; flex-wrap:wrap;
}
.sl-page-hero-icon { font-size:52px; opacity:.35; flex-shrink:0; }
.sl-page-hero-text h1 { font-size:28px; margin:0 0 8px; color:#fff; }
.sl-page-hero-text p { margin:0; opacity:.8; font-size:15px; line-height:1.6; }
.sl-page-actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:24px; }
.sl-action-btn {
    display:inline-flex; align-items:center; gap:8px; padding:10px 20px;
    border-radius:8px; font-weight:700; font-size:14px; cursor:pointer;
    text-decoration:none; border:0; transition:filter .15s, transform .15s;
}
.sl-action-btn:hover { filter:brightness(.93); transform:translateY(-1px); color:inherit; }
.sl-action-btn-compare { background:var(--mds-color-main); color:#fff; }
.sl-action-btn-compare:hover { color:#fff; }
.sl-action-btn-clear { background:#fff; color:#556372; border:1px solid #d6dee8; }
.sl-action-btn-clear:hover { color:#e91e63; border-color:#e91e63; }
.sl-empty-state {
    text-align:center; padding:64px 24px;
    background:#fff; border:1px dashed #d0d7e2; border-radius:12px;
    color:#8898a8;
}
.sl-empty-state i { font-size:56px; opacity:.3; display:block; margin-bottom:18px; }
.sl-empty-state h2 { font-size:20px; color:#4a5568; margin:0 0 10px; }
.sl-empty-state p { font-size:14px; max-width:400px; margin:0 auto 24px; }
.sl-empty-state a {
    display:inline-flex; align-items:center; gap:8px; padding:11px 22px;
    background:var(--mds-color-main); color:#fff; border-radius:8px; text-decoration:none;
    font-weight:700; font-size:14px;
}
.sl-count-bar {
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
    gap:10px; margin-bottom:18px;
    padding-bottom:14px; border-bottom:1px solid #edf1f5;
    font-size:14px; color:#666;
}
.sl-count-bar strong { color:#222; }

/* Inquiry form inside shortlist page */
.sl-inquiry-box {
    background:#f8faff; border:1px solid #c5cae9; border-radius:12px;
    padding:28px 32px; margin-top:32px;
}
.sl-inquiry-box h3 { font-size:18px; color:#222; margin:0 0 18px; }
.sl-inquiry-form { display:flex; flex-direction:column; gap:14px; }
.sl-inquiry-form input,
.sl-inquiry-form textarea {
    padding:10px 13px; border:1px solid #d6dee8; border-radius:7px;
    font-size:14px; width:100%; box-sizing:border-box;
    transition:border-color .15s;
}
.sl-inquiry-form input:focus,
.sl-inquiry-form textarea:focus { border-color:var(--mds-color-main); outline:none; }
.sl-inquiry-form textarea { min-height:90px; resize:vertical; }
.sl-inquiry-form-row { display:flex; gap:12px; flex-wrap:wrap; }
.sl-inquiry-form-row input { flex:1; min-width:180px; }
.sl-inquiry-submit {
    align-self:flex-start; padding:11px 24px; background:#222; color:#fff;
    border:0; border-radius:8px; font-weight:700; font-size:14px; cursor:pointer;
    transition:filter .15s;
}
.sl-inquiry-submit:hover { filter:brightness(.9); }
.sl-inquiry-ips-list { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.sl-inquiry-ip-tag {
    display:inline-flex; align-items:center; gap:6px; padding:4px 12px;
    background:#e8eaf6; color:#222; border-radius:999px; font-size:13px; font-weight:600;
}

/* Responsive */
@media (max-width:768px) {
    .sl-bar { padding:12px 14px; }
    .sl-bar-label { font-size:13px; }
    .sl-bar-btn { padding:8px 13px; font-size:13px; }
    .sl-page-hero { padding:22px 18px; }
    .sl-inquiry-box { padding:20px 16px; }
}

/* ─── Provinces list page ─────────────────────────────────── */
.prov-list-svg {
    width:14px;
    height:14px;
    flex-shrink:0;
    stroke:currentColor;
}
/* Region jump nav */
.prov-jump-nav {
    display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;
}
.prov-jump-btn {
    display:inline-flex; align-items:center; gap:7px;
    min-height:34px;
    padding:7px 12px; border-radius:6px; font-size:13px; font-weight:500;
    background:#fff; border:1px solid #eaeaef; color:#555;
    text-decoration:none; transition:all .15s ease;
}
.prov-jump-btn:hover, .prov-jump-btn:focus {
    color:var(--mds-color-main);
    border-color:var(--mds-color-main);
    text-decoration:none;
}
.prov-jump-btn .pj-count {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    background:#f4f4f6;
    border-radius:9px;
    padding:0 6px;
    font-size:11px;
    color:#777;
    font-weight:600;
}
.prov-jump-btn:hover .pj-count { background:#f8fbfb; color:var(--mds-color-main); }

/* Region block */
.prov-region-block {
    margin-bottom:42px;
    scroll-margin-top:80px;
}
.prov-region-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
    padding-bottom:11px;
    border-bottom:1px solid #eaeaef;
}
.prov-region-head .prb-text {
    flex:1;
    min-width:0;
}
.prov-region-head h2 {
    margin:0;
    font-size:21px;
    line-height:28px;
    font-weight:700;
    color:#222;
    letter-spacing:0;
}
.prov-region-head h2 a {
    color:inherit; text-decoration:none;
}
.prov-region-head h2 a:hover { color:var(--mds-color-main); }
.prov-region-head .prb-meta {
    margin-top:5px;
    font-size:13px;
    color:#969696;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
}
.prov-region-head .prb-meta span {
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.prov-region-head .prb-actions { flex-shrink:0; }
.prov-region-head .prb-link {
    display:inline-flex; align-items:center; gap:5px;
    min-height:34px;
    font-size:13px; font-weight:500; color:#555;
    text-decoration:none; padding:7px 12px;
    border:1px solid #eaeaef; border-radius:3px;
    transition:all .15s;
}
.prov-region-head .prb-link:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
    text-decoration:none;
}

/* Province card grid */
.prov-card-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
    gap:20px;
}
.prov-pc {
    display:flex; flex-direction:column; background:#fff;
    border:1px solid #eaeaef; border-radius:6px; overflow:hidden;
    text-decoration:none; color:inherit;
    box-shadow:none;
    transition:box-shadow .2s, border-color .2s;
}
.prov-pc:hover {
    box-shadow:0 0 18px 3px rgba(0,0,0,.05);
    border-color:#e0e0e8;
    text-decoration:none; color:inherit;
}
.prov-pc-img {
    aspect-ratio:16/9; overflow:hidden; position:relative;
    background:#f4f4f6;
}
.prov-pc-img img {
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .3s ease;
}
.prov-pc:hover .prov-pc-img img { transform:scale(1.05); }
.prov-pc-img-placeholder {
    width:100%; height:100%; display:flex; align-items:center;
    justify-content:center; color:#b8c8d4;
}
.prov-pc-img-placeholder::before {
    content:"";
    width:34px;
    height:34px;
    display:block;
    background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 21h18v-2h-1V3h-6v6h-2V7H6v12H3v2Zm13-16h2v14h-2V5ZM8 9h2v10H8V9Zm5 2h1v8h-1v-8Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 21h18v-2h-1V3h-6v6h-2V7H6v12H3v2Zm13-16h2v14h-2V5ZM8 9h2v10H8V9Zm5 2h1v8h-1v-8Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.prov-pc-chip {
    position:absolute; top:8px; right:8px;
    background:var(--mds-color-main); color:#fff;
    font-size:11px; font-weight:700; padding:3px 9px;
    border-radius:6px 0 6px 0; line-height:1.5;
}
.prov-pc-body {
    padding:12px; display:flex; align-items:center; gap:8px; flex:1;
}
.prov-pc-name {
    flex:1; font-weight:600; font-size:14px; color:#222; line-height:1.35;
}
.prov-pc-arrow {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#b8b8c2;
    transition:color .15s, transform .15s;
}
.prov-pc:hover .prov-pc-arrow { color:var(--mds-color-main); transform:translateX(3px); }

/* Search bar */
.prov-search-bar {
    display:flex; align-items:center; gap:10px;
    background:#fff; border:1px solid #eaeaef; border-radius:6px;
    padding:11px 14px; margin-bottom:18px;
    box-shadow:none;
    color:#969696;
}
.prov-search-bar input {
    flex:1; border:none; outline:none; font-size:14px;
    color:#222; background:transparent; padding:0;
}
.prov-search-bar input::placeholder { color:#969696; }

@media (max-width:768px) {
    .prov-card-grid { grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:10px; }
    .prov-region-head { align-items:flex-start; flex-direction:column; }
    .prov-region-head h2 { font-size:18px; line-height:24px; }
    .prov-jump-nav { gap:6px; }
}

/* ─── Custom nav-main (configurable from /admin/main-menu) ─── */
.nav-main-custom { display:flex; flex-wrap:nowrap; margin:0; padding:0; list-style:none; gap:2px; }
.nav-main-custom > .nav-item { position:relative; }
.nav-main-custom > .nav-item > .nav-link { display:flex; align-items:center; gap:6px; padding:12px 16px; color:#fff; text-decoration:none; font-weight:500; font-size:14px; white-space:nowrap; transition:background .15s; }
.nav-main-custom > .nav-item > .nav-link:hover,
.nav-main-custom > .nav-item.dropdown:hover > .nav-link { background:rgba(0,0,0,.12); color:#fff; }
.nav-main-custom > .nav-item > .nav-link .fa { font-size:14px; opacity:.9; }
.nav-main-custom .nav-main-custom-dropdown { display:none; position:absolute; top:100%; left:0; min-width:220px; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.12); border-radius:0 0 6px 6px; padding:6px 0; z-index:1050; }
.nav-main-custom > .nav-item.dropdown:hover .nav-main-custom-dropdown { display:block; }
.nav-main-custom .nav-main-custom-dropdown .dropdown-item { display:flex; align-items:center; gap:8px; padding:10px 16px; color:#1f2937; text-decoration:none; font-size:13.5px; transition:background .12s; }
.nav-main-custom .nav-main-custom-dropdown .dropdown-item:hover { background:#f1f5f9; color:var(--mds-color-main); }
.nav-main-custom .nav-main-custom-dropdown .dropdown-item .fa { color:var(--mds-color-main); font-size:13px; width:16px; text-align:center; }
@media (max-width: 768px) {
    .nav-main-custom > .nav-item > .nav-link { padding:10px 12px; font-size:13px; }
    .nav-main-custom > .nav-item > .nav-link span:not(.label) { display:inline; }
}

/* Modesy theme revamp layer for public industrial pages.
   Keep this at the end so legacy industrial styles inherit the main style-2.6.css language. */
.industrial-wrap {
    max-width:1270px;
    padding:0 15px 30px;
    color:#333;
}

.col-12 > .industrial-wrap {
    max-width:none;
    padding-left:0;
    padding-right:0;
}

.ip-block-head {
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:20px;
}
.ip-block-head-with-status { align-items:center; }
.ip-block-icon {
    width:38px;
    height:38px;
    border-radius:6px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 38px;
    color:#fff;
    background:var(--mds-color-main);
}
.ip-block-icon svg {
    width:19px;
    height:19px;
}
.ip-svg-icon,
.ni-icon svg,
.inline-svg {
    width:16px;
    height:16px;
    flex:0 0 16px;
    display:inline-block;
    vertical-align:-3px;
}
.nc-btn {
    align-items:center;
}
.ni-time {
    align-items:center;
}
.ip-block-head h3 {
    margin:0;
    font-size:20px;
    line-height:28px;
    font-weight:600;
    color:#222;
}
.ip-block-head h3 small {
    color:#888;
    font-weight:400;
}
.ip-block-head p {
    margin:2px 0 0;
    color:#777;
    font-size:13px;
    line-height:1.55;
}
.ip-block-status {
    margin-left:auto;
}
.ip-block-status span {
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#3f837d;
    background:#f2faf8;
    border:1px solid #dcefed;
    border-radius:3px;
    padding:5px 9px;
    font-size:11px;
    font-weight:600;
}

.ip-transparency-section,
.ip-reviews-section {
    margin:32px 0;
    padding:24px;
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    box-shadow:none;
}

.ip-reviews-summary {
    margin-top:4px;
}
.ip-review-score {
    text-align:center;
    padding:22px 12px;
    background:#fafafa;
    border:1px solid #eaeaef;
    border-radius:6px;
}
.ip-review-score-num {
    font-size:44px;
    font-weight:700;
    color:#222;
    line-height:1;
}
.ip-review-stars {
    margin:8px 0;
}
.svg-star {
    color:#ddd;
    display:inline-flex;
    margin-right:2px;
}
.svg-star.is-full,
.svg-star-small {
    color:#ffb400;
}
.rs-star {
    display:inline-block;
}
.ip-review-count,
.ip-review-note {
    color:#777;
    font-size:13px;
}
.ip-review-dist {
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:7px;
}
.ip-review-dist span {
    width:54px;
    font-size:13px;
    color:#555;
}
.ip-review-dist span i {
    color:#ffb400;
    font-size:11px;
}
.ip-review-dist-bar {
    flex:1;
    height:8px;
    background:#eee;
    border-radius:4px;
    overflow:hidden;
}
.ip-review-dist-bar div {
    height:100%;
    background:#ffb400;
}
.ip-review-dist strong {
    width:42px;
    text-align:right;
    color:#666;
    font-size:13px;
}
.ip-review-form-card {
    margin-top:24px;
    padding:20px;
    background:#fafafa;
    border:1px solid #eaeaef;
    border-radius:6px;
}
.ip-review-form-card h4,
.ip-reviews-recent-title {
    margin:0 0 14px;
    font-size:16px;
    color:#222;
    font-weight:600;
}
.ip-review-form-card label {
    color:#555;
    font-weight:600;
}
.ip-review-form-card .req {
    color:#e74c3c;
}
.ip-review-form-card .form-control {
    border:1px solid #dfe0e6;
    border-radius:2px;
    box-shadow:none;
}
.ip-review-form-card .form-control:focus {
    border-color:var(--mds-color-main);
    box-shadow:none;
}
.ip-review-submit {
    border-radius:3px;
    min-height:38px;
    padding:8px 18px;
}
.ip-review-item {
    border-bottom:1px solid #eee;
    padding:14px 0;
}
.ip-review-item-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-bottom:6px;
}
.ip-review-text {
    white-space:pre-wrap;
    color:#333;
}

@media (max-width:768px) {
    .ip-block-head {
        align-items:flex-start;
    }
    .ip-block-status {
        width:100%;
        margin-left:50px;
    }
    .ip-transparency-section,
    .ip-reviews-section {
        padding:18px;
    }
    .ip-review-item-head {
        flex-direction:column;
    }
}

.industrial-page-header,
.ipho-head,
.sl-count-bar {
    border-bottom:1px solid #eaeaef;
    padding-bottom:14px;
    margin-bottom:20px;
}

.industrial-page-header h1,
.cmp-page-title,
.ipho-head h3,
.industrial-section-title {
    color:#222;
    font-size:24px;
    line-height:32px;
    font-weight:600;
    margin:0;
}

.industrial-page-lead,
.industrial-page-header .meta,
.ip-card-summary,
.ipho-hero-text p,
.ipho-region-meta,
.province-card .count {
    color:#777;
    font-size:14px;
    line-height:1.6;
}

.industrial-page-actions,
.ipho-hero-actions {
    gap:10px;
}

.btn-map-link,
.ipho-btn,
.industrial-filter button,
.industrial-filter .reset,
.ip-compare-btn,
.cmp-bar-btn-go,
.cmp-bar-btn-clear,
.sl-bar-btn,
.sl-action-btn,
.sl-empty-state a,
.ip-detail-actions .industrial-compare-add,
.ip-detail-actions .sl-btn,
.ip-header-inquiry-btn,
.ip-detail-export,
.ip-incentive-btn,
.legal-table a.btn-download,
.doclib-download-btn {
    border-radius:3px;
    font-weight:400;
    min-height:38px;
    box-shadow:none;
}

.btn-map-link,
.ipho-btn-primary,
.industrial-filter button,
.ip-header-inquiry-btn,
.ip-detail-export,
.ip-incentive-btn,
.cmp-bar-btn-go,
.sl-empty-state a {
    background:var(--mds-color-main) !important;
    border:1px solid var(--mds-color-main) !important;
    color:#fff !important;
}

.btn-map-link:hover,
.ipho-btn-primary:hover,
.industrial-filter button:hover,
.ip-header-inquiry-btn:hover,
.ip-detail-export:hover,
.ip-incentive-btn:hover,
.cmp-bar-btn-go:hover,
.sl-empty-state a:hover {
    color:#fff !important;
    filter:brightness(94%);
    text-decoration:none;
    transform:none;
}

.btn-map-link-outline,
.ipho-btn-ghost,
.industrial-filter .reset,
.ip-detail-actions .industrial-compare-add,
.ip-detail-actions .sl-btn {
    background:#fff !important;
    border:1px solid #dfe0e6 !important;
    color:#555 !important;
}

.btn-map-link-outline:hover,
.ipho-btn-ghost:hover,
.industrial-filter .reset:hover,
.ip-detail-actions .industrial-compare-add:hover,
.ip-detail-actions .sl-btn:hover {
    border-color:var(--mds-color-main) !important;
    color:var(--mds-color-main) !important;
    background:#fff !important;
    text-decoration:none;
}

.industrial-meta-pill,
.industrial-chip,
.cmp-tag,
.incf-tag,
.doclib-cat-chip {
    border-radius:3px;
    background:#f7f7f7;
    border:1px solid #eaeaef;
    color:#555;
    font-weight:400;
}

.doclib-cat-chip {
    min-height:28px;
    padding:5px 10px;
    border-radius:20px;
    background:#fff;
    border:1.5px solid #e5e7eb;
    color:#374151;
    font-size:12px;
    font-weight:600;
    line-height:1;
}

.doclib-cat-pill {
    border-radius:20px;
    border-width:1.5px;
    font-weight:600;
}

.ip-detail-page-profile-cover .ip-profile-cta .ip-profile-primary-cta {
    min-height:var(--ip-profile-cta-height);
    height:var(--ip-profile-cta-height);
    max-height:var(--ip-profile-cta-height);
    padding:0 18px;
    font-weight:700;
}

.ip-detail-page-profile-cover .ip-profile-cta .ip-profile-tool-btn,
.ip-detail-page-profile-cover .ip-profile-cta .industrial-compare-add,
.ip-detail-page-profile-cover .ip-profile-cta .sl-btn,
.ip-detail-page-profile-cover .ip-profile-cta .ip-detail-export {
    min-height:38px;
    height:38px;
    padding:0 12px;
    font-weight:600;
}

.ip-detail-page-profile-cover .ip-profile-cta .ip-profile-compare-link {
    gap:5px;
}

.industrial-filter,
.rank-block,
.industrial-table-wrap,
.industry-card,
.ipho-hero,
.ipho-region-card,
.province-card,
.advisor-card,
.bulletin-card,
.guide-section,
.doclib-card,
.incf-card,
.sl-empty-state,
.sl-inquiry-box,
.ip-incentive-card,
.nearby-list-wrap,
.nearby-map {
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    box-shadow:none;
}

.industrial-filter {
    padding:16px;
    margin-bottom:24px;
}

.industrial-filter form {
    align-items:flex-end;
    gap:12px;
}

.industrial-filter .field {
    flex:1 1 135px;
    min-width:135px;
}

.industrial-filter .industrial-field-xs { flex-basis:96px; min-width:96px !important; }
.industrial-filter .industrial-field-sm { flex-basis:130px; min-width:130px !important; }
.industrial-filter .industrial-field-md { flex-basis:170px; min-width:170px !important; }
.industrial-filter .industrial-field-grow { flex:1.4 1 210px; min-width:210px !important; }
.industrial-filter .industrial-filter-actions { flex:0 0 132px; min-width:132px; }
.industrial-filter-action-row { width:100%; }
.industrial-filter-action-row button,
.industrial-filter-action-row .reset { flex:1; justify-content:center; }

.industrial-filter label {
    color:#555;
    font-size:13px;
    font-weight:600;
    text-transform:none;
    margin-bottom:7px;
}

.industrial-filter select,
.industrial-filter input,
.industrial-inquiry-section input,
.industrial-inquiry-section textarea,
.sl-inquiry-form input,
.sl-inquiry-form textarea {
    border:1px solid #dfe0e6;
    border-radius:2px;
    min-height:40px;
    color:#555;
    background:#fff;
}

.industrial-filter select:focus,
.industrial-filter input:focus,
.industrial-inquiry-section input:focus,
.industrial-inquiry-section textarea:focus,
.sl-inquiry-form input:focus,
.sl-inquiry-form textarea:focus {
    border-color:var(--mds-color-main);
    outline:0;
}

.industrial-filter .select2-container--default .select2-selection--single,
.industrial-inquiry-section .select2-container--default .select2-selection--single,
.map-sidebar .select2-container--default .select2-selection--single {
    border-color:#dfe0e6 !important;
    border-radius:2px !important;
    min-height:40px;
    height:40px !important;
}

.ip-grid {
    grid-template-columns:repeat(auto-fill,minmax(255px,1fr));
    gap:22px;
}

.ip-card {
    border:1px solid #eaeaef;
    border-radius:6px;
    box-shadow:none;
    background:#fff;
}

.ip-card:hover,
.industry-card:hover,
.ipho-region-card:hover,
.province-card:hover,
.advisor-card:hover,
.bulletin-card:hover,
.doclib-card:hover,
.incf-card:hover,
.rank-block:hover {
    border-color:#d9d9e2;
    box-shadow:0 3px 12px rgba(0,0,0,.06);
    transform:none;
}

.ip-card-img {
    background:#f7f7f7;
    border-bottom:1px solid #f0f0f0;
}

.ip-card-body {
    padding:14px 15px;
}

.ip-card-title,
.industry-name,
.ipho-region-name,
.bulletin-card .name,
.advisor-card .name,
.doclib-card-title,
.incf-card-name {
    color:#222;
    font-size:15px;
    line-height:1.4;
    font-weight:600;
}

.ip-card-link:hover .ip-card-title,
.industry-card:hover .industry-name,
.ipho-region-card:hover .ipho-region-name,
.doclib-card-title:hover {
    color:var(--mds-color-main);
}

.ip-card-meta,
.doclib-meta-row,
.bulletin-card .footer {
    color:#9a9a9a;
    font-size:13px;
}

.ip-card-badges .badge {
    border-radius:2px;
    font-weight:600;
}

.ip-card {
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border-radius:6px;
    transition:border-color .18s, box-shadow .18s, transform .18s;
}

.ip-card-link {
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
}

.ip-card-img {
    aspect-ratio:16/10;
    border-bottom:0;
}

.ip-card-img::after {
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:46%;
    background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.34));
    pointer-events:none;
}

.ip-card-img img {
    transition:transform .28s ease;
}

.ip-card:hover .ip-card-img img {
    transform:scale(1.035);
}

.ip-card-svg {
    width:14px;
    height:14px;
    flex:0 0 auto;
}

.ip-card-badges {
    top:10px;
    left:10px;
    right:52px;
    z-index:3;
    flex-wrap:wrap;
}

.ip-card-badges .badge {
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:24px;
    padding:4px 8px;
    border-radius:3px;
    font-size:10px;
    letter-spacing:.02em;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
}

.ip-card-badges .badge-verified {
    background:#16a34a;
    color:#fff;
}

.ip-card-shortlist.sl-btn {
    top:10px;
    right:10px;
    width:36px;
    height:36px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
}

.ip-card-shortlist.sl-btn .ip-card-svg {
    width:16px;
    height:16px;
    color:#9a9a9a;
}

.ip-card-shortlist.sl-btn.sl-active .ip-card-svg,
.ip-card-shortlist.sl-btn:hover .ip-card-svg {
    color:#e91e63;
    fill:#e91e63;
}

.ip-card-body {
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    padding:15px;
}

.ip-card-kicker {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:8px;
}

.ip-card-kicker span {
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:4px 8px;
    border:1.5px solid #e5e7eb;
    border-radius:20px;
    background:#fff;
    color:#555;
    font-size:11px;
    font-weight:600;
    line-height:1;
}

.ip-card-title {
    margin:0 0 8px;
    min-height:42px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.ip-card-rating {
    display:inline-flex;
    align-items:center;
    gap:4px;
    margin:-2px 0 8px;
    color:#ffb400;
    font-size:13px;
    font-weight:700;
}

.ip-card-rating .ip-card-svg {
    width:13px;
    height:13px;
    fill:currentColor;
}

.ip-card-rating small {
    color:#777;
    font-size:12px;
    font-weight:500;
}

.ip-card-meta {
    gap:6px;
    margin-bottom:10px;
}

.ip-card-meta span {
    gap:7px;
    line-height:1.35;
}

.ip-card-meta .ip-card-svg {
    color:#9ca3af;
}

.ip-card-stats {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 10px;
}

.ip-card-stat {
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:32px;
    padding:7px 10px;
    border:1px solid #eaeaef;
    border-radius:4px;
    background:#fbfcfd;
    color:#555;
    font-size:12px;
    line-height:1;
}

.ip-card-stat .ip-card-svg {
    color:var(--mds-color-main);
}

.ip-card-stat strong {
    color:#222;
    font-size:14px;
    font-weight:700;
}

.ip-card-stat small {
    color:#777;
    font-size:11px;
    font-weight:600;
}

.ip-card-summary {
    margin-top:auto;
    color:#666;
}

.ip-card-compare {
    padding:0 15px 15px;
}

.ip-compare-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
    min-height:38px;
    padding:8px 12px;
    border-radius:3px;
    font-size:13px;
}

.ip-compare-btn .ip-card-svg {
    width:14px;
    height:14px;
}

.ipho-hero {
    padding:24px;
    margin:0 0 30px;
}

.ipho-hero-text h2 {
    font-size:26px;
    line-height:34px;
    font-weight:600;
    color:#222;
}

.ipho-stat {
    background:#fafafa;
    border:1px solid #eaeaef;
    border-radius:6px;
}

.ipho-stat .num,
.prov-stat .num,
.incf-year-box .num {
    color:var(--mds-color-main);
}

.industrial-tabs {
    border-bottom:1px solid #eaeaef;
}

.industrial-tabs a {
    color:#777;
    font-weight:400;
}

.industrial-tabs a:hover,
.industrial-tabs a.active {
    color:var(--mds-color-main);
    border-bottom-color:var(--mds-color-main);
}

.industrial-tab-section h2 {
    font-size:20px;
    line-height:28px;
    font-weight:600;
    color:#222;
    border-bottom:1px solid #eaeaef;
}

.industrial-tab-section h3 {
    color:#333;
    font-size:16px;
}

.industrial-content {
    color:#555;
    font-size:14px;
}

.industrial-cominip-table th,
.legal-table th,
.company-table th {
    background:#fafafa;
    color:#555;
    border-color:#eaeaef;
}

.industrial-cominip-table td,
.legal-table td,
.company-table td,
.industrial-content th,
.industrial-content td {
    border-color:#eaeaef;
}

.occ-bar,
.industry-bar,
.cluster-row .cl-bar,
.cmp-progress {
    background:#ededed;
}

.occ-bar span,
.industry-bar span,
.cluster-row .cl-bar span,
.cmp-progress-bar {
    background:var(--mds-color-main) !important;
}

.bench-good {
    background:#f2faf8;
    border-color:#dcefed;
    color:#3f837d;
}

.bench-high {
    background:#fff7ef;
    border-color:#f2dfca;
    color:#9b642e;
}

.sl-page-hero,
.incf-hero {
    background:#222;
    border-radius:6px;
}

.cmp-bar,
.sl-bar {
    background:#fff;
    color:#333;
    border-top:1px solid #eaeaef;
    box-shadow:0 -2px 12px rgba(0,0,0,.08);
}

.cmp-bar-thumb {
    background:#f7f7f7;
    color:#555;
}

.cmp-bar-thumb-rm,
.cmp-bar-btn-clear,
.sl-bar-btn-clear {
    color:#777;
}

.cmp-bar-thumb-rm:hover,
.cmp-bar-btn-clear:hover,
.sl-bar-btn-clear:hover {
    color:#333;
}

.cmp-bar-label,
.sl-bar-label,
.sl-bar-sub {
    color:#333;
}

.sl-bar-btn-ghost,
.cmp-bar-btn-clear {
    background:#fff;
    border:1px solid #dfe0e6;
    color:#555;
}

.sl-bar-btn-ghost:hover,
.cmp-bar-btn-clear:hover {
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
}

.sl-bar-label .sl-bar-count,
.sl-bar-icon {
    color:var(--mds-color-main);
}

.cmp-bar-count {
    background:var(--mds-color-main);
    color:#fff;
}

.cmp-add-link:hover,
.ip-compare-btn,
.ip-compare-btn:hover,
.ip-compare-btn.is-added,
.cmp-btn-primary,
.cmp-btn-secondary,
.cmp-btn-secondary:hover {
    border-color:var(--mds-color-main);
}

.ip-compare-btn,
.cmp-btn-secondary {
    color:var(--mds-color-main);
    background:#fff;
}

.ip-compare-btn:hover,
.ip-compare-btn.is-added,
.cmp-btn-primary,
.cmp-btn-secondary:hover {
    color:#fff;
    background:var(--mds-color-main);
}

.industrial-pagination .page-item .page-link,
.industrial-pagination .page-item > a,
.industrial-pagination .page-item > span {
    border-radius:3px;
    box-shadow:none;
}

.industrial-pagination .page-item .page-link:hover,
.industrial-pagination .page-item > a:hover {
    background:#fff;
    border-color:var(--mds-color-main);
    color:var(--mds-color-main);
}

.industrial-pagination .page-item.active .page-link,
.industrial-pagination .page-item.active > a,
.industrial-pagination .page-item.active > span {
    background:var(--mds-color-main) !important;
    border-color:var(--mds-color-main) !important;
}

@media (max-width:768px) {
    .industrial-wrap { padding-left:15px; padding-right:15px; }
    .industrial-page-header h1,
    .cmp-page-title,
    .ipho-head h3 { font-size:22px; line-height:30px; }
    .industrial-page-actions .btn-map-link,
    .ipho-btn { width:100%; justify-content:center; }
    .ip-grid { grid-template-columns:1fr; gap:16px; }
    .ipho-hero { padding:18px; }
}


/* Industrial parks map page */
.map-page-wrap { padding:0 16px; }
.map-page { position:relative; height:calc(100vh - 128px); min-height:640px; border:1px solid #eaeaef; border-radius:6px; overflow:hidden; background:#fff; }
.map-sidebar {
    position:absolute;
    left:16px;
    top:64px;
    z-index:650;
    width:360px;
    max-width:calc(100% - 32px);
    max-height:calc(100% - 80px);
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:6px;
    padding:14px;
    overflow-x:hidden;
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    box-shadow:0 8px 24px rgba(0,0,0,.12);
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    transition:transform .2s ease, opacity .2s ease;
}
.map-sidebar.is-open {
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}
.map-sidebar:not(.is-open) {
    transform:translateX(-14px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}
.map-filter-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.map-filter-head h3 { margin:0; }
.map-filter-close {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    padding:0;
    background:#fff;
    color:#555;
    border:1px solid #d9dee6;
    border-radius:3px;
    cursor:pointer;
}
.map-filter-close svg { width:14px; height:14px; fill:currentColor; }
.map-filter-close:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); }
/* ── Map toolbar — Zoom + Filters + Full screen on one row ───────── */
.map-toolbar {
    position:absolute;
    left:16px;
    top:16px;
    z-index:660;
    display:flex;
    align-items:center;
    gap:8px;
}
.map-filter-toggle,
.map-fullscreen-toggle {
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:0 13px;
    border:1px solid #d9dee6;
    border-radius:3px;
    background:#fff;
    color:#555;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.10);
}
.map-filter-toggle svg,
.map-fullscreen-toggle svg { width:15px; height:15px; fill:currentColor; display:block; }
.map-filter-toggle:hover,
.map-filter-toggle.is-active,
.map-fullscreen-toggle:hover,
.map-fullscreen-toggle.is-active { color:var(--mds-color-main); border-color:var(--mds-color-main); }
.map-fullscreen-icon { display:inline-flex; width:15px; height:15px; }
.map-fullscreen-icon-close { display:none; }
.map-fullscreen-toggle.is-active .map-fullscreen-icon-open { display:none; }
.map-fullscreen-toggle.is-active .map-fullscreen-icon-close { display:inline-flex; }

/* Zoom CTA — same pill style, segmented +/- */
.map-zoom-group {
    display:inline-flex;
    align-items:stretch;
    min-height:38px;
    border:1px solid #d9dee6;
    border-radius:3px;
    background:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.10);
    overflow:hidden;
}
.map-zoom-btn {
    width:38px;
    border:0;
    background:transparent;
    color:#555;
    font-size:20px;
    font-weight:600;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:color .15s, background .15s;
}
.map-zoom-btn + .map-zoom-btn { border-left:1px solid #eef0f3; }
.map-zoom-btn:hover:not(:disabled) { color:var(--mds-color-main); background:#f7f9fc; }
.map-zoom-btn:disabled { color:#c4c9d1; cursor:default; }
.map-page.is-fullscreen-fallback,
.map-page:fullscreen {
    width:100vw;
    height:100vh;
    min-height:100vh;
    border:0;
    border-radius:0;
}
.map-page.is-fullscreen-fallback {
    position:fixed;
    inset:0;
    z-index:9998;
}
.map-display-control {
    position:absolute;
    right:16px;
    top:16px;
    z-index:660;
    display:flex;
    align-items:center;
    gap:10px;
    min-height:38px;
    padding:6px 8px 6px 12px;
    background:#fff;
    border:1px solid #eaeaef;
    border-radius:3px;
    box-shadow:0 4px 14px rgba(0,0,0,.10);
}
.map-display-label { font-size:12px; font-weight:600; color:#555; white-space:nowrap; }
.map-canvas { position:absolute; inset:0; }
#leaflet-map { width:100%; height:100%; }
.map-sidebar h3 { font-size:14px; font-weight:700; color:#222; margin:0 0 12px; letter-spacing:0; }
.map-sidebar .field { display:flex; flex-direction:column; margin-bottom:14px; flex:0 0 auto; }
.map-sidebar .field label { font-size:12px; font-weight:600; color:#555; margin-bottom:6px; }
.map-sidebar select, .map-sidebar input[type=number], .map-sidebar input[type=text] { min-height:40px; padding:7px 10px; border:1px solid #d9dee6; border-radius:3px; font-size:13px; background:#fff; color:#222; }
.map-sidebar .btn-near { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:40px; padding:9px 14px; background:var(--mds-color-main); color:#fff; border:0; border-radius:3px; font-weight:600; cursor:pointer; margin-bottom:16px; transition:filter .18s ease, transform .18s ease; }
.map-sidebar .btn-near svg { width:16px; height:16px; fill:currentColor; }
.map-sidebar .btn-near:hover { filter:brightness(.96); transform:translateY(-1px); }
.map-sidebar .btn-reset { width:100%; min-height:40px; padding:8px 14px; background:#fff; color:#555; border:1px solid #d9dee6; border-radius:3px; cursor:pointer; font-size:13px; font-weight:600; margin-top:auto; position:sticky; bottom:0; z-index:2; box-shadow:0 -10px 14px rgba(255,255,255,.92); }
.map-sidebar .btn-reset:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); background:#f9fcfc; }
.map-count-pill { display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 12px; border:1px solid #eaeaef; border-radius:3px; background:#fff; color:#777; font-size:12px; font-weight:600; }
.map-count-pill strong { color:#222; font-size:18px; line-height:1; }
.log-filter-section { border:1px solid #eaeaef; border-radius:3px; padding:0; overflow:hidden; }
.log-section-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; padding:10px 12px; background:#fff; border:0; border-bottom:1px solid transparent; cursor:pointer; font-size:12px; font-weight:600; color:#222; text-transform:none; transition:background .15s; }
.log-section-toggle:hover { background:#f7f7f9; }
.log-section-toggle[aria-expanded="true"] { border-bottom-color:#eaeaef; }
.log-section-title { display:flex; align-items:center; gap:8px; }
.log-count-badge { background:var(--mds-color-main); color:#fff; font-size:10px; font-weight:700; padding:1px 7px; border-radius:10px; line-height:1.4; }
.log-section-chevron { color:#888; font-size:11px; transition:transform .2s ease; }
.log-section-chevron svg { width:16px; height:16px; fill:currentColor; display:block; }
.log-section-toggle[aria-expanded="true"] .log-section-chevron { transform:rotate(180deg); }
.log-section-body { display:none; padding:10px 12px; }
.log-section-body.open { display:block; max-height:190px; overflow-y:auto; overflow-x:hidden; }
.log-toggle-row { display:flex; justify-content:flex-end; margin-bottom:6px; }
.log-toggle-all { font-size:11px; color:var(--mds-color-main); cursor:pointer; text-decoration:underline; }
.routing-mode-toggle { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.routing-mode-opt { display:inline-flex; align-items:center; gap:7px; min-height:34px; font-size:12px; color:#555; padding:7px 14px; border:1.5px solid #d9dee6; border-radius:20px; cursor:pointer; user-select:none; background:#fff; transition:all .15s; margin:0; }
.map-sidebar .field label.routing-mode-opt { color:#555; margin:0; }
.routing-mode-opt:hover { border-color:var(--mds-color-main); color:var(--mds-color-main); background:#fff; }
.routing-mode-opt input[type=radio] { display:none; }
.routing-mode-opt.active { border-color:var(--mds-color-main); background:var(--mds-color-main); color:#fff; font-weight:600; }
.map-sidebar .field label.routing-mode-opt.active { color:#fff; }
.routing-mode-opt .rmo-icon { display:inline-flex; width:15px; height:15px; color:currentColor; }
.routing-mode-opt .rmo-icon svg { width:100%; height:100%; fill:currentColor; display:block; }

/* Display-mode toggle (Popup ⇄ Drawer) */
.display-mode-toggle { display:flex; align-items:center; gap:6px; }
.display-mode-opt {
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:30px;
    font-size:12px;
    font-weight:600;
    color:#555;
    padding:6px 10px;
    border:1.5px solid #d9dee6;
    border-radius:20px;
    cursor:pointer;
    background:#fff;
    transition:all .15s;
}
.display-mode-opt svg { width:14px; height:14px; fill:currentColor; }
.display-mode-opt:hover { border-color:var(--mds-color-main); color:var(--mds-color-main); }
.display-mode-opt.active { border-color:var(--mds-color-main); background:var(--mds-color-main); color:#fff; }

/* IP detail drawer (right slide-in on desktop, bottom-sheet on mobile) */
.ip-drawer {
    position:absolute;
    top:0;
    right:0;
    height:100%;
    width:400px;
    max-width:min(92vw, 420px);
    background:#fff;
    border-left:1px solid #eaeaef;
    box-shadow:-6px 0 24px rgba(0,0,0,.14);
    z-index:700;
    transform:translateX(100%);
    transition:transform .28s ease;
    display:flex;
    flex-direction:column;
}
.ip-drawer.open { transform:translateX(0); }
.ip-drawer-head { display:flex; align-items:center; justify-content:flex-end; padding:8px 10px; border-bottom:1px solid #eef2f6; flex-shrink:0; }
.ip-drawer-close { width:32px; height:32px; border:1px solid #d9dee6; background:#fff; border-radius:50%; font-size:20px; line-height:1; color:#555; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.ip-drawer-close:hover { background:#e5e7eb; color:#111; }
.ip-drawer-body { flex:1; overflow-y:auto; padding:0; }
/* Reuse popup-card styles inside the drawer but let it fill the width */
.ip-drawer-body .popup-card { width:100%; max-width:100%; box-shadow:none; border:0; border-radius:0; }
.ip-drawer-overlay { position:absolute; inset:0; background:rgba(0,0,0,.20); z-index:690; opacity:0; visibility:hidden; transition:opacity .2s; display:none; }
@media (max-width:768px) {
    .ip-drawer { top:auto; bottom:0; left:0; right:0; width:100%; max-width:100%; height:auto; max-height:82%; border-radius:6px 6px 0 0; transform:translateY(100%); box-shadow:0 -6px 28px rgba(0,0,0,.2); border-left:0; border-top:1px solid #eaeaef; }
    .ip-drawer.open { transform:translateY(0); }
    .ip-drawer-overlay { display:block; }
    .ip-drawer-overlay.open { opacity:1; visibility:visible; }
}

/* Logistics POI list inside popup — coloured dot + SVG icon */
.popup-card .logistics .lp-row {
    display: grid !important;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 8px;
}
.lp-row .lp-color-dot {
    display:inline-block; width:8px; height:8px; border-radius:2px;
    margin-right:5px; flex-shrink:0;
}
.lp-row .lp-svg-icon {
    display:inline-flex; align-items:center; width:14px; height:14px;
    margin-right:5px; flex-shrink:0;
}
.lp-row .lp-svg-icon svg { width:100%; height:100%; display:block; }
/* Cột tên: chiếm 1fr, overflow hidden để ellipsis hoạt động */
.popup-card .logistics .lp-row .name {
    display: flex;
    align-items: center;
    overflow: hidden;
    min-width: 0;
}
.popup-card .logistics .lp-row .lp-name-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1;
}
/* Cột km: auto width, không bao giờ xuống dòng */
.popup-card .logistics .lp-row .dist {
    white-space: nowrap;
    text-align: right;
    margin-left: 0 !important;
}

.log-type-filter-group { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; }
.log-type-check { display:flex; align-items:center; gap:6px; min-width:0; min-height:34px; font-size:12px; line-height:1.2; color:#555; cursor:pointer; padding:6px 8px; border-radius:3px; border:1px solid #eaeaef; transition:background .12s,border-color .12s,color .12s; user-select:none; overflow:hidden; }
.map-sidebar .field label.log-type-check { color:#555; margin:0; font-size:12px; font-weight:600; }
.log-type-check:hover { background:#f9fcfc; border-color:var(--mds-color-main); color:var(--mds-color-main); }
.map-sidebar .field label.log-type-check:hover { color:var(--mds-color-main); }
.log-type-check input[type=checkbox] {
    appearance:none;
    width:16px;
    height:16px;
    flex:0 0 16px;
    border:1px solid #b8c0cc;
    border-radius:3px;
    background:#fff;
    cursor:pointer;
    display:grid;
    place-items:center;
    margin:0;
}
.log-type-check input[type=checkbox]:checked {
    background:var(--mds-color-main);
    border-color:var(--mds-color-main);
}
.log-type-check input[type=checkbox]:checked::after {
    content:"";
    width:8px;
    height:5px;
    border-left:2px solid #fff;
    border-bottom:2px solid #fff;
    transform:rotate(-45deg) translate(1px, -1px);
}
.log-type-check > span:last-child { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.map-log-icon { display:inline-flex; width:15px; height:15px; flex:0 0 15px; color:currentColor; }
.map-log-icon svg { width:100%; height:100%; fill:currentColor; display:block; }
.map-area-row { display:flex; gap:8px; }
.map-area-row input { flex:1; min-width:0; }
.map-shell-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:0 0 16px; }
.map-shell-head-main h1 { margin:0; font-size:28px; color:#222; }
.map-shell-head-main p { margin:6px 0 0; font-size:14px; color:#6b7a89; max-width:720px; line-height:1.6; }
.map-shell-head-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.map-back-link { display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 14px; border-radius:3px; background:#fff; border:1px solid #d9dee6; color:#555; text-decoration:none; font-weight:600; }
.map-back-link svg { width:15px; height:15px; fill:currentColor; }
.map-back-link:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); background:#f9fcfc; }

/* Popup */
.leaflet-popup-content-wrapper {
    border-radius:6px;
    padding:0;
    border:1px solid #eaeaef;
    box-shadow:0 8px 22px rgba(0,0,0,.12);
    overflow:hidden;
}
.leaflet-popup-close-button {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    width: 22px !important;
    height: 22px !important;
    background: rgba(255,255,255,.9) !important;
    border-radius: 50% !important;
    color: #555 !important;
    font: 400 18px/20px Arial, sans-serif !important;
    text-align: center !important;
    text-decoration: none !important;
    padding: 0 !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    box-shadow: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    z-index: 10;
}
.leaflet-popup-close-button:hover {
    background: #fff !important;
    color: #111 !important;
    border-color:rgba(0,0,0,.16) !important;
    text-decoration: none !important;
}
.leaflet-popup-content { margin:0; width:340px !important; max-width:calc(100vw - 36px); }
.popup-card { background:#fff; color:#222; overflow:hidden; }
.popup-card .img { aspect-ratio:16/9; background:#f4f4f4; overflow:hidden; }
.popup-media-wrap { position:relative; }
.popup-card .img img { width:100%; height:100%; object-fit:cover; display:block; }
.popup-card .body { padding:14px; }
.popup-card h3 {
    font-size:16px;
    font-weight:700;
    margin:0 0 7px;
    color:#222;
    line-height:1.35;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.popup-card .meta { display:flex; flex-wrap:wrap; gap:6px 10px; font-size:12px; color:#666; margin-bottom:8px; }
.popup-meta-item { display:inline-flex; align-items:center; gap:4px; min-width:0; }
.popup-meta-icon { display:inline-flex; width:13px; height:13px; color:#8a8a8a; flex:0 0 13px; }
.popup-meta-icon svg { width:100%; height:100%; fill:currentColor; display:block; }
.popup-card .summary {
    font-size:12px;
    color:#777;
    line-height:1.45;
    margin:7px 0 10px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.popup-card .badges { position:absolute; top:8px; left:8px; display:flex; gap:5px; }
.popup-card .badge { padding:4px 7px; font-size:10px; font-weight:700; color:#fff; border-radius:3px; line-height:1; box-shadow:0 1px 3px rgba(0,0,0,.16); }
.popup-card .badge-hot { background:#e74c3c; }
.popup-card .badge-pro { background:#f39c12; }
.popup-card .logistics {
    font-size:11px;
    color:#666;
    background:#fff;
    padding:8px 9px;
    border:1px solid #eaeaef;
    border-radius:3px;
    margin:10px 0;
}
.popup-logistics-title { display:block; margin-bottom:5px; color:#333; font-size:11px; font-weight:700; }
.logistics-row-separator { border-top:1px dashed #e0e0e0; margin:5px 0 3px; }
.popup-card .logistics .lp-row { cursor:pointer; border-radius:3px; padding:3px 4px; transition:background .15s; margin:1px 0; min-height:24px; }
.popup-card .logistics .lp-row:hover { background:#f7f7f9; }
.popup-card .logistics .name { color:#444; }
/* ── Distance badge — always right-aligned, never wraps ── */
.popup-card .logistics .dist {
    color:var(--mds-color-main); font-weight:700;
    flex-shrink:0; white-space:nowrap; margin-left:6px;
    font-size:11px; letter-spacing:0;
    transition:color .3s, opacity .3s;
}
/* Loading state: same colour but dimmed + pulse — shows crow-fly ~km
   until OSRM road distance returns, then becomes full-opacity blue */
.popup-card .logistics .dist.dist-loading {
    opacity:.45;
    animation: dist-pulse 1.2s ease-in-out infinite;
}
@keyframes dist-pulse {
    0%,100% { opacity:.45; }
    50%      { opacity:.75; }
}
.popup-card .actions { display:flex; gap:8px; margin-top:10px; }
.popup-card .btn {
    flex:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 10px;
    font-size:12px;
    font-weight:600;
    text-align:center;
    text-decoration:none;
    border-radius:3px;
    cursor:pointer;
    border:1px solid transparent;
    line-height:1.2;
}
.popup-card .btn-primary { background:var(--mds-color-main); border-color:var(--mds-color-main); color:#fff; }
.popup-card .btn-primary:hover { filter:brightness(.96); color:#fff; }
.popup-card .btn-secondary { background:#fff; border-color:#d9dee6; color:#555; }
.popup-card .btn-secondary:hover { border-color:var(--mds-color-main); color:var(--mds-color-main); background:#fff; }

/* Near-me list */
.near-list { margin-top:14px; }
.map-sidebar .near-list { flex:0 0 auto; }
.near-list.is-hidden { display:none; }
.near-list h3 { margin-top:0; }
.near-list ol { padding:0; margin:0; list-style:none; }
.near-list li { padding:8px 10px; border-bottom:1px solid #f0f0f0; cursor:pointer; font-size:13px; }
.near-list li:hover { background:#fafafa; }
.near-list li .nm { font-weight:600; color:#333; }
.near-list li .pv { font-size:11px; color:#888; }
.near-list li .dt { float:right; color:var(--mds-color-main); font-weight:600; font-size:12px; }

@media (max-width: 768px) {
    .map-shell-head { flex-direction:column; align-items:flex-start; }
    .map-page { height:calc(100vh - 170px); min-height:560px; }
    .map-sidebar { left:10px; right:10px; top:58px; width:auto; max-width:none; max-height:calc(100% - 74px); padding:12px; }
    .map-toolbar { left:10px; top:10px; gap:6px; }
    .map-fullscreen-label { display:none; }
    .map-display-control { right:10px; top:10px; gap:6px; padding:5px; }
    .map-display-label { display:none; }
    .display-mode-opt { min-height:30px; padding:6px 9px; }
}

/* ── IP Thumbnail pin ───────────────────────────────────────── */
.ip-pin { background:transparent; border:none; cursor:pointer; }

/* Wrapper: 44×52px — photo circle + pointer tip */
.ip-pin-thumb .ip-thumb-wrap {
    position:relative; width:44px; height:44px;
}
.ip-pin-thumb .ip-thumb-img {
    width:44px; height:44px; border-radius:50%;
    background-size:cover; background-position:center;
    border:3px solid var(--bc, #1e40af);
    box-shadow:0 2px 8px rgba(0,0,0,.35);
    transition:transform .15s, box-shadow .15s;
}
.ip-pin-thumb:hover .ip-thumb-img {
    transform:scale(1.1);
    box-shadow:0 4px 14px rgba(0,0,0,.4);
}
.ip-pin-selected { z-index:720 !important; }
.ip-pin-selected .ip-thumb-img {
    transform:scale(1.14);
    box-shadow:0 0 0 4px rgba(0,169,157,.24), 0 5px 18px rgba(0,0,0,.42);
    border-color:var(--mds-color-main) !important;
}
.ip-pin-selected .ip-icon-wrap {
    transform:scale(1.14);
    box-shadow:0 0 0 4px rgba(0,169,157,.24), 0 5px 18px rgba(0,0,0,.40);
    background:var(--mds-color-main) !important;
}
.ip-pin-selected .ip-icon-tip {
    border-top-color:var(--mds-color-main) !important;
}
.ip-pin-selected::after {
    content:"";
    position:absolute;
    left:50%;
    bottom:6px;
    width:54px;
    height:54px;
    border:2px solid rgba(0,169,157,.38);
    border-radius:50%;
    transform:translateX(-50%);
    animation:ip-selected-pulse 1.45s ease-in-out infinite;
    pointer-events:none;
}
@keyframes ip-selected-pulse {
    0%,100% { opacity:.35; transform:translateX(-50%) scale(.88); }
    50% { opacity:.85; transform:translateX(-50%) scale(1.08); }
}
/* Triangular pointer tip */
.ip-pin-thumb .ip-thumb-tip {
    position:absolute; bottom:-8px; left:50%;
    transform:translateX(-50%);
    width:0; height:0;
    border-left:7px solid transparent;
    border-right:7px solid transparent;
    border-top:9px solid var(--bc, #1e40af);
    filter:drop-shadow(0 2px 2px rgba(0,0,0,.2));
}

/* ── IP Icon pin (factory SVG, no image) ──────────────────── */
.ip-pin-icon .ip-icon-wrap {
    position:relative; width:36px; height:36px; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.3);
    transition:transform .15s, box-shadow .15s;
}
.ip-pin-icon:hover .ip-icon-wrap {
    transform:scale(1.1);
    box-shadow:0 4px 14px rgba(0,0,0,.35);
}
.ip-pin-icon .ip-icon-wrap svg {
    width:22px; height:22px; color:#fff; fill:#fff; display:block;
}
/* Triangular tip */
.ip-pin-icon .ip-icon-tip {
    position:absolute; bottom:-8px; left:50%;
    transform:translateX(-50%);
    width:0; height:0;
    border-left:6px solid transparent;
    border-right:6px solid transparent;
    border-top:8px solid #1e40af; /* overridden inline */
}

/* ── Badge: HOT / PRO ────────────────────────────────────── */
.ip-pin-badge {
    position:absolute; top:-6px; right:-6px;
    font-size:8px; font-weight:800; letter-spacing:.3px;
    color:#fff; padding:2px 5px; border-radius:4px;
    line-height:1.2; white-space:nowrap;
    box-shadow:0 1px 4px rgba(0,0,0,.3);
    border:1.5px solid rgba(255,255,255,.6);
}
.ip-pin-badge-hot { background:#e53935; }
.ip-pin-badge-pro { background:#f59e0b; }

/* ── Logistics point pins ────────────────────────────────── */
.log-pin {
    background:rgba(255,255,255,.95); border:1px solid #888; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 1px 3px rgba(0,0,0,.3); cursor:pointer;
    transition:transform .15s, box-shadow .15s;
}
.log-pin svg { width:15px; height:15px; fill:currentColor; display:block; }
.log-pin:hover { transform:scale(1.18); box-shadow:0 3px 10px rgba(0,0,0,.25); }
.log-pin.log-port       { color:#1976d2; border-color:#1976d2; }
.log-pin.log-river-port { color:#0097a7; border-color:#0097a7; }
.log-pin.log-airport    { color:#388e3c; border-color:#388e3c; }
.log-pin.log-railway    { color:#e53935; border-color:#e53935; }
.log-pin.log-highway    { color:#f57c00; border-color:#f57c00; }
.log-pin.log-city       { color:#6d4c41; border-color:#6d4c41; }
.log-pin.log-tourist    { color:#8e24aa; border-color:#8e24aa; }
.log-pin.log-custom     { color:#757575; border-color:#757575; }

/* ── Connection lines: animated dash flow ────────────────── */
@keyframes conn-dash { to { stroke-dashoffset:-30; } }
.conn-line-1 { animation:conn-dash .7s linear infinite; }
.conn-line-2 { animation:conn-dash 1s linear infinite; }
.conn-line-3 { animation:conn-dash 1.3s linear infinite; }

/* Highlight ring around targeted logistics marker */
.conn-ring { animation:conn-pulse 1.5s ease-in-out infinite; }
@keyframes conn-pulse {
    0%,100% { stroke-opacity:.9; fill-opacity:.25; }
    50%     { stroke-opacity:.4; fill-opacity:.07; }
}

/* Distance tooltip on polyline */
.conn-dist-tip {
    background:rgba(255,255,255,.95); border:none; border-radius:6px;
    box-shadow:0 2px 8px rgba(0,0,0,.15); font-size:11px;
    padding:3px 8px; pointer-events:none; white-space:nowrap;
}
.conn-dist-tip::before { display:none; }

/* ── Cluster circles ─────────────────────────────────────── */
.marker-cluster-small  { background-color:rgba(30,64,175,.35); }
.marker-cluster-small  div { background-color:rgba(30,64,175,.75); color:#fff; font-weight:700; }
.marker-cluster-medium { background-color:rgba(30,64,175,.45); }
.marker-cluster-medium div { background-color:rgba(30,64,175,.85); color:#fff; font-weight:700; }
.marker-cluster-large  { background-color:rgba(30,64,175,.55); }
.marker-cluster-large  div { background-color:#1e40af; color:#fff; font-weight:700; }

/* ── Logistics Point Detail Modal ─────────────────────────── */
#lp-modal-overlay {
    position: fixed; inset: 0; z-index: 10000;
    background: rgba(17,24,39,.52);
    display: none; align-items: center; justify-content: center;
    padding:18px;
    animation: lp-fade-in .18s ease;
}
#lp-modal-overlay.is-open { display:flex; }
@keyframes lp-fade-in { from { opacity:0; } to { opacity:1; } }
#lp-modal {
    position: relative;
    background: #fff;
    border:1px solid #eaeaef;
    border-radius: 6px;
    width: min(640px, 96vw);
    max-height: min(88vh, 760px);
    overflow: hidden;
    display: flex; flex-direction: column;
    box-shadow: 0 18px 48px rgba(0,0,0,.22);
    animation: lp-slide-up .22s ease;
}
#lp-modal-content { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.lp-modal-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; }
@keyframes lp-slide-up { from { transform:translateY(20px); opacity:0; } to { transform:translateY(0); opacity:1; } }
.lp-modal-close {
    position: absolute; top: 12px; right: 12px;
    background:#fff; border:1px solid #eaeaef; border-radius: 50%;
    width: 32px; height: 32px; font-size: 21px; line-height: 28px;
    cursor: pointer; color: #555; z-index: 3;
    box-shadow:0 2px 8px rgba(0,0,0,.12);
    transition:color .15s, border-color .15s, transform .15s;
}
.lp-modal-close:hover { color:#111; border-color:#d9dee6; transform:scale(1.04); }
.lp-modal-loading { padding: 44px 24px; text-align: center; color: #777; font-size: 14px; }
.lp-modal-error { color:#e53935; }
.lp-modal-img { width:100%; aspect-ratio:16/7; object-fit:cover; display:block; background:#f5f5f6; }
.lp-modal-header {
    padding: 18px 22px 12px;
    display: flex; align-items: flex-start; gap: 12px;
    border-bottom:1px solid #f0f0f2;
    flex-shrink: 0; background:#fff;
}
.lp-modal-icon { width: 38px; height: 38px; border-radius: 6px; display:flex; align-items:center; justify-content:center; flex-shrink: 0; color:#fff; }
.lp-modal-icon svg { width: 21px; height: 21px; fill: currentColor; display:block; }
.lp-modal-title-wrap { flex: 1; min-width: 0; }
.lp-modal-name { font-size: 20px; font-weight: 700; color: #222; margin: 0; line-height: 1.3; }
.lp-modal-type-badge {
    font-size: 12.5px; font-weight: 600; letter-spacing: 0; line-height: 1.3;
}
.lp-modal-stats {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0; padding: 16px 22px 6px;
    border-bottom:1px solid #f0f0f2;
}
.lp-modal-stat { background:#fff; border:1px solid #eaeaef; border-radius:3px; padding: 10px 12px; margin:0 8px 10px 0; min-width:0; }
.lp-modal-stat .lbl { font-size: 11px; color: #777; letter-spacing: 0; margin-bottom: 4px; }
.lp-modal-stat .val { font-size: 14px; font-weight: 700; color: #222; line-height:1.35; overflow-wrap:anywhere; }
.lp-modal-section { padding: 16px 22px 0; }
.lp-modal-section h4 { font-size: 14px; font-weight: 700; color: #222; margin: 0 0 8px; }
.lp-modal-desc { font-size: 13px; color: #444; line-height: 1.65; margin: 0; }
.lp-modal-notes { color:#777; }
.lp-modal-list { list-style: none; padding: 0; margin: 0; }
.lp-modal-list li { font-size: 13px; color: #444; padding: 7px 0; border-bottom: 1px solid #f0f0f2; display: flex; align-items: flex-start; gap: 8px; line-height:1.45; }
.lp-modal-list li:last-child { border-bottom: none; }
.lp-modal-list li::before { content:''; width:6px; height:6px; margin-top:7px; border-radius:50%; background:var(--mds-color-main); flex-shrink: 0; }
.lp-modal-contact { margin:18px 22px 0; padding: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid #f0f0f2; }
.lp-modal-contact a {
    display: inline-flex; align-items: center; gap: 6px; min-height:34px; padding:7px 10px;
    border:1px solid #eaeaef; border-radius:3px; background:#fff;
    font-size: 13px; color:#555; text-decoration: none; font-weight: 600;
}
.lp-modal-contact a:hover { color:var(--mds-color-main); border-color:var(--mds-color-main); text-decoration:none; }
.lp-contact-icon { display:inline-flex; width:14px; height:14px; color:currentColor; flex:0 0 14px; }
.lp-contact-icon svg { width:100%; height:100%; fill:currentColor; display:block; }
.lp-modal-map-btn {
    flex-shrink: 0;
    display: flex; align-items:center; justify-content:center; gap:6px; margin: 14px 22px 18px; padding: 10px 14px; text-align: center;
    background: var(--mds-color-main); color: #fff; border-radius: 3px;
    font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer;
    border: 1px solid var(--mds-color-main); width: calc(100% - 44px); min-height:40px;
}
.lp-modal-map-btn:hover { filter: brightness(.92); color: #fff; }

@media (max-width:640px) {
    #lp-modal-overlay { padding:10px; align-items:flex-end; }
    #lp-modal { width:100%; max-height:92vh; border-radius:6px 6px 0 0; }
    .lp-modal-img { aspect-ratio:16/8; }
    .lp-modal-header { padding:16px 16px 12px; }
    .lp-modal-name { font-size:18px; margin-right:34px; }
    .lp-modal-stats { grid-template-columns:1fr; padding:14px 16px 4px; }
    .lp-modal-stat { margin-right:0; }
    .lp-modal-section { padding:14px 16px 0; }
    .lp-modal-contact { margin-left:16px; margin-right:16px; }
    .lp-modal-map-btn { margin-left:16px; margin-right:16px; width:calc(100% - 32px); }
}
