/*
 * rsynPressPremium — theme.css
 * Dark academic premium theme for RSYN PRESS | OJS 3.5.x
 * -------------------------------------------------------
 * Prefix: .rpp-
 * Palette: Deep slate (#0d1117) + warm off-white (#f5f0eb) + academic teal (#1a6b5e)
 * Type: Playfair Display (display) / DM Sans (body) / DM Mono (code/meta)
 */

/* ═══════════════════════════════════════════════════════════════
   1. DESIGN TOKENS
═══════════════════════════════════════════════════════════════ */
:root {
  /* Palette */
  --rpp-bg:            #0d1117;
  --rpp-bg-2:          #161b22;
  --rpp-bg-3:          #1c2330;
  --rpp-border:        rgba(255,255,255,.08);
  --rpp-border-mid:    rgba(255,255,255,.14);
  --rpp-text:          #f5f0eb;
  --rpp-text-muted:    rgba(245,240,235,.55);
  --rpp-text-faint:    rgba(245,240,235,.3);
  --rpp-teal:          #1a6b5e;
  --rpp-teal-light:    #22896f;
  --rpp-teal-glow:     rgba(26,107,94,.25);
  --rpp-amber:         #c9a96e;
  --rpp-amber-light:   #dfc189;
  --rpp-link:          #6fb9a8;
  --rpp-link-hover:    #a0d4c8;

  /* Typography */
  --rpp-font-display:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --rpp-font-body:     'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --rpp-font-mono:     'DM Mono', 'Fira Code', 'Courier New', monospace;

  /* Sizing */
  --rpp-container:     1280px;
  --rpp-radius:        6px;
  --rpp-radius-lg:     12px;
  --rpp-header-h:      64px;

  /* Shadows */
  --rpp-shadow-sm:     0 1px 4px rgba(0,0,0,.3);
  --rpp-shadow-md:     0 4px 16px rgba(0,0,0,.4);
  --rpp-shadow-lg:     0 8px 32px rgba(0,0,0,.5);
  --rpp-shadow-card:   0 2px 8px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.05);

  /* Transitions */
  --rpp-t:             150ms ease;
  --rpp-t-slow:        300ms ease;
}

/* ═══════════════════════════════════════════════════════════════
   2. RESET & BASE
═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background-color: var(--rpp-bg);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: 1rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; }

a { color: var(--rpp-link); text-decoration: none; transition: color var(--rpp-t); }
a:hover { color: var(--rpp-link-hover); }
a:focus-visible {
  outline: 2px solid var(--rpp-teal-light);
  outline-offset: 3px;
  border-radius: 2px;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--rpp-font-display);
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 .5em;
  color: var(--rpp-text);
}

p { margin: 0 0 1em; }

ul, ol { margin: 0 0 1em; padding-left: 1.5em; }

/* ── Skip link ── */
.rpp-skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  padding: .5rem 1rem;
  background: var(--rpp-teal);
  color: #fff;
  border-radius: 0 0 var(--rpp-radius) var(--rpp-radius);
  font-size: .875rem;
  font-weight: 600;
  z-index: 9999;
}
.rpp-skip-link:focus { top: 0; }

/* ═══════════════════════════════════════════════════════════════
   3. LAYOUT
═══════════════════════════════════════════════════════════════ */
.rpp-container {
  width: 100%;
  max-width: var(--rpp-container);
  margin: 0 auto;
  padding: 0 1.25rem;
}
@media (min-width: 768px) { .rpp-container { padding: 0 2rem; } }
@media (min-width: 1200px) { .rpp-container { padding: 0 2.5rem; } }

.rpp-main {
  min-height: calc(100vh - var(--rpp-header-h) - 400px);
  padding-top: var(--rpp-header-h);
}

/* ═══════════════════════════════════════════════════════════════
   4. HEADER & NAVIGATION
═══════════════════════════════════════════════════════════════ */
.rpp-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--rpp-header-h);
  background: rgba(13,17,23,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rpp-border);
  z-index: 1000;
}

.rpp-header__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: var(--rpp-header-h);
}

/* Brand */
.rpp-header__brand {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-shrink: 0;
  text-decoration: none;
}
.rpp-header__logo {
  height: 36px;
  width: auto;
}
.rpp-header__brand-text {
  display: flex;
  flex-direction: column;
}
.rpp-header__brand-name {
  font-family: var(--rpp-font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--rpp-text);
  line-height: 1.2;
  letter-spacing: -.01em;
}
.rpp-header__brand-sub {
  font-size: .7rem;
  font-weight: 400;
  color: var(--rpp-text-muted);
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Desktop nav */
.rpp-nav {
  display: none;
  align-items: center;
  gap: .25rem;
  margin-left: auto;
}
@media (min-width: 900px) { .rpp-nav { display: flex; } }

.rpp-nav__link {
  padding: .4rem .7rem;
  font-size: .875rem;
  font-weight: 500;
  color: var(--rpp-text-muted);
  border-radius: var(--rpp-radius);
  transition: color var(--rpp-t), background var(--rpp-t);
  white-space: nowrap;
}
.rpp-nav__link:hover { color: var(--rpp-text); background: rgba(255,255,255,.05); }
.rpp-nav__link--active { color: var(--rpp-text); background: rgba(255,255,255,.07); }

/* Header actions */
.rpp-header__actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-left: auto;
}
@media (min-width: 900px) { .rpp-header__actions { margin-left: 0; } }

/* Header search form */
.rpp-search-form {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  overflow: hidden;
  transition: border-color var(--rpp-t), background var(--rpp-t);
}
.rpp-search-form:focus-within {
  border-color: var(--rpp-teal);
  background: rgba(26,107,94,.08);
}
.rpp-search-form__input {
  background: transparent;
  border: none;
  outline: none;
  padding: .35rem .65rem;
  font-size: .8125rem;
  font-family: var(--rpp-font-body);
  color: var(--rpp-text);
  width: 160px;
}
.rpp-search-form__input::placeholder { color: var(--rpp-text-faint); }
.rpp-search-form__btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: .35rem .55rem;
  color: var(--rpp-text-muted);
  display: flex;
  align-items: center;
  transition: color var(--rpp-t);
}
.rpp-search-form__btn:hover { color: var(--rpp-teal-light); }

/* Larger search variant */
.rpp-search-form--lg .rpp-search-form__input { width: 100%; font-size: 1rem; padding: .6rem 1rem; }
.rpp-search-form--lg { border-radius: var(--rpp-radius-lg); }

/* Hamburger toggle */
.rpp-nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  cursor: pointer;
  align-items: center;
}
@media (min-width: 900px) { .rpp-nav-toggle { display: none; } }

.rpp-nav-toggle__line {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--rpp-text-muted);
  transition: transform var(--rpp-t), opacity var(--rpp-t);
}

/* Mobile menu */
.rpp-mobile-menu {
  position: fixed;
  inset: var(--rpp-header-h) 0 0 0;
  background: var(--rpp-bg-2);
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.25rem;
  gap: .25rem;
  z-index: 999;
  transform: translateX(100%);
  transition: transform var(--rpp-t-slow);
  overflow-y: auto;
}
.rpp-mobile-menu--open { transform: translateX(0); }
@media (min-width: 900px) { .rpp-mobile-menu { display: none !important; } }

.rpp-mobile-menu__link {
  display: block;
  padding: .85rem 1rem;
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--rpp-text-muted);
  border-bottom: 1px solid var(--rpp-border);
  text-decoration: none;
  transition: color var(--rpp-t);
}
.rpp-mobile-menu__link:hover { color: var(--rpp-text); }
.rpp-mobile-menu__link--cta {
  margin-top: 1rem;
  background: var(--rpp-teal);
  color: #fff;
  border-radius: var(--rpp-radius);
  text-align: center;
  border-bottom: none;
  font-weight: 600;
}
.rpp-mobile-menu__link--cta:hover { background: var(--rpp-teal-light); color: #fff; }
.rpp-mobile-menu__search { margin-top: 1.5rem; }
.rpp-mobile-menu__search-input {
  width: 100%;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .9rem;
  padding: .6rem 1rem;
  outline: none;
}

/* ═══════════════════════════════════════════════════════════════
   5. BUTTONS
═══════════════════════════════════════════════════════════════ */
.rpp-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem 1.1rem;
  font-family: var(--rpp-font-body);
  font-size: .875rem;
  font-weight: 600;
  border-radius: var(--rpp-radius);
  border: 1.5px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--rpp-t), color var(--rpp-t), border-color var(--rpp-t), box-shadow var(--rpp-t);
  text-decoration: none;
  line-height: 1.3;
}
.rpp-btn--sm  { padding: .35rem .8rem; font-size: .8125rem; }
.rpp-btn--lg  { padding: .75rem 1.6rem; font-size: 1rem; }

/* Primary (teal filled) */
.rpp-btn--primary {
  background: var(--rpp-teal);
  border-color: var(--rpp-teal);
  color: #fff;
}
.rpp-btn--primary:hover {
  background: var(--rpp-teal-light);
  border-color: var(--rpp-teal-light);
  color: #fff;
  box-shadow: 0 0 0 3px var(--rpp-teal-glow);
}

/* Outline (ghost with border) */
.rpp-btn--outline {
  background: transparent;
  border-color: var(--rpp-border-mid);
  color: var(--rpp-text);
}
.rpp-btn--outline:hover {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.3);
  color: var(--rpp-text);
}

/* Ghost (no border) */
.rpp-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--rpp-text-muted);
}
.rpp-btn--ghost:hover { background: rgba(255,255,255,.06); color: var(--rpp-text); }

