/* Justify Abstract text */
.pkp_page_article .item.abstract p {
  text-align: justify;
  text-justify: inter-word;   /* better spacing in some browsers */
  line-height: 1.6;           /* improve readability */
  hyphens: auto;              /* optional: soft hyphenation */
}

/* Justify References and handle long URLs */
.pkp_page_article .item.references p {
  text-align: justify;
  text-justify: inter-word;
  line-height: 1.6;
  hyphens: auto;
  overflow-wrap: anywhere;    /* wrap long DOIs/links */
  word-break: break-word;
  white-space: normal;
}



/* Fix long URLs/text overflow in References on article view pages */
.pkp_page_article .item.references .value p,
.pkp_page_article .item.references .value a {
  word-wrap: break-word;      /* legacy support */
  overflow-wrap: anywhere;    /* modern browsers */
  word-break: break-word;     /* fallback */
  hyphens: auto;              /* optional, breaks long words gracefully */
  white-space: normal;        /* ensure wrapping is allowed */
  max-width: 100%;            /* prevent overflow */
  line-height: 1.6;           /* improve readability */
}

/* =========================================================
   TSRJ — Editorial Board (Apple-light, single-column)
   Append-only CSS for OJS 3.3–3.4
   Fix: EIC text now selectable (ring moved behind content)
   ========================================================= */

/* Container + page titles */
.willston-press .wp-board {
  --_maxw: 88ch;
  margin-inline: auto;
  max-width: var(--_maxw);
}
.willston-press .wp-board__title {
  font-size: var(--wp-h1);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 var(--wp-6);
}
.willston-press .wp-board__section-title {
  font-size: var(--wp-h3);
  font-weight: 700;
  color: var(--wp-muted);
  margin: var(--wp-6) 0 var(--wp-3);
}

/* ========================
   Editors-in-Chief (1+)
   ======================== */
.willston-press .wp-eic-list {
  display: grid;
  grid-template-columns: 1fr !important; /* single column */
  gap: var(--wp-4);
}

.willston-press .wp-eic {
  position: relative;
  isolation: isolate;                 /* create a new stacking context */
  background: var(--wp-bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  padding: var(--wp-6);
  box-shadow: var(--wp-shadow-sm);
  overflow: visible;                  /* prevent clipping */
  transition: box-shadow .2s ease, border-color .2s ease;
  -webkit-user-select: text; user-select: text; /* ensure text is selectable */
}
/* Subtle accent ring (Apple-like) — now BEHIND content */
.willston-press .wp-eic::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;                         /* behind card content */
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;               /* do not intercept clicks/selection */
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wp-accent) 65%, #fff),
    color-mix(in srgb, var(--wp-accent) 15%, #fff)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}
/* Ensure all children sit above the ring */
.willston-press .wp-eic > * { position: relative; z-index: 1; }

.willston-press .wp-eic:hover { box-shadow: var(--wp-shadow-md); } /* no translate to avoid crop */

/* Badge + person text */
.willston-press .wp-badge {
  display: inline-block;
  font-size: var(--wp-small);
  font-weight: 700;
  color: var(--wp-accent);
  background: var(--wp-accent-ghost);
  border: 1px solid color-mix(in srgb, var(--wp-accent) 35%, transparent);
  border-radius: 999px;
  padding: .25rem .55rem;
  line-height: 1.1;
}
.willston-press .wp-person__name {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: .35rem 0 .15rem;
  line-height: 1.25;  /* safe wrapping */
}
.willston-press .wp-person__role { display: none !important; } /* remove role line */
.willston-press .wp-person__affil { color: var(--wp-text); margin: 0 0 .25rem; }
.willston-press .wp-person__contact a {
  color: var(--wp-accent);
  border-bottom: 1px solid transparent;
}
.willston-press .wp-person__contact a:hover { border-bottom-color: var(--wp-accent); }
.willston-press .wp-person__id { font-size: var(--wp-small); color: var(--wp-muted); }

/* Wrap long emails/IDs safely */
.willston-press .wp-person__affil,
.willston-press .wp-person__id,
.willston-press .wp-person__contact a {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
.willston-press .wp-person__contact,
.willston-press .wp-person__id {
  display: block;
  margin-top: .35rem;
}

/* ========================
   Editorial Board (members)
   ======================== */
.willston-press .wp-editor-grid {
  display: grid;
  grid-template-columns: 1fr !important; /* single column */
  gap: var(--wp-4);
  margin-top: var(--wp-4);
}
.willston-press .wp-editor {
  background: var(--wp-surface);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  padding: var(--wp-5);
  box-shadow: var(--wp-shadow-sm);
  overflow: visible;                  /* avoid clipping long lines/orcid */
  transition: box-shadow .2s ease, border-color .2s ease;
  -webkit-user-select: text; user-select: text;
}
.willston-press .wp-editor:hover { box-shadow: var(--wp-shadow-md); } /* no translate */
.willston-press .wp-editor .wp-person__name {
  font-size: 18px;
  font-weight: 700;
  margin-top: 0;
}

/* Optional fine divider + compact list utility */
.willston-press .wp-divider {
  height: 1px;
  background: var(--wp-border);
  border: 0;
  margin: .6rem 0 .8rem;
}
.willston-press .wp-list-compact { list-style: none; padding: 0; margin: .2rem 0 0; }
.willston-press .wp-list-compact li + li { margin-top: .15rem; }

/* Motion respect */
@media (prefers-reduced-motion: reduce) {
  .willston-press .wp-eic,
  .willston-press .wp-editor { transition: none !important; }
}

/* ===== Tips =====
To switch members to two columns later:
  .wp-editor-grid { grid-template-columns: repeat(2, 1fr) }
To also place two EIC cards side-by-side:
  .wp-eic-list   { grid-template-columns: repeat(2, 1fr) }
*/




/* Home cards: simple, airy, and consistent with your Willston variables */
.willston-press .wp-card-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--wp-6, 1.5rem);
  margin: var(--wp-6, 1.5rem) 0;
}
@media (min-width: 900px) {
  .willston-press .wp-card-list { grid-template-columns: repeat(2, 1fr); }
}

