/* NPI+ website shared stylesheet.
   Every page links to this file and keeps only its own page-specific rules inline.
   To change the look of the whole site, edit this one file. */
:root { --green:#0e9f6e; --green-dark:#0b5d45; --mint:#e6faf3; --ink:#152019; --grey:#5f6f66; --line:#dfe7e3; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Segoe UI", -apple-system, BlinkMacSystemFont, Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--ink); background:#fdfefd; line-height:1.55; }
a { color:var(--green); }
.wrap { max-width:68rem; margin:0 auto; padding:0 1.5rem; }
.topbar { background:var(--green-dark); color:#cfe8dd; font-size:0.82rem; }
.topbar .wrap { display:flex; flex-wrap:wrap; gap:0.2rem 2rem; justify-content:center; padding-top:0.3rem; padding-bottom:0.3rem; }
.topbar a { color:#fff; text-decoration:none; }
.topbar a:hover { text-decoration:underline; }
header.masthead { background:#fff; border-bottom:1px solid var(--line); }
header.masthead .wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.75rem; padding-top:0.8rem; padding-bottom:0.8rem; }
.brand h1 { margin:0; font-size:1.7rem; font-weight:800; letter-spacing:-0.5px; line-height:1.1; }
.brand h1 a { color:var(--green-dark); text-decoration:none; }
.brand h1 a span { color:var(--green); }
.brand h1.logo img { display:block; height:4.05rem; width:auto; }
nav.mainnav ul { list-style:none; display:flex; flex-wrap:wrap; margin:0; padding:0; }
nav.mainnav a { display:block; padding:0.45rem 0.85rem; color:var(--ink); text-decoration:none; font-weight:600; font-size:0.95rem; border-radius:6px; border-bottom:3px solid transparent; }
nav.mainnav a:hover { color:var(--green); background:var(--mint); }
nav.mainnav a.current { color:var(--green-dark); border-bottom-color:var(--green); }
.pagehead { background:var(--mint); border-bottom:1px solid var(--line); }
.pagehead .wrap { padding-top:0.7rem; padding-bottom:0.7rem; }
.pagehead h1 { margin:0; font-size:1.3rem; font-weight:800; color:var(--green-dark); }
.content .wrap { padding-top:1.2rem; padding-bottom:1.4rem; max-width:58rem; }
footer { background:#083b2d; color:#b7d6c8; font-size:0.85rem; }
footer .wrap { display:flex; flex-wrap:wrap; gap:0.5rem 3rem; justify-content:space-between; padding-top:0.8rem; padding-bottom:0.8rem; }
footer a { color:#d9efe4; }
footer p { margin:0.15rem 0; }
.updated { font-style:italic; color:var(--grey); font-size:0.8rem; text-align:center; margin:0; padding:0.5rem 0; }