/* Arrow decoration */
.rpp-btn--arrow::after {
  content: '→';
  font-size: 1em;
  transition: transform var(--rpp-t);
}
.rpp-btn--arrow:hover::after { transform: translateX(3px); }

/* ─── Access model badges ─── */
.rpp-badge {
  display: inline-block;
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: .2rem .55rem;
  border-radius: 3px;
  line-height: 1.4;
  margin-right: .3rem;
}
.rpp-badge--oa {
  background: rgba(26, 107, 94, .25);
  color: #4ecca3;
  border: 1px solid rgba(26, 107, 94, .6);
}
.rpp-badge--sub {
  background: rgba(201, 169, 110, .15);
  color: var(--rpp-amber);
  border: 1px solid rgba(201, 169, 110, .4);
}

/* ═══════════════════════════════════════════════════════════════
   6. HERO SECTION — split layout
═══════════════════════════════════════════════════════════════ */
.rpp-hero {
  position: relative;
  padding: 6rem 0 5rem;
  overflow: hidden;
  border-bottom: 1px solid var(--rpp-border);
}
@media (min-width: 900px) { .rpp-hero { padding: 8rem 0 6rem; } }

.rpp-hero__bg-lines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(
      180deg,
      rgba(255,255,255,.022) 0,
      rgba(255,255,255,.022) 1px,
      transparent 1px,
      transparent 40px
    );
  mask-image: radial-gradient(ellipse 100% 100% at 50% 0%, black 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 0%, black 30%, transparent 100%);
}
.rpp-hero__bg-accent {
  position: absolute;
  top: -140px; left: -100px;
  width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(26,107,94,.18) 0%, transparent 68%);
  pointer-events: none;
}
.rpp-hero__bg-accent::after {
  content: '';
  position: absolute;
  top: 80px; right: -280px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(201,169,110,.09) 0%, transparent 70%);
}

/* Split layout */
.rpp-hero__split {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 900px) {
  .rpp-hero__split { grid-template-columns: 1fr 420px; gap: 4rem; }
}

.rpp-hero__left { max-width: 640px; }

.rpp-hero__eyebrow {
  font-family: var(--rpp-font-mono);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rpp-amber);
  margin-bottom: .85rem;
}

.rpp-hero__title {
  font-family: var(--rpp-font-display);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  margin-bottom: 1.1rem;
  color: var(--rpp-text);
}

.rpp-hero__tagline {
  font-size: 1.05rem;
  color: var(--rpp-text-muted);
  line-height: 1.7;
  margin-bottom: 2rem;
}

.rpp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* Feature card — right side */
.rpp-hero__feature-card {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius-lg);
  padding: 1.5rem;
  backdrop-filter: blur(4px);
}
.rpp-hero__feature-label {
  font-family: var(--rpp-font-mono);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-teal-light);
  margin: 0 0 1rem;
}
.rpp-hero__feature-inner {
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
}
.rpp-hero__feature-cover {
  width: 100px;
  min-width: 100px;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid var(--rpp-border);
  box-shadow: 0 4px 16px rgba(0,0,0,.4);
}
.rpp-hero__feature-cover--placeholder {
  background: rgba(255,255,255,.04);
  display: flex;
  align-items: center;
  justify-content: center;
}
.rpp-hero__feature-meta { flex: 1; }
.rpp-hero__feature-title {
  font-family: var(--rpp-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rpp-text);
  margin: 0 0 .4rem;
}
.rpp-hero__feature-year {
  font-family: var(--rpp-font-mono);
  font-size: .75rem;
  color: var(--rpp-text-faint);
  margin: 0 0 1rem;
}

/* Stats card (fallback when no current issue) */
.rpp-hero__stats-card {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius-lg);
  padding: 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
}
.rpp-hero__stat {
  padding: 1.25rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  background: rgba(255,255,255,.02);
  border: 1px solid var(--rpp-border);
}
.rpp-hero__stat-num {
  font-family: var(--rpp-font-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--rpp-teal-light);
  line-height: 1;
}
.rpp-hero__stat-label {
  font-size: .75rem;
  color: var(--rpp-text-muted);
  line-height: 1.3;
}

/* teal solid button variant */
.rpp-btn--teal {
  background: var(--rpp-teal);
  color: #fff;
  border-color: var(--rpp-teal);
}
.rpp-btn--teal:hover { background: var(--rpp-teal-light); border-color: var(--rpp-teal-light); }

/* ═══════════════════════════════════════════════════════════════
   6b. CREDENTIALS STRIP
═══════════════════════════════════════════════════════════════ */
.rpp-creds-strip {
  background: rgba(26,107,94,.07);
  border-top: 1px solid rgba(26,107,94,.2);
  border-bottom: 1px solid rgba(26,107,94,.2);
  padding: .65rem 0;
  overflow: hidden;
}
.rpp-creds-strip__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  justify-content: center;
}
.rpp-creds-strip__item {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--rpp-font-mono);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rpp-teal-light);
  padding: .2rem .9rem;
  white-space: nowrap;
}
.rpp-creds-strip__item svg { color: var(--rpp-teal-light); flex-shrink: 0; }
.rpp-creds-strip__sep {
  width: 1px;
  height: 12px;
  background: rgba(26,107,94,.35);
  flex-shrink: 0;
}
@media (max-width: 600px) {
  .rpp-creds-strip__sep { display: none; }
  .rpp-creds-strip__item { padding: .15rem .5rem; font-size: .62rem; }
}

