/* ==========================================================================
   NBC Camps — brand-led commerce redesign layer
   Additive stylesheet loaded after style.css. All selectors are prefixed
   with .nbcr- so legacy styles are untouched. Mobile-first; breakpoints
   match the legacy grid (46em / 55em / 70em).
   ========================================================================== */

:root {
	--nbcr-blue: #74D1EA;
	--nbcr-teal: #458fa3;
	--nbcr-dark: #2a2b27;
	--nbcr-ink: #333333;
	--nbcr-light: #f8f7f6;
	--nbcr-extralight: #efeeec;
	--nbcr-line: #dbd9d6;
	--nbcr-gray: #59595b;
	--nbcr-success: #2e7d32;
	--nbcr-warn: #b45309;
	--nbcr-link: #1f6e82; /* ≥ 4.5:1 on #fff and #f8f7f6 (brand blue #74D1EA is 1.9:1) */
	/* Type: NBC Display / NBC Heading = Barlow Condensed italic, NBC Sans = Archivo (see @font-face in style.css) */
	--nbcr-heading-font: 'NBC Display', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
	--nbcr-display-font: 'NBC Display', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
	--nbcr-ui-font: 'NBC Sans Bold', 'Helvetica Neue', Helvetica, Arial, sans-serif; /* nav, buttons, labels, eyebrows */
	--nbcr-body-font: 'NBC Sans', sans-serif;
	--nbcr-strong-font: 'NBC Sans Bold', sans-serif;
}

