:root {
  --navy: #0a1f18;
  --deep: #0d2e22;
  --accent: #2d9b6a;
  --accent2: #1a7a52;
  --gold: #c8a84b;
  --light: #f2f8f5;
  --surface: #f6faf8;
  --white: #ffffff;
  --text: #2d3748;
  --muted: #5a6b63;
  --border: #d8e5de;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'DM Sans', system-ui, sans-serif;
  color: var(--text);
  font-size: 17px;
  background: var(--surface);
  background-image:
    radial-gradient(circle at 15% 10%, rgba(45,155,106,0.06) 0%, transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(200,168,75,0.05) 0%, transparent 35%);
  overflow-x: hidden;
}

.topbar {
  background: var(--navy);
  color: #a8c4b5;
  font-size: 13px;
  padding: 10px 42px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.topbar a { color: var(--gold); text-decoration: none; }

header {
  background: linear-gradient(135deg, var(--navy) 0%, var(--deep) 55%, #145c3a 100%);
  padding: 28px 40px;
  display: flex;
  align-items: center;
  gap: 24px;
  position: relative;
  overflow: hidden;
}
header::before {
  content: '';
  position: absolute;
  top: -60px; right: -40px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(45,155,106,0.2) 0%, transparent 70%);
  border-radius: 50%;
}
.header-emblem {
  width: 72px; height: 72px;
  background: linear-gradient(135deg, var(--accent), #3ecf8e);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 18px; font-weight: 800;
  color: var(--navy);
  flex-shrink: 0;
  box-shadow: 0 4px 20px rgba(45,155,106,0.35);
  letter-spacing: -0.5px;
}
.header-text h1 {
  font-family: 'Playfair Display', serif;
  font-size: 24px; font-weight: 700;
  color: var(--white);
  line-height: 1.25;
}
.header-text .subtitle {
  font-size: 14px; color: #8fb8a0;
  margin-top: 6px;
}
.header-text .abbr {
  display: inline-block;
  background: var(--gold);
  color: var(--navy);
  font-size: 11px; font-weight: 700;
  padding: 2px 8px; border-radius: 3px;
  letter-spacing: 1px; margin-top: 6px;
}

nav {
  background: var(--white);
  border-bottom: 2px solid var(--accent);
  position: sticky; top: 0; z-index: 100;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.nav-inner {
  display: flex; gap: 0;
  padding: 0 24px;
  overflow-x: auto;
}
.nav-inner a {
  display: block;
  padding: 16px 18px;
  font-size: 14px; font-weight: 600;
  color: var(--text);
  text-decoration: none;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  transition: all 0.2s;
}
.nav-inner a:hover, .nav-inner a.active {
  color: var(--accent2);
  border-bottom-color: var(--accent);
}

.hero {
  background: linear-gradient(160deg, #e8f5ef 0%, #f0faf5 50%, #f6faf8 100%);
  padding: 64px 40px;
  text-align: center;
  position: relative;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--accent2), var(--gold), var(--accent2));
}
.hero h2 {
  font-family: 'Playfair Display', serif;
  font-size: 42px; font-weight: 800;
  color: var(--navy);
  line-height: 1.2;
  max-width: 720px;
  margin: 0 auto 16px;
}
.hero h2 em { font-style: italic; color: var(--accent2); }
.hero p {
  font-size: 18px;
  color: var(--muted);
  max-width: 640px;
  margin: 0 auto 28px;
  line-height: 1.7;
}
.hero-btns {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}

.btn, button.btn {
  display: inline-block;
  padding: 13px 28px;
  border-radius: 8px;
  font-size: 15px; font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.2s;
}
.btn-primary {
  background: var(--accent2);
  color: white;
  box-shadow: 0 4px 14px rgba(26,122,82,0.28);
}
.btn-primary:hover { background: #146342; transform: translateY(-1px); }
.btn-outline {
  background: transparent;
  color: var(--navy);
  border: 2px solid var(--navy);
}
.btn-outline:hover { background: var(--navy); color: white; }
.btn-gold {
  background: linear-gradient(135deg, var(--gold), #e0c060);
  color: var(--navy);
  font-weight: 700;
}

.stats-bar {
  background: var(--navy);
  padding: 22px 40px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}
.stat-item {
  text-align: center;
  padding: 8px;
  border-right: 1px solid rgba(255,255,255,0.1);
}
.stat-item:last-child { border-right: none; }
.stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 32px; font-weight: 700;
  color: var(--accent);
}
.stat-label {
  font-size: 12px; color: #8fb8a0;
  margin-top: 4px; text-transform: uppercase; letter-spacing: 1px;
}

.section {
  padding: 56px 40px;
  max-width: 1100px;
  margin: 0 auto;
}
.section-tag {
  display: inline-block;
  background: #e0f2ea;
  color: var(--accent2);
  font-size: 12px; font-weight: 700;
  padding: 5px 12px; border-radius: 4px;
  letter-spacing: 1.2px; text-transform: uppercase;
  margin-bottom: 12px;
}
.section-header h3 {
  font-family: 'Playfair Display', serif;
  font-size: 30px; font-weight: 700;
  color: var(--navy);
}
.section-header p {
  color: var(--muted); margin-top: 10px; line-height: 1.7;
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin-top: 28px;
}
.card {
  background: white;
  padding: 26px;
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(15, 40, 30, 0.06);
  border: 1px solid var(--border);
  transition: transform 0.2s, box-shadow 0.2s;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(15, 40, 30, 0.1);
}
.card h4 { color: var(--navy); margin-bottom: 8px; font-size: 17px; }
.card p { color: var(--muted); font-size: 15px; line-height: 1.6; }
.card a { color: var(--accent2); font-weight: 600; text-decoration: none; }
.card .card-icon { font-size: 28px; margin-bottom: 10px; }

.workflow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 28px;
}
.wf-step {
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px;
  position: relative;
}
.wf-num {
  width: 32px; height: 32px;
  background: var(--accent2);
  color: white;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px;
  margin-bottom: 10px;
}
.wf-step h5 { color: var(--navy); font-size: 15px; margin-bottom: 6px; }
.wf-step p { color: var(--muted); font-size: 13px; line-height: 1.5; }

.pay-banner {
  background: linear-gradient(135deg, var(--navy), var(--deep));
  border-radius: 16px;
  padding: 36px;
  color: white;
  display: flex;
  gap: 28px;
  align-items: center;
  flex-wrap: wrap;
  margin: 24px 0;
}
.pay-banner h3 { font-family: 'Playfair Display', serif; font-size: 26px; margin-bottom: 8px; }
.pay-banner .amount {
  font-size: 42px; font-weight: 800; color: var(--gold);
}
.pay-banner .badge {
  display: inline-block;
  background: var(--accent);
  color: white;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}

.policy-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 24px;
}
.policy-side {
  position: sticky;
  top: 80px;
  align-self: start;
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
}
.policy-side a {
  display: block;
  padding: 10px 12px;
  color: var(--text);
  text-decoration: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}
.policy-side a:hover, .policy-side a.active {
  background: #e0f2ea;
  color: var(--accent2);
}
.policy-body {
  background: white;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  line-height: 1.75;
}
.policy-body h2 {
  font-family: 'Playfair Display', serif;
  color: var(--navy);
  margin-bottom: 16px;
}
.policy-body ul { padding-left: 20px; margin: 12px 0; }
.policy-body li { margin-bottom: 8px; color: var(--muted); }

form.panel, .panel {
  background: white;
  border-radius: 16px;
  padding: 32px;
  box-shadow: 0 12px 32px rgba(15,40,30,0.06);
  border: 1px solid var(--border);
  max-width: 860px;
  margin: 0 auto;
}
label {
  display: block;
  margin-bottom: 14px;
  color: var(--navy);
  font-weight: 600;
  font-size: 14px;
}
input, textarea, select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-top: 6px;
  font-size: 15px;
  font-family: inherit;
}
textarea { min-height: 110px; resize: vertical; }

