/* KSAIKM brand overrides for OJS Pragma
   Palette from https://ksaikm.kr/style.css
   Font size capped at 15px */

:root {
  --ksaikm-primary: #0A2463;
  --ksaikm-secondary: #1e3a8a;
  --ksaikm-accent: #10b981;
  --ksaikm-bg: #f8fafc;
  --ksaikm-surface: #ffffff;
  --ksaikm-item: #e8eef7;
  --ksaikm-text: #0A2463;
  --ksaikm-body: #334155;
  --ksaikm-muted: #64748b;
  --ksaikm-border: #d0dae8;
  --ksaikm-font-max: 15px;
}

/* ========== Global font + size cap (max 15px) ========== */
html {
  font-size: 15px !important;
}

html, body, button, input, select, textarea,
.btn, a, p, li, span, label, td, th, dt, dd,
.main-menu, .main-header, .pkp_structure_main {
  font-family: "Noto Sans KR", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body {
  background-color: var(--ksaikm-bg) !important;
  color: var(--ksaikm-body) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

h1, h2, h3, h4, h5, h6,
.main-menu__title,
.journal-desc__title,
.announcement__title_boxed,
.issue_title, .article__title,
.obj_article_details .page_title,
.metadata {
  font-family: "Noto Sans KR", "Roboto", sans-serif !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: var(--ksaikm-primary) !important;
  letter-spacing: -0.01em;
}

p, li, td, th, dd, blockquote, cite,
.article__meta, .author, .authors,
.issue_summary, .abstract {
  font-size: 15px !important;
}

small, .metadata, aside, .date, .published,
.pagination, .breadcrumb, figcaption {
  font-size: 13px !important;
  color: var(--ksaikm-muted) !important;
}

h1, h2, h3, h4, h5, h6,
.main-menu__title a,
.main-menu__title span,
.btn, .btn-primary, .btn-secondary,
.pkp_nav_list a, .nav-link,
.obj_galley_link, a.read_more {
  font-size: 15px !important;
}

/* ========== Surfaces: bg + items harmony ========== */
.main__content,
main.container,
.page,
.journal-desc,
.announcement__content_boxed,
.carousel-item,
.recent-issues,
.obj_issue_toc,
.obj_article_details,
.pkp_block,
aside.announcement__content_boxed,
section.journal-desc {
  background-color: var(--ksaikm-surface) !important;
  border-color: var(--ksaikm-border) !important;
}

.journal-desc,
.announcement__content_boxed,
.pkp_block,
.article-summary,
.obj_article_summary,
.recent-issues__item,
.issue-summary {
  background-color: var(--ksaikm-surface) !important;
  border: 1px solid var(--ksaikm-border) !important;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(10, 36, 99, 0.06);
}

/* Soft item chips / bordered boxes on light navy bg */
.journal-desc {
  border: 1px solid var(--ksaikm-border) !important;
  background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%) !important;
  padding: 1rem !important;
}

figure[style*="background-color"],
.homepage-image,
.main__content figure {
  background-color: var(--ksaikm-item) !important;
  border-radius: 8px;
  overflow: hidden;
}

figure img {
  mix-blend-mode: normal !important;
}

/* ========== Header ========== */
.main-header,
header.main-header,
.container-fluid.main-header {
  background-color: var(--ksaikm-primary) !important;
  background-image: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  color: #ffffff !important;
  padding-bottom: 0.5rem;
}

.main-header__admin {
  overflow: visible !important;
  position: relative !important;
  z-index: 2100 !important;
}

/* Account/user top-level links only — not dropdown children */
.main-header__admin > #navigationUser > li > a,
#navigationUser > li > a.main-menu__nav-link,
#languageNav a,
#languageNav button {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  background: transparent !important;
}

.main-header__admin > #navigationUser > li > a:hover,
#navigationUser > li > a.main-menu__nav-link:hover,
#languageNav a:hover {
  color: var(--ksaikm-accent) !important;
}

#navigationUser {
  overflow: visible !important;
  position: relative !important;
}

#navigationUser > li.dropdown {
  position: relative !important;
}

.main-menu,
.navbar.main-menu {
  background: transparent !important;
}

.main-menu__title,
.main-menu__title a,
.main-menu__title span {
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.main-menu__title a:hover {
  color: var(--ksaikm-accent) !important;
}

/* Top-level nav only (do NOT paint dropdown links white) */
.main-menu__nav > .navbar-nav > .main-menu__nav-item > .main-menu__nav-link,
#navigationPrimary > li > a.main-menu__nav-link {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  background: transparent !important;
}

.main-menu__nav > .navbar-nav > .main-menu__nav-item > .main-menu__nav-link:hover,
.main-menu__nav > .navbar-nav > .main-menu__nav-item > .main-menu__nav-link:focus,
#navigationPrimary > li > a.main-menu__nav-link:hover,
#navigationPrimary > li > a.main-menu__nav-link:focus {
  color: var(--ksaikm-accent) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Allow dropdown to escape header */