/* Focus visibility for all redesign controls (WCAG 2.4.7) */
.nbcr-proof a:focus-visible,
.nbcr-finder :focus-visible,
.nbcr-story a:focus-visible,
.nbcr-commitments :focus-visible,
.nbcr-campcard a:focus-visible,
.nbcr-regpanel a:focus-visible,
.nbcr-sticky-cta a:focus-visible,
.nbcr-faq-toggle:focus-visible,
.nbcr-finalcta a:focus-visible {
	outline: 3px solid var(--nbcr-teal);
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Homepage hero — full-bleed photo, brand statement, stats, finder card
   -------------------------------------------------------------------------- */
.nbcr-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: 75px; /* clear the fixed site header (75px, 95px from 55em) */
	background: var(--nbcr-dark);
	color: #fff;
}
.nbcr-hero__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	object-position: 62% 30%;
}
.nbcr-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(12, 13, 12, 0.18) 0%, rgba(12, 13, 12, 0.05) 40%, rgba(12, 13, 12, 0.6) 100%),
		linear-gradient(90deg, rgba(12, 13, 12, 0.82) 0%, rgba(12, 13, 12, 0.62) 42%, rgba(12, 13, 12, 0.3) 72%, rgba(12, 13, 12, 0.22) 100%);
}
.nbcr-hero__inner {
	position: relative;
	max-width: 1320px;
	margin: 0 auto;
	padding: 40px 20px 36px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
}
.nbcr-hero__copy { max-width: 690px; }
.nbcr-hero__eyebrow {
	margin: 0 0 10px;
	font-family: var(--nbcr-strong-font);
	font-size: 14px;
	line-height: 1.35;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.nbcr-hero__title {
	margin: 0 0 18px;
	font-family: var(--nbcr-display-font);
	font-style: normal;
	font-weight: normal; 
	font-size: clamp(50px, 13vw, 76px);
	line-height: 0.92;
	letter-spacing: 0;
	text-transform: uppercase;
	text-wrap: balance;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.nbcr-hero__lede {
	margin: 0 0 26px;
	max-width: 600px;
	font-family: var(--nbcr-body-font);
	font-size: 17px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.94);
}
.nbcr-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.nbcr-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 26px;
	border: 2px solid transparent;
	border-radius: 6px;
	font-family: var(--nbcr-strong-font);
	font-size: 14px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.nbcr-hero__btn--primary {
	background: var(--nbcr-blue);
	border-color: var(--nbcr-blue);
	color: var(--nbcr-dark);
}
.nbcr-hero__btn--primary:hover { background: #fff; border-color: #fff; color: var(--nbcr-dark); }
.nbcr-hero__btn--ghost {
	background: transparent;
	border-color: #fff;
	color: #fff;
}
.nbcr-hero__btn--ghost:hover { background: #fff; color: var(--nbcr-dark); }
.nbcr-hero a:focus-visible { outline: 3px solid var(--nbcr-blue); outline-offset: 3px; }

/* Stats strip ("proof strip") */
.nbcr-stats {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	background: var(--nbcr-dark);
	color: #fff;
}
.nbcr-stats--inline {
	border: 1px solid rgba(255, 255, 255, 0.4);
	background: rgba(12, 13, 12, 0.3);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}
.nbcr-stats li {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 14px 12px;
	border-left: 1px solid rgba(255, 255, 255, 0.4);
}
.nbcr-stats li:first-child { border-left: 0; }
.nbcr-stats strong {
	font-family: var(--nbcr-display-font);
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	color: #fff;
}
.nbcr-stats span {
	font-family: var(--nbcr-body-font);
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
}

/* Finder card */
.nbcr-hero__finder { width: 100%; }
.nbcr-finder-card {
	margin: 0;
	padding: 24px 20px 20px;
	background: #fff;
	color: var(--nbcr-ink);
	border-radius: 12px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.nbcr-finder-card__title {
	margin: 0 0 16px;
	font-family: var(--nbcr-display-font);
	font-style: normal;
	font-weight: normal;
	font-size: 20px;
	line-height: 1.15;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #111;
}
.nbcr-finder-card fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.nbcr-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.nbcr-segmented {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.nbcr-segmented input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.nbcr-segmented label {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--nbcr-line);
	border-radius: 8px;
	background: #f4f3f1;
	color: #111;
	font-family: var(--nbcr-strong-font);
	font-style: normal;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.nbcr-segmented label:hover { border-color: #111; }
.nbcr-segmented input:checked + label {
	background: #111;
	border-color: #111;
	color: #fff;
}
.nbcr-segmented input:focus-visible + label {
	outline: 3px solid var(--nbcr-teal);
	outline-offset: 2px;
}
.nbcr-finder-card__field { margin-top: 16px; }
.nbcr-finder-card__label {
	display: block;
	margin: 0 0 6px;
	font-family: var(--nbcr-strong-font);
	font-style: normal;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-finder-card input[type="text"],
.nbcr-finder-card select {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid #cfcdc9;
	border-radius: 8px;
	background: #fff;
	color: #111;
	font-family: var(--nbcr-body-font);
	font-size: 16px;
	line-height: 1.2;
	text-transform: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}
.nbcr-finder-card select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23111' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 14px 9px;
}
.nbcr-finder-card input[type="text"]:focus,
.nbcr-finder-card select:focus {
	border-color: #111;
	outline: 3px solid var(--nbcr-blue);
	outline-offset: 1px;
}
.nbcr-finder-card input::placeholder {
	color: #8a8985;
	opacity: 1;
	font-family: var(--nbcr-body-font);
	font-style: normal;
	font-size: 15px;
	text-transform: none;
}
.nbcr-finder-card__submit {
	display: block;
	width: 100%;
	min-height: 52px;
	margin: 20px 0 0;
	padding: 0 16px;
	border: 0;
	border-radius: 8px;
	background: #111;
	color: #fff;
	font-family: var(--nbcr-strong-font);
	font-size: 14px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.15s ease;
}
.nbcr-finder-card__submit:hover { background: #333; }
.nbcr-finder-card__submit:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }
.nbcr-finder__hint {
	margin: 12px 0 0;
	font-family: var(--nbcr-body-font);
	font-size: 13px;
	line-height: 1.4;
	color: var(--nbcr-gray);
}

@media (min-width: 46em) {
	.nbcr-hero__title { font-size: clamp(64px, 9.5vw, 96px); }
	.nbcr-stats li { padding: 16px 14px; }
	.nbcr-stats strong { font-size: 32px; }
}
@media (min-width: 55em) {
	.nbcr-hero { margin-top: 95px; }
	.nbcr-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 42%);
		gap: 40px;
		align-items: end;
		min-height: 600px;
		padding: 64px 32px 52px;
	}
	.nbcr-hero__eyebrow { font-size: 15px; }
	.nbcr-hero__title { font-size: clamp(60px, 6.4vw, 100px); }
	.nbcr-hero__lede { font-size: 19px; }
	.nbcr-stats { margin-top: 36px; }
	.nbcr-stats span { font-size: 12px; }
	.nbcr-finder-card { padding: 28px 24px 24px; }
	.nbcr-finder-card__title { font-size: 28px; }
}
@media (min-width: 70em) {
	.nbcr-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(360px, 515px);
		gap: 48px;
		min-height: 700px;
		padding: 80px 40px 56px;
	}
	.nbcr-hero__eyebrow { font-size: 16px; }
	.nbcr-hero__title { font-size: clamp(76px, 6.6vw, 104px); }
	.nbcr-hero__lede { font-size: 20px; }
	.nbcr-stats li { padding: 18px 16px; }
	.nbcr-stats strong { font-size: 36px; }
}

/* --------------------------------------------------------------------------
   Shared: buttons, eyebrows, section heads
   -------------------------------------------------------------------------- */
.nbcr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 26px;
	border: 2px solid transparent;
	border-radius: 6px;
	font-family: var(--nbcr-strong-font) !important;
	font-style: normal !important;
	font-size: 14px !important;
	line-height: 1.1;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.nbcr-btn--primary { background: var(--nbcr-blue); border-color: var(--nbcr-blue); color: var(--nbcr-dark); }
.nbcr-btn--primary:hover { background: #fff; border-color: #fff; color: var(--nbcr-dark); }
.nbcr-btn--ghost { background: transparent; border-color: #fff; color: #fff; }
.nbcr-btn--ghost:hover { background: #fff; color: var(--nbcr-dark); }
.nbcr-btn--dark { background: #111; border-color: #111; color: #fff; }
.nbcr-btn--dark:hover { background: #333; border-color: #333; color: #fff; }
.nbcr-btn--outline { background: transparent; border-color: #111; color: #111; }
.nbcr-btn--outline:hover { background: #111; color: #fff; }
.nbcr-btn:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 3px; }

.nbcr-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-family: var(--nbcr-strong-font) !important;
	font-style: normal !important;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nbcr-teal);
}
.nbcr-eyebrow::before { content: ""; flex: none; width: 28px; height: 3px; background: var(--nbcr-blue); }
.nbcr-eyebrow--light { color: var(--nbcr-blue); }
.nbcr-eyebrow--center { justify-content: center; }

.nbcr-section-head { max-width: 1240px; margin: 0 auto 28px; }
.nbcr-section-head h2 {
	margin: 0 0 10px;
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-weight: normal;
	font-size: clamp(32px, 4.2vw, 52px);
	line-height: 0.98;
	letter-spacing: 0;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--nbcr-dark);
}
.nbcr-section-head--light h2 { color: #fff; }
.nbcr-section-head p {
	margin: 0;
	max-width: 38em;
	font-family: var(--nbcr-body-font);
	font-size: 17px;
	line-height: 1.55;
	color: var(--nbcr-gray);
}
.nbcr-section-head--light p { color: #d9d8d4; }
@media (min-width: 55em) {
	.nbcr-section-head { margin-bottom: 36px; }
	.nbcr-section-head--split {
		display: grid;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		gap: 24px 56px;
		align-items: end;
	}
	.nbcr-section-head--split h2 { margin-bottom: 0; }
	.nbcr-section-head--split p { margin-bottom: 8px; }
	.nbcr-section-head p { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   Story band — "The NBC Way" (origin story, reusable)
   -------------------------------------------------------------------------- */
.nbcr-story {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 56px 20px;
	background: var(--nbcr-dark);
	color: #fff;
}
.nbcr-story::before {
	content: "";
	position: absolute;
	z-index: -1;
	right: -12%;
	bottom: -6%;
	width: min(120vw, 1100px);
	height: 55%;
	background: url("../gfx/NBCCamps_Logo-white.svg") no-repeat right bottom / contain;
	opacity: 0.05;
	transform: rotate(-6deg);
	pointer-events: none;
}
.nbcr-story__inner {
	position: relative;
	max-width: 1240px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
}
.nbcr-story h2 {
	margin: 0;
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-weight: normal;
	font-size: clamp(38px, 5.4vw, 76px);
	line-height: 0.94;
	letter-spacing: 0;
	text-transform: uppercase;
	text-wrap: balance;
	color: #fff;
}
.nbcr-story__body p,
.nbcr-story p {
	margin: 0 0 16px;
	max-width: 40em;
	font-family: var(--nbcr-body-font);
	font-size: 17px;
	line-height: 1.6;
	color: #d9d8d4;
}
.nbcr-story p em { font-style: normal; font-family: var(--nbcr-strong-font); color: #fff; }
.nbcr-story .nbcr-btn { margin-top: 6px; }
.nbcr-story .nbcr-stats { margin: 8px 0 0; }
.nbcr-stats--story {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 1px solid rgba(255, 255, 255, 0.28);
	background: rgba(255, 255, 255, 0.04);
}
.nbcr-stats--story li { padding: 18px 16px; gap: 8px; border-left: 1px solid rgba(255, 255, 255, 0.28); }
.nbcr-stats--story li:nth-child(odd) { border-left: 0; }
.nbcr-stats--story li:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, 0.28); }
.nbcr-stats--story strong { font-size: 26px; color: var(--nbcr-blue); }
.nbcr-stats--story span { font-size: 14px; line-height: 1.4; letter-spacing: 0; text-transform: none; color: #d9d8d4; }
.nbcr-story--compact { padding: 44px 20px; }
@media (min-width: 55em) {
	.nbcr-story { padding: 80px 32px; }
	.nbcr-story--compact { padding: 60px 32px; }
	.nbcr-story__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		gap: 40px 64px;
		align-items: start;
	}
	.nbcr-story .nbcr-stats { grid-column: 1 / -1; margin-top: 16px; }
	.nbcr-stats--story { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.nbcr-stats--story li:nth-child(odd) { border-left: 1px solid rgba(255, 255, 255, 0.28); }
	.nbcr-stats--story li:first-child { border-left: 0; }
	.nbcr-stats--story li:nth-child(n+3) { border-top: 0; }
	.nbcr-stats--story strong { font-size: 30px; }
	.nbcr-story__body p, .nbcr-story p { font-size: 18px; }
}
@media (min-width: 70em) {
	.nbcr-story { padding: 96px 40px; }
	.nbcr-story--compact { padding: 72px 40px; }
}

/* --------------------------------------------------------------------------
   Commitment grid — the five NBC commitments
   -------------------------------------------------------------------------- */
.nbcr-commitments { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-commitments__inner { max-width: 1240px; margin: 0 auto; }
.nbcr-commitments ol {
	list-style: none;
	counter-reset: nbcr-commit;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}
.nbcr-commitments li {
	counter-increment: nbcr-commit;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 24px 22px 26px;
	background: var(--nbcr-dark);
	color: #fff;
	border-top: 4px solid var(--nbcr-blue);
	border-radius: 10px;
}
.nbcr-commitments li::before {
	content: "0" counter(nbcr-commit);
	font-family: var(--nbcr-display-font);
	font-size: 56px;
	line-height: 1;
	letter-spacing: 0;
	color: var(--nbcr-blue);
}
.nbcr-commitments h3 {
	margin: 0;
	font-family: var(--nbcr-strong-font) !important;
	font-style: normal !important;
	font-size: 18px;
	line-height: 1.15;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #fff;
}
.nbcr-commitments li p {
	margin: 0;
	font-family: var(--nbcr-body-font);
	font-size: 15px;
	line-height: 1.55;
	color: #d9d8d4;
}
@media (min-width: 46em) {
	.nbcr-commitments ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (min-width: 55em) {
	.nbcr-commitments { padding: 80px 32px; }
	.nbcr-commitments ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (min-width: 70em) {
	.nbcr-commitments { padding: 96px 40px; }
	.nbcr-commitments ol { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.nbcr-commitments li { padding: 28px 22px 30px; }
	.nbcr-commitments li::before { font-size: 52px; }
}

/* --------------------------------------------------------------------------
   Featured camp cards (decision details)
   -------------------------------------------------------------------------- */
.nbcr-campcard {
	background: #fff;
	border: 1px solid var(--nbcr-line);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.nbcr-campcard a.nbcr-campcard__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}
.nbcr-campcard__img { aspect-ratio: 37 / 16; overflow: hidden; background: var(--nbcr-extralight); }
.nbcr-campcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nbcr-campcard__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.nbcr-campcard__sport {
	font-family: var(--nbcr-strong-font);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 11px;
	color: var(--nbcr-teal);
}
.nbcr-campcard h3 {
	font-family: var(--nbcr-strong-font);
	font-size: 17px;
	line-height: 1.3;
	margin: 0;
	color: var(--nbcr-dark);
}
.nbcr-campcard__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 13px;
	color: var(--nbcr-gray);
}
.nbcr-campcard__stars { color: #f0a500; font-size: 13px; letter-spacing: 1px; }
.nbcr-campcard__cta {
	margin-top: auto;
	font-family: var(--nbcr-strong-font);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--nbcr-teal);
}

/* --------------------------------------------------------------------------
   Review highlights
   -------------------------------------------------------------------------- */
.nbcr-reviews { padding: 56px 20px; background: #fff; }
.nbcr-reviews__inner { max-width: 1240px; margin: 0 auto; }
.nbcr-reviews ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
}
.nbcr-reviews li { margin: 0; }
.nbcr-reviews blockquote {
	position: relative;
	height: 100%;
	margin: 0;
	padding: 28px 24px 26px;
	background: var(--nbcr-light);
	border: 1px solid var(--nbcr-line);
	border-radius: 10px;
}
.nbcr-reviews blockquote::before {
	content: "\201C";
	position: absolute;
	top: 6px;
	right: 20px;
	font-family: var(--nbcr-strong-font);
	font-size: 80px;
	line-height: 1;
	color: var(--nbcr-blue);
}
.nbcr-reviews blockquote h3 {
	margin: 8px 0 10px;
	font-family: var(--nbcr-strong-font) !important;
	font-style: normal !important;
	font-size: 18px;
	line-height: 1.15;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--nbcr-dark);
}
.nbcr-reviews blockquote p {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--nbcr-ink);
}
.nbcr-reviews cite {
	font-style: normal;
	font-family: var(--nbcr-strong-font);
	font-size: 12.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-reviews .nbcr-campcard__stars { font-size: 15px; }
@media (min-width: 55em) {
	.nbcr-reviews { padding: 80px 32px; }
	.nbcr-reviews ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 70em) { .nbcr-reviews { padding: 96px 40px; } }

/* --------------------------------------------------------------------------
   Final CTA band
   -------------------------------------------------------------------------- */
.nbcr-finalcta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 72px 20px;
	background: var(--nbcr-dark);
	color: #fff;
	text-align: center;
}
.nbcr-finalcta::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: auto -10% -30% -10%;
	height: 70%;
	background: radial-gradient(ellipse at center bottom, rgba(116, 209, 234, 0.28), rgba(116, 209, 234, 0) 65%);
	pointer-events: none;
}
.nbcr-finalcta h2 {
	margin: 0 0 16px;
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-size: clamp(44px, 7.5vw, 104px);
	line-height: 0.9;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #fff;
}
.nbcr-finalcta p {
	margin: 0 auto 30px;
	max-width: 34em;
	font-size: 18px;
	line-height: 1.55;
	color: #d9d8d4;
}
.nbcr-finalcta a.nbcr-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 0 32px;
	border-radius: 6px;
	background: var(--nbcr-blue);
	color: var(--nbcr-dark);
	font-family: var(--nbcr-strong-font) !important;
	font-size: 15px !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.nbcr-finalcta a.nbcr-btn-primary:hover { background: #fff; }
@media (min-width: 55em) { .nbcr-finalcta { padding: 104px 32px; } }

/* --------------------------------------------------------------------------
   Camp detail: fact badges
   -------------------------------------------------------------------------- */
.nbcr-badges {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 10px 0 0;
	padding: 0;
}
.nbcr-badges li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #fff;
	border: 1px solid var(--nbcr-line);
	border-radius: 999px;
	padding: 5px 12px;
	font-family: var(--nbcr-strong-font);
	font-size: 12.5px;
	color: var(--nbcr-ink);
	white-space: nowrap;
}
.nbcr-badges li span.nbcr-badges__label {
	color: var(--nbcr-gray);
	font-family: var(--nbcr-body-font);
}
.nbcr-fit-summary {
	font-size: 16px;
	line-height: 1.5;
	color: var(--nbcr-gray);
	margin: 10px 0 0;
	max-width: 46em;
}

/* --------------------------------------------------------------------------
   Camp detail: registration summary panel (sidebar)
   -------------------------------------------------------------------------- */
.nbcr-regpanel {
	background: #fff;
	border: 1px solid var(--nbcr-line);
	border-top: 4px solid var(--nbcr-blue);
	border-radius: 4px;
	padding: 18px 16px;
	margin-bottom: 18px;
}
.nbcr-regpanel h2 {
	font-family: var(--nbcr-display-font);
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 12px;
	color: var(--nbcr-dark);
}
.nbcr-regpanel__price {
	font-family: var(--nbcr-heading-font);
	font-style: italic;
	font-size: 30px;
	line-height: 1;
	color: var(--nbcr-dark);
	margin: 0;
}
.nbcr-regpanel__price small {
	display: block;
	font-family: var(--nbcr-body-font);
	font-style: normal;
	font-size: 12px;
	color: var(--nbcr-gray);
	margin-bottom: 4px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.nbcr-regpanel dl {
	margin: 14px 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 12px;
	font-size: 13.5px;
}
.nbcr-regpanel dt { font-family: var(--nbcr-strong-font); color: var(--nbcr-gray); }
.nbcr-regpanel dd { margin: 0; color: var(--nbcr-ink); }
.nbcr-regpanel .nbcr-avail--open { color: var(--nbcr-success); font-family: var(--nbcr-strong-font); }
.nbcr-regpanel .nbcr-avail--limited { color: var(--nbcr-warn); font-family: var(--nbcr-strong-font); }
.nbcr-regpanel__actions { display: flex; flex-direction: column; gap: 8px; }
.nbcr-regpanel__actions a {
	display: block;
	text-align: center;
	padding: 13px 14px;
	border-radius: 3px;
	font-family: var(--nbcr-strong-font);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
}
.nbcr-regpanel__actions .nbcr-btn-register { background: var(--nbcr-teal); color: #fff; }
.nbcr-regpanel__actions .nbcr-btn-register:hover { background: #3a7b8d; color: #fff; }
.nbcr-regpanel__actions .nbcr-btn-fit {
	border: 2px solid var(--nbcr-teal);
	color: var(--nbcr-teal);
	background: #fff;
}
.nbcr-regpanel__actions .nbcr-btn-fit:hover { background: var(--nbcr-extralight); }
.nbcr-regpanel__phone {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--nbcr-gray);
	text-align: center;
}
.nbcr-regpanel__phone a { font-family: var(--nbcr-strong-font); color: var(--nbcr-teal); white-space: nowrap; }
.nbcr-regpanel__note { margin: 10px 0 0; font-size: 12px; color: var(--nbcr-gray); }

/* --------------------------------------------------------------------------
   Camp detail: mobile sticky CTA
   -------------------------------------------------------------------------- */
.nbcr-sticky-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9000;
	background: #fff;
	border-top: 1px solid var(--nbcr-line);
	box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.12);
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.nbcr-sticky-cta__price { line-height: 1.15; min-width: 0; }
.nbcr-sticky-cta__price strong {
	display: block;
	font-family: var(--nbcr-heading-font);
	font-style: italic;
	font-size: 19px;
	color: var(--nbcr-dark);
	white-space: nowrap;
}
.nbcr-sticky-cta__price span { font-size: 11px; color: var(--nbcr-gray); text-transform: uppercase; letter-spacing: 0.03em; }
.nbcr-sticky-cta a.nbcr-btn-register {
	flex-shrink: 0;
	background: var(--nbcr-teal);
	color: #fff;
	font-family: var(--nbcr-strong-font);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 13px 22px;
	border-radius: 3px;
	text-decoration: none;
}
/* Safe bottom padding so the sticky bar never covers content or the footer */
body.nbcr-has-sticky-cta main { padding-bottom: 78px; }
@media only screen and (min-width: 55em) {
	.nbcr-sticky-cta { display: none; }
	body.nbcr-has-sticky-cta main { padding-bottom: 0; }
}

/* --------------------------------------------------------------------------
   Camp detail: fit module
   -------------------------------------------------------------------------- */
.nbcr-fit dl {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
}
.nbcr-fit dt {
	font-family: var(--nbcr-strong-font);
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nbcr-teal);
	margin-bottom: 3px;
}
.nbcr-fit dd { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--nbcr-ink); }
.nbcr-fit dd ul { margin: 0; padding-left: 18px; }
@media only screen and (min-width: 46em) {
	.nbcr-fit dl { grid-template-columns: repeat(2, 1fr); }
}
@media only screen and (min-width: 70em) {
	.nbcr-fit dl { grid-template-columns: repeat(3, 1fr); }
}

/* --------------------------------------------------------------------------
   FAQ accordion (accessible)
   -------------------------------------------------------------------------- */
.nbcr-faq-toggle {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: none;
	border: 0;
	border-top: 1px solid var(--nbcr-line);
	padding: 14px 4px;
	margin: 0;
	text-align: left;
	cursor: pointer;
	font-family: var(--nbcr-strong-font);
	font-size: 15.5px;
	color: var(--nbcr-dark);
}
.nbcr-faq-toggle::after {
	content: "+";
	flex-shrink: 0;
	font-family: var(--nbcr-body-font);
	font-size: 20px;
	color: var(--nbcr-teal);
	line-height: 1;
}
.nbcr-faq-toggle[aria-expanded="true"]::after { content: "\2212"; }
.nbcr-faq-panel { padding: 0 4px 16px; font-size: 14.5px; line-height: 1.6; color: var(--nbcr-gray); }
.nbcr-faq-panel[hidden] { display: none; }
/* No-JS fallback: panels render open until the accordion script collapses them */

/* --------------------------------------------------------------------------
   Homepage section rhythm helpers
   -------------------------------------------------------------------------- */
/* .nbcr-section-head — see Shared block above */
.nbcr-cardgrid > li,
.nbcr-reviews ul > li,
.nbcr-commitments ol > li { list-style: none; } /* legacy style.css sets list-style: disc on every ul li */
.nbcr-cardgrid {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 1100px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media only screen and (min-width: 46em) {
	.nbcr-cardgrid { grid-template-columns: repeat(2, 1fr); }
}
@media only screen and (min-width: 70em) {
	.nbcr-cardgrid { grid-template-columns: repeat(3, 1fr); }
}

/* ==========================================================================
   SITE-WIDE TYPOGRAPHY LAYER
   Headings use the display face (Barlow Condensed ExtraBold Italic) everywhere
   the legacy condensed italics (Futura PT / GT America Compressed) were used in
   style.css; UI text (nav, buttons, labels, breadcrumbs) is overridden to
   Archivo Bold just below.
   !important is deliberate: the legacy sheet sets these with high-specificity
   selectors and, in places, its own !important.
   ========================================================================== */
h1, h2, h3, h4, h5, h6, .as-h2, .as-h3, .calloutHeading, .sectionSlug, .sectionSubHeading, .as-callout,
.slideCaption h1, .slideCaption h2, .slideCaption h3, .slideCaption .category, .imageWrap .caption, .mailContact,
.blogAuthorDate, .sidebarMessage, .faq--answerList .faq .question h3,
.mediaList .mediaList-item .square a, .mediaList .mediaList-item .square a span, .mediaList .mediaList-item .square a span em,
.campsByLocation dt, .areaBlock h2, .gridderBlocks li.areaBlockLink a, .campTabsWrapper .campTabs li,
.campPrimaryHeading h1, .campDetailsBox h2, .campLocation .vcard h3, .reviewsListing li .review .review-quote h5,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session .notification,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option a,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta strong,
.recent-news-link, .tile-h3, .campNewsTips .mediaList-content .blogContent .tile-h3,
.campNewsTips .mediaList-content.featuredCamp .blogContent h3, .mediaList-item .mediaSlug,
.nextPage a, .prevPage a, .sidebarCategoryListing li a, .sidebarNavMenu.notNavigation li a,
.breadcrumbs, .campBreadcrumbs, .searchBreadcrumbs,
nav ul li a, .drawer-dropdown-menu-item, .navbarWrapper nav ul .drawer-dropdown ul li .bigNavItem, .nav-list, .nav-list li,
.homeSlideshowWrapper, .cart-box-inner-wrapper .lbl, .cart-box-inner-wrapper .classDescription, .cart-box-inner-wrapper h2,
.cart-box-inner-wrapper button, .programSocial .programTitle, .teamBlock h3, .teamBlock dl dt, .siteMap li, .arrow_box,
.authorProfile h4, .authorProfile .authorLinks li a, .circle, .searchOverlay .searchOverlayContent h3,
.cta, .formCta, .button, .altButton, .blockCta, .blogContent .mini-button, label, input[type="button"], input[type="submit"], button,
.campNewsTipsContent .calloutHeading, .campNewsTipsContent .calloutHeading.story-heading {
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-weight: normal;
}
/* UI text: Archivo Bold, upright, tracked (Figma "Label/Button") */
.breadcrumbs, .campBreadcrumbs, .searchBreadcrumbs,
nav ul li a, .drawer-dropdown-menu-item, .navbarWrapper nav ul .drawer-dropdown ul li .bigNavItem, .nav-list, .nav-list li,
.cart-box-inner-wrapper .lbl, .cart-box-inner-wrapper .classDescription, .cart-box-inner-wrapper button,
.authorProfile .authorLinks li a, .campTabsWrapper .campTabs li, .blogAuthorDate, .mediaList-item .mediaSlug,
.nextPage a, .prevPage a, .sidebarCategoryListing li a, .sidebarNavMenu.notNavigation li a, .siteMap li, .arrow_box, .circle,
.teamBlock dl dt, .campsByLocation dt, .gridderBlocks li.areaBlockLink a,
.cta, .formCta, .button, .altButton, .blockCta, .blogContent .mini-button, label, input[type="button"], input[type="submit"], button,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option a {
	font-family: var(--nbcr-ui-font) !important;
}
::placeholder,
.searchOverlay .fieldContainer ::placeholder {
	font-family: var(--nbcr-body-font) !important;
	font-style: normal !important;
}

/* Heading scale (Figma 00 Foundations): h1/h2 in the condensed display face,
   h3 and below in Archivo Bold so long legacy headings stay readable. */
h1, h2, .as-h2 { letter-spacing: 0; }
h1 {
	font-size: clamp(2.5rem, 5vw, 4rem);
	line-height: 0.95;
	text-transform: uppercase;
}
h2, .as-h2 {
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	line-height: 1;
	text-transform: uppercase;
}
h3, .as-h3, h4, h5, h6 {
	font-family: var(--nbcr-ui-font) !important;
}
h3, .as-h3 {
	font-size: clamp(1.2rem, 1.6vw, 1.5rem);
	line-height: 1.25;
	letter-spacing: -0.01em;
}
h4 { font-size: 1rem; line-height: 1.3; letter-spacing: 0.04em; text-transform: uppercase; }
h5, h6 { letter-spacing: 0.06em; text-transform: uppercase; }

/* Legacy sport/page hero captions */
.slideCaption h1, .featureLayout .slideCaption h1, .homeSlideshowWrapper .slideCaption h1 {
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-size: clamp(3rem, 7vw, 6rem) !important;
	line-height: 0.92 !important;
	letter-spacing: 0 !important;
	text-transform: uppercase;
}
.slideCaption h2 {
	font-size: clamp(1.1rem, 1.7vw, 1.5rem) !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	font-family: var(--nbcr-body-font) !important;
	max-width: 36em;
}

/* Header navigation: small, bold, tracked uppercase (mockup) */
nav ul li a, .nav-list li a {
	font-size: 14px !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
}
.drawer-dropdown-menu-item, .drawer-dropdown-menu-item span { font-size: 15px !important; letter-spacing: 0.04em; }
.navbarWrapper nav ul .drawer-dropdown ul li .bigNavItem { font-size: 16px !important; }
@media (min-width: 85em) { nav ul li a, .nav-list li a { font-size: 15px !important; } }

/* Legacy buttons and text CTAs */
.button, .altButton, .formCta, .blockCta, input[type="submit"], input[type="button"] {
	font-size: 14px !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase;
	border-radius: 6px;
}
.cta { font-size: 14px !important; letter-spacing: 0.05em !important; text-transform: uppercase; }

/* Breadcrumbs */
.breadcrumbs, .campBreadcrumbs, .searchBreadcrumbs {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.campBreadcrumbs a, .breadcrumbs a, .searchBreadcrumbs a { color: var(--nbcr-gray); text-decoration: none; }
.campBreadcrumbs a:hover, .breadcrumbs a:hover, .searchBreadcrumbs a:hover { color: var(--nbcr-dark); }
.campBreadcrumbs span, .breadcrumbs span, .searchBreadcrumbs span { color: #b3b2b1; }
.campBreadcrumbs .inquiriesContactInfo { font-family: var(--nbcr-body-font) !important; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--nbcr-gray); }
.campBreadcrumbs .inquiriesContactInfo strong, .campBreadcrumbs .inquiriesContactInfo em { font-style: normal; font-family: var(--nbcr-strong-font); color: var(--nbcr-dark); }

/* Homepage: program-paths intro */
.find-program-section { padding-top: 56px; padding-bottom: 40px; }
.find-program-section .h3-black {
	font-size: clamp(2rem, 3.2vw, 2.75rem) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.015em !important;
	text-transform: uppercase;
	text-wrap: balance;
	margin-bottom: 18px;
}
.find-program-section .copy-block { font-size: 17px; line-height: 1.6; color: var(--nbcr-ink); }
.find-program-section .copy-block strong { font-family: var(--nbcr-strong-font); }

/* Featured camp cards */
.nbcr-campcard { border-color: transparent; border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); }
.nbcr-campcard__body { padding: 16px 18px 18px; }
.nbcr-campcard__sport { font-size: 11.5px; letter-spacing: 0.14em; }
.nbcr-campcard h3 {
	font-size: 18px !important;
	line-height: 1.15;
	letter-spacing: 0.005em;
	text-transform: uppercase;
}
.nbcr-campcard__cta { color: var(--nbcr-dark); font-size: 13px; }
.nbcr-campcard__link:hover .nbcr-campcard__cta { color: var(--nbcr-teal); }

/* Redesign components that used the old italic heading token */
.nbcr-sticky-cta__price strong { font-style: normal; }
.nbcr-regpanel__price { font-style: normal; }

/* ==========================================================================
   CAMP DETAIL PAGE (mockup): breadcrumb, headline, rating, badges, tabs,
   session card, section headers
   ========================================================================== */
.campBreadcrumbs { padding: 18px clamp(20px, 3.6vw, 52px) 6px; }

.campPrimaryHeading { padding: 20px 0 28px; border-bottom: 0; }
.campPrimaryHeading .brandLogo { max-height: 48px; width: auto; margin-bottom: 14px; }
.campPrimaryHeading h1 {
	margin: 0 0 18px;
	font-size: clamp(2.4rem, 4.6vw, 4.25rem) !important;
	line-height: 0.93 !important;
	letter-spacing: -0.02em !important;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--nbcr-dark);
}
.nbcr-rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 0 0 18px;
	font-family: var(--nbcr-strong-font);
	font-size: 16px;
	color: var(--nbcr-dark);
}
.nbcr-rating__stars {
	position: relative;
	display: inline-block;
	font-size: 26px;
	line-height: 1;
	letter-spacing: 2px;
	color: #dcdad6;
}
.nbcr-rating__stars::before {
	content: "\2605\2605\2605\2605\2605";
	position: absolute;
	top: 0;
	left: 0;
	width: var(--nbcr-rating-pct, 100%);
	overflow: hidden;
	white-space: nowrap;
	color: #f0b429;
}
.nbcr-rating .rating { font-size: 17px; letter-spacing: 0.01em; }
.nbcr-rating .reviewsCta {
	float: none;
	display: inline-block;
	padding-bottom: 1px;
	border-bottom: 2px solid var(--nbcr-blue);
	font-family: var(--nbcr-strong-font) !important;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nbcr-dark);
}
.nbcr-rating .reviewsCta:hover { color: var(--nbcr-teal); border-color: var(--nbcr-teal); }
.nbcr-fit-summary { margin: 0 0 20px; max-width: 42em; font-size: 18px; line-height: 1.55; color: var(--nbcr-ink); }
.nbcr-badges { gap: 8px; margin: 0; }
.nbcr-badges li {
	padding: 8px 14px;
	border: 0;
	background: #e9e7e3;
	font-size: 13px;
	color: var(--nbcr-dark);
}
.nbcr-badges li span.nbcr-badges__label { color: var(--nbcr-gray); }

/* Gallery grid */
.galleryBox { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.galleryBox .galleryItem { display: block; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 8px; background: var(--nbcr-extralight); }
.galleryBox .galleryItem img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.galleryBox .galleryItem:hover img { transform: scale(1.03); }
@media (min-width: 46em) { .galleryBox { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Section tabs (injected by jquery.section-scroll into #putSubnavHere) */
.campTabsWrapper {
	background: #fff;
	border-bottom: 1px solid var(--nbcr-line);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}
.campTabsContainer { max-width: 1320px; margin: 0 auto; padding: 8px 20px; }
#putSubnavHere .subnav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	text-align: left;
}
#putSubnavHere .subnav li, #putSubnavHere .subnav li:last-child { display: inline-block; margin: 0; padding: 0; }
#putSubnavHere .subnav li a, #putSubnavHere .subnav li:last-child a {
	display: inline-block;
	padding: 9px 14px;
	border: 0 !important;
	border-radius: 8px;
	background: transparent !important;
	font-family: var(--nbcr-display-font) !important;
	font-size: 13px !important;
	line-height: 1.1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nbcr-dark) !important;
	transition: background 0.15s ease;
}
#putSubnavHere .subnav li a:hover { background: var(--nbcr-extralight) !important; }
#putSubnavHere .subnav li.active a, #putSubnavHere .subnav li.active:last-child a { background: var(--nbcr-blue) !important; color: var(--nbcr-dark) !important; }
@media (min-width: 55em) { .campTabsContainer { padding: 10px 32px; } }

/* Camp detail section boxes */
.campDetailsBox { border-bottom: 1px solid var(--nbcr-line); }
.campDetailsBox .campDetailsBox--header h2, .campDetailsBox h2 {
	font-size: clamp(1.6rem, 2.4vw, 2.1rem) !important;
	line-height: 1 !important;
	letter-spacing: -0.015em !important;
	text-transform: uppercase;
	color: var(--nbcr-dark) !important;
}
.campDetailsBox h3.sectionCaption { font-size: 1.35rem; line-height: 1.2; text-transform: none; }

/* Session / registration card (sidebar) */
.nbcr-regpanel {
	padding: 0;
	border: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}
.nbcr-regpanel__head { padding: 14px 20px; background: #111; color: #fff; }
.nbcr-regpanel__head h2 {
	margin: 0;
	font-size: 15px !important;
	line-height: 1.2 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase;
	color: #fff !important;
}
.nbcr-regpanel__body { padding: 18px 20px 20px; }
.nbcr-regpanel__pricerow {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--nbcr-line);
}
.nbcr-regpanel__price { margin: 0; font-size: 36px; line-height: 1; color: var(--nbcr-dark); }
.nbcr-regpanel__price small {
	display: block;
	margin-bottom: 6px;
	font-family: var(--nbcr-strong-font);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-regpanel__avail { font-family: var(--nbcr-strong-font); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.6; }
.nbcr-regpanel dl {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 10px 14px;
	margin: 14px 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--nbcr-line);
	font-size: 14.5px;
}
.nbcr-regpanel dt {
	padding-top: 3px;
	font-family: var(--nbcr-strong-font);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-regpanel dd { margin: 0; line-height: 1.4; color: var(--nbcr-ink); }
.nbcr-regpanel__actions { gap: 10px; }
.nbcr-regpanel__actions a { padding: 15px 14px; border-radius: 8px; font-size: 14px; letter-spacing: 0.05em; }
.nbcr-regpanel__actions .nbcr-btn-register { background: var(--nbcr-blue); color: var(--nbcr-dark); }
.nbcr-regpanel__actions .nbcr-btn-register:hover { background: #111; color: #fff; }
.nbcr-regpanel__actions .nbcr-btn-fit { border: 2px solid #111; background: #fff; color: #111; }
.nbcr-regpanel__actions .nbcr-btn-fit:hover { background: #111; color: #fff; }
.nbcr-regpanel__phone { margin-top: 14px; font-size: 14px; }
.nbcr-regpanel__phone a { font-family: var(--nbcr-body-font); color: var(--nbcr-dark); }
.nbcr-sticky-cta a.nbcr-btn-register { border-radius: 8px; background: var(--nbcr-blue); color: var(--nbcr-dark); }

/* Gallery "watch video" tile + sidebar brochure link */
.galleryBox .view-video {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 5 / 4;
	border-radius: 8px;
	background: var(--nbcr-dark);
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-family: var(--nbcr-strong-font) !important;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.4;
}
.galleryBox .view-video:hover { background: #111; }
.galleryBox .view-video b { display: block; font-size: 20px; color: var(--nbcr-blue); }
.campSidebarPrimaryCtas { margin: 12px 0 18px; padding: 0; background: transparent !important; }
.campSidebarPrimaryCtas a, .campSidebarPrimaryCtas a.cta {
	display: block;
	padding: 13px 14px;
	border: 2px solid var(--nbcr-line);
	border-radius: 8px;
	background: transparent !important;
	color: var(--nbcr-dark) !important;
	text-align: center;
	text-decoration: none;
	font-size: 13px !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
}
.campSidebarPrimaryCtas a:hover, .campSidebarPrimaryCtas a.cta:hover { border-color: var(--nbcr-dark); }

/* Form controls: upright type everywhere (legacy used compressed italics) */
select, input, textarea, button, .fieldContainer select, .selectContainer select {
	font-style: normal !important;
}
select, .fieldContainer select, .selectContainer select {
	font-family: var(--nbcr-ui-font) !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="number"], textarea {
	font-family: var(--nbcr-body-font) !important;
	text-transform: none;
}

/* Legacy sport-page finder heading (id selector in style.css) */
#campSearchTool h2.c-highlight, .formContainer h2.c-highlight {
	font-family: var(--nbcr-display-font) !important;
	font-style: normal !important;
	font-size: 22px !important;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}
.formContainer.tiltedContainer { border-radius: 12px; }

/* Camp "Dates & Prices" — Figma "Choose a session". The markup comes from
   CampSessions::detail() and must stay byte-identical, so this is CSS only.
   Each .session is a card; dates lead, the session name sits under them. */
.campDetailsBox.specialtyBox { border: 0 !important; border-radius: 0; overflow: visible; background: transparent; box-shadow: none; }
.campDetailsBox.specialtyBox .campDetailsBox--header {
	padding: 0 0 16px;
	border: 0;
	background: transparent !important;
	text-align: left;
}
.campDetailsBox.specialtyBox .campDetailsBox--header:after { display: none; }
.campDetailsBox.specialtyBox .campDetailsBox--header h2 {
	margin: 0;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2rem, 3.2vw, 2.75rem) !important;
	line-height: 1;
	text-align: left;
	color: var(--nbcr-dark) !important;
}
.campDetailsBox.specialtyBox .campDetailsBox--header h2 .icon { display: none; }
.campDetailsBox.specialtyBox .campDetailsBox--header p { margin: 8px 0 0; font-size: 14px; color: var(--nbcr-gray); }
.campDetailsBox.specialtyBox .campDetailsBox--content { padding: 0; background: transparent; }

.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session:nth-child(odd) {
	margin: 0 0 14px;
	padding: 22px 20px 18px;
	border: 1px solid var(--nbcr-line);
	border-radius: 14px;
	background: #fff;
	color: var(--nbcr-dark);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session .notification {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 12px;
	border-radius: 999px;
	background: #fdeee2;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--nbcr-warn);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3 {
	margin: 0 0 14px;
	max-width: none;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 16px !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
	text-transform: none;
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3 a {
	display: flex;
	flex-direction: column-reverse; /* dates first, session name under them */
	gap: 6px;
	color: var(--nbcr-gray);
	text-decoration: none !important;
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3 a .dates {
	font-family: var(--nbcr-display-font) !important;
	font-size: 30px;
	line-height: 1;
	text-transform: uppercase;
	color: var(--nbcr-dark);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3 a:hover .label { color: var(--nbcr-link); text-decoration: underline; }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--details { margin: 0; font-size: 15px; line-height: 1.5; color: var(--nbcr-gray); }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--details .session--details-program { padding: 3px 0; }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--details strong {
	font-family: var(--nbcr-ui-font) !important;
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--nbcr-gray);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--details .note {
	display: block;
	margin: 8px 0 4px;
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--nbcr-light);
	font-size: 13px;
	line-height: 1.5;
	white-space: pre-line; /* feed notes carry line breaks */
	color: var(--nbcr-gray);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session:nth-child(odd) .session--pricing-option {
	margin: 0 0 8px;
	padding: 12px 14px;
	border: 0;
	border-radius: 12px;
	background: var(--nbcr-light);
	font-size: 15px;
	color: var(--nbcr-dark);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .session--details-program { padding: 0; align-items: center; }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option strong { font-family: var(--nbcr-ui-font) !important; }
/* Price column: the fee is a bare text node after the timeframe label, so size the column and shrink the label */
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .bp2-col-one-third {
	font-family: var(--nbcr-display-font) !important;
	font-size: 28px;
	line-height: 1.05;
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .bp2-col-one-third strong {
	display: block;
	margin-bottom: 4px;
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option br[clear] { display: none; }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .availability--open,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .availability--almost {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none !important;
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .availability--open { background: #e3f1e4; color: var(--nbcr-success); }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--pricing-option .availability--almost { background: #fdeee2; color: var(--nbcr-warn); }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .cta--register {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 8px 0 0;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: var(--nbcr-blue) !important;
	box-shadow: none;
	font-size: 13px !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: var(--nbcr-dark) !important;
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .cta--register:hover { background: var(--nbcr-dark) !important; color: #fff !important; }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--notes { margin-top: 10px; font-size: 13px; font-style: normal; text-align: left; color: var(--nbcr-gray); }
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta {
	margin: 4px 0 0;
	padding: 16px 20px;
	border: 0;
	border-radius: 12px;
	background: rgba(116, 209, 234, 0.2) !important;
	font-size: 15px;
	text-align: left;
	text-transform: none;
	color: var(--nbcr-dark);
}
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta strong,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta a,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta em,
.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .foot-cta .phone {
	font-family: var(--nbcr-ui-font) !important;
	font-style: normal;
	color: var(--nbcr-dark) !important;
}
@media only screen and (min-width: 46em) {
	.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session,
	.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session:nth-child(odd) { padding: 26px 28px 22px; }
	.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .session--header h3 a .dates { font-size: 34px; }
	.campDetailsBox.specialtyBox .campDetailsBox--content .camp--schedule .cta--register { margin: 0; }
}

/* Header: every nav text node in the display face; cart as a blue pill (mockup) */
.headerContainer, .headerContainer *:not(svg):not(input):not(textarea) { font-style: normal !important; }
.headerContainer, .menuParentLabel, .childNavItems li a span, .Navigation-item a, .drawer-dropdown-menu li a {
	font-family: var(--nbcr-ui-font) !important;
}
.nav-list li.navItemCartIcon a.cartWidgetActionButton {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	border-radius: 8px;
	background: var(--nbcr-blue);
	color: var(--nbcr-dark) !important;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 13px !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}
.nav-list li.navItemCartIcon a.cartWidgetActionButton:hover { background: #111; color: #fff !important; }
.nav-list li.navItemCartIcon a.cartWidgetActionButton .icon { width: 18px; height: 18px; }
.nav-list li.navItemCartIcon a.cartWidgetActionButton .navCartLabel { line-height: 1; }
.nbcr-regpanel__more { margin: 12px 0 0; text-align: center; font-size: 13px; }
.nbcr-regpanel__more a { color: var(--nbcr-gray); font-family: var(--nbcr-strong-font); letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; border-bottom: 2px solid var(--nbcr-blue); }
.nbcr-regpanel__more a:hover { color: var(--nbcr-dark); }

/* Search results: active guided-finder filters */
.nbcr-search-filters { margin: 10px 0 0; font-size: 15px; color: var(--nbcr-gray); }
.nbcr-search-filters strong { font-family: var(--nbcr-strong-font); color: var(--nbcr-dark); }
.nbcr-search-filters a { margin-left: 10px; font-family: var(--nbcr-strong-font); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--nbcr-teal); border-bottom: 2px solid var(--nbcr-blue); text-decoration: none; }

/* ==========================================================================
   ACCESSIBILITY (WS9)
   ========================================================================== */
/* Body-copy links: brand light blue fails contrast; use the accessible teal and an underline */
main a:not([class]), .copy-block a, .story-details a, .faq-answer a, .nbcr-faq-panel a, .sectionSummary a, .campDetailsBox--content a:not([class]) {
	color: var(--nbcr-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
main a:not([class]):hover, .copy-block a:hover { color: var(--nbcr-dark); }
/* Legacy light-blue text links with classes keep their treatment but gain contrast */
a.cta:not(.button), .link-cta, .recent-news-link, .mediaCta, .goToItem { color: var(--nbcr-link); }

/* Skip link: visible on focus only */
.nbcr-skip {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 10000;
	padding: 12px 18px;
	border-radius: 0 0 8px 8px;
	background: var(--nbcr-dark);
	color: #fff !important;
	font-family: var(--nbcr-strong-font) !important;
	font-size: 14px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	transition: top 0.15s ease;
}
.nbcr-skip:focus { top: 0; outline: 3px solid var(--nbcr-blue); outline-offset: 2px; }

/* Consistent keyboard focus on legacy controls */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid var(--nbcr-teal);
	outline-offset: 2px;
}
nav a:focus-visible { outline-color: var(--nbcr-blue); }

/* Camp gallery: neutralise the legacy float/clearfix layout (the ::before/::after clearfix
   became an empty grid cell) and let the grid + aspect-ratio tiles size the images */
.galleryBox::before, .galleryBox::after { display: none !important; content: none !important; }
.galleryBox a.galleryItem, .galleryBox a.view-video {
	float: none !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	border: 0 !important;
	position: relative;
}
.galleryBox a.galleryItem { background: var(--nbcr-extralight) !important; }
.galleryBox a.galleryItem img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.galleryBox a.view-video span { display: block !important; width: auto !important; height: auto !important; }

/* Search results sit directly beneath the fixed header, and style.css offsets them by a
   hardcoded 95px — exactly the header's height, leaving zero clearance. The staging
   environment-label bar (16px) and a production announcement banner both make the header
   taller, which then covers the breadcrumb. Follow the measured height published by
   nbc-redesign.js; the 95px fallback keeps the current production spacing if JS is off. */
.searchSubHeader { padding-top: var(--nbc-header-h, 95px); }

/* ---------- brochure opt-in dialog ----------
 * Replaces the Magnific iframe popup. Native <dialog>, so the backdrop, focus trap and
 * Esc handling come from the browser rather than from us.
 */
.nbcr-optin {
	width: min(30rem, calc(100vw - 2rem));
	padding: 0;
	border: 0;
	border-radius: 10px;
	box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.nbcr-optin::backdrop { background: rgba(17,17,17,.55); }

.nbcr-optin__form { position: relative; padding: 2rem 1.75rem 1.5rem; }

.nbcr-optin__close {
	position: absolute;
	top: .4rem;
	right: .6rem;
	border: 0;
	background: none;
	font-size: 1.9rem;
	line-height: 1;
	cursor: pointer;
	color: var(--nbcr-gray, #6b6b6b);
}
.nbcr-optin__close:hover { color: var(--nbcr-dark, #111); }

.nbcr-optin h2 { margin: 0 0 .4rem; font-size: 1.45rem; }
.nbcr-optin__lede { margin: 0 0 1.1rem; line-height: 1.45; }

.nbcr-optin label {
	display: block;
	margin: 0 0 .25rem;
	font-weight: 700;
	font-size: .92rem;
}
.nbcr-optin__optional { font-weight: 400; color: var(--nbcr-gray, #6b6b6b); }

.nbcr-optin input[type="email"],
.nbcr-optin input[type="text"] {
	width: 100%;
	padding: .6rem .7rem;
	margin: 0 0 .5rem;
	border: 1px solid #c9c9c9;
	border-radius: 5px;
	font-size: 1rem;
}
.nbcr-optin input:focus-visible { outline: 2px solid var(--nbcr-accent, #003b71); outline-offset: 1px; }

/* style.css absolutely positions checkboxes for its custom controls, which pulls this
   one out of the flex row and leaves a label with no visible box. Put it back in flow. */
.nbcr-optin__check {
	display: flex;
	gap: .55rem;
	align-items: flex-start;
	margin: .6rem 0 1.1rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	font-size: .92rem;
	line-height: 1.4;
	cursor: pointer;
}
.nbcr-optin__check input[type="checkbox"] {
	position: static;
	width: 1rem;
	height: 1rem;
	margin: .15rem 0 0;
	flex: 0 0 auto;
	opacity: 1;
	clip: auto;
}
.nbcr-optin__check span { font-weight: 400; text-transform: none; }

.nbcr-optin__submit { width: 100%; }
.nbcr-optin__submit[disabled] { opacity: .6; cursor: progress; }

.nbcr-optin__error { margin: -.25rem 0 .6rem; color: #b3261e; font-size: .88rem; }

.nbcr-optin__fineprint {
	margin: .9rem 0 0;
	font-size: .8rem;
	line-height: 1.4;
	color: var(--nbcr-gray, #6b6b6b);
}

/* ==========================================================================
   SEARCH RESULTS (/search/results) — Figma "03 Search results"
   Dark search band, filter sidebar (collapses behind a toggle on phones),
   horizontal result cards with availability and price-from.
   ========================================================================== */
.nbcr-search { background: var(--nbcr-light); }
.nbcr-search__inner { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.nbcr-search__band { background: var(--nbcr-dark); padding: 32px 0 28px; }
.nbcr-search__title {
	margin: 0 0 20px;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2.5rem, 7vw, 4rem) !important;
	line-height: 0.95;
	color: #fff;
	text-transform: uppercase;
}

/* Search bar: stacked on phones, one pill row from 55em */
.nbcr-searchbar {
	display: grid;
	gap: 10px;
	padding: 12px;
	border-radius: 16px;
	background: #fff;
}
.nbcr-searchbar__field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nbcr-searchbar__field label {
	margin: 0;
	font-size: 11px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-searchbar__field input,
.nbcr-searchbar__field select {
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid var(--nbcr-line);
	border-radius: 10px;
	background: var(--nbcr-light);
	font-size: 16px; /* no iOS zoom */
	color: var(--nbcr-dark);
	text-transform: none;
	letter-spacing: 0;
}
.nbcr-searchbar__submit {
	min-height: 52px;
	padding: 0 28px;
	border: 0;
	border-radius: 999px;
	background: var(--nbcr-blue);
	color: var(--nbcr-dark);
	font-size: 15px !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}
.nbcr-searchbar__submit:hover { background: var(--nbcr-dark); color: #fff; }
.nbcr-searchbar :focus-visible, .nbcr-filters :focus-visible, .nbcr-result a:focus-visible,
.nbcr-chips a:focus-visible, .nbcr-pagination a:focus-visible {
	outline: 3px solid var(--nbcr-teal);
	outline-offset: 2px;
}

.nbcr-search__body { padding: 24px 0 72px; }
.nbcr-search__grid { display: grid; gap: 20px; align-items: start; }

/* Filters */
.nbcr-filters {
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--nbcr-line);
}
.nbcr-filters__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 15px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nbcr-dark);
	cursor: pointer;
	list-style: none;
}
.nbcr-filters__toggle::-webkit-details-marker { display: none; }
.nbcr-filters__toggle::after { content: "+"; font-size: 22px; line-height: 1; color: var(--nbcr-teal); }
.nbcr-filters[open] .nbcr-filters__toggle::after { content: "\2212"; }
.nbcr-filters__toggle em { font-style: normal; color: var(--nbcr-link); }
.nbcr-filters__form { padding: 4px 20px 20px; }
.nbcr-filters__head { display: none; }
.nbcr-filters fieldset { margin: 0; padding: 16px 0; border: 0; border-top: 1px solid var(--nbcr-extralight); }
.nbcr-filters legend {
	padding: 0 0 10px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-check {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 7px 0;
	font-family: var(--nbcr-body-font) !important;
	font-size: 15px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nbcr-dark);
	cursor: pointer;
}
.nbcr-filters label { border-top: 0; float: none; }
/* style.css parks every checkbox off-screen (for its label.checkbox sprite); these are native */
.nbcr-check input[type="checkbox"], .nbcr-check input[type="radio"] {
	position: static;
	left: auto;
	appearance: auto;
	-webkit-appearance: auto;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--nbcr-dark);
	flex: none;
}
.nbcr-filters__apply {
	width: 100%;
	min-height: 48px;
	margin-top: 8px;
	border: 0;
	border-radius: 999px;
	background: var(--nbcr-dark);
	color: #fff;
	font-size: 14px !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}
.nbcr-filters__form.is-autosubmit .nbcr-filters__apply { display: none; }

/* Results */
.nbcr-results__head h2 {
	margin: 0 0 4px;
	font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
	color: var(--nbcr-dark);
}
.nbcr-results__head p { margin: 0 0 12px; font-size: 15px; color: var(--nbcr-gray); }

.nbcr-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.nbcr-chips li { margin: 0; list-style: none; font-size: 14px; }
.nbcr-chips a {
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	background: rgba(116, 209, 234, 0.3);
	color: var(--nbcr-dark);
	text-decoration: none;
}
.nbcr-chips a:hover { background: var(--nbcr-blue); }

.nbcr-results__list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.nbcr-results__list > li { margin: 0; list-style: none; font-size: inherit; line-height: inherit; }

.nbcr-result {
	display: grid;
	grid-template-columns: 1fr;
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(42, 43, 39, 0.06);
	transition: box-shadow 0.2s ease;
}
.nbcr-result:hover { box-shadow: 0 12px 32px rgba(42, 43, 39, 0.12); }
.nbcr-result__img { display: block; aspect-ratio: 16 / 9; background: var(--nbcr-extralight); }
.nbcr-result__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-result__body { padding: 18px 20px 4px; }
.nbcr-result__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.nbcr-tag {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(116, 209, 234, 0.25);
	font-family: var(--nbcr-ui-font) !important;
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-link);
}
.nbcr-tag--muted { background: var(--nbcr-extralight); color: var(--nbcr-gray); }
.nbcr-result__title {
	margin: 0 0 8px;
	font-size: 20px !important;
	line-height: 1.25 !important;
	text-transform: none !important;
	letter-spacing: -0.01em !important;
}
.nbcr-result__title a { color: var(--nbcr-dark); text-decoration: none !important; }
.nbcr-result__title a:hover { color: var(--nbcr-link); text-decoration: underline !important; }
.nbcr-result__meta { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 0 0 8px; padding: 0; list-style: none; }
.nbcr-result__meta li { margin: 0; list-style: none; font-size: 14px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-result__rating { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--nbcr-link); }
.nbcr-stars { color: #f5a623; letter-spacing: 0.1em; }
.nbcr-result__side {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	padding: 12px 20px 20px;
}
.nbcr-avail {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--nbcr-extralight);
	font-family: var(--nbcr-ui-font) !important;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-avail.nbcr-avail--open { background: #e3f1e4; color: var(--nbcr-success); }
.nbcr-avail.nbcr-avail--limited { background: #fdeee2; color: var(--nbcr-warn); }
.nbcr-result__price {
	margin: 0;
	font-family: var(--nbcr-display-font) !important;
	font-size: 34px;
	line-height: 1;
	color: var(--nbcr-dark);
}
.nbcr-result__price small {
	display: block;
	margin-bottom: 2px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.nbcr-result__side .nbcr-btn { min-height: 44px; padding: 0 22px; border-radius: 999px; }

.nbcr-results__empty { padding: 32px 24px; border-radius: 16px; background: #fff; }
.nbcr-results__empty h3 { margin: 0 0 8px; }
.nbcr-results__empty p { margin: 0 0 16px; color: var(--nbcr-gray); }

.nbcr-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; }
.nbcr-pagination a, .nbcr-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--nbcr-line);
	border-radius: 999px;
	background: #fff;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 14px;
	color: var(--nbcr-dark);
	text-decoration: none;
}
.nbcr-pagination a:hover { border-color: var(--nbcr-dark); }
.nbcr-pagination [aria-current] { background: var(--nbcr-dark); border-color: var(--nbcr-dark); color: #fff; }

.nbcr-results__help {
	margin-top: 24px;
	padding: 18px 22px;
	border-radius: 14px;
	background: rgba(116, 209, 234, 0.2);
}
.nbcr-results__help p { margin: 0; font-size: 16px; color: var(--nbcr-dark); }
.nbcr-results__help a { color: var(--nbcr-link); font-family: var(--nbcr-ui-font) !important; white-space: nowrap; }

@media only screen and (min-width: 46em) {
	.nbcr-result { grid-template-columns: 240px minmax(0, 1fr); }
	.nbcr-result__img { grid-row: span 2; aspect-ratio: auto; min-height: 100%; }
	.nbcr-result__body { padding: 22px 24px 4px; }
	.nbcr-result__side { padding: 8px 24px 22px; justify-content: flex-start; }
	.nbcr-result__side .nbcr-avail { order: 3; }
}
@media only screen and (min-width: 55em) {
	.nbcr-search__inner { padding: 0 40px; }
	.nbcr-search__band { padding: 48px 0 40px; }
	.nbcr-searchbar {
		grid-template-columns: minmax(150px, 0.8fr) minmax(0, 2fr) minmax(140px, 0.8fr) auto;
		align-items: end;
		padding: 10px 10px 10px 18px;
		border-radius: 999px;
	}
	.nbcr-searchbar__field input, .nbcr-searchbar__field select { border-color: transparent; background: transparent; padding-left: 0; min-height: 36px; }
	.nbcr-searchbar__field + .nbcr-searchbar__field { padding-left: 18px; border-left: 1px solid var(--nbcr-line); }
	.nbcr-search__body { padding-top: 40px; }
	.nbcr-search__grid { grid-template-columns: 280px minmax(0, 1fr); gap: 32px; }
	.nbcr-filters { position: sticky; top: 20px; }
	.nbcr-filters[open] .nbcr-filters__toggle { display: none; } /* no-JS: stays visible so filters can still be opened */
	.nbcr-filters__form { padding-top: 20px; }
	.nbcr-filters__head { display: flex; align-items: baseline; justify-content: space-between; }
	.nbcr-filters__head h2 { margin: 0 0 12px; font-family: var(--nbcr-ui-font) !important; font-size: 20px !important; text-transform: none !important; }
	.nbcr-filters__head a { font-size: 14px; color: var(--nbcr-link); }
}
@media only screen and (min-width: 70em) {
	.nbcr-search__inner { padding: 0 80px; }
	.nbcr-result { grid-template-columns: 260px minmax(0, 1fr) auto; }
	.nbcr-result__img { grid-row: auto; }
	.nbcr-result__body { padding: 24px 28px; }
	.nbcr-result__side {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: flex-end;
		justify-content: space-between;
		padding: 24px 28px 24px 0;
		text-align: right;
	}
	.nbcr-result__side .nbcr-avail { order: 0; }
}

/* ==========================================================================
   HOMEPAGE LOWER SECTIONS — NBC Difference, Rise Above articles, news
   ========================================================================== */
.nbcr-difference { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-difference__inner { max-width: 1240px; margin: 0 auto; display: grid; gap: 28px; }
.nbcr-difference h2 {
	margin: 0 0 14px;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2.25rem, 4vw, 3.25rem) !important;
	line-height: 0.95;
	color: var(--nbcr-dark);
}
.nbcr-difference__sub { margin: 0 0 20px; font-size: 19px; line-height: 1.45; color: var(--nbcr-dark); }
.nbcr-difference__img { display: block; width: 100%; height: auto; border-radius: 16px; }
.nbcr-difference__body { font-size: 16px; line-height: 1.7; color: var(--nbcr-gray); }
.nbcr-difference__body p { margin: 0 0 16px; font-size: inherit; }
.nbcr-difference__body p:has(> u:first-child strong), .nbcr-difference__body p:has(> strong:first-child:last-child) { margin: 0; }
/* CMS subheads arrive as <p><u><strong>…</strong></u></p> */
.nbcr-difference__body u { text-decoration: none; }
.nbcr-difference__body h3, .nbcr-difference__body h4, .nbcr-difference__body p > strong:first-child, .nbcr-difference__body p > u:first-child strong {
	display: block;
	margin: 24px 0 6px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 17px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nbcr-dark);
}
.nbcr-difference__body a { color: var(--nbcr-link); }
.nbcr-difference__body hr { display: none; }

.nbcr-rise { padding: 56px 20px 64px; background: #fff; }
.nbcr-rise__inner { max-width: 1240px; margin: 0 auto; }
.nbcr-rise .nbcr-section-head--split { align-items: flex-end; }
.nbcr-rise__grid { display: grid; gap: 24px; margin: 0; padding: 0; list-style: none; }
.nbcr-rise__grid > li { margin: 0; list-style: none; font-size: inherit; }
.nbcr-article { display: flex; flex-direction: column; gap: 10px; color: var(--nbcr-dark); text-decoration: none !important; }
.nbcr-article__img { display: block; overflow: hidden; aspect-ratio: 16 / 10; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-article__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.nbcr-article:hover .nbcr-article__img img { transform: scale(1.03); }
.nbcr-article__slug {
	margin-top: 6px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-link);
}
.nbcr-article__title { font-family: var(--nbcr-ui-font) !important; font-size: 21px; line-height: 1.25; letter-spacing: -0.01em; }
.nbcr-article:hover .nbcr-article__title { text-decoration: underline; }
.nbcr-article__cta { font-size: 14px; color: var(--nbcr-link); }
.nbcr-article:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 4px; border-radius: 16px; }

.nbcr-news { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--nbcr-line); }
.nbcr-news__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.nbcr-news__head h3 { margin: 0; font-size: 20px !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--nbcr-dark); }
.nbcr-news__head a { font-size: 14px; color: var(--nbcr-link); white-space: nowrap; }
.nbcr-news__list { display: grid; margin: 0; padding: 0; list-style: none; }
.nbcr-news__list > li { margin: 0; list-style: none; border-bottom: 1px solid var(--nbcr-extralight); font-size: inherit; }
.nbcr-news__list a { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; color: var(--nbcr-dark); text-decoration: none !important; }
.nbcr-news__slug { font-family: var(--nbcr-ui-font) !important; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-news__title { font-size: 17px; line-height: 1.35; }
.nbcr-news__list a:hover .nbcr-news__title { color: var(--nbcr-link); text-decoration: underline; }

@media only screen and (min-width: 46em) {
	.nbcr-rise__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nbcr-news__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
}
@media only screen and (min-width: 55em) {
	.nbcr-difference { padding: 88px 40px; }
	.nbcr-difference__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
	.nbcr-difference__head { position: sticky; top: 100px; }
	.nbcr-rise { padding: 88px 40px 96px; }
}
@media only screen and (min-width: 70em) {
	.nbcr-rise__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
}
.nbcr-rise .nbcr-section-head--split > .nbcr-btn { justify-self: end; }

/* ==========================================================================
   LOCATION COMPONENTS (sport, camp-type, state and city pages)
   State accordion (#campsByLocation), area/city lists (.areaBlock) and the
   legacy "find a camp near you" search boxes (.formContainer). CSS only.
   ========================================================================== */
.campsByLocation {
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--nbcr-line);
	border-radius: 16px;
	background: #fff;
}
.campsByLocation dt { margin: 0; font-size: inherit !important; border-top: 1px solid var(--nbcr-extralight); }
.campsByLocation dt:first-of-type { border-top: 0; }
.campsByLocation dt a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 22px;
	border: 0;
	background: #fff;
	font-size: 17px !important;
	letter-spacing: 0.01em !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: var(--nbcr-dark) !important;
}
.campsByLocation dt a::after { content: "+"; flex: none; font-size: 24px; line-height: 1; color: var(--nbcr-link); }
.campsByLocation dt a:hover { background: var(--nbcr-light); }
.campsByLocation dt.ui-state-active a, .campsByLocation dt.active a, .campsByLocation dt a.active { background: var(--nbcr-dark); color: #fff !important; }
.campsByLocation dt.ui-state-active a::after, .campsByLocation dt.active a::after, .campsByLocation dt a.active::after { content: "\2212"; color: var(--nbcr-blue); }
.campsByLocation dt a:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: -3px; }
.campsByLocation dd { background: var(--nbcr-light); }
.campsByLocation dd .cities h3 {
	padding: 16px 22px 2px;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.campsByLocation dd .cities li .camps { padding: 4px 22px 14px; border-bottom: 1px solid var(--nbcr-line); }
.campsByLocation dd .cities li .camps li { margin: 0; padding: 6px 0; font-size: 16px; line-height: 1.4; }
.campsByLocation dd .cities li .camps li a { color: var(--nbcr-link) !important; text-decoration: none !important; }
.campsByLocation dd .cities li .camps li a:hover { color: var(--nbcr-dark) !important; text-decoration: underline !important; }

.areaBlock {
	margin: 0 0 24px;
	padding: 28px 24px;
	border: 1px solid var(--nbcr-line);
	border-radius: 16px;
	background: #fff;
}
.areaBlock h2 {
	margin: 0 0 12px;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2rem, 3.4vw, 2.75rem) !important;
	line-height: 1;
	color: var(--nbcr-dark);
}
.areaBlock h3 {
	margin: 18px 0 0;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}
.areaBlock ul li ul { margin: 0; padding: 6px 0 16px; border-bottom: 1px solid var(--nbcr-extralight); }
.areaBlock ul li:last-child ul { border-bottom: 0; padding-bottom: 0; }
.areaBlock ul li ul li { margin: 0; padding: 6px 0; font-size: 17px; line-height: 1.4; }
.areaBlock a { color: var(--nbcr-link) !important; text-decoration: none !important; }
.areaBlock a:hover { color: var(--nbcr-dark) !important; text-decoration: underline !important; }

/* Legacy search boxes: same shape as the /search/results bar */
.formContainerWrapper .formContainer {
	padding: 24px;
	border: 1px solid var(--nbcr-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
	color: var(--nbcr-dark);
}
.formContainerWrapper .formContainer h3 {
	margin: 0 0 14px;
	padding: 0;
	font-family: var(--nbcr-display-font) !important;
	font-size: 26px !important;
	line-height: 1.05;
	letter-spacing: 0 !important;
	text-transform: uppercase;
	color: var(--nbcr-dark);
}
.formContainerWrapper .formContainer .labelContainer label {
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	font-size: 11px !important;
	letter-spacing: 0.1em !important;
	color: var(--nbcr-gray);
}
.formContainerWrapper .formContainer .inputContainer { display: flex; align-items: center; gap: 8px; }
.formContainerWrapper .formContainer .inputContainer input[type="text"] {
	flex: 1;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--nbcr-line);
	border-radius: 999px;
	background: var(--nbcr-light);
	font-family: var(--nbcr-body-font) !important;
	font-size: 16px;
	text-transform: none;
	color: var(--nbcr-dark);
}
.formContainerWrapper .formContainer form button {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--nbcr-blue);
}
.formContainerWrapper .formContainer form button:hover { background: var(--nbcr-dark); }
.formContainerWrapper .formContainer form button:hover .icon { fill: #fff; }
.formContainerWrapper .formContainer form button .icon { width: 20px; height: 20px; }

/* "Search … camps" big buttons: legacy .altDark set teal text on black */
.cta.button.bigButton {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 28px;
	border: 0;
	border-radius: 999px;
	background: var(--nbcr-blue);
	color: var(--nbcr-dark) !important;
	text-decoration: none !important;
}
.cta.button.bigButton.altDark { background: var(--nbcr-dark); color: #fff !important; }
.cta.button.bigButton:hover { background: var(--nbcr-dark); color: #fff !important; }
.cta.button.bigButton.altDark:hover { background: var(--nbcr-blue); color: var(--nbcr-dark) !important; }
.cta.button.bigButton .icon { fill: currentColor; }
.formContainerWrapper .formContainer input::placeholder { text-transform: none; color: var(--nbcr-gray); opacity: 1; }

/* ==========================================================================
   CONTENT PAGES — FAQ question list, blog/news sidebars
   ========================================================================== */
/* FAQ questions were brand cyan on white (1.9:1); use the accessible link colour */
.faq--questionList li { font-size: 17px; line-height: 1.4; }
.faq--questionList li a { color: var(--nbcr-link) !important; text-decoration: none !important; }
.faq--questionList li a:hover { color: var(--nbcr-dark) !important; text-decoration: underline !important; }
.faq--questionList li::marker { color: var(--nbcr-gray); font-family: var(--nbcr-ui-font); }

/* Blog/news sidebars: plain list rows instead of underlined caps */
.sidebarCategoryListing li a,
.sidebarNewsListing li a {
	display: block;
	padding: 4px 0;
	font-size: 16px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: var(--nbcr-dark) !important;
}
.sidebarCategoryListing li a:hover,
.sidebarNewsListing li a:hover { color: var(--nbcr-link) !important; text-decoration: underline !important; }
h6:has(+ .sidebarCategoryListing), h6:has(+ .sidebarNewsListing), .campNewsTipsContent h6 {
	margin: 0 0 8px !important;
	font-size: 12px !important;
	line-height: 1.3 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
	color: var(--nbcr-gray);
}

/* ==========================================================================
   CAMP DETAIL — Figma "02 Camp detail"
   Gallery + summary top section, sticky section tabs, Overview + Highlights,
   fit cards, Dates & Prices (see "Choose a session" above), details, reviews
   summary, FAQs, coaches, location, nearby camps. Mobile-first.
   ========================================================================== */
.nbcr-camp__inner { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.nbcr-camp__narrow { max-width: 900px; }
.nbcr-camp-section { padding: 56px 0; background: #fff; }
.nbcr-camp-section h2 {
	margin: 0 0 16px;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2rem, 3.4vw, 2.75rem) !important;
	line-height: 1;
	color: var(--nbcr-dark);
}
.nbcr-camp-section .nbcr-eyebrow { margin-bottom: 8px; }
.nbcr-camp-prose { font-size: 17px; line-height: 1.7; color: var(--nbcr-gray); }
.nbcr-camp-prose p { margin: 0 0 16px; font-size: inherit; }
.nbcr-camp-prose h2, .nbcr-camp-prose h3 {
	margin: 28px 0 8px;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 19px !important;
	line-height: 1.3;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nbcr-dark);
}
.nbcr-camp-prose ul { margin: 0 0 16px; padding-left: 20px; }
.nbcr-camp-prose li { font-size: inherit; }
.nbcr-camp-prose a { color: var(--nbcr-link); }

/* Top section */
.nbcr-camp-hero { padding: 16px 0 40px; background: #fff; }
.nbcr-camp-hero__grid { display: grid; gap: 28px; align-items: start; }
.nbcr-camp-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.nbcr-camp-gallery a { position: relative; display: block; overflow: hidden; border-radius: 12px; background: var(--nbcr-extralight); }
.nbcr-camp-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.nbcr-camp-gallery a:hover img { transform: scale(1.03); }
.nbcr-camp-gallery__main { grid-column: 1 / -1; aspect-ratio: 16 / 10; border-radius: 16px !important; }
.nbcr-camp-gallery__thumb { aspect-ratio: 16 / 10; }
.nbcr-camp-gallery__extra { display: none !important; }
.nbcr-camp-gallery__video::after { content: ""; position: absolute; inset: 0; background: rgba(42, 43, 39, 0.62); }
.nbcr-camp-gallery__video > span {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: var(--nbcr-ui-font);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

.nbcr-camp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.nbcr-camp-title {
	margin: 0 0 12px !important;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2.25rem, 4.6vw, 3.25rem) !important;
	line-height: 0.95 !important;
	color: var(--nbcr-dark);
}
.nbcr-camp-summary .nbcr-rating { margin: 0 0 12px; }
.nbcr-camp-summary .nbcr-fit-summary { margin: 0 0 20px; font-size: 18px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-camp-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 0 16px;
	overflow: hidden;
	border: 1px solid var(--nbcr-line);
	border-radius: 14px;
}
.nbcr-camp-facts > div { padding: 14px 18px; border-bottom: 1px solid var(--nbcr-line); }
.nbcr-camp-facts > div:nth-child(odd) { border-right: 1px solid var(--nbcr-line); }
.nbcr-camp-facts > div:nth-last-child(-n+2):nth-child(odd), .nbcr-camp-facts > div:last-child { border-bottom: 0; }
.nbcr-camp-facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.nbcr-camp-facts dt { margin: 0 0 4px; font-family: var(--nbcr-ui-font) !important; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-camp-facts dd { margin: 0; font-family: var(--nbcr-ui-font) !important; font-size: 16px; line-height: 1.3; color: var(--nbcr-dark); }
.nbcr-camp-price {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 20px;
	border-radius: 14px;
	background: var(--nbcr-light);
}
.nbcr-camp-price__amount { display: flex; flex-direction: column; gap: 2px; }
.nbcr-camp-price__amount small { font-family: var(--nbcr-ui-font); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-camp-price__amount strong { font-family: var(--nbcr-display-font) !important; font-size: 48px; line-height: 1; font-weight: normal; color: var(--nbcr-dark); }
.nbcr-camp-price__amount strong.nbcr-camp-price__soon { font-size: 32px; }
.nbcr-camp-price__amount span { font-size: 14px; color: var(--nbcr-link); }
.nbcr-camp-price__actions { display: flex; flex-direction: column; gap: 10px; min-width: 220px; flex: 1 1 220px; }
.nbcr-camp-price__actions .nbcr-btn { width: 100%; border-radius: 999px; }
.nbcr-camp-help { margin: 14px 0 0; font-size: 14px; color: var(--nbcr-gray); }
.nbcr-camp-help a { color: var(--nbcr-link); font-family: var(--nbcr-ui-font); white-space: nowrap; }
.nbcr-camp-note { margin: 6px 0 0; font-size: 12px; color: var(--nbcr-gray); }

/* Sticky section tabs (links built by jquery.section-scroll.js) */
.nbcr-camp-tabs {
	position: sticky;
	top: var(--nbcr-header-h, 0px);
	z-index: 50;
	background: #fff;
	border-top: 1px solid var(--nbcr-line);
	border-bottom: 1px solid var(--nbcr-line);
}
.nbcr-camp-tabs .subnav { overflow-x: auto; scrollbar-width: none; }
.nbcr-camp-tabs .subnav::-webkit-scrollbar { display: none; }
.nbcr-camp-tabs .campTabs { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
.nbcr-camp-tabs .campTabs li { display: block; margin: 0; padding: 0; list-style: none; font-size: inherit; }
.nbcr-camp-tabs .campTabs li a {
	display: block;
	padding: 16px 0 13px;
	border-bottom: 3px solid transparent;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 15px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: var(--nbcr-gray) !important;
}
.nbcr-camp-tabs .campTabs li a:hover { color: var(--nbcr-dark) !important; }
.nbcr-camp-tabs .campTabs li.active a { border-bottom-color: var(--nbcr-blue); color: var(--nbcr-dark) !important; }

/* Overview + Highlights */
.nbcr-camp-overview__grid { display: grid; gap: 32px; align-items: start; }
.nbcr-camp-overview__main > .nbcr-camp-prose { max-width: 720px; }
.nbcr-camp-highlights { padding: 28px; border-radius: 16px; background: var(--nbcr-dark); color: #fff; }
.nbcr-camp-highlights h3 {
	margin: 0 0 14px;
	font-family: var(--nbcr-display-font) !important;
	font-size: 32px !important;
	line-height: 1;
	letter-spacing: 0 !important;
	text-transform: uppercase !important;
	color: #fff;
}
.nbcr-camp-highlights ul { margin: 0; padding: 0; list-style: none; }
.nbcr-camp-highlights li {
	position: relative;
	margin: 0;
	padding: 8px 0 8px 30px;
	list-style: none;
	font-size: 16px;
	line-height: 1.45;
	color: #fff;
}
.nbcr-camp-highlights li::before { content: "\2713"; position: absolute; left: 0; top: 8px; font-family: var(--nbcr-ui-font); color: var(--nbcr-blue); }
.nbcr-camp-highlights a { display: inline-block; margin-top: 14px; font-family: var(--nbcr-ui-font); font-size: 14px; color: var(--nbcr-blue) !important; text-decoration: none !important; }
.nbcr-camp-highlights a:hover { text-decoration: underline !important; }

/* Fit cards */
.nbcr-camp-fit { background: var(--nbcr-extralight); }
.nbcr-camp-fit .nbcr-fit { margin: 0; padding: 0; border: 0; background: transparent; }
.nbcr-fit dl.nbcr-fit__cards { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 24px 0 0; }
.nbcr-fit__cards > div { padding: 22px 24px; border-radius: 14px; background: #fff; }
.nbcr-fit__cards dt { margin: 0 0 8px; font-family: var(--nbcr-ui-font) !important; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-link); }
.nbcr-fit__cards dd { margin: 0; font-size: 16px; line-height: 1.55; color: var(--nbcr-dark); }
.nbcr-fit__cards ul { margin: 0; padding-left: 18px; }
.nbcr-fit__cards li { margin: 0 0 4px; font-size: inherit; list-style: disc; }
.nbcr-fit__cards a { color: var(--nbcr-link); }

/* Dates & Prices section header (card styles live in the "Choose a session" block) */
.nbcr-camp-dates .campDetailsBox { margin: 0; }
.nbcr-camp-dates .campDetailsBox.specialtyBox .campDetailsBox--header { padding-bottom: 20px; }
.nbcr-camp-dates .campDetailsBox--header .nbcr-eyebrow { margin: 0 0 8px; }

/* Details */
.nbcr-camp-details { background: var(--nbcr-light); }
.nbcr-camp-details .campDetailsBox { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.nbcr-camp-details .campDetailsBox--header { margin: 0; padding: 0; border: 0; background: transparent; text-align: left; }
.nbcr-camp-details .campDetailsBox--header:after { display: none; }
.nbcr-camp-details .campDetailsBox--content { max-width: 800px; margin: 0; padding: 0; border: 0; background: transparent; }
.nbcr-camp-details .btn_fullDetails { margin: 8px 0 16px; border-radius: 999px; }
.nbcr-camp-details .btn_fullDetails .forActive, .nbcr-camp-reviews .btn_fullDetails .forActive { display: none; }
.nbcr-camp-details .btn_fullDetails.active .forActive, .nbcr-camp-reviews .btn_fullDetails.active .forActive { display: inline; }
.nbcr-camp-details .btn_fullDetails.active .forInactive, .nbcr-camp-reviews .btn_fullDetails.active .forInactive { display: none; }

/* Reviews */
.nbcr-camp-reviews { background: var(--nbcr-light); }
.nbcr-camp-details + .nbcr-camp-reviews { background: #fff; }
.nbcr-camp-reviews__grid { display: grid; gap: 32px; align-items: start; }
.nbcr-camp-reviews__summary p { margin: 0; }
.nbcr-camp-reviews__avg { font-family: var(--nbcr-display-font); font-size: 88px; line-height: 0.9; color: var(--nbcr-dark); }
.nbcr-camp-reviews__summary .nbcr-stars { margin: 6px 0 4px !important; font-size: 20px; }
.nbcr-camp-reviews__count { font-size: 15px; color: var(--nbcr-gray); }
.nbcr-camp-reviews__bars { display: grid; gap: 8px; max-width: 320px; margin: 18px 0 0; padding: 0; list-style: none; }
.nbcr-camp-reviews__bars li { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 10px; margin: 0; list-style: none; font-size: 14px; color: var(--nbcr-dark); }
.nbcr-bar { display: block; height: 8px; overflow: hidden; border-radius: 4px; background: var(--nbcr-line); }
.nbcr-bar > span { display: block; height: 100%; border-radius: 4px; background: var(--nbcr-blue); }
.nbcr-camp-reviews__submit { display: inline-block; margin-top: 18px; font-family: var(--nbcr-ui-font); font-size: 14px; color: var(--nbcr-link) !important; }
.nbcr-camp-reviews__list { display: grid; gap: 14px; }
.nbcr-camp-reviews__list .fullDetails { display: none; }
.nbcr-camp-reviews__list .fullDetails > .nbcr-review + .nbcr-review { margin-top: 14px; }
.nbcr-camp-reviews__list .btn_fullDetails { justify-self: start; border-radius: 999px; }
.nbcr-review { margin: 0; padding: 22px 26px; border: 0; border-radius: 14px; background: #fff; }
.nbcr-camp-details + .nbcr-camp-reviews .nbcr-review { background: var(--nbcr-light); }
.nbcr-review p { margin: 0 0 8px; font-size: 16px; line-height: 1.6; font-style: normal; color: var(--nbcr-gray); }
.nbcr-review .nbcr-review__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--nbcr-dark); }
.nbcr-review .nbcr-review__head strong { font-family: var(--nbcr-ui-font); font-size: 16px; }
.nbcr-review p.nbcr-review__by { margin: 0; font-size: 14px; color: var(--nbcr-link); }

/* FAQs + coaches */
.nbcr-camp-faqs { background: #fff; }
.nbcr-camp-coaches { background: var(--nbcr-light); }
.nbcr-camp-coaches .coachListing { margin: 16px 0 0; }

/* Location */
.nbcr-camp-location__grid { display: grid; gap: 28px; align-items: center; margin: 0; padding: 0; border: 0; background: transparent; }
.nbcr-camp-location__map { margin: 0; overflow: hidden; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-camp-location__map img { display: block; width: 100%; height: auto; }
.nbcr-camp-location__card { margin: 0; padding: 0; background: transparent; color: var(--nbcr-dark); }
.nbcr-camp-location__card h2 { font-size: clamp(1.75rem, 3vw, 2.5rem) !important; }
.nbcr-camp-location__card h2 abbr { text-decoration: none; border: 0; }
.nbcr-camp-location__card .vcard__contactinfo { margin: 0 0 14px; font-size: 17px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-camp-location__card .blockItem { display: block; }
.nbcr-camp-location__card p { margin: 0 0 8px; font-size: 16px; line-height: 1.5; }
.nbcr-camp-location__label { display: block; font-family: var(--nbcr-ui-font); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-camp-location__card a:not(.nbcr-btn) { color: var(--nbcr-link); }
.nbcr-camp-location__card .nbcr-btn { margin-top: 10px; border-radius: 999px; }
.nbcr-camp-promos { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.nbcr-camp-promos .sidebarMessage-cta { flex: 1 1 280px; }
.nbcr-camp-promos img { display: block; width: 100%; height: auto; border-radius: 12px; }

/* Nearby camps */
.nbcr-camp-related { background: var(--nbcr-extralight); }
.nbcr-camp-related .nbcr-cardgrid { max-width: none; margin-top: 8px; }

@media only screen and (min-width: 46em) {
	.nbcr-camp__inner { padding: 0 32px; }
	.nbcr-fit dl.nbcr-fit__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media only screen and (min-width: 55em) {
	.nbcr-camp-section { padding: 72px 0; }
	.nbcr-camp-hero { padding: 24px 0 56px; }
	.nbcr-camp-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; }
	.nbcr-camp-overview__grid { grid-template-columns: minmax(0, 1fr) 420px; gap: 64px; }
	.nbcr-camp-reviews__grid { grid-template-columns: 300px minmax(0, 1fr); gap: 56px; }
	.nbcr-camp-location__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; }
}
@media only screen and (min-width: 70em) {
	.nbcr-camp__inner { padding: 0 80px; }
	.nbcr-fit dl.nbcr-fit__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.nbcr-camp-overview__grid { grid-template-columns: minmax(0, 1fr) 460px; gap: 80px; }
}

/* Camp tabs: beat the earlier #putSubnavHere pill styles */
.nbcr-camp-tabs #putSubnavHere .subnav ul { flex-wrap: nowrap; gap: 28px; }
.nbcr-camp-tabs #putSubnavHere .subnav li a,
.nbcr-camp-tabs #putSubnavHere .subnav li:last-child a {
	padding: 16px 0 13px;
	border: 0 !important;
	border-bottom: 3px solid transparent !important;
	border-radius: 0;
	background: transparent !important;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 15px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nbcr-gray) !important;
}
.nbcr-camp-tabs #putSubnavHere .subnav li a:hover { background: transparent !important; color: var(--nbcr-dark) !important; }
.nbcr-camp-tabs #putSubnavHere .subnav li.active a,
.nbcr-camp-tabs #putSubnavHere .subnav li.active:last-child a {
	border-bottom-color: var(--nbcr-blue) !important;
	background: transparent !important;
	color: var(--nbcr-dark) !important;
}
/* Camp gallery video tile: same 16:10 tile as the photos, label centred over a scrim */
.nbcr-camp-gallery.galleryBox a.nbcr-camp-gallery__video { aspect-ratio: 16 / 10; padding: 0; border-radius: 12px; background: var(--nbcr-dark); }
.nbcr-camp-gallery.galleryBox a.nbcr-camp-gallery__video > span {
	position: absolute !important;
	inset: 0;
	display: flex !important;
	width: auto !important;
	height: auto !important;
}
.nbcr-camp-gallery.galleryBox a.nbcr-camp-gallery__video > span > span { display: inline !important; color: var(--nbcr-blue); }
/* Camp gallery thumbs: 16:10 like the video tile (earlier rule used 5:4) */
.nbcr-camp-gallery.galleryBox .galleryItem.nbcr-camp-gallery__thumb { aspect-ratio: 16 / 10; border-radius: 12px; }
.nbcr-camp-gallery.galleryBox .galleryItem.nbcr-camp-gallery__main { aspect-ratio: 16 / 10; border-radius: 16px; }
/* Location card: the old sidebar vcard was white-on-grey */
.nbcr-camp-location .campLocation .vcard,
.nbcr-camp-location .campLocation .vcard div,
.nbcr-camp-location .campLocation .vcard span { color: inherit; background: transparent; }
.nbcr-camp-location .campLocation .vcard { padding: 0; color: var(--nbcr-dark); }
.nbcr-camp-location .campLocation .vcard .vcard__contactinfo { color: var(--nbcr-gray); }

/* ==========================================================================
   SITE HEADER (header.nbch) — Figma: utility bar + logo / nav / actions
   Height stays 75px (phones) / 95px (>=55em; 32px utility + 63px main) because
   page offsets across style.css assume it. Inline nav from 70em; below that
   the menu opens as a full-height drawer behind #nav-toggle.
   ========================================================================== */
header.nbch { background: #fff; box-shadow: 0 1px 0 var(--nbcr-line); }
.nbch__inner { display: flex; align-items: center; max-width: 1440px; height: 100%; margin: 0 auto; padding: 0 16px; }
.nbch__utility { display: none; }
header.nbch .nbch__main { display: block; height: 75px; }
header.nbch .nbch__logo { position: static; top: auto; left: auto; flex: none; width: 138px; max-width: none; margin: 0; }
header.nbch .nbch__logo img { display: block; width: 100%; height: auto; }
header.nbch .nbch__logo:hover { opacity: 0.8; }

.nbch__actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.nbch__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; color: var(--nbcr-dark); text-decoration: none !important; }
.nbch__icon .icon { width: 20px; height: 20px; fill: currentColor; }
.nbch__icon:hover { background: var(--nbcr-extralight); }
.nbch__icon .navCartLabel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nbch__actions .open-search { display: none; }
header.nbch .nbch__cta {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--nbcr-blue);
	font-family: var(--nbcr-ui-font) !important;
	font-size: 13px !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	color: var(--nbcr-dark) !important;
}
header.nbch .nbch__cta:hover { background: var(--nbcr-dark); color: #fff !important; }
header.nbch .nbch__burger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 -6px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.nbch__burger > span:first-child,
.nbch__burger > span:first-child::before,
.nbch__burger > span:first-child::after {
	position: absolute;
	left: 11px;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: var(--nbcr-dark);
	content: "";
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.nbch__burger > span:first-child { top: 21px; }
.nbch__burger > span:first-child::before { top: -7px; left: 0; }
.nbch__burger > span:first-child::after { top: 7px; left: 0; }
.nbch--open .nbch__burger > span:first-child { background: transparent; }
.nbch--open .nbch__burger > span:first-child::before { transform: translateY(7px) rotate(45deg); }
.nbch--open .nbch__burger > span:first-child::after { transform: translateY(-7px) rotate(-45deg); }
.nbch :focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }

/* Drawer (phones / tablets) */
.nbch__nav {
	position: fixed;
	top: var(--nbc-header-h, 75px);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 998;
	overflow-y: auto;
	padding: 8px 16px 32px;
	background: #fff;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
}
.nbch--open .nbch__nav { visibility: visible; opacity: 1; transform: none; transition: opacity 0.2s ease, transform 0.2s ease; }
html.nbch-lock { overflow: hidden; }
.nbch__menu { margin: 0; padding: 0; list-style: none; }
.nbch__item {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--nbcr-extralight);
	font-size: inherit;
}
header.nbch .nbch__link {
	display: block;
	flex: 1;
	padding: 16px 4px;
	border: 0;
	background: transparent;
	font-family: var(--nbcr-ui-font) !important;
	font-size: 17px !important;
	letter-spacing: 0 !important;
	line-height: 1.2;
	text-align: left;
	text-transform: none !important;
	text-decoration: none !important;
	color: var(--nbcr-dark) !important;
	cursor: pointer;
}
header.nbch .nbch__toggle { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
header.nbch .nbch__toggle--label { display: flex; justify-content: space-between; width: auto; height: auto; flex: 1; padding: 16px 4px; }
.nbch__toggle::after {
	content: "";
	width: 8px;
	height: 8px;
	margin: 0 14px 4px;
	border-right: 2px solid var(--nbcr-gray);
	border-bottom: 2px solid var(--nbcr-gray);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}
.nbch__toggle[aria-expanded="true"]::after { transform: rotate(-135deg); margin-bottom: -4px; }
.nbch__dropdown { display: none; flex-basis: 100%; margin: 0; padding: 0 0 12px 12px; list-style: none; }
.nbch__item.is-open > .nbch__dropdown { display: block; }
.nbch__dropdown li { margin: 0; padding: 0; list-style: none; font-size: inherit; }
header.nbch .nbch__dropdown a {
	display: block;
	padding: 9px 4px;
	font-family: var(--nbcr-body-font) !important;
	font-size: 16px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: var(--nbcr-gray) !important;
}
header.nbch .nbch__dropdown a:hover { color: var(--nbcr-link) !important; }
.nbch__item.is-current > .nbch__link { color: var(--nbcr-link) !important; }
.nbch__mobile-phone { margin: 20px 4px 0; font-size: 15px; color: var(--nbcr-gray); }
.nbch__mobile-phone a { font-family: var(--nbcr-ui-font); color: var(--nbcr-link); }

@media only screen and (min-width: 46em) {
	.nbch__inner { padding: 0 24px; }
	header.nbch .nbch__logo { width: 170px; }
	.nbch__actions .open-search { display: inline-flex; }
}
@media only screen and (min-width: 55em) {
	.nbch__utility { display: block; height: 32px; background: var(--nbcr-dark); color: #fff; }
	.nbch__utility-text { margin: 0; font-size: 12.5px; letter-spacing: 0.02em; color: #d9d8d4; }
	.nbch__utility-text strong { font-family: var(--nbcr-ui-font); color: var(--nbcr-blue); }
	.nbch__utility-links { display: flex; gap: 24px; margin: 0 0 0 auto; padding: 0; list-style: none; }
	.nbch__utility-links li { margin: 0; padding: 0; list-style: none; font-size: 12.5px; }
	header.nbch .nbch__utility-links a {
		font-family: var(--nbcr-ui-font) !important;
		font-size: 12.5px !important;
		letter-spacing: 0.02em !important;
		text-transform: none !important;
		text-decoration: none !important;
		color: #fff !important;
	}
	header.nbch .nbch__utility-links a.nbch__phone { color: var(--nbcr-blue) !important; }
	header.nbch .nbch__utility-links a:hover { text-decoration: underline !important; }
	header.nbch .nbch__main { height: 63px; }
	header.nbch .nbch__logo { width: 190px; }
	.nbch__nav { top: var(--nbc-header-h, 95px); }
}
@media only screen and (min-width: 70em) {
	.nbch__inner { padding: 0 40px; }
	header.nbch .nbch__burger { display: none; }
	.nbch__nav {
		position: static;
		display: flex;
		align-items: center;
		margin-left: 28px;
		padding: 0;
		overflow: visible;
		background: transparent;
		visibility: visible;
		opacity: 1;
		transform: none;
		transition: none;
	}
	.nbch__mobile-phone, .nbch__item--mobile { display: none !important; }
	.nbch__menu { display: flex; align-items: center; gap: 2px; }
	.nbch__item { flex-wrap: nowrap; border: 0; }
	header.nbch .nbch__link { flex: none; padding: 20px 8px; font-size: 15px !important; }
	header.nbch .nbch__toggle { width: 22px; height: 40px; margin-left: -4px; }
	header.nbch .nbch__toggle--label { width: auto; margin: 0; padding: 20px 8px; }
	.nbch__toggle::after { width: 6px; height: 6px; margin: 0 0 4px 6px; border-width: 1.5px; }
	.nbch__item.is-current > .nbch__link { color: var(--nbcr-dark) !important; box-shadow: inset 0 -3px 0 var(--nbcr-blue); }
	.nbch__dropdown {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 1000;
		min-width: 240px;
		padding: 8px;
		border: 1px solid var(--nbcr-line);
		border-radius: 12px;
		background: #fff;
		box-shadow: 0 16px 40px rgba(42, 43, 39, 0.14);
	}
	.nbch__item:hover > .nbch__dropdown, .nbch__item:focus-within > .nbch__dropdown, .nbch__item.is-open > .nbch__dropdown { display: block; }
	header.nbch .nbch__dropdown a { padding: 9px 12px; border-radius: 8px; font-size: 15px !important; color: var(--nbcr-dark) !important; }
	header.nbch .nbch__dropdown a:hover { background: var(--nbcr-light); color: var(--nbcr-link) !important; }
	header.nbch .nbch__logo { width: 200px; }
}

/* ==========================================================================
   SITE FOOTER (footer.nbcf)
   ========================================================================== */
footer.nbcf { padding: 48px 0 28px; background: var(--nbcr-dark); color: #fff; }
.nbcf__inner { max-width: 1440px; margin: 0 auto; padding: 0 20px; }
.nbcf__top { display: grid; gap: 28px; }
.nbcf__brand .footerLogo img { display: block; width: 180px; height: auto; }
.nbcf__phone { margin: 16px 0 12px; font-size: 16px; color: #d9d8d4; }
.nbcf__phone a { font-family: var(--nbcr-ui-font); color: #fff; white-space: nowrap; }
.nbcf__social { display: flex; gap: 8px; }
.nbcf__social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); }
.nbcf__social a:hover { background: var(--nbcr-blue); }
.nbcf__social .icon { width: 18px; height: 18px; fill: #fff; }
.nbcf__social a:hover .icon { fill: var(--nbcr-dark); }
.nbcf__col { border-top: 1px solid rgba(255, 255, 255, 0.14); }
.nbcf__col summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 0;
	font-family: var(--nbcr-ui-font);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nbcr-blue);
	cursor: pointer;
	list-style: none;
}
.nbcf__col summary::-webkit-details-marker { display: none; }
.nbcf__col summary::after { content: "+"; font-size: 20px; color: #fff; }
.nbcf__col[open] summary::after { content: "\2212"; }
.nbcf__col ul { margin: 0; padding: 0 0 16px; list-style: none; }
.nbcf__col li { margin: 0; padding: 5px 0; list-style: none; font-size: 15px; }
footer.nbcf .nbcf__col a { color: #fff !important; text-decoration: none !important; }
footer.nbcf .nbcf__col a:hover { color: var(--nbcr-blue) !important; }
.nbcf__bottom { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.nbcf__bottom .footer--copyright { margin: 0; font-size: 13px; letter-spacing: 0; color: #b3b2b1; }
footer.nbcf .footerNav { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0; padding: 0; list-style: none; }
footer.nbcf .footerNav li { margin: 0; padding: 0; list-style: none; font-size: 13px; }
footer.nbcf .footerNav a { font-family: var(--nbcr-body-font) !important; font-size: 13px !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important; color: #b3b2b1 !important; }
footer.nbcf .footerNav a:hover { color: #fff !important; }
.nbcf :focus-visible { outline: 3px solid var(--nbcr-blue); outline-offset: 2px; }
@media only screen and (min-width: 46em) {
	footer.nbcf { padding: 64px 0 32px; }
	.nbcf__inner { padding: 0 40px; }
	.nbcf__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
	.nbcf__col { border: 0; }
	.nbcf__col summary { padding: 0 0 12px; pointer-events: none; }
	.nbcf__col summary::after { display: none; }
	.nbcf__bottom { flex-direction: row; align-items: center; justify-content: space-between; }
}
@media only screen and (min-width: 70em) {
	.nbcf__top { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 64px; }
	.nbcf__inner { padding: 0 80px; }
}
/* Menu button: reset the legacy #nav-toggle hamburger (offset 34-46px down, 35px bars on every span) */
header.nbch #nav-toggle { top: auto; width: 44px; height: 44px; padding: 0; }
header.nbch #nav-toggle > span:first-child,
header.nbch #nav-toggle > span:first-child::before,
header.nbch #nav-toggle > span:first-child::after {
	position: absolute;
	display: block;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: var(--nbcr-dark);
	content: "";
	transition: transform 0.2s ease, background 0.2s ease;
}
header.nbch #nav-toggle > span:first-child { top: 21px; left: 11px; }
header.nbch #nav-toggle > span:first-child::before { top: -7px; bottom: auto; left: 0; transform: none; }
header.nbch #nav-toggle > span:first-child::after { top: 7px; bottom: auto; left: 0; transform: none; }
header.nbch.nbch--open #nav-toggle > span:first-child { background: transparent; }
header.nbch.nbch--open #nav-toggle > span:first-child::before { transform: translateY(7px) rotate(45deg); }
header.nbch.nbch--open #nav-toggle > span:first-child::after { transform: translateY(-7px) rotate(-45deg); }
header.nbch #nav-toggle > .nbcr-sr-only { position: absolute; width: 1px; height: 1px; background: none; overflow: hidden; clip: rect(0 0 0 0); }

/* ==========================================================================
   HOMEPAGE — Figma "01 Homepage": proof strip, programs grid, upcoming camps
   on sand, dark commitments band, story split, camp card price footer
   ========================================================================== */
/* Proof strip */
.nbcr-proofbar { background: var(--nbcr-blue); }
.nbcr-proofbar__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 16px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 28px 20px;
	list-style: none;
}
.nbcr-proofbar__list li { display: flex; flex-direction: column; gap: 2px; margin: 0; list-style: none; font-size: inherit; }
.nbcr-proofbar__list strong { font-family: var(--nbcr-display-font) !important; font-size: 40px; font-weight: normal; line-height: 1; color: var(--nbcr-dark); }
.nbcr-proofbar__list span { font-family: var(--nbcr-ui-font); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-dark); }

/* Programs */
.nbcr-programs { padding: 56px 20px; background: #fff; }
.nbcr-programs__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-programs__intro { font-size: 16px; line-height: 1.6; color: var(--nbcr-gray); }
.nbcr-programs__intro p { margin: 0 0 8px; font-size: inherit; }
.nbcr-programs__intro strong { font-family: var(--nbcr-ui-font); color: var(--nbcr-dark); }
.nbcr-programs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.nbcr-programs__grid > li { margin: 0; list-style: none; font-size: inherit; }
.nbcr-program {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	border-radius: 14px;
	background: var(--nbcr-dark);
	text-decoration: none !important;
}
.nbcr-program img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.nbcr-program::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(42, 43, 39, 0) 35%, rgba(42, 43, 39, 0.9) 100%); }
.nbcr-program:hover img { transform: scale(1.04); }
.nbcr-program__title {
	position: absolute;
	right: 14px;
	bottom: 14px;
	left: 14px;
	z-index: 1;
	font-family: var(--nbcr-display-font) !important;
	font-size: 22px;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
}
.nbcr-program:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 3px; }

/* Upcoming camps on sand (legacy #featured-camps painted a blue wave image) */
#featured-camps.nbcr-upcoming { padding: 56px 0; background: var(--nbcr-extralight); background-image: none; }
.nbcr-upcoming .nbcr-cardgrid { max-width: 1280px; }

/* Camp card: sentence-case title, dates, price footer */
.nbcr-campcard h3 {
	font-family: var(--nbcr-ui-font) !important;
	font-size: 19px !important;
	line-height: 1.3 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
}
.nbcr-campcard__dates { color: var(--nbcr-dark); }
.nbcr-campcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--nbcr-extralight);
}
.nbcr-campcard__price { display: flex; flex-direction: column; font-family: var(--nbcr-display-font); font-size: 26px; line-height: 1; color: var(--nbcr-dark); }
.nbcr-campcard__price small { margin-bottom: 2px; font-family: var(--nbcr-ui-font); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-campcard__btn {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--nbcr-dark);
	font-family: var(--nbcr-ui-font);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
}
.nbcr-campcard__link:hover .nbcr-campcard__btn { background: var(--nbcr-blue); color: var(--nbcr-dark); }

/* Five commitments: dark band, open columns with a blue rule */
.nbcr-commitments { background: var(--nbcr-dark); }
.nbcr-commitments .nbcr-section-head h2 { color: #fff; }
.nbcr-commitments .nbcr-section-head p { color: #b3b2b1; }
.nbcr-commitments .nbcr-eyebrow { color: var(--nbcr-blue); }
.nbcr-commitments li {
	padding: 22px 0 0;
	border-top: 3px solid var(--nbcr-blue);
	border-radius: 0;
	background: transparent;
}
.nbcr-commitments h3 {
	font-family: var(--nbcr-display-font) !important;
	font-size: 26px !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: uppercase;
}
.nbcr-commitments li p { color: #b3b2b1; }
@media (min-width: 55em) { .nbcr-commitments ol { gap: 24px; } }
@media (min-width: 70em) { .nbcr-commitments li { padding: 24px 0 0; } }

/* Story split */
.nbcr-storysplit { display: grid; background: var(--nbcr-light); }
.nbcr-storysplit__img { min-height: 260px; background: var(--nbcr-extralight); }
.nbcr-storysplit__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-storysplit__copy { padding: 36px 20px 48px; }
.nbcr-storysplit h2 {
	margin: 0 0 16px;
	font-family: var(--nbcr-display-font) !important;
	font-size: clamp(2rem, 3.6vw, 3rem) !important;
	line-height: 0.95;
	color: var(--nbcr-dark);
}
.nbcr-storysplit p, .nbcr-storysplit__body { margin: 0 0 20px; max-width: 36em; font-size: 17px; line-height: 1.65; color: var(--nbcr-gray); }
.nbcr-storysplit__body p { margin: 0 0 12px; }
.nbcr-storysplit .nbcr-btn { border-radius: 999px; }

@media only screen and (min-width: 46em) {
	.nbcr-proofbar__list { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 32px 40px; }
	.nbcr-programs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
}
@media only screen and (min-width: 55em) {
	.nbcr-proofbar__list strong { font-size: 52px; }
	.nbcr-programs { padding: 88px 40px; }
	#featured-camps.nbcr-upcoming { padding: 88px 0; }
	.nbcr-storysplit { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 520px; }
	.nbcr-storysplit__copy { align-self: center; padding: 64px 64px 64px 72px; }
	.nbcr-program__title { right: 18px; bottom: 18px; left: 18px; font-size: 26px; }
}
@media only screen and (min-width: 70em) {
	.nbcr-proofbar__list { padding: 36px 80px; }
	.nbcr-programs { padding: 96px 80px; }
	.nbcr-programs__grid { gap: 24px; }
	.nbcr-program { aspect-ratio: 3 / 4; }
}
.nbcr-programs__intro { max-width: 760px; margin-top: 12px; }
.nbcr-storysplit + .nbcr-difference { background: #fff; }

/* ==========================================================================
   SPORT LANDING (Figma "04 Sport landing") — shared with camp type / location
   pages: .nbcr-crumbbar, .nbcr-sportbar, .nbcr-typecard, .nbcr-bylocation,
   .nbcr-why, .nbcr-ctaband
   ========================================================================== */
.nbcr-crumbbar { margin-top: 75px; background: var(--nbcr-light); border-bottom: 1px solid var(--nbcr-extralight); }
.nbcr-crumbbar__inner { max-width: 1280px; margin: 0 auto; padding: 14px 20px; }
.nbcr-crumbbar .breadcrumbs { margin: 0; }
.nbcr-crumbbar [aria-current] { color: var(--nbcr-dark); }
.nbcr-crumbbar__inner.breadcrumbs span[aria-hidden] { margin: 0 6px; }

.nbcr-sporthero { position: relative; isolation: isolate; overflow: hidden; background: var(--nbcr-dark); color: #fff; }
.nbcr-sporthero__img { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: center 30%; }
.nbcr-sporthero__scrim {
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(180deg, rgba(12, 13, 12, 0.1) 0%, rgba(12, 13, 12, 0.35) 55%, rgba(12, 13, 12, 0.8) 100%),
		linear-gradient(90deg, rgba(12, 13, 12, 0.7) 0%, rgba(12, 13, 12, 0.35) 55%, rgba(12, 13, 12, 0.1) 100%);
}
.nbcr-sporthero__inner { max-width: 1280px; margin: 0 auto; padding: 150px 20px 32px; }
.nbcr-sporthero__copy { max-width: 620px; }
.nbcr-sporthero .nbcr-hero__eyebrow { color: var(--nbcr-blue); }
.nbcr-sporthero .nbcr-hero__lede { margin-bottom: 28px; }

/* Sport search bar: stacked card on mobile, one pill row from 55em */
.nbcr-sportbar {
	display: grid; gap: 10px; margin: 0; padding: 16px;
	border-radius: 16px; background: #fff; color: var(--nbcr-dark);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}
.nbcr-sportbar__field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nbcr-sportbar__field label {
	margin: 0; padding: 0; border: 0; font-family: var(--nbcr-ui-font) !important; font-size: 11px !important;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--nbcr-gray);
}
.nbcr-sportbar__field input,
.nbcr-sportbar__field select {
	width: 100%; height: 48px; margin: 0; padding: 0 14px;
	border: 1px solid var(--nbcr-line); border-radius: 8px; background: var(--nbcr-light);
	font-family: var(--nbcr-body-font) !important; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--nbcr-dark);
	-webkit-appearance: none; appearance: none; box-shadow: none;
}
.nbcr-sportbar ::placeholder, .nbcr-miniSearch ::placeholder { text-transform: none; letter-spacing: 0; color: var(--nbcr-gray); opacity: 1; }
.nbcr-sportbar__field select {
	padding-right: 36px;
	background: var(--nbcr-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2359595b' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;
}
.nbcr-sportbar__field input:focus, .nbcr-sportbar__field select:focus { outline: 3px solid var(--nbcr-teal); outline-offset: 0; }
.nbcr-sportbar .nbcr-sportbar__submit { display: inline-flex; width: 100%; margin-top: 6px; }

@media (min-width: 55em) {
	.nbcr-crumbbar { margin-top: 95px; }
	.nbcr-crumbbar__inner { padding: 14px 40px; }
	.nbcr-sporthero__inner { padding: 96px 40px 40px; min-height: 560px; display: flex; flex-direction: column; justify-content: space-between; gap: 64px; }
	.nbcr-sportbar {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.1fr) auto;
		align-items: stretch; gap: 0; padding: 8px; border-radius: 999px;
	}
	.nbcr-sportbar__field { justify-content: center; padding: 6px 22px; border-right: 1px solid var(--nbcr-line); }
	.nbcr-sportbar__field:nth-last-of-type(1) { border-right: 0; }
	.nbcr-sportbar__field input, .nbcr-sportbar__field select { height: 28px; padding: 0; border: 0; background-color: transparent; font-size: 17px; }
	.nbcr-sportbar__field select { padding-right: 28px; background-position: right 4px center; }
	.nbcr-sportbar__field input:focus, .nbcr-sportbar__field select:focus { outline: 0; }
	.nbcr-sportbar__field:focus-within { border-radius: 999px; box-shadow: inset 0 0 0 2px var(--nbcr-teal); }
	.nbcr-sportbar .nbcr-sportbar__submit { width: auto; margin: 0 0 0 8px; border-radius: 999px; padding: 0 30px; }
}
@media (min-width: 70em) {
	.nbcr-sporthero__inner { max-width: 1440px; padding: 96px 80px 40px; min-height: 600px; }
	.nbcr-crumbbar__inner { max-width: 1440px; padding: 14px 80px; }
}

.nbcr-proofbar__star { margin-left: 2px; font-size: 0.8em; vertical-align: 0.08em; }

/* Camp-type cards */
.nbcr-types { padding: 56px 20px; background: #fff; }
.nbcr-types__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-types .nbcr-section-head { max-width: none; }
.nbcr-types__grid { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nbcr-types__grid > li { margin: 0; padding: 0; list-style: none; font-size: inherit; }
.nbcr-typecard {
	display: grid; grid-template-columns: 110px minmax(0, 1fr); height: 100%; overflow: hidden;
	border: 1px solid var(--nbcr-line); border-radius: 12px; background: var(--nbcr-light);
	text-decoration: none !important; color: var(--nbcr-dark) !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.nbcr-typecard:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12); transform: translateY(-2px); }
.nbcr-typecard:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }
.nbcr-typecard__img { display: block; background: var(--nbcr-extralight); }
.nbcr-typecard__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-typecard__body { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 14px 16px; }
.nbcr-typecard__title { font-family: var(--nbcr-strong-font); font-size: 18px; line-height: 1.25; }
.nbcr-typecard__meta { font-family: var(--nbcr-body-font); font-size: 14px; line-height: 1.45; color: var(--nbcr-gray); }
.nbcr-typecard__cta { display: none; font-family: var(--nbcr-strong-font); font-size: 14px; color: var(--nbcr-link); }
.nbcr-typecard__kicker { font-family: var(--nbcr-ui-font); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nbcr-blue); }
.nbcr-typecard--locations { grid-template-columns: 1fr; background: var(--nbcr-dark); border-color: var(--nbcr-dark); color: #fff !important; }
.nbcr-typecard--locations .nbcr-typecard__title { font-family: var(--nbcr-display-font) !important; font-size: 30px; line-height: 0.98; text-transform: uppercase; }
.nbcr-typecard--locations .nbcr-typecard__meta { color: #d9d8d4; }
@media (min-width: 46em) {
	.nbcr-types__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.nbcr-typecard { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
	.nbcr-typecard__img { aspect-ratio: 3 / 2; }
	.nbcr-typecard__body { justify-content: flex-start; padding: 18px 20px 20px; }
	.nbcr-typecard__cta { display: inline; margin-top: 4px; }
	.nbcr-typecard--locations { grid-template-rows: 1fr; }
	.nbcr-typecard--locations .nbcr-typecard__body { justify-content: flex-end; padding: 24px; }
	.nbcr-typecard--locations .nbcr-typecard__title { font-size: 36px; }
}
@media (min-width: 55em) { .nbcr-types { padding: 88px 40px; } .nbcr-types__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 70em) { .nbcr-types { padding: 88px 80px; } .nbcr-types__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }

/* Upcoming section head with a button instead of a paragraph */
.nbcr-section-head--split > .nbcr-btn { justify-self: end; align-self: end; }
@media (max-width: 54.99em) { .nbcr-section-head--split > .nbcr-btn { margin-top: 16px; } }

/* Camps by location */
.nbcr-bylocation { padding: 56px 20px; background: #fff; }
.nbcr-bylocation__inner { display: grid; gap: 28px; max-width: 1280px; margin: 0 auto; }
.nbcr-bylocation__intro h2 {
	margin: 0 0 14px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(34px, 4.2vw, 52px); line-height: 0.98; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-bylocation__intro > p:not(.nbcr-eyebrow) { margin: 0 0 20px; font-size: 17px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-miniSearch { display: flex; align-items: center; max-width: 340px; padding: 6px 6px 6px 18px; border: 1px solid var(--nbcr-line); border-radius: 999px; background: var(--nbcr-light); }
.nbcr-miniSearch input[type=text] { text-transform: none; letter-spacing: 0; flex: 1; min-width: 0; height: 44px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font-family: var(--nbcr-body-font); font-size: 16px; color: var(--nbcr-dark); }
.nbcr-miniSearch input[type=text]:focus { outline: 0; }
.nbcr-miniSearch:focus-within { box-shadow: 0 0 0 3px var(--nbcr-teal); }
.nbcr-miniSearch button { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--nbcr-blue); color: var(--nbcr-dark); cursor: pointer; }
.nbcr-miniSearch button .icon { width: 18px; height: 18px; fill: currentColor; }
@media (min-width: 55em) {
	.nbcr-bylocation { padding: 88px 40px; }
	.nbcr-bylocation__inner { grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 64px; align-items: start; }
	.nbcr-bylocation__intro { position: sticky; top: 130px; }
}
@media (min-width: 70em) { .nbcr-bylocation { padding: 88px 80px; } }

/* Why NBC {sport} */
.nbcr-why { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-why__inner { display: grid; gap: 32px; max-width: 1280px; margin: 0 auto; }
.nbcr-why__copy h2 {
	margin: 0 0 16px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(34px, 4.2vw, 52px); line-height: 0.98; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-why__lede { margin: 0 0 16px; font-family: var(--nbcr-strong-font); font-size: 19px; line-height: 1.45; color: var(--nbcr-dark); }
.nbcr-why__body { margin-bottom: 24px; font-size: 17px; line-height: 1.6; color: var(--nbcr-gray); }
.nbcr-why__body p { margin: 0 0 14px; font-size: inherit; line-height: inherit; }
.nbcr-why__body h1, .nbcr-why__body h2, .nbcr-why__body h3, .nbcr-why__body h4 {
	margin: 22px 0 8px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-size: 19px !important;
	line-height: 1.3; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-dark);
}
.nbcr-why__card { align-self: start; padding: 28px; border-radius: 16px; background: var(--nbcr-dark); color: #fff; }
.nbcr-why__card h3 {
	margin: 0 0 18px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: 30px !important; line-height: 1; letter-spacing: 0 !important; text-transform: uppercase; color: #fff;
}
.nbcr-checklist ul { margin: 0; padding: 0; list-style: none; }
.nbcr-checklist li {
	position: relative; margin: 0; padding: 7px 0 7px 30px; list-style: none;
	font-family: var(--nbcr-body-font); font-size: 16px; line-height: 1.45; color: #efeeec;
}
.nbcr-checklist li::before { content: "\2713"; position: absolute; left: 0; top: 6px; font-family: var(--nbcr-strong-font); font-size: 17px; color: var(--nbcr-blue); }
@media (min-width: 55em) {
	.nbcr-why { padding: 88px 40px; }
	.nbcr-why__inner { grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 80px; }
	.nbcr-why__card { padding: 32px; }
}
@media (min-width: 70em) { .nbcr-why { padding: 88px 80px; } }

/* Final CTA band (brand blue) */
.nbcr-ctaband { padding: 64px 20px; background: var(--nbcr-blue); text-align: center; }
.nbcr-ctaband h2 {
	margin: 0 0 24px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(40px, 5.5vw, 68px); line-height: 0.95; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-ctaband p { max-width: 36em; margin: -8px auto 24px; font-size: 17px; line-height: 1.55; color: var(--nbcr-dark); }
.nbcr-ctaband__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.nbcr-ctaband .nbcr-btn { border-radius: 999px; }
.nbcr-ctaband .nbcr-btn--outline { border-color: var(--nbcr-dark); color: var(--nbcr-dark); }
.nbcr-ctaband .nbcr-btn--outline:hover { background: var(--nbcr-dark); color: #fff; }
@media (min-width: 55em) { .nbcr-ctaband { padding: 80px 40px; } }

/* ==========================================================================
   CAMP TYPE (Figma "05 Camp type") — split hero, about + day schedule,
   camps by state (.nbcr-camprow, shared with location pages), more programs
   ========================================================================== */
.nbcr-typehero { display: grid; background: var(--nbcr-dark); color: #fff; }
.nbcr-typehero__copy { padding: 40px 20px 44px; }
.nbcr-typehero .nbcr-hero__eyebrow { color: var(--nbcr-blue); text-shadow: none; }
.nbcr-typehero .nbcr-hero__title { font-size: clamp(46px, 11vw, 76px); text-shadow: none; }
.nbcr-typehero .nbcr-hero__lede { margin-bottom: 20px; }
.nbcr-typehero__img { order: -1; min-height: 240px; background: #1c1d1a; }
.nbcr-typehero__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-typehero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.nbcr-typehero__ctas .nbcr-btn { border-radius: 999px; }
.nbcr-chips--dark { margin: 0 0 24px; }
.nbcr-chips--dark li { padding: 8px 14px; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; font-family: var(--nbcr-body-font); font-size: 14px; line-height: 1.2; color: #fff; }
@media (min-width: 55em) {
	.nbcr-typehero { grid-template-columns: minmax(0, 57fr) minmax(0, 43fr); min-height: 520px; }
	.nbcr-typehero__copy { align-self: center; padding: 64px 48px 64px 40px; }
	.nbcr-typehero__img { order: 0; min-height: 0; }
}
@media (min-width: 70em) { .nbcr-typehero__copy { padding: 72px 64px 72px 80px; } }

.nbcr-about { padding: 56px 20px; background: #fff; }
.nbcr-about__inner { display: grid; gap: 32px; max-width: 1280px; margin: 0 auto; }
.nbcr-about__copy h2 {
	margin: 0 0 16px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(30px, 3.4vw, 40px); line-height: 1; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-about__body { font-size: 17px; line-height: 1.6; color: var(--nbcr-gray); }
.nbcr-about__body p { margin: 0 0 14px; font-size: inherit; line-height: inherit; }
.nbcr-about__body h2, .nbcr-about__body h3, .nbcr-about__body h4 { margin: 20px 0 8px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-size: 19px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-dark); }
.nbcr-about__body ul li { list-style: disc; margin: 0 0 6px 20px; font-size: inherit; }
.nbcr-about__note { margin: 8px 0 0; font-size: 13px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-schedule { align-self: start; padding: 24px 28px 12px; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-schedule h3 {
	margin: 0 0 6px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: 30px !important; line-height: 1; letter-spacing: 0 !important; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-schedule dl { margin: 0; }
.nbcr-schedule dl > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 13px 0; border-top: 1px solid var(--nbcr-line); }
.nbcr-schedule dl > div:first-child { border-top: 0; }
.nbcr-schedule dt { margin: 0; font-family: var(--nbcr-ui-font) !important; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--nbcr-link); }
.nbcr-schedule dd { margin: 0; font-size: 16px; line-height: 1.4; color: var(--nbcr-dark); }
@media (min-width: 55em) {
	.nbcr-about { padding: 80px 40px; }
	.nbcr-about__inner { grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr); gap: 64px; }
}
@media (min-width: 70em) { .nbcr-about { padding: 80px; } }

.nbcr-campsbystate { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-campsbystate__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-campsbystate__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 20px; }
.nbcr-campsbystate__head h2 {
	margin: 0; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(30px, 3.4vw, 40px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-chips--filter { margin: 0; }
.nbcr-chips--filter button,
.nbcr-chips--filter a {
	display: inline-flex; align-items: center; min-height: 38px; margin: 0; padding: 0 14px;
	border: 1px solid var(--nbcr-line); border-radius: 999px; background: #fff;
	font-family: var(--nbcr-body-font) !important; font-size: 14px; letter-spacing: 0; text-transform: none; text-decoration: none !important;
	color: var(--nbcr-dark) !important; cursor: pointer;
}
.nbcr-chips--filter button:not([aria-pressed="true"]):hover, .nbcr-chips--filter a:not([aria-current]):hover { border-color: var(--nbcr-dark); background: #fff; }
.nbcr-chips--filter [aria-pressed="true"], .nbcr-chips--filter [aria-current] { border-color: var(--nbcr-dark); background: var(--nbcr-dark); color: #fff !important; }
.nbcr-chips--filter button:focus-visible, .nbcr-chips--filter a:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }
.nbcr-stategroup { margin-top: 24px; }
.nbcr-stategroup[hidden] { display: none; }
.nbcr-stategroup__title {
	margin: 0 0 12px; font-family: var(--nbcr-ui-font) !important; font-style: normal !important; font-size: 13px !important;
	letter-spacing: 0.12em !important; text-transform: uppercase; color: var(--nbcr-gray);
}
.nbcr-empty { max-width: 40em; font-size: 17px; line-height: 1.55; color: var(--nbcr-gray); }
@media (min-width: 55em) { .nbcr-campsbystate { padding: 80px 40px; } }
@media (min-width: 70em) { .nbcr-campsbystate { padding: 80px; } }

/* Camp row */
.nbcr-camprow {
	display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 0 14px; margin: 0 0 14px; padding: 14px;
	border: 1px solid var(--nbcr-line); border-radius: 14px; background: #fff;
}
.nbcr-camprow__img { display: block; overflow: hidden; align-self: start; aspect-ratio: 4 / 3; border-radius: 8px; background: var(--nbcr-extralight); }
.nbcr-camprow__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-camprow__body { min-width: 0; }
.nbcr-camprow__title { margin: 0 0 6px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-size: 17px !important; line-height: 1.3; letter-spacing: 0 !important; text-transform: none !important; }
.nbcr-camprow__title a { color: var(--nbcr-dark) !important; text-decoration: none !important; }
.nbcr-camprow__title a:hover { text-decoration: underline !important; }
.nbcr-camprow__meta { margin: 0 0 4px; font-size: 14px; line-height: 1.45; color: var(--nbcr-gray); }
.nbcr-camprow__dates { margin: 0; font-family: var(--nbcr-strong-font); font-size: 14px; line-height: 1.45; color: var(--nbcr-dark); }
.nbcr-camprow__side { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--nbcr-extralight); }
.nbcr-camprow__price { margin: 0 auto 0 0; font-family: var(--nbcr-display-font) !important; font-size: 28px; line-height: 1; color: var(--nbcr-dark); }
.nbcr-camprow__price small { display: block; margin-bottom: 2px; font-family: var(--nbcr-ui-font) !important; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-camprow__side .nbcr-avail { order: 3; }
.nbcr-camprow__side .nbcr-btn { min-height: 44px; border-radius: 999px; }
@media (min-width: 46em) {
	.nbcr-camprow { grid-template-columns: 200px minmax(0, 1fr) auto; gap: 0 24px; padding: 0; overflow: hidden; }
	.nbcr-camprow__img { position: relative; align-self: stretch; aspect-ratio: auto; min-height: 150px; border-radius: 0; }
	.nbcr-camprow__img img { position: absolute; inset: 0; }
	.nbcr-camprow__body { padding: 20px 0; }
	.nbcr-camprow__title { font-size: 19px !important; }
	.nbcr-camprow__side { grid-column: auto; flex-direction: column; flex-wrap: nowrap; align-items: flex-end; justify-content: flex-start; gap: 8px; margin: 0; padding: 20px 22px 20px 0; border: 0; text-align: right; }
	.nbcr-camprow__side .nbcr-avail { order: 0; }
	.nbcr-camprow__price { margin: 0 0 4px; }
}

/* More programs */
.nbcr-moretypes { padding: 56px 20px; background: #fff; }
.nbcr-moretypes__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-moretypes h2 {
	margin: 0 0 24px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(30px, 3.4vw, 40px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-moretypes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.nbcr-moretypes__grid > li { margin: 0; list-style: none; font-size: inherit; }
.nbcr-program.nbcr-program--wide { aspect-ratio: 61 / 44; }
@media (min-width: 55em) {
	.nbcr-moretypes { padding: 80px 40px; }
	.nbcr-moretypes__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
	.nbcr-program--wide .nbcr-program__title { font-size: 24px; }
}
@media (min-width: 70em) { .nbcr-moretypes { padding: 80px; } }

/* ==========================================================================
   LOCATION PAGES (Figma "05 Location") — state and city pages
   ========================================================================== */
.nbcr-locband { padding: 40px 20px; background: var(--nbcr-extralight); }
.nbcr-locband__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-locband h1 {
	margin: 0 0 12px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(38px, 5vw, 60px); line-height: 0.95; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-locband__summary { max-width: 44em; margin: 0 0 20px; font-size: 18px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-locsearch { display: flex; align-items: center; gap: 8px; max-width: 690px; padding: 6px 6px 6px 20px; border: 1px solid var(--nbcr-line); border-radius: 999px; background: #fff; }
.nbcr-locsearch:focus-within { box-shadow: 0 0 0 3px var(--nbcr-teal); }
.nbcr-locsearch input[type=text] { flex: 1; min-width: 0; height: 46px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font-family: var(--nbcr-body-font) !important; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--nbcr-dark); }
.nbcr-locsearch input[type=text]:focus { outline: 0; }
.nbcr-locsearch ::placeholder { text-transform: none; letter-spacing: 0; color: var(--nbcr-gray); opacity: 1; }
.nbcr-locsearch .nbcr-btn { display: inline-flex; flex: none; width: auto; min-width: 0; min-height: 46px; margin: 0; border-radius: 999px; }
.nbcr-locsearch input[type=text] { width: auto; }

.nbcr-locbody { padding: 32px 20px 56px; background: var(--nbcr-light); }
.nbcr-locbody__inner { display: grid; gap: 32px; max-width: 1280px; margin: 0 auto; }
.nbcr-locbody__list > .nbcr-chips--filter { margin-bottom: 8px; }
.nbcr-locbody .nbcr-stategroup:first-child { margin-top: 0; }
.nbcr-stategroup__title a { color: inherit !important; text-decoration: none !important; }
.nbcr-stategroup__title a:hover { color: var(--nbcr-link) !important; text-decoration: underline !important; }
.nbcr-locbody__more { margin: 20px 0 0; font-family: var(--nbcr-strong-font); font-size: 16px; }
.nbcr-locbody__more a { color: var(--nbcr-link) !important; text-decoration: none !important; }
.nbcr-locbody__aside { display: grid; gap: 16px; align-content: start; }
.nbcr-locmap { overflow: hidden; border: 1px solid var(--nbcr-line); border-radius: 16px; background: #e8eef0; }
.nbcr-locmap img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.nbcr-advisor { padding: 22px; border-radius: 16px; background: var(--nbcr-dark); color: #fff; }
.nbcr-advisor h2 { margin: 0 0 8px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-size: 19px !important; letter-spacing: 0 !important; text-transform: none !important; color: #fff; }
.nbcr-advisor p { margin: 0; font-size: 16px; line-height: 1.55; color: #d9d8d4; }
.nbcr-advisor a { font-family: var(--nbcr-strong-font); color: var(--nbcr-blue) !important; text-decoration: none !important; white-space: nowrap; }
@media (min-width: 55em) {
	.nbcr-locband { padding: 56px 40px 40px; }
	.nbcr-locbody { padding: 48px 40px 80px; }
	.nbcr-locbody__inner { grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); gap: 40px; align-items: start; }
	.nbcr-locbody__aside { position: sticky; top: 120px; }
}
@media (min-width: 70em) {
	.nbcr-locband { padding: 56px 80px 40px; }
	.nbcr-locbody { padding: 48px 80px 88px; }
}

/* ==========================================================================
   RISE ABOVE (Figma "06 Content") — index band + tabs, featured post, post
   cards, pager, newsletter band. Article layout further down.
   ========================================================================== */
.nbcr-riseband { padding: 40px 20px 0; background: #fff; border-bottom: 1px solid var(--nbcr-line); }
.nbcr-riseband__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-riseband h1 {
	margin: 0 0 12px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(40px, 5vw, 60px); line-height: 0.95; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-riseband__page { font-size: 0.5em; color: var(--nbcr-gray); }
.nbcr-riseband__intro { max-width: 45em; margin: 0 0 20px; font-size: 18px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-tabs { display: flex; gap: 28px; overflow-x: auto; margin: 0; padding: 0; scrollbar-width: none; }
.nbcr-tabs::-webkit-scrollbar { display: none; }
.nbcr-tabs a {
	flex: none; padding: 14px 0 12px; border-bottom: 3px solid transparent;
	font-family: var(--nbcr-strong-font) !important; font-size: 17px; letter-spacing: 0; text-transform: none;
	color: var(--nbcr-gray) !important; text-decoration: none !important;
}
.nbcr-tabs a:hover { color: var(--nbcr-dark) !important; }
.nbcr-tabs a[aria-current] { border-bottom-color: var(--nbcr-blue); color: var(--nbcr-dark) !important; }
.nbcr-tabs a:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }

.nbcr-feature { padding: 32px 20px 0; background: #fff; }
.nbcr-feature__inner { display: grid; gap: 20px; max-width: 1280px; margin: 0 auto; text-decoration: none !important; color: var(--nbcr-dark) !important; }
.nbcr-feature__img { display: block; overflow: hidden; aspect-ratio: 12 / 7; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-feature__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.nbcr-feature__inner:hover .nbcr-feature__img img { transform: scale(1.03); }
.nbcr-feature__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.nbcr-feature__title {
	font-family: var(--nbcr-display-font) !important; font-size: clamp(30px, 3.4vw, 42px); line-height: 1; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-feature__excerpt { font-size: 18px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-feature__copy .nbcr-btn { margin-top: 6px; border-radius: 999px; }
@media (min-width: 55em) {
	.nbcr-feature { padding: 48px 40px 0; }
	.nbcr-feature__inner { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 48px; align-items: center; }
}
@media (min-width: 70em) { .nbcr-feature { padding: 48px 80px 0; } .nbcr-riseband { padding: 64px 80px 0; } }
@media (min-width: 55em) and (max-width: 69.99em) { .nbcr-riseband { padding: 56px 40px 0; } }

.nbcr-postlist { padding: 32px 20px 56px; background: #fff; }
.nbcr-postlist__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-postlist .nbcr-chips--filter { margin-bottom: 28px; }
.nbcr-postgrid { display: grid; gap: 28px; margin: 0; padding: 0; list-style: none; }
.nbcr-postgrid > li { margin: 0; list-style: none; font-size: inherit; }
@media (min-width: 46em) { .nbcr-postgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 28px; } }
@media (min-width: 70em) { .nbcr-postgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; } .nbcr-postlist { padding: 32px 80px 88px; } }
@media (min-width: 55em) and (max-width: 69.99em) { .nbcr-postlist { padding: 32px 40px 80px; } }

.nbcr-post { display: flex; flex-direction: column; gap: 12px; height: 100%; text-decoration: none !important; color: var(--nbcr-dark) !important; }
.nbcr-post__img { display: block; overflow: hidden; aspect-ratio: 405 / 251; border-radius: 12px; background: var(--nbcr-extralight); }
.nbcr-post__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.nbcr-post:hover .nbcr-post__img img { transform: scale(1.04); }
.nbcr-post__body { display: flex; flex-direction: column; gap: 8px; }
.nbcr-post__slug { font-family: var(--nbcr-ui-font) !important; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nbcr-link); }
.nbcr-post__title { font-family: var(--nbcr-strong-font) !important; font-size: 20px; line-height: 1.3; color: var(--nbcr-dark); }
.nbcr-post:hover .nbcr-post__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.nbcr-post__meta { font-size: 14px; line-height: 1.4; color: var(--nbcr-gray); }
.nbcr-post:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 4px; border-radius: 12px; }
.nbcr-post--compact { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; align-items: center; }
.nbcr-post--compact .nbcr-post__img { aspect-ratio: 11 / 8; border-radius: 8px; }
.nbcr-post--compact .nbcr-post__title { font-size: 16px; }
.nbcr-post--compact .nbcr-post__meta { display: none; }

.nbcr-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 48px; }
.nbcr-pager a, .nbcr-pager span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; padding: 0 14px;
	border: 1px solid var(--nbcr-line); border-radius: 999px; background: #fff;
	font-family: var(--nbcr-strong-font); font-size: 15px; text-decoration: none !important; color: var(--nbcr-dark) !important;
}
.nbcr-pager a:hover { border-color: var(--nbcr-dark); }
.nbcr-pager [aria-current] { border-color: var(--nbcr-dark); background: var(--nbcr-dark); color: #fff !important; }
.nbcr-pager a:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }

/* Newsletter band */
.nbcr-newsletter { padding: 48px 20px; background: var(--nbcr-blue); }
.nbcr-newsletter__inner { display: grid; gap: 20px; max-width: 1280px; margin: 0 auto; align-items: center; }
.nbcr-newsletter h2 {
	margin: 0 0 6px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(30px, 3.4vw, 40px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-newsletter p { margin: 0; font-size: 18px; line-height: 1.5; color: var(--nbcr-dark); }
.nbcr-newsletter__form { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; max-width: 460px; padding: 6px 6px 6px 20px; border-radius: 999px; background: #fff; }
.nbcr-newsletter__form:focus-within { box-shadow: 0 0 0 3px var(--nbcr-dark); }
.nbcr-newsletter__form input[type=email] { flex: 1; width: auto; min-width: 0; height: 46px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font-family: var(--nbcr-body-font) !important; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--nbcr-dark); }
.nbcr-newsletter__form input[type=email]:focus { outline: 0; }
.nbcr-newsletter__form ::placeholder { text-transform: none; letter-spacing: 0; color: var(--nbcr-gray); opacity: 1; }
.nbcr-newsletter .nbcr-btn { display: inline-flex; flex: none; width: auto; min-height: 46px; margin: 0; border-radius: 999px; }
.nbcr-newsletter__trap { position: absolute; left: -5000px; }
@media (min-width: 55em) {
	.nbcr-newsletter { padding: 56px 40px; }
	.nbcr-newsletter__inner { grid-template-columns: minmax(0, 1fr) auto; gap: 40px; }
	.nbcr-newsletter__form, .nbcr-newsletter__inner > .nbcr-btn { justify-self: end; }
	.nbcr-newsletter__form { width: 440px; }
}
@media (min-width: 70em) { .nbcr-newsletter { padding: 56px 80px; } }

/* Article (Figma "06 Content — Article"): 720px reading column, wide hero */
.nbcr-article-page { padding: 40px 20px 56px; background: #fff; }
.nbcr-article-page__head { max-width: 720px; margin: 0 auto 28px; }
.nbcr-article-page__head .nbcr-post__slug { display: block; margin: 0 0 14px; }
.nbcr-article-page__head h1 {
	margin: 0 0 16px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(40px, 5.4vw, 64px); line-height: 0.95; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-article-page__lede { margin: 0 0 20px; font-size: 20px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-byline { display: flex; align-items: center; gap: 14px; }
.nbcr-byline img { flex: none; width: 44px; height: 44px; margin: 0; border-radius: 50%; object-fit: cover; }
.nbcr-byline p { margin: 0; }
.nbcr-byline__name { font-family: var(--nbcr-strong-font); font-size: 16px; line-height: 1.4; color: var(--nbcr-dark); }
.nbcr-byline__meta { font-size: 14px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-article-page__media { max-width: 1280px; margin: 0 auto 40px; overflow: hidden; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-article-page__media img { display: block; width: 100%; height: auto; }
.nbcr-article-page__media figcaption { padding: 10px 16px; font-size: 14px; color: var(--nbcr-gray); background: var(--nbcr-light); }
.nbcr-article-page__media--video { max-width: 960px; aspect-ratio: 16 / 9; background: #000; }
.nbcr-article-page__media--video iframe { display: block; width: 100%; height: 100%; border: 0; }

.nbcr-prose { max-width: 720px; margin: 0 auto; font-family: var(--nbcr-body-font); font-size: 18px; line-height: 1.7; color: var(--nbcr-ink); }
.nbcr-prose p, .nbcr-prose li { font-size: inherit; line-height: inherit; }
.nbcr-prose p { margin: 0 0 20px; }
.nbcr-prose h2, .nbcr-prose h3, .nbcr-prose h4 {
	margin: 36px 0 14px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-weight: normal;
	font-size: 26px !important; line-height: 1.25; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-dark);
}
.nbcr-prose h3 { font-size: 22px !important; }
.nbcr-prose h4 { font-size: 19px !important; }
.nbcr-prose ul:not([class]), .nbcr-prose ol:not([class]) { margin: 0 0 20px; padding-left: 24px; }
.nbcr-prose ul:not([class]) > li { list-style: disc; margin: 0 0 8px; }
.nbcr-prose ol:not([class]) > li { list-style: decimal; margin: 0 0 8px; }
.nbcr-prose a { color: var(--nbcr-link); text-decoration: underline; text-underline-offset: 2px; }
.nbcr-prose a:hover { color: var(--nbcr-dark); }
.nbcr-prose blockquote { margin: 28px 0; padding: 0 0 0 28px; border: 0; border-left: 4px solid var(--nbcr-blue); background: none; font-family: var(--nbcr-strong-font); font-size: 21px; line-height: 1.5; color: var(--nbcr-dark); }
.nbcr-prose blockquote p:last-child { margin-bottom: 0; }
.nbcr-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.nbcr-prose__figure { margin: 28px 0; }
.nbcr-prose__figure img { display: block; width: 100%; }
.nbcr-prose__figure figcaption { margin-top: 8px; font-size: 14px; color: var(--nbcr-gray); }
.nbcr-prose__embed { margin: 0 0 28px; }
.nbcr-prose__embed iframe { display: block; border: 0; }
.nbcr-prose__button { margin: 28px 0; text-align: center; }
.nbcr-prose__button .nbcr-btn { color: #fff; text-decoration: none; border-radius: 999px; }
.nbcr-prose iframe { max-width: 100%; }

.nbcr-callout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin: 36px 0 28px; padding: 24px 28px; border-radius: 16px; background: #e3f6fb; }
.nbcr-callout p { margin: 0; font-size: 16px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-callout .nbcr-callout__title { margin-bottom: 4px; font-family: var(--nbcr-strong-font); font-size: 21px; color: var(--nbcr-dark); }
.nbcr-callout .nbcr-btn { color: var(--nbcr-dark); text-decoration: none; border-radius: 999px; }
.nbcr-article-page__tags { margin: 0 0 24px; }
.nbcr-article-page__share { margin: 0; padding-top: 20px; border-top: 1px solid var(--nbcr-line); }
.nbcr-article-page__share h2 { margin: 0 0 10px; font-family: var(--nbcr-ui-font) !important; font-size: 12px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--nbcr-gray); }

.nbcr-morerise { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-morerise__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-morerise h2 {
	margin: 0 0 24px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(30px, 3.4vw, 40px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
@media (max-width: 45.99em) {
	.nbcr-morerise .nbcr-postgrid { gap: 16px; }
	.nbcr-morerise .nbcr-post { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; align-items: center; }
	.nbcr-morerise .nbcr-post__img { aspect-ratio: 11 / 8; border-radius: 8px; }
	.nbcr-morerise .nbcr-post__title { font-size: 16px; }
	.nbcr-morerise .nbcr-post__meta { display: none; }
	.nbcr-article-page__media { margin-right: -20px; margin-left: -20px; border-radius: 0; }
}
@media (min-width: 55em) {
	.nbcr-article-page { padding: 64px 40px 80px; }
	.nbcr-morerise { padding: 72px 40px 88px; }
}
@media (min-width: 70em) { .nbcr-article-page { padding: 64px 80px 88px; } .nbcr-morerise { padding: 72px 80px 88px; } }

/* Content pages (About, policies, FAQ, contact …) — pages/_page.html */
.nbcr-pagehead { padding: 40px 20px 0; background: #fff; border-bottom: 1px solid var(--nbcr-line); }
.nbcr-pagehead__inner { max-width: 1440px; margin: 0 auto; padding-bottom: 28px; }
.nbcr-pagehead h1 {
	max-width: 18em; margin: 0; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(40px, 5.4vw, 64px); line-height: 0.95; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-pagehead__nav { margin: 20px 0 -28px; }
.nbcr-pagebanner { max-width: 1280px; margin: 32px auto 0; padding: 0 20px; }
.nbcr-pagebanner img { display: block; width: 100%; height: auto; border-radius: 16px; }
.nbcr-pagebanner figcaption { margin-top: 8px; font-size: 14px; color: var(--nbcr-gray); }
.nbcr-page { display: grid; gap: 40px; max-width: 1280px; margin: 0 auto; padding: 40px 20px 64px; background: #fff; }
.nbcr-page .nbcr-prose { width: 100%; }
.nbcr-prose--wide { max-width: none; }
.nbcr-page__body .mixedMediaBlocks { margin-top: 12px; }
.nbcr-page__body .cta.button { border-radius: 999px; }
.nbcr-page__links { align-self: start; padding: 24px; border-radius: 16px; background: var(--nbcr-light); }
.nbcr-page__links .sidebarNavMenu-heading { margin: 0 0 10px; font-family: var(--nbcr-ui-font) !important; font-size: 12px !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nbcr-gray); }
.nbcr-page__links .sidebarNavMenu { margin: 0 0 16px; padding: 0; }
.nbcr-page__links .sidebarNavMenu li { margin: 0; list-style: none; border-top: 1px solid var(--nbcr-line); font-size: 16px; }
.nbcr-page__links .sidebarNavMenu a { display: block; padding: 10px 0; color: var(--nbcr-link) !important; text-decoration: none !important; }
@media (min-width: 55em) {
	.nbcr-pagehead { padding: 56px 40px 0; }
	.nbcr-pagebanner { margin-top: 40px; padding: 0 40px; }
	.nbcr-page { max-width: 1440px; grid-template-columns: minmax(0, 720px) minmax(240px, 320px); justify-content: space-between; gap: 64px; padding: 56px 40px 88px; }
	.nbcr-page > .nbcr-prose:only-child { grid-column: 1 / -1; margin: 0 auto; }
	.nbcr-page__links { position: sticky; top: 120px; }
}
@media (min-width: 70em) { .nbcr-pagehead { padding: 64px 80px 0; } .nbcr-pagebanner { max-width: 1440px; padding: 0 80px; } .nbcr-page { padding: 64px 80px 96px; } }
@media (min-width: 90em) { .nbcr-pagehead__inner, .nbcr-page, .nbcr-pagebanner { max-width: 1280px; padding-right: 0; padding-left: 0; } }
body:has(.nbcr-page) .mainContentWrapper { background: #fff; }

/* Podcast transcript (podcasts/_entry via the article include) */
.nbcr-transcript { margin: 28px 0; border: 1px solid var(--nbcr-line); border-radius: 12px; background: var(--nbcr-light); }
.nbcr-transcript summary { padding: 16px 20px; font-family: var(--nbcr-strong-font); font-size: 17px; color: var(--nbcr-dark); cursor: pointer; }
.nbcr-transcript summary:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; border-radius: 12px; }
.nbcr-transcript > div { max-height: 60vh; overflow-y: auto; padding: 0 20px 20px; font-size: 16px; line-height: 1.65; }

/* FAQ page (pages/_faq): accordion + password gate inside the content layout */
.nbcr-faqpage .faqAccordion { margin: 0; }
.nbcr-faqpage .faqAccordion--categoryHeading {
	margin: 32px 0 4px; padding: 0 0 10px; border-bottom: 2px solid var(--nbcr-dark);
	font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-size: 28px !important; letter-spacing: 0 !important; color: var(--nbcr-dark);
}
.nbcr-faqpage .faqAccordion--categoryHeading:first-child { margin-top: 0; }
.nbcr-faqpage .faqAccordion--item { border-bottom-color: var(--nbcr-line); }
.nbcr-faqpage .faqAccordion--question { padding: 18px 4px; font-family: var(--nbcr-strong-font) !important; font-size: 18px; letter-spacing: 0; text-transform: none; color: var(--nbcr-dark); }
.nbcr-faqpage .faqAccordion--question:hover { color: var(--nbcr-link); }
.nbcr-faqpage .faqAccordion--question:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }
.nbcr-faqpage .faqAccordion--icon { color: var(--nbcr-link); }
.nbcr-faqpage .faqAccordion--answerInner { padding: 0 4px 20px; font-size: 17px; color: var(--nbcr-ink); }
.nbcr-faqpage .faqPasswordGate { padding: 24px; border-radius: 16px; background: var(--nbcr-light); }
.nbcr-faqpage .faqPasswordGate input[type=password] { width: 100%; height: 48px; margin: 6px 0 12px; padding: 0 14px; border: 1px solid var(--nbcr-line); border-radius: 8px; background: #fff; font-family: var(--nbcr-body-font) !important; font-size: 16px; text-transform: none; letter-spacing: 0; }
.nbcr-faqpage .faqPasswordGate .nbcr-btn { display: inline-flex; width: auto; border-radius: 999px; }
.nbcr-faqpage .faqPasswordGate--error { color: #b3261e; font-family: var(--nbcr-strong-font); }
.nbcr-page__links > p { margin: 0 0 16px; font-size: 16px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-page__links > p a { font-family: var(--nbcr-strong-font); color: var(--nbcr-link) !important; white-space: nowrap; }
.nbcr-page__links > .nbcr-btn { border-radius: 999px; }

/* 404 */
.nbcr-notfound { margin-top: 75px; padding: 64px 20px 80px; background: var(--nbcr-light); }
.nbcr-notfound__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.nbcr-notfound__code { margin: 0; font-family: var(--nbcr-display-font) !important; font-size: clamp(110px, 22vw, 200px); line-height: 0.85; color: var(--nbcr-blue); }
.nbcr-notfound h1 {
	margin: 8px 0 14px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(34px, 4.6vw, 52px); line-height: 0.98; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-notfound__body { margin: 0 auto 24px; max-width: 36em; font-size: 18px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-notfound__body p { font-size: inherit; }
.nbcr-notfound .nbcr-locsearch { margin: 0 auto 24px; text-align: left; }
.nbcr-notfound__links { justify-content: center; }
@media (min-width: 55em) { .nbcr-notfound { margin-top: 95px; padding: 96px 40px 112px; } }

/* Program social page */
.nbcr-sociallinks { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 46em) { .nbcr-sociallinks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nbcr-sociallinks li { margin: 0; list-style: none; }
.nbcr-sociallinks a { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border: 1px solid var(--nbcr-line); border-radius: 14px; font-family: var(--nbcr-strong-font); font-size: 18px; color: var(--nbcr-dark) !important; text-decoration: none !important; }
.nbcr-sociallinks a:hover { border-color: var(--nbcr-dark); }
.nbcr-sociallinks .icon { width: 28px; height: 28px; fill: var(--nbcr-link); }

/* ===================================================================   COACHES (Figma "07 Coaches & forms") — directory and profile
   ========================================================================== */
.nbcr-pagehead__intro { max-width: 46em; margin: 14px 0 0; font-size: 19px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-pagehead__intro p { margin: 0 0 10px; font-size: inherit; }
.nbcr-coachtools { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 24px; }
.nbcr-coachtools__search { flex: 0 1 420px; margin: 0; }
.nbcr-coachtools__search input[type=search] { flex: 1; width: auto; min-width: 0; height: 46px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font-family: var(--nbcr-body-font) !important; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--nbcr-dark); -webkit-appearance: none; appearance: none; }
.nbcr-coachtools__search input[type=search]:focus { outline: 0; }
.nbcr-az { display: flex; flex-wrap: wrap; gap: 2px; }
.nbcr-az a { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; border-radius: 8px; font-family: var(--nbcr-strong-font); font-size: 16px; color: var(--nbcr-dark) !important; text-decoration: none !important; }
.nbcr-az a:hover { background: var(--nbcr-dark); color: #fff !important; }
.nbcr-az a:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 1px; }

.nbcr-directors { padding: 56px 20px; background: var(--nbcr-light); }
.nbcr-directors__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-directors h2 {
	margin: 0 0 24px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(32px, 3.6vw, 48px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-directors .nbcr-section-head { max-width: none; }
.nbcr-directors .nbcr-section-head h2 { margin: 0; }
.nbcr-directors__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; margin: 0; padding: 0; list-style: none; }
.nbcr-directors__grid > li { margin: 0; list-style: none; font-size: inherit; }
.nbcr-coachcard { display: flex; flex-direction: column; gap: 6px; text-decoration: none !important; color: var(--nbcr-dark) !important; }
.nbcr-coachcard__img { display: block; overflow: hidden; margin-bottom: 8px; aspect-ratio: 1 / 1; border-radius: 16px; background: var(--nbcr-extralight); }
.nbcr-coachcard__img--wide { aspect-ratio: 5 / 4; }
.nbcr-coachcard__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 0.4s ease; }
.nbcr-coachcard:hover .nbcr-coachcard__img img { transform: scale(1.04); }
.nbcr-coachcard__name { font-family: var(--nbcr-strong-font); font-size: 20px; line-height: 1.25; }
.nbcr-coachcard__cta { font-size: 14px; color: var(--nbcr-link); }
.nbcr-coachcard:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 4px; border-radius: 16px; }
@media (min-width: 55em) { .nbcr-directors { padding: 80px 40px; } .nbcr-directors__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 70em) { .nbcr-directors { padding: 80px; } }

.nbcr-coachlist { padding: 56px 20px 64px; background: #fff; }
.nbcr-coachlist__inner { max-width: 1280px; margin: 0 auto; }
.nbcr-coachlist h2 {
	margin: 0 0 8px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(32px, 3.6vw, 48px); line-height: 1; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-coachgroup { padding-top: 24px; scroll-margin-top: 110px; }
.nbcr-coachgroup[hidden] { display: none; }
.nbcr-coachgroup__letter { display: flex; align-items: center; gap: 16px; margin: 0 0 16px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-size: 44px !important; line-height: 1; letter-spacing: 0 !important; color: var(--nbcr-blue); }
.nbcr-coachgroup__letter::after { content: ""; flex: 1; height: 2px; background: var(--nbcr-line); }
.nbcr-coachgroup__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nbcr-coachgroup__list > li { margin: 0; list-style: none; font-size: inherit; }
.nbcr-coachgroup__list > li[hidden] { display: none; }
@media (min-width: 46em) { .nbcr-coachgroup__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 70em) { .nbcr-coachgroup__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nbcr-coachlist { padding: 80px; } }
@media (min-width: 55em) and (max-width: 69.99em) { .nbcr-coachlist { padding: 80px 40px; } }
.nbcr-coachrow { display: flex; align-items: center; gap: 14px; height: 100%; padding: 14px 18px 14px 14px; border: 1px solid var(--nbcr-line); border-radius: 14px; text-decoration: none !important; color: var(--nbcr-dark) !important; transition: border-color 0.2s ease; }
.nbcr-coachrow:hover { border-color: var(--nbcr-dark); }
.nbcr-coachrow:focus-visible { outline: 3px solid var(--nbcr-teal); outline-offset: 2px; }
.nbcr-coachrow__avatar { display: inline-flex; flex: none; align-items: center; justify-content: center; overflow: hidden; width: 56px; height: 56px; border-radius: 50%; background: var(--nbcr-extralight); font-family: var(--nbcr-strong-font); font-size: 18px; color: var(--nbcr-gray); }
.nbcr-coachrow__avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-coachrow__text { display: flex; flex: 1; flex-direction: column; gap: 2px; min-width: 0; }
.nbcr-coachrow__name { font-family: var(--nbcr-strong-font); font-size: 18px; line-height: 1.3; }
.nbcr-coachrow__pos { font-size: 14px; line-height: 1.4; color: var(--nbcr-gray); }
.nbcr-coachrow__chev { flex: none; font-size: 26px; line-height: 1; color: var(--nbcr-link); }

.nbcr-ctaband--split { display: grid; gap: 20px; align-items: center; text-align: left; }
.nbcr-ctaband--split h2 { margin: 0 0 8px; }
.nbcr-ctaband--split p { max-width: 40em; margin: 0; }
.nbcr-ctaband--split .nbcr-ctaband__actions { justify-content: flex-start; }
@media (min-width: 55em) { .nbcr-ctaband--split { grid-template-columns: minmax(0, 1fr) auto; padding: 64px 40px; } }
@media (min-width: 70em) { .nbcr-ctaband--split { padding: 64px 80px; } }

.nbcr-coachhero { padding: 24px 20px 32px; background: var(--nbcr-light); }
.nbcr-coachhero__inner { display: grid; gap: 24px; max-width: 1280px; margin: 0 auto; }
.nbcr-coachhero__img { overflow: hidden; border-radius: 20px; background: var(--nbcr-extralight); }
.nbcr-coachhero__img img { display: block; width: 100%; height: auto; aspect-ratio: 42 / 50; object-fit: cover; object-position: top center; }
.nbcr-coachhero__copy .nbcr-post__slug { display: block; margin-bottom: 10px; }
.nbcr-coachhero h1 {
	margin: 0 0 14px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(48px, 7vw, 88px); line-height: 0.92; letter-spacing: 0; text-transform: uppercase; color: var(--nbcr-dark);
}
.nbcr-coachhero__lede { max-width: 38em; margin: 0 0 18px; font-size: 19px; line-height: 1.55; color: var(--nbcr-gray); }
.nbcr-coachhero__chips li { padding: 7px 14px; border: 1px solid var(--nbcr-line); border-radius: 999px; background: #fff; }
.nbcr-coachhero__ctas .nbcr-btn { border-radius: 999px; }
@media (max-width: 45.99em) { .nbcr-coachhero__img img { aspect-ratio: 7 / 6; } .nbcr-coachhero__ctas .nbcr-btn { width: 100%; } }
@media (min-width: 55em) {
	.nbcr-coachhero { padding: 64px 40px; }
	.nbcr-coachhero__inner { grid-template-columns: minmax(280px, 420px) minmax(0, 1fr); gap: 64px; align-items: center; }
	.nbcr-coachhero__inner--nophoto { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 70em) { .nbcr-coachhero { padding: 64px 80px; } }

.nbcr-coachaside { display: grid; gap: 24px; align-content: start; }
.nbcr-coachcamps { padding: 24px; border: 1px solid var(--nbcr-line); border-radius: 16px; background: #fff; scroll-margin-top: 110px; }
.nbcr-coachcamps h2 { margin: 0 0 8px; font-family: var(--nbcr-strong-font) !important; font-style: normal !important; font-size: 22px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-dark); }
.nbcr-coachcamps ul { margin: 0 0 16px; padding: 0; list-style: none; }
.nbcr-coachcamps li { margin: 0; list-style: none; border-top: 1px solid var(--nbcr-line); font-size: inherit; }
.nbcr-coachcamps li:first-child { border-top: 0; }
.nbcr-coachcamps li a { display: flex; align-items: center; gap: 14px; padding: 12px 0; text-decoration: none !important; color: var(--nbcr-dark) !important; }
.nbcr-coachcamps li a:hover .nbcr-coachcamps__name { text-decoration: underline; }
.nbcr-coachcamps__img { flex: none; overflow: hidden; width: 72px; height: 56px; border-radius: 8px; background: var(--nbcr-extralight); }
.nbcr-coachcamps__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbcr-coachcamps__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nbcr-coachcamps__name { font-family: var(--nbcr-strong-font); font-size: 16px; line-height: 1.3; }
.nbcr-coachcamps__meta { font-size: 14px; color: var(--nbcr-gray); }
.nbcr-coachcamps__more { margin: 0; font-size: 14px; color: var(--nbcr-gray); }
.nbcr-coachcamps > .nbcr-btn { display: flex; width: 100%; border-radius: 999px; }
@media (min-width: 55em) { .nbcr-coachaside { position: sticky; top: 120px; } }

/* ==========================================================================
   POPUP FORMS (_layout_forms: review, program contact, brochure fallback)
   ========================================================================== */
body.nbcr-formpage { background: var(--nbcr-light); }
.nbcr-formpage__bar { padding: 20px; text-align: center; }
.nbcr-formpage__logo img { display: inline-block; width: 188px; height: auto; }
.nbcr-in-frame .nbcr-formpage__bar { display: none; }
.nbcr-in-frame body.nbcr-formpage { background: #fff; }
.nbcr-formcard { max-width: 640px; margin: 0 auto 40px; overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.12); }
.nbcr-in-frame .nbcr-formcard { max-width: none; margin: 0; border-radius: 0; box-shadow: none; }
.nbcr-formcard__head { padding: 28px 28px 22px; background: var(--nbcr-light); }
.nbcr-formcard__head .nbcr-eyebrow { margin-bottom: 8px; }
.nbcr-formcard__head h1 {
	margin: 0 0 6px; font-family: var(--nbcr-display-font) !important; font-style: normal !important; font-weight: normal;
	font-size: clamp(32px, 6vw, 44px); line-height: 0.98; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: var(--nbcr-dark);
}
.nbcr-formcard__sub { margin: 0; font-size: 16px; line-height: 1.5; color: var(--nbcr-gray); }
.nbcr-formcard__body { padding: 24px 28px 32px; }
.nbcr-formcard__done { text-align: center; }
.nbcr-formcard__done p { margin: 0 auto 12px; max-width: 30em; font-size: 17px; line-height: 1.6; color: var(--nbcr-gray); }
.nbcr-formcard__done a:not(.nbcr-btn) { color: var(--nbcr-link); }
.nbcr-formcard__done .nbcr-btn { margin-top: 8px; border-radius: 999px; }
.nbcr-formcard__tick { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 16px; border-radius: 50%; background: var(--nbcr-blue); font-family: var(--nbcr-strong-font); font-size: 34px; color: var(--nbcr-dark); }
@media (min-width: 46em) { .nbcr-formcard__head { padding: 32px 36px 24px; } .nbcr-formcard__body { padding: 28px 36px 36px; } }

.nbcr-form { display: grid; gap: 18px; margin: 0; }
.nbcr-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.nbcr-field label { margin: 0; padding: 0; border: 0; font-family: var(--nbcr-strong-font) !important; font-size: 16px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-dark); }
.nbcr-req { color: var(--nbcr-link); }
.nbcr-field input[type=text], .nbcr-field input[type=email], .nbcr-field input[type=tel], .nbcr-field select, .nbcr-field textarea {
	width: 100%; min-height: 48px; margin: 0; padding: 12px 14px; border: 1px solid var(--nbcr-line); border-radius: 8px; background: var(--nbcr-light); box-shadow: none;
	font-family: var(--nbcr-body-font) !important; font-size: 16px; line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--nbcr-dark);
}
.nbcr-field select { -webkit-appearance: none; appearance: none; padding-right: 36px; background: var(--nbcr-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2359595b' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; }
.nbcr-field textarea { min-height: 120px; resize: vertical; }
.nbcr-field ::placeholder { color: var(--nbcr-gray); opacity: 1; text-transform: none; letter-spacing: 0; }
.nbcr-field input:focus, .nbcr-field select:focus, .nbcr-field textarea:focus { border-color: var(--nbcr-teal); outline: 3px solid rgba(69, 143, 163, 0.35); outline-offset: 0; background-color: #fff; }
.nbcr-form .parsley-error, .nbcr-form input.parsley-error, .nbcr-form select.parsley-error, .nbcr-form textarea.parsley-error { border-color: #b3261e !important; }
.nbcr-form .parsley-error-list, .nbcr-form ul.errors { margin: 2px 0 0; padding: 0; list-style: none; }
.nbcr-form .parsley-error-list li, .nbcr-form ul.errors li { margin: 0; list-style: none; font-size: 14px; color: #b3261e; }
.nbcr-field-row { display: grid; gap: 18px; }
@media (min-width: 30em) { .nbcr-field-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

.nbcr-ratings { margin: 0; padding: 0; border: 0; min-width: 0; }
.nbcr-ratings legend { margin: 0 0 4px; padding: 0; }
.nbcr-rating { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; padding: 8px 0; border-bottom: 1px solid var(--nbcr-line); }
.nbcr-rating__label { font-size: 16px; color: var(--nbcr-dark); }
.nbcr-stars { display: inline-flex; flex-direction: row-reverse; }
.nbcr-stars input { position: absolute !important; left: auto !important; width: 1px; height: 1px; margin: 0; opacity: 0; }
.nbcr-stars label { display: inline-block; width: 34px; height: 34px; margin: 0; padding: 0; cursor: pointer; font-size: 30px !important; line-height: 34px; text-align: center; color: var(--nbcr-line); }
.nbcr-stars label::before { content: "\2605"; }
.nbcr-stars label:hover, .nbcr-stars label:hover ~ label, .nbcr-stars input:checked ~ label { color: var(--nbcr-blue); }
.nbcr-stars input:focus-visible + label { outline: 3px solid var(--nbcr-teal); outline-offset: -2px; border-radius: 6px; }
.nbcr-rating .parsley-error-list { flex-basis: 100%; }

.nbcr-check { position: relative; display: flex; align-items: flex-start; gap: 12px; }
.nbcr-check input[type=checkbox] { position: static !important; left: auto !important; flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--nbcr-dark); -webkit-appearance: auto; appearance: auto; }
.nbcr-check label { margin: 0; font-family: var(--nbcr-body-font) !important; font-size: 15px !important; line-height: 1.5; letter-spacing: 0 !important; text-transform: none !important; color: var(--nbcr-gray); }
.nbcr-check .parsley-error-list { position: absolute; top: 100%; left: 34px; }
.nbcr-form__submit, .nbcr-form .nbcr-btn { display: inline-flex; width: 100%; border-radius: 999px; }
.nbcr-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.nbcr-form__foot p { margin: 0; font-size: 14px; color: var(--nbcr-gray); }
.nbcr-form__foot a { color: var(--nbcr-link); }
.nbcr-form__foot .nbcr-btn { width: auto; }
.nbcr-coachbody .nbcr-prose > h2:first-child {
	margin-top: 0; font-family: var(--nbcr-display-font) !important; font-size: clamp(30px, 3.4vw, 40px) !important; line-height: 1; text-transform: uppercase !important;
}
@media (min-width: 55em) { .nbcr-page.nbcr-coachbody { grid-template-columns: minmax(0, 720px) minmax(300px, 420px); } }
.nbcr-stars label, .nbcr-check label { border: 0 !important; padding-top: 0; padding-bottom: 0; }
body.nbcr-formpage .siteWrapper, body.nbcr-formpage main { background: transparent; }
body.nbcr-formpage main { padding: 0 16px 40px; }
.nbcr-in-frame body.nbcr-formpage main { padding: 0; }
/* The camp page's sticky register bar (z 9000) sat on top of the open mobile menu. */
html.nbch-lock .nbcr-sticky-cta { display: none; }
