/* ============================================================
   Research Citations Theme — Base Stylesheet (v1.0)
   Modern, accessible, fast OJS 3.4 child theme.
   Variants: variant-neutral.css / variant-medical.css / variant-tech.css
   ============================================================ */

:root {
  /* These get overridden by variant CSS */
  --rc-ink: #0F172A;
  --rc-ink-2: #1E293B;
  --rc-bg: #FAFAF7;
  --rc-card: #FFFFFF;
  --rc-line: #E2E8F0;
  --rc-muted: #64748B;
  --rc-accent: #0F766E;
  --rc-accent-2: #14B8A6;
  --rc-warm: #F87171;
  --rc-gold: #D4AF37;
  --rc-radius: 14px;
  --rc-font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --rc-font-serif: 'Source Serif Pro', Georgia, serif;
}

/* Reset / base */
html, body {
  background: var(--rc-bg);
  color: var(--rc-ink);
  font-family: var(--rc-font-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--rc-accent); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--rc-ink); }

/* ========== Header ========== */
.pkp_structure_head, header.header {
  background: var(--rc-card) !important;
  border-bottom: 1px solid var(--rc-line);
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.pkp_site_name, .header_view .pkp_site_name {
  padding: 18px 0 !important;
}
.pkp_site_name a, .pkp_site_name h1 a { color: var(--rc-ink) !important; }
.pkp_site_name .is_text {
  font-family: var(--rc-font-serif) !important;
  font-weight: 700;
  letter-spacing: -0.5px;
}
.pkp_site_name .is_img img { max-height: 84px; }

/* ========== Primary Navigation ========== */
.pkp_navigation_primary_row, nav.pkp_site_nav {
  background: var(--rc-ink) !important;
  border-top: 1px solid var(--rc-line) !important;
}
.pkp_navigation_primary > li > a {
  color: #CBD5E1 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  padding: 14px 18px !important;
  border-bottom: 2px solid transparent !important;
  transition: all .2s ease !important;
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li.active > a {
  background: rgba(255,255,255,.04) !important;
  color: #fff !important;
  border-bottom-color: var(--rc-accent-2) !important;
}

/* ========== Search bar ========== */
#searchQueryForm input[type="search"],
.pkp_search input {
  border: 1px solid var(--rc-line) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  background: var(--rc-bg) !important;
}

/* ========== Main / Content area ========== */
.pkp_structure_main, .page {
  padding: 32px 0;
}
.cmp_breadcrumbs, .breadcrumbs {
  font-size: 13px;
  color: var(--rc-muted);
}

/* ========== Headings ========== */
h1, h2, h3, h4, h5 {
  font-family: var(--rc-font-serif);
  color: var(--rc-ink);
  letter-spacing: -0.3px;
  line-height: 1.2;
}
.page_title, h1.page_title {
  font-size: 42px;
  font-weight: 700;
  margin-bottom: 24px;
}
h2 { font-size: 28px; font-weight: 700; margin: 32px 0 14px; }
h3 { font-size: 20px; font-weight: 700; margin: 24px 0 10px; }

/* ========== Hero (homepage) ========== */
.homepage .pkp_structure_main {
  padding-top: 0;
}
.homepage .additional_content { margin-top: 32px; }

.rc-hero {
  background: linear-gradient(135deg, var(--rc-ink) 0%, var(--rc-accent) 100%);
  color: #fff;
  padding: 80px 0;
  margin: -32px -100vw 32px;
  padding-left: 100vw;
  padding-right: 100vw;
  position: relative;
  overflow: hidden;
}
.rc-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 50%, rgba(255,255,255,.08), transparent 50%);
}
.rc-hero-inner { max-width: 1240px; margin: 0 auto; position: relative; padding: 0 28px; }
.rc-hero h1 {
  font-family: var(--rc-font-serif);
  font-size: 54px;
  font-weight: 700;
  line-height: 1.05;
  color: #fff;
  letter-spacing: -1px;
  max-width: 720px;
  margin-bottom: 18px;
}
.rc-hero h1 em { font-style: italic; color: var(--rc-accent-2); }
.rc-hero p { color: rgba(255,255,255,.85); font-size: 18px; max-width: 600px; margin-bottom: 28px; }
.rc-hero .kicker {
  display: inline-block; padding: 6px 14px;
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.9);
  font-size: 11px; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; border-radius: 99px;
  margin-bottom: 18px;
  border: 1px solid rgba(255,255,255,.18);
}

