:root {
	--nb-red: #d71920;
	--nb-red-dark: #a70d13;
	--nb-red-soft: #fff1f2;
	--nb-ink: #171b26;
	--nb-muted: #687080;
	--nb-line: #e8e9ed;
	--nb-surface: #ffffff;
	--nb-surface-alt: #fafafb;
	--nb-green: #16824d;
	--nb-shadow: 0 18px 45px rgba(30, 17, 18, 0.08);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 88px;
}

body {
	margin: 0;
	color: var(--nb-ink);
	background: #fff;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
}

body.admin-bar .nb-site-header {
	top: 32px;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
}

.nb-container {
	width: min(1160px, calc(100% - 36px));
	margin-inline: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.nb-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(232, 233, 237, 0.9);
	background: rgba(255, 255, 255, 0.93);
	backdrop-filter: blur(15px);
}

.nb-nav {
	min-height: 76px;
	display: flex;
	align-items: center;
	gap: 30px;
}

.nb-brand {
	margin-right: auto;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.nb-logo-mark {
	width: 41px;
	height: 41px;
	display: grid;
	place-items: center;
	color: #fff;
	background: var(--nb-red);
	border-radius: 55% 45% 58% 42% / 65% 45% 55% 35%;
	transform: rotate(45deg);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 9px 22px rgba(215, 25, 32, 0.24);
}

.nb-logo-mark > span {
	transform: rotate(-45deg);
}

.nb-custom-logo .custom-logo-link {
	display: block;
}

.nb-custom-logo img {
	display: block;
	width: auto;
	max-height: 48px;
}

.nb-brand-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.nb-brand strong {
	font-size: 19px;
	letter-spacing: -0.04em;
}

.nb-brand strong span {
	color: var(--nb-red);
}

.nb-brand small {
	margin-top: 4px;
	color: var(--nb-muted);
	font-size: 10px;
}

.nb-primary-nav {
	display: flex;
	align-items: center;
	gap: 23px;
	font-size: 14px;
	font-weight: 700;
}

.nb-primary-nav a:hover {
	color: var(--nb-red);
}

.nb-menu-toggle {
	display: none;
	width: 42px;
	height: 42px;
	padding: 10px;
	border: 0;
	border-radius: 10px;
	background: var(--nb-red-soft);
}

.nb-menu-toggle > span {
	display: block;
	height: 2px;
	margin: 4px 0;
	background: var(--nb-red);
}

.nb-button {
	min-height: 49px;
	padding: 0 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--nb-red);
	border-radius: 11px;
	color: #fff;
	background: linear-gradient(135deg, #e3262d, #c80e15);
	box-shadow: 0 10px 24px rgba(215, 25, 32, 0.18);
	font-weight: 800;
	cursor: pointer;
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.nb-button:hover {
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 15px 30px rgba(215, 25, 32, 0.23);
}

.nb-button:disabled {
	cursor: wait;
	opacity: 0.66;
}

.nb-button-small {
	min-height: 42px;
	padding-inline: 16px;
	font-size: 13px;
}

.nb-button-outline {
	color: var(--nb-red);
	background: #fff;
	box-shadow: none;
}

.nb-button-outline:hover {
	color: var(--nb-red);
}

.nb-full {
	width: 100%;
}

.nb-eyebrow {
	display: inline-block;
	color: var(--nb-red);
	font-size: 12px;
	font-weight: 850;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.nb-hero {
	overflow: hidden;
	border-bottom: 1px solid #f4e4e5;
	background:
		radial-gradient(circle at 81% 28%, rgba(255, 207, 210, 0.58), transparent 24%),
		linear-gradient(135deg, #fff 0%, #fff 48%, #fff3f4 100%);
}

.nb-hero-grid {
	min-height: 610px;
	padding-block: 70px 62px;
	display: grid;
	grid-template-columns: 1.02fr 0.98fr;
	align-items: center;
	gap: 45px;
}

.nb-hero h1 {
	margin: 14px 0 23px;
	font-size: clamp(53px, 6vw, 79px);
	line-height: 0.98;
	letter-spacing: -0.06em;
}

.nb-hero h1 span {
	color: var(--nb-red);
}

.nb-hero-copy > p {
	max-width: 600px;
	color: var(--nb-muted);
	font-size: 18px;
}

.nb-hero-actions {
	margin: 30px 0 36px;
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
}

.nb-trust-row {
	max-width: 610px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 15px;
}

.nb-trust-row div {
	padding-left: 13px;
	border-left: 3px solid #ffd1d4;
}

.nb-trust-row strong,
.nb-trust-row span {
	display: block;
}

.nb-trust-row strong {
	font-size: 14px;
}

.nb-trust-row span {
	margin-top: 2px;
	color: var(--nb-muted);
	font-size: 12px;
}

.nb-hero-art {
	min-height: 470px;
	position: relative;
	display: grid;
	place-items: center;
}

.nb-large-drop {
	position: relative;
	z-index: 4;
	width: min(330px, 68vw);
	aspect-ratio: 1 / 1.16;
	display: grid;
	place-items: center;
	color: #fff;
	background: linear-gradient(145deg, #fa3239 15%, #bb080f 78%);
	border-radius: 58% 42% 61% 39% / 70% 46% 54% 30%;
	transform: rotate(45deg);
	box-shadow:
		inset 24px 24px 42px rgba(255, 255, 255, 0.16),
		inset -30px -30px 42px rgba(101, 0, 4, 0.22),
		0 38px 70px rgba(168, 15, 21, 0.28);
	font-size: 110px;
	font-weight: 250;
	line-height: 1;
}

.nb-large-drop > span {
	transform: rotate(-45deg);
}

.nb-hero-ring {
	position: absolute;
	border: 1px dashed rgba(215, 25, 32, 0.27);
	border-radius: 50%;
}

.nb-ring-one {
	inset: 35px;
}

.nb-ring-two {
	inset: 0;
	opacity: 0.55;
}

.nb-floating {
	position: absolute;
	z-index: 6;
	width: 62px;
	height: 62px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: var(--nb-red);
	background: #fff;
	box-shadow: 0 14px 35px rgba(94, 24, 26, 0.14);
	font-size: 18px;
	font-weight: 900;
}

.nb-blood-badge {
	left: 7%;
	top: 17%;
}

.nb-heart-badge {
	left: 13%;
	bottom: 13%;
}

.nb-pin-badge {
	right: 3%;
	top: 32%;
}

.nb-workflow {
	padding: 72px 0;
	background: var(--nb-surface-alt);
}

.nb-workflow-grid {
	display: grid;
	grid-template-columns: 1fr 0.84fr;
	gap: 26px;
	align-items: start;
}

.nb-panel {
	padding: 30px;
	border: 1px solid var(--nb-line);
	border-radius: 22px;
	background: var(--nb-surface);
	box-shadow: var(--nb-shadow);
}

.nb-finder-panel {
	position: sticky;
	top: 101px;
}

.admin-bar .nb-finder-panel {
	top: 133px;
}

.nb-panel-heading {
	margin-bottom: 25px;
	display: flex;
	gap: 15px;
}

.nb-panel-icon {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 23px;
}

.nb-panel h2,
.nb-section-heading h2,
.nb-center-heading h2,
.nb-safety h2 {
	margin: 3px 0 6px;
	font-size: clamp(28px, 3vw, 39px);
	line-height: 1.1;
	letter-spacing: -0.04em;
}

.nb-panel h2 {
	font-size: 29px;
}

.nb-panel-heading p {
	margin: 0;
	color: var(--nb-muted);
}

.nb-form {
	display: grid;
	gap: 17px;
}

.nb-field-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.nb-form label,
.nb-form legend {
	color: #303644;
	font-size: 13px;
	font-weight: 750;
}

.nb-form input,
.nb-form select {
	width: 100%;
	min-height: 49px;
	margin-top: 7px;
	padding: 0 13px;
	border: 1px solid #dfe2e7;
	border-radius: 10px;
	color: var(--nb-ink);
	background: #fff;
	outline: none;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

.nb-form input:focus,
.nb-form select:focus {
	border-color: var(--nb-red);
	box-shadow: 0 0 0 4px rgba(215, 25, 32, 0.09);
}

.nb-form input::placeholder {
	color: #a1a7b1;
}

.nb-form fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.nb-form legend {
	margin-bottom: 9px;
}

.nb-honeypot {
	position: absolute !important;
	left: -99999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.nb-availability-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.nb-choice-card {
	min-height: 79px;
	padding: 14px;
	display: flex;
	align-items: center;
	border: 1px solid #dfe2e7;
	border-radius: 12px;
	cursor: pointer;
}

.nb-choice-card:has(input:checked) {
	border-color: var(--nb-red);
	background: var(--nb-red-soft);
}

.nb-choice-card input {
	flex: 0 0 auto;
	width: 18px;
	min-height: 18px;
	margin: 0 11px 0 0;
	accent-color: var(--nb-red);
}

.nb-choice-card strong,
.nb-choice-card small {
	display: block;
}

.nb-choice-card strong {
	color: var(--nb-red);
	font-size: 15px;
}

.nb-choice-card small {
	margin-top: 2px;
	color: var(--nb-muted);
	font-weight: 500;
}

.nb-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--nb-muted) !important;
	font-weight: 520 !important;
	line-height: 1.45;
}

.nb-consent input {
	flex: 0 0 auto;
	width: 17px;
	min-height: 17px;
	margin: 2px 0 0;
	accent-color: var(--nb-red);
}

.nb-form-note {
	margin: -7px 0 0;
	color: var(--nb-muted);
	font-size: 12px;
	text-align: center;
}

.nb-notice {
	display: none;
	padding: 11px 13px;
	border-radius: 10px;
	font-size: 13px;
}

.nb-notice.is-success {
	display: block;
	color: var(--nb-green);
	border: 1px solid #b7ebcd;
	background: #ecfdf3;
}

.nb-notice.is-error {
	display: block;
	color: #b42318;
	border: 1px solid #ffc7c3;
	background: #fff1f0;
}

.nb-privacy-card {
	margin-top: 20px;
	padding: 18px;
	border: 1px solid var(--nb-line);
	border-radius: 14px;
	background: #f6f7f9;
}

.nb-privacy-card strong {
	font-size: 14px;
}

.nb-privacy-card p {
	margin: 6px 0 0;
	color: var(--nb-muted);
	font-size: 13px;
}

.nb-results {
	padding: 70px 0 86px;
}

.nb-section-heading {
	margin-bottom: 24px;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
}

.nb-count {
	padding: 8px 13px;
	border: 1px solid var(--nb-line);
	border-radius: 999px;
	color: var(--nb-muted);
	background: #f5f6f8;
	font-size: 12px;
	font-weight: 750;
}

.nb-empty-state {
	min-height: 270px;
	padding: 30px;
	display: grid;
	place-items: center;
	align-content: center;
	border: 1px dashed #d9dde3;
	border-radius: 22px;
	background: #fcfcfd;
	text-align: center;
}

.nb-empty-state > span {
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	border-radius: 18px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 27px;
}

.nb-empty-state h3 {
	margin: 15px 0 5px;
}

.nb-empty-state p {
	margin: 0;
	color: var(--nb-muted);
}

.nb-donor-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.nb-donor-card {
	padding: 20px;
	border: 1px solid var(--nb-line);
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(16, 24, 40, 0.055);
}

.nb-donor-top {
	display: flex;
	align-items: center;
	gap: 13px;
}

.nb-avatar {
	width: 45px;
	height: 45px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-weight: 900;
}

.nb-donor-top h3 {
	margin: 0;
	font-size: 17px;
}

.nb-donor-top p {
	margin: 2px 0 0;
	color: var(--nb-muted);
	font-size: 12px;
}

.nb-blood-chip {
	min-width: 47px;
	min-height: 35px;
	margin-left: auto;
	display: grid;
	place-items: center;
	border-radius: 10px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-weight: 900;
}

.nb-donor-meta {
	margin: 18px 0;
	display: grid;
	gap: 9px;
}

.nb-donor-meta div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 13px;
}

.nb-donor-meta span:first-child {
	color: var(--nb-muted);
}

.nb-donor-meta span:last-child {
	text-align: right;
	font-weight: 700;
}

.nb-active-status {
	margin: 0 0 14px;
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--nb-green);
	font-size: 12px;
	font-weight: 800;
}

.nb-active-status span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #23a566;
	box-shadow: 0 0 0 4px rgba(35, 165, 102, 0.12);
}

.nb-outline-action {
	width: 100%;
	min-height: 42px;
	border: 1px solid #efa4a7;
	border-radius: 9px;
	color: var(--nb-red);
	background: #fff;
	font-weight: 800;
	cursor: pointer;
}

.nb-outline-action:hover {
	background: var(--nb-red-soft);
}

.nb-process {
	padding: 78px 0;
	border-top: 1px solid #fae7e8;
	background: linear-gradient(180deg, #fff8f8, #fff);
}

.nb-center-heading {
	margin-bottom: 39px;
	text-align: center;
}

.nb-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.nb-steps article {
	position: relative;
	padding: 30px 25px;
	border: 1px solid var(--nb-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 13px 36px rgba(48, 24, 24, 0.055);
	text-align: center;
}

.nb-step-number {
	position: absolute;
	top: -13px;
	left: calc(50% - 13px);
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: var(--nb-red);
	font-size: 12px;
	font-weight: 900;
}

.nb-step-icon {
	width: 58px;
	height: 58px;
	margin: 0 auto 13px;
	display: grid;
	place-items: center;
	border-radius: 18px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 25px;
}

.nb-steps h3 {
	margin: 0 0 5px;
}

.nb-steps p {
	margin: 0;
	color: var(--nb-muted);
	font-size: 14px;
}

.nb-safety {
	padding: 72px 0;
	color: #fff;
	background: #181a20;
}

.nb-safety-grid {
	display: grid;
	grid-template-columns: 1fr 0.8fr;
	gap: 70px;
	align-items: center;
}

.nb-safety p {
	max-width: 670px;
	color: #bdc1ca;
}

.nb-safety-list {
	display: grid;
	gap: 14px;
}

.nb-safety-list div {
	padding: 14px 16px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.055);
}

.nb-footer {
	color: #f8eaeb;
	background: linear-gradient(145deg, #a70a10, #cb1118);
}

.nb-footer-grid {
	padding: 56px 0 40px;
	display: grid;
	grid-template-columns: 1.25fr 0.58fr 0.58fr 0.72fr;
	gap: 70px;
}

.nb-footer-brand .nb-logo-mark {
	color: var(--nb-red);
	background: #fff;
}

.nb-footer-brand strong,
.nb-footer-brand small {
	color: #fff;
}

.nb-footer-grid p {
	max-width: 380px;
	color: #f3c8ca;
	font-size: 14px;
}

.nb-footer-links {
	display: flex;
	flex-direction: column;
	gap: 9px;
	font-size: 14px;
}

.nb-footer-links > strong {
	margin-bottom: 5px;
	color: #fff;
}

.nb-footer-links a:hover {
	text-decoration: underline;
}

.nb-footer-bottom {
	padding: 18px 0 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	color: #efc3c5;
	font-size: 12px;
}

.nb-modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 100;
	padding: 18px;
	display: grid;
	place-items: center;
	background: rgba(10, 12, 18, 0.6);
	backdrop-filter: blur(5px);
}

.nb-modal-backdrop[hidden] {
	display: none;
}

.nb-modal {
	position: relative;
	width: min(520px, 100%);
	max-height: calc(100vh - 36px);
	overflow: auto;
	padding: 28px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 30px 90px rgba(0, 0, 0, 0.28);
}

.nb-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 35px;
	height: 35px;
	border: 0;
	border-radius: 50%;
	background: #f3f4f6;
	font-size: 22px;
	cursor: pointer;
}

.nb-modal h2 {
	margin: 4px 0 0;
	font-size: 31px;
	letter-spacing: -0.04em;
}

.nb-modal-blood {
	width: 56px;
	height: 44px;
	margin-top: 17px;
	display: grid;
	place-items: center;
	border-radius: 12px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 20px;
	font-weight: 900;
}

.nb-detail-list {
	margin: 20px 0;
	overflow: hidden;
	display: grid;
	border: 1px solid var(--nb-line);
	border-radius: 13px;
}

.nb-detail-list div {
	padding: 12px 14px;
	display: grid;
	grid-template-columns: 135px 1fr;
	gap: 14px;
	border-bottom: 1px solid var(--nb-line);
	font-size: 14px;
}

.nb-detail-list div:last-child {
	border-bottom: 0;
}

.nb-detail-list dt {
	color: var(--nb-muted);
}

.nb-detail-list dd {
	margin: 0;
	font-weight: 750;
	word-break: break-word;
}

.nb-basic-content {
	min-height: 70vh;
	padding: 70px 0;
	background: #fafafb;
}

.nb-content-card {
	padding: 32px;
	border: 1px solid var(--nb-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--nb-shadow);
}

.nb-content-card h1 {
	margin-top: 0;
	font-size: clamp(34px, 5vw, 56px);
	letter-spacing: -0.045em;
}

@media (max-width: 980px) {
	.nb-primary-nav {
		display: none;
		position: absolute;
		top: 70px;
		left: 18px;
		right: 18px;
		padding: 12px;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		border: 1px solid var(--nb-line);
		border-radius: 15px;
		background: #fff;
		box-shadow: var(--nb-shadow);
	}

	.nb-primary-nav.is-open {
		display: flex;
	}

	.nb-primary-nav a {
		padding: 12px;
		border-radius: 9px;
	}

	.nb-primary-nav a:hover {
		background: var(--nb-red-soft);
	}

	.nb-menu-toggle {
		display: block;
		order: 3;
	}

	.nb-nav-cta {
		margin-left: auto;
	}

	.nb-brand {
		margin-right: 0;
	}

	.nb-hero-grid {
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}

	.nb-workflow-grid {
		grid-template-columns: 1fr;
	}

	.nb-finder-panel,
	.admin-bar .nb-finder-panel {
		position: static;
	}

	.nb-donor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 782px) {
	body.admin-bar .nb-site-header {
		top: 46px;
	}
}

@media (max-width: 760px) {
	.nb-nav-cta {
		display: none;
	}

	.nb-brand {
		margin-right: auto;
	}

	.nb-hero-grid {
		min-height: auto;
		grid-template-columns: 1fr;
		padding-block: 57px;
	}

	.nb-hero-copy {
		text-align: center;
	}

	.nb-hero-copy > p {
		margin-inline: auto;
	}

	.nb-hero-actions {
		justify-content: center;
	}

	.nb-trust-row {
		margin-inline: auto;
		text-align: left;
	}

	.nb-hero-art {
		min-height: 390px;
	}

	.nb-workflow,
	.nb-results,
	.nb-process,
	.nb-safety {
		padding-block: 56px;
	}

	.nb-field-grid,
	.nb-availability-grid,
	.nb-steps,
	.nb-safety-grid,
	.nb-footer-grid {
		grid-template-columns: 1fr;
	}

	.nb-donor-grid {
		grid-template-columns: 1fr;
	}

	.nb-safety-grid,
	.nb-footer-grid {
		gap: 28px;
	}

	.nb-footer-grid {
		padding-top: 42px;
	}
}

@media (max-width: 480px) {
	.nb-container {
		width: min(100% - 24px, 1160px);
	}

	.nb-nav {
		min-height: 68px;
	}

	.nb-brand strong {
		font-size: 17px;
	}

	.nb-logo-mark {
		width: 36px;
		height: 36px;
	}

	.nb-hero h1 {
		font-size: 46px;
	}

	.nb-hero-actions {
		display: grid;
	}

	.nb-hero-actions .nb-button {
		width: 100%;
	}

	.nb-trust-row {
		grid-template-columns: 1fr;
	}

	.nb-hero-art {
		min-height: 330px;
	}

	.nb-floating {
		width: 50px;
		height: 50px;
		font-size: 15px;
	}

	.nb-panel {
		padding: 21px;
		border-radius: 17px;
	}

	.nb-section-heading {
		display: block;
	}

	.nb-count {
		display: inline-block;
		margin-top: 10px;
	}

	.nb-detail-list div {
		grid-template-columns: 1fr;
		gap: 3px;
	}
}


/* Nepal linked administrative selectors */
.nb-location-selector {
	display: grid;
	gap: 17px;
	padding: 17px;
	border: 1px solid #eceef2;
	border-radius: 14px;
	background: #fbfbfc;
}

.nb-location-selector select:disabled {
	color: #8d94a2;
	background: #f1f2f4;
	cursor: not-allowed;
}

.nb-location-status {
	margin: -4px 0 0;
	color: var(--nb-muted);
	font-size: 12px;
}

.nb-location-status.is-ready {
	color: var(--nb-green);
}

.nb-location-status.is-error {
	color: #b42318;
}

.nb-donor-card .nb-donor-meta {
	min-height: 88px;
}

@media (max-width: 480px) {
	.nb-location-selector {
		padding: 13px;
	}
}


/* Version 1.3: clean homepage and separate donor/finder pages */
.nb-home-options {
	padding: 78px 0;
	background: var(--nb-surface-alt);
}

.nb-center-heading > p {
	max-width: 640px;
	margin: 10px auto 0;
	color: var(--nb-muted);
}

.nb-option-grid {
	max-width: 960px;
	margin: 38px auto 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.nb-option-card {
	padding: 32px;
	border: 1px solid var(--nb-line);
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--nb-shadow);
}

.nb-option-icon {
	width: 62px;
	height: 62px;
	margin-bottom: 20px;
	display: grid;
	place-items: center;
	border-radius: 19px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 29px;
	font-weight: 800;
}

.nb-option-label {
	color: var(--nb-red);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.nb-option-card h3 {
	margin: 7px 0 9px;
	font-size: 27px;
	line-height: 1.15;
	letter-spacing: -0.035em;
}

.nb-option-card p {
	min-height: 72px;
	margin: 0 0 24px;
	color: var(--nb-muted);
}

.nb-inner-hero {
	overflow: hidden;
	border-bottom: 1px solid #f4e4e5;
	background:
		radial-gradient(circle at 82% 30%, rgba(255, 207, 210, 0.55), transparent 27%),
		linear-gradient(135deg, #fff 0%, #fff 52%, #fff3f4 100%);
}

.nb-inner-hero-grid {
	min-height: 335px;
	padding-block: 62px;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 45px;
}

.nb-inner-hero h1 {
	max-width: 800px;
	margin: 12px 0 16px;
	font-size: clamp(42px, 5.4vw, 67px);
	line-height: 1;
	letter-spacing: -0.055em;
}

.nb-inner-hero p {
	max-width: 720px;
	margin: 0;
	color: var(--nb-muted);
	font-size: 18px;
}

.nb-inner-symbol {
	width: 150px;
	height: 150px;
	display: grid;
	place-items: center;
	border-radius: 38px;
	color: #fff;
	background: linear-gradient(145deg, #f13239, #b3080f);
	box-shadow: 0 30px 60px rgba(168, 15, 21, 0.24);
	font-size: 68px;
	font-weight: 700;
	transform: rotate(6deg);
}

.nb-page-section {
	padding: 72px 0 86px;
	background: var(--nb-surface-alt);
}

.nb-donor-page-grid,
.nb-find-page-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 26px;
	align-items: start;
}

.nb-search-panel {
	position: relative;
}

.nb-page-sidebar {
	display: grid;
	gap: 17px;
	position: sticky;
	top: 101px;
}

.admin-bar .nb-page-sidebar {
	top: 133px;
}

.nb-info-card {
	padding: 22px;
	border: 1px solid var(--nb-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.055);
}

.nb-info-icon {
	width: 46px;
	height: 46px;
	margin-bottom: 14px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 20px;
	font-weight: 900;
}

.nb-info-card h3 {
	margin: 0 0 7px;
	font-size: 19px;
	letter-spacing: -0.025em;
}

.nb-info-card p {
	margin: 0;
	color: var(--nb-muted);
	font-size: 14px;
}

.nb-info-card-dark {
	color: #fff;
	border-color: #242730;
	background: #181a20;
}

.nb-info-card-dark .nb-info-icon {
	color: #fff;
	background: var(--nb-red);
}

.nb-info-card-dark p {
	color: #c3c6ce;
}

.nb-find-results {
	padding-top: 74px;
	border-top: 1px solid var(--nb-line);
}

@media (max-width: 900px) {
	.nb-donor-page-grid,
	.nb-find-page-grid {
		grid-template-columns: 1fr;
	}

	.nb-page-sidebar,
	.admin-bar .nb-page-sidebar {
		position: static;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.nb-home-options,
	.nb-page-section {
		padding-block: 56px;
	}

	.nb-option-grid,
	.nb-page-sidebar {
		grid-template-columns: 1fr;
	}

	.nb-option-card p {
		min-height: 0;
	}

	.nb-inner-hero-grid {
		min-height: 290px;
		grid-template-columns: 1fr;
		text-align: center;
	}

	.nb-inner-hero p {
		margin-inline: auto;
	}

	.nb-inner-symbol {
		display: none;
	}
}

@media (max-width: 480px) {
	.nb-option-card {
		padding: 23px;
		border-radius: 19px;
	}

	.nb-inner-hero h1 {
		font-size: 43px;
	}

	.nb-page-section .nb-panel {
		padding: 20px;
	}
}


/* Version 1.4: mobile OTP donor authentication */
.nb-otp-auth {
	display: grid;
	gap: 18px;
}

.nb-phone-input {
	margin-top: 7px;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: stretch;
}

.nb-phone-input > span {
	min-width: 68px;
	display: grid;
	place-items: center;
	border: 1px solid #dfe2e7;
	border-right: 0;
	border-radius: 10px 0 0 10px;
	color: var(--nb-muted);
	background: #f5f6f8;
	font-weight: 800;
}

.nb-phone-input input {
	margin-top: 0;
	border-radius: 0 10px 10px 0;
}

.nb-otp-sent-card {
	padding: 15px;
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1px solid #b7ebcd;
	border-radius: 13px;
	background: #ecfdf3;
}

.nb-otp-check,
.nb-account-check {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: var(--nb-green);
	font-weight: 900;
}

.nb-otp-sent-card strong,
.nb-otp-sent-card p {
	display: block;
	margin: 0;
}

.nb-otp-sent-card p {
	margin-top: 2px;
	color: #47705a;
	font-size: 13px;
}

.nb-otp-code {
	min-height: 62px !important;
	text-align: center;
	letter-spacing: 0.3em;
	font-size: 24px !important;
	font-weight: 850;
}

.nb-otp-secondary-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

.nb-text-button {
	padding: 5px;
	border: 0;
	color: var(--nb-red);
	background: transparent;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
}

.nb-text-button:disabled {
	color: var(--nb-muted);
	cursor: not-allowed;
}

.nb-donor-account-bar {
	margin-bottom: 24px;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	border: 1px solid #b7ebcd;
	border-radius: 14px;
	background: #ecfdf3;
}

.nb-account-identity {
	display: flex;
	align-items: center;
	gap: 11px;
}

.nb-account-identity strong,
.nb-account-identity span {
	display: block;
}

.nb-account-identity span {
	margin-top: 2px;
	color: #47705a;
	font-size: 13px;
}

.nb-account-logout {
	color: #b42318;
	font-size: 13px;
	font-weight: 800;
}

.nb-form input[readonly] {
	color: #4f5968;
	background: #f5f6f8;
	cursor: not-allowed;
}

@media (max-width: 480px) {
	.nb-donor-account-bar {
		align-items: flex-start;
		flex-direction: column;
	}

	.nb-otp-secondary-actions {
		align-items: stretch;
		flex-direction: column;
		gap: 5px;
	}
}

/* Version 1.5: separate full-page donor login and registration */
.nb-auth-body {
	min-height: 100vh;
	background: #fff;
}

.nb-auth-shell {
	min-height: 100vh;
	display: grid;
	grid-template-columns: minmax(380px, 0.92fr) minmax(500px, 1.08fr);
}

.nb-auth-visual {
	position: relative;
	min-height: 100vh;
	padding: 42px clamp(34px, 5vw, 76px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	color: #fff;
	background:
		radial-gradient(circle at 88% 15%, rgba(255, 255, 255, 0.16), transparent 23%),
		radial-gradient(circle at 11% 81%, rgba(255, 255, 255, 0.1), transparent 26%),
		linear-gradient(145deg, #a4070d, #d71920 56%, #ef333a);
}

.nb-auth-visual::before,
.nb-auth-visual::after {
	content: "";
	position: absolute;
	border: 1px dashed rgba(255, 255, 255, 0.22);
	border-radius: 50%;
}

.nb-auth-visual::before {
	width: 430px;
	height: 430px;
	right: -180px;
	top: 140px;
}

.nb-auth-visual::after {
	width: 260px;
	height: 260px;
	left: -115px;
	bottom: 90px;
}

.nb-auth-brand {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 10px;
}

.nb-auth-brand .nb-logo-mark {
	color: var(--nb-red);
	background: #fff;
}

.nb-auth-brand strong,
.nb-auth-brand small {
	color: #fff;
}

.nb-auth-visual-content {
	position: relative;
	z-index: 2;
	margin: auto 0;
	max-width: 610px;
}

.nb-auth-visual .nb-eyebrow {
	color: #ffd6d8;
}

.nb-auth-visual h1 {
	margin: 13px 0 20px;
	font-size: clamp(48px, 5vw, 76px);
	line-height: 0.98;
	letter-spacing: -0.06em;
}

.nb-auth-visual-content > p {
	max-width: 570px;
	margin: 0;
	color: #ffe4e5;
	font-size: 18px;
}

.nb-auth-benefits {
	margin-top: 34px;
	display: grid;
	gap: 14px;
}

.nb-auth-benefits div {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 700;
}

.nb-auth-benefits span {
	width: 28px;
	height: 28px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: var(--nb-red);
	background: #fff;
	font-size: 13px;
	font-weight: 900;
}

.nb-auth-visual-note {
	position: relative;
	z-index: 2;
	margin: 30px 0 0;
	color: #f7c8ca;
	font-size: 12px;
}

.nb-auth-form-side {
	min-height: 100vh;
	padding: 50px clamp(28px, 6vw, 90px);
	display: grid;
	place-items: center;
	background: #fff;
}

.nb-auth-mobile-brand {
	display: none;
}

.nb-auth-card {
	width: min(470px, 100%);
}

.nb-auth-icon {
	width: 58px;
	height: 58px;
	margin-bottom: 18px;
	display: grid;
	place-items: center;
	border-radius: 18px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 27px;
	font-weight: 900;
}

.nb-auth-card h2 {
	margin: 0 0 9px;
	font-size: clamp(34px, 4vw, 48px);
	line-height: 1.05;
	letter-spacing: -0.05em;
}

.nb-auth-card > p {
	margin: 0 0 27px;
	color: var(--nb-muted);
}

.nb-auth-switch {
	margin-top: 24px;
	padding-top: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	border-top: 1px solid var(--nb-line);
	color: var(--nb-muted);
	font-size: 14px;
}

.nb-auth-switch a {
	color: var(--nb-red);
	font-weight: 850;
}

.nb-auth-home-link {
	margin-top: 18px;
	display: block;
	color: var(--nb-muted);
	text-align: center;
	font-size: 13px;
	font-weight: 700;
}

.nb-profile-access-gate {
	padding: 34px 20px 20px;
	text-align: center;
}

.nb-profile-access-gate .nb-auth-icon {
	margin-inline: auto;
}

.nb-profile-access-gate h2 {
	margin: 8px 0 9px;
	font-size: 34px;
	letter-spacing: -0.04em;
}

.nb-profile-access-gate p {
	max-width: 520px;
	margin: 0 auto 24px;
	color: var(--nb-muted);
}

.nb-profile-access-actions {
	max-width: 430px;
	margin-inline: auto;
	display: grid;
	gap: 12px;
}

@media (max-width: 900px) {
	.nb-auth-shell {
		grid-template-columns: 1fr;
	}

	.nb-auth-visual {
		display: none;
	}

	.nb-auth-form-side {
		min-height: 100vh;
		padding-block: 34px;
		align-content: center;
	}

	.nb-auth-mobile-brand {
		width: min(470px, 100%);
		margin: 0 auto 38px;
		display: block;
	}
}

@media (max-width: 480px) {
	.nb-auth-form-side {
		padding: 24px 18px 34px;
	}

	.nb-auth-mobile-brand {
		margin-bottom: 30px;
	}

	.nb-auth-card h2 {
		font-size: 37px;
	}

	.nb-auth-switch {
		align-items: flex-start;
		flex-direction: column;
	}

	.nb-profile-access-gate {
		padding-inline: 0;
	}
}


/* Version 1.6: animated homepage blood artwork */
.nb-hero-art-animated {
	--nb-orbit-radius: clamp(175px, 20vw, 230px);
	isolation: isolate;
}

.nb-hero-art-animated .nb-large-drop {
	width: min(325px, 66vw);
	aspect-ratio: 1.18 / 1;
	border-radius: 57% 43% 61% 39% / 47% 58% 42% 53%;
	transform: rotate(-7deg);
	background: linear-gradient(145deg, #f83a40 12%, #d71920 52%, #ab090f 100%);
	animation:
		nb-drop-float 5.5s ease-in-out infinite,
		nb-drop-morph 10s ease-in-out infinite;
}

.nb-hero-art-animated .nb-large-drop::after {
	content: "";
	position: absolute;
	inset: 10% 13% auto auto;
	width: 34%;
	height: 17%;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.17);
	filter: blur(9px);
	transform: rotate(-18deg);
}

.nb-hospital-cross {
	position: relative;
	width: 76px;
	height: 76px;
	display: block;
	transform: rotate(7deg) !important;
}

.nb-hospital-cross::before,
.nb-hospital-cross::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 5px 14px rgba(80, 0, 4, 0.13);
	transform: translate(-50%, -50%);
}

.nb-hospital-cross::before {
	width: 66px;
	height: 3px;
}

.nb-hospital-cross::after {
	width: 3px;
	height: 66px;
}

.nb-blood-orbit {
	position: absolute;
	inset: 0;
	z-index: 7;
	pointer-events: none;
	animation: nb-blood-orbit-spin 28s linear infinite;
}

.nb-blood-group-badge {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 1px;
	height: 1px;
	transform:
		rotate(var(--nb-angle))
		translateX(var(--nb-orbit-radius));
}

.nb-blood-group-badge > span {
	width: 57px;
	height: 57px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(215, 25, 32, 0.08);
	border-radius: 50%;
	color: var(--nb-red);
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 13px 30px rgba(94, 24, 26, 0.14);
	font-size: 15px;
	font-weight: 900;
	transform:
		translate(-50%, -50%)
		rotate(var(--nb-counter-angle));
	animation: nb-blood-badge-counter-spin 28s linear infinite;
}

.nb-hero-art-animated .nb-hero-ring {
	animation: nb-ring-breathe 5s ease-in-out infinite;
}

.nb-hero-art-animated .nb-ring-two {
	animation-delay: -2.5s;
}

.nb-hero-art-animated .nb-heart-badge,
.nb-hero-art-animated .nb-pin-badge {
	z-index: 9;
	animation: nb-small-badge-float 4.2s ease-in-out infinite;
}

.nb-hero-art-animated .nb-heart-badge {
	left: 17%;
	bottom: 14%;
}

.nb-hero-art-animated .nb-pin-badge {
	right: 12%;
	top: 31%;
	animation-delay: -2.1s;
}

.nb-hero-art-animated:hover .nb-blood-orbit {
	animation-play-state: paused;
}

@keyframes nb-blood-orbit-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes nb-blood-badge-counter-spin {
	from {
		transform:
			translate(-50%, -50%)
			rotate(var(--nb-counter-angle));
	}
	to {
		transform:
			translate(-50%, -50%)
			rotate(calc(var(--nb-counter-angle) - 360deg));
	}
}

@keyframes nb-drop-float {
	0%,
	100% {
		transform: translateY(0) rotate(-7deg) scale(1);
	}
	50% {
		transform: translateY(-14px) rotate(-4deg) scale(1.025);
	}
}

@keyframes nb-drop-morph {
	0%,
	100% {
		border-radius: 57% 43% 61% 39% / 47% 58% 42% 53%;
	}
	50% {
		border-radius: 48% 52% 42% 58% / 56% 43% 57% 44%;
	}
}

@keyframes nb-ring-breathe {
	0%,
	100% {
		transform: scale(0.96);
		opacity: 0.35;
	}
	50% {
		transform: scale(1.04);
		opacity: 0.78;
	}
}

@keyframes nb-small-badge-float {
	0%,
	100% {
		transform: translateY(0) rotate(0deg);
	}
	50% {
		transform: translateY(-10px) rotate(5deg);
	}
}

/* Version 1.6: temporary OTP testing display */
.nb-test-otp-card {
	padding: 17px;
	display: grid;
	place-items: center;
	gap: 5px;
	border: 2px dashed #e29b16;
	border-radius: 14px;
	color: #704800;
	background: #fff8df;
	text-align: center;
}

.nb-test-otp-card[hidden] {
	display: none;
}

.nb-test-otp-card > span {
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.nb-test-otp-card > strong {
	font-size: 31px;
	letter-spacing: 0.22em;
	line-height: 1.1;
}

.nb-test-otp-card > small {
	color: #8b651a;
	font-size: 12px;
}

@media (max-width: 760px) {
	.nb-hero-art-animated {
		--nb-orbit-radius: 180px;
	}
}

@media (max-width: 480px) {
	.nb-hero-art-animated {
		--nb-orbit-radius: 145px;
	}

	.nb-hero-art-animated .nb-large-drop {
		width: 245px;
	}

	.nb-blood-group-badge > span {
		width: 45px;
		height: 45px;
		font-size: 12px;
	}

	.nb-hospital-cross {
		width: 62px;
		height: 62px;
	}

	.nb-hospital-cross::before {
		width: 53px;
	}

	.nb-hospital-cross::after {
		height: 53px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nb-hero-art-animated .nb-large-drop,
	.nb-hero-art-animated .nb-blood-orbit,
	.nb-hero-art-animated .nb-blood-group-badge > span,
	.nb-hero-art-animated .nb-hero-ring,
	.nb-hero-art-animated .nb-heart-badge,
	.nb-hero-art-animated .nb-pin-badge {
		animation: none !important;
	}
}


/* Version 1.6.1: OTP visibility and testing-state fixes */
#nb-otp-verify-form[hidden],
.nb-otp-verify-form[hidden],
#nb-otp-send-form[hidden],
.nb-test-otp-card[hidden] {
	display: none !important;
}

.nb-testing-mode-notice {
	display: grid;
	gap: 3px;
	margin-bottom: 17px;
	padding: 13px 14px;
	border: 1px solid #f0cb73;
	border-radius: 11px;
	color: #704800;
	background: #fff8df;
	font-size: 13px;
}

.nb-testing-mode-notice strong,
.nb-testing-mode-notice span {
	display: block;
}

.nb-testing-mode-notice span {
	color: #85631c;
	font-weight: 500;
}

.nb-notice.is-warning {
	display: block;
}


/* Version 1.7: password login and donor account controls */
.nb-login-remember { display:flex; align-items:center; gap:9px; color:var(--nb-muted)!important; font-weight:600!important; }
.nb-login-remember input { width:17px!important; min-height:17px!important; margin:0!important; accent-color:var(--nb-red); }
.nb-forgot-password { margin-top:18px; display:block; color:var(--nb-red); text-align:center; font-size:13px; font-weight:800; }
.nb-account-management { margin-top:38px; padding-top:34px; border-top:1px solid var(--nb-line); }
.nb-management-heading { margin-bottom:20px; }
.nb-management-heading h2 { margin:4px 0 6px; font-size:28px; letter-spacing:-.035em; }
.nb-management-heading p { margin:0; color:var(--nb-muted); }
.nb-management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.nb-management-card { align-content:start; padding:21px; border:1px solid var(--nb-line); border-radius:16px; background:#fbfbfc; }
.nb-management-card h3 { margin:0 0 3px; font-size:20px; }
.nb-management-card > p { margin:0; color:var(--nb-muted); font-size:13px; }
.nb-danger-card { border-color:#ffc9c6; background:#fff7f6; }
.nb-danger-button { min-height:49px; padding:0 20px; border:1px solid #b42318; border-radius:11px; color:#fff; background:#b42318; font-weight:850; cursor:pointer; }
.nb-danger-button:hover { background:#8f1b13; }
.nb-danger-button:disabled { opacity:.48; cursor:not-allowed; }
@media(max-width:760px){.nb-management-grid{grid-template-columns:1fr;}}


/* Version 1.8: premium homepage, supporters, events and blog */
.nb-home-hero { position:relative; padding-bottom:42px; }
.nb-home-hero::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,.72),transparent 48%),radial-gradient(circle at 15% 85%,rgba(215,25,32,.06),transparent 25%); }
.nb-live-pill { width:max-content; max-width:100%; margin-bottom:19px; padding:8px 13px; display:flex; align-items:center; gap:8px; border:1px solid #ffd2d4; border-radius:999px; color:#8f171c; background:rgba(255,255,255,.78); font-size:12px; font-weight:800; box-shadow:0 8px 24px rgba(140,25,30,.07); }
.nb-live-pill span { width:8px; height:8px; border-radius:50%; background:#1b9a5c; box-shadow:0 0 0 5px rgba(27,154,92,.12); animation:nb-live-pulse 2s ease-in-out infinite; }
.nb-hero-trust-note { display:flex; align-items:center; gap:13px; color:var(--nb-muted); font-size:13px; font-weight:650; }
.nb-trust-avatars { display:flex; padding-left:8px; }
.nb-trust-avatars b { width:33px; height:33px; margin-left:-8px; display:grid; place-items:center; border:3px solid #fff; border-radius:50%; color:#fff; background:var(--nb-red); box-shadow:0 7px 17px rgba(130,15,20,.14); font-size:12px; }
.nb-trust-avatars b:nth-child(2){background:#181a20}.nb-trust-avatars b:nth-child(3){background:#16824d}
@keyframes nb-live-pulse { 50% { transform:scale(1.22); opacity:.7; } }

.nb-impact-strip { position:relative; z-index:12; margin-top:-48px; padding-bottom:22px; }
.nb-impact-grid { padding:23px 26px; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid rgba(232,233,237,.9); border-radius:22px; background:rgba(255,255,255,.96); box-shadow:0 22px 60px rgba(42,20,21,.11); backdrop-filter:blur(16px); }
.nb-impact-grid div { padding:4px 25px; border-right:1px solid var(--nb-line); text-align:center; }
.nb-impact-grid div:last-child { border-right:0; }
.nb-impact-grid strong { display:block; color:var(--nb-red); font-size:32px; line-height:1; letter-spacing:-.05em; }
.nb-impact-grid span { margin-top:7px; display:block; color:var(--nb-muted); font-size:12px; font-weight:700; }

.nb-option-card { position:relative; overflow:hidden; }
.nb-option-card::after { content:""; position:absolute; width:165px; height:165px; right:-78px; top:-78px; border-radius:50%; background:var(--nb-red-soft); transition:transform .3s ease; }
.nb-option-card:hover::after { transform:scale(1.18); }
.nb-option-card > * { position:relative; z-index:2; }
.nb-option-card-find::after { background:#f0f4ff; }
.nb-option-card-find .nb-option-icon { color:#3157aa; background:#edf2ff; }
.nb-option-card-find .nb-option-label { color:#3157aa; }
.nb-option-top { display:flex; align-items:flex-start; justify-content:space-between; }
.nb-option-number { color:#e9eaee; font-size:49px; font-weight:900; line-height:1; letter-spacing:-.07em; }
.nb-option-card ul { margin:0 0 24px; padding:0; display:grid; gap:8px; list-style:none; color:#454c59; font-size:13px; font-weight:650; }
.nb-option-card li::before { content:"✓"; margin-right:8px; color:var(--nb-green); font-weight:900; }
.nb-option-card .nb-button span { margin-left:8px; font-size:19px; }

.nb-supporters-section { overflow:hidden; padding:72px 0 68px; border-top:1px solid #f4e5e6; border-bottom:1px solid #f4e5e6; background:linear-gradient(180deg,#fff,#fff8f8); }
.nb-supporters-heading { margin-bottom:30px; display:grid; grid-template-columns:1fr .9fr; gap:50px; align-items:end; }
.nb-supporters-heading h2 { margin:4px 0 0; font-size:clamp(30px,4vw,44px); line-height:1.08; letter-spacing:-.045em; }
.nb-supporters-heading p { margin:0; color:var(--nb-muted); }
.nb-logo-marquee { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.nb-logo-track { width:max-content; display:flex; gap:16px; animation:nb-logo-scroll 32s linear infinite; }
.nb-logo-marquee:hover .nb-logo-track { animation-play-state:paused; }
.nb-supporter-logo { width:210px; min-height:102px; padding:17px 20px; display:flex; align-items:center; justify-content:center; gap:13px; border:1px solid var(--nb-line); border-radius:17px; color:#303644; background:#fff; box-shadow:0 10px 27px rgba(39,20,22,.05); transition:transform .2s ease,border-color .2s ease; }
.nb-supporter-logo:hover { transform:translateY(-3px); border-color:#efabad; }
.nb-supporter-logo img { max-width:105px; max-height:55px; object-fit:contain; }
.nb-supporter-logo strong { max-width:95px; font-size:13px; line-height:1.25; }
.nb-supporter-mark { flex:0 0 52px; width:52px; height:52px; display:grid; place-items:center; border-radius:15px; color:var(--nb-red); background:var(--nb-red-soft); font-weight:900; }
@keyframes nb-logo-scroll { to { transform:translateX(calc(-50% - 8px)); } }

.nb-home-events { padding:82px 0; background:#fff; }
.nb-home-stories { padding:82px 0; background:#f8f9fb; }
.nb-section-title-row { margin-bottom:31px; display:flex; align-items:end; justify-content:space-between; gap:32px; }
.nb-section-title-row h2 { margin:4px 0 8px; font-size:clamp(31px,4vw,45px); line-height:1.08; letter-spacing:-.045em; }
.nb-section-title-row p { max-width:650px; margin:0; color:var(--nb-muted); }
.nb-text-link { flex:0 0 auto; color:var(--nb-red); font-size:14px; font-weight:850; }
.nb-event-grid,.nb-story-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.nb-event-card,.nb-story-card { overflow:hidden; border:1px solid var(--nb-line); border-radius:20px; background:#fff; box-shadow:0 13px 38px rgba(27,21,23,.065); transition:transform .2s ease,box-shadow .2s ease; }
.nb-event-card:hover,.nb-story-card:hover { transform:translateY(-5px); box-shadow:0 21px 48px rgba(42,20,21,.12); }
.nb-event-image,.nb-story-image { position:relative; height:220px; overflow:hidden; display:block; background:linear-gradient(145deg,#f32b33,#a9070d); }
.nb-event-image img,.nb-story-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.nb-event-card:hover img,.nb-story-card:hover img { transform:scale(1.045); }
.nb-event-image-placeholder,.nb-story-image > span { width:100%; height:100%; display:grid; place-items:center; color:rgba(255,255,255,.94); font-size:65px; font-weight:250; }
.nb-event-date { position:absolute; left:17px; top:17px; width:59px; min-height:66px; display:grid; place-items:center; align-content:center; border-radius:13px; color:var(--nb-red); background:#fff; box-shadow:0 12px 28px rgba(80,15,18,.18); line-height:1; }
.nb-event-date b { font-size:24px; }.nb-event-date small { margin-top:4px; font-size:11px; font-weight:850; text-transform:uppercase; }
.nb-event-body,.nb-story-body { padding:22px; }
.nb-card-kicker { color:var(--nb-red); font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.nb-event-body h3,.nb-story-body h3 { margin:7px 0 9px; font-size:21px; line-height:1.25; letter-spacing:-.025em; }
.nb-event-body p,.nb-story-body p { margin:0; color:var(--nb-muted); font-size:14px; }
.nb-event-meta { margin-top:18px; padding-top:15px; display:grid; gap:7px; border-top:1px solid var(--nb-line); color:#565e6b; font-size:12px; font-weight:650; }
.nb-event-empty { padding:31px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; border:1px solid #f2d2d4; border-radius:22px; background:linear-gradient(135deg,#fff4f5,#fff); box-shadow:var(--nb-shadow); }
.nb-event-empty-icon { width:70px; height:70px; display:grid; place-items:center; border-radius:21px; color:#fff; background:var(--nb-red); font-size:31px; }
.nb-event-empty h3 { margin:4px 0 5px; font-size:25px; }.nb-event-empty p { margin:0; color:var(--nb-muted); }
.nb-story-meta { display:flex; flex-wrap:wrap; gap:9px; color:#858b97; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.055em; }
.nb-card-link { margin-top:17px; display:inline-block; color:var(--nb-red); font-size:13px; font-weight:850; }
.nb-story-fallback .nb-story-image span { font-size:46px; font-weight:900; letter-spacing:-.08em; }
.nb-story-fallback:nth-child(2) .nb-story-image { background:linear-gradient(145deg,#1e293b,#475569); }.nb-story-fallback:nth-child(3) .nb-story-image { background:linear-gradient(145deg,#116b43,#1da567); }

.nb-home-cta { padding:0 0 82px; background:#f8f9fb; }
.nb-home-cta-inner { padding:42px 46px; display:flex; align-items:center; justify-content:space-between; gap:35px; border-radius:25px; color:#fff; background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.17),transparent 24%),linear-gradient(135deg,#a4080e,#dc1e26 62%,#ef3a40); box-shadow:0 25px 62px rgba(167,12,18,.24); }
.nb-home-cta .nb-eyebrow { color:#ffd7d9; }.nb-home-cta h2 { max-width:720px; margin:5px 0 0; font-size:clamp(29px,4vw,43px); line-height:1.08; letter-spacing:-.045em; }
.nb-home-cta-actions { display:flex; flex:0 0 auto; gap:11px; }.nb-button-light { border-color:#fff; color:var(--nb-red); background:#fff; box-shadow:none; }.nb-button-light:hover { color:var(--nb-red); }

.nb-story-archive-grid { min-height:260px; }.nb-pagination { margin-top:35px; }.nb-pagination ul { padding:0; display:flex; justify-content:center; gap:8px; list-style:none; }.nb-pagination a,.nb-pagination span { min-width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--nb-line); border-radius:10px; background:#fff; }.nb-pagination .current { color:#fff; border-color:var(--nb-red); background:var(--nb-red); }
.nb-event-single-date { width:125px; height:125px; display:grid; place-items:center; align-content:center; border-radius:30px; color:#fff; background:var(--nb-red); box-shadow:0 22px 45px rgba(168,15,21,.22); }.nb-event-single-date b { font-size:50px; line-height:1; }.nb-event-single-date span { margin-top:4px; font-weight:850; text-transform:uppercase; }.nb-event-single-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:27px; align-items:start; }.nb-single-featured { margin:-32px -32px 30px; overflow:hidden; border-radius:20px 20px 0 0; }.nb-single-featured img { width:100%; max-height:520px; object-fit:cover; }.nb-article-hero { padding:82px 0 62px; text-align:center; background:linear-gradient(180deg,#fff5f5,#fff); }.nb-article-hero-inner { max-width:900px; }.nb-article-hero h1 { margin:10px 0 17px; font-size:clamp(42px,6vw,70px); line-height:1.03; letter-spacing:-.058em; }.nb-article-meta { display:flex; justify-content:center; gap:10px; color:var(--nb-muted); font-size:13px; }.nb-article-layout { max-width:900px; }.nb-entry-content { font-size:17px; line-height:1.8; }.nb-entry-content h2,.nb-entry-content h3 { line-height:1.2; letter-spacing:-.03em; }

@media(max-width:980px){.nb-impact-grid{grid-template-columns:repeat(2,1fr);}.nb-impact-grid div:nth-child(2){border-right:0}.nb-impact-grid div:nth-child(-n+2){padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--nb-line)}.nb-supporters-heading{grid-template-columns:1fr;gap:12px}.nb-event-grid,.nb-story-grid{grid-template-columns:repeat(2,1fr)}.nb-home-cta-inner{align-items:flex-start;flex-direction:column}.nb-event-single-grid{grid-template-columns:1fr}.nb-event-single-grid .nb-page-sidebar{position:static;grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.nb-impact-strip{margin-top:-22px}.nb-impact-grid{padding:19px 12px}.nb-impact-grid div{padding-inline:12px}.nb-impact-grid strong{font-size:27px}.nb-event-grid,.nb-story-grid{grid-template-columns:1fr}.nb-section-title-row{align-items:flex-start;flex-direction:column;gap:14px}.nb-event-empty{grid-template-columns:1fr;text-align:center}.nb-event-empty-icon{margin:auto}.nb-event-empty .nb-button{width:100%}.nb-home-cta-inner{padding:32px 23px}.nb-home-cta-actions{width:100%;display:grid}.nb-supporter-logo{width:185px}.nb-event-single-grid .nb-page-sidebar{grid-template-columns:1fr}}
@media(max-width:480px){.nb-live-pill{white-space:normal}.nb-hero-trust-note{align-items:flex-start;flex-direction:column}.nb-impact-grid span{font-size:10px}.nb-supporters-section,.nb-home-events,.nb-home-stories{padding-block:58px}.nb-event-image,.nb-story-image{height:200px}}
@media(prefers-reduced-motion:reduce){.nb-logo-track,.nb-live-pill span{animation:none!important}}


/* Version 1.9: supporter backend, contact, company and legal pages */
.nb-supporters-copy{display:grid;justify-items:start;gap:13px}.nb-supporters-copy p{margin:0;color:var(--nb-muted)}
.nb-footer-contact{display:inline-block;margin-top:8px;color:#fff;font-size:13px;font-weight:750}
.nb-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}
.nb-info-hero,.nb-legal-hero{overflow:hidden;border-bottom:1px solid #f3e4e5;background:radial-gradient(circle at 84% 28%,rgba(255,207,210,.55),transparent 24%),linear-gradient(135deg,#fff 0%,#fff 48%,#fff3f4 100%)}
.nb-info-hero-inner{min-height:355px;padding-block:68px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:50px}
.nb-info-hero h1,.nb-legal-hero h1{max-width:850px;margin:12px 0 17px;font-size:clamp(46px,6vw,74px);line-height:.98;letter-spacing:-.058em}
.nb-info-hero p,.nb-legal-hero p{max-width:750px;margin:0;color:var(--nb-muted);font-size:18px}
.nb-info-hero-icon{width:150px;height:150px;display:grid;place-items:center;border-radius:42px;color:#fff;background:linear-gradient(145deg,#ef3138,#b4080f);box-shadow:0 28px 60px rgba(180,11,17,.23);font-size:62px;font-weight:800;transform:rotate(5deg)}
.nb-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:27px;align-items:start}
.nb-contact-sidebar{position:sticky;top:101px;display:grid;gap:14px}.admin-bar .nb-contact-sidebar{top:133px}
.nb-contact-card{padding:19px;display:grid;grid-template-columns:44px 1fr;column-gap:12px;border:1px solid var(--nb-line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(16,24,40,.05)}
.nb-contact-card>span{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;border-radius:13px;color:var(--nb-red);background:var(--nb-red-soft);font-size:20px;font-weight:900}
.nb-contact-card strong{font-size:14px}.nb-contact-card a,.nb-contact-card p{margin:2px 0 0;color:var(--nb-muted);font-size:13px;word-break:break-word}
.nb-contact-warning{padding:20px;border-radius:17px;color:#fff;background:#181a20}.nb-contact-warning strong{font-size:17px}.nb-contact-warning p{color:#c4c8d0;font-size:13px}.nb-contact-warning a{color:#ffb8bb;font-size:13px;font-weight:850}
.nb-contact-form textarea{width:100%;margin-top:7px;padding:13px;border:1px solid #dfe2e7;border-radius:10px;resize:vertical;outline:none}.nb-contact-form textarea:focus{border-color:var(--nb-red);box-shadow:0 0 0 4px rgba(215,25,32,.09)}
.nb-page-alert{margin-bottom:18px;padding:13px 15px;border-radius:11px;font-size:14px;font-weight:700}.nb-page-alert-success{color:#126c42;border:1px solid #b7ebcd;background:#ecfdf3}.nb-page-alert-error{color:#b42318;border:1px solid #ffc7c3;background:#fff1f0}
.nb-about-lead{display:grid;grid-template-columns:1fr .9fr;align-items:end;gap:55px}.nb-about-lead h2{margin:6px 0 0;font-size:clamp(34px,4vw,52px);line-height:1.07;letter-spacing:-.05em}.nb-about-lead>p{margin:0;color:var(--nb-muted);font-size:17px}
.nb-about-stats{margin:45px 0;padding:28px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--nb-line);border-radius:22px;background:#fff;box-shadow:var(--nb-shadow)}
.nb-about-stats div{padding:5px 24px;border-right:1px solid var(--nb-line);text-align:center}.nb-about-stats div:last-child{border-right:0}.nb-about-stats strong,.nb-about-stats span{display:block}.nb-about-stats strong{color:var(--nb-red);font-size:33px;line-height:1}.nb-about-stats span{margin-top:7px;color:var(--nb-muted);font-size:11px;font-weight:800;text-transform:uppercase}
.nb-values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.nb-values-grid article{padding:25px;border:1px solid var(--nb-line);border-radius:19px;background:#fff;box-shadow:0 12px 34px rgba(16,24,40,.05)}.nb-values-grid article>span{color:var(--nb-red);font-size:12px;font-weight:900;letter-spacing:.12em}.nb-values-grid h3{margin:14px 0 7px;font-size:19px}.nb-values-grid p{margin:0;color:var(--nb-muted);font-size:14px}
.nb-about-cta{margin-top:45px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-radius:24px;background:linear-gradient(135deg,#fff1f2,#fff);border:1px solid #f2c9cb}.nb-about-cta h2{max-width:680px;margin:5px 0 0;font-size:31px;letter-spacing:-.04em}.nb-about-cta>div:last-child{display:flex;gap:12px}
.nb-partner-layout,.nb-deletion-layout{display:grid;grid-template-columns:1fr .9fr;gap:27px;align-items:start}.nb-partner-benefits{grid-template-columns:repeat(2,1fr)}
.nb-legal-hero{padding:75px 0}.nb-legal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;align-items:start}
.nb-legal-nav{position:sticky;top:101px;padding:20px;display:grid;gap:8px;border:1px solid var(--nb-line);border-radius:17px;background:#fff}.admin-bar .nb-legal-nav{top:133px}.nb-legal-nav strong{margin-bottom:7px}.nb-legal-nav a{padding:8px 10px;border-radius:8px;color:var(--nb-muted);font-size:13px;font-weight:700}.nb-legal-nav a:hover{color:var(--nb-red);background:var(--nb-red-soft)}
.nb-legal-card{padding:clamp(25px,5vw,50px);border:1px solid var(--nb-line);border-radius:23px;background:#fff;box-shadow:var(--nb-shadow)}.nb-legal-card h2{margin:35px 0 10px;font-size:25px;letter-spacing:-.035em}.nb-legal-card h2:first-of-type{margin-top:20px}.nb-legal-card p,.nb-legal-card li{color:#555e6d;line-height:1.75}.nb-legal-updated{padding-bottom:18px;border-bottom:1px solid var(--nb-line);font-size:13px;font-weight:800}.nb-legal-note{margin-top:30px;padding:16px;border:1px solid #f0c9cb;border-radius:12px;background:var(--nb-red-soft);font-size:13px}.nb-legal-card-centred{max-width:900px;margin-inline:auto;text-align:center}.nb-legal-card-wide{max-width:970px;margin-inline:auto}
.nb-medical-alert{width:72px;height:72px;margin:0 auto 18px;display:grid;place-items:center;border-radius:22px;color:#fff;background:var(--nb-red);font-size:37px;font-weight:900}.nb-medical-grid{margin:30px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:15px;text-align:left}.nb-medical-grid div{padding:20px;border:1px solid var(--nb-line);border-radius:14px;background:#fafafb}.nb-medical-grid p{margin-bottom:0;font-size:14px}
.nb-faq-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:27px;align-items:start}.nb-faq-list{display:grid;gap:12px}.nb-faq-list details{border:1px solid var(--nb-line);border-radius:15px;background:#fff;overflow:hidden}.nb-faq-list summary{padding:19px 21px;cursor:pointer;font-weight:800;list-style:none}.nb-faq-list summary::-webkit-details-marker{display:none}.nb-faq-list summary:after{content:"+";float:right;color:var(--nb-red);font-size:22px}.nb-faq-list details[open] summary:after{content:"−"}.nb-faq-list details p{margin:0;padding:0 21px 20px;color:var(--nb-muted)}
.nb-faq-help{position:sticky;top:101px;padding:25px;border-radius:20px;color:#fff;background:#181a20}.nb-faq-help>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--nb-red);font-size:24px;font-weight:900}.nb-faq-help p{color:#c4c8d0}
.nb-deletion-steps{display:grid;gap:15px}.nb-deletion-steps article{padding:22px;display:flex;gap:16px;border:1px solid var(--nb-line);border-radius:17px;background:#fff}.nb-deletion-steps article>span{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--nb-red);font-weight:900}.nb-deletion-steps h3{margin:0 0 5px}.nb-deletion-steps p{margin:0;color:var(--nb-muted);font-size:14px}
@media(max-width:1050px){.nb-values-grid{grid-template-columns:repeat(2,1fr)}.nb-footer-grid{grid-template-columns:1.1fr repeat(3,.7fr);gap:38px}}
@media(max-width:900px){.nb-contact-layout,.nb-about-lead,.nb-partner-layout,.nb-deletion-layout,.nb-legal-layout,.nb-faq-layout{grid-template-columns:1fr}.nb-contact-sidebar,.nb-legal-nav,.nb-faq-help,.admin-bar .nb-contact-sidebar,.admin-bar .nb-legal-nav{position:static}.nb-about-stats{grid-template-columns:repeat(2,1fr)}.nb-about-stats div:nth-child(2){border-right:0}.nb-about-stats div:nth-child(-n+2){padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--nb-line)}.nb-medical-grid{grid-template-columns:1fr}}
@media(max-width:760px){.nb-info-hero-inner{min-height:300px;grid-template-columns:1fr;text-align:center}.nb-info-hero p{margin-inline:auto}.nb-info-hero-icon{display:none}.nb-about-stats,.nb-values-grid,.nb-partner-benefits{grid-template-columns:1fr}.nb-about-stats div{padding:16px 0;border-right:0;border-bottom:1px solid var(--nb-line)}.nb-about-stats div:last-child{border-bottom:0}.nb-about-cta,.nb-footer-bottom{align-items:flex-start;flex-direction:column}.nb-about-cta>div:last-child{width:100%;display:grid}.nb-footer-grid{grid-template-columns:1fr}}


/* Version 2.0: clearer homepage hero */
.nb-home-hero {
	background: linear-gradient(135deg, #ffffff 0%, #fff8f8 58%, #ffecee 100%) !important;
}

.nb-home-hero::before {
	content: none !important;
	display: none !important;
	background: none !important;
}

.nb-home-hero .nb-hero-copy,
.nb-home-hero .nb-hero-art {
	position: relative;
	z-index: 2;
}

.nb-home-hero .nb-live-pill,
.nb-home-hero .nb-impact-grid {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.nb-form label > small {
	margin-top: 6px;
	display: block;
	color: var(--nb-muted);
	font-size: 11px;
	font-weight: 600;
}

/* Version 2.0: gallery */
.nb-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.nb-gallery-card {
	overflow: hidden;
	border: 1px solid var(--nb-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 13px 36px rgba(31, 20, 22, 0.07);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nb-gallery-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 48px rgba(31, 20, 22, 0.12);
}

.nb-gallery-open {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	padding: 0;
	display: block;
	overflow: hidden;
	border: 0;
	background: #f1f2f4;
	cursor: zoom-in;
}

.nb-gallery-open img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.nb-gallery-card:hover .nb-gallery-open img {
	transform: scale(1.045);
}

.nb-gallery-zoom {
	position: absolute;
	right: 15px;
	bottom: 15px;
	width: 43px;
	height: 43px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: rgba(215, 25, 32, 0.92);
	box-shadow: 0 9px 22px rgba(83, 0, 4, 0.25);
	font-size: 25px;
	font-weight: 300;
}

.nb-gallery-card-body {
	padding: 19px 20px 21px;
}

.nb-gallery-card-body h2 {
	margin: 0 0 9px;
	font-size: 19px;
	letter-spacing: -0.025em;
}

.nb-gallery-card-body p {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 9px 15px;
	color: var(--nb-muted);
	font-size: 12px;
	font-weight: 650;
}

.nb-gallery-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	padding: 25px;
	display: grid;
	place-items: center;
	background: rgba(12, 13, 17, 0.86);
}

.nb-gallery-modal[hidden] {
	display: none !important;
}

.nb-gallery-modal-dialog {
	position: relative;
	width: min(1000px, 100%);
	max-height: calc(100vh - 50px);
	overflow: auto;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 35px 100px rgba(0, 0, 0, 0.45);
}

.nb-gallery-modal-dialog img {
	width: 100%;
	max-height: 72vh;
	display: block;
	object-fit: contain;
	background: #111;
}

.nb-gallery-modal-close {
	position: absolute;
	z-index: 2;
	top: 13px;
	right: 13px;
	width: 43px;
	height: 43px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	color: #fff;
	background: rgba(0, 0, 0, 0.7);
	font-size: 25px;
	cursor: pointer;
}

.nb-gallery-modal-copy {
	padding: 20px 24px 24px;
}

.nb-gallery-modal-copy h2 {
	margin: 0;
	font-size: 24px;
}

.nb-gallery-modal-copy p {
	margin: 7px 0 0;
	color: var(--nb-muted);
}

@media (max-width: 900px) {
	.nb-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.nb-gallery-grid {
		grid-template-columns: 1fr;
	}

	.nb-gallery-modal {
		padding: 10px;
	}

	.nb-gallery-modal-dialog {
		max-height: calc(100vh - 20px);
		border-radius: 14px;
	}
}


/* Version 2.1: donor list inside the original results box */
.nb-results-box {
	padding: 18px;
	overflow: hidden;
	border: 1px dashed #d7dce4;
	border-radius: 22px;
	background: #fcfcfd;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.nb-results-box.has-results {
	border-style: solid;
	border-color: #e1e4e9;
	background: #fff;
	box-shadow: 0 14px 38px rgba(16, 24, 40, 0.055);
}

.nb-results-toolbar {
	min-height: 52px;
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 13px;
}

.nb-ward-corner-filter {
	display: flex;
	align-items: center;
	gap: 9px;
	color: var(--nb-muted);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.045em;
}

.nb-ward-corner-filter select {
	min-width: 190px;
	min-height: 38px;
	padding: 7px 34px 7px 11px;
	border: 1px solid var(--nb-line);
	border-radius: 10px;
	color: var(--nb-ink);
	background: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: normal;
}

.nb-ward-corner-filter select:disabled {
	color: #9299a6;
	background: #f2f3f5;
}

.nb-results-box .nb-empty-state {
	min-height: 235px;
	padding: 24px;
	border: 0;
	border-radius: 16px;
	background: transparent;
}

.nb-donor-list {
	display: grid;
	border-top: 1px solid var(--nb-line);
}

.nb-donor-list-header,
.nb-donor-list-item {
	display: grid;
	grid-template-columns: minmax(235px, 1.35fr) minmax(180px, 1fr) minmax(215px, 1fr) 135px;
	gap: 20px;
	align-items: center;
}

.nb-donor-list-header {
	padding: 13px 18px;
	color: var(--nb-muted);
	background: #f7f8fa;
	border-radius: 12px 12px 0 0;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0.085em;
	text-transform: uppercase;
}

.nb-donor-list-item {
	padding: 18px;
	border-bottom: 1px solid var(--nb-line);
	background: #fff;
}

.nb-donor-list-item:last-child {
	border-bottom: 0;
}

.nb-donor-list-item:hover {
	background: #fffafa;
}

.nb-donor-list-person {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 13px;
}

.nb-donor-list-person h3 {
	margin: 0;
	overflow: hidden;
	font-size: 16px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nb-donor-list-person p {
	margin: 3px 0 0;
	color: var(--nb-muted);
	font-size: 12px;
}

.nb-donor-list-person .nb-blood-chip {
	margin-left: auto;
	flex: 0 0 auto;
}

.nb-donor-list-location,
.nb-donor-list-availability {
	display: grid;
	gap: 4px;
}

.nb-donor-list-location strong,
.nb-donor-list-availability strong {
	font-size: 13px;
	line-height: 1.35;
}

.nb-donor-list-location > span {
	color: var(--nb-muted);
	font-size: 12px;
}

.nb-donor-list-ward {
	width: max-content;
	padding: 3px 7px;
	border-radius: 999px;
	color: var(--nb-red) !important;
	background: var(--nb-red-soft);
	font-size: 10px !important;
	font-weight: 850;
}

.nb-donor-list-availability .nb-active-status {
	margin: 2px 0 0;
}

.nb-donor-list-availability .nb-active-status i {
	width: 8px;
	height: 8px;
	display: inline-block;
	border-radius: 50%;
	background: #23a566;
	box-shadow: 0 0 0 4px rgba(35, 165, 102, 0.12);
}

.nb-donor-list-action .nb-outline-action {
	min-width: 120px;
}

.nb-brand strong {
	white-space: nowrap;
	font-size: 17px;
}

@media (max-width: 920px) {
	.nb-donor-list-header {
		display: none;
	}

	.nb-donor-list-item {
		grid-template-columns: 1fr 1fr;
	}

	.nb-donor-list-action {
		grid-column: 1 / -1;
	}

	.nb-donor-list-action .nb-outline-action {
		width: 100%;
	}
}

@media (max-width: 620px) {
	.nb-results-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.nb-ward-corner-filter {
		align-items: stretch;
		flex-direction: column;
	}

	.nb-ward-corner-filter select {
		width: 100%;
	}

	.nb-results-toolbar .nb-count {
		align-self: flex-start;
	}

	.nb-donor-list-item {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.nb-donor-list-action {
		grid-column: auto;
	}
}


/* Version 2.2: donor status dashboard */
.nb-account-bar-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.nb-donor-status-badge {
	padding: 7px 11px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 900;
	white-space: nowrap;
}

.nb-donor-status-badge.is-available {
	color: #137344;
	background: #eaf9f0;
}

.nb-donor-status-badge.is-not_available {
	color: #596170;
	background: #eef0f3;
}

.nb-donor-status-badge.is-already_donated {
	color: #6d28d9;
	background: #f1eafe;
}

.nb-donor-status-dashboard {
	margin: 0 0 29px;
	padding: 23px;
	border: 1px solid #e1e4e9;
	border-radius: 18px;
	background: linear-gradient(145deg, #fff, #fafafb);
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.045);
}

.nb-status-dashboard-heading {
	margin-bottom: 18px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.nb-status-dashboard-heading h3 {
	margin: 4px 0 5px;
	font-size: 24px;
	letter-spacing: -0.035em;
}

.nb-status-dashboard-heading p {
	margin: 0;
	color: var(--nb-muted);
	font-size: 13px;
}

.nb-status-live-dot {
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	margin-top: 8px;
	border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(107, 114, 128, 0.1);
	background: #6b7280;
}

.nb-status-live-dot.is-available {
	background: #24a865;
	box-shadow: 0 0 0 6px rgba(36, 168, 101, 0.13);
}

.nb-status-live-dot.is-already_donated {
	background: #7c3aed;
	box-shadow: 0 0 0 6px rgba(124, 58, 237, 0.12);
}

.nb-status-choice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.nb-status-choice {
	position: relative;
	min-height: 128px;
	padding: 17px;
	display: grid;
	grid-template-columns: 39px 1fr;
	gap: 12px;
	align-content: start;
	border: 1px solid var(--nb-line);
	border-radius: 15px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.nb-status-choice:hover {
	transform: translateY(-2px);
	border-color: #efabad;
	box-shadow: 0 10px 25px rgba(31, 20, 22, 0.07);
}

.nb-status-choice input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.nb-status-choice:has(input:checked) {
	border-color: var(--nb-red);
	box-shadow: 0 0 0 3px rgba(215, 25, 32, 0.08);
}

.nb-status-choice.is-available:has(input:checked) {
	border-color: #25a867;
	box-shadow: 0 0 0 3px rgba(37, 168, 103, 0.09);
}

.nb-status-choice.is-already-donated:has(input:checked) {
	border-color: #7c3aed;
	box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.09);
}

.nb-status-choice-icon {
	width: 39px;
	height: 39px;
	display: grid;
	place-items: center;
	border-radius: 12px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 17px;
	font-weight: 900;
}

.nb-status-choice.is-available .nb-status-choice-icon {
	color: #16824d;
	background: #eaf9f0;
}

.nb-status-choice.is-not-available .nb-status-choice-icon {
	color: #5f6673;
	background: #eef0f3;
}

.nb-status-choice.is-already-donated .nb-status-choice-icon {
	color: #6d28d9;
	background: #f1eafe;
}

.nb-status-choice strong,
.nb-status-choice small {
	display: block;
}

.nb-status-choice strong {
	margin-bottom: 5px;
	font-size: 14px;
}

.nb-status-choice small {
	color: var(--nb-muted);
	font-size: 11px;
	line-height: 1.45;
}

.nb-donation-date-field {
	margin-top: 15px;
}

.nb-donation-date-field[hidden] {
	display: none !important;
}

.nb-status-create-note {
	margin-bottom: 25px;
	padding: 15px 17px;
	display: grid;
	gap: 3px;
	border: 1px solid #f1d0d2;
	border-radius: 13px;
	background: #fff7f7;
}

.nb-status-create-note strong {
	color: var(--nb-red);
}

.nb-status-create-note span {
	color: var(--nb-muted);
	font-size: 13px;
}

/* Version 2.2: supporters View More and directory */
.nb-supporter-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 11px 22px;
}

.nb-supporters-more {
	margin-top: 29px;
	display: flex;
	justify-content: center;
}

.nb-supporters-directory-heading {
	margin-bottom: 34px;
}

.nb-supporters-directory {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.nb-supporter-directory-card {
	min-height: 290px;
	padding: 25px;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--nb-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 13px 36px rgba(31, 20, 22, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nb-supporter-directory-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 48px rgba(31, 20, 22, 0.11);
}

.nb-supporter-directory-logo {
	height: 95px;
	margin-bottom: 21px;
	display: grid;
	place-items: center;
	border-radius: 16px;
	background: #fafafb;
	border: 1px solid #f0f1f3;
}

.nb-supporter-directory-logo img {
	max-width: 170px;
	max-height: 72px;
	object-fit: contain;
}

.nb-supporter-directory-logo > span {
	width: 62px;
	height: 62px;
	display: grid;
	place-items: center;
	border-radius: 17px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 19px;
	font-weight: 900;
}

.nb-supporter-directory-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.nb-supporter-directory-content h2 {
	margin: 7px 0 8px;
	font-size: 21px;
	letter-spacing: -0.03em;
}

.nb-supporter-directory-content p {
	flex: 1;
	margin: 0 0 16px;
	color: var(--nb-muted);
	font-size: 14px;
	line-height: 1.65;
}

.nb-supporter-directory-cta {
	padding: 0 0 78px;
}

@media (max-width: 950px) {
	.nb-status-choice-grid,
	.nb-supporters-directory {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 650px) {
	.nb-account-bar-actions {
		align-items: flex-end;
		flex-direction: column;
	}

	.nb-status-choice-grid,
	.nb-supporters-directory {
		grid-template-columns: 1fr;
	}

	.nb-status-dashboard-heading {
		align-items: flex-start;
	}

	.nb-supporter-actions {
		flex-direction: column;
	}
}


/* Version 2.3: post-donation countdown */
.nb-donation-countdown {
	margin-top: 22px;
	padding: 22px;
	border: 1px solid #ddcef8;
	border-radius: 17px;
	background: linear-gradient(145deg, #fbf9ff, #fff);
}
.nb-donation-countdown[hidden] { display: none !important; }
.nb-countdown-heading { display: flex; align-items: center; gap: 13px; }
.nb-countdown-heading h4 { margin: 3px 0 0; font-size: 21px; letter-spacing: -.035em; }
.nb-countdown-icon {
	width: 45px; height: 45px; display: grid; place-items: center;
	border-radius: 14px; color: #6d28d9; background: #f0e9ff;
	font-size: 19px; font-weight: 900;
}
.nb-countdown-units {
	margin: 21px 0 17px; display: grid;
	grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.nb-countdown-units > div {
	padding: 14px 8px; border: 1px solid #e6def4;
	border-radius: 13px; background: #fff; text-align: center;
}
.nb-countdown-units strong, .nb-countdown-units span { display: block; }
.nb-countdown-units strong { color: #6d28d9; font-size: 26px; line-height: 1; }
.nb-countdown-units span {
	margin-top: 6px; color: var(--nb-muted); font-size: 9px;
	font-weight: 900; letter-spacing: .07em; text-transform: uppercase;
}
.nb-countdown-progress {
	height: 9px; overflow: hidden; border-radius: 999px; background: #ece8f2;
}
.nb-countdown-progress > span {
	height: 100%; display: block; border-radius: inherit;
	background: linear-gradient(90deg, #8b5cf6, #6d28d9);
	transition: width .4s ease;
}
.nb-donation-countdown > p {
	margin: 15px 0 0; color: #625b70; font-size: 12px; line-height: 1.65;
}
.nb-donation-countdown > p strong { color: #5b21b6; }
@media (max-width: 560px) {
	.nb-countdown-units { grid-template-columns: repeat(2, 1fr); }
}


/* Version 2.4: menu-bar action buttons and logo-first supporters */
.nb-nav-actions { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.nb-find-donor-cta { background:#fff; }
.nb-supporter-logo { min-width:190px; min-height:108px; justify-content:center; }
.nb-supporter-logo img { max-width:155px; max-height:66px; object-fit:contain; }
@media (max-width:1100px) {
	.nb-nav-actions { margin-left:auto; }
	.nb-nav-actions .nb-button { padding:10px 13px; font-size:12px; }
}
@media (max-width:760px) {
	.nb-nav-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; order:4; }
	.nb-nav-actions .nb-button { width:100%; }
}


/* Version 2.5: square supporter logos, single View More action and Gallery repair */
.nb-logo-track {
	gap: 22px;
}

.nb-supporter-logo {
	width: 190px !important;
	min-width: 190px !important;
	height: 190px !important;
	min-height: 190px !important;
	padding: 22px !important;
	display: grid !important;
	place-items: center;
	border-radius: 22px !important;
}

.nb-supporter-logo img {
	width: 100% !important;
	height: 100% !important;
	max-width: 145px !important;
	max-height: 145px !important;
	object-fit: contain !important;
}

.nb-supporter-logo .nb-supporter-mark {
	width: 94px;
	height: 94px;
	border-radius: 25px;
	font-size: 25px;
}

.nb-supporters-more {
	margin-top: 34px;
}

a.nb-gallery-open {
	color: inherit;
	text-decoration: none;
}

body.nb-gallery-modal-open {
	overflow: hidden;
}

.nb-gallery-card-body h2 {
	word-break: break-word;
}

@media (max-width: 760px) {
	.nb-supporter-logo {
		width: 156px !important;
		min-width: 156px !important;
		height: 156px !important;
		min-height: 156px !important;
		padding: 18px !important;
	}

	.nb-supporter-logo img {
		max-width: 120px !important;
		max-height: 120px !important;
	}
}


/* Version 2.6: large square supporter-directory cards */
.nb-supporters-directory {
	grid-template-columns: repeat(3, minmax(280px, 1fr));
	gap: 28px;
}

.nb-supporter-directory-card {
	width: 100%;
	min-height: 0;
	aspect-ratio: 1 / 1;
	padding: 24px;
	overflow: hidden;
	align-items: stretch;
	justify-content: flex-start;
	border-radius: 26px;
}

.nb-supporter-directory-logo {
	width: 100%;
	height: auto;
	aspect-ratio: 1.65 / 1;
	margin-bottom: 17px;
	padding: 22px;
	border-radius: 21px;
	background: #fafafb;
}

.nb-supporter-directory-logo img {
	width: 100%;
	height: 100%;
	max-width: 210px;
	max-height: 175px;
	object-fit: contain;
}

.nb-supporter-directory-logo > span {
	width: 112px;
	height: 112px;
	border-radius: 29px;
	font-size: 29px;
}

.nb-supporter-directory-content {
	min-height: 0;
	align-items: center;
	text-align: center;
}

.nb-supporter-directory-content h2 {
	margin: 7px 0 6px;
	font-size: 23px;
}

.nb-supporter-directory-content p {
	flex: 0 1 auto;
	margin: 0 0 12px;
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-height: 1.5;
}

.nb-supporter-directory-content .nb-text-link {
	margin-top: auto;
}

@media (max-width: 1050px) {
	.nb-supporters-directory {
		grid-template-columns: repeat(2, minmax(260px, 1fr));
	}
}

@media (max-width: 650px) {
	.nb-supporters-directory {
		grid-template-columns: 1fr;
	}

	.nb-supporter-directory-card {
		max-width: 430px;
		margin-inline: auto;
	}
}


/* Version 2.7: layout corrections and complete responsive navigation */
body {
	overflow-x: hidden;
}

input,
select,
textarea,
button {
	max-width: 100%;
}

/* Donor modal: prevent the safety note from moving under the Call button. */
.nb-modal #nb-modal-call {
	margin-top: 4px;
}

.nb-modal .nb-form-note {
	margin: 12px 4px 0;
	position: static;
	line-height: 1.5;
}

/* Compact the empty donor-results area. */
.nb-find-results {
	padding-top: 42px;
}

.nb-results-box {
	padding: 14px 16px 16px;
}

.nb-results-toolbar {
	min-height: 0;
	margin-bottom: 0;
	padding-bottom: 10px;
}

.nb-results-box .nb-empty-state {
	min-height: 140px;
	padding: 14px 16px 20px;
}

.nb-results-box .nb-empty-state > span {
	width: 46px;
	height: 46px;
	border-radius: 14px;
	font-size: 21px;
}

.nb-results-box .nb-empty-state h3 {
	margin: 10px 0 3px;
}

.nb-results-box .nb-empty-state p {
	font-size: 14px;
}

/* Normalise custom WordPress menu items. */
.nb-primary-nav > .menu-item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nb-primary-nav > .menu-item > a {
	display: inline-flex;
	align-items: center;
}

.nb-mobile-nav-actions {
	display: none;
}

/* Multi-image Gallery refinements. */
.nb-gallery-count-row {
	margin-bottom: 28px;
}

.nb-gallery-grid {
	align-items: stretch;
}

.nb-gallery-card {
	height: 100%;
}

.nb-gallery-card-body {
	min-height: 104px;
}

@media (max-width: 980px) {
	.nb-nav {
		position: relative;
		gap: 12px;
	}

	.nb-menu-toggle {
		margin-left: auto;
		order: 3;
	}

	.nb-nav-actions {
		display: none !important;
	}

	.nb-primary-nav {
		z-index: 100;
		top: calc(100% + 8px);
		max-height: calc(100vh - 110px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.nb-primary-nav > a,
	.nb-primary-nav > .menu-item > a {
		width: 100%;
		display: flex;
		padding: 12px;
		border-radius: 9px;
	}

	.nb-primary-nav > .menu-item {
		width: 100%;
	}

	.nb-mobile-nav-actions {
		margin-top: 8px;
		padding-top: 12px;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
		border-top: 1px solid var(--nb-line);
	}

	.nb-mobile-nav-actions .nb-button {
		width: 100%;
		min-height: 46px;
		padding: 0 13px;
		font-size: 13px;
	}
}

@media (max-width: 760px) {
	.nb-page-section {
		padding-block: 48px;
	}

	.nb-panel {
		padding: 23px;
	}

	.nb-section-heading,
	.nb-section-title-row {
		align-items: flex-start;
	}

	.nb-modal {
		padding: 24px 20px;
	}

	.nb-detail-list div {
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.nb-detail-list dt {
		font-size: 12px;
	}

	.nb-results-box .nb-empty-state {
		min-height: 125px;
	}

	.nb-gallery-modal-copy {
		padding: 17px 18px 20px;
	}

	.nb-gallery-modal-copy h2 {
		font-size: 20px;
	}
}

@media (max-width: 560px) {
	.nb-mobile-nav-actions {
		grid-template-columns: 1fr;
	}

	.nb-brand-copy strong {
		font-size: 15px;
	}

	.nb-brand-copy small {
		font-size: 9px;
	}

	.nb-menu-toggle {
		flex: 0 0 auto;
	}

	.nb-results-box {
		padding: 12px;
		border-radius: 17px;
	}

	.nb-results-toolbar {
		padding-bottom: 12px;
	}

	.nb-results-box .nb-empty-state {
		min-height: 112px;
		padding: 10px 8px 16px;
	}

	.nb-results-box .nb-empty-state p {
		font-size: 13px;
	}

	.nb-auth-card h2 {
		font-size: 32px;
	}

	.nb-auth-form-side {
		padding-inline: 15px;
	}

	.nb-modal-backdrop {
		padding: 10px;
		align-items: end;
	}

	.nb-modal {
		width: 100%;
		max-height: calc(100vh - 20px);
		border-radius: 18px 18px 12px 12px;
	}

	.nb-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 390px) {
	.nb-brand-copy small {
		display: none;
	}

	.nb-brand {
		gap: 7px;
	}

	.nb-logo-mark {
		width: 34px;
		height: 34px;
	}

	.nb-menu-toggle {
		width: 40px;
		height: 40px;
	}
}


/* Version 2.8: album-based Gallery and public filters */
.nb-gallery-filter-bar {
	margin-bottom: 28px;
	padding: 18px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	gap: 13px;
	align-items: end;
	border: 1px solid var(--nb-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.045);
}

.nb-gallery-filter-bar label {
	display: grid;
	gap: 7px;
	color: var(--nb-muted);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0.065em;
	text-transform: uppercase;
}

.nb-gallery-filter-bar select {
	width: 100%;
	min-height: 45px;
	padding: 9px 36px 9px 12px;
	border: 1px solid #dfe2e7;
	border-radius: 11px;
	color: var(--nb-ink);
	background: #fff;
	font-size: 13px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: normal;
}

.nb-gallery-filter-reset {
	min-height: 45px;
	white-space: nowrap;
}

.nb-gallery-album-card[hidden] {
	display: none !important;
}

.nb-gallery-album-open {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	display: block;
	overflow: hidden;
	color: inherit;
	background: #f1f2f4;
	text-decoration: none;
	cursor: pointer;
}

.nb-gallery-album-open > img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.nb-gallery-album-card:hover .nb-gallery-album-open > img {
	transform: scale(1.045);
}

.nb-gallery-album-count {
	position: absolute;
	top: 15px;
	left: 15px;
	padding: 7px 10px;
	border-radius: 999px;
	color: #fff;
	background: rgba(21, 24, 31, 0.78);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-size: 11px;
	font-weight: 900;
}

.nb-gallery-category-chips {
	margin-bottom: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.nb-gallery-category-chips span {
	padding: 4px 8px;
	border-radius: 999px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.nb-gallery-filter-empty {
	margin-top: 5px;
}

.nb-gallery-album-stage {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 420px;
	background: #111318;
}

.nb-gallery-album-stage > img {
	width: 100%;
	max-height: 72vh;
	display: block;
	object-fit: contain;
}

.nb-gallery-album-nav {
	position: absolute;
	z-index: 2;
	top: 50%;
	width: 48px;
	height: 48px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	color: #fff;
	background: rgba(0, 0, 0, 0.62);
	font-size: 35px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}

.nb-gallery-album-nav.is-prev {
	left: 16px;
}

.nb-gallery-album-nav.is-next {
	right: 16px;
}

.nb-gallery-album-nav:hover,
.nb-gallery-album-nav:focus-visible {
	background: var(--nb-red);
}

.nb-gallery-album-counter {
	position: absolute;
	right: 16px;
	bottom: 14px;
	padding: 6px 9px;
	border-radius: 999px;
	color: #fff;
	background: rgba(0, 0, 0, 0.68);
	font-size: 11px;
	font-weight: 900;
}

.nb-gallery-modal-meta {
	margin: 7px 0 0;
	color: var(--nb-muted);
	font-size: 12px;
	font-weight: 700;
}

.nb-gallery-album-thumbnails {
	margin-top: 17px;
	padding-top: 15px;
	display: flex;
	gap: 9px;
	overflow-x: auto;
	border-top: 1px solid var(--nb-line);
	scrollbar-width: thin;
}

.nb-gallery-album-thumbnails[hidden] {
	display: none !important;
}

.nb-gallery-album-thumb {
	flex: 0 0 78px;
	width: 78px;
	height: 62px;
	padding: 3px;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 10px;
	background: #f2f3f5;
	cursor: pointer;
}

.nb-gallery-album-thumb img {
	width: 100%;
	height: 100%;
	display: block;
	border-radius: 6px;
	object-fit: cover;
}

.nb-gallery-album-thumb.is-active {
	border-color: var(--nb-red);
}

@media (max-width: 920px) {
	.nb-gallery-filter-bar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nb-gallery-filter-reset {
		width: 100%;
	}
}

@media (max-width: 600px) {
	.nb-gallery-filter-bar {
		grid-template-columns: 1fr;
		padding: 14px;
	}

	.nb-gallery-album-stage {
		min-height: 280px;
	}

	.nb-gallery-album-nav {
		width: 42px;
		height: 42px;
		font-size: 30px;
	}

	.nb-gallery-album-nav.is-prev {
		left: 8px;
	}

	.nb-gallery-album-nav.is-next {
		right: 8px;
	}

	.nb-gallery-album-counter {
		right: 10px;
		bottom: 10px;
	}
}


/* Version 2.9: hero slogan and supporter partner-status filtering */
.nb-hero-slogan {
	width: max-content;
	max-width: 100%;
	margin: -9px 0 17px !important;
	padding: 8px 13px;
	border-left: 3px solid var(--nb-red);
	border-radius: 0 9px 9px 0;
	color: var(--nb-red) !important;
	background: linear-gradient(90deg, rgba(215, 25, 32, 0.09), rgba(215, 25, 32, 0));
	font-size: 16px !important;
	font-weight: 900 !important;
	letter-spacing: 0.015em;
	line-height: 1.35 !important;
}

.nb-supporter-filter-panel {
	margin-bottom: 30px;
	padding: 20px;
	display: grid;
	grid-template-columns: minmax(210px, 1fr) minmax(360px, 2fr) auto;
	gap: 20px;
	align-items: center;
	border: 1px solid var(--nb-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.05);
}

.nb-supporter-filter-panel h2 {
	margin: 4px 0 0;
	font-size: 24px;
	letter-spacing: -0.035em;
}

.nb-supporter-filter-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.nb-supporter-filter-button {
	min-height: 41px;
	padding: 8px 14px;
	border: 1px solid #dfe2e7;
	border-radius: 999px;
	color: #565e6c;
	background: #fff;
	font-size: 12px;
	font-weight: 850;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.nb-supporter-filter-button:hover {
	transform: translateY(-1px);
	border-color: #efabad;
	color: var(--nb-red);
}

.nb-supporter-filter-button.is-active {
	border-color: var(--nb-red);
	color: #fff;
	background: var(--nb-red);
	box-shadow: 0 8px 20px rgba(215, 25, 32, 0.18);
}

.nb-supporter-directory-card[hidden] {
	display: none !important;
}

.nb-partner-status-badge {
	margin-bottom: 8px;
	padding: 5px 9px;
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	color: #445064;
	background: #edf0f4;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.nb-partner-status-badge.is-official_partner {
	color: #8a3600;
	background: #fff0dc;
}

.nb-partner-status-badge.is-supporting_partner {
	color: #174ea6;
	background: #e9f1ff;
}

.nb-partner-status-badge.is-community_partner {
	color: #137344;
	background: #e8f8ef;
}

.nb-partner-status-badge.is-sponsor {
	color: #6d28d9;
	background: #f1eafe;
}

.nb-supporter-filter-empty {
	margin-top: 5px;
}

@media (max-width: 980px) {
	.nb-supporter-filter-panel {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.nb-supporter-filter-panel .nb-count {
		justify-self: start;
	}
}

@media (max-width: 600px) {
	.nb-hero-slogan {
		margin-top: -3px !important;
		font-size: 14px !important;
	}

	.nb-supporter-filter-panel {
		padding: 15px;
		border-radius: 16px;
	}

	.nb-supporter-filter-controls {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nb-supporter-filter-button {
		width: 100%;
		border-radius: 10px;
	}
}


/* Version 3.0: donor login/register choice page */
.nb-account-choice-page {
	min-height: 100vh;
	padding: 46px 20px;
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 15% 15%, rgba(215, 25, 32, 0.09), transparent 28%),
		radial-gradient(circle at 88% 82%, rgba(215, 25, 32, 0.06), transparent 25%),
		linear-gradient(145deg, #fff, #fff8f8);
}

.nb-account-choice-shell {
	width: min(1040px, 100%);
	padding: 31px;
	border: 1px solid var(--nb-line);
	border-radius: 27px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 28px 75px rgba(31, 20, 22, 0.12);
}

.nb-account-choice-brand {
	margin-bottom: 24px;
	display: flex;
	justify-content: center;
}

.nb-account-choice-intro {
	max-width: 650px;
	margin: 0 auto 29px;
	text-align: center;
}

.nb-account-choice-intro h1 {
	margin: 5px 0 9px;
	font-size: clamp(37px, 6vw, 58px);
	letter-spacing: -0.055em;
	line-height: 1.03;
}

.nb-account-choice-intro p {
	margin: 0;
	color: var(--nb-muted);
	font-size: 16px;
}

.nb-account-choice-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.nb-account-choice-card {
	position: relative;
	min-height: 470px;
	padding: 27px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--nb-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 15px 38px rgba(16, 24, 40, 0.06);
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.nb-account-choice-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 5px;
	background: var(--nb-red);
}

.nb-account-choice-card.is-register::before {
	background: #25a867;
}

.nb-account-choice-card:hover {
	transform: translateY(-4px);
	border-color: #efabad;
	box-shadow: 0 23px 52px rgba(16, 24, 40, 0.11);
}

.nb-account-choice-icon {
	width: 58px;
	height: 58px;
	margin-bottom: 20px;
	display: grid;
	place-items: center;
	border-radius: 17px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 27px;
	font-weight: 900;
}

.nb-account-choice-card.is-register .nb-account-choice-icon {
	color: #16824d;
	background: #e9f9f0;
}

.nb-account-choice-card h2 {
	margin: 7px 0 10px;
	font-size: 27px;
	letter-spacing: -0.04em;
}

.nb-account-choice-card > p {
	margin: 0;
	color: var(--nb-muted);
	font-size: 14px;
	line-height: 1.65;
}

.nb-account-choice-card ul {
	margin: 22px 0 27px;
	padding: 0;
	display: grid;
	gap: 11px;
	list-style: none;
}

.nb-account-choice-card li {
	position: relative;
	padding-left: 27px;
	color: #4e5869;
	font-size: 13px;
	font-weight: 700;
}

.nb-account-choice-card li::before {
	content: "✓";
	position: absolute;
	top: -1px;
	left: 0;
	width: 19px;
	height: 19px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: var(--nb-red);
	font-size: 10px;
}

.nb-account-choice-card.is-register li::before {
	background: #25a867;
}

.nb-account-choice-card .nb-button {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.nb-account-choice-card.is-register .nb-button {
	background: #168a52;
	box-shadow: 0 12px 26px rgba(22, 138, 82, 0.22);
}

.nb-account-choice-card.is-register .nb-button:hover {
	background: #107344;
}

.nb-account-choice-secondary,
.nb-account-choice-note {
	margin: 15px 0 0 !important;
	display: block;
	color: var(--nb-red);
	font-size: 12px !important;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
}

.nb-account-choice-note {
	color: var(--nb-muted);
}

.nb-account-choice-footer {
	margin-top: 25px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
}

.nb-account-choice-footer a,
.nb-auth-page-links a {
	color: #5f6878;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
}

.nb-account-choice-footer a:hover,
.nb-auth-page-links a:hover {
	color: var(--nb-red);
}

.nb-auth-page-links {
	margin-top: 17px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

@media (max-width: 760px) {
	.nb-account-choice-page {
		padding: 20px 13px;
		align-items: start;
	}

	.nb-account-choice-shell {
		padding: 22px 16px;
		border-radius: 20px;
	}

	.nb-account-choice-grid {
		grid-template-columns: 1fr;
	}

	.nb-account-choice-card {
		min-height: 0;
		padding: 23px 20px;
	}

	.nb-account-choice-intro {
		margin-bottom: 22px;
	}

	.nb-account-choice-intro p {
		font-size: 14px;
	}

	.nb-account-choice-footer,
	.nb-auth-page-links {
		align-items: stretch;
		flex-direction: column;
		text-align: center;
	}
}

@media (max-width: 390px) {
	.nb-account-choice-card h2 {
		font-size: 24px;
	}

	.nb-account-choice-card {
		border-radius: 17px;
	}
}


/* Version 3.2: compact filter pages and boxed mobile footer */
.nb-gallery-filter-empty,
.nb-supporter-filter-empty {
	display: none !important;
}

@media (max-width: 760px) {
	.nb-footer {
		padding: 16px 0 12px;
		color: #1d2232;
		background:
			radial-gradient(circle at 92% 8%, rgba(215, 25, 32, 0.08), transparent 25%),
			linear-gradient(180deg, #f7f5fb 0%, #f0eef7 100%);
	}

	.nb-footer .nb-container {
		width: min(100% - 24px, 1160px);
	}

	.nb-footer-grid {
		padding: 0;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.nb-footer-grid > div {
		min-width: 0;
	}

	.nb-footer-about,
	.nb-footer-link-card,
	.nb-footer-bottom {
		border: 1px solid #dedbe9;
		border-radius: 21px;
		background: rgba(255, 255, 255, 0.96);
		box-shadow: 0 10px 28px rgba(39, 32, 64, 0.055);
	}

	.nb-footer-about {
		grid-column: 1 / -1;
		padding: 22px 18px;
		text-align: center;
	}

	.nb-footer-about .nb-footer-brand {
		justify-content: center;
	}

	.nb-footer-about .nb-footer-brand strong {
		color: #181c2b;
	}

	.nb-footer-about .nb-footer-brand small {
		color: #687089;
	}

	.nb-footer-about .nb-footer-brand .nb-logo-mark {
		color: #fff;
		background: var(--nb-red);
	}

	.nb-footer-grid .nb-footer-about > p {
		max-width: 460px;
		margin: 15px auto 0;
		color: #59627e;
		font-size: 13px;
		line-height: 1.65;
	}

	.nb-footer-contact {
		width: 100%;
		margin-top: 14px;
		padding: 10px 12px;
		display: block;
		overflow-wrap: anywhere;
		border: 1px solid #e4e0ef;
		border-radius: 11px;
		color: #4f5875;
		background: #faf9fd;
		font-size: 12px;
	}

	.nb-footer-link-card {
		padding: 18px 17px;
		gap: 11px;
	}

	.nb-footer-link-card:nth-child(4) {
		grid-column: 1 / -1;
	}

	.nb-footer-links > strong {
		position: relative;
		margin-bottom: 8px;
		padding-bottom: 10px;
		color: #171b2d;
		font-size: 17px;
		letter-spacing: -0.02em;
	}

	.nb-footer-links > strong::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 32px;
		height: 3px;
		border-radius: 999px;
		background: var(--nb-red);
	}

	.nb-footer-links a {
		color: #59627e;
		font-size: 12px;
		font-weight: 750;
		line-height: 1.45;
	}

	.nb-footer-links a:hover {
		color: var(--nb-red);
		text-decoration: none;
	}

	.nb-footer-bottom {
		margin-top: 12px;
		padding: 15px 17px;
		align-items: flex-start;
		gap: 7px;
		border-top: 1px solid #dedbe9;
		color: #687089;
		font-size: 11px;
		line-height: 1.5;
	}
}

@media (max-width: 370px) {
	.nb-footer-grid {
		grid-template-columns: 1fr;
	}

	.nb-footer-link-card:nth-child(4) {
		grid-column: auto;
	}
}


/* Version 3.3: donor referral dashboard */
.nb-referral-applied-notice {
	display: grid;
	gap: 3px;
}

.nb-referral-dashboard {
	margin: 0 0 30px;
	padding: 24px;
	border: 1px solid #f0cfd1;
	border-radius: 20px;
	background:
		radial-gradient(circle at 96% 6%, rgba(215, 25, 32, 0.09), transparent 27%),
		linear-gradient(145deg, #fff, #fffafa);
	box-shadow: 0 14px 36px rgba(31, 20, 22, 0.055);
}

.nb-referral-dashboard-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.nb-referral-dashboard-heading h2 {
	margin: 4px 0 6px;
	font-size: 27px;
	letter-spacing: -0.04em;
}

.nb-referral-dashboard-heading p {
	max-width: 650px;
	margin: 0;
	color: var(--nb-muted);
	font-size: 13px;
	line-height: 1.6;
}

.nb-referral-total {
	flex: 0 0 auto;
	min-width: 112px;
	padding: 13px 16px;
	display: grid;
	place-items: center;
	border: 1px solid #f0d4d6;
	border-radius: 16px;
	background: #fff;
	text-align: center;
}

.nb-referral-total strong {
	color: var(--nb-red);
	font-size: 30px;
	line-height: 1;
}

.nb-referral-total span {
	margin-top: 6px;
	color: var(--nb-muted);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nb-referral-link-box {
	margin-top: 20px;
	padding: 17px;
	border: 1px solid #e5e7eb;
	border-radius: 15px;
	background: #fff;
}

.nb-referral-link-box > label {
	margin-bottom: 8px;
	display: block;
	color: #343b4a;
	font-size: 12px;
	font-weight: 850;
}

.nb-referral-link-box > div {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 9px;
}

.nb-referral-link-box input {
	min-width: 0;
	height: 46px;
	padding: 0 13px;
	border: 1px solid #dfe2e7;
	border-radius: 10px;
	color: #4d5668;
	background: #fafbfc;
	font-size: 12px;
}

.nb-referral-link-box small {
	margin-top: 8px;
	display: block;
	color: var(--nb-muted);
	font-size: 11px;
}

.nb-referral-link-box small strong {
	color: var(--nb-red);
	letter-spacing: 0.06em;
}

.nb-referral-copy.is-copied {
	border-color: #25a867;
	color: #16824d;
}

.nb-referral-share-actions {
	margin-top: 13px;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.nb-referral-note {
	margin-top: 17px;
	padding: 13px 15px;
	display: grid;
	gap: 3px;
	border-left: 3px solid #ecb733;
	border-radius: 0 11px 11px 0;
	background: #fff8e8;
}

.nb-referral-note strong {
	color: #845400;
	font-size: 12px;
}

.nb-referral-note span {
	color: #6d624d;
	font-size: 11px;
	line-height: 1.55;
}

.nb-referral-history {
	margin-top: 22px;
}

.nb-referral-history-heading {
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.nb-referral-history-heading h3 {
	margin: 0;
	font-size: 17px;
}

.nb-referral-history-heading > span {
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	color: var(--nb-red);
	background: var(--nb-red-soft);
	font-size: 11px;
	font-weight: 900;
}

.nb-referral-table-wrap {
	overflow-x: auto;
	border: 1px solid #e5e7eb;
	border-radius: 13px;
	background: #fff;
}

.nb-referral-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
}

.nb-referral-table th,
.nb-referral-table td {
	padding: 12px 13px;
	border-bottom: 1px solid #eceef1;
	text-align: left;
	white-space: nowrap;
}

.nb-referral-table th {
	color: var(--nb-muted);
	background: #f7f8fa;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.nb-referral-table tr:last-child td {
	border-bottom: 0;
}

.nb-referral-table td strong,
.nb-referral-table td small {
	display: block;
}

.nb-referral-table td small {
	margin-top: 2px;
	color: var(--nb-muted);
}

.nb-referral-profile-status {
	padding: 5px 8px;
	border-radius: 999px;
	color: #596170;
	background: #eef0f3;
	font-size: 9px;
	font-weight: 850;
}

.nb-referral-profile-status.is-complete {
	color: #137344;
	background: #e8f8ef;
}

.nb-referral-empty {
	margin: 0;
	padding: 17px;
	border: 1px dashed #d9dde4;
	border-radius: 12px;
	color: var(--nb-muted);
	background: rgba(255, 255, 255, 0.7);
	font-size: 12px;
	text-align: center;
}

@media (max-width: 700px) {
	.nb-referral-dashboard {
		padding: 18px;
	}

	.nb-referral-dashboard-heading {
		flex-direction: column;
	}

	.nb-referral-total {
		width: 100%;
		grid-template-columns: auto auto;
		justify-content: center;
		gap: 9px;
	}

	.nb-referral-total span {
		margin-top: 0;
	}

	.nb-referral-link-box > div {
		grid-template-columns: 1fr;
	}

	.nb-referral-link-box .nb-button,
	.nb-referral-share-actions .nb-button {
		width: 100%;
	}

	.nb-referral-share-actions {
		display: grid;
		grid-template-columns: 1fr;
	}
}


/* Version 3.5: BS date of birth and automatic age */
.nb-bs-dob-field {
	min-width: 0;
	padding: 14px;
	border: 1px solid var(--nb-line);
	border-radius: 14px;
	background: #fbfbfc;
}

.nb-bs-dob-field .nb-field-label {
	margin-bottom: 9px;
	display: block;
	color: var(--nb-ink);
	font-size: 13px;
	font-weight: 850;
}

.nb-bs-dob-grid {
	display: grid;
	grid-template-columns: 1fr 1.35fr .8fr;
	gap: 8px;
}

.nb-bs-dob-grid label {
	min-width: 0;
	display: grid;
	gap: 5px;
}

.nb-bs-dob-grid label > span {
	color: var(--nb-muted);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.nb-bs-dob-grid select {
	width: 100%;
	min-width: 0;
}

.nb-bs-age-preview {
	margin-top: 10px;
	padding: 10px 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-radius: 10px;
	color: #596170;
	background: #eef0f3;
}

.nb-bs-age-preview span {
	font-size: 10px;
	font-weight: 850;
	text-transform: uppercase;
	letter-spacing: .045em;
}

.nb-bs-age-preview strong {
	color: var(--nb-ink);
	font-size: 13px;
}

.nb-bs-dob-field.is-valid .nb-bs-age-preview {
	color: #137344;
	background: #e8f8ef;
}

.nb-bs-dob-field.is-valid .nb-bs-age-preview strong {
	color: #137344;
}

.nb-bs-dob-field.is-invalid {
	border-color: #e8a2a5;
	background: #fff7f7;
}

.nb-bs-dob-field.is-invalid .nb-bs-age-preview {
	color: #b42318;
	background: #feecec;
}

.nb-bs-dob-field.is-invalid .nb-bs-age-preview strong {
	color: #b42318;
}

.nb-bs-dob-field > small {
	margin-top: 8px;
	display: block;
	color: var(--nb-muted);
	font-size: 10px;
	line-height: 1.5;
}

@media (max-width: 520px) {
	.nb-bs-dob-grid {
		grid-template-columns: 1fr 1fr;
	}

	.nb-bs-dob-grid label:last-child {
		grid-column: 1 / -1;
	}

	.nb-bs-age-preview {
		align-items: flex-start;
		flex-direction: column;
	}
}


/* Version 3.6: homepage Android app download */
.nb-app-download-section {
	padding: 34px 0 82px;
	background: #f8f9fb;
}

.nb-app-download-card {
	position: relative;
	min-height: 440px;
	padding: 54px 58px;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
	gap: 48px;
	align-items: center;
	overflow: hidden;
	border: 1px solid #efcfd1;
	border-radius: 30px;
	background:
		radial-gradient(circle at 92% 10%, rgba(255,255,255,.78), transparent 24%),
		radial-gradient(circle at 5% 100%, rgba(215,25,32,.1), transparent 34%),
		linear-gradient(135deg, #fff 0%, #fff7f7 55%, #fdebed 100%);
	box-shadow: 0 28px 72px rgba(82, 28, 32, .11);
}

.nb-app-download-card::before,
.nb-app-download-card::after {
	content: "";
	position: absolute;
	border: 1px dashed rgba(215, 25, 32, .2);
	border-radius: 50%;
	pointer-events: none;
}

.nb-app-download-card::before {
	width: 380px;
	height: 380px;
	right: -95px;
	top: -125px;
}

.nb-app-download-card::after {
	width: 265px;
	height: 265px;
	right: -35px;
	top: -65px;
}

.nb-app-download-copy {
	position: relative;
	z-index: 2;
}

.nb-app-download-brand {
	margin-bottom: 21px;
	display: flex;
	align-items: center;
	gap: 13px;
}

.nb-app-download-brand img {
	width: 58px;
	height: 58px;
	padding: 7px;
	object-fit: contain;
	border: 1px solid #f3d2d4;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 24px rgba(215, 25, 32, .12);
}

.nb-app-download-brand > div {
	display: grid;
	gap: 3px;
}

.nb-app-download-brand strong {
	font-size: 18px;
	letter-spacing: -.02em;
}

.nb-app-download-copy h2 {
	max-width: 680px;
	margin: 0;
	font-size: clamp(34px, 4.7vw, 55px);
	line-height: 1.03;
	letter-spacing: -.055em;
}

.nb-app-download-copy > p {
	max-width: 660px;
	margin: 18px 0 0;
	color: var(--nb-muted);
	font-size: 16px;
	line-height: 1.7;
}

.nb-app-feature-list {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.nb-app-feature-list span {
	padding: 8px 11px;
	border: 1px solid #edd9db;
	border-radius: 999px;
	color: #596170;
	background: rgba(255,255,255,.78);
	font-size: 11px;
	font-weight: 800;
}

.nb-app-download-actions {
	margin-top: 27px;
	display: flex;
	align-items: center;
	gap: 16px;
}

.nb-app-download-button {
	min-width: 218px;
	min-height: 62px;
	padding: 9px 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	border-radius: 15px;
}

.nb-app-download-button .nb-android-mark {
	font-size: 25px;
	line-height: 1;
}

.nb-app-download-button > span:last-child {
	display: grid;
	text-align: left;
	font-size: 19px;
	line-height: 1.05;
}

.nb-app-download-button small {
	margin-bottom: 4px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.nb-app-download-meta {
	display: grid;
	gap: 3px;
}

.nb-app-download-meta strong {
	font-size: 13px;
}

.nb-app-download-meta span {
	color: var(--nb-muted);
	font-size: 11px;
}

.nb-app-phone-preview {
	position: relative;
	z-index: 2;
	justify-self: center;
	width: 238px;
	height: 390px;
	padding: 15px 13px 19px;
	border: 7px solid #20232b;
	border-radius: 36px;
	background: #20232b;
	box-shadow: 0 30px 55px rgba(28, 22, 24, .24);
	transform: rotate(4deg);
}

.nb-app-phone-speaker {
	position: absolute;
	top: 8px;
	left: 50%;
	width: 52px;
	height: 5px;
	border-radius: 999px;
	background: #444852;
	transform: translateX(-50%);
}

.nb-app-phone-screen {
	height: 100%;
	padding: 63px 20px 28px;
	display: flex;
	align-items: center;
	flex-direction: column;
	border-radius: 24px;
	background:
		radial-gradient(circle at 50% 16%, rgba(215,25,32,.11), transparent 25%),
		#fff;
	text-align: center;
}

.nb-app-phone-screen img {
	width: 82px;
	height: 82px;
	padding: 9px;
	object-fit: contain;
	border-radius: 25px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(215, 25, 32, .18);
}

.nb-app-phone-screen strong {
	margin-top: 22px;
	font-size: 18px;
	letter-spacing: -.03em;
}

.nb-app-phone-screen > span {
	margin-top: 7px;
	color: var(--nb-red);
	font-size: 12px;
	font-weight: 850;
}

.nb-app-phone-actions {
	width: 100%;
	margin-top: 40px;
	display: grid;
	gap: 10px;
}

.nb-app-phone-actions i {
	height: 42px;
	border-radius: 11px;
	background: var(--nb-red);
}

.nb-app-phone-actions i:last-child {
	border: 1px solid #f0d1d3;
	background: #fff4f4;
}

.nb-app-phone-home {
	position: absolute;
	bottom: 7px;
	left: 50%;
	width: 48px;
	height: 4px;
	border-radius: 999px;
	background: #555963;
	transform: translateX(-50%);
}

@media (max-width: 900px) {
	.nb-app-download-card {
		grid-template-columns: 1fr;
		padding: 44px;
	}

	.nb-app-phone-preview {
		position: absolute;
		right: -38px;
		bottom: -155px;
		opacity: .14;
		transform: rotate(13deg) scale(.9);
	}

	.nb-app-download-copy {
		max-width: 730px;
	}
}

@media (max-width: 600px) {
	.nb-app-download-section {
		padding: 18px 0 58px;
	}

	.nb-app-download-card {
		min-height: 0;
		padding: 28px 20px;
		border-radius: 22px;
	}

	.nb-app-download-brand img {
		width: 50px;
		height: 50px;
		border-radius: 15px;
	}

	.nb-app-download-copy h2 {
		font-size: 34px;
	}

	.nb-app-download-copy > p {
		font-size: 14px;
	}

	.nb-app-feature-list {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nb-app-feature-list span {
		border-radius: 10px;
	}

	.nb-app-download-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.nb-app-download-button {
		width: 100%;
	}

	.nb-app-download-meta {
		text-align: center;
	}

	.nb-app-phone-preview {
		display: none;
	}
}


/* Version 4.0: preserve original app section while removing version and size */
.nb-app-download-actions {
	justify-content: flex-start;
}

.nb-app-download-actions .nb-app-download-button {
	margin-right: 0;
}