.willston-press .wp-card {
  background: var(--wp-surface, #f7f8fa);
  border: 1px solid var(--wp-border, #e3e6ea);
  border-radius: var(--wp-radius, 14px);
  padding: var(--wp-6, 1.5rem);
  box-shadow: var(--wp-shadow-sm, 0 1px 2px rgba(0,0,0,.06));
  transition: transform .08s ease, box-shadow .2s ease, border-color .2s ease;
}
.willston-press .wp-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--wp-shadow-md, 0 8px 20px rgba(0,0,0,.06));
}

/* Tight, readable blocks */
.willston-press .wp-card h2 {
  margin: 0 0 var(--wp-4, 1rem);
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: -0.01em;
}
.willston-press .wp-card p { margin: 0 0 var(--wp-5, 1.25rem); color: var(--wp-text, #0b0c0e); }

/* CTA row uses your existing button styles */
.willston-press .wp-card-actions {
  display: flex; gap: .6rem; flex-wrap: wrap;
}



/* Willston Press — CTA button */
.willston-press .wp-btn {
  --_bg: var(--wp-accent, #0a84ff);
  --_fg: #fff;
  --_shadow: 0 1px 2px rgba(0,0,0,.06);
  --_shadow-hover: 0 8px 20px rgba(0,0,0,.06);

  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6ch;
  min-height: 44px;                /* touch target */
  padding: .7rem 1rem;
  border-radius: 12px;
  border: 1px solid transparent;
  background: var(--_bg);
  color: var(--_fg);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--_shadow);
  transition: transform .08s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}

/* hover / active / focus */
.willston-press .wp-btn:hover { transform: translateY(-1px); box-shadow: var(--_shadow-hover); }
.willston-press .wp-btn:active { transform: translateY(0); }
.willston-press .wp-btn:focus-visible {
  outline: 3px solid var(--wp-accent-ghost, rgba(10,132,255,.12));
  outline-offset: 2px;
}

/* Arrow micro-animation (no extra icon lib) */
.willston-press .wp-btn::after {
  content: "→"; font-weight: 700; transition: transform .15s ease;
}
.willston-press .wp-btn:hover::after { transform: translateX(2px); }

/* Variants */
.willston-press .wp-btn--full { width: 100%; }
.willston-press .wp-btn--ghost {
  --_bg: transparent;
  --_fg: var(--wp-accent, #0a84ff);
  border-color: color-mix(in srgb, var(--wp-accent, #0a84ff) 35%, transparent);
  background: var(--wp-accent-ghost, rgba(10,132,255,.12));
}
.willston-press .wp-btn[aria-disabled="true"],
.willston-press .wp-btn.is-disabled { opacity: .6; pointer-events: none; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .willston-press .wp-btn { transition: none !important; }
  .willston-press .wp-btn::after { transition: none !important; }
}




/* ===========================
   Willston Press — Sidebar polish (no accordion changes)
   =========================== */

/* Remove any inherited border-underline and set up animated underline */
.willston-press .wp-side-nav__link {
  border-bottom: 0 !important;                /* kill global link border */
  text-decoration: none;                       /* ensure clean base */
  /* Bottom underline as a background so it never sits between wrapped lines */
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;                 /* left bottom */
  background-size: 0% 1.5px;                   /* start hidden */
  transition: background-size .22s ease, color .15s ease;
  padding: .42rem .6rem .48rem;                /* tiny bottom padding so line never touches next item */
  line-height: 1.25;
}

/* Animate underline L→R on hover/focus */
.willston-press .wp-side-nav__link:hover,
.willston-press .wp-side-nav__link:focus-visible {
  background-size: 100% 1.5px;
}

/* Keep hover border from global link rule off */
.willston-press .wp-side-nav__link:hover { border-color: transparent !important; }

/* Tighter vertical rhythm for long journal list */
.willston-press .wp-side-nav__list > li + li { margin-top: .24rem; }

/* Journal list container: compact height with smooth scroll if long */
.willston-press .wp-side-group > nav {
  max-height: 320px;             /* adjust 280–400px to taste */
  overflow: auto;
  scrollbar-gutter: stable both-edges;
}
.willston-press .wp-side-group > nav::-webkit-scrollbar { width: 8px; }
.willston-press .wp-side-group > nav::-webkit-scrollbar-thumb {
  background: #d6d9de; border-radius: 8px;
}

/* “Our Journals” disclosure: link-like, compact */
.willston-press .wp-disclosure {
  padding: .25rem 0;
  font-size: .95rem;
  background: transparent; border: 0;
}
.willston-press .wp-disclosure:hover { text-decoration: underline; }
.willston-press .wp-disclosure:focus-visible {
  outline: 3px solid var(--wp-accent-ghost, rgba(10,132,255,.12));
  outline-offset: 2px;
}

/* Remove the right arrow from menu items (as requested) */
.willston-press .wp-side-nav__link::after { content: none !important; display: none !important; }

/* --------------------------
   Optional: widen ONLY this sidebar block
   Add class "wp-wide" to the aside:  <aside class="wp-side-nav wp-wide">…</aside>
   -------------------------- */
.willston-press .wp-side-nav.wp-wide {
  width: clamp(240px, 28vw, 300px);  /* grows if the sidebar column allows, never overflows */
  max-width: 100%;
}


.pkp_brand_footer {
  display: none;
}

/* Willston Press – custom footer (neutral light theme) */
.willston-press .wp-footer {
  margin-top: 1.25rem;
  padding: 1rem 0;
  border-top: 1px solid #e3e6ea;
  color: #5b5f6a;            /* muted */
  font-size: 13.5px;
  text-align: center;
  line-height: 1.6;
}

/* =========================================
   Willston Press UI – Light Only v1.1
   Scope: .willston-press (safe for OJS 3.5)
   No dark-mode media queries; forces light UI.
   ========================================= */

/* Define tokens directly on the scope so they never switch in dark mode */
.willston-press {
  /* Base palette */
  --wp-bg: #ffffff;
  --wp-surface: #f7f8fa;
  --wp-text: #0b0c0e;
  --wp-muted: #5b5f6a;
  --wp-border: #e3e6ea;

  /* Brand accent */
  --wp-accent: #0a84ff;        /* iOS blue */
  --wp-accent-ink: #ffffff;
  --wp-accent-ghost: rgba(10,132,255,0.12);

  /* States */
  --wp-success: #34c759;
  --wp-warning: #ff9f0a;
  --wp-danger:  #ff453a;

  /* Depth + radius */
  --wp-radius: 14px;
  --wp-radius-sm: 10px;
  --wp-shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
  --wp-shadow-md: 0 8px 20px rgba(0,0,0,0.06);

  /* Type scale */
  --wp-font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
                  "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji",
                  "Segoe UI Emoji", "Segoe UI Symbol";
  --wp-leading: 1.6;
  --wp-h1: clamp(28px, 4vw, 40px);
  --wp-h2: clamp(22px, 3vw, 32px);
  --wp-h3: clamp(18px, 2.2vw, 24px);
  --wp-h4: 18px;
  --wp-body: 16.5px;
  --wp-small: 13.5px;

  /* Spacing */
  --wp-1: .25rem;
  --wp-2: .5rem;
  --wp-3: .75rem;
  --wp-4: 1rem;
  --wp-5: 1.25rem;
  --wp-6: 1.5rem;
  --wp-8: 2rem;
  --wp-10: 2.5rem;

  /* Force UA widgets (inputs, scrollbars) to light look */
  color-scheme: light;

  /* Base text styles */
  color: var(--wp-text);
  font-family: var(--wp-font-sans);
  font-size: var(--wp-body);
  line-height: var(--wp-leading);
  background: transparent;
}

/* Optional card wrapper */
.willston-press .wp-surface {
  background: var(--wp-surface);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  padding: var(--wp-6);
  box-shadow: var(--wp-shadow-sm);
}

/* ---------- Typography ---------- */
.willston-press h1,
.willston-press h2,
.willston-press h3,
.willston-press h4,
.willston-press h5,
.willston-press h6 {
  color: var(--wp-text);
  margin: 0 0 var(--wp-4);
  letter-spacing: -0.01em;
  font-weight: 700;
}
.willston-press h1 { font-size: var(--wp-h1); margin-bottom: var(--wp-6); }
.willston-press h2 { font-size: var(--wp-h2); margin-bottom: var(--wp-5); }
.willston-press h3 { font-size: var(--wp-h3); }
.willston-press h4 { font-size: var(--wp-h4); font-weight: 600; }

.willston-press p { margin: 0 0 var(--wp-5); color: var(--wp-text); }
.willston-press small, .willston-press .wp-small { font-size: var(--wp-small); color: var(--wp-muted); }

/* Lists */
.willston-press ul, .willston-press ol { margin: 0 0 var(--wp-5) var(--wp-6); }
.willston-press li { margin-bottom: var(--wp-2); }

/* Links */
.willston-press a {
  color: var(--wp-accent);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}
.willston-press a:hover { border-color: var(--wp-accent); }
.willston-press a:focus-visible {
  outline: 3px solid var(--wp-accent-ghost);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ---------- Buttons ---------- */
.willston-press button,
.willston-press [role="button"],
.willston-press .wp-btn {
  --_bg: var(--wp-accent);
  --_fg: var(--wp-accent-ink);
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: .5ch;
  background: var(--_bg);
  color: var(--_fg);
  border: 1px solid transparent;
  border-radius: var(--wp-radius-sm);
  padding: .6rem .95rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--wp-shadow-sm);
  transition: transform .08s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
  text-decoration: none;
}
.willston-press button:hover,
.willston-press [role="button"]:hover,
.willston-press .wp-btn:hover {
  transform: translateY(-1px);
  box-shadow: var(--wp-shadow-md);
}
.willston-press button:active,
.willston-press [role="button"]:active,
.willston-press .wp-btn:active { transform: translateY(0); }

.willston-press .wp-btn--ghost {
  --_bg: transparent; --_fg: var(--wp-accent);
  border-color: color-mix(in srgb, var(--wp-accent) 30%, transparent);
  background: var(--wp-accent-ghost);
}
.willston-press .wp-btn--subtle {
  --_bg: var(--wp-surface); --_fg: var(--wp-text);
  border-color: var(--wp-border);
}

/* Disabled */
.willston-press .wp-btn[aria-disabled="true"],
.willston-press button:disabled {
  opacity: .6; cursor: not-allowed;
}

/* ---------- Accordion (details/summary) ---------- */
.willston-press details {
  background: var(--wp-surface);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  padding: var(--wp-2) var(--wp-4);
  margin: 0 0 var(--wp-4);
  box-shadow: var(--wp-shadow-sm);
}
.willston-press summary {
  list-style: none;
  cursor: pointer;
  padding: var(--wp-3) 0;
  font-weight: 600;
  color: var(--wp-text);
  display: flex;
  align-items: center;
  gap: .6rem;
}
.willston-press summary::-webkit-details-marker { display: none; }

/* Chevron */
.willston-press summary::before {
  content: "";
  inline-size: 10px; block-size: 10px;
  border-right: 2px solid var(--wp-muted);
  border-bottom: 2px solid var(--wp-muted);
  transform: rotate(-45deg);
  transition: transform .2s ease;
  margin-right: .25rem;
}
.willston-press details[open] summary::before { transform: rotate(45deg); }

.willston-press details .wp-acc-content {
  padding: 0 0 var(--wp-4);
  color: var(--wp-muted);
}

/* ---------- Tables ---------- */
.willston-press table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--wp-bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  overflow: hidden;
  box-shadow: var(--wp-shadow-sm);
  margin: 0 0 var(--wp-5);
}
.willston-press thead th {
  text-align: left; font-weight: 700; font-size: 0.925rem;
  background: var(--wp-surface);
  border-bottom: 1px solid var(--wp-border);
  padding: .9rem 1rem;
}
.willston-press tbody td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--wp-border);
}
.willston-press tbody tr:last-child td { border-bottom: 0; }

/* ---------- Forms ---------- */
.willston-press input[type="text"],
.willston-press input[type="email"],
.willston-press input[type="search"],
.willston-press input[type="password"],
.willston-press select,
.willston-press textarea {
  width: 100%;
  background: var(--wp-bg);
  color: var(--wp-text);
  border: 1px solid var(--wp-border);
  border-radius: 12px;
  padding: .7rem .9rem;
  box-shadow: var(--wp-shadow-sm) inset;
  transition: border-color .15s ease, box-shadow .2s ease;
}
.willston-press input:focus,
.willston-press select:focus,
.willston-press textarea:focus {
  outline: none;
  border-color: var(--wp-accent);
  box-shadow: 0 0 0 4px var(--wp-accent-ghost);
}
.willston-press label { font-weight: 600; display: block; margin-bottom: .4rem; }
.willston-press .wp-field { margin-bottom: var(--wp-5); }

/* Helper text */
.willston-press .wp-hint { color: var(--wp-muted); font-size: var(--wp-small); }

/* ---------- Alerts ---------- */
.willston-press .wp-alert {
  border-radius: var(--wp-radius);
  padding: .85rem 1rem;
  border: 1px solid var(--wp-border);
  background: var(--wp-surface);
  margin: 0 0 var(--wp-4);
}
.willston-press .wp-alert--success { border-color: color-mix(in srgb, var(--wp-success) 40%, var(--wp-border)); }
.willston-press .wp-alert--warning { border-color: color-mix(in srgb, var(--wp-warning) 40%, var(--wp-border)); }
.willston-press .wp-alert--danger  { border-color: color-mix(in srgb, var(--wp-danger)  40%, var(--wp-border)); }

/* ---------- Utilities ---------- */
.willston-press .wp-stack > * + * { margin-top: var(--wp-4); }
.willston-press .wp-cluster { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.willston-press .wp-center { margin-inline: auto; max-width: 72ch; }
.willston-press .wp-break { height: 1px; background: var(--wp-border); margin: var(--wp-6) 0; border: 0; }

/* ---------- Motion respect ---------- */
@media (prefers-reduced-motion: reduce) {
  .willston-press * { transition: none !important; animation: none !important; }
}