.main-header,
.main-menu,
.main-menu__nav,
.navbar-collapse,
.navbar-nav {
  overflow: visible !important;
}

.main-menu__nav-item.dropdown {
  position: relative !important;
}

/* Frontend header dropdowns ONLY — do not affect admin UI selects */
.main-header #navigationPrimary .dropdown-menu,
.main-header .main-menu .dropdown-menu,
.main-header #navigationUser .dropdown-menu {
  display: none;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 2000 !important;
  min-width: 12rem !important;
  margin: 0 !important;
  padding: 0.35rem 0 !important;
  background-color: #ffffff !important;
  border: 1px solid var(--ksaikm-border) !important;
  border-radius: 6px !important;
  box-shadow: 0 10px 28px rgba(10, 36, 99, 0.18) !important;
  text-align: left !important;
}

.main-header #navigationPrimary .dropdown-menu.show,
.main-header .main-menu .dropdown-menu.show,
.main-header #navigationUser .dropdown-menu.show {
  display: block !important;
}

.main-header #navigationPrimary .dropdown-menu > li,
.main-header .main-menu .dropdown-menu > li,
.main-header #navigationUser .dropdown-menu > li,
.main-header .dropdown-menu > .dropdown-item {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.main-header #navigationPrimary .dropdown-menu a,
.main-header #navigationPrimary .dropdown-menu .dropdown-item a,
.main-header .main-menu .dropdown-menu a,
.main-header #navigationUser .dropdown-menu a,
.main-header .dropdown-menu .dropdown-item a {
  display: block !important;
  width: 100% !important;
  color: #0A2463 !important;
  background-color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 0.55rem 1rem !important;
  text-decoration: none !important;
  text-align: left !important;
}

.main-header #navigationPrimary .dropdown-menu a:hover,
.main-header #navigationPrimary .dropdown-menu a:focus,
.main-header .main-menu .dropdown-menu a:hover,
.main-header #navigationUser .dropdown-menu a:hover,
.main-header .dropdown-menu .dropdown-item a:hover {
  background-color: var(--ksaikm-accent) !important;
  color: #ffffff !important;
}

/* Desktop: open on hover (and keep click working) */
@media (min-width: 992px) {
  .main-menu__nav-item.dropdown:hover > .dropdown-menu,
  .main-menu__nav-item.dropdown:focus-within > .dropdown-menu,
  #navigationUser > li.dropdown:hover > .dropdown-menu,
  #navigationUser > li.dropdown:focus-within > .dropdown-menu {
    display: block !important;
  }
}

/* Account menu dropdown — beat #navigationUser a white color */
#navigationUser .dropdown-menu,
#navigationUser ul.dropdown-menu,
.main-header__admin .dropdown-menu {
  display: none;
  position: absolute !important;
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  z-index: 2200 !important;
  min-width: 12rem !important;
  margin: 0 !important;
  padding: 0.35rem 0 !important;
  background-color: #ffffff !important;
  border: 1px solid var(--ksaikm-border) !important;
  border-radius: 6px !important;
  box-shadow: 0 10px 28px rgba(10, 36, 99, 0.18) !important;
  text-align: left !important;
}

#navigationUser .dropdown-menu.show,
.main-header__admin .dropdown-menu.show {
  display: block !important;
}

#navigationUser .dropdown-menu > li,
#navigationUser .dropdown-menu > .dropdown-item {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

#navigationUser .dropdown-menu a,
#navigationUser .dropdown-menu li a,
#navigationUser .dropdown-menu .dropdown-item,
#navigationUser .dropdown-menu .dropdown-item a,
.main-header__admin .dropdown-menu a {
  display: block !important;
  width: 100% !important;
  color: #0A2463 !important;
  background-color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 0.55rem 1rem !important;
  text-decoration: none !important;
  text-align: left !important;
}

#navigationUser .dropdown-menu a:hover,
#navigationUser .dropdown-menu a:focus,
#navigationUser .dropdown-menu .dropdown-item:hover,
#navigationUser .dropdown-menu .dropdown-item a:hover,
.main-header__admin .dropdown-menu a:hover {
  background-color: var(--ksaikm-accent) !important;
  color: #ffffff !important;
}

/* Hamburger on dark header */
.hamburger__icon,
.hamburger__icon::before,
.hamburger__icon::after {
  background-color: #ffffff !important;
}

/* ========== Links & buttons (frontend only) ========== */
body:not(.app--is-admin-page) .main__content a,
body:not(.app--is-admin-page) .main-footer a,
.page_index a, .page_article a, .page_issue a, .page_about a,
.page_search a, .page_login a, .page_user a, .page_announcement a {
  color: var(--ksaikm-secondary);
}

body:not(.app--is-admin-page) .main__content a:hover,
.main-footer a:hover {
  color: var(--ksaikm-accent);
}

