:root {
  --brand:#008000; --brand-dark:#0b3a14; --brand-ink:#0a6b0a;
  --ink:#1c1c1a; --muted:#5f5e5a; --border:rgba(0,0,0,.12);
  --bg:#faf9f5; --surface:#fff; --soft:#eef4ec; --radius:12px;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 8px 24px rgba(0,0,0,.06);
}
* { box-sizing:border-box; }
html,body { overflow-x:hidden; }
body { margin:0; background:var(--bg); color:var(--ink); border-top:3px solid var(--brand);
  -webkit-font-smoothing:antialiased;
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
a { color:var(--brand-ink); }

.wrap { max-width:1060px; margin:0 auto; padding:0 20px; }

/* ── chrome (shared with register) ───────────────────────────── */
.topbar { background:var(--surface); border-bottom:1px solid var(--border); }
.topbar .wrap { display:flex; align-items:center; height:62px; }
.brand { display:flex; align-items:center; gap:9px; font-weight:700; color:var(--ink); text-decoration:none; font-size:19px; letter-spacing:-.01em; }
.logo { width:32px; height:32px; border-radius:50%; object-fit:cover; }
.mainnav { background:var(--surface); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:20; }
.mainnav .wrap { display:flex; flex-wrap:wrap; gap:18px; align-items:center; min-height:46px; }
.mainnav a { color:var(--muted); text-decoration:none; font-size:14.5px; font-weight:500; }
.mainnav a:hover { color:var(--brand); }
.mainnav a.active { color:var(--brand); font-weight:700; }
.sep { width:1px; height:16px; background:var(--border); }
.langswitch { margin-left:auto; display:flex; gap:2px; align-items:center; }
.langswitch a { color:var(--muted); font-size:12.5px; font-weight:700; letter-spacing:.03em; text-decoration:none; padding:3px 7px; border-radius:5px; }
.langswitch a:hover { color:var(--brand); background:var(--soft); }
.langswitch a.active { color:#fff; background:var(--brand); }
main.wrap { padding:0 20px 8px; }

h1 { font-size:23px; font-weight:700; border-bottom:2px solid var(--brand); display:inline-block; padding-bottom:2px; letter-spacing:-.01em; }
ul { padding-left:18px; } li { margin:6px 0; }

/* ── footer (shared) ─────────────────────────────────────────── */
.pfooter { background:var(--surface); border-top:1px solid var(--border); margin-top:48px; }
.pf-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; padding:32px 20px; font-size:14px; color:var(--muted); max-width:1060px; margin:0 auto; }
.pf-grid strong { color:var(--ink); }
.pf-brand { display:flex; align-items:center; gap:8px; font-weight:700; color:var(--ink); margin-bottom:6px; }
.pf-legal { font-size:12px; color:#8a8980; padding:0 20px 28px; max-width:1060px; margin:0 auto; }
.pf-legal a { color:#6f7268; margin-right:2px; }
.pf-note { margin-top:8px; }

/* ══ marketing ══════════════════════════════════════════════════ */

/* full-bleed hero */
.hero-full { width:100vw; margin-left:calc(50% - 50vw); background-size:cover; background-position:center;
  color:#fff; padding:76px 0 64px; }
.hero-inner { max-width:1060px; }
.hero-kicker { text-transform:uppercase; letter-spacing:.14em; font-size:12.5px; font-weight:700; color:#bfe6c8; margin:0 0 12px; }
.hero-full h1 { border:0; display:block; font-size:clamp(30px,5vw,50px); line-height:1.08; font-weight:800; margin:0; max-width:16ch; color:#fff; }
.hero-full .lead { font-size:clamp(16px,2vw,20px); color:#e7f2e9; max-width:52ch; margin:16px 0 0; }
.cta { margin-top:26px; display:flex; gap:12px; flex-wrap:wrap; }
.btn { display:inline-block; background:var(--brand); color:#fff; text-decoration:none;
  padding:12px 22px; border-radius:8px; font-size:15px; font-weight:700; border:1px solid transparent; transition:.15s; }
.btn:hover { background:#0a6b0a; transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--brand); border:1px solid var(--brand); }
.btn-ghost:hover { background:rgba(10,125,44,.06); color:var(--brand); }
.btn-ghost-light { background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.6); }
.btn-ghost-light:hover { background:#fff; color:var(--brand-dark); transform:translateY(-1px); }

/* mission strip */
.mission { padding:44px 0 8px; }
.mission .content { max-width:64ch; }
.mission .content p { font-size:19px; line-height:1.55; color:#33322f; }

.content { max-width:70ch; }
.content h2, .content h3 { color:var(--ink); letter-spacing:-.01em; }
.content img, .page img { max-width:100%; height:auto; border-radius:var(--radius); box-shadow:var(--shadow); }
.content > p:first-child { margin-top:0; }
.meta { color:var(--muted); font-size:14px; margin:8px 0 0; }

/* feature cards */
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; margin:36px 0 8px; }
.card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); overflow:hidden; text-decoration:none; color:var(--ink);
  box-shadow:0 1px 2px rgba(0,0,0,.04); transition:.18s; }
.card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:rgba(10,125,44,.35); }
.card-img { display:block; height:158px; background-size:cover; background-position:center; background-color:var(--soft); transition:.3s; }
.card:hover .card-img { transform:scale(1.03); }
.card-body { padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1; }
.card-body h3 { margin:0; font-size:18px; letter-spacing:-.01em; }
.card-body p { margin:0; color:var(--muted); font-size:14.5px; flex:1; }
.card-arrow { margin-top:6px; color:var(--brand); font-weight:700; font-size:14px; }

/* section headings */
.sec-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:48px 0 18px; border-bottom:1px solid var(--border); padding-bottom:8px; }
.sec-head h2 { margin:0; font-size:22px; letter-spacing:-.01em; }
.sec-link { color:var(--brand); font-weight:700; font-size:14px; text-decoration:none; white-space:nowrap; }
.sec-link:hover { text-decoration:underline; }

/* latest-reports strip */
.report-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.report-card { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--brand);
  border-radius:10px; padding:16px 18px; text-decoration:none; color:var(--ink); transition:.15s; }
.report-card:hover { box-shadow:var(--shadow); transform:translateY(-2px); }
.report-date { display:block; font-size:12.5px; font-weight:700; color:var(--brand); text-transform:uppercase; letter-spacing:.04em; }
.report-card p { margin:8px 0 0; font-size:14px; color:#3a3936; line-height:1.55; }

/* badges */
.badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.badge { background:var(--soft); color:var(--brand-dark); font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; }

/* section list (reports/press) */
.page-head { margin:36px 0 6px; }
.page-head .lead { color:var(--muted); font-size:17px; max-width:62ch; margin:12px 0 0; }
.section-list .content { max-width:64ch; margin-bottom:8px; }
.report-list { list-style:none; padding:0; margin:20px 0 0; border-top:1px solid var(--border); }
.report-list li { margin:0; border-bottom:1px solid var(--border); }
.report-list a { display:flex; gap:18px; align-items:flex-start; padding:16px 6px; text-decoration:none; color:var(--ink); transition:.12s; }
.report-list a:hover { background:rgba(10,125,44,.035); }
.rl-date { flex:0 0 96px; font-size:13px; font-weight:700; color:var(--brand); padding-top:2px; }
.rl-body { flex:1; display:flex; flex-direction:column; gap:4px; }
.rl-body strong { font-size:15.5px; font-weight:700; }
.rl-sum { color:var(--muted); font-size:14px; }
.rl-arrow { color:var(--brand); font-weight:700; opacity:0; transition:.12s; }
.report-list a:hover .rl-arrow { opacity:1; }
.empty-state { color:var(--muted); background:var(--soft); border-radius:10px; padding:22px; text-align:center; }

/* cover image (press / single) */
.cover { height:260px; border-radius:var(--radius); background-size:cover; background-position:center; margin:28px 0 4px; box-shadow:var(--shadow); }
.back { margin-top:28px; }
.back a { font-weight:600; }

@media (max-width:640px) {
  .rl-date { flex-basis:76px; font-size:12px; }
  .hero-full { padding:56px 0 46px; }
  .sec-head { flex-direction:column; gap:4px; align-items:flex-start; }
}
