/* ============================================================
   AGRILEAD Training & Consulting LLC
   Website stylesheet
   Palette, type, buttons and layout follow the approved brand
   handoff. Sober, professional, institutional.
   ============================================================ */

:root {
  /* Approved brand colors */
  --green:        #2E7D32;
  --green-dark:   #245c27;
  --navy:         #0D2B4D;
  --navy-dark:    #081d36;
  --brown:        #7A4E24;
  --gray:         #6B7280;
  --light:        #F3F4F6;
  --white:        #FFFFFF;

  /* Derived tokens */
  --ink:          #16202b;   /* primary body text */
  --ink-soft:     #45525f;   /* secondary text   */
  --border:       #e4e7eb;
  --border-soft:  #eceef1;
  --field:        #f8faf9;   /* very light green-tinted surface */

  --maxw: 1160px;
  --gutter: clamp(20px, 5vw, 48px);
  --radius: 10px;
  --radius-sm: 7px;

  --shadow-sm: 0 1px 2px rgba(13,43,77,.05), 0 1px 3px rgba(13,43,77,.04);
  --shadow-md: 0 6px 24px rgba(13,43,77,.08);

  --font-head: "Montserrat", system-ui, sans-serif;
  --font-body: "Lato", system-ui, sans-serif;
}

/* ---------- Reset & base ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  line-height: 1.62;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-head);
  color: var(--navy);
  line-height: 1.18;
  margin: 0 0 .5em;
  letter-spacing: -0.01em;
}
h1 { font-weight: 800; font-size: clamp(2rem, 4.6vw, 3.05rem); }
h2 { font-weight: 700; font-size: clamp(1.55rem, 3vw, 2.15rem); }
h3 { font-weight: 700; font-size: 1.28rem; }
h4 { font-weight: 600; font-size: 1.05rem; }

p { margin: 0 0 1.1em; color: var(--ink-soft); }
a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--green); }
img { max-width: 100%; display: block; }
strong { color: var(--ink); }

::selection { background: rgba(46,125,50,.16); }

/* ---------- Layout helpers ---------- */
.container { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--gutter); }
.section { padding: clamp(56px, 8vw, 100px) 0; }
.section--tight { padding: clamp(40px, 6vw, 68px) 0; }
.section--field { background: var(--field); border-block: 1px solid var(--border-soft); }
.section--light { background: var(--light); }
.narrow { max-width: 760px; }
.center { text-align: center; }
.stack > * + * { margin-top: 1rem; }

