:root {
  --nh-deep: #0d2d45; --nh-mid: #15476d; --nh-main: #2980b9; --nh-light: #7ec8e3;
  --nh-pale: #e8f4fb; --nh-cream: #faf8f3; --nh-green: #629c51; --nh-text: #1c1c18;
}
.nh-wrap { background: var(--nh-cream); font-family: 'DM Sans', sans-serif; color: var(--nh-text); }
.nh-section { max-width: 1180px; margin: 0 auto; padding: 4.5rem 2rem; }
.nh-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--nh-main); margin-bottom: .6rem; }
.nh-title { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.8rem, 3.4vw, 2.6rem); font-weight: 700; color: var(--nh-deep); margin: 0 0 1rem; line-height: 1.2; }
.nh-lead { font-size: 1.05rem; color: #54534a; max-width: 680px; line-height: 1.7; }

.nh-hero { position: relative; min-height: 480px; display: flex; align-items: center; overflow: hidden; background: var(--nh-deep); }
.nh-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.nh-hero__overlay { position: absolute; inset: 0; z-index: 1; background: rgba(13,45,69,.62); }
.nh-hero__inner { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; padding: 3.5rem 2rem; display: grid; grid-template-columns: 1fr 1.1fr; gap: 3rem; align-items: center; }
.nh-hero__eyebrow { display: inline-flex; align-items: center; gap: .5rem; background: rgba(13,45,69,.65); border: 1px solid rgba(126,200,227,.7); border-radius: 50px; padding: 5px 16px; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #b8e4f5; margin-bottom: 1.25rem; }
.nh-hero__headline { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 700; color: #fff; line-height: 1.15; margin: 0 0 1.1rem; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.nh-hero__headline em { color: var(--nh-light); font-style: italic; }
.nh-hero__sub { font-size: 1.05rem; color: rgba(255,255,255,.88); line-height: 1.7; max-width: 540px; margin-bottom: 1.75rem; }
.nh-hero__btns { display: flex; gap: .75rem; flex-wrap: wrap; }
.nh-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .8rem 1.5rem; border-radius: 50px; font-weight: 600; font-size: .92rem; text-decoration: none; transition: all .2s; }
.nh-btn--primary { background: var(--nh-green); color: #fff; }
.nh-btn--primary:hover { background: #7bbb66; color: #fff; }
.nh-btn--ghost { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.4); }
.nh-btn--ghost:hover { background: rgba(255,255,255,.2); color: #fff; }
.nh-btn--dark { background: var(--nh-deep); color: #fff; }
.nh-btn--dark:hover { background: var(--nh-mid); color: #fff; }
.nh-btn--outline { background: transparent; color: var(--nh-deep); border: 1px solid var(--nh-deep); }
.nh-btn--outline:hover { background: var(--nh-pale); color: var(--nh-deep); }
.nh-hero__stats { display: flex; gap: 1.75rem; margin-top: 2rem; }
.nh-hero__stat strong { display: block; font-size: 1.6rem; color: #fff; font-family: 'Playfair Display', Georgia, serif; }
.nh-hero__stat span { font-size: .78rem; color: rgba(255,255,255,.7); }

.nh-hero__card { background: #fff; border-radius: 18px; padding: 1.75rem; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.nh-hero__card h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.3rem; color: var(--nh-deep); margin: 0 0 .5rem; }
.nh-hero__card p { font-size: .9rem; color: #6b6b60; margin-bottom: 1rem; }
.nh-form-note { font-size: .76rem; color: #9a9a90; margin-top: .75rem; }

.nh-fg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2.5rem; }
.nh-fg-card { background: #fff; border-radius: 16px; padding: 2rem; box-shadow: 0 4px 24px rgba(13,45,69,.08); }
.nh-fg-icon { width: 48px; height: 48px; border-radius: 12px; background: var(--nh-pale); color: var(--nh-main); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 1rem; }
.nh-fg-card.is-give .nh-fg-icon { background: #eaf3e4; color: var(--nh-green); }
.nh-fg-eyebrow { font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nh-main); }
.nh-fg-card.is-give .nh-fg-eyebrow { color: var(--nh-green); }
.nh-fg-card h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.4rem; margin: .35rem 0 .75rem; color: var(--nh-deep); }
.nh-fg-card > p { font-size: .92rem; color: #54534a; line-height: 1.6; margin-bottom: 1rem; }
.nh-fg-list { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.nh-fg-list li { font-size: .87rem; color: #54534a; padding: .35rem 0; display: flex; gap: .5rem; align-items: flex-start; }
.nh-fg-list li i { color: var(--nh-green); margin-top: .2rem; flex-shrink: 0; }

.nh-state-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.nh-state-links a { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem 1rem; border-radius: 50px; background: var(--nh-pale); color: var(--nh-deep); font-size: .85rem; font-weight: 600; text-decoration: none; transition: all .2s; }
.nh-state-links a:hover { background: var(--nh-main); color: #fff; }

.nh-how { background: #fff; }
.nh-how-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin: 2rem 0; }
.nh-how-tab { padding: .65rem 1.25rem; border-radius: 50px; border: 1px solid #ddd6c8; background: transparent; font-size: .85rem; font-weight: 600; color: #54534a; cursor: pointer; transition: all .2s; }
.nh-how-tab.active, .nh-how-tab:hover { background: var(--nh-deep); border-color: var(--nh-deep); color: #fff; }
.nh-how-panel { display: none; }
.nh-how-panel.active { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.nh-how-step { display: flex; gap: 1rem; }
.nh-how-num { flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--nh-pale); color: var(--nh-main); display: flex; align-items: center; justify-content: center; font-weight: 700; font-family: 'Playfair Display', Georgia, serif; }
.nh-how-step h4 { font-size: 1rem; margin: 0 0 .35rem; color: var(--nh-deep); }
.nh-how-step p { font-size: .87rem; color: #6b6b60; margin: 0; line-height: 1.55; }

.nh-map-shell { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; margin-top: 2.5rem; align-items: stretch; }
.nh-map-card { position: relative; background: #fff; border-radius: 16px; padding: 1.5rem; box-shadow: 0 4px 24px rgba(13,45,69,.08); }
.nh-map-card img { width: 100%; height: auto; display: block; }
.nh-map-badge { position: absolute; top: 1.75rem; left: 1.75rem; background: var(--nh-deep); color: #fff; font-size: .74rem; font-weight: 600; padding: .4rem .8rem; border-radius: 50px; display: flex; align-items: center; gap: .4rem; }
.nh-state-marker { position: absolute; width: 38px; height: 38px; border-radius: 50%; background: #e07d2a; color: #fff; display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; text-decoration: none; box-shadow: 0 4px 14px rgba(0,0,0,.25); transition: transform .2s; }
.nh-state-marker:hover { transform: translateY(-4px) scale(1.08); color: #fff; }
.nh-state-marker.sc { left: 80%; top: 60%; }
.nh-state-marker.ga { left: 74%; top: 65%; }
.nh-state-marker.wi { left: 61%; top: 27%; }
.nh-state-marker.ks { left: 48%; top: 48%; }
.nh-map-panel { background: var(--nh-deep); color: #fff; border-radius: 16px; padding: 2rem; display: flex; flex-direction: column; justify-content: center; }
.nh-map-panel h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; margin: 0 0 .75rem; }
.nh-map-panel p { font-size: .87rem; color: rgba(255,255,255,.8); line-height: 1.6; margin-bottom: 1.25rem; }
.nh-map-stats { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; }
.nh-map-stat strong { display: block; font-size: 1.5rem; font-family: 'Playfair Display', Georgia, serif; }
.nh-map-stat span { font-size: .74rem; color: rgba(255,255,255,.65); }
.nh-map-panel .nh-state-links a { background: rgba(255,255,255,.1); color: #fff; }
.nh-map-panel .nh-state-links a:hover { background: var(--nh-green); }

.nh-cta { background: var(--nh-pale); text-align: center; }
.nh-cta .nh-section { padding-top: 4rem; padding-bottom: 4rem; }
.nh-cta-btns { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }

@media (max-width: 900px) {
  .nh-hero__inner { grid-template-columns: 1fr; padding-top: 5.5rem; }
  .nh-fg-grid, .nh-map-shell { grid-template-columns: 1fr; }
  .nh-how-panel.active { grid-template-columns: 1fr; }
}
