/* =========================================================
   JABS JOURNAL — Journal of Agriculture & Basic Sciences
   Stylesheet
   ========================================================= */

:root{
  --jabs-forest:        #0E3B2E;
  --jabs-forest-dark:   #082821;
  --jabs-forest-darker: #051813;
  --jabs-gold:          #C9A24B;
  --jabs-gold-light:    #E9CE85;
  --jabs-cream:         #FAF7F0;
  --jabs-paper:         #F3EEE2;
  --jabs-ink:           #16241E;
  --jabs-slate:         #5B6B63;
  --jabs-slate-light:   #8A968F;
  --jabs-white:         #FFFFFF;
  --jabs-border:        rgba(14,59,46,.12);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --container-max: 1280px;
  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 8px;
  --shadow-soft: 0 20px 60px -20px rgba(8,40,33,.25);
  --shadow-card: 0 10px 30px -12px rgba(8,40,33,.18);
  --ease: cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  color: var(--jabs-ink);
  background: var(--jabs-cream);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--jabs-forest-dark);
}
p{color: var(--jabs-slate); line-height:1.75;}
a{text-decoration:none; color:inherit;}
::selection{background: var(--jabs-gold-light); color: var(--jabs-forest-dark);}

.container-xl{
  width:100%;
  max-width: var(--container-max);
  margin-inline:auto;
  padding-inline: 24px;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: var(--font-body);
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--jabs-gold);
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background: var(--jabs-gold);
  display:inline-block;
}
.section-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--jabs-forest);
  background: rgba(14,59,46,.07);
  padding:7px 16px 7px 12px;
  border-radius:99px;
  margin-bottom:18px;
}
.section-tag i{color: var(--jabs-gold);}

.section-pad{padding-block: 110px;}
@media (max-width:767px){ .section-pad{padding-block:70px;} }

.text-gold{color: var(--jabs-gold) !important;}
.bg-forest{background: var(--jabs-forest);}
.bg-paper{background: var(--jabs-paper);}