.eyebrow {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .74rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--green);
  margin: 0 0 .9rem;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.eyebrow::before {
  content: "";
  width: 26px; height: 2px;
  background: var(--green);
  display: inline-block;
}
.section-head { max-width: 680px; margin-bottom: 2.6rem; }
.section-head p { font-size: 1.06rem; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .96rem;
  line-height: 1;
  padding: .82rem 1.4rem;
  border-radius: var(--radius-sm);
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
  text-align: center;
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn--primary:hover { background: var(--green); border-color: var(--green); color: var(--white); }
.btn--secondary { background: var(--white); color: var(--green); border-color: var(--green); }
.btn--secondary:hover { background: var(--green); color: var(--white); }
.btn--ghost-light { background: transparent; color: var(--white); border-color: rgba(255,255,255,.55); }
.btn--ghost-light:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
.btn svg { width: 17px; height: 17px; }

.link-arrow {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .92rem;
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.link-arrow svg { width: 16px; height: 16px; transition: transform .18s ease; }
.link-arrow:hover { color: var(--green); }
.link-arrow:hover svg { transform: translateX(3px); }

/* ============================================================
   Header
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 60;
  background: var(--white);
  border-bottom: 1px solid var(--border);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem;
  min-height: 74px;
}
.brand { display: inline-flex; align-items: center; gap: .55rem; }
.brand .mark { height: 32px; width: 32px; flex: none; }
.brand-word {
  font-family: var(--font-head); font-weight: 800; font-size: 1.3rem;
  letter-spacing: .015em; color: var(--navy); line-height: 1;
}
.brand-word .lead { color: var(--green); }
.footer-brand .brand-word { font-size: 1.28rem; }

.nav { display: flex; align-items: center; gap: 1.9rem; }
.nav a {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .93rem;
  color: var(--navy);
  padding: .35rem 0;
  position: relative;
}
.nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 2px; background: var(--green); transform: scaleX(0);
  transform-origin: left; transition: transform .2s ease;
}
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav a[aria-current="page"] { color: var(--green); }

.header-actions { display: flex; align-items: center; gap: 1rem; }
/* The CTA inside the nav is for the mobile menu only; hide on desktop */
.nav > .btn { display: none; }
/* Keep button label color correct inside .nav (overrides .nav a color) */
.nav .btn--primary { color: var(--white); }
.nav .btn--secondary { color: var(--green); }

.nav-toggle {
  display: none;
  background: none; border: 1px solid var(--border); border-radius: var(--radius-sm);
  width: 44px; height: 42px; cursor: pointer;
  align-items: center; justify-content: center;
}
.nav-toggle svg { width: 22px; height: 22px; color: var(--navy); }

/* Mobile nav */
@media (max-width: 940px) {
  .nav-toggle { display: inline-flex; }
  .header-actions .btn { display: none; }
  .nav {
    position: fixed; inset: 74px 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    padding: .5rem var(--gutter) 1.4rem;
    box-shadow: var(--shadow-md);
    transform: translateY(-12px); opacity: 0; pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
  }
  .nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .nav a { padding: .85rem 0; border-bottom: 1px solid var(--border-soft); font-size: 1rem; }
  .nav a::after { display: none; }
  .nav > .btn {
    display: inline-flex; justify-content: center;
    margin-top: 1rem; width: 100%;
  }
}

/* ============================================================
   Hero
   ============================================================ */
.hero { background: var(--white); overflow: hidden; }
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  padding: clamp(48px, 7vw, 92px) 0 clamp(48px, 7vw, 88px);
}
.hero h1 { margin-bottom: .55rem; }
.hero-lead { font-size: 1.16rem; max-width: 46ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.hero-meta {
  margin-top: 2.3rem; padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  display: flex; flex-wrap: wrap; gap: 1.4rem 2.2rem;
}
.hero-meta div { display: flex; align-items: center; gap: .6rem; font-size: .9rem; color: var(--ink-soft); }
.hero-meta svg { width: 19px; height: 19px; color: var(--green); flex: none; }

@media (max-width: 860px) {
  .hero-grid { grid-template-columns: 1fr; gap: 2.4rem; }
  .hero-visual { order: -1; }
}

/* ---------- Field / soil-horizon visual (signature motif) ---------- */
.field-panel {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-md);
  aspect-ratio: 4 / 3.2;
  background: var(--navy);
}
.field-panel svg,
.field-panel img { position: absolute; inset: 0; width: 100%; height: 100%; }
.field-panel img { object-fit: cover; display: block; }
.field-panel .panel-caption {
  position: absolute; left: 14px; bottom: 12px; z-index: 3;
  font-family: var(--font-head); font-weight: 600; font-size: .72rem;
  letter-spacing: .04em; color: rgba(255,255,255,.9);
  background: rgba(8,29,54,.55); backdrop-filter: blur(2px);
  padding: .3rem .6rem; border-radius: 6px;
}
.section-feature-photo {
  max-width: 920px;
  margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.section-feature-photo .field-panel {
  aspect-ratio: 16 / 7;
}
/* small "replace with photo" hint, visible only as subtle tag */
.photo-note {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  font-family: var(--font-head); font-weight: 600; font-size: .62rem;
  letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.72);
  border: 1px dashed rgba(255,255,255,.4);
  padding: .25rem .5rem; border-radius: 5px;
}

/* ============================================================
   Cards / grids
   ============================================================ */
.grid { display: grid; gap: 1.4rem; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 860px) { .grid-3 { grid-template-columns: 1fr; } .grid-2 { grid-template-columns: 1fr; } }

.card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.7rem 1.6rem;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.card:hover { border-color: #cdd4db; box-shadow: var(--shadow-md); transform: translateY(-3px); }
.card h3 { font-size: 1.16rem; margin-bottom: .5rem; }
.card p { margin: 0; font-size: .98rem; }
.card .icon { margin-bottom: 1rem; }

.icon {
  width: 46px; height: 46px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(46,125,50,.09);
  color: var(--green);
  flex: none;
}
.icon svg { width: 24px; height: 24px; }
.icon--navy { background: rgba(13,43,77,.07); color: var(--navy); }
.icon--brown { background: rgba(122,78,36,.10); color: var(--brown); }

/* Value list */
.values { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem 2rem; }
@media (max-width: 720px) { .values { grid-template-columns: 1fr; } }
.value { display: flex; gap: .95rem; }
.value .icon { width: 40px; height: 40px; }
.value h4 { margin: 0 0 .2rem; color: var(--navy); }
.value p { margin: 0; font-size: .95rem; }

/* Tag / pill list (Who We Serve) */
.pills { display: flex; flex-wrap: wrap; gap: .6rem; }
.pill {
  font-family: var(--font-head); font-weight: 600; font-size: .86rem;
  color: var(--navy);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: .5rem 1rem;
}

/* Numbered / feature rows */
.feature-list { display: grid; gap: 1.4rem; }
.feature {
  display: grid; grid-template-columns: 46px 1fr; gap: 1.1rem; align-items: start;
  padding-bottom: 1.4rem; border-bottom: 1px solid var(--border-soft);
}
.feature:last-child { border-bottom: none; padding-bottom: 0; }
.feature h3 { font-size: 1.12rem; margin-bottom: .3rem; }
.feature p { margin: 0; font-size: .98rem; }

/* Services detailed list */
.svc { display: grid; grid-template-columns: 1fr; gap: 0; }
.svc-item {
  display: grid; grid-template-columns: 52px 1fr; gap: 1.2rem;
  padding: 1.5rem 0; border-bottom: 1px solid var(--border);
  align-items: start;
}
.svc-item:first-child { border-top: 1px solid var(--border); }
.svc-item h3 { font-size: 1.14rem; margin-bottom: .35rem; }
.svc-item p { margin: 0; }

/* ============================================================
   Highlight band (initiative / CTA on dark navy)
   ============================================================ */
.band {
  position: relative;
  background: var(--navy);
  color: var(--white);
  overflow: hidden;
}
.band::after {
  /* soil-horizon accent line at the base */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px;
  background: linear-gradient(90deg, var(--green) 0 33%, var(--brown) 33% 66%, var(--gray) 66% 100%);
  opacity: .85;
}
.band h2, .band h3 { color: var(--white); }
.band p { color: rgba(255,255,255,.82); }
.band .eyebrow { color: #8fd18f; }
.band .eyebrow::before { background: #8fd18f; }
.band-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,5vw,4rem); align-items: center; }
@media (max-width: 860px){ .band-grid { grid-template-columns: 1fr; } }

.mini-list { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: .7rem; }
.mini-list li { display: flex; gap: .7rem; align-items: flex-start; color: rgba(255,255,255,.9); font-size: .98rem; }
.mini-list svg { width: 19px; height: 19px; color: #8fd18f; flex: none; margin-top: 2px; }

/* CTA strip */
.cta-strip { text-align: center; }
.cta-strip h2 { max-width: 20ch; margin-inline: auto; }
.cta-strip .hero-cta { justify-content: center; }

/* ============================================================
   Disclaimer / notes
   ============================================================ */
.notice {
  background: var(--light);
  border: 1px solid var(--border);
  border-left: 3px solid var(--brown);
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.25rem;
  font-size: .92rem;
  color: var(--ink-soft);
}
.notice strong { color: var(--navy); font-family: var(--font-head); }

/* ============================================================
   Founder profile
   ============================================================ */
.founder { display: grid; grid-template-columns: 300px 1fr; gap: clamp(1.6rem,4vw,3rem); align-items: start; }
@media (max-width: 780px){ .founder { grid-template-columns: 1fr; } }
.founder .field-panel { aspect-ratio: 3 / 3.4; }
.founder h3 { margin-bottom: .1rem; }
.founder .role { font-family: var(--font-head); font-weight: 600; color: var(--green); font-size: .95rem; margin-bottom: 1rem; }

/* ============================================================
   Contact
   ============================================================ */
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem,5vw,3.5rem); align-items: start; }
@media (max-width: 860px){ .contact-grid { grid-template-columns: 1fr; } }

.info-row { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid var(--border-soft); }
.info-row:last-child { border-bottom: none; }
.info-row .icon { width: 42px; height: 42px; }
.info-row .label { font-family: var(--font-head); font-weight: 700; color: var(--navy); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .15rem; }
.info-row .val { margin: 0; color: var(--ink-soft); font-size: .98rem; }

.form { display: grid; gap: 1.1rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 560px){ .form-row { grid-template-columns: 1fr; } }
.field label {
  display: block; font-family: var(--font-head); font-weight: 600;
  font-size: .85rem; color: var(--navy); margin-bottom: .4rem;
}
.field label .opt { color: var(--gray); font-weight: 400; font-size: .8rem; }
.field input, .field select, .field textarea {
  width: 100%; font-family: var(--font-body); font-size: .98rem; color: var(--ink);
  padding: .72rem .85rem; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--white); transition: border-color .15s ease, box-shadow .15s ease;
}
.field textarea { min-height: 130px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}
.form .btn { justify-self: start; }
.form-note { font-size: .85rem; color: var(--gray); margin: 0; }