/* ═══════════════════════════════════════════════════════════════
   6c. PUBLISH WITH US SECTION
═══════════════════════════════════════════════════════════════ */
.rpp-publish-section { background: #111820; border-bottom: 1px solid var(--rpp-border); }
.rpp-publish__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 900px) {
  .rpp-publish__grid { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
}
.rpp-publish__col {}
.rpp-publish__types {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin: 1.75rem 0;
}
.rpp-publish__type {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}
.rpp-publish__type-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rpp-publish__type-icon--teal   { background: rgba(26,107,94,.18);   color: var(--rpp-teal-light); }
.rpp-publish__type-icon--amber  { background: rgba(201,169,110,.13); color: var(--rpp-amber); }
.rpp-publish__type-icon--purple { background: rgba(124,106,245,.13); color: #9d8ff7; }
.rpp-publish__type-title {
  display: block;
  font-size: .9rem;
  font-weight: 600;
  color: var(--rpp-text);
  margin-bottom: .2rem;
}
.rpp-publish__type-desc {
  font-size: .825rem;
  color: var(--rpp-text-muted);
  line-height: 1.55;
  margin: 0;
}

/* Info table */
.rpp-info-table {
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  overflow: hidden;
  margin: 1.5rem 0;
}
.rpp-info-table__row {
  display: grid;
  grid-template-columns: 130px 1fr;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-info-table__row:last-child { border-bottom: none; }
.rpp-info-table__key {
  padding: .7rem .9rem;
  font-family: var(--rpp-font-mono);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--rpp-text-muted);
  background: rgba(255,255,255,.025);
  border-right: 1px solid var(--rpp-border);
  display: flex;
  align-items: center;
}
.rpp-info-table__val {
  padding: .7rem .9rem;
  font-size: .825rem;
  color: var(--rpp-text);
  line-height: 1.5;
  display: flex;
  align-items: center;
}
.rpp-info-table__val--highlight {
  color: var(--rpp-teal-light);
  font-weight: 600;
  font-family: var(--rpp-font-mono);
  font-size: .8rem;
}

/* Cards header */
.rpp-cards__header {
  margin-bottom: 2rem;
}

/* ═══════════════════════════════════════════════════════════════
   6d. MEGA-MENU DROPDOWNS
═══════════════════════════════════════════════════════════════ */
.rpp-nav__item { position: relative; }
.rpp-nav__item--has-drop { display: none; }
@media (min-width: 900px) { .rpp-nav__item--has-drop { display: block; } }

.rpp-nav__caret {
  font-size: .6rem;
  vertical-align: middle;
  margin-left: .1rem;
  opacity: .7;
  display: inline-block;
  transition: transform .2s;
}
.rpp-nav__item--has-drop:hover .rpp-nav__caret,
.rpp-nav__item--has-drop:focus-within .rpp-nav__caret { transform: rotate(180deg); }

.rpp-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: #1a2130;
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius-lg);
  box-shadow: 0 20px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.05);
  padding: 1.5rem;
  min-width: 520px;
  z-index: 200;
  animation: rppDropIn .18s ease;
}
@keyframes rppDropIn {
  from { opacity: 0; transform: translateX(-50%) translateY(-6px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.rpp-dropdown--authors { min-width: 360px; }

.rpp-nav__item--has-drop:hover .rpp-dropdown,
.rpp-nav__item--has-drop:focus-within .rpp-dropdown { display: block; }

/* Dropdown bridge — prevents gap between trigger and panel */
.rpp-dropdown::before {
  content: '';
  position: absolute;
  top: -12px; left: 0; right: 0;
  height: 12px;
}

.rpp-dropdown__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0 2rem;
}
.rpp-dropdown__heading {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-text-faint);
  margin: 0 0 .6rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-dropdown__link {
  display: block;
  font-size: .8375rem;
  color: var(--rpp-text-muted);
  text-decoration: none;
  padding: .3rem 0;
  line-height: 1.35;
  transition: color .15s;
}
.rpp-dropdown__link:hover { color: var(--rpp-teal-light); }

/* Mobile accordion groups */
.rpp-mobile-menu__group { border-bottom: 1px solid rgba(255,255,255,.06); }
.rpp-mobile-menu__group-toggle {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: none;
  border: none;
  padding: .9rem 1.5rem;
  font-size: .9375rem;
  color: var(--rpp-text-muted);
  cursor: pointer;
  text-align: left;
  font-family: var(--rpp-font-body);
}
.rpp-mobile-menu__group-toggle[aria-expanded="true"] { color: var(--rpp-text); }
.rpp-mobile-menu__group-items {
  padding: 0 1.5rem .75rem 2rem;
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.rpp-mobile-menu__group-items[hidden] { display: none; }
.rpp-mobile-menu__sublink {
  display: block;
  font-size: .855rem;
  color: var(--rpp-text-faint);
  text-decoration: none;
  padding: .3rem 0;
  transition: color .15s;
}
.rpp-mobile-menu__sublink:hover { color: var(--rpp-teal-light); }


/* ═══════════════════════════════════════════════════════════════
   7. EDITORIAL TRUST CARDS
═══════════════════════════════════════════════════════════════ */
.rpp-cards-strip {
  background: #111820;
  border-top: 1px solid var(--rpp-border);
  border-bottom: 1px solid var(--rpp-border);
  padding: 3rem 0;
}
.rpp-cards__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 900px) {
  .rpp-cards__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .rpp-cards__grid { grid-template-columns: 1fr; }
  .rpp-cards-strip { padding: 2rem 0; }
}
.rpp-card {
  display: flex;
  gap: 1rem;
  padding: 1.25rem 1.1rem;
  border-radius: 8px;
  background: rgba(255,255,255,.025);
  border: 1px solid var(--rpp-border);
  transition: border-color .2s, background .2s;
}
.rpp-card:hover {
  border-color: var(--rpp-border-mid);
  background: rgba(255,255,255,.045);
}
.rpp-card__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rpp-card__icon--teal   { background: rgba(26,107,94,.2);  color: var(--rpp-teal-light); }
.rpp-card__icon--amber  { background: rgba(201,169,110,.15); color: var(--rpp-amber); }
.rpp-card__icon--purple { background: rgba(124,106,245,.15); color: #9d8ff7; }
.rpp-card__icon--green  { background: rgba(74,222,128,.12); color: #4ade80; }
.rpp-card__body {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.rpp-card__title {
  font-family: var(--rpp-font-body);
  font-size: .9375rem;
  font-weight: 600;
  color: var(--rpp-text);
  margin: 0;
  line-height: 1.3;
}
.rpp-card__desc {
  font-size: .825rem;
  color: var(--rpp-text-muted);
  line-height: 1.55;
  margin: 0;
}
.rpp-card__link {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--rpp-teal-light);
  text-decoration: none;
  margin-top: .2rem;
}
.rpp-card__link:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════════
   8. SECTION UTILITIES
═══════════════════════════════════════════════════════════════ */
.rpp-section { padding: 5rem 0; }
.rpp-section--sm { padding: 3rem 0; }

.rpp-section-label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-teal-light);
  margin: 0 0 .5rem;
}
.rpp-section-label--toc { color: var(--rpp-amber); margin-bottom: 1.5rem; }

.rpp-section-title {
  font-family: var(--rpp-font-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--rpp-text);
  margin: 0 0 1.5rem;
  letter-spacing: -.02em;
}


.rpp-section-title--decorated {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .25rem;
}
.rpp-section-title--decorated::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 1.1em;
  background: var(--rpp-teal);
  border-radius: 2px;
  flex-shrink: 0;
}

.rpp-section-lead {
  font-size: 1.05rem;
  color: var(--rpp-text-muted);
  max-width: 640px;
  margin: 0 0 2rem;
  line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════════════
   9. FEATURED CURRENT ISSUE
═══════════════════════════════════════════════════════════════ */
.rpp-featured {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 2rem;
  box-shadow: var(--rpp-shadow-md);
}
@media (min-width: 640px) {
  .rpp-featured {
    grid-template-columns: 180px 1fr;
    align-items: start;
  }
}
@media (min-width: 900px) {
  .rpp-featured {
    grid-template-columns: 220px 1fr;
    gap: 2.5rem;
    padding: 2.5rem;
  }
}

.rpp-featured__cover {
  width: 100%;
  max-width: 220px;
  aspect-ratio: 2/3;
  overflow: hidden;
  border-radius: var(--rpp-radius);
  background: var(--rpp-bg-3);
  box-shadow: var(--rpp-shadow-lg);
}
.rpp-featured__cover img { width: 100%; height: 100%; object-fit: cover; }
.rpp-featured__cover-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--rpp-bg-3);
}

.rpp-featured__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-amber);
  margin: 0 0 .75rem;
}

.rpp-featured__title {
  font-size: clamp(1.3rem, 2.5vw, 1.9rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--rpp-text);
  margin: 0 0 .75rem;
  letter-spacing: -.02em;
}

.rpp-featured__desc {
  color: var(--rpp-text-muted);
  font-size: .9375rem;
  line-height: 1.65;
  margin: 0 0 1.5rem;
}

.rpp-featured__actions { margin-bottom: 1.5rem; }

.rpp-featured__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rpp-border);
}
.rpp-featured__meta-item { display: flex; flex-direction: column; gap: .15rem; }
.rpp-featured__meta-label {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-text-faint);
}
.rpp-featured__meta-value {
  font-size: .875rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
}

/* ═══════════════════════════════════════════════════════════════
  10. BOOKS GRID
═══════════════════════════════════════════════════════════════ */
.rpp-books { background: var(--rpp-bg); }

.rpp-books__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}

.rpp-books__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.5rem;
}
@media (min-width: 640px) {
  .rpp-books__grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}
@media (min-width: 1024px) {
  .rpp-books__grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 2rem; }
}

/* Book card */
.rpp-book-card {
  display: flex;
  flex-direction: column;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  overflow: hidden;
  transition: border-color var(--rpp-t), box-shadow var(--rpp-t), transform var(--rpp-t);
  box-shadow: var(--rpp-shadow-card);
}
.rpp-book-card:hover {
  border-color: var(--rpp-teal);
  box-shadow: 0 4px 20px rgba(0,0,0,.45), 0 0 0 1px rgba(26,107,94,.4);
  transform: translateY(-2px);
}

.rpp-book-card__link { display: block; }

.rpp-book-card__cover-wrap {
  aspect-ratio: 2/3;
  overflow: hidden;
  background: var(--rpp-bg-3);
}
.rpp-book-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--rpp-t-slow);
}
.rpp-book-card:hover .rpp-book-card__img { transform: scale(1.03); }

.rpp-book-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: 1rem;
  background: linear-gradient(135deg, var(--rpp-bg-3) 0%, rgba(26,107,94,.1) 100%);
}
.rpp-book-card__placeholder-text {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rpp-text-faint);
  text-align: center;
  line-height: 1.4;
}

.rpp-book-card__body {
  padding: .875rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  flex: 1;
}

.rpp-book-card__meta { display: flex; gap: .4rem; flex-wrap: wrap; }

.rpp-book-card__title {
  font-family: var(--rpp-font-display);
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  color: var(--rpp-text);
}
.rpp-book-card__title a { color: inherit; text-decoration: none; }
.rpp-book-card__title a:hover { color: var(--rpp-link-hover); }

.rpp-book-card__vol {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  color: var(--rpp-text-muted);
  margin: 0;
}

/* Badges */
.rpp-badge {
  display: inline-block;
  padding: .15rem .5rem;
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .05em;
  border-radius: 4px;
  line-height: 1.6;
}
.rpp-badge--teal { background: rgba(26,107,94,.25); color: var(--rpp-teal-light); }
.rpp-badge--amber { background: rgba(201,169,110,.18); color: var(--rpp-amber-light); }

/* ═══════════════════════════════════════════════════════════════
   11. NEWSLETTER BLOCK
═══════════════════════════════════════════════════════════════ */
.rpp-newsletter {
  border: 1px solid var(--rpp-teal);
  border-radius: var(--rpp-radius-lg);
  background: linear-gradient(135deg, rgba(26,107,94,.12) 0%, rgba(13,17,23,.8) 100%);
  padding: 2.5rem;
  box-shadow: 0 0 40px rgba(26,107,94,.12);
}
.rpp-newsletter__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}
@media (min-width: 768px) {
  .rpp-newsletter__inner { grid-template-columns: 1fr 1fr; }
}

.rpp-newsletter__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-teal-light);
  margin: 0 0 .5rem;
}
.rpp-newsletter__title {
  font-family: var(--rpp-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--rpp-text);
  margin: 0 0 .5rem;
}
.rpp-newsletter__desc {
  color: var(--rpp-text-muted);
  font-size: .9rem;
  margin: 0;
}
.rpp-newsletter__form {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
@media (min-width: 480px) {
  .rpp-newsletter__form { flex-direction: row; }
}
.rpp-newsletter__input {
  flex: 1;
  background: rgba(255,255,255,.07);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .9rem;
  padding: .6rem 1rem;
  outline: none;
  transition: border-color var(--rpp-t);
}
.rpp-newsletter__input:focus { border-color: var(--rpp-teal); }
.rpp-newsletter__input::placeholder { color: var(--rpp-text-faint); }
.rpp-newsletter__submit {
  background: var(--rpp-teal);
  border: none;
  border-radius: var(--rpp-radius);
  color: #fff;
  font-family: var(--rpp-font-body);
  font-size: .875rem;
  font-weight: 600;
  padding: .6rem 1.25rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--rpp-t);
}
.rpp-newsletter__submit:hover { background: var(--rpp-teal-light); }

