/* =============================================================
   VECTOR — Aviation Intelligence
   Journal Stylesheet for OJS (Open Journal Systems)
   v3 — unified navy header + nav, readable dropdowns

   Palette
     Midnight Navy   #0B1E3F  primary / headers
     Navy accent     #122C5A  hover, dropdown bg
     Electric Cyan   #6FD3F7  links / accent
     Deep Cyan       #2E9BD6  hover / focus
     Cream           #F5EEE0  soft backgrounds / text on navy

   Upload: Settings → Website → Appearance → Advanced
           → Journal style sheet
   ============================================================= */

/* ---------- 0. Design tokens ------------------------------- */
:root,
html,
body,
.pkp_structure_page {
  --vec-navy:     #0B1E3F;
  --vec-navy-2:   #122C5A;
  --vec-navy-3:   #1B3B78;
  --vec-cyan:     #6FD3F7;
  --vec-cyan-2:   #2E9BD6;
  --vec-cyan-3:   #1B6FA6;
  --vec-cream:    #F5EEE0;
  --vec-ink:      #0E1726;
  --vec-slate:    #566273;
  --vec-hairline: #E5E1D6;
  --vec-paper:    #FFFFFF;

  /* Re-bind Manuscript theme variables to kill default yellow/cyan */
  --color-primary: #0B1E3F !important;
  --color-second:  #6FD3F7 !important;
  --color-third:   #2E9BD6 !important;
  --color-bg:      #FFFFFF !important;
  --color-text:    #0E1726 !important;

  --vec-font-serif: "Source Serif Pro", "Source Serif 4", Georgia,
                    "Nanum Myeongjo", serif;
  --vec-font-sans:  "Inter", "Source Sans Pro", "Noto Sans KR",
                    -apple-system, BlinkMacSystemFont, "Segoe UI",
                    Roboto, sans-serif;
  --vec-font-mono:  "JetBrains Mono", "IBM Plex Mono", ui-monospace,
                    SFMono-Regular, Menlo, monospace;

  --vec-radius:    6px;
  --vec-radius-lg: 12px;
  --vec-shadow:    0 1px 2px rgba(11, 30, 63, 0.06),
                   0 8px 24px rgba(11, 30, 63, 0.06);
  --vec-ring:      0 0 0 3px rgba(111, 211, 247, 0.45);
}

/* ---------- 1. Typography ---------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body,
.pkp_structure_page {
  font-family: var(--vec-font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--vec-ink);
  background: var(--vec-cream);
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--vec-font-serif);
  color: var(--vec-navy);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
h1 { font-size: 2.25rem; margin-top: 0; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.25rem; }
p  { margin: 0 0 1rem; }

a, a:link {
  color: var(--vec-cyan-2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
a:hover, a:focus {
  color: var(--vec-navy);
  border-bottom-color: var(--vec-cyan);
}
a:focus-visible {
  outline: none;
  box-shadow: var(--vec-ring);
  border-radius: 2px;
}
::selection { background: var(--vec-cyan); color: var(--vec-navy); }

/* ---------- 2. Header / Masthead --------------------------- */
header.pkp_structure_head,
.pkp_head_wrapper,
.pkp_site_name_wrapper {
  background: var(--vec-navy) !important;
  color: var(--vec-cream) !important;
  border-bottom: 0 !important;
  box-shadow: var(--vec-shadow);
}
header.pkp_structure_head a,
.pkp_site_name a,
.pkp_site_name_text {
  color: var(--vec-cream) !important;
  border-bottom: none !important;
}
header.pkp_structure_head a:hover { color: var(--vec-cyan) !important; }
.pkp_site_name .is_img + .is_text { display: none !important; }
.pkp_site_name img { max-height: 72px; width: auto; }