/* ========== Stats Strip ========== */
.rc-stats {
  background: var(--rc-card);
  border-top: 1px solid var(--rc-line);
  border-bottom: 1px solid var(--rc-line);
  padding: 40px 0;
  margin-bottom: 48px;
}
.rc-stats-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  max-width: 1240px; margin: 0 auto; padding: 0 28px;
}
.rc-stat { text-align: center; }
.rc-stat-num {
  font-family: var(--rc-font-serif);
  font-size: 42px; font-weight: 700;
  color: var(--rc-ink);
  letter-spacing: -1px;
  display: block;
}
.rc-stat-lbl {
  font-size: 12px; color: var(--rc-muted);
  text-transform: uppercase; letter-spacing: 2px;
  margin-top: 4px; display: block;
}

/* ========== Cards (issues / articles) ========== */
.obj_issue_summary, .obj_article_summary {
  background: var(--rc-card) !important;
  border: 1px solid var(--rc-line) !important;
  border-radius: var(--rc-radius) !important;
  padding: 24px !important;
  transition: all .25s ease !important;
  border-left: 3px solid var(--rc-accent) !important;
  margin-bottom: 16px !important;
}
.obj_issue_summary:hover, .obj_article_summary:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 30px -15px rgba(15,23,42,.18) !important;
  border-left-color: var(--rc-warm) !important;
}
.obj_issue_summary .title,
.obj_article_summary .title {
  font-family: var(--rc-font-serif) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--rc-ink) !important;
  margin-bottom: 8px !important;
  line-height: 1.3 !important;
}
.obj_article_summary .authors {
  font-size: 13px !important;
  color: var(--rc-ink-2) !important;
  font-style: italic !important;
}

/* ========== Article page (single article) ========== */
.obj_article_details {
  background: var(--rc-card);
  border-radius: var(--rc-radius);
  padding: 40px;
  margin: 24px 0;
  border: 1px solid var(--rc-line);
}
.obj_article_details .page_title,
.obj_article_details h1.page_title {
  font-family: var(--rc-font-serif);
  font-size: 36px;
  line-height: 1.15;
  letter-spacing: -0.5px;
  font-weight: 700;
  border-bottom: 3px solid var(--rc-accent);
  padding-bottom: 18px;
  margin-bottom: 18px;
}
.obj_article_details .authors, .obj_article_details .item.authors {
  font-size: 16px;
  color: var(--rc-ink-2);
  margin-bottom: 24px;
}
.obj_article_details .authors .name { font-weight: 700; color: var(--rc-ink); }
.obj_article_details .authors .affiliation { color: var(--rc-muted); font-size: 14px; }

.obj_article_details .item.abstract h2 {
  font-size: 14px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--rc-accent); font-family: var(--rc-font-sans);
}
.obj_article_details .item.abstract p {
  font-size: 16px; line-height: 1.7; color: var(--rc-ink-2);
}
.obj_article_details .galleys_links a.obj_galley_link {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px;
  background: var(--rc-accent); color: #fff !important;
  border-radius: 10px;
  font-weight: 600; font-size: 14px;
  transition: all .25s ease;
}
.obj_article_details .galleys_links a.obj_galley_link:hover {
  background: var(--rc-ink); transform: translateY(-1px);
  box-shadow: 0 10px 25px -10px rgba(15,118,110,.5);
}

/* References list */
.obj_article_details .references ol li {
  padding: 12px 0;
  border-bottom: 1px solid var(--rc-line);
  font-size: 14px;
  color: var(--rc-ink-2);
  line-height: 1.6;
}