/* honeypot */
.hp { position: absolute; left: -9999px; }

/* ============================================================
   Downloadable materials
   ============================================================ */
.doc-card {
  display: flex; flex-direction: column; gap: .9rem;
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.5rem;
}
.doc-card .icon { width: 44px; height: 44px; }
.doc-card h3 { font-size: 1.08rem; margin: 0; }
.doc-card p { font-size: .93rem; margin: 0; flex: 1; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer { background: var(--light); border-top: 1px solid var(--border); color: var(--ink-soft); }
.footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr; gap: 2.5rem; padding: clamp(48px,6vw,72px) 0 2.4rem; }
@media (max-width: 820px){ .footer-top { grid-template-columns: 1fr; gap: 2rem; } }
.footer-brand svg { height: 32px; width: auto; margin-bottom: .9rem; }
.footer-tag { font-family: var(--font-head); font-weight: 600; color: var(--navy); font-size: .95rem; margin-bottom: .7rem; }
.footer-desc { font-size: .92rem; max-width: 42ch; }
.footer h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--navy); margin-bottom: 1rem; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.footer-links a { color: var(--ink-soft); font-size: .94rem; }
.footer-links a:hover { color: var(--green); }
.footer-contact { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; font-size: .94rem; }
.footer-contact li { display: flex; gap: .55rem; align-items: flex-start; }
.footer-contact svg { width: 17px; height: 17px; color: var(--green); flex: none; margin-top: 3px; }
.footer-bottom {
  border-top: 1px solid var(--border);
  padding: 1.4rem 0 2rem;
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center;
}
.footer-bottom p { margin: 0; font-size: .84rem; }
.footer-disclaimer { font-size: .82rem; color: var(--gray); max-width: 62ch; margin: 0 0 1.2rem; }