/* ---------- 3. Primary navigation — unified navy ----------- */
/* Extra-specific `body` prefix beats most theme selectors */
body .pkp_navigation_primary_row,
body nav.pkp_navigation_primary_row,
body .pkp_site_nav_wrapper,
body .pkp_site_nav,
body .pkp_site_nav_menu,
body #siteNav,
body nav#siteNav,
body .cmp_navigation_primary,
body .pkp_navigation_wrapper,
body .pkp_structure_head + nav,
body nav.pkp_navigation_primary,
body .pkp_navigation_primary,
body ul.pkp_navigation_primary,
body .pkp_nav_wrap,
body nav[role="navigation"].pkp_navigation_primary {
  background: var(--vec-navy) !important;
  background-color: var(--vec-navy) !important;
  background-image: none !important;
  border-top: 1px solid rgba(111,211,247,0.15) !important;
  border-bottom: 3px solid var(--vec-cyan) !important;
  box-shadow: none !important;
}

/* Top-level nav items */
body .pkp_navigation_primary > li,
body .pkp_navigation_primary > li > a,
body #siteNav > ul > li > a,
body .cmp_navigation_primary > ul > li > a,
body .pkp_site_nav li a {
  background: transparent !important;
  color: var(--vec-cream) !important;
  opacity: 1 !important;
  font-family: var(--vec-font-sans) !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 0.82rem !important;
  padding: 0.95rem 1.15rem !important;
  border: 0 !important;
}
body .pkp_navigation_primary > li > a:hover,
body .pkp_navigation_primary > li.current > a,
body .pkp_navigation_primary > li.current_section > a,
body .pkp_navigation_primary > li:hover > a {
  color: var(--vec-cyan) !important;
  background: rgba(111,211,247,0.08) !important;
}

/* Dropdown submenu (e.g. ABOUT → About the Journal / Submissions / …) */
body .pkp_navigation_primary li ul,
body .pkp_navigation_primary ul ul,
body #siteNav li ul,
body .cmp_navigation_primary li ul {
  background: var(--vec-navy-2) !important;
  background-color: var(--vec-navy-2) !important;
  border: 1px solid rgba(111,211,247,0.25) !important;
  box-shadow: 0 8px 24px rgba(11,30,63,0.35) !important;
  opacity: 1 !important;
  padding: 0.3rem 0 !important;
}
body .pkp_navigation_primary li ul li a,
body #siteNav li ul a,
body .cmp_navigation_primary li ul a {
  color: var(--vec-cream) !important;
  opacity: 1 !important;
  background: transparent !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  padding: 0.55rem 1rem !important;
}
body .pkp_navigation_primary li ul li a:hover,
body .pkp_navigation_primary li ul li.current a,
body #siteNav li ul a:hover {
  color: var(--vec-cyan) !important;
  background: rgba(111,211,247,0.12) !important;
}

/* Dropdown indicator arrow */
body .pkp_navigation_primary .dropdown-toggle::after,
body .pkp_navigation_primary li.has-submenu > a::after,
body .pkp_navigation_primary .fa-caret-down {
  color: var(--vec-cyan) !important;
  border-top-color: var(--vec-cyan) !important;
}

/* User nav (Login/Register) */
body .pkp_navigation_user,
body .pkp_navigation_user a {
  background: transparent !important;
  color: var(--vec-cream) !important;
}
body .pkp_navigation_user a:hover { color: var(--vec-cyan) !important; }

/* Catch-all: any lingering inner nav container paint */
body [class*="navigation_primary"] > *:not(ul):not(li):not(a) {
  background-color: transparent !important;
}

/* ---------- 4. Search box ---------------------------------- */
#siteSearchForm input[type="text"],
.pkp_search input[type="text"] {
  background: var(--vec-paper);
  border: 1px solid var(--vec-hairline);
  border-radius: var(--vec-radius);
  padding: 0.5rem 0.75rem;
  color: var(--vec-ink);
}
#siteSearchForm input[type="text"]:focus {
  border-color: var(--vec-cyan);
  box-shadow: var(--vec-ring);
  outline: none;
}

/* ---------- 5. Page structure ------------------------------ */
.pkp_structure_main,
.pkp_structure_content { background: var(--vec-paper); }
.pkp_structure_main {
  border-radius: var(--vec-radius-lg);
  box-shadow: var(--vec-shadow);
  padding: 2rem clamp(1rem, 4vw, 3rem);
  margin-top: 1.5rem;
  margin-bottom: 2rem;
}

