@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');

:root {
  --navy:        #1A3A4A;
  --navy-mid:    #2A5570;
  --gold:        #B8892A;
  --gold-light:  #D4A94A;
  --sage:        #3D6B52;
  --cream:       #F7F4EF;
  --warm-white:  #FDFAF5;
  --text:        #1E1C1A;
  --text-mid:    #5A5754;
  --text-muted:  #8A8784;
  --border:      #E2DDD6;
}

/* ── Base ── */
body {
  font-family: 'Lora', Georgia, serif;
  font-size: 1rem;
  line-height: 1.78;
  color: var(--text);
  background-color: var(--warm-white);
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, serif;
  color: var(--navy);
}
a { color: var(--navy-mid); }
a:hover { color: var(--sage); }

/* ── Navbar ── */
.navbar { background-color: var(--navy) !important; border-bottom: 3px solid var(--gold); }
.navbar-brand {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  color: var(--cream) !important;
  display: flex; align-items: center; gap: 8px;
}
.navbar-brand i { color: var(--gold-light); font-size: 1.35rem; }
.nav-link { color: rgba(247,244,239,0.82) !important; font-size: 0.88rem; letter-spacing: 0.015em; }
.nav-link:hover, .nav-link.active { color: var(--gold-light) !important; }
.navbar-toggler { border-color: rgba(247,244,239,0.3); }
.navbar-toggler-icon { filter: invert(1) opacity(0.7); }

/* ── Hero ── */
.hero {
  background-color: var(--navy);
  padding: 5.5rem 0 4.5rem;
  position: relative; overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; top: -60%; right: -8%;
  width: 480px; height: 480px;
  border: 1px solid rgba(184,137,42,0.12); border-radius: 50%;
}
.hero::after {
  content: ''; position: absolute; top: -35%; right: -3%;
  width: 300px; height: 300px;
  border: 1px solid rgba(184,137,42,0.08); border-radius: 50%;
}
.hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  color: var(--cream); line-height: 1.2; font-weight: 700;
}
.hero-sub { color: rgba(247,244,239,0.73); font-size: 1.05rem; max-width: 560px; }
.hero-rule { width: 48px; height: 3px; background-color: var(--gold); margin: 1.5rem 0; }

/* ── Page header (inner pages) ── */
.page-header {
  background-color: var(--navy);
  padding: 3.5rem 0 2.5rem;
  border-bottom: 3px solid var(--gold);
}
.page-header h1 { color: var(--cream); font-size: clamp(1.8rem, 3.5vw, 2.8rem); margin: 0; }
.page-header p { color: rgba(247,244,239,0.7); margin: 0.5rem 0 0; font-size: 1rem; }
.breadcrumb-item, .breadcrumb-item a { color: rgba(247,244,239,0.5); font-size: 0.82rem; }
.breadcrumb-item.active { color: var(--gold-light); }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(247,244,239,0.3); }