/* ═══════════════════════════════════════════════════════════════
   12. CATALOG / ARCHIVE PAGE
═══════════════════════════════════════════════════════════════ */
.rpp-catalog { padding: 3rem 0 5rem; }
.rpp-catalog__hero { padding: 2.5rem 0 2rem; border-bottom: 1px solid var(--rpp-border); margin-bottom: 2rem; }
.rpp-catalog__filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}
.rpp-catalog__count {
  font-family: var(--rpp-font-mono);
  font-size: .75rem;
  color: var(--rpp-text-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Empty state */
.rpp-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5rem 2rem;
  text-align: center;
  gap: 1.25rem;
}
.rpp-empty-state__icon { opacity: .3; }
.rpp-empty-state__text { color: var(--rpp-text-muted); font-size: 1rem; }

/* ═══════════════════════════════════════════════════════════════
   13. ISSUE PAGE
═══════════════════════════════════════════════════════════════ */
.rpp-issue { padding: 2rem 0 5rem; }

/* Issue page 2-col layout when block plugins are active */
.rpp-issue__with-sidebar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 1024px) {
  .rpp-issue__with-sidebar { grid-template-columns: 1fr 280px; }
}
.rpp-issue__main  { min-width: 0; }
.rpp-issue__sidebar { padding-top: 1rem; }

/* Block plugin widgets inside article + issue right sidebars */
.rpp-article__sidebar .pkp_block,
.rpp-issue__sidebar   .pkp_block {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
}
.rpp-article__sidebar .pkp_block .title,
.rpp-issue__sidebar   .pkp_block .title {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  font-weight: 600;
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--rpp-border);
  display: block;
}
.rpp-article__sidebar .pkp_block ul,
.rpp-issue__sidebar   .pkp_block ul { list-style: none; padding: 0; margin: 0; }
.rpp-article__sidebar .pkp_block li,
.rpp-issue__sidebar   .pkp_block li {
  padding: .3rem 0;
  border-bottom: 1px solid var(--rpp-border);
  font-size: .84rem;
  color: var(--rpp-text-muted);
}
.rpp-article__sidebar .pkp_block li:last-child,
.rpp-issue__sidebar   .pkp_block li:last-child { border-bottom: none; }
.rpp-article__sidebar .pkp_block a,
.rpp-issue__sidebar   .pkp_block a {
  color: var(--rpp-text-muted);
  text-decoration: none;
  transition: color var(--rpp-t);
}
.rpp-article__sidebar .pkp_block a:hover,
.rpp-issue__sidebar   .pkp_block a:hover { color: var(--rpp-teal-light); }

/* RSS feed image links in sidebar */
.rpp-article__sidebar .pkp_block img,
.rpp-issue__sidebar   .pkp_block img { max-width: 100%; height: auto; }

/* Issue hero */
.rpp-issue__hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin: 2rem 0 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--rpp-border);
}
@media (min-width: 640px) {
  .rpp-issue__hero { grid-template-columns: 160px 1fr; align-items: start; }
}
@media (min-width: 900px) {
  .rpp-issue__hero { grid-template-columns: 200px 1fr; gap: 2.5rem; }
}

.rpp-issue__cover {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 2/3;
  overflow: hidden;
  border-radius: var(--rpp-radius);
  box-shadow: var(--rpp-shadow-lg);
}
.rpp-issue__cover img { width: 100%; height: 100%; object-fit: cover; }

.rpp-issue__eyebrow {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-amber);
  margin: 0 0 .6rem;
}
.rpp-issue__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 .75rem;
}
.rpp-issue__description {
  color: var(--rpp-text-muted);
  font-size: .9375rem;
  line-height: 1.7;
  margin: 0 0 1.5rem;
}
.rpp-issue__meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  margin-bottom: 1.5rem;
}
.rpp-issue__meta-item { display: flex; flex-direction: column; gap: .1rem; }
.rpp-issue__meta-label {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-text-faint);
}
.rpp-issue__meta-value { font-size: .9rem; font-weight: 600; color: var(--rpp-text-muted); }
.rpp-issue__meta-value--mono { font-family: var(--rpp-font-mono); }
.rpp-issue__galleys { display: flex; gap: .5rem; flex-wrap: wrap; }

/* Table of contents */
.rpp-toc { }
.rpp-toc__section { margin-bottom: 2.5rem; }
.rpp-toc__section-title {
  font-family: var(--rpp-font-mono);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-text-muted);
  margin: 0 0 1rem;
  padding: .5rem 0;
  border-top: 1px solid var(--rpp-border);
}

.rpp-toc__item {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: .75rem 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--rpp-border);
  align-items: start;
  transition: background var(--rpp-t);
}
.rpp-toc__item:hover { background: rgba(255,255,255,.02); }
@media (min-width: 768px) { .rpp-toc__item { grid-template-columns: 2.5rem 1fr auto; } }

.rpp-toc__num {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  color: var(--rpp-text-faint);
  padding-top: .25rem;
}
.rpp-toc__body { }
.rpp-toc__title {
  font-family: var(--rpp-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 .3rem;
}
.rpp-toc__title a { color: var(--rpp-text); transition: color var(--rpp-t); }
.rpp-toc__title a:hover { color: var(--rpp-link-hover); }
.rpp-toc__authors {
  font-size: .8125rem;
  color: var(--rpp-text-muted);
  margin: 0;
  font-style: italic;
}
.rpp-toc__pages {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  color: var(--rpp-text-faint);
  white-space: nowrap;
  padding-top: .25rem;
}

/* ═══════════════════════════════════════════════════════════════
   14. ARTICLE PAGE
═══════════════════════════════════════════════════════════════ */
.rpp-article { padding: 2rem 0 5rem; }

/* Two-column layout */
.rpp-article__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  margin-top: 2rem;
}
@media (min-width: 1024px) {
  .rpp-article__layout {
    grid-template-columns: 1fr 280px;
    align-items: start;
  }
}

/* Article header */
.rpp-article__header { margin-bottom: 2rem; }
.rpp-article__section-label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rpp-amber);
  margin: 0 0 .5rem;
}
.rpp-article__title {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 .5rem;
}
.rpp-article__subtitle {
  font-size: 1.15rem;
  color: var(--rpp-text-muted);
  font-style: italic;
  margin: 0 0 1rem;
}

/* Authors list */
.rpp-article__authors {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1.25rem;
}
.rpp-article__author {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
}
.rpp-article__author-info { display: flex; flex-direction: column; gap: .1rem; }
.rpp-article__author-name { font-size: .875rem; font-weight: 600; }
.rpp-article__author-affil { font-size: .75rem; color: var(--rpp-text-muted); font-style: italic; }

/* ORCID link */
.rpp-orcid-link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  color: #a6ce39;
  text-transform: uppercase;
  letter-spacing: .05em;
  text-decoration: none;
}
.rpp-orcid-link:hover { color: #c8e87a; }

/* Meta bar */
.rpp-article__meta-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  font-family: var(--rpp-font-mono);
  font-size: .72rem;
  color: var(--rpp-text-muted);
  padding: .75rem 0;
  border-top: 1px solid var(--rpp-border);
  border-bottom: 1px solid var(--rpp-border);
  margin-bottom: 1.75rem;
}
.rpp-article__meta-bar-link { color: var(--rpp-link); }
.rpp-article__meta-bar-link:hover { color: var(--rpp-link-hover); }

/* Downloads */
.rpp-downloads { margin-bottom: 1.75rem; }
.rpp-downloads__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-text-faint);
  margin-bottom: .6rem;
}
.rpp-downloads__list { display: flex; flex-wrap: wrap; gap: .5rem; }

.rpp-download-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem 1rem;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  font-size: .875rem;
  font-weight: 600;
  color: var(--rpp-text);
  text-decoration: none;
  transition: border-color var(--rpp-t), background var(--rpp-t);
}
.rpp-download-btn:hover { border-color: var(--rpp-teal); background: rgba(26,107,94,.08); color: var(--rpp-text); }
.rpp-download-btn--supplementary { font-weight: 400; font-size: .8125rem; }
.rpp-download-btn__icon { color: var(--rpp-teal-light); }
.rpp-download-btn__sup {
  font-size: .65rem;
  font-family: var(--rpp-font-mono);
  color: var(--rpp-text-faint);
}

/* Abstract card */
.rpp-abstract-card {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-left: 3px solid var(--rpp-teal);
  border-radius: var(--rpp-radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.rpp-abstract-card__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  margin: 0 0 .65rem;
}
.rpp-abstract-card__text {
  color: var(--rpp-text-muted);
  font-size: .9375rem;
  line-height: 1.75;
}

/* Keywords */
.rpp-keywords {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  margin-bottom: 1.5rem;
}
.rpp-keywords__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rpp-text-faint);
  flex-shrink: 0;
}
.rpp-keyword {
  display: inline-block;
  padding: .2rem .65rem;
  background: rgba(26,107,94,.15);
  border: 1px solid rgba(26,107,94,.35);
  border-radius: 100px;
  font-size: .75rem;
  color: var(--rpp-link);
}

