/* ==========================================================================
   Wanxue theme — child of the OJS Default theme (3.4.x)
   build: 1.2 — removed default-theme column rules
   ========================================================================== */

:root {
  --wx-accent: #12324f;
  --wx-gold: #b8893b;
  --wx-ink: #141a21;
  --wx-ink-2: #3d4854;
  --wx-muted: #6c7885;
  --wx-line: #e2e6eb;
  --wx-soft: #f7f8fa;
  --wx-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --wx-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --------------------------------------------------------------- masthead */

.wx-masthead {
  background: #fff;
  border-bottom: 1px solid var(--wx-line);
}

.wx-masthead__inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  min-height: 80px;
}

.wx-masthead__brand {
  display: flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
}

.wx-masthead__title {
  font-family: var(--wx-serif);
  font-size: 1.55rem;
  line-height: 1.15;
  color: var(--wx-ink);
}

.wx-masthead__logo { max-height: 54px; width: auto; }

.wx-masthead__nav {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin-left: auto;
}

.wx-menu {
  display: flex;
  align-items: center;
  gap: 1.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.wx-menu > li > a {
  display: inline-block;
  padding: .35rem 0;
  color: var(--wx-ink-2);
  font-size: .7813rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}

.wx-menu > li > a:hover,
.wx-menu > li > a:focus {
  color: var(--wx-accent);
  border-bottom-color: var(--wx-gold);
}

.wx-masthead__search {
  color: var(--wx-ink-2);
  font-size: .7813rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
}

.wx-masthead__search:hover { color: var(--wx-accent); }

.wx-masthead__cta {
  display: inline-block;
  padding: .62rem 1.05rem;
  background: var(--wx-accent);
  color: #fff;
  font-size: .7188rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}

.wx-masthead__cta:hover { filter: brightness(1.15); }

.wx-masthead__user { display: flex; align-items: center; }

.wx-user {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .75rem;
}

.wx-user a { color: var(--wx-muted); text-decoration: none; }
.wx-user a:hover { color: var(--wx-accent); }

/* ------------------------------------------------------------------ footer */

.wx-footer {
  margin-top: 0;
  padding: 34px 0;
  background: var(--wx-soft);
  border-top: 1px solid var(--wx-line);
}

.wx-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem 2rem;
}

.wx-footer__brand { min-width: 0; }

.wx-footer__name {
  margin: 0;
  font-family: var(--wx-serif);
  font-size: 1rem;
  color: var(--wx-ink-2);
}

.wx-footer__text {
  margin-top: .5rem;
  margin-bottom: 0;
  color: var(--wx-muted);
  font-size: .8125rem;
  max-width: 62ch;
}

.wx-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-left: auto;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.wx-footer__nav a { color: var(--wx-muted); text-decoration: none; }
.wx-footer__nav a:hover { color: var(--wx-accent); }

.wx-footer__note {
  margin: 0;
  width: 100%;
  padding-top: 18px;
  border-top: 1px solid var(--wx-line);
  color: var(--wx-muted);
  font-size: .7188rem;
}

.wx-footer__note a { color: var(--wx-muted); text-decoration: none; }


.wx {
  color: var(--wx-ink);
  font-family: var(--wx-sans);
  background: #fff;
}

.wx *,
.wx *::before,
.wx *::after { box-sizing: border-box; }

.wx img { max-width: 100%; height: auto; }

/* ------------------------------------------------------------------
   Let the journal homepage use the full content width.
   The Default theme reserves a sidebar column; journals rarely fill it,
   which leaves the page squeezed into a narrow strip.
   ------------------------------------------------------------------ */
/* ------------------------------------------------------------------
   Let the journal homepage use the full content width.
   The Default theme reserves a sidebar column and draws container borders;
   journals rarely fill the column, which leaves the page squeezed.
   ------------------------------------------------------------------ */
body.pkp_page_index .pkp_structure_sidebar { display: none !important; }

