/**
 * Loker Core — daftar lowongan halaman depan.
 *
 * Dipisahkan dari frontend.css agar kartu halaman depan tidak lagi bergantung
 * pada selector arsip /lowongan/ dan lebih mudah dirawat tanpa override silang.
 */

/* Pembungkus dan judul bagian. */
.ljc-front-jobs{box-sizing:border-box;container-type:inline-size;max-width:1180px;margin:0 auto;padding:clamp(32px, 4vw, 48px) clamp(16px, 2.4vw, 24px) 10px;width:100%;overflow:hidden;}
.ljc-front-jobs, .ljc-front-jobs *{box-sizing:border-box;}
.ljc-front-jobs > section, .ljc-front-taxonomy-section, .ljc-front-category-block, .ljc-job-grid-index, .ljc-front-jobs .ljc-job-card-index, .ljc-front-jobs .ljc-job-card-inner-index, .ljc-front-jobs .ljc-job-card-copy-index{min-width:0;}
.ljc-front-jobs > section + section,
.ljc-front-taxonomy-section + .ljc-front-taxonomy-section{margin-top:clamp(54px, 7vw, 84px);}
.ljc-front-overview-head, .ljc-front-section-head{align-items:flex-end;display:flex;gap:22px;justify-content:space-between;margin-bottom:20px;min-width:0;}
.ljc-front-overview-head > div, .ljc-front-section-head > div{min-width:0;}
.ljc-front-overview-head h2, .ljc-front-section-head h2, .ljc-front-section-head h3{letter-spacing:-.025em;line-height:1.12;margin:0;overflow-wrap:anywhere;}
.ljc-front-overview-head h2{font-size:clamp(1.75rem, 3.2vw, 2.65rem);}
.ljc-front-section-head h2{font-size:clamp(1.7rem, 3vw, 2.45rem);}
.ljc-front-section-head h3{font-size:clamp(1.35rem, 2.2vw, 1.85rem);}
.ljc-front-overview-head p, .ljc-front-section-head p{color:var(--ljc-muted);line-height:1.65;margin:9px 0 0;max-width:720px;overflow-wrap:anywhere;}
.ljc-front-category-list{display:grid;gap:clamp(32px, 5vw, 58px);min-width:0;}
/* Semua kelompok kartu dirender normal. content-visibility sengaja tidak dipakai karena
 * dapat memicu blank section dan lonjakan paint pada sebagian browser Android. */