/* Citation block */
.rpp-cite-block {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.rpp-cite-block__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1rem;
}
.rpp-cite-block__label {
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-amber);
}
.rpp-cite-block__tabs {
  display: flex;
  gap: .25rem;
}
.rpp-cite-tab {
  padding: .2rem .6rem;
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  font-weight: 500;
  background: transparent;
  border: 1px solid var(--rpp-border);
  border-radius: 4px;
  color: var(--rpp-text-muted);
  cursor: pointer;
  transition: background var(--rpp-t), color var(--rpp-t);
}
.rpp-cite-tab:hover { background: rgba(255,255,255,.05); }
.rpp-cite-tab--active {
  background: var(--rpp-teal);
  border-color: var(--rpp-teal);
  color: #fff;
}
.rpp-cite-block__text {
  font-family: var(--rpp-font-mono);
  font-size: .8125rem;
  color: var(--rpp-text-muted);
  line-height: 1.7;
  margin: 0;
}
.rpp-cite-block__copy {
  margin-top: .75rem;
  background: transparent;
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text-muted);
  font-family: var(--rpp-font-mono);
  font-size: .7rem;
  cursor: pointer;
  padding: .25rem .65rem;
  transition: border-color var(--rpp-t), color var(--rpp-t);
}
.rpp-cite-block__copy:hover { border-color: var(--rpp-teal); color: var(--rpp-teal-light); }

/* Sidebar cards */
.rpp-article__sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: calc(var(--rpp-header-h) + 1.5rem);
  align-self: start;
  max-height: calc(100vh - var(--rpp-header-h) - 3rem);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--rpp-border) transparent;
}
/* Don't make sidebar sticky on small screens */
@media (max-width: 1023px) {
  .rpp-article__sidebar {
    position: static;
    max-height: none;
    overflow-y: visible;
  }
}

.rpp-sidebar-card {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 1.25rem;
}
.rpp-sidebar-card__label {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-text-faint);
  margin: 0 0 .75rem;
}
.rpp-sidebar-card__issue-link { display: block; text-decoration: none; }
.rpp-sidebar-card__cover {
  width: 100%;
  max-height: 160px;
  object-fit: cover;
  border-radius: var(--rpp-radius);
  margin-bottom: .6rem;
}
.rpp-sidebar-card__cover-placeholder {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--rpp-bg-3);
  border-radius: var(--rpp-radius);
  margin-bottom: .6rem;
}
.rpp-sidebar-card__issue-title {
  font-family: var(--rpp-font-display);
  font-size: .875rem;
  font-weight: 600;
  color: var(--rpp-text);
  line-height: 1.3;
  margin: 0;
}
.rpp-sidebar-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .75rem;
  font-family: var(--rpp-font-mono);
  font-size: .68rem;
  color: var(--rpp-text-muted);
  margin-top: .5rem;
}

/* Share links */
.rpp-share-links { display: flex; flex-direction: column; gap: .4rem; }
.rpp-share-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .8125rem;
  color: var(--rpp-text-muted);
  text-decoration: none;
  padding: .35rem 0;
  transition: color var(--rpp-t);
}
.rpp-share-btn:hover { color: var(--rpp-text); }
.rpp-share-btn--doi { font-family: var(--rpp-font-mono); font-size: .75rem; }
.rpp-doi-link { color: var(--rpp-link); }
.rpp-doi-link:hover { color: var(--rpp-link-hover); }

/* Notice banners */
.rpp-notice {
  padding: .75rem 1.25rem;
  border-radius: var(--rpp-radius);
  font-size: .875rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.rpp-notice--warning { background: rgba(201,169,110,.12); border-left: 3px solid var(--rpp-amber); color: var(--rpp-amber-light); }
.rpp-notice--info    { background: rgba(26,107,94,.1);  border-left: 3px solid var(--rpp-teal);  color: var(--rpp-teal-light); }

/* ═══════════════════════════════════════════════════════════════
   15. BREADCRUMB
═══════════════════════════════════════════════════════════════ */
.rpp-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .25rem;
  padding: 1.25rem 0;
  margin-bottom: .5rem;
}
.rpp-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .8125rem;
  color: var(--rpp-text-muted);
  text-decoration: none;
  transition: color var(--rpp-t);
}
.rpp-breadcrumb__item:not(.rpp-breadcrumb__item--current):hover { color: var(--rpp-text); }
.rpp-breadcrumb__item--current { color: var(--rpp-text-faint); pointer-events: none; }
.rpp-breadcrumb__sep { color: var(--rpp-text-faint); font-size: .75rem; }

/* ═══════════════════════════════════════════════════════════════
   16. GENERAL PAGE (about, etc.)
═══════════════════════════════════════════════════════════════ */
.rpp-page { padding: 2rem 0 5rem; }

.rpp-page__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 2rem;
}
@media (min-width: 860px) {
  .rpp-page__layout { grid-template-columns: 200px 1fr; }
}

.rpp-page__subnav {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .25rem;
}
@media (min-width: 860px) {
  .rpp-page__subnav {
    flex-direction: column;
    border-right: 1px solid var(--rpp-border);
    padding-right: 1.5rem;
    position: sticky;
    top: calc(var(--rpp-header-h) + 1rem);
    align-self: start;
  }
}

.rpp-page__subnav-link {
  display: block;
  padding: .4rem .75rem;
  font-size: .875rem;
  color: var(--rpp-text-muted);
  border-radius: var(--rpp-radius);
  transition: color var(--rpp-t), background var(--rpp-t);
  text-decoration: none;
}
.rpp-page__subnav-link:hover { color: var(--rpp-text); background: rgba(255,255,255,.05); }
.rpp-page__subnav-link--active { color: var(--rpp-teal-light); font-weight: 600; }

.rpp-page__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -.02em;
  margin: 0 0 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--rpp-border);
}

/* ═══════════════════════════════════════════════════════════════
   17. PROSE (long-form article / about content)
═══════════════════════════════════════════════════════════════ */
.rpp-prose {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--rpp-text-muted);
  max-width: 720px;
}
.rpp-prose h1, .rpp-prose h2, .rpp-prose h3 {
  color: var(--rpp-text);
  margin-top: 2em;
  padding-bottom: .35em;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-prose h2 { font-size: 1.3rem; }
.rpp-prose h3 { font-size: 1.1rem; }
.rpp-prose a { color: var(--rpp-link); border-bottom: 1px solid rgba(111,185,168,.35); }
.rpp-prose a:hover { color: var(--rpp-link-hover); border-bottom-color: var(--rpp-link-hover); }
.rpp-prose ul, .rpp-prose ol { color: inherit; }
.rpp-prose li { margin-bottom: .35em; }
.rpp-prose strong { color: var(--rpp-text); font-weight: 600; }
.rpp-prose em { color: var(--rpp-text); }
.rpp-prose code {
  font-family: var(--rpp-font-mono);
  font-size: .85em;
  background: var(--rpp-bg-3);
  padding: .1em .35em;
  border-radius: 3px;
  color: var(--rpp-amber);
}

/* ═══════════════════════════════════════════════════════════════
   18. SEARCH RESULTS
═══════════════════════════════════════════════════════════════ */
.rpp-results-list { display: flex; flex-direction: column; gap: 1px; margin-bottom: 2rem; }

.rpp-result-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--rpp-border);
}

.rpp-result-card__section {
  font-family: var(--rpp-font-mono);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rpp-amber);
  display: block;
  margin-bottom: .3rem;
}
.rpp-result-card__title {
  font-family: var(--rpp-font-display);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 .35rem;
}
.rpp-result-card__title a { color: var(--rpp-text); }
.rpp-result-card__title a:hover { color: var(--rpp-link-hover); }
.rpp-result-card__authors { font-size: .8125rem; color: var(--rpp-text-muted); font-style: italic; margin: 0 0 .4rem; }
.rpp-result-card__abstract { font-size: .875rem; color: var(--rpp-text-muted); line-height: 1.6; margin: 0; }
.rpp-result-card__meta { text-align: right; display: flex; flex-direction: column; gap: .3rem; align-items: flex-end; }
.rpp-result-card__issue {
  font-size: .75rem;
  color: var(--rpp-link);
  font-family: var(--rpp-font-mono);
  white-space: nowrap;
}
.rpp-result-card__date { font-family: var(--rpp-font-mono); font-size: .7rem; color: var(--rpp-text-faint); }

/* ═══════════════════════════════════════════════════════════════
   19. AUTH PAGES
═══════════════════════════════════════════════════════════════ */
.rpp-auth-page {
  min-height: calc(100vh - var(--rpp-header-h));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
}
.rpp-auth-box {
  width: 100%;
  max-width: 420px;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  overflow: hidden;
  box-shadow: var(--rpp-shadow-lg);
}
.rpp-auth-box--wide { max-width: 640px; }
.rpp-auth-box__header {
  background: linear-gradient(135deg, var(--rpp-bg-3) 0%, rgba(26,107,94,.12) 100%);
  padding: 2rem 2rem 1.5rem;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-auth-box__title {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 .25rem;
}
.rpp-auth-box__sub { font-size: .875rem; color: var(--rpp-text-muted); margin: 0; }
.rpp-auth-box__body { padding: 1.75rem 2rem; }
.rpp-auth-box__footer {
  padding: 1.25rem 2rem;
  border-top: 1px solid var(--rpp-border);
  font-size: .875rem;
  color: var(--rpp-text-muted);
}

/* Auth form fields */
.rpp-auth-form__required-note {
  font-size: .78rem;
  color: var(--rpp-text-faint);
  margin: 0 0 1.25rem;
}
.rpp-auth-fieldset {
  border: none;
  padding: 0;
  margin: 0 0 1.5rem;
}
.rpp-auth-fieldset__legend {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  font-weight: 600;
  margin-bottom: 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--rpp-border);
  width: 100%;
  display: block;
}
.rpp-auth-fieldset--consent { margin-top: .25rem; }
.rpp-auth-form__field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; }
.rpp-auth-form__field:last-child { margin-bottom: 0; }
.rpp-auth-form__label {
  font-size: .8125rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
}
.rpp-auth-form__required { color: var(--rpp-amber); margin-left: .2rem; }
.rpp-auth-form__input {
  background: rgba(255,255,255,.05);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .9rem;
  padding: .55rem .9rem;
  outline: none;
  transition: border-color var(--rpp-t), background var(--rpp-t);
  width: 100%;
}
.rpp-auth-form__input:focus { border-color: var(--rpp-teal); background: rgba(26,107,94,.06); }
.rpp-auth-form__input::placeholder { color: var(--rpp-text-faint); }
/* .rpp-auth-form__select inherits global select styles above */
.rpp-auth-form__row--2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 500px) { .rpp-auth-form__row--2col { grid-template-columns: 1fr; } }
.rpp-auth-form__checkbox {
  display: flex;
  gap: .6rem;
  margin-bottom: .6rem;
  font-size: .85rem;
  color: var(--rpp-text-muted);
  line-height: 1.5;
}
.rpp-auth-form__checkbox input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: .2rem;
  accent-color: var(--rpp-teal);
  cursor: pointer;
}
.rpp-auth-form__captcha { margin-bottom: 1.25rem; }
.rpp-auth-form__actions { margin-top: 1.5rem; }
.rpp-auth-form__hint { font-size: .78rem; color: var(--rpp-text-faint); margin: .3rem 0 0; line-height: 1.4; }

