.icsjf-directory,
.icsjf-single-job {
    --icsjf-primary: #062b5c;
    --icsjf-accent: #dcae3a;
    --icsjf-text: #16233a;
    --icsjf-muted: #667085;
    --icsjf-border: #e4e9f1;
    --icsjf-soft: #f6f8fc;
    --icsjf-white: #fff;
    color: var(--icsjf-text);
    font-family: inherit;
    width: 100%;
}

.icsjf-directory *,
.icsjf-single-job * { box-sizing: border-box; }
.icsjf-directory svg,
.icsjf-single-job svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.icsjf-directory button,
.icsjf-directory input,
.icsjf-directory select { font: inherit; }

.icsjf-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:0 0 28px; }
.icsjf-section-heading h2 { color:var(--icsjf-primary); font-size:clamp(28px,4vw,42px); line-height:1.12; margin:4px 0 8px; letter-spacing:-.03em; }
.icsjf-section-heading p { color:var(--icsjf-muted); font-size:16px; margin:0; max-width:720px; }
.icsjf-kicker { color:var(--icsjf-accent); display:block; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.icsjf-heading-link { align-items:center; color:var(--icsjf-primary); display:inline-flex; font-weight:750; gap:8px; text-decoration:none; white-space:nowrap; }
.icsjf-heading-link:hover { color:var(--icsjf-accent); }

.icsjf-search-panel { align-items:center; background:var(--icsjf-white); border:1px solid var(--icsjf-border); border-radius:18px; box-shadow:0 14px 40px rgba(17,39,73,.09); display:grid; gap:0; grid-template-columns:minmax(250px,1.4fr) minmax(170px,.8fr) minmax(170px,.8fr) auto; margin:0 0 28px; overflow:hidden; padding:8px; }
.icsjf-search-field { align-items:center; border-right:1px solid var(--icsjf-border); display:flex; min-height:54px; padding:0 16px; position:relative; }
.icsjf-search-field > span { color:var(--icsjf-accent); display:flex; margin-right:10px; }
.icsjf-search-field input,
.icsjf-search-field select { appearance:none; background:transparent; border:0!important; box-shadow:none!important; color:var(--icsjf-text); height:52px; margin:0!important; outline:0; padding:0!important; width:100%; }
.icsjf-search-field input::placeholder { color:#98a2b3; }
.icsjf-select-field::after { border-bottom:2px solid var(--icsjf-primary); border-right:2px solid var(--icsjf-primary); content:""; height:7px; pointer-events:none; position:absolute; right:20px; top:21px; transform:rotate(45deg); width:7px; }
.icsjf-search-button { align-items:center; background:var(--icsjf-accent); border:0; border-radius:12px; color:var(--icsjf-primary); cursor:pointer; display:inline-flex; font-weight:800; gap:9px; height:54px; justify-content:center; min-width:150px; padding:0 22px; transition:transform .2s ease, box-shadow .2s ease; }
.icsjf-search-button:hover { box-shadow:0 10px 24px rgba(220,174,58,.28); transform:translateY(-1px); }

.icsjf-content-layout { display:grid; gap:28px; }
.icsjf-content-layout.has-sidebar { grid-template-columns:270px minmax(0,1fr); }
.icsjf-results-column { min-width:0; position:relative; }
.icsjf-results-toolbar { align-items:center; display:flex; justify-content:space-between; margin:0 0 18px; min-height:44px; }
.icsjf-result-count { color:var(--icsjf-muted); font-size:14px; }
.icsjf-result-count strong { color:var(--icsjf-primary); font-size:17px; }
.icsjf-sort-wrap { position:relative; }
.icsjf-sort { appearance:none; background:var(--icsjf-white); border:1px solid var(--icsjf-border); border-radius:10px; color:var(--icsjf-text); min-width:190px; padding:11px 38px 11px 14px; }
.icsjf-sort-wrap::after { border-bottom:2px solid var(--icsjf-primary); border-right:2px solid var(--icsjf-primary); content:""; height:7px; pointer-events:none; position:absolute; right:16px; top:15px; transform:rotate(45deg); width:7px; }

.icsjf-sidebar { align-self:start; background:var(--icsjf-white); border:1px solid var(--icsjf-border); border-radius:16px; box-shadow:0 12px 35px rgba(17,39,73,.06); overflow:hidden; position:sticky; top:90px; }
.icsjf-sidebar-title { align-items:center; background:var(--icsjf-primary); color:#fff; display:flex; justify-content:space-between; padding:18px 20px; }
.icsjf-sidebar-title strong { font-size:17px; }
.icsjf-clear-filters { background:none; border:0; color:var(--icsjf-accent); cursor:pointer; font-size:13px; font-weight:750; padding:0; }
.icsjf-filter-group { border-bottom:1px solid var(--icsjf-border); }
.icsjf-filter-group:last-child { border-bottom:0; }
.icsjf-filter-group-toggle { align-items:center; background:none; border:0; color:var(--icsjf-primary); cursor:pointer; display:flex; font-weight:750; justify-content:space-between; padding:17px 19px; text-align:left; width:100%; }
.icsjf-filter-group-toggle svg { transition:transform .2s ease; }
.icsjf-filter-group:not(.is-open) .icsjf-filter-group-toggle svg { transform:rotate(-90deg); }
.icsjf-filter-options { display:none; max-height:230px; overflow:auto; padding:0 18px 16px; }
.icsjf-filter-group.is-open .icsjf-filter-options { display:block; }
.icsjf-check-row { align-items:center; color:#526071; cursor:pointer; display:flex; font-size:13px; justify-content:space-between; padding:7px 0; }
.icsjf-check-row > span { align-items:center; display:flex; gap:9px; }
.icsjf-check-row input { opacity:0; position:absolute; pointer-events:none; }
.icsjf-check-row i { background:#fff; border:1.5px solid #c9d1dd; border-radius:4px; display:inline-block; height:17px; position:relative; width:17px; }
.icsjf-check-row input:checked + i { background:var(--icsjf-accent); border-color:var(--icsjf-accent); }
.icsjf-check-row input:checked + i::after { border:solid var(--icsjf-primary); border-width:0 2px 2px 0; content:""; height:8px; left:5px; position:absolute; top:2px; transform:rotate(45deg); width:4px; }
.icsjf-check-row em { background:var(--icsjf-soft); border-radius:20px; color:#7c8798; font-size:11px; font-style:normal; min-width:24px; padding:2px 6px; text-align:center; }

.icsjf-job-grid { display:grid; gap:22px; grid-template-columns:repeat(var(--icsjf-columns,3),minmax(0,1fr)); }
.icsjf-job-card { background:var(--icsjf-white); border:1px solid var(--icsjf-border); border-radius:16px; box-shadow:0 10px 30px rgba(17,39,73,.06); min-width:0; overflow:hidden; transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.icsjf-job-card:hover { border-color:rgba(220,174,58,.7); box-shadow:0 18px 45px rgba(17,39,73,.12); transform:translateY(-4px); }
.icsjf-job-image { display:block; height:190px; overflow:hidden; position:relative; }
.icsjf-job-image img { height:100%; object-fit:cover; transition:transform .45s ease; width:100%; }
.icsjf-job-card:hover .icsjf-job-image img { transform:scale(1.045); }
.icsjf-image-overlay { background:linear-gradient(180deg,rgba(4,28,62,.02) 35%,rgba(4,28,62,.62) 100%); inset:0; position:absolute; }
.icsjf-featured-badge,
.icsjf-category-badge { align-items:center; backdrop-filter:blur(7px); border-radius:8px; display:inline-flex; font-size:11px; font-weight:800; gap:5px; padding:7px 10px; position:absolute; top:14px; }
.icsjf-featured-badge { background:var(--icsjf-accent); color:var(--icsjf-primary); left:14px; }
.icsjf-featured-badge svg { fill:currentColor; height:13px; stroke-width:1.2; width:13px; }
.icsjf-category-badge { background:rgba(255,255,255,.92); color:var(--icsjf-primary); right:14px; }
.icsjf-job-body { padding:19px; }
.icsjf-job-topline { align-items:center; color:#7a8697; display:flex; font-size:11px; gap:10px; justify-content:space-between; margin-bottom:8px; }
.icsjf-job-topline span { align-items:center; display:flex; gap:5px; max-width:65%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.icsjf-job-topline svg { height:14px; width:14px; }
.icsjf-job-card h3 { font-size:20px; line-height:1.3; margin:0 0 14px; }
.icsjf-job-card h3 a { color:var(--icsjf-primary); text-decoration:none; }
.icsjf-job-card h3 a:hover { color:var(--icsjf-accent); }
.icsjf-meta-list { display:flex; flex-wrap:wrap; gap:8px 14px; }
.icsjf-meta-list span { align-items:center; color:#596779; display:inline-flex; font-size:12px; gap:6px; }
.icsjf-meta-list svg { color:var(--icsjf-accent); height:15px; width:15px; }
.icsjf-card-excerpt { color:var(--icsjf-muted); font-size:13px; line-height:1.65; margin:14px 0 0; }
.icsjf-job-footer { align-items:flex-end; border-top:1px solid var(--icsjf-border); display:flex; gap:12px; justify-content:space-between; margin-top:18px; padding-top:16px; }
.icsjf-salary { min-width:0; }
.icsjf-salary small { color:#8a95a5; display:block; font-size:10px; margin-bottom:2px; text-transform:uppercase; }
.icsjf-salary strong { color:var(--icsjf-primary); display:block; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.icsjf-apply-button { align-items:center; background:var(--icsjf-primary); border-radius:9px; color:#fff!important; display:inline-flex; font-size:12px; font-weight:800; gap:7px; padding:11px 13px; text-decoration:none!important; white-space:nowrap; }
.icsjf-apply-button:hover { background:var(--icsjf-accent); color:var(--icsjf-primary)!important; }
.icsjf-apply-button svg { height:14px; width:14px; }
.icsjf-deadline { align-items:center; background:var(--icsjf-soft); border-radius:8px; color:#6a7586; display:flex; font-size:11px; gap:6px; margin-top:12px; padding:8px 10px; }
.icsjf-deadline svg { color:var(--icsjf-accent); height:14px; width:14px; }

.icsjf-pagination { align-items:center; display:flex; gap:14px; justify-content:space-between; margin-top:30px; }
.icsjf-page-numbers { align-items:center; display:flex; gap:7px; }
.icsjf-page-button { align-items:center; background:#fff; border:1px solid var(--icsjf-border); border-radius:9px; color:var(--icsjf-primary); cursor:pointer; display:inline-flex; font-size:13px; font-weight:750; gap:7px; justify-content:center; min-height:40px; min-width:40px; padding:8px 12px; }
.icsjf-page-button:hover,
.icsjf-page-button.is-current { background:var(--icsjf-primary); border-color:var(--icsjf-primary); color:#fff; }
.icsjf-page-button:disabled { cursor:not-allowed; opacity:.45; }
.icsjf-page-button svg { height:15px; width:15px; }

.icsjf-empty-state { background:var(--icsjf-soft); border:1px dashed #cdd5df; border-radius:16px; padding:60px 25px; text-align:center; }
.icsjf-empty-icon { align-items:center; background:#fff; border-radius:50%; color:var(--icsjf-accent); display:flex; height:64px; justify-content:center; margin:0 auto 16px; width:64px; }
.icsjf-empty-icon svg { height:30px; width:30px; }
.icsjf-empty-state h3 { color:var(--icsjf-primary); margin:0 0 7px; }
.icsjf-empty-state p { color:var(--icsjf-muted); margin:0 0 18px; }
.icsjf-empty-clear { background:var(--icsjf-primary); border-radius:8px; color:#fff; padding:10px 16px; }
.icsjf-error-state { background:#fff2f0; border:1px solid #ffccc7; border-radius:12px; color:#a8071a; padding:18px; }
.icsjf-directory.is-loading .icsjf-results { opacity:.45; pointer-events:none; position:relative; }
.icsjf-directory.is-loading .icsjf-results-column::after { animation:icsjf-spin .8s linear infinite; border:3px solid rgba(6,43,92,.2); border-radius:50%; border-top-color:var(--icsjf-accent); content:""; height:34px; left:50%; position:absolute; top:80px; width:34px; z-index:5; }
@keyframes icsjf-spin { to { transform:rotate(360deg); } }
.icsjf-mobile-filter-toggle { display:none; }

/* Single job page */
.icsjf-single-wrap { margin:0 auto; max-width:1180px; padding:55px 20px 80px; }
.icsjf-single-hero { background:linear-gradient(135deg,var(--icsjf-primary),#0b477e); border-radius:22px; color:#fff; overflow:hidden; padding:42px; position:relative; }
.icsjf-single-hero::after { background:var(--icsjf-accent); border-radius:50%; content:""; filter:blur(1px); height:180px; opacity:.15; position:absolute; right:-45px; top:-70px; width:180px; }
.icsjf-single-hero h1 { color:#fff; font-size:clamp(32px,5vw,52px); line-height:1.1; margin:12px 0 15px; position:relative; z-index:1; }
.icsjf-single-hero .icsjf-meta-list span { color:rgba(255,255,255,.82); }
.icsjf-single-hero .icsjf-meta-list svg { color:var(--icsjf-accent); }
.icsjf-single-layout { display:grid; gap:30px; grid-template-columns:minmax(0,1fr) 330px; margin-top:30px; }
.icsjf-single-main,
.icsjf-single-side-card { background:#fff; border:1px solid var(--icsjf-border); border-radius:18px; box-shadow:0 10px 35px rgba(17,39,73,.06); }
.icsjf-single-main { overflow:hidden; }
.icsjf-single-featured-image { height:360px; object-fit:cover; width:100%; }
.icsjf-single-content { color:#4f5d70; line-height:1.8; padding:30px; }
.icsjf-single-content h2,
.icsjf-single-content h3 { color:var(--icsjf-primary); }
.icsjf-single-side-card { padding:24px; position:sticky; top:95px; }
.icsjf-single-side-card h3 { color:var(--icsjf-primary); margin:0 0 18px; }
.icsjf-detail-row { align-items:flex-start; border-bottom:1px solid var(--icsjf-border); display:flex; gap:12px; padding:13px 0; }
.icsjf-detail-row:last-of-type { border-bottom:0; }
.icsjf-detail-row svg { color:var(--icsjf-accent); margin-top:2px; }
.icsjf-detail-row small { color:#8a95a5; display:block; font-size:10px; text-transform:uppercase; }
.icsjf-detail-row strong { color:var(--icsjf-text); display:block; font-size:14px; margin-top:2px; }
.icsjf-single-apply { align-items:center; background:var(--icsjf-accent); border-radius:10px; color:var(--icsjf-primary)!important; display:flex; font-weight:850; gap:8px; justify-content:center; margin-top:20px; padding:14px; text-decoration:none!important; }
.icsjf-single-apply:hover { background:var(--icsjf-primary); color:#fff!important; }

@media (max-width:1100px) {
    .icsjf-job-grid { grid-template-columns:repeat(min(var(--icsjf-columns,3),2),minmax(0,1fr)); }
    .icsjf-search-panel { grid-template-columns:1.2fr .8fr .8fr; }
    .icsjf-search-button { grid-column:1/-1; margin-top:8px; }
    .icsjf-search-field:nth-child(3) { border-right:0; }
}

@media (max-width:860px) {
    .icsjf-content-layout.has-sidebar { grid-template-columns:1fr; }
    .icsjf-sidebar { display:none; position:static; }
    .icsjf-directory.filters-open .icsjf-sidebar { display:block; }
    .icsjf-mobile-filter-toggle { align-items:center; background:var(--icsjf-primary); border:0; border-radius:10px; color:#fff; cursor:pointer; display:flex; font-weight:750; gap:8px; justify-content:center; margin:-12px 0 20px; padding:12px 16px; width:100%; }
    .icsjf-single-layout { grid-template-columns:1fr; }
    .icsjf-single-side-card { position:static; }
}

@media (max-width:680px) {
    .icsjf-section-heading { align-items:flex-start; flex-direction:column; gap:10px; }
    .icsjf-section-heading h2 { font-size:30px; }
    .icsjf-search-panel { border-radius:14px; display:block; padding:10px; }
    .icsjf-search-field { border-bottom:1px solid var(--icsjf-border); border-right:0; min-height:50px; }
    .icsjf-search-button { margin-top:10px; width:100%; }
    .icsjf-results-toolbar { align-items:flex-start; flex-direction:column; gap:10px; }
    .icsjf-sort-wrap,
    .icsjf-sort { width:100%; }
    .icsjf-job-grid { grid-template-columns:1fr; }
    .icsjf-job-image { height:205px; }
    .icsjf-pagination { gap:8px; }
    .icsjf-page-prev span,
    .icsjf-page-next span { display:none; }
    .icsjf-page-numbers { gap:4px; }
    .icsjf-page-button { min-height:36px; min-width:36px; padding:7px; }
    .icsjf-single-wrap { padding:25px 14px 55px; }
    .icsjf-single-hero { border-radius:16px; padding:28px 22px; }
    .icsjf-single-featured-image { height:230px; }
    .icsjf-single-content { padding:22px; }
}

/* Imported ICS work permit program content */
.icsjf-program-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 28px}.icsjf-program-facts p{margin:0;padding:15px 17px;border:1px solid #e2e9f2;border-radius:14px;background:#f8fafc}.icsjf-single-content ul{display:grid;gap:10px;margin:12px 0 28px;padding-left:22px}.icsjf-single-content li{padding-left:4px}.icsjf-single-content h2{margin-top:30px}@media(max-width:640px){.icsjf-program-facts{grid-template-columns:1fr}}
