/* UNIPRIMA Journals — portal homepage stylesheet
   Upload in Administration > Site Settings > Appearance.
   Scoped to body:has(.page_index_site); journal pages are excluded.
   Requires a modern browser supporting :has(). No external assets/fonts. */

body:has(.page_index_site) {
  --up-blue:#075985; --up-dark:#064663; --up-green:#39702a;
  --up-text:#263947; --up-muted:#526572; --up-line:#dbe6ed;
  background:#f3f6f9; color:var(--up-text);
}
body:has(.page_index_site) .pkp_structure_page { background:transparent; }
body:has(.page_index_site) .pkp_structure_head {
  position:relative !important; margin:0 !important; padding:0 !important;
  background:linear-gradient(115deg,#064663,#176b99) !important;
  border-bottom:4px solid #4f8f3a; overflow:visible !important;
}
body:has(.page_index_site) .pkp_head_wrapper {
  display:flex !important; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px 24px;
  position:relative !important; width:calc(100% - 48px) !important;
  max-width:1200px !important; height:auto !important; min-height:112px;
  margin:0 auto !important; padding:22px 0 !important; box-sizing:border-box;
}
body:has(.page_index_site) .pkp_site_name_wrapper {
  position:relative !important; display:block !important; float:none !important;
  width:auto !important; max-width:100%; margin:0 !important; padding:0 !important;
  flex:1 1 300px;
}
body:has(.page_index_site) .pkp_site_name {
  position:relative !important; inset:auto !important; display:block !important;
  width:auto !important; height:auto !important; max-height:none !important;
  margin:0 !important; padding:0 !important; overflow:visible !important;
  background:transparent !important; white-space:normal !important;
}
body:has(.page_index_site) .pkp_site_name .is_text {
  display:block; padding:0 !important; margin:0 !important;
  color:#fff !important; font-size:clamp(24px,3vw,36px) !important;
  line-height:1.25 !important; font-weight:700; text-decoration:none;
  overflow-wrap:anywhere;
}
body:has(.page_index_site) .pkp_site_name .is_img img {
  display:block; max-width:100%; width:auto; height:auto;
  max-height:96px; object-fit:contain;
}
body:has(.page_index_site) .pkp_site_nav_toggle { display:none !important; }
body:has(.page_index_site) .pkp_site_nav_menu {
  position:relative !important; inset:auto !important; transform:none !important;
  display:flex !important; flex-wrap:wrap; align-items:center; gap:10px;
  width:auto !important; max-width:100%; height:auto !important;
  margin:0 !important; padding:0 !important; background:transparent !important;
  overflow:visible !important; z-index:100;
}
body:has(.page_index_site) .pkp_navigation_primary_row,
body:has(.page_index_site) .pkp_navigation_primary_wrapper {
  width:auto !important; margin:0 !important; padding:0 !important;
}
body:has(.page_index_site) .pkp_navigation_primary_row:not(:has(a)) { display:none; }
body:has(.page_index_site) #navigationUserWrapper {
  position:relative !important; inset:auto !important; transform:none !important;
  float:none !important; width:auto !important; max-width:100%;
  margin:0 !important; padding:0 !important; background:transparent !important;
}
body:has(.page_index_site) #navigationUser,
body:has(.page_index_site) #navigationPrimary {
  display:flex !important; flex-wrap:wrap; align-items:center; gap:6px;
  margin:0 !important; padding:0 !important; list-style:none;
}
body:has(.page_index_site) #navigationUser > li,
body:has(.page_index_site) #navigationPrimary > li {
  position:relative; display:block; float:none; max-width:100%; margin:0;
}
body:has(.page_index_site) #navigationUser > li > a,
body:has(.page_index_site) #navigationPrimary > li > a {
  display:flex; align-items:center; gap:6px; min-height:44px;
  margin:0 !important; padding:10px 14px !important; box-sizing:border-box;
  color:#fff !important; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.3); border-radius:6px;
  font-size:14px; line-height:1.4; font-weight:600; text-decoration:none;
  overflow-wrap:anywhere;
}
body:has(.page_index_site) #navigationUser > li > a:hover,
body:has(.page_index_site) #navigationPrimary > li > a:hover { background:rgba(255,255,255,.17); }
body:has(.page_index_site) #navigationUser > li > ul,
body:has(.page_index_site) #navigationPrimary > li > ul {
  display:none !important; position:absolute !important; top:100% !important;
  right:0 !important; left:auto !important; transform:none !important;
  width:220px; max-width:calc(100vw - 32px); margin:0; padding:5px 0;
  list-style:none; background:#fff; border:1px solid var(--up-line);
  border-radius:6px; box-shadow:0 8px 24px rgba(0,0,0,.15); z-index:200;
}
body:has(.page_index_site) #navigationUser > li > a[aria-expanded="true"] + ul,
body:has(.page_index_site) #navigationPrimary > li > a[aria-expanded="true"] + ul,
body:has(.page_index_site) #navigationUser > li > ul.show,
body:has(.page_index_site) #navigationPrimary > li > ul.show { display:block !important; }
body:has(.page_index_site) .pkp_site_nav_menu ul ul li { display:block; margin:0; }
body:has(.page_index_site) .pkp_site_nav_menu ul ul a {
  display:block; padding:10px 14px; color:var(--up-blue) !important;
  line-height:1.5; white-space:normal; text-decoration:none;
}
body:has(.page_index_site) .pkp_site_nav_menu ul ul a:hover { background:#eef6fa; }
body:has(.page_index_site) .task_count {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:22px; height:22px; padding:0 5px; box-sizing:border-box;
  border-radius:20px; background:var(--up-green); color:#fff;
}

/* CONTENT: remove the default large gutters and decorative dividers. */
body:has(.page_index_site) .pkp_structure_content {
  width:calc(100% - 48px) !important; max-width:1200px !important;
  margin:0 auto !important; padding:32px 0 42px !important;
  border:0 !important; background:transparent !important; box-sizing:border-box;
}
body:has(.page_index_site) .pkp_structure_main {
  float:none !important; width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important; border:0 !important;
  min-width:0; background:transparent;
}
body:has(.page_index_site) .pkp_structure_main::before,
body:has(.page_index_site) .pkp_structure_main::after { display:none !important; }
body:has(.page_index_site) .page_index_site { margin:0; padding:0; }
body:has(.page_index_site) .page_index_site .about_site {
  margin:0 0 28px !important; padding:26px 30px !important;
  background:linear-gradient(110deg,#fff,#eff7fb);
  border:1px solid var(--up-line); border-left:4px solid #4f8f3a;
  border-radius:10px; box-shadow:0 3px 14px rgba(18,58,80,.04);
}
body:has(.page_index_site) .about_site p {
  margin:0 0 12px; color:var(--up-text); font-size:15px; line-height:1.75;
}
body:has(.page_index_site) .about_site p:last-child { margin-bottom:0; }
body:has(.page_index_site) .about_site p:first-child > strong:only-child {
  display:block; color:var(--up-dark); font-size:clamp(21px,2.2vw,28px); line-height:1.35;
}
body:has(.page_index_site) .about_site em { color:var(--up-muted); font-size:14px; }
body:has(.page_index_site) .about_site h1,
body:has(.page_index_site) .about_site h2 { color:var(--up-dark); line-height:1.3; margin:0 0 12px; }
body:has(.page_index_site) .page_index_site .journals { margin:0 !important; padding:0 !important; border:0 !important; }
body:has(.page_index_site) .journals > h2 {
  position:static !important; width:auto !important; height:auto !important;
  clip:auto !important; clip-path:none !important; overflow:visible !important;
  margin:0 0 18px !important; padding:0 0 10px !important;
  font-size:23px; line-height:1.35; color:var(--up-dark);
  border-bottom:2px solid #dce8ef;
}
body:has(.page_index_site) .journals > ul {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px;
  margin:0 !important; padding:0 !important; list-style:none;
}
body:has(.page_index_site) .journals > ul > li {
  display:flex !important; align-items:flex-start; gap:20px;
  float:none !important; width:auto !important; min-width:0;
  margin:0 !important; padding:24px !important; box-sizing:border-box;
  background:#fff; border:1px solid var(--up-line); border-radius:10px;
  box-shadow:0 4px 16px rgba(18,58,80,.045);
}
body:has(.page_index_site) .journals > ul > li::before,
body:has(.page_index_site) .journals > ul > li::after { display:none !important; }
body:has(.page_index_site) .journals .thumb {
  position:static !important; float:none !important; flex:0 0 106px;
  width:106px !important; max-width:106px; margin:0 !important; padding:0 !important;
}
body:has(.page_index_site) .journals .thumb a { display:block; }
body:has(.page_index_site) .journals .thumb img {
  display:block; width:100% !important; max-width:100% !important; height:auto !important;
  margin:0; border:1px solid #e4ebf0; border-radius:5px;
  box-sizing:border-box; box-shadow:0 4px 10px rgba(0,0,0,.08);
}
body:has(.page_index_site) .journals .body {
  position:static !important; float:none !important; flex:1 1 0;
  width:auto !important; min-width:0; margin:0 !important; padding:0 !important;
}
body:has(.page_index_site) .journals h3 { margin:0 0 12px; font-size:19px; line-height:1.45; }
body:has(.page_index_site) .journals h3 a { color:var(--up-blue); text-decoration:none; overflow-wrap:anywhere; }
body:has(.page_index_site) .journals h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
body:has(.page_index_site) .journals .description { margin:0; padding:0; color:var(--up-muted); font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
body:has(.page_index_site) .journals .description p { margin:0 0 12px; line-height:inherit; }
body:has(.page_index_site) .journals .links {
  display:flex !important; flex-wrap:wrap; gap:9px; margin:18px 0 0 !important;
  padding:0 !important; list-style:none;
}
body:has(.page_index_site) .journals .links li { display:block; float:none; margin:0 !important; padding:0 !important; }
body:has(.page_index_site) .journals .links a {
  display:flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px 14px; box-sizing:border-box;
  border:1px solid var(--up-blue); border-radius:6px;
  color:var(--up-blue); background:#fff; font-size:13px; line-height:1.4;
  font-weight:600; text-decoration:none;
}
body:has(.page_index_site) .journals .links .view a { color:#fff; background:var(--up-blue); }
body:has(.page_index_site) .journals .links a:hover { color:#fff; background:var(--up-dark); border-color:var(--up-dark); }
body:has(.page_index_site) a:focus-visible,
body:has(.page_index_site) button:focus-visible { outline:3px solid #b2d86c; outline-offset:3px; }
body:has(.page_index_site) .pkp_structure_footer_wrapper { background:#063e59; border-top:3px solid #4f8f3a; }
body:has(.page_index_site) .pkp_structure_footer {
  width:calc(100% - 48px); max-width:1200px; margin:0 auto;
  padding:24px 0; color:#fff; box-sizing:border-box;
}
body:has(.page_index_site) .pkp_structure_footer a { color:#fff; }
body:has(.page_index_site) .pkp_brand_footer { margin:0; padding:0; text-align:right; }
body:has(.page_index_site) .pkp_brand_footer img { width:110px; max-width:100%; height:auto; filter:brightness(0) invert(1); }
@media (hover:hover) {
  body:has(.page_index_site) #navigationUser > li:hover > ul,
  body:has(.page_index_site) #navigationUser > li:focus-within > ul,
  body:has(.page_index_site) #navigationPrimary > li:hover > ul,
  body:has(.page_index_site) #navigationPrimary > li:focus-within > ul { display:block !important; }
}
@media (max-width:1050px) {
  body:has(.page_index_site) .journals > ul { grid-template-columns:minmax(0,1fr); }
  body:has(.page_index_site) .journals .thumb { flex-basis:130px; width:130px !important; max-width:130px; }
}
@media (max-width:600px) {
  body:has(.page_index_site) .pkp_head_wrapper {
    width:calc(100% - 32px) !important; min-height:0; padding:20px 0 !important;
    gap:14px; align-items:flex-start;
  }
  body:has(.page_index_site) .pkp_site_name_wrapper { flex-basis:100%; }
  body:has(.page_index_site) .pkp_site_nav_menu { margin-left:auto !important; }
  body:has(.page_index_site) .pkp_structure_content {
    width:calc(100% - 32px) !important; padding:20px 0 28px !important;
  }
  body:has(.page_index_site) .page_index_site .about_site { padding:20px !important; margin-bottom:22px !important; }
  body:has(.page_index_site) .journals > ul { gap:16px; }
  body:has(.page_index_site) .journals > ul > li { padding:20px !important; gap:16px; flex-direction:column; }
  body:has(.page_index_site) .journals .thumb { flex:0 0 auto; width:100px !important; max-width:100px; }
  body:has(.page_index_site) .journals .body { flex:0 1 auto; width:100% !important; }
  body:has(.page_index_site) .journals h3 { font-size:18px; }
  body:has(.page_index_site) .pkp_structure_footer { width:calc(100% - 32px); }
}

/* Footer portal: alamat kampus dan atribusi OJS/PKP */
body:has(.page_index_site) .pkp_structure_footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 24px;
  padding: 18px 0 !important;
}

body:has(.page_index_site) .pkp_footer_content {
  flex: 1 1 300px;
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.6;
}

body:has(.page_index_site) .pkp_footer_content p {
  margin: 0 !important;
}

body:has(.page_index_site) .pkp_brand_footer {
  flex: 0 0 auto;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body:has(.page_index_site) .pkp_brand_footer img {
  display: block;
  width: 100px;
  height: auto;
}

/* Narasi PT otomatis melalui CSS */
body:has(.page_index_site) .pkp_structure_footer_wrapper::after {
  content: "Website development, hosting, and technical support provided by PT CEDDI PANRITA INOVASI.";
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

@media (max-width: 600px) {
  body:has(.page_index_site) .pkp_structure_footer {
    flex-direction: column;
    gap: 12px;
    padding: 16px 0 !important;
    text-align: center;
  }

  body:has(.page_index_site) .pkp_footer_content {
    flex: 0 1 auto;
    width: 100% !important;
  }

  body:has(.page_index_site) .pkp_brand_footer {
    text-align: center;
  }

  body:has(.page_index_site) .pkp_brand_footer img {
    width: 85px;
    margin: 0 auto;
  }
}