.pkp_structure_content,
.pkp_structure_content.has_sidebar {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

.pkp_structure_main {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* The Default theme draws two decorative column rules with pseudo-elements
   (one at the left edge, one at 860px). They belong to the sidebar layout we
   replaced, and read as stray vertical lines. */
.pkp_structure_main::before,
.pkp_structure_main::after {
  content: none !important;
  display: none !important;
}

.wx-inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 32px;
  padding-right: 32px;
}

/* ------------------------------------------------------------------ nav */

/* The journal's own header menu already lists Current / Archives / About,
   so the theme does not repeat it. This block styles that header instead,
   which is otherwise the one piece of the page still looking untouched. */
body.pkp_page_index .pkp_structure_head {
  background: var(--wx-accent);
}

body.pkp_page_index .pkp_site_name a.is_text,
body.pkp_page_index .pkp_site_name a.is_text:link {
  font-family: var(--wx-serif);
  font-size: clamp(1.35rem, 2.1vw, 1.85rem);
  font-weight: 400;
  letter-spacing: .005em;
  color: #fff;
}

body.pkp_page_index .pkp_navigation_primary > li > a {
  font-size: .7813rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .82);
}

body.pkp_page_index .pkp_navigation_primary > li > a:hover {
  color: #fff;
}

body.pkp_page_index .pkp_search {
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .82);
}

/* footer: quiet, but no longer an afterthought */
body.pkp_page_index .pkp_structure_footer_wrapper {
  background: var(--wx-soft);
  border-top: 1px solid var(--wx-line);
}

body.pkp_page_index .pkp_structure_footer_wrapper,
body.pkp_page_index .pkp_structure_footer_wrapper a {
  color: var(--wx-muted);
  font-size: .8125rem;
}

/* ------------------------------------------------------------------ hero */

.wx-hero {
  background:
    radial-gradient(900px 320px at 82% -10%, rgba(184, 137, 59, .10), transparent 62%),
    linear-gradient(180deg, #f7f8fa 0%, #ffffff 100%);
  border-bottom: 1px solid var(--wx-line);
}

.wx-hero__inner {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  padding-top: 40px;
  padding-bottom: 40px;
}

.wx-hero__cover img {
  display: block;
  width: 100%;
  box-shadow: 0 18px 40px rgba(16, 32, 48, .2);
}

.wx-hero__body { padding-top: 4px; }

.wx-cover {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 3 / 4;
  padding: 18px;
  overflow: hidden;
  color: #fff;
  background-color: var(--wx-accent);
  background-image:
    linear-gradient(150deg, rgba(255, 255, 255, .08) 0%, rgba(0, 0, 0, .55) 100%),
    linear-gradient(150deg, var(--wx-accent), #0b1f33);
}

.wx-cover::after {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255, 255, 255, .28);
  pointer-events: none;
}

.wx-cover__mark {
  position: relative;
  font-family: var(--wx-serif);
  font-size: 1.0625rem;
  line-height: 1.32;
}

.wx-cover__rule {
  position: relative;
  display: block;
  width: 30px;
  height: 2px;
  margin-top: .75rem;
  background: var(--wx-gold);
}

/* ------------------------------------------------------------------ type */

.wx-eyebrow {
  margin: 0 0 .85rem;
  color: var(--wx-accent);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.wx-title {
  margin: 0 0 .7rem;
  font-family: var(--wx-serif);
  font-weight: 400;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem);
  line-height: 1.12;
  letter-spacing: -.012em;
  color: var(--wx-ink);
}

.wx-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.5rem;
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
  color: var(--wx-muted);
  font-size: .8125rem;
}

.wx-meta b { color: var(--wx-ink-2); font-weight: 700; }

.wx-lede {
  max-width: 66ch;
  color: var(--wx-ink-2);
  font-size: .9688rem;
  line-height: 1.72;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
}

.wx-lede p:first-child { margin-top: 0; }
.wx-lede p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------- buttons */

.wx-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.75rem;
}

.wx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .78rem 1.3rem;
  border: 1px solid var(--wx-line);
  border-radius: 2px;
  background: #fff;
  color: var(--wx-ink);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.wx-btn:hover { border-color: var(--wx-accent); color: var(--wx-accent); }

.wx-btn--primary {
  border-color: var(--wx-accent);
  background: var(--wx-accent);
  color: #fff;
}