/* ============================================================
   Reveal-on-scroll (progressive enhancement)
   Hidden state applies ONLY when JS is active (html.js), so
   content is always visible if scripts fail to run.
   ============================================================ */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; } }

/* Accessibility: visible focus */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(46,125,50,.45); outline-offset: 2px; border-radius: 4px;
}
.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 100;
  background: var(--navy); color: #fff; padding: .7rem 1rem; border-radius: 0 0 8px 0;
  font-family: var(--font-head); font-weight: 600; font-size: .9rem;
}
.skip-link:focus { left: 0; color: #fff; }

/* Language switcher (EN / FR) */
.lang-switch{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-head,inherit);font-weight:700;font-size:.78rem;letter-spacing:.06em;border:1px solid var(--border,rgba(0,0,0,.15));border-radius:6px;padding:.32rem .6rem;line-height:1;color:inherit;text-decoration:none;transition:background .15s ease}
.lang-switch:hover{background:rgba(0,0,0,.06)}

/* ============================================================
   Dropdown navigation + language filter + banner hero
   ============================================================ */
.nav-item.has-sub{position:relative;display:inline-flex;align-items:center}
.nav-top{display:inline-flex;align-items:center;gap:.25rem}
.nav .caret{font-size:.62em;opacity:.65;transition:transform .2s ease}
.nav-item.has-sub:hover .caret,.nav-item.has-sub:focus-within .caret{transform:rotate(180deg)}
.submenu{
  position:absolute;top:calc(100% + .4rem);left:0;min-width:220px;
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--shadow-md);padding:.4rem;
  display:flex;flex-direction:column;gap:2px;z-index:70;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.nav-item.has-sub::after{content:"";position:absolute;top:100%;left:0;right:0;height:.6rem}