/* Citation style block (CSL) */
.cmp_how_to_cite, .item.how-to-cite, .citation-style {
  background: var(--rc-bg);
  border: 1px solid var(--rc-line);
  border-left: 3px solid var(--rc-gold);
  border-radius: 8px;
  padding: 18px 22px;
  margin: 18px 0;
  font-size: 14px;
}
.cmp_how_to_cite h2 {
  font-size: 12px !important; letter-spacing: 2px; text-transform: uppercase;
  color: var(--rc-muted) !important;
}

/* ========== Sidebar ========== */
.pkp_structure_sidebar {
  border-left: 1px solid var(--rc-line) !important;
  padding-left: 28px !important;
}
.pkp_block {
  background: var(--rc-card);
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius);
  padding: 18px 20px;
  margin-bottom: 16px;
}
.pkp_block .title {
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--rc-muted) !important;
  font-family: var(--rc-font-sans) !important;
  font-weight: 600 !important;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--rc-line);
  margin-bottom: 12px;
}

/* ========== Buttons ========== */
.pkp_button, button.pkp_button, .btn, input[type="submit"] {
  background: var(--rc-ink) !important;
  color: #fff !important;
  border: none !important;
  padding: 11px 22px !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  transition: all .25s ease !important;
  cursor: pointer !important;
}
.pkp_button:hover, button.pkp_button:hover {
  background: var(--rc-accent) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 25px -10px rgba(15,118,110,.55) !important;
}
.pkp_button.pkp_button_primary { background: var(--rc-accent) !important; }

/* ========== Submit a Manuscript big button ========== */
a[href*="submission"] .pkp_button,
.pkp_navigation_primary a[href*="submission"] {
  background: var(--rc-gold) !important;
  color: var(--rc-ink) !important;
}

/* ========== Footer ========== */
.pkp_structure_footer_wrapper {
  background: var(--rc-ink) !important;
  color: rgba(255,255,255,.7) !important;
  margin-top: 64px;
}
.pkp_structure_footer { padding: 48px 0 24px !important; }
.pkp_structure_footer a { color: rgba(255,255,255,.8) !important; }
.pkp_structure_footer a:hover { color: #fff !important; }
.pkp_brand_footer {
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 18px;
  margin-top: 32px;
  font-size: 12px;
  color: rgba(255,255,255,.5) !important;
}

/* ========== Forms ========== */
input[type="text"], input[type="email"], input[type="password"],
input[type="url"], input[type="search"], textarea, select {
  border: 1px solid var(--rc-line) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  font-family: var(--rc-font-sans) !important;
  background: var(--rc-card) !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--rc-accent) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(15,118,110,.12) !important;
}

/* ========== Tables ========== */
table.list, table.pkp_table {
  border: 1px solid var(--rc-line) !important;
  border-radius: var(--rc-radius) !important;
  overflow: hidden;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
table.list thead th, table.pkp_table thead th {
  background: var(--rc-bg) !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--rc-muted) !important;
}

/* ========== DOI badge ========== */
.item.doi a, [class*="doi"] a {
  display: inline-block;
  padding: 4px 10px;
  background: rgba(15,118,110,.08);
  color: var(--rc-accent) !important;
  border-radius: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 600;
}

/* ========== Keywords ========== */
.item.keywords .value {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.item.keywords .value span,
.keywords a {
  display: inline-block;
  padding: 4px 10px;
  background: var(--rc-bg);
  border: 1px solid var(--rc-line);
  border-radius: 99px;
  font-size: 12px;
  color: var(--rc-ink-2);
}

/* ========== Responsive ========== */
@media (max-width: 920px) {
  .rc-hero h1 { font-size: 36px; }
  .rc-stats-row { grid-template-columns: repeat(2, 1fr); }
  .page_title, h1.page_title { font-size: 32px; }
  .obj_article_details { padding: 24px; }
}

/* ========== Animations ========== */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.obj_issue_summary, .obj_article_summary, .pkp_block, .rc-stat {
  animation: fadeUp .5s ease both;
}

/* ========== Print ========== */
@media print {
  .pkp_structure_head, .pkp_structure_sidebar,
  .pkp_structure_footer_wrapper, .pkp_navigation_primary_row { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}