.wx-btn--primary:hover {
  border-color: var(--wx-accent);
  background: var(--wx-accent);
  color: #fff;
  filter: brightness(1.15);
}

.wx-btn--ghost { border-color: transparent; background: transparent; color: var(--wx-accent); }
.wx-btn--ghost:hover { border-color: var(--wx-line); }

/* --------------------------------------------------------------- indexed */

.wx-indexing {
  background: #fff;
  border-bottom: 1px solid var(--wx-line);
}

.wx-indexing__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
  padding-top: 16px;
  padding-bottom: 16px;
}

.wx-indexing__label {
  margin: 0;
  color: var(--wx-muted);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}

.wx-indexing__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.wx-indexing__list li { display: flex; align-items: center; }

.wx-indexing__list img {
  height: 30px;
  width: auto;
  mix-blend-mode: multiply;
}

.wx-homeimage { padding-top: 32px; }
.wx-homeimage img { display: block; width: 100%; height: auto; }

/* ---------------------------------------------------------------- blocks */

.wx-content { padding-top: 40px; padding-bottom: 64px; }

/* content + right column */
.wx-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 48px;
  align-items: start;
}

.wx-main { min-width: 0; }

.wx-aside { min-width: 0; }

.wx-widget {
  padding-top: 16px;
  border-top: 2px solid var(--wx-ink);
}

.wx-widget + .wx-widget { margin-top: 24px; }

.wx-widget__title {
  margin: 0 0 14px;
  font-family: var(--wx-sans);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--wx-muted);
}

.wx-widget__text {
  margin: 0 0 14px;
  color: var(--wx-ink-2);
  font-size: .8438rem;
  line-height: 1.6;
}

.wx-widget--cta .wx-btn { width: 100%; }


.wx-facts {
  display: grid;
  gap: 9px;
  margin: 0;
}

.wx-facts > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 9px;
  border-bottom: 1px dashed var(--wx-line);
  font-size: .8125rem;
}

.wx-facts > div:last-child { border-bottom: 0; padding-bottom: 0; }

.wx-facts dt { color: var(--wx-muted); }
.wx-facts dd { margin: 0; font-weight: 600; color: var(--wx-ink); text-align: right; }

.wx-links {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .8438rem;
}

.wx-links a { color: var(--wx-ink-2); text-decoration: none; }
.wx-links a:hover { color: var(--wx-accent); }

/* Every section in either column starts with the same 2px rule at the very
   top of the block, so the left and right columns share one horizontal
   baseline instead of each inventing its own ornament. */
.wx-block {
  padding-top: 16px;
  border-top: 2px solid var(--wx-ink);
}

.wx-block + .wx-block { margin-top: 40px; }

.wx-block__title {
  margin: 0 0 1.25rem;
  padding: 0;
  border: 0;
  font-family: var(--wx-serif);
  font-weight: 400;
  font-size: 1.45rem;
  line-height: 1.3;
  color: var(--wx-ink);
}

.wx-issue__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem 1.25rem;
  margin: 0 0 1.25rem;
  color: var(--wx-muted);
  font-size: .8125rem;
}

.wx-issue__id { color: var(--wx-ink-2); font-weight: 600; }

.wx-issue__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.wx-issue__list > li {
  padding: 16px 0;
  border-bottom: 1px solid var(--wx-line);
}

.wx-issue__list > li:last-child { border-bottom: 0; }

.wx-issue__more { margin-top: 1.5rem; }

/* article summaries inside the trimmed issue list (core article_summary.tpl) */
.wx-issue__list .title {
  margin: 0 0 .35rem;
  font-family: var(--wx-sans);
  font-size: 1.0313rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
}

.wx-issue__list .title a { color: var(--wx-ink); text-decoration: none; }
.wx-issue__list .title a:hover { color: var(--wx-accent); }

.wx-issue__list .authors {
  color: var(--wx-ink-2);
  font-size: .875rem;
  line-height: 1.5;
}

.wx-issue__list .article-details {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem 1.1rem;
  margin-top: .55rem;
  color: var(--wx-muted);
  font-size: .75rem;
}

