/*! NHHR Forms v1.0.10 – mobile-first. All rules scoped under .nhhrf so theme / Elementor styles can't clash. */
.nhhrf, .nhhrf *, .nhhrf *::before, .nhhrf *::after { box-sizing: border-box; }
.nhhrf {
	--nh-ink: #f4f7ef; --nh-dim: rgba(244,247,239,.7); --nh-bg: #0d3328; --nh-bg2: #145240;
	--nh-acc: #d7f25b; --nh-acc-ink: #10241c; --nh-line: rgba(255,255,255,.13); --nh-err: #ffb4a8;
	--nh-pad: 18px; --nh-indent: 0px;
	--nh-font: "Avenir Next", "Avenir", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;
	--nh-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	/* Visible height inside the browser minus the site's fixed header/footer bars (set by JS). */
	--nh-avail: calc(100vh - var(--nhhrf-obt, 0px) - var(--nhhrf-obb, 0px));
	font-family: var(--nh-font); color: var(--nh-ink); font-size: 16px; line-height: 1.45; -webkit-font-smoothing: antialiased;
	text-align: left; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; overflow-wrap: break-word; word-break: normal;
	-webkit-tap-highlight-color: transparent;
}
@supports (height: 100svh) { .nhhrf { --nh-avail: calc(100svh - var(--nhhrf-obt, 0px) - var(--nhhrf-obb, 0px)); } }
/* Themes (per form) */
.nhhrf.nhhrf-t-lime   { --nh-bg: #0d3328; --nh-bg2: #17573f; --nh-acc: #d7f25b; }
.nhhrf.nhhrf-t-navy   { --nh-bg: #0f1f3a; --nh-bg2: #1d3a66; --nh-acc: #8fd3ff; }
.nhhrf.nhhrf-t-berry  { --nh-bg: #3a0f33; --nh-bg2: #6b1f5a; --nh-acc: #ffc94d; }
.nhhrf.nhhrf-t-orange { --nh-bg: #2a1407; --nh-bg2: #5b2a0c; --nh-acc: #ff8a3d; }
.nhhrf.nhhrf-t-dawn   { --nh-bg: #1b1740; --nh-bg2: #6a2c5c; --nh-acc: #ffb36b; }
.nhhrf.nhhrf-t-court  { --nh-bg: #13233b; --nh-bg2: #8a4b22; --nh-acc: #ffb547; }

/* ---------- Theme-bleed guard (Hello Elementor reset.css, Elementor kit, plugins) ---------- */
.nhhrf button, .nhhrf input, .nhhrf select, .nhhrf textarea { font: inherit; color: inherit; letter-spacing: normal; text-transform: none; margin: 0; box-shadow: none; transition: none; }
.nhhrf button, .nhhrf [type=button] {
	cursor: pointer; background: none; border: 0; padding: 0; border-radius: 0; line-height: inherit; min-height: 0; width: auto;
	white-space: normal; text-align: inherit; display: inline-flex; align-items: center; -webkit-user-select: none; user-select: none; font-weight: inherit;
}
.nhhrf h2, .nhhrf h3, .nhhrf p { margin: 0; padding: 0; color: inherit; font-family: inherit; letter-spacing: normal; text-transform: none; orphans: unset; widows: unset; }
.nhhrf label { display: block; line-height: inherit; vertical-align: baseline; font-weight: inherit; margin: 0; max-width: none; }
.nhhrf a, .nhhrf a:hover, .nhhrf a:active { color: inherit; text-decoration: none; box-shadow: none; }
.nhhrf svg { display: inline-block; vertical-align: middle; flex: none; }
.nhhrf img, .nhhrf canvas { max-width: 100%; }
.nhhrf :focus { outline: none; }
.nhhrf :focus-visible { outline: 3px solid var(--nh-acc); outline-offset: 3px; }
.nhhrf .nhhrf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ================= Form app (mobile first) ================= */
.nhhrf-app {
	position: relative; isolation: isolate; overflow: hidden; border-radius: 16px; max-width: 980px; margin: 0 auto;
	background:
		radial-gradient(900px 420px at 110% -10%, var(--nh-bg2) 0%, transparent 60%),
		radial-gradient(600px 360px at -20% 120%, var(--nh-bg2) 0%, transparent 55%),
		var(--nh-bg);
	box-shadow: 0 24px 60px -30px rgba(0,0,0,.45);
	scroll-margin-top: calc(var(--nhhrf-obt, 0px) + 4px);
	padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px);
}
/* overflow:clip keeps rounded corners without creating a scroll container, so position:sticky (progress bar, action bar) works. */
@supports (overflow: clip) { .nhhrf-app { overflow: clip; } }
.nhhrf-app::before {
	content: ""; position: absolute; inset: 12px; z-index: -1; pointer-events: none; border: 2px solid var(--nh-line); border-radius: 10px; opacity: .22;
	background:
		linear-gradient(var(--nh-line), var(--nh-line)) 50% 0 / 2px 100% no-repeat,
		linear-gradient(var(--nh-line), var(--nh-line)) 0 22% / 100% 2px no-repeat,
		linear-gradient(var(--nh-line), var(--nh-line)) 0 78% / 100% 2px no-repeat;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%, #000 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%, #000 100%);
}
.nhhrf-progress { position: sticky; top: var(--nhhrf-obt, 0px); z-index: 6; height: 5px; background: rgba(255,255,255,.1); }
.nhhrf-progress__bar { display: block; height: 100%; width: 0; background: var(--nh-acc); border-radius: 0 4px 4px 0; transition: width .55s cubic-bezier(.2,.8,.2,1); box-shadow: 0 0 14px var(--nh-acc); }

.nhhrf-top { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px var(--nh-pad) 0; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--nh-dim); min-width: 0; }
.nhhrf-backlink { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; font-weight: 600; letter-spacing: .04em; white-space: nowrap; border: 1px solid var(--nh-line); border-radius: 999px; flex: none; }
.nhhrf .nhhrf-backlink:hover, .nhhrf .nhhrf-backlink:focus-visible { background: var(--nh-acc); color: var(--nh-acc-ink); border-color: transparent; }
.nhhrf-brand { margin-left: auto; min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.nhhrf-stage { position: relative; }
.nhhrf-step {
	position: absolute; top: 0; left: 0; right: 0; display: flex; flex-direction: column; padding: 14px var(--nh-pad) 0;
	opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(36px);
	transition: opacity .38s ease, transform .48s cubic-bezier(.2,.8,.2,1), visibility 0s linear .48s;
}
.nhhrf-step.from-above { transform: translateY(-36px); }
.nhhrf-step.is-active {
	position: relative; opacity: 1; visibility: visible; pointer-events: auto; transform: none;
	transition: opacity .38s ease .06s, transform .48s cubic-bezier(.2,.8,.2,1) .03s, visibility 0s;
	/* fill the visible screen under the progress + top bar */
	min-height: max(360px, calc(var(--nh-avail) - 64px));
}
.nhhrf-step.to-above { opacity: 0; transform: translateY(-48px); visibility: visible; }
.nhhrf-step.to-below { opacity: 0; transform: translateY(48px); visibility: visible; }
.nhhrf-q { position: relative; width: 100%; max-width: 680px; margin: 0 auto; padding-left: var(--nh-indent); display: flex; flex-direction: column; flex: 1 1 auto; }
.nhhrf-q.is-shake { animation: nhhrf-shake .38s; }
@keyframes nhhrf-shake { 20%,60% { transform: translateX(-6px); } 40%,80% { transform: translateX(6px); } }

.nhhrf-qhead { display: block; }
.nhhrf-qnum { display: block; font-size: 14px; font-weight: 700; color: var(--nh-acc); white-space: nowrap; margin-bottom: 4px; }
.nhhrf-title { font-size: clamp(21px, 5.6vw, 32px); font-weight: 600; line-height: 1.22; letter-spacing: -.01em; overflow-wrap: anywhere; hyphens: auto; }
.nhhrf-title em { font-style: normal; color: var(--nh-acc); }
.nhhrf-title:focus { outline: none; }
.nhhrf-title--xl { font-family: var(--nh-serif); font-size: clamp(32px, 9vw, 56px); font-weight: 600; line-height: 1.05; letter-spacing: -.02em; margin: 12px 0 10px; }
.nhhrf-req { color: var(--nh-acc); margin-left: .15em; }
.nhhrf .nhhrf-desc { margin-top: 8px; font-size: clamp(16px, 4.2vw, 19px); color: var(--nh-dim); }
.nhhrf-desc em { font-style: normal; color: var(--nh-ink); font-weight: 600; }
.nhhrf-sub { font-size: 14px; color: var(--nh-dim); margin-bottom: 8px !important; }
.nhhrf .nhhrf-meta { margin-top: 16px; font-size: 14px; color: var(--nh-dim); overflow-wrap: anywhere; }
.nhhrf-welcome__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: var(--nh-acc); color: var(--nh-acc-ink); transform: rotate(-6deg); box-shadow: 0 12px 30px -10px var(--nh-acc); }
.nhhrf-welcome__icon svg { width: 30px; height: 30px; }
.nhhrf-welcome .nhhrf-q, .nhhrf-thanks .nhhrf-q { justify-content: center; }

.nhhrf-fields { margin-top: 22px; display: grid; gap: 20px; min-width: 0; }
.nhhrf-field { min-width: 0; }
.nhhrf .nhhrf-label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--nh-dim); margin-bottom: 4px; line-height: 1.3; }

.nhhrf .nhhrf-input {
	display: block; width: 100%; min-width: 0; max-width: 100%; background: transparent; border: 0; border-bottom: 2px solid rgba(255,255,255,.3); border-radius: 0;
	padding: 8px 2px 10px; font-size: 20px; line-height: 1.3; color: var(--nh-ink); outline: none; height: auto; min-height: 48px;
	-webkit-appearance: none; appearance: none; transition: border-color .2s;
}
.nhhrf .nhhrf-input::placeholder { color: rgba(244,247,239,.34); opacity: 1; }
.nhhrf .nhhrf-input:focus { border-color: transparent; border-bottom-color: var(--nh-acc); box-shadow: 0 2px 0 0 var(--nh-acc); background: transparent; }
.nhhrf .nhhrf-input[type=date] { color-scheme: dark; min-height: 52px; text-align: left; display: flex; align-items: center; }
.nhhrf .nhhrf-input[type=date]::-webkit-date-and-time-value { text-align: left; margin: 0; }
.nhhrf .nhhrf-input[type=date]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: .8; padding: 6px; cursor: pointer; }
.nhhrf .nhhrf-textarea { resize: none; min-height: 52px; font-size: 18px; overflow: auto; }
.nhhrf-selectwrap { position: relative; }
.nhhrf-selectwrap::after { content: ""; position: absolute; right: 10px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--nh-acc); border-bottom: 2px solid var(--nh-acc); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.nhhrf .nhhrf-select { padding-right: 38px; cursor: pointer; text-overflow: ellipsis; }
.nhhrf .nhhrf-select option { color: #10241c; background: #fff; }
.nhhrf-field.is-invalid .nhhrf-input { border-bottom-color: var(--nh-err); }
.nhhrf .nhhrf-suggest { margin-top: 6px; min-height: 44px; font-size: 15px; color: var(--nh-acc); text-decoration: underline; }

.nhhrf-choices { display: grid; gap: 10px; max-width: 520px; min-width: 0; }
.nhhrf-choices--compact { grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); max-width: 640px; }
.nhhrf .nhhrf-choice {
	position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; min-height: 52px; text-align: left; padding: 10px 40px 10px 12px;
	border: 1.5px solid rgba(255,255,255,.28); border-radius: 12px; background: rgba(255,255,255,.06); font-size: 17px; line-height: 1.3; color: var(--nh-ink);
	transition: background .18s, border-color .18s, transform .12s;
}
.nhhrf-choice__label { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.nhhrf .nhhrf-choice:active { transform: scale(.985); }
.nhhrf-key { flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border: 1.5px solid currentColor; border-radius: 6px; font-size: 12px; font-weight: 700; opacity: .8; }
.nhhrf-choice.is-on .nhhrf-key { background: var(--nh-acc); color: var(--nh-acc-ink); border-color: var(--nh-acc); opacity: 1; }
.nhhrf-tick { position: absolute; right: 14px; top: 50%; transform: translateY(-50%) scale(.4); opacity: 0; color: var(--nh-acc); font-weight: 800; transition: .2s; }
.nhhrf-choice.is-on .nhhrf-tick { opacity: 1; transform: translateY(-50%) scale(1); }
.nhhrf-choices--compact .nhhrf .nhhrf-choice, .nhhrf .nhhrf-choices--compact .nhhrf-choice { padding: 10px; gap: 8px; justify-content: flex-start; }
.nhhrf-choices--compact .nhhrf-tick { display: none; }
@keyframes nhhrf-blink { 50% { background: transparent; } }

.nhhrf .nhhrf-check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 16px; line-height: 1.4; max-width: 620px; min-height: 48px; padding: 12px 14px; border-radius: 12px; border: 1.5px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05); transition: border-color .2s, background .2s; position: relative; }
.nhhrf-check input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.nhhrf-check__box { flex: none; display: grid; place-items: center; width: 24px; height: 24px; margin-top: 1px; border-radius: 7px; border: 2px solid rgba(255,255,255,.6); color: transparent; transition: .15s; }
.nhhrf-check__label { min-width: 0; }
.nhhrf-check__agree { display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nh-acc); margin-bottom: 4px; }
.nhhrf-check input:checked + .nhhrf-check__box { background: var(--nh-acc); border-color: var(--nh-acc); color: var(--nh-acc-ink); }
.nhhrf-check input:focus-visible + .nhhrf-check__box { outline: 3px solid var(--nh-acc); outline-offset: 2px; }
.nhhrf-field.is-invalid .nhhrf-check { border-color: var(--nh-err); }