.btn,
.btn-primary,
.btn-secondary,
a.btn,
.obj_galley_link,
.cmp_button {
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  padding: 0.45rem 0.9rem !important;
  border-radius: 6px !important;
  max-width: 100%;
}

.btn-primary,
a.btn-primary,
.obj_galley_link {
  background-color: var(--ksaikm-accent) !important;
  border: 1px solid var(--ksaikm-accent) !important;
  color: #ffffff !important;
}

.btn-primary:hover,
.obj_galley_link:hover {
  background-color: #0ea5e9 !important;
  border-color: #0ea5e9 !important;
  color: #ffffff !important;
}

.btn-secondary,
a.btn-secondary {
  background-color: transparent !important;
  border: 1px solid var(--ksaikm-secondary) !important;
  color: var(--ksaikm-secondary) !important;
}

.btn-secondary:hover {
  background-color: var(--ksaikm-secondary) !important;
  color: #ffffff !important;
}

/* ========== Issue / article list items ========== */
.issue-section__title,
.section_title,
.current_issue .title,
.article__title a,
.obj_article_summary .title,
.obj_article_summary .title a {
  color: var(--ksaikm-primary) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.obj_article_summary,
.article-summary,
.issue_item {
  background: var(--ksaikm-surface) !important;
  border-bottom: 1px solid var(--ksaikm-border) !important;
  padding: 0.75rem 0 !important;
}

.obj_article_summary:hover,
.article-summary:hover {
  background: var(--ksaikm-item) !important;
}

/* ========== Footer ========== */
footer,
.main-footer,
#pragma_content_footer,
.pkp_structure_footer {
  background-color: var(--ksaikm-primary) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  border-top: none !important;
}

footer a,
.main-footer a,
#pragma_content_footer a {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 13px !important;
}

footer a:hover {
  color: var(--ksaikm-accent) !important;
}

/* ========== Forms ========== */
input, select, textarea, .form-control {
  font-size: 15px !important;
  border-color: var(--ksaikm-border) !important;
  background: var(--ksaikm-surface) !important;
  color: var(--ksaikm-body) !important;
}

/* Mobile collapsed menu */
.main-menu__nav.collapse.show,
.navbar-collapse.show {
  background: var(--ksaikm-surface) !important;
  border-radius: 8px;
  padding: 0.5rem !important;
}

.navbar-collapse.show a {
  color: var(--ksaikm-primary) !important;
}

/* Absolute font-size ceiling: 15px (frontend public pages only) */
body:not(.app--is-admin-page) {
  font-size: 15px !important;
}
body:not(.app--is-admin-page) .main-header,
body:not(.app--is-admin-page) .main__content,
body:not(.app--is-admin-page) .main-footer {
  font-size: 15px;
}
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body .main-menu__title, html body .main-menu__title a, html body .main-menu__title span,
html body .btn, html body .btn-primary, html body .btn-secondary,
html body .article__title, html body .article__title a,
html body .journal-desc__title, html body .announcement__title_boxed,
html body .obj_article_summary .title, html body .obj_article_summary .title a {
  font-size: 15px !important;
}
html body small, html body .metadata, html body aside, html body footer, html body footer * {
  font-size: 13px !important;
}

/* ========== KSAIKM footer ========== */
.main-footer.ksaikm-footer,
footer.ksaikm-footer {
  background-color: var(--ksaikm-primary, #0A2463) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  padding: 2.5rem 0 1.5rem !important;
}

.ksaikm-footer a {
  color: rgba(255, 255, 255, 0.88) !important;
  text-decoration: none !important;
  font-size: 13px !important;
}
.ksaikm-footer a:hover {
  color: var(--ksaikm-accent, #10b981) !important;
}

.ksaikm-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 1.2fr;
  gap: 1.75rem;
  align-items: start;
  margin-bottom: 1.5rem;
}

@media (max-width: 768px) {
  .ksaikm-footer__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

.ksaikm-footer__brand strong,
.ksaikm-footer__links strong,
.ksaikm-footer__meta strong {
  display: block;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  margin-bottom: 0.35rem;
}

.ksaikm-footer__en {
  display: block;
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 12px !important;
  margin-bottom: 0.65rem;
}

.ksaikm-footer__brand p,
.ksaikm-footer__meta p {
  margin: 0 0 0.4rem !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.ksaikm-footer__meta span {
  display: inline-block;
  min-width: 4.2em;
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 12px !important;
  margin-right: 0.35rem;
}

.ksaikm-footer__links ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.4rem 0 0 !important;
}
.ksaikm-footer__links li {
  margin: 0 0 0.35rem !important;
  font-size: 13px !important;
}

.ksaikm-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.ksaikm-footer__copy,
.ksaikm-footer__powered {
  margin: 0 !important;
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.55) !important;
}

.ksaikm-footer__powered a {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Hide leftover OJS brand image if any theme template still outputs it */
.main-footer img[src*="ojs_brand"],
.pkp_brand_footer,
.main-footer__block .col-2.col-sm-1 {
  display: none !important;
}