/* ═══════════════════════════════════════════════════════════════
   19b. USER MENU DROPDOWN
═══════════════════════════════════════════════════════════════ */
.rpp-user-menu {
  position: relative;
  display: flex;
  align-items: center;
}
.rpp-user-menu__trigger {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--rpp-border-mid);
  border-radius: 999px;
  padding: .3rem .6rem .3rem .3rem;
  cursor: pointer;
  color: var(--rpp-text);
  transition: background var(--rpp-t), border-color var(--rpp-t);
}
.rpp-user-menu__trigger:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--rpp-teal);
}
.rpp-user-menu__avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--rpp-teal);
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--rpp-font-body);
}
.rpp-user-menu__caret {
  opacity: .6;
  transition: transform var(--rpp-t);
}
.rpp-user-menu__trigger[aria-expanded="true"] .rpp-user-menu__caret {
  transform: rotate(180deg);
}
.rpp-user-menu__dropdown {
  display: none;
  position: absolute;
  top: calc(100% + .5rem);
  right: 0;
  min-width: 220px;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius-lg);
  box-shadow: 0 8px 32px rgba(0,0,0,.45);
  z-index: 1000;
  overflow: hidden;
  animation: rppDropIn .15s ease;
}
.rpp-user-menu__dropdown--open { display: block; }
@keyframes rppDropIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rpp-user-menu__name {
  padding: .85rem 1rem .1rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--rpp-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rpp-user-menu__email {
  padding: .1rem 1rem .75rem;
  font-size: .75rem;
  color: var(--rpp-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rpp-user-menu__divider {
  height: 1px;
  background: var(--rpp-border);
  margin: .25rem 0;
}
.rpp-user-menu__item {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .6rem 1rem;
  font-size: .875rem;
  color: var(--rpp-text-muted);
  text-decoration: none;
  transition: background var(--rpp-t), color var(--rpp-t);
}
.rpp-user-menu__item:hover {
  background: rgba(255,255,255,.05);
  color: var(--rpp-text);
}
.rpp-user-menu__item--danger { color: #ff6b6b; }
.rpp-user-menu__item--danger:hover { background: rgba(220,53,69,.1); color: #ff6b6b; }

/* ═══════════════════════════════════════════════════════════════
   19c. AUTH FORM EXTRAS (login / register)
═══════════════════════════════════════════════════════════════ */
.rpp-field { margin-bottom: 1.1rem; }
.rpp-field--checkbox { display: flex; align-items: center; margin-bottom: 1.25rem; }
.rpp-checkbox-label {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .875rem;
  color: var(--rpp-text-muted);
  cursor: pointer;
}
.rpp-checkbox-label input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: var(--rpp-teal);
  flex-shrink: 0;
}
.rpp-btn--full { width: 100%; justify-content: center; }
.rpp-auth-notice {
  padding: .75rem 1rem;
  border-radius: var(--rpp-radius);
  font-size: .875rem;
  margin-bottom: 1.25rem;
}
.rpp-auth-notice--info {
  background: rgba(26,107,94,.15);
  border-left: 3px solid var(--rpp-teal);
  color: var(--rpp-teal-light);
}
.rpp-auth-notice--error {
  background: rgba(220,53,69,.12);
  border-left: 3px solid #dc3545;
  color: #ff6b6b;
}

/* ═══════════════════════════════════════════════════════════════
   20. FOOTER
═══════════════════════════════════════════════════════════════ */
.rpp-footer {
  background: var(--rpp-bg-2);
  border-top: 1px solid var(--rpp-border);
  padding: 4rem 0 0;
}

/* Equal-height 4-column grid using align-items:stretch */
.rpp-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-bottom: 0;
  border-bottom: 1px solid var(--rpp-border);
}
@media (min-width: 640px) {
  .rpp-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .rpp-footer__grid { grid-template-columns: 1.8fr 1fr 1fr 1.4fr; }
}

/* Each column — equal height via grid stretch, border dividers */
.rpp-footer__col {
  padding: 0 2rem 2.5rem 0;
  border-right: 1px solid var(--rpp-border);
  display: flex;
  flex-direction: column;
}
.rpp-footer__col:first-child { padding-left: 0; }
.rpp-footer__col:last-child  { border-right: none; padding-right: 0; }
@media (max-width: 1023px) {
  .rpp-footer__col {
    border-right: none;
    border-bottom: 1px solid var(--rpp-border);
    padding: 1.75rem 0;
  }
  .rpp-footer__col:last-child { border-bottom: none; }
}
@media (min-width: 1024px) {
  .rpp-footer__col { padding: 0 2rem 2.5rem; }
  .rpp-footer__col:first-child { padding-left: 0; }
  .rpp-footer__col:last-child  { padding-right: 0; }
}

/* Brand column — Col 1 */
.rpp-footer__brand { display: inline-block; margin-bottom: .75rem; }
.rpp-footer__logo  { height: 32px; width: auto; }
.rpp-footer__brand-name {
  font-family: var(--rpp-font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--rpp-text);
  letter-spacing: -.01em;
}
.rpp-footer__imprint {
  font-size: .8rem;
  color: var(--rpp-text-muted);
  margin: 0 0 .2rem;
  font-weight: 500;
}
.rpp-footer__tagline-line {
  font-size: .8rem;
  color: var(--rpp-teal-light);
  font-style: italic;
  margin: 0 0 .75rem;
}
.rpp-footer__sanskrit {
  font-size: .75rem;
  color: var(--rpp-text-faint);
  line-height: 1.6;
  margin: 0 0 .15rem;
  font-style: italic;
}
.rpp-footer__tagline-en {
  font-size: .75rem;
  color: var(--rpp-text-faint);
  margin: 0 0 .75rem;
}
.rpp-footer__sdg {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  color: var(--rpp-teal-light);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 0 0 1rem;
  opacity: .85;
}
.rpp-footer__meta { display: flex; flex-direction: column; gap: .3rem; margin-top: auto; padding-top: 1.25rem; }
.rpp-footer__meta-item {
  font-family: var(--rpp-font-mono);
  font-size: .68rem;
  color: var(--rpp-text-faint);
}
.rpp-footer__meta-value { color: var(--rpp-text-muted); }

/* Column headings */
.rpp-footer__col-title {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .13em;
  color: var(--rpp-text-muted);
  margin: 0 0 .85rem;
  font-weight: 600;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-footer__col-title--spaced { margin-top: 1.5rem; }

/* Links */
.rpp-footer__links { display: flex; flex-direction: column; gap: .4rem; }
.rpp-footer__link {
  font-size: .845rem;
  color: var(--rpp-text-muted);
  text-decoration: none;
  transition: color var(--rpp-t);
  line-height: 1.4;
}
.rpp-footer__link:hover { color: var(--rpp-teal-light); }

/* Social icon row */
.rpp-footer__socials {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: .9rem 0 1rem;
}
.rpp-footer__social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  border: 1px solid var(--rpp-border-mid);
  color: var(--rpp-text-muted);
  transition: background var(--rpp-t), color var(--rpp-t), border-color var(--rpp-t);
  flex-shrink: 0;
}
.rpp-footer__social-btn svg {
  width: 15px;
  height: 15px;
  display: block;
}
.rpp-footer__social-btn:hover { background: var(--rpp-teal); border-color: var(--rpp-teal); color: #fff; }

/* Newsletter in footer */
.rpp-footer__newsletter-note { font-size: .8rem; color: var(--rpp-text-muted); margin: 0 0 .75rem; line-height: 1.55; }
.rpp-footer__newsletter-form { display: flex; flex-direction: column; gap: .5rem; }
.rpp-footer__newsletter-input {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .875rem;
  padding: .55rem .9rem;
  outline: none;
  transition: border-color var(--rpp-t);
}
.rpp-footer__newsletter-input:focus { border-color: var(--rpp-teal); }
.rpp-footer__newsletter-input::placeholder { color: var(--rpp-text-faint); }
.rpp-footer__newsletter-btn {
  background: var(--rpp-teal);
  border: none;
  border-radius: var(--rpp-radius);
  color: #fff;
  font-family: var(--rpp-font-body);
  font-size: .875rem;
  font-weight: 600;
  padding: .55rem 1rem;
  cursor: pointer;
  transition: background var(--rpp-t);
}
.rpp-footer__newsletter-btn:hover { background: var(--rpp-teal-light); }

/* Bottom bar */
.rpp-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
  padding: 1.1rem 0;
}
.rpp-footer__copy { font-size: .75rem; color: var(--rpp-text-faint); line-height: 1.5; }
.rpp-footer__legal-links { display: flex; flex-wrap: wrap; gap: .3rem .75rem; }
.rpp-footer__legal-link {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  color: var(--rpp-text-faint);
  text-decoration: none;
  transition: color var(--rpp-t);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.rpp-footer__legal-link:hover { color: var(--rpp-text-muted); }

/* ═══════════════════════════════════════════════════════════════
   21. UTILITY HELPERS
═══════════════════════════════════════════════════════════════ */
.rpp-notifications {
  position: fixed;
  top: calc(var(--rpp-header-h) + .75rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  max-width: 520px;
  width: calc(100% - 2rem);
}
.rpp-notification {
  background: var(--rpp-bg-3);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  padding: .65rem 1.1rem;
  font-size: .875rem;
  color: var(--rpp-text);
  box-shadow: var(--rpp-shadow-md);
}

.rpp-text-link {
  color: var(--rpp-link);
  text-decoration: none;
  border-bottom: 1px solid rgba(111,185,168,.3);
}
.rpp-text-link:hover { color: var(--rpp-link-hover); border-bottom-color: var(--rpp-link-hover); }
.rpp-muted { color: var(--rpp-text-muted); }
.rpp-text-center { text-align: center; }

/* OJS default form element resets */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .9rem;
  padding: .5rem .85rem;
  outline: none;
  transition: border-color var(--rpp-t);
  width: 100%;
}
/* Select needs a solid dark bg — browsers ignore rgba for <option> elements */
select {
  background-color: #111b27;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .85rem center;
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-family: var(--rpp-font-body);
  font-size: .9rem;
  padding: .5rem 2.2rem .5rem .85rem;
  outline: none;
  transition: border-color var(--rpp-t);
  width: 100%;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
select option {
  background-color: #111b27;
  color: #f5f0eb;
}
select option:disabled,
select option[value=""] { color: #666; }
input:focus, textarea:focus, select:focus { border-color: var(--rpp-teal); }
input::placeholder, textarea::placeholder { color: var(--rpp-text-faint); }
label {
  display: block;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
  margin-bottom: .35rem;
}

/* ═══════════════════════════════════════════════════════════════
   22. OJS ADMIN NOTIFICATION BAR (rendered by OJS inside body)
   Ensure it sits below our fixed header
═══════════════════════════════════════════════════════════════ */
#notificationContainer { margin-top: var(--rpp-header-h) !important; }



/* ═══════════════════════════════════════════════════════════════
   23. PRINT
═══════════════════════════════════════════════════════════════ */
@media print {
  .rpp-header, .rpp-footer, .rpp-mobile-menu,
  .rpp-nav-toggle, .rpp-hero__actions, .rpp-downloads,
  .rpp-share-links, .rpp-sidebar-card, .rpp-cite-block__copy { display: none !important; }
  .rpp-main { padding-top: 0; }
  body { background: #fff; color: #000; font-family: Georgia, serif; }
  .rpp-article__layout { grid-template-columns: 1fr; }
  .rpp-abstract-card { border: 1px solid #ccc; }
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR LAYOUT (block plugins)
═══════════════════════════════════════════════════════════════ */
.rpp-sidebar-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 2rem;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}
.rpp-sidebar-layout__sidebar {
  padding-top: 2rem;
  position: sticky;
  top: calc(var(--rpp-header-h) + 1.5rem);
  align-self: start;
  max-height: calc(100vh - var(--rpp-header-h) - 3rem);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--rpp-border) transparent;
}
/* Hide RSS feed block — not needed for book press */
.rpp-sidebar-layout__sidebar .block_web_feed,
.rpp-article__sidebar .block_web_feed,
.rpp-issue__sidebar .block_web_feed { display: none !important; }
/* Block plugin widgets inside sidebar */
.rpp-sidebar-layout__sidebar .pkp_block {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.rpp-sidebar-layout__sidebar .pkp_block .title {
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  font-weight: 600;
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--rpp-border);
}
.rpp-sidebar-layout__sidebar .pkp_block ul { list-style: none; padding: 0; margin: 0; }
.rpp-sidebar-layout__sidebar .pkp_block li { padding: .25rem 0; border-bottom: 1px solid var(--rpp-border); font-size: .875rem; }
.rpp-sidebar-layout__sidebar .pkp_block li:last-child { border-bottom: none; }
.rpp-sidebar-layout__sidebar .pkp_block a { color: var(--rpp-text-muted); text-decoration: none; transition: color var(--rpp-t); }
.rpp-sidebar-layout__sidebar .pkp_block a:hover { color: var(--rpp-teal-light); }
@media (max-width: 900px) {
  .rpp-sidebar-layout { grid-template-columns: 1fr; }
  .rpp-sidebar-layout__sidebar { padding-top: 0; }
}

/* ═══════════════════════════════════════════════════════════════
   MESSAGE / STATUS CARDS (message.tpl, error.tpl, register complete)
═══════════════════════════════════════════════════════════════ */
.rpp-message-card {
  max-width: 560px;
  margin: 4rem auto;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 2.5rem 2rem;
  text-align: center;
  box-shadow: var(--rpp-shadow-lg);
}
.rpp-message-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
}
.rpp-message-card__icon--success { background: rgba(26,107,94,.15); color: var(--rpp-teal-light); }
.rpp-message-card__icon--error   { background: rgba(220,50,50,.12);  color: #e57373; }
.rpp-message-card__icon--info    { background: rgba(201,169,110,.12); color: var(--rpp-amber); }
.rpp-message-card__title {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 .75rem;
  color: var(--rpp-text);
}
.rpp-message-card__body {
  color: var(--rpp-text-muted);
  font-size: .9375rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.rpp-message-card__body p { margin: 0 0 .5rem; }
.rpp-message-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  margin-top: 1.5rem;
}

/* ═══════════════════════════════════════════════════════════════
   ANNOUNCEMENTS LIST
═══════════════════════════════════════════════════════════════ */
.rpp-announcements-list { display: flex; flex-direction: column; gap: 1.5rem; }
.rpp-announcement-card {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius-lg);
  padding: 1.75rem 2rem;
  transition: border-color var(--rpp-t);
}
.rpp-announcement-card:hover { border-color: var(--rpp-teal); }
.rpp-announcement-card__date {
  font-family: var(--rpp-font-mono);
  font-size: .75rem;
  color: var(--rpp-teal-light);
  letter-spacing: .05em;
  display: block;
  margin-bottom: .5rem;
}
.rpp-announcement-card__title {
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 .75rem;
}
.rpp-announcement-card__title a { color: var(--rpp-text); text-decoration: none; }
.rpp-announcement-card__title a:hover { color: var(--rpp-teal-light); }
.rpp-announcement-card__desc { color: var(--rpp-text-muted); font-size: .9rem; line-height: 1.65; margin-bottom: .75rem; }

/* Arrow text links */
.rpp-text-link--arrow::after { content: ' →'; }

/* ═══════════════════════════════════════════════════════════════
   BASIC PAGE (layout-basic content area)
═══════════════════════════════════════════════════════════════ */
.rpp-basic-page__header { margin-bottom: 1.5rem; }
.rpp-basic-page__title { font-size: 1.75rem; font-weight: 700; margin: .25rem 0 0; }
.rpp-basic-page__body { color: var(--rpp-text-muted); line-height: 1.8; }
.rpp-basic-page__back { margin-top: 2rem; }

/* Team list date column */
.rpp-team-list__dates { font-size: .78rem; font-family: var(--rpp-font-mono); color: var(--rpp-teal-light); display: inline-block; margin-right: .5rem; }

/* ═══════════════════════════════════════════════════════════════
   SUBSCRIPTION TABLE (subscriptions.tpl)
═══════════════════════════════════════════════════════════════ */
.rpp-sub-table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; }
.rpp-sub-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
}
.rpp-sub-table th {
  text-align: left;
  font-family: var(--rpp-font-mono);
  font-size: .63rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  padding: .6rem 1rem;
  border-bottom: 1px solid var(--rpp-border);
  font-weight: 600;
  white-space: nowrap;
}
.rpp-sub-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--rpp-border);
  color: var(--rpp-text-muted);
  vertical-align: top;
}
.rpp-sub-table tbody tr:last-child td { border-bottom: none; }
.rpp-sub-table tbody tr:hover td { background: rgba(255,255,255,.02); }
.rpp-sub-table__name { color: var(--rpp-text); font-weight: 600; display: block; margin-bottom: .2rem; }
.rpp-sub-table__desc { font-size: .8rem; color: var(--rpp-text-faint); line-height: 1.5; margin-top: .2rem; }
.rpp-sub-table__cost { font-family: var(--rpp-font-mono); font-size: .85rem; color: var(--rpp-amber); white-space: nowrap; font-weight: 600; }
.rpp-sub-action { margin: 1rem 0 2rem; }
.rpp-sub-status {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 1.25rem;
  border-radius: var(--rpp-radius);
  margin: .75rem 0 1.25rem;
  font-size: .9rem;
  line-height: 1.5;
}
.rpp-sub-status svg { flex-shrink: 0; }
.rpp-sub-status--active {
  background: rgba(26,107,94,.12);
  border: 1px solid rgba(26,107,94,.25);
  color: var(--rpp-teal-light);
}
.rpp-sub-status--active strong { color: var(--rpp-text); }
.rpp-sub-status--none {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--rpp-border);
  color: var(--rpp-text-muted);
}

/* ═══════════════════════════════════════════════════════════════════════
   PAYWALL BLOCK — article.tpl when $hasAccess = false
═══════════════════════════════════════════════════════════════════════ */
.rpp-paywall {
  background: linear-gradient(135deg, rgba(26,107,94,.08) 0%, rgba(28,35,48,.6) 100%);
  border: 1px solid rgba(26,107,94,.3);
  border-radius: var(--rpp-radius-lg);
  padding: 2rem 1.75rem;
  margin: 1.5rem 0;
  text-align: center;
}
.rpp-paywall__lock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: rgba(26,107,94,.15);
  border: 1px solid rgba(26,107,94,.3);
  border-radius: 50%;
  color: var(--rpp-teal-light);
  margin-bottom: 1rem;
}
.rpp-paywall__title {
  font-family: var(--rpp-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--rpp-text);
  margin: 0 0 .5rem;
}
.rpp-paywall__desc {
  color: var(--rpp-text-muted);
  font-size: .9rem;
  line-height: 1.6;
  margin: 0 0 1.5rem;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}