.nhhrf-statement { font-family: var(--nh-serif); font-size: 17px; line-height: 1.6; padding: 14px 16px; border-left: 4px solid var(--nh-acc); background: rgba(255,255,255,.06); border-radius: 4px 12px 12px 4px; }
.nhhrf-statement p + p, .nhhrf-statement ol, .nhhrf-statement ul { margin-top: 10px; }
.nhhrf-statement ol, .nhhrf-statement ul { padding-left: 1.3em; margin-bottom: 0; }
.nhhrf-statement li { margin: 6px 0; }
.nhhrf-statement--scroll { max-height: clamp(180px, 42svh, 440px); overflow: auto; font-size: 15.5px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.nhhrf-statement--scroll::-webkit-scrollbar { width: 8px; } .nhhrf-statement--scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 8px; }
.nhhrf-autodate { display: flex; align-items: baseline; gap: 4px 12px; flex-wrap: wrap; }
.nhhrf-autodate .nhhrf-label { margin: 0; }
.nhhrf-autodate strong { font-size: 17px; }

/* Signature – keeps a fixed aspect ratio so strokes survive resize / rotation without distortion */
.nhhrf-sig { position: relative; width: 100%; max-width: 620px; aspect-ratio: 2 / 1; max-height: 240px; border-radius: 14px; background: #fbfcf8; box-shadow: inset 0 0 0 2px rgba(0,0,0,.06), 0 10px 30px -12px rgba(0,0,0,.6); overflow: hidden; }
@supports not (aspect-ratio: 1) { .nhhrf-sig { height: 170px; } }
.nhhrf-sig__canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; -ms-touch-action: none; cursor: crosshair; display: block; -webkit-user-select: none; user-select: none; }
.nhhrf-sig__line { position: absolute; left: 22px; right: 22px; bottom: 26%; border-bottom: 1.5px dashed #b6c2b8; pointer-events: none; }
.nhhrf-sig__line span { position: absolute; left: 0; bottom: 4px; color: #8a9a8e; font-size: 14px; }
.nhhrf-sig__ph { position: absolute; inset: 0; display: grid; place-items: center; color: #a4b1a7; font-family: var(--nh-serif); font-style: italic; font-size: 24px; pointer-events: none; transition: opacity .2s; }
.nhhrf-sig.has-ink .nhhrf-sig__ph { opacity: 0; }
.nhhrf .nhhrf-sig__clear { position: absolute; right: 4px; top: 4px; min-height: 44px; min-width: 64px; justify-content: center; font-size: 14px; font-weight: 600; color: #234; background: transparent; padding: 0 10px; }
.nhhrf-sig__clear span { background: #e9eee8; padding: 6px 12px; border-radius: 999px; }
.nhhrf-field.is-invalid .nhhrf-sig { box-shadow: inset 0 0 0 2px var(--nh-err); }
.nhhrf-field--signature { display: grid; gap: 12px; scroll-margin-bottom: calc(120px + var(--nhhrf-bottom, 0px) + env(safe-area-inset-bottom, 0px)); }
.nhhrf-field--signature .nhhrf-label { margin-bottom: 0; }

/* Time range + fee */
.nhhrf-timerange { display: grid; grid-template-columns: 1fr; gap: 14px; max-width: 560px; }
.nhhrf-timerange__col { min-width: 0; }
.nhhrf-rangeinfo { margin-top: 4px; min-height: 24px; font-size: 15px; color: var(--nh-dim); }
.nhhrf-rangeinfo b { color: var(--nh-ink); }
.nhhrf-warn { color: var(--nh-err); }
.nhhrf-fee { max-width: 560px; border-radius: 16px; background: rgba(255,255,255,.07); border: 1px solid var(--nh-line); overflow: hidden; }
.nhhrf-fee:empty { display: none; }
.nhhrf-fee__row, .nhhrf-fee__total { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; padding: 11px 16px; border-bottom: 1px solid var(--nh-line); font-size: 15px; }
.nhhrf-fee__row span { color: var(--nh-dim); }
.nhhrf-fee__row b { text-align: right; margin-left: auto; }
.nhhrf-fee__total { border: 0; background: var(--nh-acc); color: var(--nh-acc-ink); font-weight: 700; font-size: 16px; }
.nhhrf-fee__total b { font-size: 22px; margin-left: auto; }

/* Errors */
.nhhrf-err { margin-top: 0; }
.nhhrf-err:not(:empty) { display: inline-flex; gap: 8px; align-items: flex-start; align-self: flex-start; max-width: 100%; margin-top: 14px; padding: 8px 14px; border-radius: 8px; background: #ffe1db; color: #7a1a0b; font-size: 15px; font-weight: 600; line-height: 1.35; animation: nhhrf-pop .25s ease; }
@keyframes nhhrf-pop { from { opacity: 0; transform: translateY(-4px); } }

/* Action bar – sticks to the bottom of the visible screen on phones / short screens so OK is always reachable,
   lifted above the site's fixed bottom bar or the on-screen keyboard (--nhhrf-bottom, set by JS). */
.nhhrf-actions { display: flex; align-items: center; gap: 10px; margin-top: 22px; flex-wrap: nowrap; }
.nhhrf .nhhrf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 22px; border-radius: 12px;
	background: var(--nh-acc); color: var(--nh-acc-ink); font-size: 17px; font-weight: 700; line-height: 1.2; border: 0; text-align: center;
	transition: transform .12s, filter .2s, box-shadow .2s; box-shadow: 0 8px 24px -10px var(--nh-acc); white-space: nowrap;
}
.nhhrf .nhhrf-btn:active { transform: translateY(1px); }
.nhhrf .nhhrf-btn[disabled] { opacity: .55; cursor: default; transform: none; }
.nhhrf .nhhrf-back { display: inline-flex; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 12px; color: var(--nh-ink); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); }
.nhhrf .nhhrf-back svg { width: 22px; height: 22px; }
.nhhrf-hint { font-size: 13px; color: var(--nh-dim); display: none; }
.nhhrf-hint b { font-weight: 700; color: var(--nh-ink); }
.nhhrf-spin { display: none; width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid currentColor; border-right-color: transparent; animation: nhhrf-rot .7s linear infinite; }
.nhhrf-btn.is-loading .nhhrf-spin { display: inline-block; }
@keyframes nhhrf-rot { to { transform: rotate(360deg); } }
.nhhrf-welcome .nhhrf-back, .nhhrf-thanks .nhhrf-back { display: none; }

@media (max-width: 640px), (max-height: 600px) {
	.nhhrf-step:not(.nhhrf-welcome):not(.nhhrf-thanks) .nhhrf-actions {
		position: sticky; z-index: 4; bottom: calc(var(--nhhrf-bottom, 0px) + env(safe-area-inset-bottom, 0px));
		margin: 18px calc(-1 * var(--nh-pad)) 0; padding: 14px var(--nh-pad) 14px;
		background: linear-gradient(to top, var(--nh-bg) 72%, rgba(0,0,0,0));
	}
	.nhhrf-step:not(.nhhrf-welcome):not(.nhhrf-thanks) .nhhrf-actions .nhhrf-btn { flex: 1 1 auto; }
	.nhhrf-step:not(.nhhrf-welcome) .nhhrf-q { flex: 1 1 auto; }
	.nhhrf-step:not(.nhhrf-welcome):not(.nhhrf-thanks) .nhhrf-fields + .nhhrf-err + .nhhrf-actions,
	.nhhrf-reviewstep .nhhrf-actions { margin-top: auto; }
	.nhhrf-nav { display: none !important; }
	.nhhrf-welcome .nhhrf-actions { margin-bottom: 18px; }
}

/* Any size: when the current step is taller than the visible screen, pin the action bar and use the inline Back button. */
.nhhrf-app.is-tall .nhhrf-step.is-active:not(.nhhrf-welcome):not(.nhhrf-thanks) .nhhrf-actions {
	position: sticky; z-index: 4; bottom: calc(var(--nhhrf-bottom, 0px) + env(safe-area-inset-bottom, 0px));
	margin-left: calc(-1 * var(--nh-pad) - var(--nh-indent)); margin-right: calc(-1 * var(--nh-pad)); padding: 14px var(--nh-pad) 14px calc(var(--nh-pad) + var(--nh-indent));
	background: linear-gradient(to top, var(--nh-bg) 72%, rgba(0,0,0,0));
}
.nhhrf-app.is-tall .nhhrf-step.is-active:not(.nhhrf-welcome):not(.nhhrf-thanks) { padding-bottom: 0; }
.nhhrf-app.is-tall .nhhrf-reviewstep.is-active .nhhrf-actions { margin-left: calc(-1 * var(--nh-pad)); padding-left: var(--nh-pad); }
.nhhrf-app.is-tall .nhhrf-nav { display: none; }
.nhhrf.nhhrf-app.is-tall .nhhrf-back { display: inline-flex; }

/* Desktop arrow nav (hidden on phones; phones get the Back button in the action bar) */
.nhhrf-nav { position: absolute; right: 22px; bottom: 22px; z-index: 3; display: flex; border-radius: 10px; overflow: hidden; background: var(--nh-acc); box-shadow: 0 8px 22px -12px #000; transition: opacity .3s; }
.nhhrf-app:not(.is-started) .nhhrf-nav, .nhhrf-app.is-done .nhhrf-nav { opacity: 0; pointer-events: none; }
.nhhrf .nhhrf-nav__btn { width: 44px; height: 44px; justify-content: center; color: var(--nh-acc-ink); font-size: 18px; font-weight: 800; }
.nhhrf .nhhrf-nav__btn + .nhhrf-nav__btn { border-left: 1px solid rgba(0,0,0,.15); }
.nhhrf .nhhrf-nav__btn[disabled] { opacity: .35; cursor: default; }

/* Review */
.nhhrf-review { margin-top: 16px; border-top: 1px solid var(--nh-line); }
.nhhrf-review__row { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--nh-line); font-size: 15.5px; }
.nhhrf-review__k { grid-column: 1 / -1; color: var(--nh-dim); font-size: 13px; }
.nhhrf-review__v { font-weight: 600; overflow-wrap: anywhere; min-width: 0; }
.nhhrf .nhhrf-review__edit { justify-content: center; min-width: 52px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--nh-acc); padding: 0 8px; border-radius: 8px; }

/* Thanks */
.nhhrf-check-anim svg { width: 72px; height: 72px; fill: none; stroke: var(--nh-acc); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.nhhrf-check-anim circle { stroke-dasharray: 152; stroke-dashoffset: 152; animation: nhhrf-draw .7s ease forwards; }
.nhhrf-check-anim path { stroke-dasharray: 40; stroke-dashoffset: 40; animation: nhhrf-draw .45s .55s ease forwards; }
@keyframes nhhrf-draw { to { stroke-dashoffset: 0; } }
.nhhrf-thanks .nhhrf-fee { margin-top: 18px; }
.nhhrf-thanks .nhhrf-desc { margin-top: 12px; }
.nhhrf-thanks .nhhrf-meta { margin-top: 20px; margin-bottom: 18px; }

.nhhrf-hp { position: absolute !important; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nhhrf-noscript { padding: 20px; }

/* ---------- Interaction states (explicit so theme :hover/:focus pink buttons never leak in) ---------- */
.nhhrf .nhhrf-btn:is(:hover, :focus, :active) { background: var(--nh-acc); color: var(--nh-acc-ink); border: 0; text-decoration: none; }
.nhhrf .nhhrf-ok--quiet, .nhhrf .nhhrf-ok--quiet:is(:hover, :focus, :active) { background: transparent; color: var(--nh-ink); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.35); }
.nhhrf .nhhrf-choice:is(:hover, :focus, :active) { background: rgba(255,255,255,.06); color: var(--nh-ink); border-color: rgba(255,255,255,.28); }
.nhhrf .nhhrf-choice.is-on, .nhhrf .nhhrf-choice.is-on:is(:hover, :focus, :active) { background: rgba(255,255,255,.12); background: color-mix(in srgb, var(--nh-acc) 22%, transparent); border-color: var(--nh-acc); }
.nhhrf .nhhrf-choice.is-blink { animation: nhhrf-blink .4s steps(2) 1; }
.nhhrf .nhhrf-back:is(:hover, :focus, :active), .nhhrf .nhhrf-review__edit:is(:hover, :focus, :active), .nhhrf .nhhrf-suggest:is(:hover, :focus, :active),
.nhhrf .nhhrf-sig__clear:is(:hover, :focus, :active), .nhhrf .nhhrf-modal__x:is(:hover, :focus, :active) { background: transparent; border: 0; text-decoration: none; }
.nhhrf .nhhrf-back:is(:hover, :focus, :active) { color: var(--nh-ink); }
.nhhrf .nhhrf-review__edit:is(:hover, :focus, :active), .nhhrf .nhhrf-suggest:is(:hover, :focus, :active) { color: var(--nh-acc); }
.nhhrf .nhhrf-sig__clear:is(:hover, :focus, :active) { color: #234; }
.nhhrf .nhhrf-nav__btn, .nhhrf .nhhrf-nav__btn:is(:hover, :focus, :active) { background: transparent; color: var(--nh-acc-ink); border: 0; }
@media (hover: hover) and (pointer: fine) {
	.nhhrf .nhhrf-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
	.nhhrf .nhhrf-choice:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.5); }
	.nhhrf .nhhrf-check:hover { border-color: rgba(255,255,255,.45); }
	.nhhrf .nhhrf-review__edit:hover, .nhhrf .nhhrf-back:hover { background: rgba(255,255,255,.08); }
	.nhhrf .nhhrf-sig__clear:hover span { background: #dfe6dd; }
	.nhhrf .nhhrf-nav__btn:hover { background: rgba(0,0,0,.08); }
}

/* ================= Hub ================= */
.nhhrf-hub { --nh-ink: #10241c; --nh-dim: #53645b; max-width: 1180px; margin: 0 auto; padding: 4px 0 24px; color: var(--nh-ink); }
.nhhrf-hub__head { margin-bottom: 22px; }
.nhhrf .nhhrf-hub__title { font-family: var(--nh-serif); font-size: clamp(34px, 9vw, 60px); line-height: 1.04; letter-spacing: -.02em; margin: 0 0 8px; color: #0d3328; }
.nhhrf .nhhrf-hub__sub { font-size: 17px; color: var(--nh-dim); max-width: 640px; }
.nhhrf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 14px; }
.nhhrf .nhhrf-card {
	position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-height: 0; padding: 18px; border-radius: 18px; text-align: left; overflow: hidden; isolation: isolate;
	background: var(--nh-bg); color: #f4f7ef; box-shadow: 0 18px 40px -24px rgba(0,0,0,.55); transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; width: 100%;
	border: 0; font-size: 16px; white-space: normal;
}
.nhhrf .nhhrf-card:is(:hover, :focus, :active) { background: var(--nh-bg); color: #f4f7ef; text-decoration: none; }
.nhhrf .nhhrf-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(420px 220px at 100% 0%, var(--nh-bg2), transparent 70%); }
.nhhrf .nhhrf-card::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; border-radius: 50%; border: 2px solid rgba(255,255,255,.12); z-index: -1; transition: transform .4s; }
.nhhrf-card__num { font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--nh-acc); }
.nhhrf-card__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--nh-acc); color: var(--nh-acc-ink); }
.nhhrf-card__title { font-size: 20px; font-weight: 700; line-height: 1.2; margin-top: 2px; }
.nhhrf-card__desc { font-size: 15px; color: rgba(244,247,239,.75); flex: 1; }
.nhhrf-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 36px; font-size: 14px; color: rgba(244,247,239,.72); padding-top: 10px; border-top: 1px solid rgba(255,255,255,.12); }
.nhhrf-card__go { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--nh-acc); }
.nhhrf-card__go svg { width: 18px; height: 18px; transition: transform .25s; }
.nhhrf .nhhrf-card--pending, .nhhrf .nhhrf-card--pending:is(:hover, :focus, :active) { --nh-bg: #eef2ea; --nh-bg2: #e3ead9; --nh-acc: #0d3328; --nh-acc-ink: #d7f25b; background: #eef2ea; color: #10241c; border: 2px dashed #b9c8b4; box-shadow: none; }
.nhhrf-card--pending .nhhrf-card__desc, .nhhrf-card--pending .nhhrf-card__foot { color: #53645b; border-color: #d3ddcd; }
.nhhrf-pill { display: inline-block; padding: 4px 10px; border-radius: 999px; background: #0d3328; color: #d7f25b; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
@media (hover: hover) and (pointer: fine) {
	.nhhrf .nhhrf-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(0,0,0,.6); }
	.nhhrf .nhhrf-card:hover::after { transform: scale(1.25); }
	.nhhrf .nhhrf-card:hover .nhhrf-card__go svg { transform: translateX(4px); }
}

/* Modal */
.nhhrf-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); overscroll-behavior: contain; }
.nhhrf-modal[hidden] { display: none; }
.nhhrf-modal__backdrop { position: absolute; inset: 0; background: rgba(8,22,17,.6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); opacity: 0; transition: opacity .22s; }
.nhhrf-modal__box { position: relative; width: min(440px, 100%); max-height: calc(100% - 8px); overflow: auto; background: #fff; color: #10241c; border-radius: 20px; padding: 28px 22px 22px; text-align: center; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); transform: translateY(20px) scale(.96); opacity: 0; transition: .25s cubic-bezier(.2,.8,.2,1); outline: none; --nh-acc: #d7f25b; --nh-acc-ink: #10241c; }
.nhhrf-modal.is-open .nhhrf-modal__backdrop { opacity: 1; }
.nhhrf-modal.is-open .nhhrf-modal__box { transform: none; opacity: 1; }
.nhhrf-modal__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #0d3328; color: #d7f25b; margin-bottom: 10px; }
.nhhrf .nhhrf-modal__title { font-family: var(--nh-serif); font-size: 26px; margin-bottom: 8px; }
.nhhrf .nhhrf-modal__text { color: #53645b; font-size: 16px; margin-bottom: 18px; }
.nhhrf .nhhrf-modal__box .nhhrf-btn { width: 100%; }
.nhhrf .nhhrf-modal__x { position: absolute; right: 6px; top: 6px; width: 44px; height: 44px; justify-content: center; font-size: 28px; line-height: 1; color: #53645b; }

/* ================= Larger screens ================= */
@media (min-width: 360px) {
	.nhhrf-timerange { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 481px) {
	.nhhrf-top { font-size: 12px; padding-top: 14px; }
	.nhhrf-sig { aspect-ratio: 3 / 1; }
	.nhhrf-review__row { grid-template-columns: minmax(110px, 36%) 1fr auto; padding: 6px 0; }
	.nhhrf-review__k { grid-column: auto; font-size: 15px; }
	.nhhrf .nhhrf-modal__box { padding: 32px 30px 26px; }
	.nhhrf .nhhrf-modal__box .nhhrf-btn { width: auto; }
}
@media (min-width: 641px) and (min-height: 601px) {
	.nhhrf { --nh-pad: 28px; --nh-indent: 50px; }
	.nhhrf-app { border-radius: 22px; min-height: min(640px, 92vh); box-shadow: 0 30px 80px -30px rgba(0,0,0,.45); }
	.nhhrf-app::before { inset: 22px; opacity: .55; }
	.nhhrf-top { padding: 22px var(--nh-pad) 0; font-size: 13px; }
	.nhhrf-step { padding: 34px var(--nh-pad) 96px; }
	.nhhrf-step.is-active { min-height: min(560px, 80vh); justify-content: center; }
	.nhhrf-q { flex: 0 0 auto; }
	.nhhrf-qnum { position: absolute; left: 0; top: .45em; width: 38px; margin: 0; font-size: 15px; }
	.nhhrf-welcome .nhhrf-q, .nhhrf-thanks .nhhrf-q, .nhhrf-reviewstep .nhhrf-q { padding-left: 0; }
	.nhhrf-reviewstep .nhhrf-qnum { position: static; display: inline; margin-right: 10px; }
	.nhhrf-reviewstep .nhhrf-qhead { display: flex; align-items: baseline; }
	.nhhrf-welcome__icon { width: 64px; height: 64px; border-radius: 18px; }
	.nhhrf-welcome__icon svg { width: 34px; height: 34px; }
	.nhhrf-fields { margin-top: 26px; gap: 22px; }
	.nhhrf .nhhrf-input { font-size: clamp(22px, 2.6vw, 28px); }
	.nhhrf .nhhrf-textarea { font-size: 21px; }
	.nhhrf .nhhrf-choice { font-size: 18px; padding: 12px 44px 12px 12px; }
	.nhhrf-statement { font-size: 19px; padding: 18px 20px; }
	.nhhrf-actions { margin-top: 26px; gap: 14px; flex-wrap: wrap; }
	.nhhrf .nhhrf-btn { font-size: 18px; }
	.nhhrf .nhhrf-back { display: none; }
	.nhhrf-hint { display: inline; }
	.nhhrf-review { max-height: 44vh; overflow: auto; }
	.nhhrf-fee__row, .nhhrf-fee__total { padding: 12px 18px; font-size: 16px; }
	.nhhrf-fee__total { font-size: 18px; } .nhhrf-fee__total b { font-size: 24px; }
	.nhhrf-hub__head { margin-bottom: 28px; }
	.nhhrf-grid { gap: 18px; }
	.nhhrf .nhhrf-card { min-height: 240px; padding: 22px; border-radius: 20px; gap: 10px; }
	.nhhrf-card__icon { width: 48px; height: 48px; border-radius: 14px; }
	.nhhrf-card__title { font-size: 22px; }
	.nhhrf .nhhrf-hub__sub { font-size: 18px; }
}
/* Short landscape screens (phones turned sideways) */
@media (max-height: 600px) and (orientation: landscape) {
	.nhhrf { --nh-pad: 22px; }
	.nhhrf-step { padding-top: 8px; }
	.nhhrf-step.is-active { min-height: max(240px, calc(var(--nh-avail) - 58px)); }
	.nhhrf-title { font-size: 21px; }
	.nhhrf-title--xl { font-size: 30px; margin: 6px 0; }
	.nhhrf-welcome__icon { width: 40px; height: 40px; border-radius: 12px; }
	.nhhrf-welcome__icon svg { width: 22px; height: 22px; }
	.nhhrf .nhhrf-desc { font-size: 15px; margin-top: 4px; }
	.nhhrf-fields { margin-top: 12px; gap: 12px; }
	.nhhrf-sig { aspect-ratio: 7 / 2; max-height: 150px; }
	.nhhrf-statement--scroll { max-height: 40svh; }
	.nhhrf-choices:not(.nhhrf-choices--compact) { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); max-width: none; }
	.nhhrf-actions { margin-top: 12px; }
	.nhhrf-step:not(.nhhrf-welcome):not(.nhhrf-thanks) .nhhrf-actions { padding-top: 8px; padding-bottom: 8px; }
	.nhhrf-welcome .nhhrf-actions { margin-bottom: 10px; }
	.nhhrf .nhhrf-meta { margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
	.nhhrf *, .nhhrf *::before, .nhhrf *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- v1.0.8: section progress, kicker, review groups, templated text ---------- */
.nhhrf-secnav { position: relative; z-index: 2; padding: 8px var(--nh-pad) 0; }
.nhhrf-secnav[hidden], .nhhrf-secnav li[hidden], .nhhrf-field[hidden] { display: none !important; }
.nhhrf-secnav ol { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.nhhrf-secnav li { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 10px; background: rgba(255,255,255,.06); border: 1px solid var(--nh-line); font-size: 11.5px; line-height: 1.2; color: var(--nh-dim); transition: background .3s, color .3s, border-color .3s; }
.nhhrf-secnav__n { flex: none; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 11px; font-weight: 700; }
.nhhrf-secnav__t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nhhrf-secnav li.is-current { color: var(--nh-ink); border-color: var(--nh-acc); background: rgba(255,255,255,.12); }
.nhhrf-secnav li.is-current .nhhrf-secnav__n { background: var(--nh-acc); border-color: var(--nh-acc); color: var(--nh-acc-ink); }
.nhhrf-secnav li.is-done { color: var(--nh-ink); }
.nhhrf-secnav li.is-done .nhhrf-secnav__n { background: rgba(255,255,255,.18); border-color: transparent; }
.nhhrf-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nh-acc); margin-bottom: 6px !important; }
.nhhrf-header { font-family: var(--nh-serif); font-size: 15px; font-style: italic; color: var(--nh-dim); margin-bottom: 8px !important; }
.nhhrf-statement h3 { margin: 0 0 8px; padding: 0; font-family: var(--nh-font); font-size: 13px; font-weight: 800; letter-spacing: .06em; color: var(--nh-acc); text-transform: none; }
.nhhrf-statement .nhhrf-fill { color: var(--nh-acc); }
.nhhrf-statement .nhhrf-blank { opacity: .6; }
.nhhrf-field--statement .nhhrf-footline { font-family: var(--nh-font); font-size: 12px; color: var(--nh-dim); text-align: center; }
.nhhrf-field--statement:has(.nhhrf-footline) .nhhrf-statement, .nhhrf-field--statement:has(.nhhrf-secure) .nhhrf-statement { border-left: 0; background: transparent; padding: 4px 0; font-size: 14px; }
.nhhrf-secure { font-family: var(--nh-font); font-size: 14px; line-height: 1.45; }
.nhhrf-review__sec { margin-top: 14px; padding: 8px 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--nh-acc); border-bottom: 2px solid var(--nh-acc); }
.nhhrf-review__sec:first-child { margin-top: 4px; }
@media (max-width: 420px) {
	.nhhrf-secnav li { padding: 5px 6px; gap: 4px; font-size: 10.5px; }
	.nhhrf-secnav li:not(.is-current) .nhhrf-secnav__t { display: none; }
	.nhhrf-secnav li:not(.is-current) { flex: 0 0 auto; }
}
@media (min-width: 768px) {
	.nhhrf-secnav { padding-top: 12px; }
	.nhhrf-secnav li { font-size: 12.5px; padding: 8px 10px; }
	.nhhrf-kicker { font-size: 12.5px; }
}

/* v1.0.8: single date-and-time stamp (America/New_York), shown read-only */
.nhhrf-autodatetime { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.nhhrf-autodate__tz { font-size: 11.5px; font-weight: 600; letter-spacing: .04em; color: var(--nh-dim); text-transform: uppercase; }
.nhhrf-choice[hidden] { display: none !important; }

/* ---------- v1.0.10: cancellation computed last-payment, welcome quote, multi cap ---------- */
.nhhrf-welcome__quote {
	font-family: var(--nh-serif); font-size: 16px; font-style: italic; color: var(--nh-dim);
	margin: 4px 0 12px; max-width: 34em; line-height: 1.45;
}
.nhhrf-computed {
	padding: 10px 0 6px;
}
.nhhrf-computed strong {
	display: block; font-family: var(--nh-serif); font-size: clamp(26px, 5vw, 36px);
	font-weight: 700; line-height: 1.2; color: var(--nh-ink);
}
.nhhrf-choice.is-disabled {
	opacity: .4; pointer-events: none;
}