/* -------------------- Buttons -------------------- */
.btn{font-family: var(--font-body); font-weight:600; border-radius:99px; padding:.85rem 1.7rem; font-size:.92rem; transition: all .35s var(--ease); border:1px solid transparent;}
.btn-gold{
  background: linear-gradient(135deg, var(--jabs-gold-light), var(--jabs-gold));
  color: var(--jabs-forest-darker);
  box-shadow: 0 12px 26px -10px rgba(201,162,75,.55);
}
.btn-gold:hover{ color: var(--jabs-forest-darker); transform: translateY(-3px); box-shadow: 0 18px 34px -12px rgba(201,162,75,.65); }
.btn-outline-light-line{
  background: transparent;
  border-color: rgba(255,255,255,.4);
  color: #fff;
}
.btn-outline-light-line:hover{ background: rgba(255,255,255,.12); border-color:#fff; color:#fff; transform: translateY(-3px);}
.btn-forest{
  background: var(--jabs-forest);
  color: #fff;
}
.btn-forest:hover{ background: var(--jabs-forest-dark); color:#fff; transform: translateY(-3px); box-shadow: var(--shadow-card);}
.btn-ghost-forest{
  background: transparent;
  border-color: var(--jabs-border);
  color: var(--jabs-forest-dark);
}
.btn-ghost-forest:hover{ border-color: var(--jabs-forest); background: rgba(14,59,46,.05); }
.btn-sm-pill{padding:.55rem 1.15rem; font-size:.8rem;}

/* =========================================================
   NAVBAR — transparent over hero, solid on scroll
   ========================================================= */
.navbar-jabs{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 1000;
  padding: 22px 0;
  background: transparent;
  transition: all .45s var(--ease);
}
.navbar-jabs.is-scrolled{
  padding: 12px 0;
  background: rgba(250,247,240,.85);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  box-shadow: 0 8px 30px -14px rgba(8,40,33,.25);
  border-bottom: 1px solid var(--jabs-border);
}
.navbar-jabs .navbar-inner{
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{
  width:46px; height:46px;
  display:grid; place-items:center;
  position:relative;
  flex-shrink:0;
  border-radius:50%;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.25), 0 0 0 1px rgba(201,162,75,.5);
  overflow:hidden;
}
.brand-mark svg{width:100%; height:100%;}
.brand-mark img{ width:100%; height:100%; object-fit:cover; display:block; }
.brand-mark.lg{ width:72px; height:72px; box-shadow: 0 8px 24px rgba(0,0,0,.3), 0 0 0 1px rgba(201,162,75,.5); }
.brand-mark.xl{ width:120px; height:120px; box-shadow: 0 12px 32px rgba(0,0,0,.28), 0 0 0 1px rgba(201,162,75,.5); }
.brand-text{line-height:1.15;}
.brand-text .name{
  font-family: var(--font-display);
  font-weight:700;
  font-size:1.18rem;
  color:#fff;
  transition: color .4s var(--ease);
  letter-spacing:.01em;
}
.brand-text .tagline{
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: rgba(255,255,255,.65);
  transition: color .4s var(--ease);
  display:block;
}
.navbar-jabs.is-scrolled .brand-text .name{color: var(--jabs-forest-dark);}
.navbar-jabs.is-scrolled .brand-text .tagline{color: var(--jabs-slate);}

.nav-links{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
.nav-links a{
  color: rgba(255,255,255,.88);
  font-size:.9rem;
  font-weight:500;
  padding:10px 16px;
  border-radius:99px;
  transition: all .3s var(--ease);
  white-space:nowrap;
}
.nav-links a:hover{ background: rgba(255,255,255,.14); color:#fff; }
.nav-links a.active{ background: rgba(255,255,255,.18); color:#fff; }
.navbar-jabs.is-scrolled .nav-links a{ color: var(--jabs-ink); }
.navbar-jabs.is-scrolled .nav-links a:hover,
.navbar-jabs.is-scrolled .nav-links a.active{ background: rgba(14,59,46,.08); color: var(--jabs-forest-dark); }

.nav-cta-group{display:flex; align-items:center; gap:10px;}
.btn-nav-ghost{ background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff; }
.btn-nav-ghost:hover{ background: rgba(255,255,255,.12); color:#fff; }
.navbar-jabs.is-scrolled .btn-nav-ghost{ border-color: var(--jabs-border); color: var(--jabs-forest-dark); }
.navbar-jabs.is-scrolled .btn-nav-ghost:hover{ background: rgba(14,59,46,.06); }
.navbar-toggler-jabs{
  border:1px solid rgba(255,255,255,.4);
  width:44px; height:44px; border-radius:99px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; color:#fff;
  transition: all .3s;
}
.navbar-jabs.is-scrolled .navbar-toggler-jabs{ border-color: var(--jabs-border); color: var(--jabs-forest-dark); }

.offcanvas-jabs{ background: var(--jabs-forest-dark); color:#fff; width: min(360px, 88vw); }
.offcanvas-jabs .nav-links{flex-direction:column; align-items:stretch; gap:4px;}
.offcanvas-jabs .nav-links a{color: rgba(255,255,255,.85); padding:14px 18px;}
.offcanvas-jabs .nav-links a:hover, .offcanvas-jabs .nav-links a.active{background: rgba(255,255,255,.1); color:#fff;}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height: 100vh;
  display:flex;
  align-items:center;
  padding-top: 140px;
  padding-bottom: 150px;
  background:
    radial-gradient(1100px 620px at 82% -10%, rgba(201,162,75,.22), transparent 60%),
    radial-gradient(900px 700px at 8% 110%, rgba(201,162,75,.12), transparent 55%),
    linear-gradient(160deg, var(--jabs-forest-darker) 0%, var(--jabs-forest) 48%, var(--jabs-forest-dark) 100%);
  overflow:hidden;
  isolation:isolate;
}
.hero-noise{
  position:absolute; inset:0; z-index:0; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
}
.hero-network{ position:absolute; inset:0; z-index:0; opacity:.55; }
.hero-network svg{width:100%; height:100%;}
.hero-blob{
  position:absolute; border-radius:50%; filter: blur(70px); z-index:0; pointer-events:none;
}
.hero-blob.b1{ width:480px; height:480px; top:-140px; right:-100px; background: radial-gradient(circle, rgba(201,162,75,.35), transparent 70%); }
.hero-blob.b2{ width:420px; height:420px; bottom:-160px; left:-120px; background: radial-gradient(circle, rgba(233,206,133,.18), transparent 70%); }

.hero-content{ position:relative; z-index:2; }
.hero .eyebrow{color: var(--jabs-gold-light);}
.hero .eyebrow::before{background: var(--jabs-gold-light);}
.hero h1{
  color:#fff;
  font-size: clamp(2.4rem, 4.6vw, 4.1rem);
  line-height:1.08;
  margin: 18px 0 22px;
}
.hero h1 em{ font-style:italic; color: var(--jabs-gold-light); }
.hero .lead{
  color: rgba(255,255,255,.72);
  font-size: 1.12rem;
  max-width: 600px;
  line-height:1.75;
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }

.hero-issn{
  display:flex; flex-wrap:wrap; gap: 26px; margin-top:44px;
  padding-top:26px; border-top:1px solid rgba(255,255,255,.14);
}
.hero-issn .item{display:flex; align-items:center; gap:10px; color: rgba(255,255,255,.6); font-size:.82rem;}
.hero-issn .item strong{color:#fff; font-weight:600;}
.hero-issn .item i{color: var(--jabs-gold);}

/* floating badge */
.hero-orbit{
  position:relative; z-index:2;
  width: 100%; max-width:440px; aspect-ratio:1/1; margin-inline:auto;
}
.orbit-ring{ position:absolute; inset:0; border-radius:50%; border:1px dashed rgba(255,255,255,.18); }
.orbit-ring.r2{ inset:38px; border-color: rgba(201,162,75,.28); animation: spin 40s linear infinite; }
.orbit-ring.r3{ inset:78px; border-style:solid; border-color: rgba(255,255,255,.08); }
@keyframes spin{ to{ transform: rotate(360deg); } }
.orbit-core{
  position:absolute; inset:88px;
  border-radius:50%;
  background: linear-gradient(150deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(6px);
  display:flex; align-items:center; justify-content:center; text-align:center; flex-direction:column; gap:6px;
  box-shadow: inset 0 0 60px rgba(201,162,75,.08);
}
.orbit-core i{font-size:2.2rem; color: var(--jabs-gold-light);}
.orbit-core span{ font-family:var(--font-display); color:#fff; font-size:1.1rem; }
.orbit-core small{ color: rgba(255,255,255,.55); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.orbit-chip{
  position:absolute; display:flex; align-items:center; gap:8px;
  background: rgba(250,247,240,.96);
  color: var(--jabs-forest-dark);
  padding:10px 16px; border-radius:99px;
  font-size:.78rem; font-weight:600;
  box-shadow: var(--shadow-card);
}
.orbit-chip i{color: var(--jabs-gold);}
.orbit-chip.c1{ top:6%; left:-4%; }
.orbit-chip.c2{ bottom:14%; right:-8%; }
.orbit-chip.c3{ bottom:-2%; left:16%; }

/* -------- Stats bar overlapping hero/next-section seam -------- */
.stats-overlap{
  position:relative;
  z-index: 5;
  margin-top: -92px;
}
.stats-card{
  background: rgba(255,255,255,.9);
  background: linear-gradient(180deg, #FFFFFF, #FBF8F1);
  border:1px solid rgba(255,255,255,.6);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 38px 20px;
}
.stat-item{ text-align:center; padding: 10px 12px; position:relative; }
.stat-item + .stat-item::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1px; height:56%; background: var(--jabs-border);
}
.stat-num{
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 2.6vw, 2.5rem);
  font-weight:700;
  color: var(--jabs-forest-dark);
  line-height:1;
  display:flex; align-items:baseline; justify-content:center; gap:3px;
}
.stat-num .suf{ font-size:1.2rem; color: var(--jabs-gold); }
.stat-label{
  margin-top:8px; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
  color: var(--jabs-slate); font-weight:600;
}

/* =========================================================
   ABOUT / SCOPE
   ========================================================= */
.about-art{
  position:relative; border-radius: var(--radius-lg); overflow:hidden;
  min-height:460px;
  background: linear-gradient(155deg, var(--jabs-forest) 0%, var(--jabs-forest-dark) 100%);
  display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-soft);
}
.about-art svg{ width:78%; height:auto; opacity:.95; }
.about-art .ring-deco{ position:absolute; inset:14px; border:1px solid rgba(255,255,255,.12); border-radius:calc(var(--radius-lg) - 4px); }

.aim-list{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.aim-list li{
  display:flex; gap:16px; align-items:flex-start;
  padding:18px; border-radius: var(--radius-md);
  background:#fff; border:1px solid var(--jabs-border);
  transition: all .3s var(--ease);
}
.aim-list li:hover{ transform: translateX(6px); box-shadow: var(--shadow-card); border-color: transparent; }
.aim-ico{
  flex-shrink:0; width:44px; height:44px; border-radius:12px;
  background: rgba(14,59,46,.08); color: var(--jabs-forest);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.aim-list h6{ font-weight:700; color: var(--jabs-forest-dark); margin-bottom:4px; }
.aim-list p{ margin:0; font-size:.92rem; }

/* =========================================================
   RESEARCH AREAS
   ========================================================= */
.area-card{
  position:relative; border-radius: var(--radius-lg); padding: 34px 28px;
  background:#fff; border:1px solid var(--jabs-border);
  height:100%; overflow:hidden; transition: all .4s var(--ease);
}
.area-card::after{
  content:""; position:absolute; inset:0; opacity:0;
  background: linear-gradient(155deg, var(--jabs-forest), var(--jabs-forest-dark));
  transition: opacity .4s var(--ease); z-index:0;
}
.area-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-soft); border-color:transparent; }
.area-card:hover::after{ opacity:1; }
.area-card > *{ position:relative; z-index:1; }
.area-num{
  font-family: var(--font-display); font-size:.85rem; font-weight:700; color: var(--jabs-gold);
  letter-spacing:.08em;
}
.area-ico{
  width:56px; height:56px; border-radius:16px; margin-top:14px; margin-bottom:22px;
  background: rgba(14,59,46,.08); color: var(--jabs-forest);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
  transition: all .4s var(--ease);
}
.area-card:hover .area-ico{ background: rgba(255,255,255,.14); color: var(--jabs-gold-light); }
.area-card h4{ font-size:1.28rem; margin-bottom:10px; transition: color .4s var(--ease); }
.area-card:hover h4{ color:#fff; }
.area-card p{ font-size:.92rem; margin-bottom:22px; transition: color .4s var(--ease); }
.area-card:hover p{ color: rgba(255,255,255,.72); }
.area-link{ font-size:.82rem; font-weight:700; color: var(--jabs-forest); display:inline-flex; align-items:center; gap:6px; }
.area-card:hover .area-link{ color: var(--jabs-gold-light); }
.area-link i{ transition: transform .3s var(--ease); }
.area-card:hover .area-link i{ transform: translateX(4px); }

/* =========================================================
   PROCESS TIMELINE
   ========================================================= */
.process-wrap{ position:relative; }
.process-line{
  position:absolute; top:34px; left:0; right:0; height:1px;
  background: repeating-linear-gradient(90deg, var(--jabs-border) 0 10px, transparent 10px 20px);
  z-index:0;
}
@media (max-width:991px){ .process-line{ display:none; } }
.process-step{ position:relative; z-index:1; text-align:left; }
.process-badge{
  width:68px; height:68px; border-radius:20px;
  background: linear-gradient(150deg, var(--jabs-forest), var(--jabs-forest-dark));
  color: var(--jabs-gold-light);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-size:1.4rem; font-weight:700;
  box-shadow: var(--shadow-card);
  margin-bottom:20px;
}
.process-step h5{ font-weight:700; color: var(--jabs-forest-dark); margin-bottom:8px; }
.process-step p{ font-size:.9rem; }

/* =========================================================
   CALL FOR PAPERS (dark spotlight)
   ========================================================= */
.cfp{
  position:relative; overflow:hidden;
  background: linear-gradient(155deg, var(--jabs-forest-darker), var(--jabs-forest) 60%, var(--jabs-forest-dark));
  border-radius: var(--radius-lg);
  padding: 64px;
  isolation:isolate;
}
@media (max-width:767px){ .cfp{ padding:40px 26px; } }
.cfp .hero-network{ opacity:.35; }
.cfp-badge{
  display:inline-flex; align-items:center; gap:8px;
  background: rgba(201,162,75,.16); border:1px solid rgba(201,162,75,.35);
  color: var(--jabs-gold-light); padding:8px 16px; border-radius:99px;
  font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:20px;
}
.cfp h2{ color:#fff; font-size: clamp(1.7rem, 3vw, 2.5rem); margin-bottom:16px; }
.cfp p{ color: rgba(255,255,255,.68); max-width:520px; }
.cfp-deadline{
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-md); padding:26px; text-align:center;
  backdrop-filter: blur(6px);
}
.cfp-deadline .d-num{ font-family:var(--font-display); font-size:2.6rem; color:#fff; font-weight:700; line-height:1; }
.cfp-deadline .d-label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color: rgba(255,255,255,.55); margin-top:6px; }

/* =========================================================
   EDITORIAL BOARD
   ========================================================= */
.board-card{
  background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-lg);
  padding: 30px 26px; text-align:center; height:100%; transition: all .35s var(--ease);
}
.board-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-card); }
.board-avatar{
  width:84px; height:84px; border-radius:50%; margin:0 auto 18px;
  background: linear-gradient(150deg, var(--jabs-forest), var(--jabs-forest-dark));
  display:flex; align-items:center; justify-content:center;
  color: var(--jabs-gold-light); font-family: var(--font-display); font-size:1.6rem; font-weight:700;
  border: 3px solid var(--jabs-paper);
  box-shadow: 0 0 0 1px var(--jabs-border);
}
.board-card h6{ font-weight:700; color: var(--jabs-forest-dark); margin-bottom:4px; font-size:.98rem; }
.board-role{ color: var(--jabs-gold); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:10px; display:block; }
.board-card p{ font-size:.82rem; margin:0; }

/* =========================================================
   NEWSLETTER / SUBMIT CTA
   ========================================================= */
.cta-strip{
  border-radius: var(--radius-lg);
  background: var(--jabs-paper);
  border: 1px solid var(--jabs-border);
  padding: 50px 46px;
}
@media (max-width:767px){ .cta-strip{ padding:34px 22px; } }
.cta-strip h3{ font-size:1.7rem; margin-bottom:6px; }
.form-jabs .form-control{
  border-radius:99px; border:1px solid var(--jabs-border); padding:.85rem 1.3rem;
  background:#fff;
}
.form-jabs .form-control:focus{ box-shadow:0 0 0 4px rgba(14,59,46,.1); border-color: var(--jabs-forest); }

/* =========================================================
   FOOTER
   ========================================================= */
.footer-jabs{
  background: var(--jabs-forest-darker);
  color: rgba(255,255,255,.6);
  padding-top: 90px;
}
.footer-jabs h6{ color:#fff; font-weight:700; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:20px; }
.footer-jabs .brand-text .name{ color:#fff; }
.footer-jabs p{ color: rgba(255,255,255,.5); font-size:.9rem; }
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.footer-links a{ color: rgba(255,255,255,.6); font-size:.9rem; transition: all .25s; display:inline-flex; align-items:center; gap:8px;}
.footer-links a:hover{ color: var(--jabs-gold-light); padding-left:4px; }
.footer-contact li{ display:flex; gap:12px; align-items:flex-start; color: rgba(255,255,255,.6); font-size:.9rem; margin-bottom:14px; }
.footer-contact i{ color: var(--jabs-gold); margin-top:3px; }
.social-row{ display:flex; gap:10px; margin-top:22px; }
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.16);
  display:flex; align-items:center; justify-content:center; color:#fff; transition: all .3s;
}
.social-row a:hover{ background: var(--jabs-gold); border-color: var(--jabs-gold); color: var(--jabs-forest-darker); transform: translateY(-3px); }
.footer-bottom{
  margin-top:60px; padding:22px 0; border-top:1px solid rgba(255,255,255,.1);
  font-size:.82rem; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center;
}
.footer-bottom a{ color: rgba(255,255,255,.55); }
.footer-bottom a:hover{ color:#fff; }

/* =========================================================
   MISC
   ========================================================= */
.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:999;
  width:48px; height:48px; border-radius:50%;
  background: var(--jabs-forest); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-card);
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition: all .35s var(--ease);
}
.back-to-top.show{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover{ background: var(--jabs-gold); color: var(--jabs-forest-darker); }

.preloader{
  position:fixed; inset:0; z-index:2000;
  background: var(--jabs-forest-darker);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .6s var(--ease), visibility .6s var(--ease);
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader .mark{ width:110px; height:110px; object-fit:contain; animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1;} 50%{ transform:scale(1.12); opacity:.7;} }

[data-aos]{ }
.divider-dot{ width:5px; height:5px; border-radius:50%; background: var(--jabs-gold); display:inline-block; }

/* =========================================================
   INTERIOR PAGE HERO (About / Board / Contact / Guide / Issues)
   ========================================================= */
.page-hero{
  position:relative;
  padding-top: 168px;
  padding-bottom: 84px;
  background:
    radial-gradient(900px 500px at 85% -20%, rgba(201,162,75,.2), transparent 60%),
    linear-gradient(160deg, var(--jabs-forest-darker) 0%, var(--jabs-forest) 55%, var(--jabs-forest-dark) 100%);
  overflow:hidden;
  isolation:isolate;
}
.page-hero .hero-noise{ opacity:.4; }
.page-hero .hero-network{ opacity:.4; }
.breadcrumb-jabs{
  display:flex; align-items:center; gap:8px; list-style:none; padding:0; margin:0 0 18px;
  font-size:.82rem; color: rgba(255,255,255,.55);
}
.breadcrumb-jabs a{ color: rgba(255,255,255,.75); }
.breadcrumb-jabs a:hover{ color: var(--jabs-gold-light); }
.breadcrumb-jabs .sep{ opacity:.5; }
.page-hero h1{
  color:#fff; font-size: clamp(2rem, 3.6vw, 3rem); margin-bottom:14px;
}
.page-hero .lead{ color: rgba(255,255,255,.68); max-width:640px; font-size:1.05rem; }

/* =========================================================
   AUTH (Login / Signup) SPLIT SCREEN
   ========================================================= */
.auth-wrap{ min-height:100vh; display:flex; }
.auth-side{
  flex:1 1 46%;
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  padding: 48px;
  background:
    radial-gradient(800px 500px at 15% 0%, rgba(201,162,75,.22), transparent 55%),
    linear-gradient(165deg, var(--jabs-forest-darker), var(--jabs-forest) 55%, var(--jabs-forest-dark));
  color:#fff;
  overflow:hidden;
}
@media (max-width: 991px){ .auth-side{ display:none; } }
.auth-side .hero-network{ opacity:.4; }
.auth-side-content{ position:relative; z-index:2; }
.auth-quote{
  position:relative; z-index:2;
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-md); padding:26px; backdrop-filter: blur(6px);
}
.auth-quote p{ color: rgba(255,255,255,.82); font-style:italic; margin-bottom:12px; }
.auth-quote .who{ color: var(--jabs-gold-light); font-weight:700; font-size:.85rem; }
.auth-form-side{
  flex:1 1 54%;
  display:flex; align-items:center; justify-content:center;
  padding: 48px 24px;
  background: var(--jabs-cream);
}
.auth-card{ width:100%; max-width:440px; }
.auth-card .brand{ margin-bottom:30px; }
.auth-card h2{ font-size:1.7rem; margin-bottom:8px; }
.auth-card .sub{ margin-bottom:32px; }
.form-label-jabs{ font-size:.8rem; font-weight:700; color: var(--jabs-forest-dark); margin-bottom:6px; display:block; }
.input-group-jabs{ position:relative; margin-bottom:20px; }
.input-group-jabs i{ position:absolute; left:18px; top:50%; transform:translateY(-50%); color: var(--jabs-slate-light); }
.input-group-jabs .form-control{ padding-left:46px; }
.input-group-jabs .toggle-pass{ position:absolute; right:18px; top:50%; transform:translateY(-50%); color: var(--jabs-slate-light); cursor:pointer; background:none; border:none; }
.auth-divider{ display:flex; align-items:center; gap:14px; margin: 26px 0; color: var(--jabs-slate-light); font-size:.8rem; }
.auth-divider::before,.auth-divider::after{ content:""; flex:1; height:1px; background: var(--jabs-border); }
.btn-social{
  width:100%; display:flex; align-items:center; justify-content:center; gap:10px;
  padding:.75rem 1rem; border-radius:99px; border:1px solid var(--jabs-border); background:#fff;
  font-weight:600; font-size:.88rem; color: var(--jabs-ink); transition: all .3s;
}
.btn-social:hover{ border-color: var(--jabs-forest); background: rgba(14,59,46,.04); }
.role-pick{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }
.role-pick input{ display:none; }
.role-pick label{
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
  border:1.5px solid var(--jabs-border); border-radius: var(--radius-md); padding:16px 10px;
  cursor:pointer; transition: all .25s; font-size:.82rem; font-weight:600; color: var(--jabs-slate);
}
.role-pick label i{ font-size:1.3rem; color: var(--jabs-forest); }
.role-pick input:checked + label{ border-color: var(--jabs-forest); background: rgba(14,59,46,.06); color: var(--jabs-forest-dark); }

/* =========================================================
   ISSUES ARCHIVE
   ========================================================= */
.volume-block{ margin-bottom: 64px; }
.volume-head{ display:flex; align-items:baseline; gap:16px; margin-bottom: 28px; flex-wrap:wrap; }
.volume-head h3{ font-size:1.5rem; margin:0; }
.volume-head .count{ font-size:.8rem; color: var(--jabs-slate); background: var(--jabs-paper); padding:5px 14px; border-radius:99px; font-weight:600; }
.issue-card{
  background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-lg);
  overflow:hidden; height:100%; transition: all .35s var(--ease);
  display:flex; flex-direction:column;
}
.issue-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-soft); border-color:transparent; }
.issue-cover{
  aspect-ratio: 4/3; position:relative; overflow:hidden;
  background: linear-gradient(155deg, var(--jabs-forest), var(--jabs-forest-dark));
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:#fff; padding:20px;
}
.issue-cover .hero-network{ opacity:.35; }
.issue-cover .vol-tag{ position:relative; z-index:2; font-family:var(--font-display); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color: var(--jabs-gold-light); margin-bottom:10px; }
.issue-cover .vol-num{ position:relative; z-index:2; font-family: var(--font-display); font-size:2.4rem; font-weight:700; line-height:1; }
.issue-cover .vol-year{ position:relative; z-index:2; font-size:.8rem; color: rgba(255,255,255,.6); margin-top:8px; }
.issue-body{ padding:22px; display:flex; flex-direction:column; flex:1; gap:14px; }
.issue-body h5{ font-weight:700; color: var(--jabs-forest-dark); font-size:1rem; margin:0; }
.issue-meta{ display:flex; gap:14px; font-size:.78rem; color: var(--jabs-slate); }
.issue-meta i{ color: var(--jabs-gold); margin-right:4px; }
.issue-body .btn{ margin-top:auto; }

/* =========================================================
   ARTICLE LIST (inside an issue)
   ========================================================= */
.article-row{
  display:flex; gap:20px; align-items:flex-start;
  padding: 24px; border-radius: var(--radius-md);
  background:#fff; border:1px solid var(--jabs-border);
  transition: all .3s var(--ease);
}
.article-row:hover{ border-color: transparent; box-shadow: var(--shadow-card); transform: translateY(-3px); }
.article-index{
  flex-shrink:0; width:44px; height:44px; border-radius:12px;
  background: rgba(14,59,46,.07); color: var(--jabs-forest);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700; font-size:1rem;
}
.article-row h5{ font-size:1.04rem; margin-bottom:8px; }
.article-row h5 a{ color: var(--jabs-forest-dark); transition: color .25s; }
.article-row h5 a:hover{ color: var(--jabs-forest); text-decoration:underline; }
.article-authors{ font-size:.85rem; color: var(--jabs-slate); margin-bottom:12px; }
.article-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.article-actions .btn{ padding:.5rem 1.1rem; font-size:.78rem; }
.tag-chip{
  display:inline-flex; align-items:center; gap:6px;
  background: rgba(14,59,46,.06); color: var(--jabs-forest); font-size:.72rem; font-weight:700;
  padding:5px 12px; border-radius:99px; text-transform:uppercase; letter-spacing:.04em;
}

/* =========================================================
   SINGLE PAPER
   ========================================================= */
.paper-meta-bar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.paper-title{ font-size: clamp(1.5rem, 2.6vw, 2.1rem); color:#fff; margin-bottom:18px; }
.paper-authors{ display:flex; flex-wrap:wrap; gap:8px 22px; margin-bottom:8px; }
.paper-authors .auth{ color: rgba(255,255,255,.88); font-size:.94rem; font-weight:600; display:flex; align-items:center; gap:6px; }
.paper-authors .auth i{ color: var(--jabs-gold-light); font-size:.8rem; }
.paper-affil{ color: rgba(255,255,255,.55); font-size:.82rem; max-width:760px; }
.paper-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

.paper-box{
  background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-lg);
  padding: 32px; margin-bottom:28px;
}
.paper-box h4{ font-size:1.2rem; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.paper-box h4 i{ color: var(--jabs-gold); }
.keyword-chip{
  display:inline-flex; align-items:center; background: var(--jabs-paper); color: var(--jabs-forest-dark);
  font-size:.78rem; font-weight:600; padding:6px 14px; border-radius:99px; margin:0 8px 8px 0;
}
.paper-sidebar .info-card{
  background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-lg); padding:26px; margin-bottom:22px;
}
.paper-sidebar .info-card h6{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color: var(--jabs-slate); font-weight:700; margin-bottom:16px; }
.meta-line{ display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px dashed var(--jabs-border); font-size:.86rem; }
.meta-line:last-child{ border-bottom:none; }
.meta-line span:first-child{ color: var(--jabs-slate); }
.meta-line span:last-child{ color: var(--jabs-forest-dark); font-weight:600; text-align:right; }
.cite-box{ background: var(--jabs-forest-dark); color: rgba(255,255,255,.82); border-radius: var(--radius-md); padding:18px; font-size:.82rem; line-height:1.7; font-family: 'Courier New', monospace; position:relative; }
.cite-box .copy-btn{ position:absolute; top:10px; right:10px; background: rgba(255,255,255,.1); border:none; color:#fff; border-radius:8px; padding:5px 10px; font-size:.72rem; cursor:pointer; }
.related-paper{ display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--jabs-border); }
.related-paper:last-child{ border-bottom:none; }
.related-paper .num{ font-family: var(--font-display); color: var(--jabs-gold); font-weight:700; flex-shrink:0; }
.related-paper a{ font-size:.86rem; font-weight:600; color: var(--jabs-forest-dark); line-height:1.5; }
.related-paper a:hover{ color: var(--jabs-forest); }

.paper-nav-tabs{ display:flex; gap:6px; border-bottom:1px solid var(--jabs-border); margin-bottom:30px; overflow-x:auto; }
.paper-nav-tabs a{
  padding:14px 20px; font-size:.88rem; font-weight:600; color: var(--jabs-slate);
  border-bottom:2px solid transparent; white-space:nowrap; transition: all .25s;
}
.paper-nav-tabs a.active, .paper-nav-tabs a:hover{ color: var(--jabs-forest-dark); border-color: var(--jabs-gold); }

/* =========================================================
   GUIDE TO AUTHORS — accordion & timeline
   ========================================================= */
.accordion-jabs .accordion-item{ border:1px solid var(--jabs-border); border-radius: var(--radius-md) !important; margin-bottom:14px; overflow:hidden; }
.accordion-jabs .accordion-button{
  font-weight:700; color: var(--jabs-forest-dark); font-family: var(--font-display); font-size:1.05rem;
  background:#fff; padding:20px 24px;
}
.accordion-jabs .accordion-button:not(.collapsed){ background: rgba(14,59,46,.05); color: var(--jabs-forest-dark); box-shadow:none; }
.accordion-jabs .accordion-button:focus{ box-shadow:none; border-color: var(--jabs-border); }
.accordion-jabs .accordion-body{ padding: 6px 24px 26px; font-size:.92rem; }
.ref-example{ background: var(--jabs-paper); border-left:3px solid var(--jabs-gold); padding:14px 18px; border-radius: 0 10px 10px 0; font-size:.86rem; margin-bottom:10px; }
.step-mini{ display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.step-mini .n{ flex-shrink:0; width:32px; height:32px; border-radius:50%; background: var(--jabs-forest); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; }
.step-mini h6{ font-weight:700; margin-bottom:4px; color: var(--jabs-forest-dark); }
.step-mini p{ font-size:.88rem; margin:0; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact-info-card{
  display:flex; gap:16px; align-items:flex-start;
  background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-md);
  padding:22px; height:100%;
}
.contact-info-card .ico{ flex-shrink:0; width:48px; height:48px; border-radius:14px; background: rgba(14,59,46,.08); color: var(--jabs-forest); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.contact-info-card h6{ font-weight:700; color: var(--jabs-forest-dark); margin-bottom:6px; }
.contact-info-card p{ margin:0; font-size:.88rem; }
.map-panel{
  border-radius: var(--radius-lg); overflow:hidden; min-height:340px;
  background: linear-gradient(155deg, var(--jabs-forest), var(--jabs-forest-dark));
  position:relative; display:flex; align-items:center; justify-content:center;
}
.map-panel .pin{ position:relative; z-index:2; text-align:center; color:#fff; }
.map-panel .pin i{ font-size:2.4rem; color: var(--jabs-gold-light); }

/* =========================================================
   GENERIC PAGE UTILITIES
   ========================================================= */
.pagination-jabs{ display:flex; gap:8px; justify-content:center; margin-top:40px; list-style:none; padding:0; }
.pagination-jabs a{
  width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--jabs-border); color: var(--jabs-forest-dark); font-weight:600; font-size:.86rem;
}
.pagination-jabs a.active, .pagination-jabs a:hover{ background: var(--jabs-forest); border-color: var(--jabs-forest); color:#fff; }
.filter-bar{ background:#fff; border:1px solid var(--jabs-border); border-radius: var(--radius-lg); padding:20px; margin-bottom:40px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.filter-bar .form-select, .filter-bar .form-control{ border-radius:99px; border:1px solid var(--jabs-border); }