.rpp-paywall__options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
  text-align: left;
}
.rpp-paywall__option {
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.rpp-paywall__option--sub {
  border-color: rgba(26,107,94,.3);
  background: rgba(26,107,94,.06);
}
.rpp-paywall__option-label {
  font-size: .7rem;
  font-family: var(--rpp-font-mono);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--rpp-teal-light);
  font-weight: 600;
}
.rpp-paywall__option-price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--rpp-amber);
  font-family: var(--rpp-font-display);
  line-height: 1;
}
.rpp-paywall__option-desc {
  font-size: .8rem;
  color: var(--rpp-text-muted);
  line-height: 1.5;
  flex: 1;
}
.rpp-paywall .rpp-btn--full {
  width: 100%;
  justify-content: center;
  margin-top: .25rem;
}
.rpp-paywall__login-hint {
  font-size: .85rem;
  color: var(--rpp-text-faint);
  margin: 0;
}
.rpp-paywall__login-hint .rpp-text-link {
  color: var(--rpp-teal-light);
}
@media (max-width: 600px) {
  .rpp-paywall { padding: 1.5rem 1rem; }
  .rpp-paywall__options { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   PAYMENT CARD (manual payment form, payment landing pages)
═══════════════════════════════════════════════════════════════ */
.rpp-payment-card {
  max-width: 520px;
  margin: 3rem auto;
  background: var(--rpp-bg-2);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius-lg);
  padding: 2.5rem 2rem;
  text-align: center;
}
.rpp-payment-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: rgba(26,107,94,.12);
  border: 1px solid rgba(26,107,94,.25);
  border-radius: 50%;
  color: var(--rpp-teal-light);
  margin-bottom: 1.25rem;
}
.rpp-payment-card__title {
  font-family: var(--rpp-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--rpp-text);
  margin: 0 0 1.75rem;
}
.rpp-payment-card__summary {
  background: var(--rpp-bg-3);
  border: 1px solid var(--rpp-border);
  border-radius: var(--rpp-radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  text-align: left;
}
.rpp-payment-card__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .5rem 0;
  border-bottom: 1px solid var(--rpp-border);
  font-size: .875rem;
}
.rpp-payment-card__row:last-child { border-bottom: none; }
.rpp-payment-card__row--amount { padding-top: .75rem; }
.rpp-payment-card__label {
  color: var(--rpp-text-muted);
  font-size: .8rem;
}
.rpp-payment-card__value {
  color: var(--rpp-text);
  font-weight: 500;
  text-align: right;
}
.rpp-payment-card__amount {
  font-family: var(--rpp-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--rpp-amber);
}
.rpp-payment-card__currency {
  font-family: var(--rpp-font-mono);
  font-size: .75rem;
  color: var(--rpp-text-muted);
  margin-left: .25rem;
}
.rpp-payment-card__instructions {
  background: rgba(26,107,94,.06);
  border: 1px solid rgba(26,107,94,.2);
  border-radius: var(--rpp-radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  text-align: left;
}
.rpp-payment-card__instructions-label {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--rpp-font-mono);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rpp-teal-light);
  font-weight: 600;
  margin-bottom: .65rem;
}
.rpp-payment-card__instructions-body {
  font-size: .875rem;
  color: var(--rpp-text-muted);
  line-height: 1.7;
}
.rpp-payment-card__actions {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  margin-bottom: 1rem;
}
.rpp-payment-card .rpp-btn--full {
  width: 100%;
  justify-content: center;
}
.rpp-payment-card__note {
  font-size: .78rem;
  color: var(--rpp-text-faint);
  line-height: 1.5;
  margin: 0;
}
@media (max-width: 600px) {
  .rpp-payment-card { padding: 1.75rem 1.25rem; margin: 2rem auto; }
}