.ljc-front-category-count{color:var(--ljc-primary);display:block;font-size:.7rem;font-weight:850;letter-spacing:.08em;margin-bottom:6px;text-transform:uppercase;}
.ljc-front-section-link, .ljc-front-all-button{align-items:center;border-radius:12px;display:inline-flex;font-size:.84rem;font-weight:850;gap:7px;justify-content:center;min-height:42px;text-decoration:none !important;white-space:nowrap;}
.ljc-front-section-link{background:var(--ljc-card);border:1px solid var(--ljc-line);color:var(--ljc-text) !important;padding:9px 14px;}
.ljc-front-section-link:hover{border-color:var(--ljc-primary);color:var(--ljc-primary) !important;}
/* Grid halaman depan dibuat mandiri dan tidak memakai grid arsip. */
.ljc-job-grid-index{display:grid;gap:14px;min-width:0;}
.ljc-front-category-grid{grid-auto-flow:row dense;grid-auto-rows:minmax(210px, auto);grid-template-columns:repeat(4, minmax(0, 1fr));}
.ljc-front-latest-grid{gap:16px;grid-template-columns:repeat(3, minmax(0, 1fr));}
/* Struktur kartu umum halaman depan. */
.ljc-front-jobs .ljc-job-card-index{background:var(--ljc-card);border:1px solid #e7eaee;border-radius:18px;box-shadow:0 8px 24px rgba(17, 24, 39, .05);display:block;height:100%;overflow:hidden;transform:none;}
.ljc-front-jobs .ljc-job-card-index:hover{border-color:#d8dde4;box-shadow:0 12px 28px rgba(17, 24, 39, .075);transform:translateY(-2px);}
.ljc-front-jobs .ljc-job-card-index.is-index-featured{background:linear-gradient(180deg, #fffdf7 0, #fff 58%);border-color:var(--ljc-featured);box-shadow:0 10px 28px rgba(188, 142, 22, .10);}
.ljc-front-jobs .ljc-job-card-inner-index{display:flex;flex-direction:column;gap:12px;height:100%;padding:16px;position:relative;}
.ljc-front-jobs .ljc-job-card-head-index{align-items:center;display:grid;gap:13px;grid-template-columns:64px minmax(0, 1fr);margin:0;min-width:0;}
.ljc-front-jobs .ljc-job-card-logo-index{align-items:center;background:var(--ljc-card);border:1px solid #e1e5ea;border-radius:11px;display:flex;height:64px;justify-content:center;overflow:hidden;padding:0;width:64px;}
.ljc-front-jobs .ljc-job-card-logo-index img{border-radius:10px;display:block;height:100%;max-height:none;object-fit:cover;padding:0;width:100%;}
.ljc-front-jobs .ljc-job-card-logo-index > span{font-size:.72rem;font-weight:900;letter-spacing:.05em;}
.ljc-front-jobs .ljc-job-card-copy-index{display:flex;flex-direction:column;gap:0;}
.ljc-front-jobs .ljc-job-card-kicker-index{align-items:center;display:flex;flex-wrap:wrap;gap:7px;min-width:0;}
.ljc-front-jobs .ljc-job-card-place-index{color:#697386;display:inline-block;font-size:.72rem;font-weight:500;line-height:1.35;min-width:0;overflow-wrap:anywhere;}
.ljc-front-jobs .ljc-job-card-badge-index{background:#fff1bf;border-radius:999px;color:var(--ljc-featured-text);flex:0 0 auto;font-size:.57rem;letter-spacing:.035em;padding:4px 7px;text-transform:uppercase;}
.ljc-front-jobs .ljc-company-name-index{line-height:1.3;margin:5px 0 0;}
.ljc-front-jobs .ljc-company-name-index a{align-items:center;color:#475467;display:flex;font-size:.76rem;font-weight:700;min-width:0;overflow-wrap:anywhere;text-decoration:none !important;}
.ljc-front-jobs .ljc-company-name-index .ljc-company-name-with-verification{width:100%;}
.ljc-front-jobs .ljc-company-name-index a:hover, .ljc-front-jobs .ljc-company-name-index a:focus-visible{text-decoration:none !important;}
.ljc-front-jobs .ljc-job-card-title-index{border-top:1px solid var(--ljc-line);font-size:1.04rem;line-height:1.22;margin-top:0;margin-right:0;margin-bottom:auto;margin-left:0;padding-top:12px;}
.ljc-front-jobs .ljc-job-card-title-index a{color:var(--ljc-text);display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-decoration:none;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.ljc-front-jobs .ljc-job-card-body-index{display:block;flex:none;padding:0;}
.ljc-front-jobs .ljc-job-card-facts-index{display:grid;gap:7px;grid-template-columns:repeat(2, minmax(0, 1fr));list-style:none;margin:0;padding:0;}
.ljc-front-jobs .ljc-job-card-facts-index li{align-items:flex-start;background:#f7f8fa;border:1px solid #eef0f3;border-radius:10px;display:flex;flex-direction:column;gap:3px;min-height:54px;min-width:0;padding:8px 10px;}
.ljc-front-jobs .ljc-job-card-index.is-index-featured .ljc-job-card-facts-index li{background:#fffaf0;border-color:#f3e5b9;}
.ljc-front-jobs .ljc-job-card-facts-index span{color:#7b8492;font-size:.58rem;font-weight:800;letter-spacing:.035em;line-height:1.2;text-transform:uppercase;}
.ljc-front-jobs .ljc-job-card-facts-index strong{color:#252a31;display:block;font-size:.74rem;font-weight:750;line-height:1.35;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;}
.ljc-job-card-footer-index{align-items:stretch;border-top:1px solid #edf0f3;display:flex;flex-direction:column;gap:9px;justify-content:space-between;padding:12px 0 0;}
.ljc-job-card-footer-index time{color:#697386;font-size:.76rem;font-weight:400;line-height:1.35;white-space:normal;}
.ljc-front-jobs .ljc-job-card-actions-index{align-items:stretch;display:flex;gap:7px;min-width:0;width:100%;}
.ljc-front-jobs .ljc-job-card-actions-index .ljc-save-job, .ljc-front-jobs .ljc-job-card-actions-index .ljc-save-job-card, .ljc-front-jobs .ljc-job-detail-link-index{flex:1 1 0;min-height:36px;min-width:0;width:auto;}
.ljc-front-jobs .ljc-job-card-actions-index .ljc-save-job, .ljc-front-jobs .ljc-job-card-actions-index .ljc-save-job-card{align-items:center;background:var(--ljc-card);border:1px solid #dfe3e8;border-radius:9px;color:#596273;display:inline-flex;font-size:.72rem;gap:4px;justify-content:center;order:1;padding:7px 9px;}
.ljc-front-jobs .ljc-job-detail-link-index{align-items:center;background:var(--ljc-primary);border-radius:9px;color:#fff !important;display:inline-flex;font-size:.76rem;font-weight:850;gap:4px;justify-content:center;order:2;padding:7px 10px;text-decoration:none;white-space:nowrap;}
.ljc-front-jobs .ljc-job-detail-link-index:hover{filter:brightness(.94);}
/* Tipe kerja pada kartu kecil: teks ringan di sudut kanan atas. */
.ljc-front-jobs .ljc-job-card-type-index, .ljc-front-jobs .ljc-job-card-type-mobile-index{display:none;}
@media(min-width:721px){
  .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-inner-index{padding-top:38px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-type-index{color:#697386;display:block;font-size:.76rem;font-weight:400;line-height:1.35;max-width:calc(100% - 18px);overflow-wrap:anywhere;position:absolute;right:9px;text-align:right;top:9px;}
}

/* Kartu unggulan besar. */
.ljc-front-category-grid .ljc-job-card-index.is-index-featured-large{background:linear-gradient(145deg, #fffaf0 0, #fff 56%);border-color:#e7bd4b;box-shadow:0 16px 42px rgba(177, 128, 10, .12);grid-column:span 2;grid-row:span 2;}
.ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-inner-index{gap:18px;padding:24px;}
.ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-head-index{grid-template-columns:82px minmax(0, 1fr);}
.ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-logo-index{height:82px;width:82px;}
.ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-title-index{font-size:clamp(1.35rem, 2vw, 1.85rem);line-height:1.16;}
.ljc-front-featured-summary{color:#596273;font-size:.9rem;line-height:1.65;margin:0;overflow-wrap:anywhere;}
/* Tombol penutup dan keadaan kosong. */
.ljc-front-section-end{display:flex;justify-content:center;margin-top:24px;}
.ljc-front-all-button{background:var(--ljc-primary);box-shadow:0 10px 24px rgba(var(--ljc-primary-rgb), .18);color:#fff !important;padding:12px 20px;}
.ljc-front-all-button:hover{background:var(--ljc-primary-dark);transform:translateY(-1px);}
.ljc-front-empty{background:var(--ljc-card);border:1px dashed #cfd4da;border-radius:20px;padding:42px 24px;text-align:center;}
.ljc-front-empty h2{margin:0 0 8px;}
.ljc-front-empty p{color:var(--ljc-muted);margin:0 0 18px;}
/* Animasi ringan tanpa library tambahan. */
.ljc-front-jobs .ljc-job-card-index{animation:ljcFrontRise .44s cubic-bezier(.2, .7, .2, 1) both;}
.ljc-front-jobs .ljc-job-card-index:nth-child(2){animation-delay:.04s;}
.ljc-front-jobs .ljc-job-card-index:nth-child(3){animation-delay:.08s;}
.ljc-front-jobs .ljc-job-card-index:nth-child(4){animation-delay:.12s;}
.ljc-front-jobs .ljc-job-card-index:nth-child(5){animation-delay:.16s;}
@keyframes ljcFrontRise {
  from{opacity:0;transform:translateY(12px);}
to{opacity:1;transform:translateY(0);}
}

/* Tablet dan area konten sempit. */
@media(max-width:1050px){
  .ljc-front-category-grid, .ljc-front-latest-grid{grid-auto-rows:auto;grid-template-columns:repeat(2, minmax(0, 1fr));}
 .ljc-front-category-grid .ljc-job-card-index.is-index-featured-large{grid-column:1 / -1;grid-row:auto;}
}

@container (max-width: 900px) {
  .ljc-front-category-grid, .ljc-front-latest-grid{grid-auto-rows:auto;grid-template-columns:repeat(2, minmax(0, 1fr));}
 .ljc-front-category-grid .ljc-job-card-index.is-index-featured-large{grid-column:1 / -1;grid-row:auto;}
}

/* Mobile: kartu kecil tetap dua kolom. */
@media(max-width:720px){
  .ljc-front-jobs{padding:26px 14px 4px;}
 .ljc-front-overview-head, .ljc-front-section-head{align-items:flex-start;flex-direction:column;gap:13px;}
 .ljc-front-section-link, .ljc-front-all-button{width:100%;}
 .ljc-front-category-grid, .ljc-front-latest-grid{gap:10px;grid-template-columns:repeat(2, minmax(0, 1fr));}
 .ljc-front-category-grid .ljc-job-card-index.is-index-featured-large{grid-column:1 / -1;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large){border-radius:16px;position:relative;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-inner-index{gap:8px;padding:11px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-head-index{align-items:center;border-bottom:1px solid var(--ljc-line);gap:9px;grid-template-columns:44px minmax(0, 1fr);padding:12px 0 9px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-logo-index{border-radius:10px;height:44px;width:44px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-logo-index img{border-radius:9px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-copy-index{align-self:center;height:44px;justify-content:center;min-height:44px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-kicker-index{display:contents;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-place-index,
  .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-badge-index{display:none;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-type-mobile-index{color:#697386;display:block;font-size:.68rem;font-weight:400;line-height:1.35;max-width:calc(100% - 18px);overflow:hidden;padding:0;position:absolute;right:9px;text-overflow:ellipsis;top:9px;white-space:nowrap;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-company-name-index{align-items:center;display:flex;height:44px;margin:0;min-height:44px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-company-name-index a{align-items:center;color:#697386;display:flex;font-size:.68rem;font-weight:400;line-height:1.35;min-width:0;overflow:hidden;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-company-name-index .ljc-company-name-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-title-index{border-top:0;font-size:.94rem;line-height:1.3;margin-top:0;margin-right:0;margin-bottom:auto;margin-left:0;padding-top:0;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-body-index{display:block;flex:none;padding:0;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-facts-index{display:flex;flex-direction:column;gap:0;margin:0;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-facts-index li{background:transparent;border:0;border-radius:0;display:block;min-height:0;padding:1px 0;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-facts-index li span{display:none;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-facts-index li strong{color:#697386;font-size:.68rem;font-weight:400;line-height:1.35;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-footer-index{gap:8px;padding-top:9px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-footer-index time{font-size:.68rem;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-actions-index{display:flex;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-actions-index .ljc-save-job,
  .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-actions-index .ljc-save-job-card{flex:0 0 36px;height:36px;min-height:36px;padding:0;width:36px;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-actions-index .ljc-save-job [data-save-label],
  .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-card-actions-index .ljc-save-job-card [data-save-label]{display:none;}
 .ljc-front-jobs .ljc-job-card-index:not(.is-index-featured-large) .ljc-job-detail-link-index{flex:1 1 auto;min-height:36px;}
 .ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-inner-index{gap:14px;padding:16px;}
 .ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-head-index{grid-template-columns:60px minmax(0, 1fr);}
 .ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-logo-index{height:60px;width:60px;}
 .ljc-front-jobs .ljc-job-card-index.is-index-featured-large .ljc-job-card-title-index{font-size:1.12rem;}
 .ljc-front-featured-summary{font-size:.84rem;}
}

@media(max-width:390px){
  .ljc-front-category-grid, .ljc-front-latest-grid{gap:8px;}
}

@media (prefers-reduced-motion: reduce) {
  .ljc-front-jobs .ljc-job-card-index{animation:none;}
}

/* 1.3.93: optimasi mobile tanpa containment atau pemaksaan visibility.
 * contain:paint pada hero sengaja tidak digunakan karena dapat memotong shortcode
 * atau card yang berada di dalam/di luar tinggi awal panel pada browser mobile. */
@media (max-width: 782px), (hover: none) and (pointer: coarse) {
  .ljc-front-jobs{overflow:visible;}
 .ljc-front-jobs .ljc-job-card-index, .ljc-front-jobs .ljc-job-card-index:hover,
  .ljc-front-jobs .ljc-job-card-index.is-index-featured{animation:none !important;box-shadow:none;transform:none !important;transition:none !important;}
 .ljc-front-jobs .ljc-save-job, .ljc-front-jobs .ljc-save-job-card,
  .ljc-front-jobs .ljc-job-detail-link-index, .ljc-front-section-link,
  .ljc-front-all-button{filter:none !important;transform:none !important;transition:none !important;}
 .hero-panel.reveal, .hero-panel.reveal.is-visible{-webkit-backdrop-filter:none !important;animation:none !important;backdrop-filter:none !important;box-shadow:none !important;filter:none !important;opacity:1 !important;transform:none !important;transition:none !important;visibility:visible !important;will-change:auto !important;}
}

/* 1.3.94: wrapper shortcode milik tema tidak boleh bergantung pada reveal
 * berbasis rasio di ponsel. Tingginya dapat jauh melebihi viewport sehingga
 * IntersectionObserver tidak pernah mencapai threshold dan `is-visible`
 * tidak ditambahkan. CSS ini mencegah konten tersembunyi sebelum JS footer
 * berjalan dan menghilangkan animasi wrapper besar yang memicu jank. */
@media (max-width: 782px), (hover: none) and (pointer: coarse) {
  .front-page-shortcode.reveal, .front-page-shortcode.reveal.is-visible{animation:none !important;filter:none !important;opacity:1 !important;transform:none !important;transition:none !important;transition-delay:0s !important;visibility:visible !important;will-change:auto !important;}
}