.wx-issue__list .article-details a {
  color: var(--wx-accent);
  font-weight: 600;
  text-decoration: none;
}

.wx-issue__list .galleys_links {
  display: inline-flex;
  gap: .6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* current issue: reuse the core table of contents, but neutralise the
   parent theme's oversized vertical rhythm and decorative rules */
.wx-current .obj_issue_toc > .heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .3rem 1.5rem;
  margin: 0 0 1.4rem;
  padding: 0;
  border: 0;
}

.wx-current .obj_issue_toc > .heading > * { margin: 0 !important; }
.wx-current .obj_issue_toc > .heading > .cover { display: none; }

.wx-current .obj_issue_toc > .heading .published,
.wx-current .obj_issue_toc > .heading .pub_id {
  color: var(--wx-muted);
  font-size: .8125rem;
}

.wx-current .obj_issue_toc .sections { margin-top: 0 !important; }

.wx-current .obj_issue_toc .section {
  margin: 0 0 1.75rem;
  padding-top: .25rem;
}

.wx-current .obj_issue_toc .section > h3 {
  margin: 0 0 .75rem;
  padding: 0;
  border: 0;
  color: var(--wx-muted);
  font-family: var(--wx-sans);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.wx-current .obj_issue_toc .section > h3::before,
.wx-current .obj_issue_toc .section > h3::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

.wx-current .cmp_article_list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.wx-current .cmp_article_list > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 18px 0;
  border-bottom: 1px solid var(--wx-line);
}

.wx-current .cmp_article_list > li:last-child { border-bottom: 0; }

.wx-current .cmp_article_list h4 {
  margin: 0 0 .35rem;
  font-family: var(--wx-sans);
  font-size: 1.0313rem;
  font-weight: 600;
  line-height: 1.42;
}

.wx-current .cmp_article_list h4 a { color: var(--wx-ink); text-decoration: none; }
.wx-current .cmp_article_list h4 a:hover { color: var(--wx-accent); }

.wx-current .cmp_article_list .authors {
  color: var(--wx-ink-2);
  font-size: .875rem;
}

.wx-current .cmp_article_list .article-details {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.1rem;
  margin-top: .55rem;
  color: var(--wx-muted);
  font-size: .75rem;
}

.wx-current .galleys_links {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: .6rem 0 0;
  padding: 0;
  list-style: none;
}

.wx-announcements article,
.wx-announcements .obj_announcement_summary {
  padding: 16px 0 16px 18px;
  border-left: 2px solid var(--wx-gold);
  border-bottom: 1px solid var(--wx-line);
}

.wx-announcements h3,
.wx-announcements h4 { margin: 0 0 .35rem; font-size: 1.0313rem; line-height: 1.42; }

.wx-additional { color: var(--wx-ink-2); font-size: .9688rem; line-height: 1.72; }
.wx-additional h2,
.wx-additional h3 { font-family: var(--wx-serif); font-weight: 400; }

/* ------------------------------------------------------------ responsive */

@media (max-width: 900px) {
  .wx-masthead__inner {
    flex-wrap: wrap;
    gap: .6rem 1rem;
    min-height: 0;
    padding-top: .9rem;
    padding-bottom: .9rem;
  }
  .wx-masthead__nav { width: 100%; margin-left: 0; gap: 1rem; overflow-x: auto; }
  .wx-masthead__user { display: none; }
  .wx-columns { grid-template-columns: 1fr; gap: 40px; }
  .wx-hero__inner { grid-template-columns: 150px minmax(0, 1fr); gap: 28px; }
}

@media (max-width: 680px) {
  .wx-inner { padding-left: 20px; padding-right: 20px; }
  .wx-hero__inner { grid-template-columns: 1fr; gap: 22px; padding-top: 28px; padding-bottom: 32px; }
  .wx-hero__cover { width: 160px; }
  .wx-indexing__inner { gap: 1rem; }
  .wx-indexing__list { gap: 1.5rem; }
  .wx-indexing__list img { height: 24px; }
  .wx-content { padding-top: 36px; padding-bottom: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .wx-btn { transition: none; }
}