.nav-item.has-sub:hover .submenu,.nav-item.has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu a{padding:.55rem .7rem;border-radius:8px;font-size:.9rem;white-space:nowrap;color:var(--navy)}
.submenu a::after{display:none}
.submenu a:hover{background:var(--border-soft)}
.submenu a[aria-current="page"]{color:var(--green)}

.lang-select{
  font-family:var(--font-head);font-weight:700;font-size:.8rem;letter-spacing:.03em;
  color:var(--navy);background-color:var(--white);
  border:1px solid var(--border);border-radius:8px;
  padding:.4rem 1.7rem .4rem .65rem;cursor:pointer;line-height:1;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230D2B4D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right .5rem center;background-size:.7rem;
}
.lang-select:hover{border-color:var(--green)}

@media (max-width:940px){
  .nav-item.has-sub{display:block}
  .nav .caret{display:none}
  .submenu{
    position:static;opacity:1;visibility:visible;transform:none;
    border:none;box-shadow:none;border-radius:0;padding:0 0 0 1rem;min-width:0;
  }
  .submenu a{border-bottom:1px solid var(--border-soft);border-radius:0;padding:.75rem 0}
}

.hero--banner{position:relative;background:var(--navy);overflow:hidden;isolation:isolate}
.hero--banner .hero-banner-media{position:absolute;inset:0;z-index:0}
.hero--banner .hero-banner-media img{width:100%;height:100%;object-fit:cover;display:block}
.hero--banner::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(11,33,58,.90) 0%,rgba(11,33,58,.72) 45%,rgba(11,33,58,.42) 100%)}
.hero-banner-inner{position:relative;z-index:2;padding:clamp(60px,10vw,132px) 0;max-width:640px}
.hero--banner h1,.hero--banner .hero-lead{color:#fff}
.hero--banner .eyebrow{color:#bfe0c1}
.hero--banner .hero-lead{max-width:52ch}
.hero--banner .hero-meta{border-top-color:rgba(255,255,255,.28)}
.hero--banner .hero-meta div{color:rgba(255,255,255,.9)}
.hero--banner .hero-meta svg{color:#8fd18f}
@media (max-width:860px){
  .hero--banner::after{background:linear-gradient(180deg,rgba(11,33,58,.82),rgba(11,33,58,.88))}
  .hero-banner-inner{max-width:none}
}

/* --- Refinements: smaller hero + tidier menu --- */
.hero-banner-inner{padding:clamp(28px,4vw,60px) 0;max-width:600px}
.hero--banner h1{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.hero--banner .hero-meta{margin-top:1.6rem;padding-top:1.1rem}
.nav{gap:1.35rem}
.header-actions{gap:.7rem}
.lang-select{padding:.38rem 1.6rem .38rem .62rem}

/* === Model (nature.org): text language toggle + centered banner hero === */
.lang-toggle{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-head);font-weight:700;font-size:.82rem;letter-spacing:.02em}
.lang-toggle svg{width:15px;height:15px;color:var(--ink-soft);flex:none}
.lang-toggle a{color:var(--navy);opacity:.55;padding:.1rem .12rem}
.lang-toggle a.is-active{color:var(--green);opacity:1}
.lang-toggle a:hover{opacity:1}
.lang-toggle .sep{color:var(--border)}

.hero--banner{display:flex;align-items:center;justify-content:center;text-align:center;min-height:clamp(330px,42vw,500px)}
.hero--banner::after{background:linear-gradient(rgba(9,26,46,.40),rgba(9,26,46,.60))}
.hero-banner-inner{max-width:840px;margin-inline:auto;padding:2.4rem 0}
.hero--banner .eyebrow{display:flex;justify-content:center;color:#eaf1e8}
.hero--banner .eyebrow::before{display:none}
.hero--banner h1{color:#fff;font-size:clamp(2rem,4.6vw,3.25rem);margin:0;max-width:22ch;margin-inline:auto}

/* === TNC model: utility topbar + uppercase nav + bigger banner === */
.topbar{background:var(--white);border-bottom:1px solid var(--border-soft)}
.topbar-inner{display:flex;justify-content:flex-end;align-items:center;min-height:40px}
.header-inner .nav{margin-right:auto;margin-left:.5rem}
.nav-top{text-transform:uppercase;letter-spacing:.07em;font-size:.8rem;font-weight:700}
.submenu a{text-transform:none;letter-spacing:0}
.nav-lang{display:none}
@media (max-width:940px){
  .topbar{display:none}
  .header-inner .nav{margin:0}
  .nav-lang{display:flex;padding-top:.9rem;justify-content:flex-start}
}
.hero--banner{min-height:clamp(380px,46vw,560px)}

/* === Editorial serif type + link grid (nature.org model) === */
:root{--font-display:"Merriweather",Georgia,"Times New Roman",serif}
h1,h2,h3{font-family:var(--font-display)}
h1{font-weight:700}
.hero--banner h1{font-weight:700;font-size:clamp(2.1rem,4.6vw,3.2rem)}
.lead-statement{font-family:var(--font-display);font-weight:400;font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.5;color:var(--navy);max-width:42rem;margin:0 auto 1.6rem;text-align:center}
.linkgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 3rem;margin-top:.5rem}
.lg-item p{color:var(--ink-soft);margin:.35rem 0 0;line-height:1.6}
.lg-title{font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--green);display:inline-flex;align-items:center;gap:.35rem}
.lg-title svg{width:18px;height:18px}
.lg-title:hover{text-decoration:underline}
@media(max-width:700px){.linkgrid{grid-template-columns:1fr;gap:1.6rem}}

/* Vertical photo in the contact info column */
.contact-photo{width:100%;max-width:340px;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block;margin:0 0 1.4rem}

/* Collaboration organizations */
.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;margin-top:2rem}
.partner-card{min-height:245px;padding:1.6rem;background:#fff;border:1px solid var(--border-soft);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 8px 24px rgba(11,33,58,.06)}
.partner-card h3{font-size:1.05rem;margin:1.1rem 0 0;color:var(--navy)}
.partner-logo{display:block;width:100%;height:145px;object-fit:contain}
.partner-logo--wide{height:110px}
@media(max-width:760px){.partner-grid{grid-template-columns:1fr}.partner-card{min-height:220px}}