.pkp_structure_sidebar .pkp_block {
  background: var(--vec-paper);
  border: 1px solid var(--vec-hairline);
  border-radius: var(--vec-radius);
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 2px rgba(11, 30, 63, 0.04);
}
.pkp_structure_sidebar .pkp_block .title {
  font-family: var(--vec-font-sans);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--vec-navy);
  margin: 0 0 0.6rem;
  padding: 0 0 0.6rem;
  border-bottom: 1px solid var(--vec-hairline);
}

/* ---------- 6. Breadcrumbs --------------------------------- */
.cmp_breadcrumbs,
nav.cmp_breadcrumbs {
  background: transparent !important;
  color: var(--vec-slate) !important;
  font-size: 0.88rem;
  padding: 1rem 0 0.5rem !important;
  border: 0 !important;
}
.cmp_breadcrumbs a,
.cmp_breadcrumbs ol li a {
  color: var(--vec-navy) !important;
  font-weight: 500;
}
.cmp_breadcrumbs a:hover { color: var(--vec-cyan-2) !important; }

/* ---------- 7. TOC / article cards ------------------------- */
.obj_issue_toc .heading,
.obj_issue_toc h2 {
  font-family: var(--vec-font-serif);
  color: var(--vec-navy);
  border-bottom: 2px solid var(--vec-navy);
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
}
.obj_issue_toc .cover img,
.obj_issue_summary .cover img {
  border-radius: var(--vec-radius);
  box-shadow: var(--vec-shadow);
}
.obj_article_summary {
  border: 1px solid var(--vec-hairline);
  border-left: 3px solid var(--vec-cyan);
  border-radius: var(--vec-radius);
  padding: 1rem 1.2rem;
  margin-bottom: 1rem;
  background: #FDFBF5;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.obj_article_summary:hover {
  transform: translateY(-1px);
  box-shadow: var(--vec-shadow);
  border-left-color: var(--vec-navy);
}
.obj_article_summary .title,
.obj_article_summary h3 {
  font-family: var(--vec-font-serif);
  font-size: 1.1rem;
  margin: 0 0 0.35rem;
}
.obj_article_summary .title a { color: var(--vec-navy); border-bottom: none; }
.obj_article_summary .title a:hover { color: var(--vec-cyan-2); }
.obj_article_summary .authors,
.obj_article_summary .meta {
  color: var(--vec-slate);
  font-size: 0.9rem;
}
.obj_issue_toc .section h2,
.obj_issue_toc .sectionHeading {
  font-size: 1rem;
  font-family: var(--vec-font-sans);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--vec-navy);
  background: var(--vec-cream);
  padding: 0.5rem 0.9rem;
  border-radius: var(--vec-radius);
  border-left: 3px solid var(--vec-cyan);
  margin: 1.5rem 0 1rem;
}

