/* NM Local — shared styles. Scandinavian system: warm paper, ink, one forest accent. */
:root {
  --paper:#f6f4ef; --surface:#fffefb; --ink:#23261f; --ink-2:#6e7268; --ink-3:#a3a69c;
  --accent:#2e6b4f; --accent-deep:#24523d; --accent-tint:#eaf0ea;
  --linen:#f3eee4; --clay:#a5854e; --hairline:#e8e5dd; --radius:14px;
}
* { box-sizing:border-box; margin:0 }
html { scroll-behavior:smooth }
body { font-family:-apple-system,system-ui,"Segoe UI",sans-serif; background:var(--paper); color:var(--ink);
       font-size:16px; line-height:1.68 }
a { color:var(--accent); text-underline-offset:3px; text-decoration-thickness:1px }
img { max-width:100%; display:block }
.wrap { max-width:1020px; margin:0 auto; padding:0 24px }
.narrow { max-width:720px }

header { background:var(--surface); border-bottom:1px solid var(--hairline); position:sticky; top:0; z-index:10 }
header .wrap { display:flex; align-items:center; gap:26px; padding-top:16px; padding-bottom:16px }
.wordmark { font-size:20px; font-weight:800; letter-spacing:-.3px; text-decoration:none; color:var(--ink) }
.wordmark b { color:var(--accent) }
nav { margin-left:auto; display:flex; gap:22px; font-size:14.5px; align-items:center }
nav a { text-decoration:none; color:var(--ink-2) }
nav a:hover, nav a.here { color:var(--ink) }
nav a.cta { color:#fff; background:var(--accent); padding:8px 18px; border-radius:999px; font-weight:600 }
nav a.cta:hover { background:var(--accent-deep) }

.kicker { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--clay); font-weight:700; margin-bottom:14px }
h1 { font-size:42px; line-height:1.12; letter-spacing:-1px; font-weight:750 }
h2 { font-size:29px; letter-spacing:-.5px; font-weight:720; margin-bottom:14px }
.micro { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--ink-3); font-weight:700; margin-bottom:10px }
.sub { color:var(--ink-2); max-width:38em }
section { padding:64px 0 }
.btn { display:inline-block; background:var(--accent); color:#fff; text-decoration:none; font-weight:650;
       padding:14px 28px; border-radius:999px; font-size:15.5px; border:none; cursor:pointer }
.btn:hover { background:var(--accent-deep) }
.btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--hairline) }
.btn.ghost:hover { border-color:var(--ink-3); background:var(--surface) }
.btnrow { display:flex; gap:12px; flex-wrap:wrap }

.hero { padding:64px 0 }
.hero .wrap { display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center }
.hero p.lead { font-size:18px; color:var(--ink-2); margin:18px 0 30px; max-width:32em }
.heroimg { border-radius:var(--radius); box-shadow:0 18px 50px rgba(35,38,31,.14); object-fit:cover; width:100%; aspect-ratio:4/3 }

.stats { background:var(--surface); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline) }
.stats .wrap { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding-top:32px; padding-bottom:32px; text-align:center }
.stat b { display:block; font-size:28px; font-weight:350; letter-spacing:-1px; color:var(--accent-deep) }
.stat span { font-size:12.5px; color:var(--ink-2); line-height:1.45; display:block; margin-top:4px }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.cardl { background:var(--surface); border:1px solid var(--hairline); border-radius:var(--radius); overflow:hidden;
         text-decoration:none; color:var(--ink); display:block; transition:transform .12s }
.cardl:hover { transform:translateY(-2px) }
.cardl img { aspect-ratio:3/2; object-fit:cover; width:100% }
.cardl .pad { padding:18px 20px 22px }
.cardl .k { font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--accent); font-weight:700 }
.cardl h3 { font-size:17.5px; margin:7px 0 6px; line-height:1.3 }
.cardl p { font-size:13.5px; color:var(--ink-2) }

table.rates { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--hairline);
              border-radius:var(--radius); overflow:hidden; font-size:14.5px }
table.rates th { background:var(--ink); color:var(--paper); text-align:left; font-size:12.5px; letter-spacing:.4px;
                 padding:11px 16px; font-weight:600 }
table.rates th:not(:first-child), table.rates td:not(:first-child) { text-align:center }
table.rates td { padding:11px 16px; border-top:1px solid var(--hairline) }
table.rates td.f { color:var(--accent-deep); font-weight:700 }
table.rates td.later { color:var(--ink-3) }
ul.ticks { list-style:none; padding:0; margin:18px 0 }
ul.ticks li { padding:7px 0 7px 30px; position:relative; font-size:15.5px }
ul.ticks li::before { content:"✓"; position:absolute; left:2px; color:var(--accent); font-weight:700 }
.guarantee { background:var(--linen); border-left:2px solid var(--clay); border-radius:0 10px 10px 0;
             padding:14px 18px; font-size:14px; color:#57503d; margin-top:22px }
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start }
.note { font-size:12.5px; color:var(--ink-2); margin-top:10px }

.panelbox { background:var(--surface); border:1px solid var(--hairline); border-radius:var(--radius); padding:30px }
.newsletter { display:flex; gap:20px; align-items:center; flex-wrap:wrap; justify-content:space-between }

article.post { max-width:720px; margin:0 auto; padding:56px 24px 30px }
article.post .postimg { border-radius:var(--radius); aspect-ratio:2/1; object-fit:cover; width:100%; margin:26px 0 }
article.post p, article.post li { font-size:16.5px; color:#3a3d34; margin-bottom:18px }
article.post h2 { font-size:23px; margin:34px 0 12px }
article.post ul, article.post ol { padding-left:24px; margin-bottom:18px }
article.post li { margin-bottom:8px }
.byline { color:var(--ink-2); font-size:13.5px; margin-top:14px }
.crumbs { font-size:12.5px; color:var(--ink-3); padding:22px 0 0 }
.crumbs a { color:var(--ink-2); text-decoration:none }
.postcta { background:var(--accent-tint); border-radius:var(--radius); padding:22px 26px; margin:34px 0 }
.postcta b { color:var(--accent-deep) }

.faq details { background:var(--surface); border:1px solid var(--hairline); border-radius:12px; padding:16px 20px; margin-bottom:10px }
.faq summary { cursor:pointer; font-weight:650; font-size:15.5px }
.faq details[open] summary { margin-bottom:8px }
.faq p { font-size:14.5px; color:var(--ink-2) }

footer { background:var(--ink); color:#c9ccc2; padding:44px 0; font-size:13.5px; margin-top:40px }
footer .wrap { display:flex; gap:30px; flex-wrap:wrap; justify-content:space-between; align-items:baseline }
footer a { color:#e8eadf }
footer .fm { font-weight:800; font-size:16px; color:#fff }
footer .fm b { color:#7fb89a }

@media (max-width:820px) {
  .hero .wrap, .split { grid-template-columns:1fr }
  .stats .wrap { grid-template-columns:repeat(2,1fr); row-gap:22px }
  .cards { grid-template-columns:1fr }
  h1 { font-size:33px }
  nav a:not(.cta) { display:none }
}