.status-pill {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.status-submitted { background: #fff3cd; color: #856404; }
.status-under_review { background: #d1ecf1; color: #0c5460; }
.status-revision_required { background: #f8d7da; color: #721c24; }
.status-revision_submitted { background: #e2e3ff; color: #383d7c; }
.status-accepted_pending_payment { background: #d4edda; color: #155724; }
.status-payment_submitted { background: #cce5ff; color: #004085; }
.status-published { background: #d4edda; color: #155724; }
.status-rejected { background: #f8d7da; color: #721c24; }

table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: 12px;
  overflow: hidden;
}
th, td {
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
}
th { background: var(--navy); color: white; }

footer {
  padding: 32px 40px;
  text-align: center;
  background: rgba(255,255,255,0.85);
  border-top: 1px solid var(--border);
  margin-top: 40px;
}
footer strong { color: var(--navy); }
footer span { color: var(--muted); display: block; margin-top: 8px; font-size: 14px; }

.msg { padding: 12px 16px; border-radius: 8px; margin: 12px 0; font-size: 14px; }
.msg-ok { background: #d4edda; color: #155724; }
.msg-err { background: #f8d7da; color: #721c24; }

/* Remove gold text badge ("EDITOR IN CHIEF") — keep seal PNG only */
.editor-in-chief-card::before,
.editor-in-chief-card::after {
  content: none !important;
  display: none !important;
}
/* EiC: photo left, text center, badge right — no flag */
.editor-in-chief-card .editor-flag {
  display: none !important;
}
.editor-in-chief-card .eic-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
}
.editor-in-chief-card .eic-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #e8f0eb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: #0f3c28;
}
.editor-in-chief-card .eic-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.editor-in-chief-card .eic-info {
  flex: 1 1 auto;
  min-width: 0;
}
.editor-in-chief-card .eic-info h3 {
  margin: 0 0 6px;
  color: #fff;
  font-family: "Playfair Display", serif;
  font-size: clamp(20px, 2.8vw, 28px);
}
.editor-in-chief-card .eic-info p {
  margin: 0 0 4px;
  color: rgba(255,255,255,0.85);
  font-size: 14px;
}
.editor-in-chief-card .eic-badge-wrap {
  flex-shrink: 0;
  margin-left: auto;
  width: 88px;
  height: 88px;
}
.editor-in-chief-card .eic-badge-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
}
@media (max-width: 640px) {
  .editor-in-chief-card .eic-inner {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
  }
  .editor-in-chief-card .eic-info {
    flex: 1 1 100%;
    order: 3;
  }
  .editor-in-chief-card .eic-badge-wrap {
    margin-left: 0;
    width: 72px;
    height: 72px;
  }
}
.eic-avatar {
  width: 90px; height: 90px;
  background: linear-gradient(135deg, var(--accent), #3ecf8e);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 36px; font-weight: 800; color: var(--navy);
  flex-shrink: 0;
}
.editors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.editor-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px;
  display: flex;
  gap: 14px;
}
.editor-avatar {
  width: 48px; height: 48px;
  background: linear-gradient(135deg, var(--accent2), #2d9b6a);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: white; font-weight: 700; flex-shrink: 0;
}

@media (max-width: 900px) {
  .stats-bar { grid-template-columns: repeat(2, 1fr); }
  .policy-layout { grid-template-columns: 1fr; }
  .policy-side { position: static; display: flex; flex-wrap: wrap; gap: 6px; }
  header, .topbar, .section, .hero { padding-left: 20px; padding-right: 20px; }
  .hero h2 { font-size: 30px; }
}

/* Revised manuscript submission steps */
.hidden { display:none !important; }
.revised-manuscript-type { border-style:dashed; border-color:var(--accent2); background:linear-gradient(145deg,#f7fcf9,#edf7f1); }
.revision-wiz-step { border-color:rgba(26,122,82,.3); background:#f4faf6; }
.revision-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; margin:18px 0; }
.revision-search-row label { margin:0; }
.revision-search-row input { box-sizing:border-box; width:100%; }
.revision-found-card { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:18px; padding:18px; border:1px solid var(--border); border-radius:12px; background:#f7fbf9; }
.revision-found-card h4 { margin:5px 0 8px; color:var(--navy); font-size:18px; overflow-wrap:anywhere; }
.revision-found-card p { margin:4px 0; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.revision-found-card .eyebrow { color:var(--accent2); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.revision-found-card button { flex:0 0 auto; }
.revision-selected-summary { margin:0 0 18px; padding:12px 14px; border-left:4px solid var(--accent2); border-radius:6px; background:#eef7f2; color:#214c37; font-size:14px; font-weight:700; overflow-wrap:anywhere; }
.revision-found-card button:disabled { opacity:.55; cursor:not-allowed; }
@media(max-width:640px) {
  .revision-search-row { grid-template-columns:1fr; }
  .revision-search-row .btn { width:100%; }
  .revision-found-card { align-items:stretch; flex-direction:column; }
  .revision-found-card button { width:100%; }
}
.payment-proof-redirect { margin:20px 0 0; padding:18px; border:1px solid var(--border); border-left:4px solid var(--gold); border-radius:12px; background:#fffdf5; }
.payment-proof-redirect h4 { margin:0 0 6px; color:var(--navy); }
.payment-proof-redirect p { margin:0 0 12px; color:var(--muted); font-size:14px; }

/* Editorial flags & images — image flags work on PC + mobile */
.editor-in-chief-card { position: relative; overflow: visible; }
.editor-card { position: relative; overflow: visible; }
.editor-flag {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 0; /* hide broken emoji text if any */
}
.editor-flag .flag-img {
  display: block !important;
  width: 28px;
  height: 21px;
  object-fit: cover;
  border-radius: 3px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  background: #e8eee9;
}
.editor-in-chief-card .editor-flag {
  top: 56px;
  right: 28px;
}
.editor-in-chief-card .editor-flag .flag-img {
  width: 32px;
  height: 24px;
}
.eic-avatar img,
.editor-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}
.editor-dept {
  font-size: 13px;
  color: var(--accent2);
  margin-bottom: 2px;
  font-weight: 500;
}
.editor-inst {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
}
.eic-info h3 {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: white;
  margin-bottom: 10px;
}
.eic-info p {
  color: #b8d4c4;
  font-size: 14px;
  line-height: 1.55;
  margin-bottom: 2px;
}



/* ========== EDITORIAL BOARD (match FTSR layout) ========== */
.editorial-page {
  padding: 64px 40px;
  max-width: 1100px;
  margin: 0 auto;
}

.editor-in-chief-card {
  background: linear-gradient(135deg, var(--navy), var(--deep));
  border-radius: 16px;
  padding: 40px;
  display: flex;
  gap: 32px;
  align-items: center;
  margin-bottom: 48px;
  position: relative;
  overflow: visible;
  box-shadow: 0 8px 32px rgba(10, 31, 24, 0.18);
  color: white;
}

.editor-in-chief-card::after {
  content: "Editor in Chief";
  position: absolute;
  top: 20px;
  right: 28px;
  background: var(--gold, #c8a84b);
  color: var(--navy);
  font-size: 10px;
  font-weight: 800;
  padding: 6px 14px;
  border-radius: 20px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  z-index: 2;
}

.editor-in-chief-card .editor-flag {
  position: absolute;
  top: 56px;
  right: 28px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.eic-avatar {
  width: 100px;
  height: 100px;
  background: linear-gradient(135deg, var(--accent), #3ecf8e);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Playfair Display", serif;
  font-size: 42px;
  font-weight: 800;
  color: var(--navy);
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(45, 155, 106, 0.3);
  overflow: hidden;
}

.eic-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.eic-info h3 {
  font-family: "Playfair Display", serif;
  font-size: 32px;
  font-weight: 700;
  color: white;
  margin-bottom: 12px;
  padding-right: 100px;
}

.eic-info p {
  color: #b8d4c4;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 4px;
}

.editors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}

.editor-card {
  position: relative;
  background: var(--light, #f2f8f5);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: all 0.22s;
}

.editor-card:hover {
  border-color: var(--accent2);
  box-shadow: 0 4px 16px rgba(26, 122, 82, 0.14);
  transform: translateY(-2px);
}

.editor-flag {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.editor-flag .flag-img {
  display: block !important;
  width: 28px;
  height: 21px;
  object-fit: cover;
  border-radius: 3px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.editor-avatar {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, var(--accent2), #2d9b6a);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Playfair Display", serif;
  font-size: 20px;
  font-weight: 700;
  color: white;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(26, 122, 82, 0.22);
  overflow: hidden;
}

.editor-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.editor-info {
  flex: 1;
  min-width: 0;
  padding-right: 28px;
}

.editor-info h4 {
  font-size: 16px;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 4px;
  line-height: 1.3;
}

.editor-dept {
  font-size: 13px;
  color: var(--accent2);
  margin-bottom: 2px;
  font-weight: 500;
}

.editor-inst {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
}

@media (max-width: 600px) {
  .editor-in-chief-card {
    flex-direction: column;
    text-align: center;
    padding: 28px 20px;
  }
  .eic-info h3 { padding-right: 0; font-size: 24px; }
  .editor-in-chief-card .editor-flag { top: 56px; right: 16px; }
}



/* ========== POLICY LAYOUT + MODERN CARDS ========== */
.policy-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 28px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 40px 24px 64px;
}
.policy-side {
  position: sticky;
  top: 80px;
  align-self: start;
  background: white;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 8px 24px rgba(15, 40, 30, 0.04);
}
.policy-side .side-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--muted);
  padding: 6px 12px 10px;
}
.policy-side a {
  display: block;
  padding: 11px 14px;
  color: var(--text);
  text-decoration: none;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
  transition: background 0.18s, color 0.18s;
}
.policy-side a:hover {
  background: #e8f5ef;
  color: var(--accent2);
}
.policy-side a.active {
  background: linear-gradient(135deg, var(--accent2), #2d9b6a);
  color: white;
  box-shadow: 0 4px 12px rgba(26, 122, 82, 0.25);
}
.policy-body {
  background: white;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px;
  line-height: 1.75;
  box-shadow: 0 12px 32px rgba(15, 40, 30, 0.05);
}
.policy-body h2 {
  font-family: "Playfair Display", serif;
  color: var(--navy);
  font-size: 30px;
  margin-bottom: 8px;
}
.policy-body .policy-lead {
  color: var(--muted);
  margin-bottom: 28px;
  font-size: 16px;
}

/* Modern guideline / area cards */
.modern-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin-top: 8px;
}
.modern-card {
  position: relative;
  background: linear-gradient(165deg, #ffffff 0%, #f4faf7 100%);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px 22px 20px;
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  min-height: 150px;
}
.modern-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent2), var(--gold, #c8a84b), var(--accent));
  opacity: 0.85;
}
.modern-card:hover {
  transform: translateY(-5px);
  border-color: rgba(26, 122, 82, 0.28);
  box-shadow: 0 16px 36px rgba(15, 40, 30, 0.1);
}
.modern-card .mc-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 8px;
  background: #e0f2ea;
  color: var(--accent2);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 12px;
}
.modern-card .mc-icon {
  font-size: 22px;
  margin-bottom: 10px;
  line-height: 1;
}
.modern-card h4 {
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  line-height: 1.35;
}
.modern-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}
.modern-card .mc-tags {
  margin-top: 12px;
  font-size: 12px;
  color: var(--accent2);
  line-height: 1.5;
  opacity: 0.9;
}
.policy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

@media (max-width: 860px) {
  .policy-layout {
    grid-template-columns: 1fr;
    padding: 24px 16px 48px;
  }
  .policy-side {
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px;
  }
  .policy-side .side-title { width: 100%; }
  .policy-side a {
    margin: 0;
    font-size: 13px;
    padding: 8px 12px;
  }
  .policy-body { padding: 24px 18px; }
}



/* ========== HOVER DETAIL CARDS (Areas + Guidelines) ========== */
.detail-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 8px;
  position: relative;
  z-index: 1;
}

.detail-card {
  position: relative;
  background: linear-gradient(165deg, #ffffff 0%, #f4faf7 100%);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 18px 18px 16px;
  min-height: 120px;
  cursor: default;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  overflow: visible;
  z-index: 1;
}

.detail-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent2), var(--gold, #c8a84b), var(--accent));
  border-radius: 16px 16px 0 0;
  opacity: 0.9;
}

.detail-card .dc-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: 8px;
  background: #e0f2ea;
  color: var(--accent2);
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 10px;
}

.detail-card h4 {
  color: var(--navy);
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 6px;
  line-height: 1.35;
}

.detail-card .dc-preview {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Full detail panel – appears on hover */
.detail-card .dc-full {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0.92);
  width: min(340px, 90vw);
  max-width: 360px;
  padding: 22px 22px 20px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(26, 122, 82, 0.2);
  box-shadow: 0 24px 48px rgba(10, 31, 24, 0.18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  z-index: 30;
}

.detail-card .dc-full h4 {
  font-size: 17px;
  margin-bottom: 10px;
  padding-right: 8px;
}

.detail-card .dc-full p {
  color: var(--text, #1a2e26);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

.detail-card .dc-full .dc-meta {
  margin-top: 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent2);
  letter-spacing: 0.3px;
}

.detail-card:hover {
  transform: translateY(-3px);
  border-color: rgba(26, 122, 82, 0.3);
  box-shadow: 0 10px 24px rgba(15, 40, 30, 0.08);
  z-index: 25;
}

.detail-card:hover .dc-full {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}

.detail-card:hover .dc-preview {
  opacity: 0.35;
}

@media (max-width: 600px) {
  .detail-card .dc-full {
    width: calc(100vw - 48px);
    max-width: none;
  }
}



/* ========== SUBMIT: chips + repeat rows ========== */
.field-block { margin-bottom: 18px; }
.field-block > label { display: block; font-weight: 600; color: var(--navy); margin-bottom: 8px; }
.field-hint { font-weight: 500; color: var(--muted); font-size: 13px; }
.field-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.field-head label { margin: 0; font-weight: 600; color: var(--navy); }

.chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 0;
  margin-bottom: 8px;
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #e0f2ea;
  color: var(--navy);
  font-size: 13px;
  font-weight: 600;
  border: 1px solid rgba(26, 122, 82, 0.2);
}
.chip-x {
  border: none;
  background: transparent;
  color: var(--accent2);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 0 2px;
}
.chip-x:hover { color: #b00020; }

.btn-add {
  border: 1px dashed var(--accent2);
  background: #f2faf6;
  color: var(--accent2);
  font-weight: 700;
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 10px;
  cursor: pointer;
}
.btn-add:hover { background: #e0f2ea; }

.repeat-list { display: flex; flex-direction: column; gap: 12px; }
.repeat-row {
  background: #f7fbf9;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 16px;
}
.repeat-row-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.repeat-row-head strong { color: var(--navy); font-size: 14px; }
.btn-remove {
  border: none;
  background: transparent;
  color: #b00020;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.repeat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 12px;
}
.repeat-grid label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.repeat-grid input[type="text"],
.repeat-grid input[type="email"] {
  font-weight: 500;
  color: var(--text, #1a2e26);
}
.check-label {
  flex-direction: row !important;
  align-items: center;
  gap: 8px !important;
  margin-top: 18px;
}

/* ========== SCROLL REVEAL D: BLUR + SLIDE ========== */
.reveal {
  opacity: 0;
  filter: blur(8px);
  transition:
    opacity 0.7s ease,
    transform 0.7s ease,
    filter 0.7s ease;
  will-change: opacity, transform, filter;
}
.reveal.from-left {
  transform: translateX(-50px);
}
.reveal.from-right {
  transform: translateX(50px);
}
.reveal.visible {
  opacity: 1;
  filter: blur(0);
  transform: translateX(0);
}
.reveal.d1 { transition-delay: 0.05s; }
.reveal.d2 { transition-delay: 0.12s; }
.reveal.d3 { transition-delay: 0.19s; }
.reveal.d4 { transition-delay: 0.26s; }
.reveal.d5 { transition-delay: 0.33s; }
.reveal.d6 { transition-delay: 0.40s; }

/* Keep hover detail panel transforms working on detail cards */
.detail-card.reveal.visible:hover {
  transform: translateY(-3px);
}
.detail-card.reveal .dc-full {
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.from-left,
  .reveal.from-right {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ========== SUBMIT WIZARD ========== */
.wizard-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 900px;
  margin: 0 auto 20px;
  justify-content: center;
}
.wiz-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--border);
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.wiz-step > span:first-child {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #e8f0eb;
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
}
.wiz-step.active {
  border-color: var(--accent2);
  color: var(--navy);
  background: #eef8f3;
}
.wiz-step.active > span:first-child {
  background: var(--accent2);
  color: #fff;
}
.wiz-step.done {
  border-color: rgba(26,122,82,0.35);
  color: var(--accent2);
}
.wizard-panel { max-width: 820px; margin: 0 auto; }
.wiz-pane { display: none; }
.wiz-pane.active { display: block; }
.wiz-title {
  font-family: "Playfair Display", serif;
  color: var(--navy);
  font-size: 22px;
  margin-bottom: 8px;
}
.wiz-hint { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
.type-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-top: 8px;
}
.type-btn {
  text-align: left;
  border: 1px solid var(--border);
  background: #f7fbf9;
  border-radius: 14px;
  padding: 18px 16px;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.type-btn strong { display: block; color: var(--navy); margin-bottom: 6px; font-size: 15px; }
.type-btn span { display: block; color: var(--muted); font-size: 13px; line-height: 1.45; }
.type-btn:hover { border-color: var(--accent2); }
.type-btn.selected {
  border-color: var(--accent2);
  background: #e8f6ef;
  box-shadow: 0 0 0 3px rgba(26,122,82,0.12);
}
.wiz-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.success-box {
  text-align: center;
  padding: 24px 12px 8px;
}
.success-icon {
  width: 56px; height: 56px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #e0f2ea;
  color: var(--accent2);
  font-size: 28px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tracking-display {
  margin: 18px auto;
  padding: 14px 18px;
  max-width: 420px;
  border-radius: 12px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.3px;
  word-break: break-all;
}
.success-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 12px;
}

/* Abstract live word count bar */
.word-count-bar {
  margin: 8px 0 16px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f3f7f5;
  border: 1px solid var(--border);
}
.word-count-bar .wc-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 13px;
}
.word-count-bar .wc-top strong {
  color: var(--navy);
  font-size: 14px;
}
.word-count-bar .word-count-hint {
  color: var(--muted);
  font-weight: 500;
}
.wc-track {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: #e2ebe6;
  overflow: hidden;
}
.wc-fill {
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: #9aa8a1;
  transition: width 0.2s ease, background 0.2s ease;
}
/* recommended zone marker ~200-250 on 0-350 scale */
.wc-zone {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(200 / 350 * 100%);
  width: calc(50 / 350 * 100%);
  background: rgba(26, 122, 82, 0.18);
  pointer-events: none;
}
.word-count-bar.wc-empty .wc-fill { background: #9aa8a1; }
.word-count-bar.wc-low .wc-fill { background: #d4920a; }
.word-count-bar.wc-low .wc-top strong,
.word-count-bar.wc-low .word-count-hint { color: #b06d00; }
.word-count-bar.wc-ok .wc-fill { background: var(--accent2); }
.word-count-bar.wc-ok .wc-top strong,
.word-count-bar.wc-ok .word-count-hint { color: var(--accent2); }
.word-count-bar.wc-high .wc-fill { background: #c0392b; }
.word-count-bar.wc-high .wc-top strong,
.word-count-bar.wc-high .word-count-hint { color: #b00020; }

/* Invalid field highlight on Next */
.field-error {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.18) !important;
  background: #fff7f6 !important;
}
.type-btn.field-error {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.15) !important;
}
.chip-list.field-error {
  border: 1px dashed #c0392b;
  border-radius: 10px;
  padding: 6px;
  background: #fff7f6;
}
input.field-error,
textarea.field-error,
select.field-error {
  outline: none;
}

/* Join As Reviewer CTA + modal */
.join-reviewer-block {
  max-width: 720px;
  margin: 56px auto 24px;
  text-align: center;
  padding: 36px 28px;
  border-radius: 20px;
  background: linear-gradient(165deg, #f4faf7 0%, #e8f5ef 100%);
  border: 1px solid var(--border);
  box-shadow: 0 12px 32px rgba(15, 40, 30, 0.06);
}
.join-reviewer-block h3 {
  font-family: "Playfair Display", serif;
  color: var(--navy);
  font-size: 26px;
  margin-bottom: 10px;
}
.join-reviewer-block p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 22px;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}
.btn-join-reviewer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 36px;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.3px;
  color: #fff;
  background: linear-gradient(135deg, var(--accent2), #2d9b6a);
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(26, 122, 82, 0.28);
  transition: transform 0.18s, box-shadow 0.18s;
}
.btn-join-reviewer:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(26, 122, 82, 0.35);
}

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 31, 24, 0.55);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  padding: 20px;
}
.modal-overlay.open { display: flex; }
.modal-card {
  width: min(520px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  border-radius: 16px;
  padding: 22px 22px 18px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.2);
}
.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.modal-head h3 {
  font-family: "Playfair Display", serif;
  color: var(--navy);
  font-size: 22px;
  margin: 0;
}
.modal-close {
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
}
.modal-card label {
  display: block;
  font-weight: 600;
  color: var(--navy);
  font-size: 13px;
  margin-bottom: 12px;
}
.modal-card input,
.modal-card textarea {
  display: block;
  width: 100%;
  margin-top: 5px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font: inherit;
  box-sizing: border-box;
}
.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 8px;
}
/* JAST correction set: logo, accessible content dialogs and responsive archive tools */
.site-header .header-emblem { display:grid; place-items:center; overflow:hidden; }
.site-header .header-emblem img { width:100%; height:100%; object-fit:contain; }
.partner-logo-section { background:#f7f7f2; padding:18px 0 22px; overflow:hidden; }
.partner-logo-heading { text-align:center; color:#49665c; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; }
.partner-logo-window { overflow:hidden; width:100%; }
.partner-logo-track { display:flex; align-items:center; gap:56px; width:max-content; }
.partner-logo-track.logo-loop { animation:jastLogoLoop var(--partner-logo-duration,48s) linear infinite; }
.partner-logo-track a { display:flex; align-items:center; justify-content:center; width:150px; height:64px; }
.partner-logo-track img { display:block; max-width:150px; max-height:58px; object-fit:contain; }
.partner-logo-track.logo-shape-round a { width:78px; height:78px; border:1px solid #e2e9e4; border-radius:50%; background:#fff; }
.partner-logo-track.logo-shape-round img { width:68px; height:68px; max-width:68px; max-height:68px; border-radius:50%; }
.partner-logo-track.logo-shape-square a { width:86px; height:86px; border:1px solid #e2e9e4; border-radius:10px; background:#fff; }
.partner-logo-track.logo-shape-square img { width:72px; height:72px; max-width:72px; max-height:72px; border-radius:7px; }
.partner-logo-track.logo-shape-rectangle a { border-radius:0; background:transparent; }
@keyframes jastLogoLoop { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.call-for-papers-button { position:fixed; z-index:1000; right:0; top:38%; border:0; border-radius:12px 0 0 12px; padding:15px 13px; background:#d5b548; color:#122a21; font-weight:800; writing-mode:vertical-rl; transform:rotate(180deg); box-shadow:0 6px 20px #0002; cursor:pointer; }
.call-for-papers-modal,.site-document-modal { display:none; position:fixed; inset:0; z-index:1100; padding:20px; align-items:center; justify-content:center; background:rgba(7,24,17,.72); }
.call-for-papers-modal.open,.site-document-modal.open { display:flex; }
.call-for-papers-dialog,.site-document-dialog { position:relative; width:min(960px,96vw); max-height:90vh; overflow:auto; padding:28px; border-radius:18px; background:#fff; box-shadow:0 20px 70px #0004; }
.call-for-papers-dialog h2,.site-document-dialog h2 { margin:0 48px 18px 0; color:#103b2b; }
.call-for-papers-dialog img { display:block; max-width:100%; max-height:70vh; object-fit:contain; margin:0 auto 18px; }
.call-for-papers-close,.site-document-close { position:absolute; top:12px; right:14px; width:40px; height:40px; border:0; border-radius:50%; background:#eff5f1; color:#163c2e; font-size:28px; cursor:pointer; }
.site-document-body { white-space:pre-wrap; overflow-wrap:anywhere; font:400 15px/1.75 "DM Sans",sans-serif; color:#263b33; margin:0; }
.partner-logo-section[hidden],.call-for-papers-button[hidden] { display:none; }
.resource-card { display:block; text-decoration:none; color:inherit; transition:transform .2s ease,box-shadow .2s ease; }
.resource-card:hover { transform:translateY(-4px); box-shadow:0 14px 32px #0a33241a; }
.resource-card p:last-child { color:#197a55; font-weight:700; }
.archive-search { display:grid; grid-template-columns:minmax(220px,1fr) minmax(160px,260px) auto; gap:10px; max-width:950px; margin:0 auto 28px; }
.archive-search input,.archive-search select { min-width:0; padding:12px 14px; border:1px solid #d8e3dd; border-radius:10px; background:#fff; font:inherit; }
.archive-list { display:grid; gap:18px; }
.archive-paper { padding:22px; }
.archive-paper h4 { font-family:"Playfair Display",serif; font-size:1.2rem; }
.archive-paper .meta { color:#247a59; }
.archive-paper .btn { margin-top:10px; }
.special-issue-strip,.special-issue-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin:0 0 24px; }
.special-issue-card { border:1px solid #dce8e1; border-radius:14px; padding:20px; background:#fbfdfb; }
.special-issue-card h4 { color:#143f2f; }
.special-issue-card .meta { color:#687b72; }
.special-issue-image { display:block; width:100%; max-height:230px; object-fit:cover; border-radius:10px; margin-bottom:14px; }
.detail-card .dc-num { display:none; }
.revision-shortcut { display:inline-flex; margin-bottom:18px; }
.declaration-checks { display:grid; gap:10px; margin:18px 0; padding:18px; border:1px solid #dce7e1; border-radius:12px; }
.declaration-checks legend { font-weight:800; color:#153c2e; padding:0 8px; }
.declaration-checks label { display:flex; align-items:flex-start; gap:10px; margin:0; line-height:1.55; }
.declaration-checks input { flex:none; margin-top:5px; }
.footer-links { display:block; margin-top:8px; font-size:13px; }
.reviewer-profile .editor-info a { color:#16764f; font-weight:700; }
.reviewer-papers { margin-top:8px; }
@media (max-width:700px) {
  .archive-search { grid-template-columns:1fr; }
  .call-for-papers-button { top:auto; bottom:22px; right:0; writing-mode:horizontal-tb; transform:none; border-radius:12px 0 0 12px; padding:11px 14px; }
  .call-for-papers-dialog,.site-document-dialog { padding:22px 16px; }
  .partner-logo-track { gap:32px; }
  .partner-logo-track a { width:120px; }
  .partner-logo-track img { max-width:120px; }
}

@media (max-width:640px) {
  html,body { max-width:100%; overflow-x:hidden; }
  .topbar { padding:8px 12px; flex-wrap:wrap; justify-content:center; gap:4px 12px; text-align:center; line-height:1.4; }
  .topbar > span { max-width:100%; overflow-wrap:anywhere; }
  header.site-header { width:100%; box-sizing:border-box; padding:18px 16px; gap:13px; align-items:center; }
  .site-header .header-emblem { width:58px; height:58px; flex:0 0 58px; font-size:16px; }
  .site-header .header-text { flex:1 1 0; min-width:0; }
  .site-header .header-text h1 { max-width:100%; margin:0; font-size:clamp(18px,5.7vw,24px); line-height:1.18; overflow-wrap:anywhere; }
  .site-header .header-text .abbr { max-width:100%; box-sizing:border-box; white-space:normal; line-height:1.35; font-size:9px; letter-spacing:.4px; }
  .site-header .header-text .subtitle { max-width:100%; font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
  nav,.nav-inner { max-width:100%; box-sizing:border-box; }
  .nav-inner { padding:4px 6px; overflow:visible; flex-wrap:wrap; justify-content:center; }
  .nav-inner a { padding:9px 10px; font-size:12px; }
  .hero { width:100%; box-sizing:border-box; padding:42px 18px; }
  .hero h2 { width:100%; max-width:100%; box-sizing:border-box; font-size:clamp(28px,8vw,36px); line-height:1.15; overflow-wrap:anywhere; }
  .hero p { max-width:100%; font-size:16px; line-height:1.55; overflow-wrap:anywhere; }
  .hero-btns { width:min(100%,360px); margin:0 auto; flex-direction:column; align-items:stretch; gap:10px; }
  .hero-btns .btn { width:100%; box-sizing:border-box; white-space:normal; }
  .call-for-papers-button { position:static; display:block; width:100%; box-sizing:border-box; border-radius:0; padding:11px 14px; writing-mode:horizontal-tb; transform:none; text-align:center; }
  .reveal.from-left,.reveal.from-right { transform:translateY(14px); }
  .reveal.visible { transform:translateY(0); }
}

/* Refined JAST footer */
.site-footer { margin-top:64px; padding:0; text-align:left; color:#d8e8df; background:linear-gradient(135deg,#091f18,#103c2d 65%,#14563a); border-top:4px solid var(--gold); }
.site-footer .footer-main { max-width:1200px; margin:0 auto; padding:42px 32px 34px; display:grid; grid-template-columns:minmax(230px,1.55fr) repeat(2,minmax(135px,.8fr)) minmax(190px,1fr); gap:34px; }
.site-footer .footer-brand-row { display:flex; align-items:flex-start; gap:16px; margin-bottom:14px; }
.site-footer .footer-logo { display:grid; place-items:center; flex:0 0 64px; width:64px; height:96px; margin:0; overflow:hidden; border-radius:0; color:#0b2a1e; background:linear-gradient(135deg,#45c58a,#d5b548); font:800 16px/1 "Playfair Display",serif; }
.site-footer .footer-logo img { width:100%; height:100%; object-fit:cover; border-radius:0; }
.site-footer #footer-title { display:block; color:#fff; font:700 18px/1.35 "Playfair Display",serif; }
.site-footer .footer-brand p { max-width:360px; margin:0 0 20px; color:#c4d9cd; font-size:14px; line-height:1.7; }
.site-footer .footer-join-reviewer { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:11px 18px; border-radius:8px; background:var(--gold); color:#13291f; font-size:14px; font-weight:800; text-decoration:none; transition:transform .2s,background .2s; }
.site-footer .footer-join-reviewer:hover { transform:translateY(-2px); background:#e3c75f; }
.site-footer .footer-column { display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:0; border:0; position:static; background:transparent; box-shadow:none; }
.site-footer .footer-column h4 { margin:4px 0 7px; color:#fff; font:700 15px/1.4 "DM Sans",sans-serif; }
.site-footer .footer-column a,.site-footer .footer-column span { display:block; margin:0; color:#c4d9cd; font-size:13px; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; }
.site-footer .footer-column a:hover { color:#e2c65c; }
.site-footer .footer-contact > a:first-of-type { color:#f0d873; font-weight:700; }
.site-footer .footer-policy-links { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; margin-top:8px; }
.site-footer .footer-bottom { max-width:1200px; margin:0 auto; padding:16px 32px 20px; border-top:1px solid rgba(221,239,229,.18); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 18px; color:#a9c5b6; font-size:12px; }
.site-footer .footer-bottom span { display:block; margin:0; color:inherit; font-size:inherit; }
@media(max-width:900px) { .site-footer .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; } }
@media(max-width:560px) {
  .site-footer { margin-top:42px; }
  .site-footer .footer-main { grid-template-columns:1fr; gap:24px; padding:30px 20px; }
  .site-footer .footer-brand p { max-width:none; }
  .site-footer .footer-logo { flex-basis:54px; width:54px; height:82px; }
  .site-footer .footer-bottom { padding:15px 20px 20px; flex-direction:column; align-items:flex-start; }
  .site-footer .footer-policy-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* Main JAST brand mark: use a rectangular logo frame. */
.site-header .header-emblem,
.site-header .header-emblem img,
.site-footer .footer-logo,
.site-footer .footer-logo img { border-radius:0; }
.site-header .header-emblem,
.site-footer .footer-logo { background:transparent; }

/* Reference-inspired JAST masthead and journal navigation. */
.topbar {
  min-height:50px;
  padding:10px max(24px,calc((100vw - 1216px)/2));
  background:#fff;
  color:#27342f;
  border-bottom:1px solid #e5e9e7;
  font-size:13px;
}
.topbar a { color:#176b4c; font-weight:700; }
header.site-header {
  width:100%;
  max-width:none;
  min-height:258px;
  margin:0;
  padding:0 max(24px,calc((100vw - 1216px)/2));
  display:flex;
  align-items:center;
  gap:52px;
  overflow:visible;
  border-radius:0;
  background:linear-gradient(115deg,#103d30 0%,#0b2d23 72%,#123d2e 100%);
}
.site-header .header-emblem {
  position:relative;
  z-index:2;
  flex:0 0 166px;
  width:166px;
  height:249px;
  margin-top:-32px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.35);
  border-radius:0;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.24);
}
.site-header .header-emblem img {
  display:block;
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:cover;
}
.site-header .header-text { position:relative; z-index:1; min-width:0; }
.site-header .header-text h1 {
  max-width:760px;
  font:600 clamp(28px,3vw,38px)/1.2 "DM Sans",system-ui,sans-serif;
  letter-spacing:-.025em;
}
.site-header .header-text .abbr {
  display:block;
  padding:0;
  margin-top:14px;
  border-radius:0;
  background:transparent;
  color:#f0d77e;
  font-size:15px;
  font-weight:600;
  letter-spacing:.01em;
}
.site-header .header-text .subtitle { margin-top:8px; color:#e0ebe5; font-size:15px; }
nav[aria-label="Main navigation"] {
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:stretch;
  gap:8px;
  padding:0 max(24px,calc((100vw - 1216px)/2));
  overflow:visible;
  border-bottom:1px solid #d9dfdc;
  background:#fff;
  box-shadow:0 3px 12px rgba(20,35,28,.06);
}
nav[aria-label="Main navigation"] .nav-inner {
  flex:1 1 auto;
  width:auto;
  max-width:none;
  min-width:0;
  margin:0;
  padding:0;
  display:flex;
  align-items:stretch;
  gap:2px;
  overflow:visible;
}
nav[aria-label="Main navigation"] .nav-inner > a,
nav[aria-label="Main navigation"] .nav-dropdown > summary {
  min-height:74px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-bottom:3px solid transparent;
  background:transparent;
  color:#24332d;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}
nav[aria-label="Main navigation"] .nav-inner > a:hover,
nav[aria-label="Main navigation"] .nav-dropdown > summary:hover,
nav[aria-label="Main navigation"] .nav-dropdown[open] > summary {
  border-bottom-color:#2d9b6a;
  color:#176b4c;
}
.nav-dropdown { position:relative; display:flex; align-items:stretch; }
.nav-dropdown > summary { list-style:none; }
.nav-dropdown > summary::-webkit-details-marker { display:none; }
.nav-chevron { width:8px; height:8px; margin-top:-4px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .18s ease; }
.nav-dropdown[open] .nav-chevron { margin-top:4px; transform:rotate(225deg); }
.nav-menu {
  position:absolute;
  top:calc(100% - 1px);
  left:0;
  z-index:120;
  min-width:220px;
  padding:8px;
  display:grid;
  gap:2px;
  border:1px solid #e0e7e3;
  border-radius:0 0 8px 8px;
  background:#fff;
  box-shadow:0 12px 28px rgba(14,35,25,.15);
}
.nav-menu a { padding:12px 14px; border-radius:5px; color:#25362e; font-size:14px; text-decoration:none; }
.nav-menu a:hover { background:#f0f6f2; color:#176b4c; }
.header-submit-cta {
  flex:0 0 auto;
  align-self:center;
  min-height:44px;
  margin:0 0 0 8px;
  padding:0 18px;
  border:0;
  border-radius:4px;
  background:#1478a8;
  color:#fff;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  text-decoration:none;
  white-space:nowrap;
}
.header-submit-cta:hover { background:#0b628d; color:#fff; }
.header-search {
  flex:0 1 300px;
  min-width:220px;
  display:flex;
  align-items:center;
  margin:0;
  border-left:1px solid #e1e6e3;
}
.header-search input {
  width:100%;
  min-width:0;
  height:44px;
  padding:0 14px;
  border:0;
  outline-offset:-2px;
  background:#fff;
  color:#26352e;
  font:400 14px/1.2 "DM Sans",system-ui,sans-serif;
}
.header-search input::placeholder { color:#66736d; opacity:1; }
.header-search button {
  flex:0 0 48px;
  width:48px;
  height:48px;
  border:0;
  background:#1478a8;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.header-search button:hover { background:#0b628d; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media(max-width:1120px) {
  nav[aria-label="Main navigation"] { flex-wrap:wrap; gap:0; }
  nav[aria-label="Main navigation"] .nav-inner { flex:1 1 100%; }
  .header-search { flex:1 1 100%; min-width:0; min-height:54px; border-top:1px solid #e1e6e3; border-left:0; }
  .header-submit-cta { margin:8px 0 10px auto; }
  .header-search button { height:42px; }
}
@media(max-width:640px) {
  .topbar { min-height:0; padding:9px 14px; background:#fff; }
  header.site-header {
    min-height:190px;
    padding:24px 16px 28px;
    gap:16px;
    align-items:center;
  }
  .site-header .header-emblem { flex:0 0 92px; width:92px; height:138px; margin-top:-18px; }
  .site-header .header-text { flex:1 1 0; }
  .site-header .header-text h1 { font-size:clamp(19px,5.6vw,25px); line-height:1.2; }
  .site-header .header-text .abbr { margin-top:9px; font-size:12px; line-height:1.35; }
  .site-header .header-text .subtitle { margin-top:6px; font-size:11px; line-height:1.45; }
  nav[aria-label="Main navigation"] { padding:0 10px; }
  nav[aria-label="Main navigation"] .nav-inner { flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; }
  nav[aria-label="Main navigation"] .nav-inner { justify-content:flex-start; }
  nav[aria-label="Main navigation"] .nav-inner > a,
  nav[aria-label="Main navigation"] .nav-dropdown > summary { min-height:58px; padding:0 11px; font-size:13px; }
  .nav-menu { position:fixed; top:auto; left:10px; max-width:calc(100vw - 20px); }
  .header-search { min-height:50px; }
  .header-search input { height:42px; }
  .header-submit-cta { width:100%; margin:0 0 10px; }
}

/* Keep the original flat public navigation below the refreshed masthead. */
nav[aria-label="Main navigation"] {
  display:block;
  padding:0;
  border-bottom:2px solid var(--accent);
  background:var(--white);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
}
nav[aria-label="Main navigation"] .nav-inner {
  display:flex;
  width:100%;
  max-width:1240px;
  min-width:0;
  margin:0 auto;
  padding:0 24px;
  flex:initial;
  flex-wrap:nowrap;
  justify-content:flex-start;
  align-items:stretch;
  gap:0;
  overflow-x:auto;
}
nav[aria-label="Main navigation"] .nav-inner > a {
  display:block;
  min-height:0;
  padding:16px 18px;
  border:0;
  border-bottom:3px solid transparent;
  border-radius:0;
  background:transparent;
  color:var(--text);
  font-size:14px;
  font-weight:600;
  line-height:normal;
  text-align:left;
  text-decoration:none;
  transition:all .2s;
}
nav[aria-label="Main navigation"] .nav-inner > a:hover,
nav[aria-label="Main navigation"] .nav-inner > a.active {
  border-bottom-color:var(--accent);
  color:var(--accent2);
}
@media(max-width:1120px) {
  nav[aria-label="Main navigation"] .nav-inner { flex:initial; }
}
@media(max-width:640px) {
  nav[aria-label="Main navigation"] .nav-inner {
    max-width:100%;
    padding:4px 6px;
    flex-wrap:wrap;
    justify-content:center;
    overflow:visible;
  }
  nav[aria-label="Main navigation"] .nav-inner > a { padding:9px 10px; font-size:12px; }
}

/* Compact green journal masthead. */
header.site-header {
  min-height:204px;
  gap:38px;
  background:linear-gradient(115deg,#18764f 0%,#126345 58%,#0c5038 100%);
}
.site-header .header-emblem {
  flex-basis:122px;
  width:122px;
  height:183px;
  margin-top:-20px;
}
.site-header .header-text h1 { font-size:clamp(27px,2.6vw,34px); }
@media(max-width:640px) {
  header.site-header { min-height:170px; padding:20px 14px 22px; gap:13px; }
  .site-header .header-emblem { flex-basis:76px; width:76px; height:114px; margin-top:-10px; }
  .site-header .header-text h1 { font-size:clamp(18px,5.1vw,22px); }
}

/* Keep the original book-cover logo presentation while shortening the green band. */
.topbar { min-height:64px; }
header.site-header {
  position:relative;
  height:210px;
  min-height:210px;
  padding:0 max(24px,calc((100vw - 1216px)/2));
  align-items:center;
  background:linear-gradient(115deg,#103d30 0%,#0b2d23 72%,#123d2e 100%);
}
.site-header .header-emblem {
  position:absolute;
  left:max(24px,calc((100vw - 1216px)/2));
  top:-39px;
  flex:0 0 166px;
  width:166px;
  height:249px;
  margin:0;
}
.site-header .header-text { margin-left:218px; }
@media(max-width:640px) {
  .topbar { min-height:0; }
  header.site-header {
    position:relative;
    height:auto;
    min-height:170px;
    padding:20px 14px 22px;
    gap:13px;
  }
  .site-header .header-emblem {
    position:relative;
    left:auto;
    top:auto;
    flex:0 0 92px;
    width:92px;
    height:138px;
    margin-top:-10px;
  }
  .site-header .header-text { margin-left:0; }
}
@media(min-width:641px) {
  .topbar #topbar-text { margin-left:204px; }
}
@media(min-width:641px) and (max-width:900px) {
  .topbar { justify-content:flex-end; }
  .topbar #topbar-text { display:none; }
}

/* Series 4 refinements: hero motion, clearer type cards, waiver and revision steps. */
.hero { padding:60px 40px; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero h2 {
    background-image: linear-gradient(100deg, var(--navy) 0%, var(--navy) 40%, #2d9b6a 49%, #c8a84b 55%, var(--navy) 66%, var(--navy) 100%);
    background-size: 250% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: hero-gloss 9s linear infinite;
  }
  @keyframes hero-gloss {
    from { background-position: 180% 0; }
    to { background-position: -80% 0; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero h2 { animation: none !important; background: none !important; color: var(--navy) !important; -webkit-text-fill-color: currentColor !important; }
}

.type-buttons { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.type-btn {
  min-height: 118px;
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border: 1px solid #cfded7;
  border-radius: 12px;
  background: #fff;
}
.type-btn strong { margin: 0; font-size: 17px; line-height: 1.3; color: #102f23; }
.type-btn span { font-size: 14px; line-height: 1.5; color: #4b6057; }
.type-btn:hover { border-color: var(--accent2); background: #f6fbf8; }
.type-btn.selected {
  border: 2px solid var(--accent2);
  background: #f2fbf7;
  box-shadow: 0 6px 20px rgba(16,70,48,.12);
  padding: 21px 19px;
}
.type-btn.selected strong { color: #0b5136; }
.type-btn:focus-visible { outline: 3px solid rgba(45,155,106,.35); outline-offset: 2px; }

.submit-guidelines-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 20px 0 4px; }
.submit-guidelines-row .wiz-hint { margin: 0; }
.submit-guidelines-row .btn { white-space: nowrap; }

.waiver-choice { margin: 18px 0 0; padding: 16px 18px; display: grid; gap: 12px; border: 1px solid var(--border); border-radius: 12px; background: #fbfdfc; }
.waiver-choice legend { padding: 0 6px; color: var(--navy); font-weight: 700; }
.waiver-choice label { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-weight: 500; line-height: 1.5; cursor: pointer; }
.waiver-choice input { margin: 4px 0 0; accent-color: var(--accent2); }
#waiver-reason-wrap { display: block; margin-top: 16px; }
#waiver-reason-wrap textarea { width: 100%; box-sizing: border-box; }
#waiver-word-count { display: block; margin-top: 6px; color: var(--muted); }

#revision-declarations { margin-top: 18px; }
#revision-declarations label { line-height: 1.55; }

.track-quick-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 24px; }
.track-quick-links .btn { width: 100%; box-sizing: border-box; text-align: center; white-space: normal; }

@media (max-width: 560px) {
  .hero { padding: 44px 18px; }
  .type-buttons { grid-template-columns: 1fr; }
  .submit-guidelines-row { flex-direction: column; align-items: stretch; }
  .submit-guidelines-row .btn { width: 100%; }
  .track-quick-links { grid-template-columns: 1fr 1fr; }
}
.archive-special-link { display:flex; justify-content:center; margin:-8px 0 24px; }
.archive-special-link .btn { padding:11px 22px; }

/* APC price card: regular rate, scholarly waiver, payable rate. */
.apc-price-card { min-width:240px; padding:18px 20px; border:1px solid rgba(255,255,255,.28); border-radius:14px; background:rgba(255,255,255,.08); text-align:center; }
.apc-price-old { color:#d7e6dd; font-size:13px; letter-spacing:.02em; }
.apc-price-old s { color:#fff; font-weight:600; }
.apc-price-waiver { display:inline-block; margin:8px 0 6px; padding:4px 10px; border-radius:999px; background:#d5b548; color:#12291e; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.apc-price-now { color:#fff; font-family:'Playfair Display',serif; font-size:26px; font-weight:800; line-height:1.25; }
.apc-price-note { margin-top:4px; color:#d7e6dd; font-size:13px; }
button.btn-outline { border:2px solid var(--navy); }
@media (max-width: 560px) { .apc-price-card { min-width:0; width:100%; box-sizing:border-box; } }

/* Checkboxes and radios must not inherit the full-width text-input rule. */
input[type="checkbox"], input[type="radio"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  padding: 0;
  margin: 3px 0 0;
  flex: 0 0 auto;
  accent-color: var(--accent2);
}
.declaration-checks label > strong,
.declaration-checks label > span { min-width: 0; }
#revision-declarations label > strong,
#revision-declarations label > span { min-width: 0; }

/* Empty revision summary should not render a coloured sliver. */
.revision-selected-summary:empty { display: none; }

/* Mobile navigation: one swipeable row instead of three wrapped rows. */
@media (max-width: 640px) {
  nav[aria-label="Main navigation"] .nav-inner {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  nav[aria-label="Main navigation"] .nav-inner::-webkit-scrollbar { display: none; }
  nav[aria-label="Main navigation"] .nav-inner > a {
    flex: 0 0 auto;
    padding: 12px 14px;
    font-size: 13px;
    white-space: nowrap;
  }
}

/* Contact page: details only, no card grid. */
.contact-details {
  max-width: 820px;
  margin: 0 auto;
  border-top: 1px solid #d8e3dd;
}
.contact-detail-row {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 18px;
  padding: 18px 4px;
  border-bottom: 1px solid #d8e3dd;
  color: #40544a;
}
.contact-detail-label { color: #143f2f; font-weight: 700; }
.contact-detail-row a { color: #1a7a52; font-weight: 600; overflow-wrap: anywhere; }

/* Archives: NEPT-style entry list with a detail/abstract dialog. */
.archive-list { display: block; max-width: 1000px; margin: 0 auto; border-top: 1px solid #d8e3dd; }
.archive-paper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  padding: 26px 4px;
  border: 0;
  border-bottom: 1px solid #d8e3dd;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.archive-paper-main { min-width: 0; flex: 1; }
.archive-paper-type {
  margin: 0 0 7px;
  color: #247a59;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.archive-paper h4 {
  margin: 0 0 8px;
  color: #143f2f;
  font-family: "Playfair Display", serif;
  font-size: 1.32rem;
  line-height: 1.3;
}
.archive-paper-authors { margin: 0 0 6px; color: #40544a; font-size: 14px; line-height: 1.5; }
.archive-paper-citation { margin: 0; color: #687b72; font-size: 13px; }
.archive-paper-doi { margin: 7px 0 0; font-size: 13px; }
.archive-paper-doi a, .archive-doi { color: #1a7a52; font-weight: 600; overflow-wrap: anywhere; }
.archive-paper-actions { display: flex; flex: 0 0 auto; flex-direction: column; gap: 8px; min-width: 152px; }
.archive-paper-actions.compact { flex-direction: row; flex-wrap: wrap; min-width: 0; }
.archive-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 13px;
  border: 1px solid #b9d4c6;
  border-radius: 7px;
  background: #fff;
  color: #1a5f45;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.archive-action:hover { border-color: #247a59; background: #f2f8f5; }
.archive-action-primary { border-color: #1a7a52; background: #1a7a52; color: #fff; }
.archive-action-primary:hover { background: #145f40; color: #fff; }
.archive-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(4, 20, 14, .62);
}
.archive-modal.open { display: flex; }
.archive-modal-dialog {
  position: relative;
  width: min(760px, 100%);
  max-height: min(82vh, 760px);
  overflow: auto;
  padding: 34px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.archive-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #eef4f0;
  color: #143f2f;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.archive-modal-eyebrow { margin: 0 0 8px; color: #247a59; font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.archive-modal-dialog h2 { margin: 0 0 10px; padding-right: 30px; color: #143f2f; font-family: "Playfair Display", serif; font-size: clamp(1.35rem, 3vw, 1.8rem); line-height: 1.3; }
.archive-modal-authors { margin: 0 0 6px; color: #40544a; font-size: 14px; }
.archive-modal-citation { margin: 0 0 20px; color: #687b72; font-size: 13px; }
.archive-modal-abstract { color: #33463c; line-height: 1.7; white-space: pre-line; }
.archive-modal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
@media (max-width: 720px) {
  .contact-detail-row { grid-template-columns: 1fr; gap: 5px; }
  .archive-paper { flex-direction: column; gap: 16px; padding: 22px 2px; }
  .archive-paper-actions { flex-direction: row; flex-wrap: wrap; min-width: 0; }
  .archive-modal-dialog { padding: 28px 20px; }
}