/* ── Buttons ── */
.btn-gold { background-color: var(--gold); border-color: var(--gold); color: #fff; font-family: 'Lora', serif; }
.btn-gold:hover { background-color: var(--gold-light); border-color: var(--gold-light); color: #fff; }
.btn-outline-cream { border-color: rgba(247,244,239,0.35); color: var(--cream); }
.btn-outline-cream:hover { background-color: rgba(247,244,239,0.08); border-color: rgba(247,244,239,0.5); color: var(--cream); }
.btn-navy { background-color: var(--navy); border-color: var(--navy); color: #fff; }
.btn-navy:hover { background-color: var(--navy-mid); border-color: var(--navy-mid); color: #fff; }

/* ── Labels / badges ── */
.section-label {
  font-family: 'Lora', serif; font-size: 0.72rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.25rem;
}
.section-rule { border-top: 1px solid var(--border); margin: 0.4rem 0 2rem; }
.badge-mycotoxin  { background:rgba(61,107,82,0.12);  color:#2D5A3F; font-size:0.69rem; padding:3px 10px; border-radius:3px; font-weight:500; letter-spacing:0.05em; font-family:'Lora',serif; text-transform:uppercase; display:inline-block; }
.badge-outbreak   { background:rgba(184,137,42,0.13); color:#7A5818; font-size:0.69rem; padding:3px 10px; border-radius:3px; font-weight:500; letter-spacing:0.05em; font-family:'Lora',serif; text-transform:uppercase; display:inline-block; }
.badge-regional   { background:rgba(26,58,74,0.1);    color:#2A5570; font-size:0.69rem; padding:3px 10px; border-radius:3px; font-weight:500; letter-spacing:0.05em; font-family:'Lora',serif; text-transform:uppercase; display:inline-block; }
.badge-grain      { background:rgba(90,62,12,0.1);    color:#6B4A10; font-size:0.69rem; padding:3px 10px; border-radius:3px; font-weight:500; letter-spacing:0.05em; font-family:'Lora',serif; text-transform:uppercase; display:inline-block; }
.badge-policy     { background:rgba(42,85,112,0.1);   color:#1A4A64; font-size:0.69rem; padding:3px 10px; border-radius:3px; font-weight:500; letter-spacing:0.05em; font-family:'Lora',serif; text-transform:uppercase; display:inline-block; }

/* ── Article cards ── */
.article-card {
  border: 1px solid var(--border); border-radius: 5px;
  background: #fff; transition: box-shadow 0.2s, transform 0.2s; height: 100%;
}
.article-card:hover { box-shadow: 0 4px 18px rgba(26,58,74,0.12); transform: translateY(-2px); }
.article-card-body { padding: 1.5rem; display:flex; flex-direction:column; height:100%; }
.article-card h3 { font-size: 1.15rem; font-weight: 600; line-height: 1.4; margin-bottom: 0.65rem; }
.article-card h3 a { color: var(--navy); text-decoration: none; }
.article-card h3 a:hover { color: var(--sage); text-decoration: underline; }
.article-card p { font-size: 0.9rem; color: var(--text-mid); line-height: 1.68; margin-bottom: 0; }
.article-meta { font-size: 0.78rem; color: var(--text-muted); font-family: 'Lora', serif; }
.card-hr { border-top: 1px solid var(--border); margin: 1rem 0 0.75rem; }

/* ── Study spotlight ── */
.study-spotlight { background-color: var(--navy); color: var(--cream); padding: 4.5rem 0; }
.study-spotlight h2 { color: var(--cream); }
.study-tag {
  display: inline-block; background-color: var(--gold); color: #fff;
  font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 4px 13px; border-radius: 3px; font-family: 'Lora', serif; font-weight: 500; margin-bottom: 1rem;
}
.active-tag {
  display: inline-block; background-color: var(--sage); color: #fff;
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 3px; font-family: 'Lora', serif; font-weight: 500;
}
.study-detail { border-left: 3px solid var(--gold); padding-left: 1.25rem; margin: 1.5rem 0; }
.study-detail dt { font-size: 0.72rem; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(247,244,239,0.45); font-family: 'Lora', serif; }
.study-detail dd { color: rgba(247,244,239,0.88); margin-bottom: 0.75rem; font-size: 0.93rem; }
.study-box { border: 1px solid rgba(184,137,42,0.28); border-radius: 7px; padding: 2rem; background: rgba(255,255,255,0.04); }
.study-box h5 { color: var(--cream); font-family: 'Playfair Display', serif; margin-bottom: 1rem; }
.study-box ul { color: rgba(247,244,239,0.75); font-size: 0.9rem; padding-left: 1.2rem; margin: 0; }
.study-box li { margin-bottom: 0.5rem; }

/* ── Mission section ── */
.mission-section { background-color: var(--cream); padding: 4.5rem 0; }
.mission-icon { font-size: 1.75rem; color: var(--gold); margin-bottom: 0.75rem; }
.mission-pillar h5 { font-size: 1rem; margin-bottom: 0.4rem; }
.mission-pillar p { font-size: 0.88rem; color: var(--text-mid); margin: 0; }

/* ── Article full ── */
.article-body { font-size: 1.05rem; line-height: 1.85; }
.article-body h2 { font-size: 1.55rem; margin-top: 2.5rem; margin-bottom: 0.75rem; padding-top: 0.5rem; border-top: 1px solid var(--border); }
.article-body h3 { font-size: 1.2rem; margin-top: 1.75rem; margin-bottom: 0.5rem; color: var(--navy-mid); }
.article-body p { margin-bottom: 1.25rem; }
.article-body em { font-style: italic; }
.article-sidebar { position: sticky; top: 80px; }
.sidebar-box { border: 1px solid var(--border); border-radius: 5px; background: #fff; padding: 1.5rem; margin-bottom: 1.25rem; }
.sidebar-box h6 { font-family: 'Lora', serif; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.75rem; }
.toc-list { list-style: none; padding: 0; margin: 0; }
.toc-list li { font-size: 0.88rem; padding: 0.3rem 0; border-bottom: 1px solid var(--border); }
.toc-list li:last-child { border-bottom: none; }
.toc-list a { color: var(--text-mid); text-decoration: none; }
.toc-list a:hover { color: var(--navy); }
.ref-list { font-size: 0.85rem; color: var(--text-mid); line-height: 1.6; }
.ref-list li { margin-bottom: 0.6rem; }
.pullquote {
  border-left: 4px solid var(--gold); padding: 1rem 1.5rem;
  margin: 2rem 0; background: var(--cream); border-radius: 0 5px 5px 0;
  font-family: 'Playfair Display', serif; font-style: italic;
  font-size: 1.15rem; color: var(--navy); line-height: 1.5;
}

/* ── Contributors ── */
.contributor-card { border: 1px solid var(--border); border-radius: 5px; background: #fff; padding: 1.75rem; }
.contributor-avatar { width: 56px; height: 56px; border-radius: 50%; background-color: var(--navy); display: flex; align-items: center; justify-content: center; color: var(--cream); font-family: 'Playfair Display', serif; font-size: 1.3rem; flex-shrink: 0; }
.contributor-avatar.sage { background-color: var(--sage); }
.contributor-role { font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold); font-family: 'Lora', serif; font-weight: 500; }

/* ── Research list ── */
.research-list-item { border-bottom: 1px solid var(--border); padding: 1.5rem 0; }
.research-list-item:first-child { padding-top: 0; }
.research-list-item h4 { font-size: 1.15rem; font-weight: 600; margin-bottom: 0.4rem; }
.research-list-item h4 a { color: var(--navy); text-decoration: none; }
.research-list-item h4 a:hover { color: var(--sage); text-decoration: underline; }
.research-list-item p { font-size: 0.9rem; color: var(--text-mid); margin: 0; }

/* ── Footer ── */
footer { background-color: #111E25; color: rgba(247,244,239,0.65); padding: 3.5rem 0 1.75rem; }
footer h5 { font-family: 'Playfair Display', serif; color: var(--cream); font-size: 1rem; margin-bottom: 1rem; }
footer a { color: rgba(247,244,239,0.55); text-decoration: none; font-size: 0.875rem; display: block; margin-bottom: 0.4rem; }
footer a:hover { color: var(--gold-light); }
.footer-brand { font-family: 'Playfair Display', serif; font-size: 1.2rem; color: var(--cream); }
.footer-divider { border-color: rgba(247,244,239,0.1); margin: 2rem 0 1rem; }
.footer-legal { font-size: 0.78rem; color: rgba(247,244,239,0.38); }

/* ── Utilities ── */
.text-gold   { color: var(--gold); }
.text-navy   { color: var(--navy); }
.text-sage   { color: var(--sage); }
.bg-cream    { background-color: var(--cream); }
.bg-warm-white { background-color: var(--warm-white); }
.bg-navy     { background-color: var(--navy); }

/* ── Regional cards ── */
.region-card { border:1px solid var(--border); border-radius:5px; background:#fff; padding:1.25rem; display:flex; gap:1rem; align-items:flex-start; height:100%; transition: box-shadow 0.2s; }
.region-card:hover { box-shadow: 0 3px 12px rgba(26,58,74,0.1); }
.region-card h6 { font-size:1rem; margin:0 0 0.25rem; }
.region-card p  { font-size:0.84rem; color:var(--text-mid); margin:0; line-height:1.55; }
.region-status-active { font-size:0.68rem; color:var(--sage); font-family:'Lora',serif; letter-spacing:0.06em; text-transform:uppercase; font-weight:500; }
.region-status-planned { font-size:0.68rem; color:var(--text-muted); font-family:'Lora',serif; letter-spacing:0.06em; text-transform:uppercase; }