/* ---------- 8. Article page -------------------------------- */
article.obj_article_details .page_title,
article.obj_article_details h1 {
  font-size: 2rem;
  line-height: 1.2;
  margin-bottom: 0.75rem;
}
.obj_article_details .authors {
  font-family: var(--vec-font-sans);
  color: var(--vec-slate);
  font-size: 1rem;
  margin-bottom: 1rem;
}
.obj_article_details .item.abstract {
  background: var(--vec-cream);
  border-left: 3px solid var(--vec-cyan);
  padding: 1rem 1.2rem;
  border-radius: var(--vec-radius);
  margin-bottom: 1.5rem;
}
.obj_article_details .item.abstract .label {
  font-family: var(--vec-font-sans);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--vec-navy);
  font-size: 0.78rem;
  margin-bottom: 0.4rem;
}
.obj_article_details .item.galleys a,
.obj_article_details .download a {
  display: inline-block;
  padding: 0.55rem 1.1rem;
  background: var(--vec-navy) !important;
  color: var(--vec-cream) !important;
  border-radius: var(--vec-radius);
  border: 0;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background .15s ease, transform .15s ease;
}
.obj_article_details .item.galleys a:hover,
.obj_article_details .download a:hover {
  background: var(--vec-cyan-2) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* ---------- 9. Buttons ------------------------------------- */
.pkp_button,
button.pkp_button,
a.pkp_button,
.btn,
input[type="submit"] {
  background: var(--vec-navy) !important;
  color: var(--vec-cream) !important;
  border: 1px solid var(--vec-navy) !important;
  border-radius: var(--vec-radius) !important;
  padding: 0.55rem 1.15rem !important;
  font-family: var(--vec-font-sans) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}
.pkp_button:hover,
.btn:hover,
input[type="submit"]:hover {
  background: var(--vec-cyan-2) !important;
  border-color: var(--vec-cyan-2) !important;
  color: #fff !important;
}
.pkp_button_primary { background: var(--vec-cyan-2) !important; border-color: var(--vec-cyan-2) !important; }
.pkp_button_primary:hover { background: var(--vec-navy) !important; border-color: var(--vec-navy) !important; }

/* ---------- 10. Forms -------------------------------------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="number"],
select, textarea {
  background: var(--vec-paper);
  border: 1px solid var(--vec-hairline);
  border-radius: var(--vec-radius);
  padding: 0.5rem 0.75rem;
  font-family: var(--vec-font-sans);
  font-size: 0.95rem;
  color: var(--vec-ink);
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--vec-cyan);
  box-shadow: var(--vec-ring);
}

/* ---------- 11. Tables ------------------------------------- */
table { border-collapse: collapse; width: 100%; margin: 1rem 0; }
th {
  background: var(--vec-navy);
  color: var(--vec-cream);
  text-align: left;
  padding: 0.6rem 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
td { padding: 0.55rem 0.8rem; border-bottom: 1px solid var(--vec-hairline); }
tbody tr:nth-child(odd) { background: #FDFBF5; }

/* ---------- 12. Blockquote / code -------------------------- */
blockquote {
  border-left: 3px solid var(--vec-cyan);
  background: var(--vec-cream);
  margin: 1.25rem 0;
  padding: 0.85rem 1.1rem;
  font-family: var(--vec-font-serif);
  font-style: italic;
  color: var(--vec-navy-2);
  border-radius: 0 var(--vec-radius) var(--vec-radius) 0;
}
code, pre, kbd, samp { font-family: var(--vec-font-mono); font-size: 0.92em; }
code {
  background: var(--vec-cream);
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  color: var(--vec-navy);
}
pre {
  background: var(--vec-navy);
  color: var(--vec-cream);
  padding: 1rem 1.1rem;
  border-radius: var(--vec-radius);
  overflow-x: auto;
}
pre code { background: transparent; color: inherit; padding: 0; }

/* ---------- 13. Announcements ------------------------------ */
.cmp_announcement,
.obj_announcement_summary {
  border: 1px solid var(--vec-hairline);
  border-top: 3px solid var(--vec-cyan);
  border-radius: var(--vec-radius);
  padding: 1rem 1.2rem;
  margin-bottom: 1rem;
  background: var(--vec-paper);
}
.cmp_announcement .title {
  font-family: var(--vec-font-serif);
  color: var(--vec-navy);
  font-size: 1.15rem;
  margin: 0 0 0.3rem;
}

/* ---------- 14. Pagination --------------------------------- */
.cmp_pagination,
ul.pagination {
  display: flex;
  gap: 0.3rem;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 2rem 0 1rem;
}
.cmp_pagination a,
.cmp_pagination span {
  display: inline-block;
  min-width: 2rem;
  padding: 0.35rem 0.7rem;
  text-align: center;
  border: 1px solid var(--vec-hairline);
  border-radius: var(--vec-radius);
  color: var(--vec-navy);
  background: var(--vec-paper);
}
.cmp_pagination .current {
  background: var(--vec-navy);
  color: var(--vec-cream);
  border-color: var(--vec-navy);
}
.cmp_pagination a:hover { border-color: var(--vec-cyan); color: var(--vec-cyan-2); }

/* ---------- 15. Footer ------------------------------------- */
footer.pkp_structure_footer,
.pkp_brand_footer,
.pkp_footer_content {
  background: var(--vec-navy) !important;
  color: var(--vec-cream) !important;
  border-top: 3px solid var(--vec-cyan) !important;
  padding: 2rem 1rem;
  margin-top: 3rem;
}
footer.pkp_structure_footer a,
.pkp_footer_content a {
  color: var(--vec-cyan) !important;
  border-bottom: 1px dotted transparent;
}
footer.pkp_structure_footer a:hover { border-bottom-color: var(--vec-cyan); }
footer.pkp_structure_footer p { color: #C9D3E2 !important; }

/* ---------- 16. Utility chips ------------------------------ */
.vec-chip {
  display: inline-block;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  background: var(--vec-cream);
  color: var(--vec-navy);
  font-family: var(--vec-font-sans);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid var(--vec-hairline);
}
.vec-chip.is-cyan { background: var(--vec-cyan); border-color: var(--vec-cyan); color: var(--vec-navy); }
.vec-chip.is-navy { background: var(--vec-navy); border-color: var(--vec-navy); color: var(--vec-cream); }

/* ---------- 17. Catch-all yellow kill ---------------------- */
[style*="#FFD61F"],
[style*="#FFDA00"],
[style*="#fcc117"],
[style*="#EDD400"] {
  background-color: var(--vec-navy) !important;
  color: var(--vec-cream) !important;
}

/* ---------- 18. Responsive --------------------------------- */
@media (max-width: 768px) {
  h1 { font-size: 1.8rem; }
  h2 { font-size: 1.35rem; }
  .pkp_structure_main { padding: 1.25rem 1rem; border-radius: 0; }
  .pkp_site_name img { max-height: 52px; }
  body .pkp_navigation_primary > li > a { padding: 0.7rem 0.8rem !important; font-size: 0.78rem !important; }
}

/* ---------- 19. Print -------------------------------------- */
@media print {
  header.pkp_structure_head,
  footer.pkp_structure_footer,
  .pkp_structure_sidebar,
  .pkp_navigation_primary_row { display: none !important; }
  body { background: #fff; color: #000; }
  .pkp_structure_main { box-shadow: none; padding: 0; }
  a { color: #000; border-bottom: none; }
}
/* ========= EDGE-TO-EDGE NAVY BAND + FULL-WIDTH CYAN LINE ========= */

/* 1. 내부에 박혀있는 구분선/그림자 전부 제거 */
body header.pkp_structure_head,
body .pkp_head_wrapper,
body .pkp_site_name_wrapper,
body .pkp_navigation_primary_row,
body .pkp_navigation_primary,
body ul.pkp_navigation_primary,
body nav.pkp_navigation_primary,
body .cmp_navigation_primary,
body #siteNav,
body nav#siteNav,
body .pkp_site_nav_wrapper {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* 2. 네이비 배경을 '진짜' 전체 폭으로 */
body header.pkp_structure_head,
body .pkp_navigation_primary_row,
body #siteNav,
body .pkp_site_nav_wrapper {
  background: #0B1E3F !important;
  background-color: #0B1E3F !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  position: relative;
}

/* 3. 가운데 정렬 컨테이너여도 뷰포트 끝까지 네이비+시안이 쭉 가도록
      pseudo-element 로 확장. 핵심: left/right 를 -50vw 로 밀어서
      부모 범위 밖까지 배경 칠하기 */
body .pkp_navigation_primary_row::before,
body .pkp_site_nav_wrapper::before,
body #siteNav::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  background: #0B1E3F;
  border-bottom: 3px solid #6FD3F7;
  z-index: -1;
  pointer-events: none;
}

/* 4. nav 안의 텍스트/링크가 pseudo 위로 올라오도록 보장 */
body .pkp_navigation_primary_row,
body .pkp_site_nav_wrapper,
body #siteNav {
  z-index: 1;
}
body .pkp_navigation_primary,
body ul.pkp_navigation_primary,
body .pkp_navigation_primary > li,
body .pkp_navigation_primary > li > a {
  position: relative;
  z-index: 2;
}

/* 5. 혹시 `.pkp_navigation_primary_row` 가 아예 없는 테마라면
      header 바로 다음 형제(nav)에 직접 적용 */
body header.pkp_structure_head + nav::before,
body header.pkp_structure_head + .pkp_navigation_primary_row::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  background: #0B1E3F;
  border-bottom: 3px solid #6FD3F7;
  z-index: -1;
}