/* ══════════════════════════════════════════════════════════════════════
   GRAPHICAL ABSTRACT — article page (main column)
   Per-article image between citation line and abstract.
   Issue cover and graphical abstract are completely independent.
══════════════════════════════════════════════════════════════════════ */
.rpp-graphical-abstract {
  margin: 0 0 1.75rem;
  border-radius: var(--rpp-radius);
  overflow: hidden;
  background: linear-gradient(135deg, var(--rpp-bg-3) 0%, rgba(26,107,94,.06) 100%);
  border: 1px solid var(--rpp-border);
}
.rpp-graphical-abstract__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: contain;
  mix-blend-mode: luminosity;
  opacity: .93;
  transition: opacity .2s, mix-blend-mode .2s;
}
.rpp-graphical-abstract:hover .rpp-graphical-abstract__img {
  mix-blend-mode: normal;
  opacity: 1;
}
.rpp-graphical-abstract__caption {
  font-size: .8125rem;
  color: var(--rpp-text-muted);
  padding: .6rem 1rem .75rem;
  margin: 0;
  border-top: 1px solid var(--rpp-border);
  font-style: italic;
}

/* ══════════════════════════════════════════════════════════════════════
   GRAPHICAL ABSTRACT — issue TOC (compact strip, 180px max)
══════════════════════════════════════════════════════════════════════ */
.rpp-toc__ga {
  margin-top: .75rem;
  border-left: 3px solid var(--rpp-teal);
  border-radius: 0 var(--rpp-radius) var(--rpp-radius) 0;
  overflow: hidden;
  background: linear-gradient(135deg, var(--rpp-bg-3) 0%, rgba(26,107,94,.06) 100%);
}
.rpp-toc__ga-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 180px;
  object-fit: contain;
  mix-blend-mode: luminosity;
  opacity: .93;
  transition: opacity .2s, mix-blend-mode .2s;
}
.rpp-toc__ga:hover .rpp-toc__ga-img {
  mix-blend-mode: normal;
  opacity: 1;
}
@media (max-width: 640px) {
  .rpp-toc__ga { border-left: none; border-radius: var(--rpp-radius); }
  .rpp-toc__ga-img { max-height: none; }
}

/* ══════════════════════════════════════════════════════════════════════
   SIDEBAR DOWNLOADS — article page sidebar (moved from main column)
══════════════════════════════════════════════════════════════════════ */
.rpp-sidebar-downloads {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-top: .875rem;
}
.rpp-sidebar-download-btn {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .875rem;
  background: var(--rpp-bg-3);
  border: 1px solid var(--rpp-border-mid);
  border-radius: var(--rpp-radius);
  color: var(--rpp-text);
  font-size: .8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color var(--rpp-t), background var(--rpp-t), color var(--rpp-t);
}
.rpp-sidebar-download-btn:hover {
  border-color: var(--rpp-teal);
  background: rgba(26,107,94,.1);
  color: var(--rpp-teal-light);
}
.rpp-sidebar-download-btn svg { color: var(--rpp-teal-light); flex-shrink: 0; }
.rpp-sidebar-download-btn--supp { font-weight: 400; font-size: .75rem; }
.rpp-sidebar-download-btn--purchase {
  border-color: var(--rpp-teal);
  background: rgba(26,107,94,.08);
}
.rpp-sidebar-paywall {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .75rem;
  color: var(--rpp-text-muted);
  margin-top: .75rem;
  padding: .4rem .5rem;
  border-radius: var(--rpp-radius);
  background: var(--rpp-bg-3);
}

/* ══════════════════════════════════════════════════════════════════════
   ISSUE COVER PLACEHOLDER — title text on dark card
   Applies to: issue.tpl header, article.tpl sidebar
══════════════════════════════════════════════════════════════════════ */
.rpp-issue__cover--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1.25rem;
  background: linear-gradient(135deg, var(--rpp-bg-3) 0%, rgba(26,107,94,.08) 100%);
  border-radius: var(--rpp-radius);
  min-height: 120px;
  text-align: center;
}
.rpp-issue__cover-placeholder-title {
  font-family: var(--rpp-font-display);
  font-size: .8rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
  line-height: 1.35;
  max-width: 160px;
}
.rpp-sidebar-card__placeholder-title {
  font-family: var(--rpp-font-display);
  font-size: .7rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
  line-height: 1.35;
  text-align: center;
  margin-top: .4rem;
  padding: 0 .25rem;
}
.rpp-sidebar-card__cover-placeholder {
  flex-direction: column;
  gap: .4rem;
  padding: .75rem .5rem;
  min-height: 90px;
}
.rpp-hero__feature-cover--placeholder {
  flex-direction: column;
  gap: .5rem;
  padding: 1rem;
}
.rpp-hero__cover-placeholder-title {
  font-family: var(--rpp-font-display);
  font-size: .75rem;
  font-weight: 600;
  color: var(--rpp-text-muted);
  line-height: 1.35;
  text-align: center;
  max-width: 140px;
}
