/* ============================================================================
 * Norwood Dental - Main stylesheet
 *
 * Sections:
 *   1. Reset / base
 *   2. Typography
 *   3. Layout primitives
 *   4. Header & nav
 *   5. Footer
 *   6. Buttons
 *   7. Forms (appointment form)
 *   8. Common section blocks
 *   9. Page-specific
 *  10. Utilities
 * ========================================================================== */

/* ============================================================================
 * 1. Reset / base
 * ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; tab-size: 4; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--nd-font-body);
	font-size: var(--nd-body);
	line-height: var(--nd-leading-base);
	color: var(--nd-text);
	background-color: var(--nd-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img, svg, video { display: block; max-width: 100%; height: auto; }
img { font-style: italic; background: rgba(0,0,0,.04); }

a { color: var(--nd-french-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--nd-prussian); }

button { font: inherit; cursor: pointer; }

/* Focus rings (a11y) */
:focus-visible {
	outline: 3px solid var(--nd-lime);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Skip link */
.nd-skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--nd-prussian); color: var(--nd-white);
	padding: 12px 20px; z-index: 10000;
	text-decoration: none;
}
.nd-skip-link:focus { left: 16px; top: 16px; }

/* ============================================================================
 * 2. Typography
 * ========================================================================== */
.nd-display, h1, h2, h3 {
	font-family: var(--nd-font-display);
	font-weight: 700;
	line-height: var(--nd-leading-tight);
	letter-spacing: var(--nd-tracking-tight);
	color: var(--nd-text);
	margin: 0 0 var(--nd-space-4);
}

h1, .nd-h1 { font-size: var(--nd-h1); }
h2, .nd-h2 { font-size: var(--nd-h2); }
h3, .nd-h3 { font-size: var(--nd-h3); line-height: var(--nd-leading-snug); letter-spacing: -0.01em; }
h4, .nd-h4 { font-size: var(--nd-h4); font-family: var(--nd-font-sans); font-weight: 600; letter-spacing: 0; }

p { margin: 0 0 var(--nd-space-4); }
p:last-child { margin-bottom: 0; }

.nd-lead { font-size: var(--nd-body-lg); line-height: var(--nd-leading-base); }

.nd-eyebrow {
	display: inline-block;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-eyebrow);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	color: var(--nd-pacific-blue);
	margin-bottom: var(--nd-space-3);
}

.on-dark .nd-eyebrow { color: var(--nd-pacific-blue); }
.on-dark, .on-dark p, .on-dark .nd-h1, .on-dark .nd-h2, .on-dark .nd-h3,
.on-dark h1, .on-dark h2, .on-dark h3 { color: var(--nd-text-inverse); }

/* ============================================================================
 * 3. Layout primitives
 * ========================================================================== */
.nd-container { max-width: var(--nd-container); margin: 0 auto; padding-left: var(--nd-gutter); padding-right: var(--nd-gutter); }
.nd-container--narrow { max-width: var(--nd-container-narrow); margin: 0 auto; padding-left: var(--nd-gutter); padding-right: var(--nd-gutter); }

.nd-section { padding-top: var(--nd-section-y); padding-bottom: var(--nd-section-y); }
.nd-section--tight { padding-top: clamp(2rem, 4vw, 4rem); padding-bottom: clamp(2rem, 4vw, 4rem); }

.nd-section--dark { background-color: var(--nd-bg-dark); color: var(--nd-text-inverse); }
.nd-section--blue { background-color: var(--nd-french-blue); color: var(--nd-text-inverse); }

.nd-grid { display: grid; gap: var(--nd-space-6); }
.nd-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nd-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nd-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1024px) {
	.nd-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nd-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.nd-grid--2, .nd-grid--3, .nd-grid--4 { grid-template-columns: 1fr; }
}

.nd-stack > * + * { margin-top: var(--nd-space-4); }

/* Hero chevron pattern overlay */
.nd-chevron-bg {
	position: relative;
	background-color: var(--nd-prussian);
	overflow: hidden;
}
.nd-chevron-bg::after {
	content: '';
	position: absolute; right: 0; bottom: 0;
	width: 38%; height: 70%;
	background: linear-gradient(115deg, transparent 35%, var(--nd-french-blue) 35% 55%, var(--nd-lime) 55% 78%, var(--nd-pacific-blue) 78% 100%);
	clip-path: polygon(15% 100%, 100% 0, 100% 100%);
	opacity: 0.95;
	pointer-events: none;
}

/* ============================================================================
 * 4. Header & nav
 * ========================================================================== */
.nd-site-header {
	background-color: var(--nd-prussian);
	color: var(--nd-text-inverse);
	padding: var(--nd-space-4) 0;
	position: sticky; top: 0; z-index: 100;
}
.nd-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--nd-space-4); }
.nd-logo { display: inline-flex; align-items: center; gap: var(--nd-space-3); color: inherit; text-decoration: none; }
.nd-logo img { max-height: 48px; width: auto; }
.nd-logo__wordmark { font-family: var(--nd-font-display); font-size: var(--nd-h4); letter-spacing: 0.02em; }

.nd-nav { display: flex; align-items: center; gap: var(--nd-space-6); }
.nd-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--nd-space-6); }
.nd-nav__list a {
	color: var(--nd-text-inverse);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	font-weight: 400;
	text-decoration: none;
	letter-spacing: 0.02em;
	padding: var(--nd-space-2) 0;
	white-space: nowrap; /* prevent ragged two-line items at laptop widths */
}
.nd-nav__list a:hover { color: var(--nd-lime); }

.nd-nav__toggle {
	display: none;
	background: transparent; border: 0; color: inherit;
	padding: var(--nd-space-2); margin-left: auto;
}

/* Desktop: panel is just a flex row of list + CTA next to each other */
.nd-nav__panel { display: flex; align-items: center; gap: var(--nd-space-6); }

/* --- Locations dropdown --------------------------------------------------- */
.nd-nav__list li { position: relative; }
.nd-nav__list .menu-item-has-children > a::after {
	content: '\25BE'; /* small down caret */
	display: inline-block;
	margin-left: 6px;
	font-size: 0.7em;
	opacity: 0.7;
	transform: translateY(-1px);
}
.nd-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 6px);
	min-width: 180px;
	background: var(--nd-prussian);
	border-radius: var(--nd-radius-md);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
	padding: var(--nd-space-3);
	margin: 0;
	list-style: none;
	z-index: 120;
	opacity: 0;
	visibility: hidden;
	/* hover intent: delayed close so brief mouse exits don't slam it shut */
	transition: opacity 0.16s ease 0.25s, transform 0.16s ease 0.25s, visibility 0s linear 0.41s;
}
.nd-nav__list li:hover > .sub-menu,
.nd-nav__list li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	/* hover intent: slight delay before opening so drive-by hovers don't trigger it */
	transition: opacity 0.16s ease 0.12s, transform 0.16s ease 0.12s, visibility 0s linear 0.12s;
}
.nd-nav__list .sub-menu li { position: static; }
.nd-nav__list .sub-menu a {
	display: block;
	padding: var(--nd-space-2) var(--nd-space-3);
	border-radius: 8px;
}
.nd-nav__list .sub-menu a:hover { background: rgba(255, 255, 255, 0.06); }

@media (max-width: 960px) {
	/* Mobile header: [logo, bigger]                              [hamburger] */
	.nd-site-header { position: relative; padding: var(--nd-space-4) 0; }
	.nd-nav { gap: var(--nd-space-3); }

	.nd-nav__toggle {
		display: inline-flex;
		margin-left: auto;
	}

	/* Logo restored to a prominent size on mobile */
	.nd-logo__svg, .nd-logo svg, .nd-logo img { height: 44px; max-height: 44px; }

	/* The CTA + menu list collapse together into the dropdown panel */
	.nd-nav__panel {
		display: none;
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--nd-prussian);
		padding: var(--nd-space-6);
		flex-direction: column;
		align-items: stretch;
		gap: var(--nd-space-5);
		z-index: 100;
		box-shadow: 0 8px 24px rgba(0,0,0,.3);
	}
	.nd-nav[aria-expanded="true"] .nd-nav__panel { display: flex; }

	/* Menu items stack vertically inside the dropdown */
	.nd-nav__panel .nd-nav__list {
		display: flex;
		position: static;
		background: transparent;
		padding: 0;
		flex-direction: column;
		gap: var(--nd-space-4);
		box-shadow: none;
	}

	/* Locations sub-menu: rendered inline + indented inside the drawer */
	.nd-nav__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
		box-shadow: none;
		background: transparent;
		min-width: 0;
		padding: var(--nd-space-3) 0 0 var(--nd-space-4);
		display: flex;
		flex-direction: column;
		gap: var(--nd-space-3);
	}

	/* CTA button at the bottom of the dropdown — full width, full-size */
	.nd-nav__panel .nd-btn--primary {
		min-width: 0;
		width: 100%;
		min-height: 48px;
		padding: var(--nd-space-4) var(--nd-space-6);
		font-size: var(--nd-btn);
		letter-spacing: var(--nd-tracking-wider);
		text-align: center;
	}
}

/* ============================================================================
 * 5. Footer
 * ========================================================================== */
.nd-site-footer {
	background-color: var(--nd-prussian);
	color: var(--nd-text-inverse);
	padding: var(--nd-space-16) 0 var(--nd-space-8);
}
.nd-site-footer a { color: var(--nd-text-inverse); }
.nd-site-footer a:hover { color: var(--nd-lime); }

.nd-footer__grid { display: grid; grid-template-columns: 1.6fr 0.9fr 1.1fr 1.1fr; gap: var(--nd-space-10); }
@media (max-width: 960px) { .nd-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--nd-space-8); } }
@media (max-width: 640px) { .nd-footer__grid { grid-template-columns: 1fr; gap: var(--nd-space-8); } }

.nd-footer__brand { display: flex; flex-direction: column; gap: var(--nd-space-5); }
.nd-footer__brand img { max-width: 280px; height: auto; }
.nd-footer__tagline { margin: 0; max-width: 34ch; color: var(--nd-text-inverse-muted); font-size: var(--nd-small); line-height: 1.7; }

.nd-footer__nav h3 {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h4);
	color: var(--nd-text-inverse);
	margin: 0 0 var(--nd-space-3);
}
.nd-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.nd-footer__nav li { margin-bottom: var(--nd-space-2); }
.nd-footer__nav a { color: var(--nd-text-inverse-muted); text-decoration: none; font-size: var(--nd-small); line-height: 1.7; }
.nd-footer__nav a:hover { color: var(--nd-lime); }

.nd-footer__legal a { color: var(--nd-text-inverse-muted); text-decoration: underline; text-underline-offset: 4px; }
.nd-footer__legal a:hover { color: var(--nd-lime); }

.nd-footer__location h3 {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h4);
	color: var(--nd-text-inverse);
	margin: 0 0 var(--nd-space-3);
}
.nd-footer__location p { margin: 0 0 var(--nd-space-2); color: var(--nd-text-inverse-muted); line-height: 1.6; }
.nd-footer__location a { text-decoration: underline; text-underline-offset: 4px; }

.nd-footer__hours { margin-top: var(--nd-space-4); }
.nd-footer__hours li { display: flex; justify-content: space-between; font-size: var(--nd-small); color: var(--nd-text-inverse-muted); margin-bottom: 2px; }

.nd-footer__bottom { border-top: 1px solid var(--nd-border-dark); margin-top: var(--nd-space-12); padding-top: var(--nd-space-6); display: flex; justify-content: space-between; gap: var(--nd-space-4); font-size: var(--nd-small); color: var(--nd-text-inverse-muted); }
.nd-footer__social { display: flex; gap: var(--nd-space-3); }
.nd-footer__location .nd-footer__social { margin-top: var(--nd-space-4); }
.nd-footer__social a:hover { background: rgba(255,255,255,.16); color: var(--nd-lime); }
.nd-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.08); }

/* ============================================================================
 * 6. Buttons
 * ========================================================================== */
.nd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--nd-space-2);
	padding: var(--nd-space-4) var(--nd-space-8);
	font-family: var(--nd-font-sans);
	font-weight: 700;
	font-size: var(--nd-btn);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
	border-radius: var(--nd-radius-pill);
	cursor: pointer;
	transition: transform var(--nd-fast) var(--nd-ease), background-color var(--nd-fast) var(--nd-ease), box-shadow var(--nd-fast) var(--nd-ease);
	min-height: 48px;
	min-width: 140px;
}
.nd-btn:hover { transform: translateY(-1px); }
.nd-btn:active { transform: translateY(0); }

.nd-btn--primary {
	background-color: var(--nd-lime);
	color: var(--nd-prussian);
}
.nd-btn--primary:hover { background-color: var(--nd-lime-hover); color: var(--nd-prussian); }

/* Default (on light surfaces): French Blue button with White Smoke text */
.nd-btn--secondary {
	background-color: var(--nd-french-blue);
	color: var(--nd-white-smoke);
}
.nd-btn--secondary:hover {
	background-color: var(--nd-prussian);
	color: var(--nd-white-smoke);
}

/* Inside .on-dark sections: flip to White Smoke with Prussian text */
.on-dark .nd-btn--secondary {
	background-color: var(--nd-white-smoke);
	color: var(--nd-prussian);
}
.on-dark .nd-btn--secondary:hover {
	background-color: color-mix(in srgb, var(--nd-white-smoke), var(--nd-prussian) 8%);
	color: var(--nd-prussian);
}

.nd-btn--ghost {
	background-color: transparent;
	color: var(--nd-text-inverse);
	border: 2px solid currentColor;
}
.nd-btn--ghost:hover {
	background-color: var(--nd-text-inverse);
	color: var(--nd-prussian);
	border-color: var(--nd-text-inverse);
}
.on-dark .nd-btn--ghost { color: var(--nd-text-inverse); border-color: var(--nd-text-inverse); }
.on-dark .nd-btn--ghost:hover { background-color: var(--nd-text-inverse); color: var(--nd-prussian); }

/* ============================================================================
 * 7. Forms
 * ========================================================================== */
.nd-form { display: flex; flex-direction: column; gap: var(--nd-space-5); }
.nd-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nd-space-5); }
@media (max-width: 640px) { .nd-form__row { grid-template-columns: 1fr; } }

.nd-field { display: flex; flex-direction: column; gap: var(--nd-space-2); }
.nd-field label {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	color: var(--nd-pacific-blue);
}
.nd-field input, .nd-field select, .nd-field textarea {
	width: 100%;
	padding: var(--nd-space-3) var(--nd-space-4);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-body);
	color: var(--nd-text);
	background-color: var(--nd-white);
	border: 1px solid var(--nd-border);
	border-radius: var(--nd-radius-md);
	min-height: 48px;
	transition: border-color var(--nd-fast) var(--nd-ease), box-shadow var(--nd-fast) var(--nd-ease);
}
.nd-field input:focus, .nd-field select:focus, .nd-field textarea:focus {
	border-color: var(--nd-french-blue);
	box-shadow: 0 0 0 3px rgba(3,65,146,.15);
	outline: none;
}
.nd-field textarea { min-height: 120px; resize: vertical; }
.nd-field--error input, .nd-field--error select, .nd-field--error textarea { border-color: var(--nd-error); }
.nd-field__error { font-size: var(--nd-xs); color: var(--nd-error); }

/* Honeypot - visually hidden but accessible to bots */
.nd-hp { position: absolute; left: -9999px; top: -9999px; height: 1px; width: 1px; overflow: hidden; }

.nd-form-success {
	padding: var(--nd-space-4) var(--nd-space-6);
	background-color: rgba(44,138,74,.08);
	border-left: 4px solid var(--nd-success);
	color: var(--nd-success);
	border-radius: var(--nd-radius-sm);
	margin-bottom: var(--nd-space-6);
}
.nd-form-errors {
	padding: var(--nd-space-4) var(--nd-space-6);
	background-color: rgba(193,52,42,.08);
	border-left: 4px solid var(--nd-error);
	color: var(--nd-error);
	border-radius: var(--nd-radius-sm);
	margin-bottom: var(--nd-space-6);
}

/* ============================================================================
 * 8. Common section blocks
 * ========================================================================== */

/* Hero */
.nd-hero { padding: clamp(3rem, 6vw, 6rem) 0; color: var(--nd-text-inverse); position: relative; z-index: 1; }
.nd-hero h1 { color: var(--nd-text-inverse); margin-bottom: var(--nd-space-3); }
.nd-hero__lines > div + div { margin-top: 0.1em; }
.nd-hero__subhead { font-size: var(--nd-body-lg); color: var(--nd-text-inverse-muted); margin-top: var(--nd-space-3); max-width: 56ch; }
.nd-hero--center { text-align: center; }
.nd-hero--center .nd-hero__subhead { margin-left: auto; margin-right: auto; }
.nd-hero .nd-container { position: relative; z-index: 2; }

/* ============================================================================
 * Google review badge (Featured review #1)
 * ========================================================================== */
.nd-review-with-badge { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--nd-space-12); align-items: center; }
@media (max-width: 840px) { .nd-review-with-badge { grid-template-columns: 1fr; gap: var(--nd-space-6); } }
.nd-google-badge {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-6) var(--nd-space-8);
	text-align: center;
	box-shadow: var(--nd-shadow-card);
}
.nd-google-badge__rating { font-family: var(--nd-font-display); font-size: var(--nd-display-sm); line-height: 1; margin-bottom: var(--nd-space-2); }
.nd-google-badge__stars { font-size: var(--nd-h4); color: var(--nd-lime); letter-spacing: 0.1em; margin-bottom: var(--nd-space-3); }
.nd-google-badge__label { font-family: var(--nd-font-sans); font-size: var(--nd-small); font-weight: 600; text-decoration: none; color: inherit; }
.nd-google-badge__label:hover { color: var(--nd-lime); }

/* Cards (service categories on dark surfaces) */
.nd-card {
	background-color: var(--nd-surface);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-8);
	box-shadow: var(--nd-shadow-card);
}
.nd-card--dark {
	background-color: var(--nd-surface-dark);
	color: var(--nd-text-inverse);
	box-shadow: var(--nd-shadow-card-dark);
}
.nd-card--dark h3, .nd-card--dark h2 { color: var(--nd-text-inverse); }

/* Stars */
.nd-stars { color: var(--nd-lime); letter-spacing: 0.1em; font-size: var(--nd-h4); }

/* Match the testimonial star spacing in the Google badge (both layers get the
   same spacing, so the partial-fill overlay still lines up). */
.nd-google-badge__stars-bg,
.nd-google-badge__stars-fg { letter-spacing: 0.1em; }

/* Testimonial */
.nd-testimonial { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--nd-space-12); align-items: center; }
@media (max-width: 840px) { .nd-testimonial { grid-template-columns: 1fr; } }
.nd-testimonial__quote { font-family: var(--nd-font-display); font-size: var(--nd-h2); line-height: var(--nd-leading-tight); margin-bottom: var(--nd-space-4); }
.nd-testimonial__body  { font-size: var(--nd-body-lg); line-height: var(--nd-leading-base); margin-bottom: var(--nd-space-4); }
.nd-testimonial__author { font-family: var(--nd-font-sans); font-size: var(--nd-xs); letter-spacing: var(--nd-tracking-wider); text-transform: uppercase; font-weight: 700; }
.nd-testimonial__media img { border-radius: var(--nd-radius-lg); width: 100%; height: auto; }

/* FAQ accordion */
.nd-faq { display: flex; flex-direction: column; gap: var(--nd-space-3); }
.nd-faq__item {
	background: var(--nd-white);
	border-radius: var(--nd-radius-md);
	box-shadow: var(--nd-shadow-card);
	overflow: hidden;
}
.nd-faq__trigger {
	width: 100%;
	display: flex; align-items: center; justify-content: space-between; gap: var(--nd-space-4);
	padding: var(--nd-space-5) var(--nd-space-6);
	background: transparent; border: 0;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-body);
	font-weight: 600;
	text-align: left;
	color: var(--nd-text);
}
.nd-faq__trigger::after { content: '›'; font-size: var(--nd-h4); transition: transform var(--nd-medium) var(--nd-ease); }
.nd-faq__trigger[aria-expanded="true"]::after { transform: rotate(90deg); }
.nd-faq__panel {
	display: none;
	padding: 0 var(--nd-space-6) var(--nd-space-6);
	color: var(--nd-text-muted);
	line-height: var(--nd-leading-base);
}
.nd-faq__panel[data-open="true"] { display: block; }

/* Locations block - two location cards (compact, dark navy variant for homepage) */
.nd-locations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nd-space-6); }
@media (max-width: 840px) { .nd-locations { grid-template-columns: 1fr; } }
.nd-location-card {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
	box-shadow: var(--nd-shadow-card-dark);
	padding: var(--nd-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-3);
}
.nd-location-card__media { aspect-ratio: 16/10; background: var(--nd-pacific-blue); border-radius: var(--nd-radius-md); overflow: hidden; }
.nd-location-card__media img { width: 100%; height: 100%; object-fit: cover; }
.nd-location-card__body { padding: 0; }
.nd-location-card__name { font-family: var(--nd-font-display); font-size: var(--nd-h3); color: var(--nd-text-inverse); margin: 0 0 var(--nd-space-1); }
.nd-location-card__address { color: var(--nd-text-inverse-muted); font-size: var(--nd-small); margin-bottom: var(--nd-space-3); }
.nd-location-card__hours { color: var(--nd-text-inverse-muted); font-size: var(--nd-small); margin-bottom: var(--nd-space-4); line-height: 1.7; }
.nd-location-card__hours div + div { margin-top: 2px; }
.nd-location-card__cta { display: flex; gap: var(--nd-space-2); flex-wrap: wrap; margin-top: auto; }
.nd-location-card__cta .nd-btn { min-width: 0; padding: var(--nd-space-3) var(--nd-space-5); font-size: var(--nd-xs); }

/* Location card - featured photo variant (used on the Locations selector page) */
.nd-location-card--with-media { padding: 0; background: var(--nd-white); color: var(--nd-text); }
.nd-location-card--with-media .nd-location-card__name { color: var(--nd-text); }
.nd-location-card--with-media .nd-location-card__address,
.nd-location-card--with-media .nd-location-card__hours { color: var(--nd-text-muted); }
.nd-location-card--with-media .nd-location-card__body { padding: var(--nd-space-6); }

/* Numbered step cards */
.nd-steps { display: grid; gap: var(--nd-space-5); grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .nd-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nd-steps { grid-template-columns: 1fr; } }
.nd-step {
	background: var(--nd-white);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-6);
	box-shadow: var(--nd-shadow-card);
}
.on-dark .nd-step { background: var(--nd-surface-dark); color: var(--nd-text-inverse); }
.on-dark .nd-step .nd-step__title { color: var(--nd-text-inverse); }
.nd-step__num { font-family: var(--nd-font-display); font-size: var(--nd-display-sm); color: var(--nd-pacific-blue); margin-bottom: var(--nd-space-3); line-height: 1; }
.nd-step__title { font-family: var(--nd-font-sans); font-weight: 700; font-size: var(--nd-h4); margin-bottom: var(--nd-space-2); }
.nd-step__body { font-size: var(--nd-small); color: var(--nd-text-muted); line-height: 1.6; }
.on-dark .nd-step__body { color: var(--nd-text-inverse-muted); }

/* Service category cards (two-card dark navy pattern for Services page) */
.nd-service-cats { display: grid; gap: var(--nd-space-6); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 840px) { .nd-service-cats { grid-template-columns: 1fr; } }
.nd-service-cat {
	background: var(--nd-prussian-90);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-8);
	color: var(--nd-text-inverse);
}
.nd-service-cat__head { display: flex; align-items: center; gap: var(--nd-space-5); margin-bottom: var(--nd-space-5); }
.nd-service-cat__head h3 { margin: 0; }
.nd-service-cat__icon { width: 96px; height: 96px; background: transparent; border: 2px solid rgba(255,255,255,.45); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nd-service-cat__icon img,
.nd-service-cat__icon svg { width: 48px; height: 48px; filter: brightness(0) invert(1); }
.nd-service-cat h3 { color: var(--nd-text-inverse); margin-bottom: var(--nd-space-3); }
.nd-service-cat__list { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nd-space-4) var(--nd-space-6); list-style: none; padding: 0; margin: var(--nd-space-6) 0 0; font-size: var(--nd-body); }
.nd-service-cat__list li { position: relative; padding-left: 18px; font-weight: 700; color: var(--nd-text-inverse); line-height: var(--nd-leading-snug); }
.nd-service-cat__list li::before { content: '•'; position: absolute; left: 0; top: 0; color: var(--nd-text-inverse); font-weight: 400; }

/* Service tiles row ("Protecting your smile") */
.nd-service-tiles {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-12) var(--nd-space-10);
	text-align: center;
}
.nd-service-tiles__row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--nd-space-8);
	margin-top: var(--nd-space-10);
}
@media (max-width: 840px) { .nd-service-tiles__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nd-space-10); } }

.nd-service-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--nd-space-4);
	font-family: var(--nd-font-sans);
	font-weight: 700;
	font-size: var(--nd-small);
}
.nd-service-tile__icon {
	width: 80px;
	height: 80px;
	border: 2px solid rgba(255,255,255,.55);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.nd-service-tile__icon svg,
.nd-service-tile__icon img {
	width: 36px;
	height: 36px;
	filter: brightness(0) invert(1);
}

/* What to bring (checklist band) */
.nd-checklist { background: var(--nd-french-blue); color: var(--nd-text-inverse); border-radius: var(--nd-radius-lg); padding: var(--nd-space-16) var(--nd-space-12); text-align: center; }
.nd-checklist__items { list-style: none; padding: 0; margin: var(--nd-space-10) 0 0; max-width: 56ch; margin-left: auto; margin-right: auto; text-align: left; }
.nd-checklist__items li { padding-left: 32px; position: relative; margin-bottom: var(--nd-space-4); }
.nd-checklist__items li::before {
	content: '✓'; position: absolute; left: 0; top: 0;
	color: var(--nd-prussian);
	background: var(--nd-lime);
	width: 22px; height: 22px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: var(--nd-xs); font-weight: 700;
}
.nd-checklist__footnote { margin-top: var(--nd-space-10); color: var(--nd-text-inverse-muted); font-size: var(--nd-small); }

/* Three pillars (eg "Three things we never compromise on") */
.nd-pillars { display: grid; gap: var(--nd-space-5); grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 840px) { .nd-pillars { grid-template-columns: 1fr; } }
.nd-pillar {
	background: var(--nd-white);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-6);
	box-shadow: var(--nd-shadow-card);
}
.on-dark .nd-pillar { background: var(--nd-surface-dark); color: var(--nd-text-inverse); }
.nd-pillar h3 { font-size: var(--nd-h4); font-family: var(--nd-font-sans); font-weight: 700; margin-bottom: var(--nd-space-2); }
.on-dark .nd-pillar h3 { color: var(--nd-text-inverse); }
.nd-pillar__body { font-size: var(--nd-small); color: var(--nd-text-muted); }
.on-dark .nd-pillar__body { color: var(--nd-text-inverse-muted); }

/* Team bio */
.nd-team-bio { display: grid; grid-template-columns: 1fr 1.5fr; gap: var(--nd-space-12); align-items: center; margin-bottom: var(--nd-space-16); }
@media (max-width: 840px) { .nd-team-bio { grid-template-columns: 1fr; } }
.nd-team-bio--reverse { direction: rtl; }
.nd-team-bio--reverse > * { direction: ltr; }
.nd-team-bio__photo { aspect-ratio: 4/5; background: var(--nd-pacific-blue); border-radius: var(--nd-radius-lg); overflow: hidden; }
.nd-team-bio__photo img { width: 100%; height: 100%; object-fit: cover; }
.nd-team-bio__name { font-family: var(--nd-font-display); font-size: var(--nd-h2); margin-bottom: var(--nd-space-2); }
.nd-team-bio__title { font-family: var(--nd-font-sans); font-size: var(--nd-xs); letter-spacing: var(--nd-tracking-wider); text-transform: uppercase; font-weight: 700; color: var(--nd-pacific-blue); margin-bottom: var(--nd-space-4); }

/* Timeline */
.nd-timeline { display: grid; gap: var(--nd-space-4); grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1024px) { .nd-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nd-timeline { grid-template-columns: 1fr; } }
.nd-timeline__item {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-6);
}
.nd-timeline__year { font-family: var(--nd-font-display); font-size: var(--nd-display-sm); line-height: 1; margin-bottom: var(--nd-space-2); }
.nd-timeline__title { font-family: var(--nd-font-sans); font-weight: 700; font-size: var(--nd-h4); margin-bottom: var(--nd-space-2); }

/* Two-column lead block (used on First Visit, Kids "approach") */
.nd-lead-block { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nd-space-12); align-items: center; }
@media (max-width: 840px) { .nd-lead-block { grid-template-columns: 1fr; } }
.nd-lead-block__photo img { width: 100%; height: auto; border-radius: var(--nd-radius-lg); aspect-ratio: 4/3; object-fit: cover; }

/* Pull quote (big serif quote between sections) */
.nd-pull-quote { background: var(--nd-french-blue); color: var(--nd-text-inverse); border-radius: var(--nd-radius-lg); padding: var(--nd-space-10) var(--nd-space-12); text-align: center; font-family: var(--nd-font-display); font-size: var(--nd-h3); line-height: var(--nd-leading-snug); }

/* Comfort menu list */
.nd-menu { display: flex; flex-direction: column; gap: var(--nd-space-3); }
.nd-menu__item {
	background: var(--nd-white);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-4) var(--nd-space-5);
	box-shadow: var(--nd-shadow-card);
}
.nd-menu__label { font-family: var(--nd-font-sans); font-weight: 700; }
.nd-menu__desc { font-size: var(--nd-small); color: var(--nd-text-muted); }

/* Closing CTA */
.nd-closing { text-align: center; padding: clamp(3rem, 5vw, 5rem) 0; background: var(--nd-bg); }
.nd-closing h2 { color: var(--nd-text); margin-bottom: var(--nd-space-3); }
.nd-closing .nd-lead { color: var(--nd-text-muted); }

/* ============================================================================
 * 9. Page-specific
 * ========================================================================== */
.nd-location-page__hero-meta {
	background: var(--nd-prussian-90);
	padding: var(--nd-space-5);
	border-radius: var(--nd-radius-md);
	display: flex; flex-wrap: wrap; gap: var(--nd-space-6); align-items: center;
	font-size: var(--nd-small); color: var(--nd-text-inverse-muted);
}

/* ============================================================================
 * 10. Utilities
 * ========================================================================== */
.nd-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.nd-text-center { text-align: center; }
.nd-mt-0 { margin-top: 0; }
.nd-mb-0 { margin-bottom: 0; }

/* ============================================================================
 * v0.3 — Polish
 * ========================================================================== */

/* Brand pattern texture on hero (subtle, dark mode) */
.nd-chevron-bg {
	background-image: url('../images/patterns/pattern-white-20.svg');
	background-repeat: repeat;
	background-size: 480px auto;
	background-position: -120px center;
}
	
.nd-chevron-bg::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(2,29,59,.85) 0%, rgba(2,29,59,.92) 100%);
	pointer-events: none;
	z-index: 0;
}
	
.nd-chevron-bg .nd-container { position: relative; z-index: 2; }

/* Brand pattern on FAQ band (light tone) */
.nd-section--blue { position: relative; overflow: hidden; }
.nd-section--blue::before {
	content: '';
	position: absolute; inset: 0;
	background-image: url('../images/patterns/pattern-white-20.svg');
	background-repeat: repeat;
	background-size: 700px auto;       /* show the pattern at a readable scale */
	opacity: 1;                        /* SVG has 20% opacity baked in, no need to double-up */
	pointer-events: none;
}
.nd-section--blue > .nd-container { position: relative; z-index: 1; }

/* Opt-out: sections where the tooth pattern hurts text readability */
.nd-section--blue.nd-no-pattern::before { display: none; }

/* Text-only community cards (no photo) — used on Our Story */

/* Hover micro-interactions */
.nd-card,
.nd-location-card,
.nd-step,
.nd-pillar,
.nd-menu__item,
.nd-faq__item,
.nd-timeline__item {
	transition: transform var(--nd-medium) var(--nd-ease), box-shadow var(--nd-medium) var(--nd-ease);
}
.nd-card:hover,
.nd-location-card:hover,
.nd-step:hover,
.nd-pillar:hover,
.nd-faq__item:hover,
.nd-timeline__item:hover {
	transform: translateY(-2px);
	box-shadow: var(--nd-shadow-card-hover);
}
.on-dark .nd-card:hover,
.on-dark .nd-step:hover,
.on-dark .nd-pillar:hover,
.on-dark .nd-timeline__item:hover {
	box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
@media (prefers-reduced-motion: reduce) {
	.nd-card:hover, .nd-location-card:hover, .nd-step:hover,
	.nd-pillar:hover, .nd-faq__item:hover, .nd-timeline__item:hover {
		transform: none;
	}
}

/* Button hover: lift + slightly darker tone */
.nd-btn { transition: transform var(--nd-fast) var(--nd-ease), background-color var(--nd-fast) var(--nd-ease), box-shadow var(--nd-fast) var(--nd-ease); }
.nd-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(2,29,59,.18); }
.nd-btn:focus-visible { outline: 3px solid var(--nd-prussian); outline-offset: 3px; }

/* Improved focus rings on links (accessibility) */
a:focus-visible {
	outline: 3px solid var(--nd-french-blue);
	outline-offset: 3px;
	border-radius: 2px;
}
.on-dark a:focus-visible, .nd-nav__list a:focus-visible {
	outline-color: var(--nd-lime);
}

/* Closing CTA — subtle pattern texture for visual interest when no image */
.nd-closing {
	background-image: url('../images/patterns/pattern-pacific-20.svg');
	background-repeat: repeat;
	background-size: 480px auto;
	background-position: center;
}
.nd-closing::before {
	content: '';
	position: absolute; inset: 0;
	background: color-mix(in srgb, var(--nd-white-smoke) 92%, transparent);
	pointer-events: none;
}
.nd-closing { position: relative; }
.nd-closing > .nd-container { position: relative; z-index: 1; }

/* Improve mobile nav — make it slide in with a backdrop */
@media (max-width: 960px) {
	.nd-nav[aria-expanded="true"] .nd-nav__list { box-shadow: 0 8px 24px rgba(0,0,0,.3); }
}

/* Increase tap target sizes on mobile (a11y) */
@media (max-width: 640px) {
	.nd-btn { min-height: 52px; padding: var(--nd-space-4) var(--nd-space-6); }
	.nd-faq__trigger { min-height: 52px; }
	.nd-nav__list a { padding: var(--nd-space-3) 0; min-height: 44px; }
}

/* Mobile-only: stack hero text smaller */
@media (max-width: 640px) {
	.nd-hero { padding: clamp(2rem, 8vw, 4rem) 0; }
	.nd-hero__lines { font-size: var(--nd-h2); }
}

/* Service category — stack list to single column on mobile */
@media (max-width: 640px) {
	.nd-service-cat__list { grid-template-columns: 1fr; }
}

/* Team bio — reset direction on mobile so photo stays on top */
@media (max-width: 840px) {
	.nd-team-bio--reverse { direction: ltr; }
}

/* ============================================================================
 * v0.4 — Navigation + Hero refinement
 * ========================================================================== */

/* Wider container for the header so the nav has room to breathe */
.nd-container--wide {
	max-width: 1480px;
}

/* Header — more vertical breathing room + wider gap */
.nd-site-header {
	padding: var(--nd-space-6) 0;
}
.nd-site-header__inner {
	gap: var(--nd-space-10);
}

/* Logo bigger and the SVG colors come through */
.nd-logo {
	gap: 0;
}
.nd-logo__svg,
.nd-logo svg {
	height: 56px;
	width: auto;
	display: block;
}
.nd-logo img { max-height: 56px; }

/* Nav items: bigger, wider letter-spacing, more gap */
.nd-nav { gap: var(--nd-space-8); }
.nd-nav__list {
	gap: var(--nd-space-8);
	align-items: center;
}
.nd-nav__list a {
	font-size: var(--nd-body);
	font-weight: 400;
	letter-spacing: 0.01em;
	padding: var(--nd-space-3) 0;
	transition: color var(--nd-fast) var(--nd-ease);
}
.nd-nav__list .nd-nav__list a { /* no-op safety */ }

/* ============================================================================
 * Hero — centered, taller, with the signature chevron + pattern band
 * ========================================================================== */
.nd-hero {
	padding: clamp(5rem, 10vw, 8rem) 0 0;
	min-height: clamp(560px, 70vh, 760px);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	position: relative;
}
.nd-hero .nd-container {
	position: relative;
	z-index: 3;
	max-width: 1100px;
	padding-left: var(--nd-gutter);
	padding-right: var(--nd-gutter);
}
.nd-hero__lines {
	font-size: var(--nd-display-lg);
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0 auto var(--nd-space-6);
}
.nd-hero__lines > div + div { margin-top: 0.05em; }
.nd-hero__subhead {
	font-size: var(--nd-body-lg);
	font-weight: 700;
	color: var(--nd-text-inverse);
	margin: 0 auto var(--nd-space-6);
	max-width: 56ch;
	letter-spacing: 0.005em;
}

/* Override the older chevron — recast as a full-width signature band */
.nd-chevron-bg {
	background-image: url('../images/patterns/pattern-white-20.svg');
	background-repeat: repeat;
	background-size: 360px auto;
	background-position: center top;
}
.nd-chevron-bg::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(2,29,59,.78) 0%, rgba(2,29,59,.88) 65%, rgba(2,29,59,.96) 100%);
	pointer-events: none;
	z-index: 0;
}
/* Signature chevron band — takes the bottom 40-45% of the hero, full width */
.nd-chevron-bg::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: clamp(180px, 32%, 320px);
	width: 100%;
	background:
		linear-gradient(115deg,
			var(--nd-french-blue) 0%, var(--nd-french-blue) 38%,
			var(--nd-lime) 38%, var(--nd-lime) 64%,
			var(--nd-pacific-blue) 64%, var(--nd-pacific-blue) 100%);
	clip-path: polygon(0 100%, 65% 0, 100% 35%, 100% 100%);
	opacity: 0.92;
	pointer-events: none;
	z-index: 1;
}

/* The hero content sits ABOVE the chevron */
.nd-hero .nd-container { padding-bottom: clamp(180px, 32%, 320px); }

/* Mobile nav adjustments to match the new spacing */
@media (max-width: 1080px) {
	.nd-nav__list { gap: var(--nd-space-6); }
	.nd-nav__list a { font-size: var(--nd-small); }
}
@media (max-width: 960px) {
	.nd-site-header { padding: var(--nd-space-4) 0; }
	.nd-logo__svg, .nd-logo svg { height: 42px; }
}
@media (max-width: 640px) {
	.nd-hero {
		padding-top: clamp(3rem, 8vw, 5rem);
		min-height: 520px;
	}
	.nd-hero__lines { font-size: var(--nd-h1); }
	.nd-hero__subhead { font-size: var(--nd-body); }
}

/* ============================================================================
 * v0.6 - Hero background as a simple PNG pinned to the bottom of the section
 * (Replaces the v0.4 clip-path and v0.5 SVG attempts)
 * ========================================================================== */

.nd-chevron-bg {
	background-color: var(--nd-prussian);
	background-image: url('../images/hero-section.svg'); /* vector — sharp at any size */
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-position: center bottom;
}
/* Kill the older overlay + clipped chevron pseudo-elements */
.nd-chevron-bg::before,
.nd-chevron-bg::after {
	content: none !important;
	display: none !important;
}

/* Hero text positioning + centering */
.nd-hero {
	min-height: clamp(560px, 70vh, 780px);
	padding: clamp(5rem, 9vw, 8rem) 0 clamp(7rem, 14vw, 11rem);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	position: relative;
}
.nd-hero .nd-container {
	max-width: 1100px;
	padding-bottom: 0;
	position: relative;
	z-index: 2;
}
.nd-hero__lines {
	font-size: var(--nd-display-lg);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--nd-text-inverse);
	font-weight: 700;
	margin: 0 auto var(--nd-space-6);
}
.nd-hero__lines > div + div { margin-top: 0.04em; }
.nd-hero__subhead {
	font-size: var(--nd-body-lg);
	font-weight: 700;
	color: var(--nd-text-inverse);
	margin: 0 auto;
	max-width: 56ch;
}

@media (max-width: 640px) {
	.nd-hero {
		padding-top: clamp(3rem, 8vw, 5rem);
		padding-bottom: clamp(4rem, 14vw, 6rem);
		min-height: 500px;
	}
	.nd-hero__lines { font-size: var(--nd-h1); }
	.nd-hero__subhead { font-size: var(--nd-body); }
}

	
/* Dean Updates */
.nd-logo {
	height: 40px;
}
.nd-logo__svg,
.nd-logo svg,
.nd-logo img { max-height: 40px; height: 40px; width: auto; }
.nd-container {
	max-width: 1440px;
}

/* ============================================================================
 * v0.7 - Featured review #1 (testimonial + Google badge)
 * ========================================================================== */

/* Body column: order = quote, body, stars, author (matches Figma) */
.nd-review-with-badge__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--nd-space-4); }
.nd-review-with-badge__body .nd-testimonial__quote { margin: 0; }
.nd-review-with-badge__body .nd-testimonial__body { margin: 0; color: var(--nd-text-muted); }
.nd-review-with-badge__body .nd-stars { margin-top: var(--nd-space-2); }
.nd-review-with-badge__body .nd-testimonial__author { margin: 0; }

/* Quote — display-sm (bigger than h2 to compensate for Filosofia's small x-height vs Poppins) */
.nd-review-with-badge .nd-testimonial__quote {
	font-size: var(--nd-display-sm);
	line-height: var(--nd-leading-tight);
	letter-spacing: -0.01em;
}
/* Body (second line) — h3 */
.nd-review-with-badge .nd-testimonial__body {
	font-size: var(--nd-h3);
	line-height: var(--nd-leading-snug);
}
/* Stars — h3 */
.nd-review-with-badge .nd-stars { font-size: var(--nd-h3); }
/* Attribution — h4 (keep uppercase + tracking) */
.nd-review-with-badge .nd-testimonial__author {
	font-size: var(--nd-h4);
	letter-spacing: var(--nd-tracking-wider);
}

/* Google badge: link wrapper - no underline, flex column */
.nd-google-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--nd-space-3);
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-8) var(--nd-space-10);
	text-align: center;
	text-decoration: none;
	box-shadow: var(--nd-shadow-card);
}
.nd-google-badge:hover { color: var(--nd-text-inverse); }

/* Rating + stars on the same row */
.nd-google-badge__rating-row {
	display: flex;
	align-items: center;
	gap: var(--nd-space-3);
}
.nd-google-badge__g { display: block; flex-shrink: 0; }
.nd-google-badge__count {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	color: rgba(255,255,255,.78);
	margin-top: calc(var(--nd-space-1) * -1);
}
.nd-google-badge__arrow {
	display: inline-block;
	margin-left: 4px;
	font-size: 0.9em;
	transition: transform var(--nd-fast) var(--nd-ease);
}
.nd-google-badge:hover .nd-google-badge__arrow { transform: translate(2px, -2px); }
.nd-google-badge__rating {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-display-sm);
	font-weight: 700;
	line-height: 1;
	color: var(--nd-text-inverse);
	text-decoration: none;
}
.nd-google-badge__stars {
	position: relative;
	display: inline-block;
	font-size: 2.25rem;          /* 36px — significantly bigger */
	line-height: 1;
	letter-spacing: 0.06em;
	white-space: nowrap;
}
.nd-google-badge__stars-bg { color: rgba(255,255,255,.25); }
.nd-google-badge__stars-fg {
	position: absolute;
	top: 0; left: 0;
	overflow: hidden;
	white-space: nowrap;
	color: #FBBC04;              /* Google gold */
	letter-spacing: inherit;
}

/* Label: sentence case, no eyebrow/uppercase */
.nd-google-badge__label {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-body);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--nd-text-inverse);
}

/* Tip cards (page-kids) */
.nd-tip-card__title { font-family: var(--nd-font-sans); font-size: var(--nd-h4); font-weight: 700; margin-bottom: var(--nd-space-2); }
.nd-tip-card__body  { font-size: var(--nd-small); color: var(--nd-text-muted); }

/* ============================================================================
 * v0.8 - Color audit helpers (replaces inline color:#fff and ad-hoc tints)
 * ========================================================================== */
.on-dark { color: var(--nd-text-inverse); }
.on-dark-link { color: var(--nd-text-inverse); text-decoration: underline; text-underline-offset: 4px; }
.on-dark-link:hover { color: var(--nd-lime); }

.nd-icon-bubble {
	width: 56px; height: 56px;
	background: rgba(255,255,255,.08);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: var(--nd-space-4);
}
.nd-icon-bubble--pacific {
	width: 48px; height: 48px;
	background: color-mix(in srgb, var(--nd-pacific-blue) 10%, transparent);
	margin-bottom: 0;
	flex-shrink: 0;
}

.nd-story-tagline {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h4);
	margin-top: var(--nd-space-6);
	color: var(--nd-text-inverse);
}

/* ============================================================================
 * v0.9 - Photo band (container-width photo between sections)
 * ========================================================================== */
.nd-section--photo { padding-top: 0; padding-bottom: 0; }
.nd-photo-band {
	margin: 0;
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
}
.nd-photo-band img {
	width: 100%;
	height: auto;
	max-height: 70vh;
	object-fit: cover;
	display: block;
}

/* ============================================================================
 * v1.0 - Hero eyebrow (SEO context line)
 * ========================================================================== */
.nd-hero__eyebrow {
	color: var(--nd-lime);
	margin-bottom: var(--nd-space-4);
	text-align: center;
}

/* ============================================================================
 * v1.0 - Comfort Menu feature band
 * ========================================================================== */
.nd-comfort-band {
	position: relative;
	color: var(--nd-text-inverse);
	padding-top: var(--nd-section-y);
	padding-bottom: var(--nd-section-y);
}
/* When combined with .nd-chevron-bg the section inherits the hero's
   Prussian background + hero-section.png treatment — same visual language
   as the hero. */
.nd-comfort-band > .nd-container { position: relative; z-index: 2; }

.nd-comfort-band__head {
	max-width: 60ch;
	margin: 0 auto var(--nd-space-12);
	text-align: center;
}
.nd-comfort-band__heading {
	font-size: var(--nd-h2);
	color: var(--nd-text-inverse);
	margin-bottom: var(--nd-space-4);
}
.nd-comfort-band__body {
	color: var(--nd-text-inverse-muted);
	font-size: var(--nd-body-lg);
}
.nd-comfort-band__body p { color: var(--nd-text-inverse-muted); margin: 0 0 var(--nd-space-3); }
.nd-comfort-band__body p:last-child { margin-bottom: 0; }

/* Grid: 3 columns desktop, 2 tablet, 1 mobile */
.nd-comfort-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	column-gap: var(--nd-space-6);
	row-gap: var(--nd-space-12);     /* extra row gap so card-2 icons don't crowd card-1 */
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 960px) {
	.nd-comfort-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.nd-comfort-menu { grid-template-columns: 1fr; }
}

/* Card */
.nd-comfort-card {
	background: var(--nd-white);
	color: var(--nd-text);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-8) var(--nd-space-6) var(--nd-space-6);
	position: relative;
	box-shadow: var(--nd-shadow-card);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-2);
	transition: transform var(--nd-medium) var(--nd-ease), box-shadow var(--nd-medium) var(--nd-ease);
}
.nd-comfort-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--nd-shadow-card-hover);
}
.nd-comfort-card__num {
	font-family: var(--nd-font-display);
	font-size: var(--nd-display-sm);
	line-height: 1;
	color: var(--nd-pacific-blue);
	margin-bottom: var(--nd-space-2);
}
/* Subtle lime hairline above the card body — brand accent */
.nd-comfort-card::before {
	content: '';
	position: absolute;
	top: 0; left: var(--nd-space-6); right: var(--nd-space-6);
	height: 4px;
	background: var(--nd-lime);
	border-radius: 0 0 2px 2px;
}
.nd-comfort-card__label {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h3);
	line-height: var(--nd-leading-tight);
	color: var(--nd-text);
	margin: 0;
}
.nd-comfort-card__desc {
	font-size: var(--nd-body);
	color: var(--nd-text-muted);
	line-height: var(--nd-leading-base);
	margin: 0;
}

@media (prefers-reduced-motion: reduce) {
	.nd-comfort-card:hover { transform: none; }
}

/* Comfort cards sit on white but inside .on-dark — re-assert text colors */
.nd-comfort-band.on-dark .nd-comfort-card,
.nd-comfort-band.on-dark .nd-comfort-card h3,
.nd-comfort-band.on-dark .nd-comfort-card .nd-comfort-card__label { color: var(--nd-text); }
.nd-comfort-band.on-dark .nd-comfort-card p,
.nd-comfort-band.on-dark .nd-comfort-card .nd-comfort-card__desc { color: var(--nd-text-muted); }

/* ============================================================================
 * v1.1 - Pacific Blue section variant + Review #2 typography refinements
 * ========================================================================== */
.nd-section--pacific {
	background-color: var(--nd-pacific-blue);
	color: var(--nd-text-inverse);
}

/* Apply the same typographic treatment as Review #1 (.nd-review-with-badge)
   to the standard testimonial section — bigger serif quote, h3 stars,
   h4 attribution. */
.nd-testimonial .nd-testimonial__body-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--nd-space-4);
}
.nd-testimonial__body-col .nd-testimonial__quote,
.nd-testimonial__body-col .nd-testimonial__body,
.nd-testimonial__body-col .nd-stars,
.nd-testimonial__body-col .nd-testimonial__author { margin: 0; }

.nd-testimonial .nd-testimonial__quote {
	font-family: var(--nd-font-display);
	font-size: var(--nd-display-sm);
	line-height: var(--nd-leading-tight);
	letter-spacing: -0.01em;
}
.nd-testimonial .nd-testimonial__body { font-size: var(--nd-h3); line-height: var(--nd-leading-snug); }
.nd-testimonial .nd-stars { font-size: var(--nd-h3); }
.nd-testimonial .nd-testimonial__author {
	font-size: var(--nd-h4);
	letter-spacing: var(--nd-tracking-wider);
}

/* Centered (no-image) variant: keep stars centered + use proper gap */
.nd-testimonial--centered { display: flex; flex-direction: column; align-items: center; gap: var(--nd-space-4); }
.nd-testimonial--centered .nd-testimonial__quote,
.nd-testimonial--centered .nd-testimonial__body,
.nd-testimonial--centered .nd-stars,
.nd-testimonial--centered .nd-testimonial__author { margin: 0; }

/* ============================================================================
 * v1.2 - Closing CTA text helpers
 * ========================================================================== */
.nd-lead-strong {
	font-size: var(--nd-body-lg);
	font-weight: 700;
	color: var(--nd-text);
	margin-bottom: var(--nd-space-3);
}
.nd-body-muted {
	color: var(--nd-text-muted);
	margin: 0;
}

/* FAQ items live on white cards even inside .on-dark sections — re-assert dark text */
.on-dark .nd-faq__item,
.on-dark .nd-faq__trigger,
.on-dark .nd-faq__trigger h3,
.on-dark .nd-faq__panel,
.on-dark .nd-faq__panel p,
.on-dark .nd-faq__panel li { color: var(--nd-text); }
.on-dark .nd-faq__panel,
.on-dark .nd-faq__panel p { color: var(--nd-text-muted); }
.on-dark .nd-faq__trigger { color: var(--nd-text); }

/* ============================================================================
 * v1.3 - Inner-page hero variant (left-aligned, text in left column)
 * ========================================================================== */
.nd-hero--inner {
	text-align: left;
	align-items: flex-start;
	justify-content: center;
	min-height: clamp(420px, 55vh, 580px);
	padding: clamp(4rem, 8vw, 7rem) 0 clamp(6rem, 12vw, 9rem);
}
.nd-hero--inner .nd-container {
	width: 100%;
	max-width: var(--nd-container);
	text-align: left;
}
.nd-hero--inner .nd-hero__content {
	max-width: 56%;          /* leaves the right half for the chevron */
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--nd-space-4);
}
.nd-hero--inner .nd-hero__eyebrow {
	color: var(--nd-pacific-blue);
	margin-bottom: 0;
	text-align: left;
}
.nd-hero--inner .nd-hero__lines {
	margin: 0;
	text-align: left;
	font-size: clamp(2.5rem, 5vw, 4.25rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
}
.nd-hero--inner .nd-hero__lines > div + div { margin-top: 0.03em; }
.nd-hero--inner .nd-hero__subhead {
	margin: 0;
	max-width: 48ch;
	font-size: clamp(1.125rem, 1.5vw, 1.4rem);
	font-weight: 700;
	color: var(--nd-text-inverse);
	text-align: left;
}

@media (max-width: 840px) {
	.nd-hero--inner .nd-hero__content { max-width: 100%; }
	.nd-hero--inner { min-height: 380px; padding: clamp(3rem, 8vw, 5rem) 0 clamp(5rem, 12vw, 7rem); }
}

/* ============================================================================
 * v1.4 - Kids "Our Approach" section: 2-column + dark pillar cards
 * ========================================================================== */
.nd-kids-approach__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-12);
	align-items: center;
	margin-bottom: var(--nd-space-12);
}
@media (max-width: 840px) {
	.nd-kids-approach__row { grid-template-columns: 1fr; gap: var(--nd-space-8); margin-bottom: var(--nd-space-8); }
}
.nd-kids-approach__text > * + * { margin-top: var(--nd-space-3); }
.nd-kids-approach__text h2 { margin: 0; }
.nd-kids-approach__text .nd-eyebrow { margin-bottom: 0; }
.nd-kids-approach__text > p { color: var(--nd-text-muted); margin: var(--nd-space-4) 0 0; line-height: var(--nd-leading-base); }
.nd-kids-approach__kicker { color: var(--nd-text); font-weight: 700; line-height: var(--nd-leading-base); }
.nd-kids-approach__kicker strong { font-weight: 700; }

.nd-kids-approach__media img {
	width: 100%;
	height: auto;
	border-radius: var(--nd-radius-lg);
	display: block;
	aspect-ratio: 16/11;
	object-fit: cover;
}

/* Dark pillar variant — Prussian background, white text, icon on the right */
.nd-pillars--dark { gap: var(--nd-space-5); }
.nd-pillars--dark .nd-pillar {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-6) var(--nd-space-6) var(--nd-space-6) var(--nd-space-6);
	box-shadow: none;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--nd-space-4);
}
.nd-pillars--dark .nd-pillar h3 { color: var(--nd-text-inverse); margin: 0 0 var(--nd-space-2); }
.nd-pillars--dark .nd-pillar__body { color: var(--nd-text-inverse-muted); margin: 0; font-size: var(--nd-small); line-height: var(--nd-leading-base); }
.nd-pillars--dark .nd-pillar__text { flex: 1; }
.nd-pillars--dark .nd-pillar__icon {
	width: 56px; height: 56px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.nd-pillars--dark .nd-pillar__icon svg { width: 56px; height: 56px; display: block; }
@media (prefers-reduced-motion: reduce) {
	.nd-pillars--dark .nd-pillar:hover { transform: none; }
}

/* ============================================================================
 * v1.5 - Kids services card variant (compact head + 4-col list)
 * ========================================================================== */
.nd-service-cat--kids { padding: var(--nd-space-8) var(--nd-space-10); }
.nd-service-cat--kids .nd-service-cat__head {
	display: flex;
	align-items: center;
	gap: var(--nd-space-5);
	margin-bottom: var(--nd-space-6);
}
.nd-service-cat--kids .nd-service-cat__meta { display: flex; flex-direction: column; gap: var(--nd-space-2); }
.nd-service-cat--kids .nd-service-cat__meta h3 { margin: 0; }
.nd-service-cat--kids .nd-service-cat__meta p { margin: 0; color: var(--nd-text-inverse-muted); font-size: var(--nd-small); line-height: var(--nd-leading-base); }

/* 4-column list variant — used inside the kids services card */
.nd-service-cat__list--4col { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--nd-space-3) var(--nd-space-6); margin-top: 0; }
@media (max-width: 960px) {
	.nd-service-cat__list--4col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.nd-service-cat__list--4col { grid-template-columns: 1fr; }
	.nd-service-cat--kids .nd-service-cat__head { flex-direction: column; align-items: flex-start; gap: var(--nd-space-3); }
}

/* ============================================================================
 * v1.6 - Kids reviews block: 1 featured (left) + 2 small (right)
 * ========================================================================== */
.nd-kids-reviews {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-6);
	align-items: stretch;
}
@media (max-width: 840px) {
	.nd-kids-reviews { grid-template-columns: 1fr; }
}

.nd-kids-reviews__col {
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-6);
}

.nd-kids-review {
	background: var(--nd-white);
	color: var(--nd-text);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-4);
	box-shadow: var(--nd-shadow-card);
	justify-content: center;
}
.nd-kids-review .nd-stars { font-size: var(--nd-h4); }
.nd-kids-review__quote {
	font-family: var(--nd-font-display);
	font-size: clamp(1.25rem, 1.6vw, 1.5rem);
	line-height: var(--nd-leading-snug);
	color: var(--nd-text);
	margin: 0;
}
.nd-kids-review__body {
	color: var(--nd-text-muted);
	margin: 0;
	line-height: var(--nd-leading-base);
}
.nd-kids-review__author {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--nd-text-muted);
	margin: 0;
}

/* Featured — dark navy card with big serif quote */
.nd-kids-review--featured {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
	padding: var(--nd-space-10);
	justify-content: flex-start;
}
.nd-kids-review--featured .nd-kids-review__quote {
	color: var(--nd-text-inverse);
	font-size: clamp(1.875rem, 2.6vw, 2.5rem);
	line-height: var(--nd-leading-tight);
	letter-spacing: -0.01em;
}
.nd-kids-review--featured .nd-kids-review__body { color: var(--nd-text-inverse-muted); }
.nd-kids-review--featured .nd-kids-review__author { color: var(--nd-text-inverse); margin-top: auto; }

/* ============================================================================
 * v1.7 - Inverted steps variant — light cards inside .on-dark sections,
 * with the final card flipped to French Blue as an accent.
 * ========================================================================== */
.nd-steps--inverted .nd-step,
.on-dark .nd-steps--inverted .nd-step {
	background: var(--nd-white-smoke);
	color: var(--nd-text);
	box-shadow: none;
	padding: var(--nd-space-6) var(--nd-space-6) var(--nd-space-6) var(--nd-space-6);
}
.nd-steps--inverted .nd-step__num,
.on-dark .nd-steps--inverted .nd-step__num {
	font-family: var(--nd-font-sans);     /* sans, not serif */
	font-weight: 400;
	font-size: var(--nd-display-sm);
	line-height: 1;
	color: var(--nd-text);
	margin-bottom: var(--nd-space-4);
}
.nd-steps--inverted .nd-step__title,
.on-dark .nd-steps--inverted .nd-step__title { color: var(--nd-text); }
.nd-steps--inverted .nd-step__body,
.on-dark .nd-steps--inverted .nd-step__body { color: var(--nd-text-muted); }

/* Accent card — French Blue with white text (the final step) */
.nd-steps--inverted .nd-step--accent,
.on-dark .nd-steps--inverted .nd-step--accent {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
}
.nd-steps--inverted .nd-step--accent .nd-step__num,
.nd-steps--inverted .nd-step--accent .nd-step__title { color: var(--nd-text-inverse); }
.nd-steps--inverted .nd-step--accent .nd-step__body { color: var(--nd-text-inverse-muted); }

/* ============================================================================
 * v1.8 - Homepage hero — left text + photo on the right
 *  - Keeps the existing .nd-chevron-bg PNG background untouched
 *  - Override centered defaults; apply only when .nd-hero--home is present
 * ========================================================================== */
.nd-hero--home {
	text-align: left;
	align-items: stretch;
	justify-content: flex-start;
	padding-top: clamp(4rem, 7vw, 6rem);
	padding-bottom: clamp(5rem, 10vw, 8rem);
}
.nd-hero--home .nd-container {
	width: 100%;
	max-width: 1440px; /* match the body sections (the 1280px token left the hero indented ~80px) */
	text-align: left;
	padding-bottom: 0;
}

.nd-hero--home .nd-hero__row {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.nd-hero--home .nd-hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--nd-space-4);
	text-align: left;
}

.nd-hero--home .nd-hero__eyebrow {
	margin: 0;
	text-align: left;
	color: var(--nd-lime);
}

.nd-hero--home .nd-hero__lines {
	margin: 0;
	text-align: left;
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.nd-hero--home .nd-hero__subhead {
	margin: 0;
	max-width: 38ch;
	font-size: clamp(1.125rem, 1.5vw, 1.4rem);
	font-weight: 700;
	color: var(--nd-text-inverse);
	text-align: left;
}

.nd-hero--home .nd-hero__media {
	position: relative;
	aspect-ratio: 4/5;
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.nd-hero--home .nd-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (max-width: 900px) {
	.nd-hero--home .nd-hero__row { grid-template-columns: 1fr; gap: var(--nd-space-8); }
	.nd-hero--home .nd-hero__media { aspect-ratio: 16/10; max-width: 100%; }
}

/* ============================================================================
 * v1.9 - Single location page layout
 * ========================================================================== */

/* Hero — large logo or title, centered on chevron-bg */
.nd-hero--location {
	text-align: center;
	align-items: center;
	min-height: clamp(420px, 55vh, 620px);
	padding: clamp(4rem, 8vw, 7rem) 0 clamp(6rem, 12vw, 9rem);
}
.nd-hero--location .nd-container { text-align: center; max-width: var(--nd-container); padding-bottom: 0; }
.nd-location-hero { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--nd-space-3); position: relative; z-index: 2; }
.nd-location-hero__logo { max-width: 360px; width: 80%; height: auto; display: block; margin: 0 auto; }
.nd-location-hero__title { font-size: clamp(2.5rem, 4.5vw, 3.75rem); margin: 0; }
.nd-location-hero__nickname {
	font-family: var(--nd-font-display);
	font-style: italic;
	font-size: clamp(1.5rem, 2.5vw, 2.5rem);
	color: var(--nd-lime);
	margin: 0;
}

/* Info bar under the hero */
.nd-location-bar {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-md);
	padding: var(--nd-space-5) var(--nd-space-8);
	display: flex;
	align-items: center;
	gap: var(--nd-space-6);
	flex-wrap: wrap;
}
.nd-location-bar__address { font-weight: 700; line-height: var(--nd-leading-snug); flex: 1 1 240px; }
.nd-location-bar__contact { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; }
.nd-location-bar__contact a { color: var(--nd-text-inverse); text-decoration: underline; text-underline-offset: 3px; }
.nd-location-bar__contact a:hover { color: var(--nd-lime); }
.nd-location-bar__cta { flex-shrink: 0; }

/* First-visit callout — French Blue card with eyebrow + heading + CTA */
.nd-first-visit-card {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-12) var(--nd-space-10);
	text-align: center;
}
.nd-first-visit-card .nd-eyebrow { color: var(--nd-text-inverse); margin-bottom: var(--nd-space-3); }
.nd-first-visit-card h2 { margin: 0 0 var(--nd-space-3); }
.nd-first-visit-card p { color: var(--nd-text-inverse-muted); margin: 0 auto var(--nd-space-6); max-width: 60ch; }

/* "Have questions" — centered text + email/phone row */
.nd-location-contact-row {
	margin-top: var(--nd-space-5);
	display: flex;
	gap: var(--nd-space-6);
	justify-content: center;
	flex-wrap: wrap;
	font-size: var(--nd-body);
}
.nd-location-contact-row a { color: var(--nd-text); text-decoration: underline; text-underline-offset: 3px; }
.nd-location-contact-row a:hover { color: var(--nd-french-blue); }

/* Ready-when-you-are — French Blue band */
.nd-ready-card {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-10) var(--nd-space-12);
	text-align: center;
}
.nd-ready-card h2 { color: var(--nd-text-inverse); margin: 0 0 var(--nd-space-3); }
.nd-ready-card p { color: var(--nd-text-inverse-muted); margin: 0 0 var(--nd-space-6); font-weight: 700; }

/* Map + location details band (dark) */
.nd-location-footer {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: var(--nd-space-10);
	align-items: stretch;
}
@media (max-width: 840px) {
	.nd-location-footer { grid-template-columns: 1fr; gap: var(--nd-space-6); }
}
.nd-location-footer__map { border-radius: var(--nd-radius-lg); overflow: hidden; background: var(--nd-white-smoke); min-height: 280px; aspect-ratio: 16/10; }
.nd-location-footer__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.nd-location-footer__map-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--nd-text-muted); font-family: var(--nd-font-sans); font-style: italic; }
.nd-location-footer__details { color: var(--nd-text-inverse); display: flex; flex-direction: column; gap: var(--nd-space-3); }
.nd-location-footer__logo { max-width: 280px; height: auto; display: block; }
.nd-location-footer__address { font-weight: 700; line-height: var(--nd-leading-snug); margin: 0; color: var(--nd-text-inverse); }
.nd-location-footer__hours { margin: 0; color: var(--nd-text-inverse); }
.nd-location-footer__contact { display: flex; flex-direction: column; gap: 2px; }

/* ============================================================================
 * v2.0 - 404 page
 * ========================================================================== */
.nd-hero--404 {
	text-align: center;
	min-height: clamp(360px, 50vh, 520px);
	padding: clamp(4rem, 8vw, 6rem) 0 clamp(5rem, 10vw, 7rem);
}
.nd-hero--404 .nd-container { text-align: center; padding-bottom: 0; }
.nd-404__title { font-size: clamp(2.5rem, 4.5vw, 3.75rem); margin: var(--nd-space-3) 0 var(--nd-space-5); }
.nd-404__lead {
	color: var(--nd-text-inverse-muted);
	max-width: 56ch;
	margin: 0 auto var(--nd-space-8);
	font-size: var(--nd-body-lg);
}
.nd-404__cta {
	display: flex;
	justify-content: center;
	gap: var(--nd-space-3);
	flex-wrap: wrap;
}

.nd-404__links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--nd-space-5);
}
.nd-404__link {
	background: var(--nd-white);
	color: var(--nd-text);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-6);
	text-decoration: none;
	box-shadow: var(--nd-shadow-card);
	transition: transform var(--nd-medium) var(--nd-ease), box-shadow var(--nd-medium) var(--nd-ease);
	display: block;
}
.nd-404__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--nd-shadow-card-hover);
	color: var(--nd-text);
}
.nd-404__link h3 {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h3);
	color: var(--nd-text);
	margin: 0 0 var(--nd-space-2);
}
.nd-404__link p {
	font-size: var(--nd-small);
	color: var(--nd-text-muted);
	margin: 0;
}
@media (prefers-reduced-motion: reduce) {
	.nd-404__link:hover { transform: none; }
}

/* ============================================================================
 * v2.1 - Homepage hero — eyebrow rule, single h1, CTAs, proof points,
 * media badges. Companion to .nd-hero--home in v1.8.
 * ========================================================================== */

/* Eyebrow with leading lime rule */
.nd-hero--home .nd-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--nd-space-3);
	margin: 0;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-eyebrow);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	color: var(--nd-lime);
}
.nd-hero--home .nd-hero__eyebrow-rule {
	display: inline-block;
	width: 28px;
	height: 2px;
	background: var(--nd-lime);
	border-radius: 1px;
}

/* H1 — one line, serif, generous size */
.nd-hero--home .nd-hero__title {
	margin: 0;
	font-family: var(--nd-font-display);
	font-size: clamp(2.5rem, 4.5vw, 3.75rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--nd-text-inverse);
	font-weight: 700;
}

/* Subhead — readable paragraph, not bold caps */
.nd-hero--home .nd-hero__subhead {
	margin: 0;
	max-width: 52ch;
	font-family: var(--nd-font-sans);
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	font-weight: 400;
	line-height: var(--nd-leading-base);
	color: var(--nd-text-inverse);
	letter-spacing: 0;
	text-align: left;
}

/* CTA pair — force side-by-side; shrink padding to fit the column */
.nd-hero--home .nd-hero__ctas {
	display: flex;
	gap: var(--nd-space-3);
	flex-wrap: nowrap;
	align-items: center;
}
.nd-hero--home .nd-hero__ctas .nd-btn {
	min-width: 0;
	padding: var(--nd-space-3) var(--nd-space-5);
	font-size: var(--nd-xs);
	letter-spacing: 0.1em;
	white-space: nowrap;
	flex: 0 1 auto;
}
@media (max-width: 520px) {
	.nd-hero--home .nd-hero__ctas { flex-wrap: wrap; }
	.nd-hero--home .nd-hero__ctas .nd-btn { flex: 1 1 100%; }
}

/* Proof point row — checkmarked items in lime + white text */
.nd-hero--home .nd-hero__proof {
	list-style: none;
	margin: var(--nd-space-2) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--nd-space-3) var(--nd-space-6);
	color: var(--nd-text-inverse);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	font-weight: 700;
}
.nd-hero--home .nd-hero__proof li {
	display: inline-flex;
	align-items: center;
	gap: var(--nd-space-2);
}
.nd-hero--home .nd-hero__proof-check {
	color: var(--nd-lime);
	font-weight: 700;
}

/* Media column — needs to host floating shapes + badges */
.nd-hero--home .nd-hero__media {
	position: relative;
	border-radius: 0;
	overflow: visible;
	box-shadow: none;
	aspect-ratio: auto;
}
.nd-hero--home .nd-hero__media img {
	position: relative;
	z-index: 2;
	width: 100%;
	height: auto;
	aspect-ratio: 4/5;
	object-fit: cover;
	border-radius: var(--nd-radius-lg);
	box-shadow: 0 12px 40px rgba(0,0,0,.35);
}

/* Decorative shapes behind the photo */
.nd-hero__media-shape {
	position: absolute;
	z-index: 1;
	border-radius: var(--nd-radius-lg);
	pointer-events: none;
}
.nd-hero__media-shape--blue {
	top: -18px; right: -22px;
	width: 60%;
	aspect-ratio: 4/5;
	background: var(--nd-french-blue);
	transform: rotate(4deg);
}
.nd-hero__media-shape--lime {
	bottom: -14px; left: -16px;
	width: 30%;
	aspect-ratio: 1/1;
	background: var(--nd-lime);
	transform: rotate(-6deg);
	opacity: 0.85;
}

/* Floating "now playing" + "warm towel" pills */
.nd-hero__badge {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: var(--nd-space-2);
	background: var(--nd-white);
	color: var(--nd-text);
	padding: var(--nd-space-2) var(--nd-space-4);
	border-radius: 999px;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	font-weight: 700;
	box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.nd-hero__badge--top { top: 8%; left: -16px; }
.nd-hero__badge--bottom { bottom: 8%; right: -16px; }
.nd-hero__badge-icon {
	width: 22px; height: 22px;
	border-radius: 50%;
	background: var(--nd-french-blue);
	color: var(--nd-white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
}
.nd-hero__badge-icon--lime {
	background: var(--nd-lime);
	color: var(--nd-prussian);
}

@media (max-width: 900px) {
	.nd-hero--home .nd-hero__media img { aspect-ratio: 16/10; }
	.nd-hero__media-shape--blue { width: 40%; top: -10px; right: -10px; }
	.nd-hero__media-shape--lime { width: 20%; bottom: -8px; left: -8px; }
	.nd-hero__badge { font-size: var(--nd-xs); padding: var(--nd-space-2) var(--nd-space-3); }
	.nd-hero__badge--top { left: 8px; top: -10px; }
	.nd-hero__badge--bottom { right: 8px; bottom: -10px; }
}

/* ============================================================================
 * v2.2 - Placeholders, services matrix, location patches
 * ========================================================================== */

/* Photo placeholder card — visible reminder of where real photography goes */
.nd-photo-placeholder {
	background: var(--nd-prussian-90);
	color: var(--nd-text-inverse-muted);
	border: 2px dashed rgba(255,255,255,.25);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-6);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 220px;
	gap: var(--nd-space-2);
	font-family: var(--nd-font-sans);
}
.nd-photo-placeholder--light {
	background: var(--nd-white);
	color: var(--nd-text-muted);
	border-color: rgba(2,29,59,.15);
}
.nd-photo-placeholder__label {
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
}
.nd-photo-placeholder__desc {
	font-size: var(--nd-small);
	line-height: var(--nd-leading-base);
	max-width: 32ch;
}
.nd-photo-placeholder--portrait { aspect-ratio: 4/5; }
.nd-photo-placeholder--square { aspect-ratio: 1/1; }
.nd-photo-placeholder--banner { aspect-ratio: 16/7; }

/* ============================================================================
 * Services matrix
 * ========================================================================== */
.nd-services-matrix {
	margin-top: var(--nd-space-8);
}

.nd-services-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nd-space-2);
	margin-bottom: var(--nd-space-8);
	border-bottom: 1px solid var(--nd-border);
	padding-bottom: var(--nd-space-4);
}
.nd-services-tab {
	background: transparent;
	border: 0;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--nd-text-muted);
	padding: var(--nd-space-3) var(--nd-space-5);
	border-radius: 999px;
	cursor: pointer;
	transition: background var(--nd-fast) var(--nd-ease), color var(--nd-fast) var(--nd-ease);
}
.nd-services-tab:hover { color: var(--nd-text); background: rgba(2,29,59,.05); }
.nd-services-tab[aria-pressed="true"] {
	background: var(--nd-prussian);
	color: var(--nd-text-inverse);
}

.nd-services-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nd-space-5);
}
@media (max-width: 760px) { .nd-services-grid { grid-template-columns: 1fr; } }

.nd-service-card {
	background: var(--nd-white);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-6) var(--nd-space-6);
	box-shadow: var(--nd-shadow-card);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-3);
	transition: transform var(--nd-medium) var(--nd-ease), box-shadow var(--nd-medium) var(--nd-ease);
}
.nd-service-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--nd-shadow-card-hover);
}
.nd-service-card[hidden] { display: none; }

.nd-service-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--nd-space-4);
}
.nd-service-card__name {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h3);
	color: var(--nd-text);
	margin: 0;
	line-height: var(--nd-leading-tight);
}
.nd-service-card__cat {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	color: var(--nd-pacific-blue);
	background: rgba(65,158,176,.1);
	padding: 4px 10px;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
}
.nd-service-card__desc {
	margin: 0;
	color: var(--nd-text);
	line-height: var(--nd-leading-base);
}
.nd-service-card__who {
	font-size: var(--nd-small);
	color: var(--nd-text-muted);
	margin: 0;
}
.nd-service-card__who strong { color: var(--nd-text); }

.nd-service-card__meta {
	margin-top: auto;
	display: flex;
	flex-wrap: wrap;
	gap: var(--nd-space-2) var(--nd-space-4);
	padding-top: var(--nd-space-3);
	border-top: 1px solid var(--nd-border);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	color: var(--nd-text-muted);
}
.nd-service-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.nd-service-card__meta-icon { color: var(--nd-pacific-blue); font-weight: 700; }

/* ============================================================================
 * Location: neighbourhood + team layout
 * ========================================================================== */
.nd-neighbourhood {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-12);
	align-items: center;
}
@media (max-width: 840px) {
	.nd-neighbourhood { grid-template-columns: 1fr; gap: var(--nd-space-8); }
}
.nd-neighbourhood__text > * + * { margin-top: var(--nd-space-4); }
.nd-neighbourhood__text h2 { margin: 0; }
.nd-neighbourhood__text .nd-eyebrow { margin-bottom: 0; }
.nd-neighbourhood__text p { color: var(--nd-text-muted); line-height: var(--nd-leading-base); }
.nd-neighbourhood__text .nd-neighbourhood__nearby {
	margin: var(--nd-space-5) 0 0;
	padding-left: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-2) var(--nd-space-6);
	color: var(--nd-text);
	font-size: var(--nd-small);
}
.nd-neighbourhood__nearby li { padding-left: 18px; position: relative; }
.nd-neighbourhood__nearby li::before { content: '·'; position: absolute; left: 0; color: var(--nd-pacific-blue); font-weight: 700; }

.nd-team-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--nd-space-6);
}
@media (max-width: 960px) { .nd-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .nd-team-grid { grid-template-columns: 1fr; } }

.nd-team-card { display: flex; flex-direction: column; gap: var(--nd-space-3); }
.nd-team-card__photo { aspect-ratio: 4/5; border-radius: var(--nd-radius-lg); overflow: hidden; }
.nd-team-card__name { font-family: var(--nd-font-display); font-size: var(--nd-h4); margin: 0; }
.nd-team-card__role {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--nd-pacific-blue);
	margin: 0;
}

/* Interior photo grid — uneven 2x2 mosaic */
.nd-interior-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	grid-template-rows: repeat(2, 1fr);
	gap: var(--nd-space-3);
	min-height: 460px;
}
.nd-interior-grid > :first-child { grid-row: span 2; }
@media (max-width: 700px) {
	.nd-interior-grid { grid-template-columns: 1fr; grid-template-rows: auto; min-height: 0; }
	.nd-interior-grid > :first-child { grid-row: auto; }
}

/* Schedule callout (used for Inglewood's Wed/Sat story) */
.nd-schedule-callout {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-12) var(--nd-space-10);
}
.nd-schedule-callout__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-8);
	align-items: start;
}
@media (max-width: 840px) {
	.nd-schedule-callout__row { grid-template-columns: 1fr; gap: var(--nd-space-5); }
}
.nd-schedule-callout__days {
	font-family: var(--nd-font-display);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	line-height: 1.1;
	color: var(--nd-text-inverse);
	margin: 0;
}
.nd-schedule-callout__lead {
	color: var(--nd-text-inverse);
	font-size: var(--nd-body-lg);
	font-weight: 700;
	margin: 0 0 var(--nd-space-3);
}
.nd-schedule-callout__body p { color: var(--nd-text-inverse-muted); margin: 0 0 var(--nd-space-3); }

/* Getting here grid */
.nd-getting-here {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nd-space-6);
}
@media (max-width: 760px) { .nd-getting-here { grid-template-columns: 1fr; } }
.nd-getting-here__item {
	background: var(--nd-white);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-6);
	box-shadow: var(--nd-shadow-card);
}
.nd-getting-here__item h3 {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h4);
	margin: 0 0 var(--nd-space-2);
}
.nd-getting-here__item p { margin: 0; color: var(--nd-text-muted); line-height: var(--nd-leading-base); }

/* ============================================================================
 * v2.3 - Location hero v2: 2-column with H1, photo, facts, CTAs
 * ========================================================================== */
.nd-hero--location {
	text-align: left;
	align-items: flex-start;
	justify-content: center;
	min-height: clamp(520px, 70vh, 720px);
	padding: clamp(4rem, 7vw, 6rem) 0 clamp(4rem, 7vw, 6rem);
}
.nd-hero--location .nd-container { max-width: var(--nd-container); text-align: left; padding-bottom: 0; }
.nd-location-hero__row {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
	width: 100%;
}
.nd-location-hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--nd-space-4);
}
.nd-location-hero__mark {
	max-height: 56px;
	width: auto;
	margin-bottom: var(--nd-space-2);
}
.nd-location-hero__h1 {
	margin: 0;
	font-family: var(--nd-font-display);
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--nd-text-inverse);
	font-weight: 700;
}
.nd-location-hero__lead {
	margin: 0;
	max-width: 52ch;
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	font-weight: 400;
	line-height: var(--nd-leading-base);
	color: var(--nd-text-inverse);
}
.nd-location-hero__facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nd-space-4) var(--nd-space-5);
	margin: var(--nd-space-2) 0 0;
	padding: var(--nd-space-4) 0;
	border-top: 1px solid rgba(255,255,255,.15);
	border-bottom: 1px solid rgba(255,255,255,.15);
	width: 100%;
}
.nd-location-hero__facts > div { display: flex; flex-direction: column; gap: 4px; }
.nd-location-hero__facts dt {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--nd-pacific-blue);
}
.nd-location-hero__facts dd {
	margin: 0;
	font-size: var(--nd-small);
	color: var(--nd-text-inverse);
	line-height: var(--nd-leading-snug);
}
.nd-location-hero__facts dd a { color: var(--nd-text-inverse); }
.nd-location-hero__facts dd a:hover { color: var(--nd-lime); }

.nd-location-hero__media {
	position: relative;
}
.nd-location-hero__media .nd-photo-placeholder {
	min-height: 0;
	aspect-ratio: 4/5;
}

@media (max-width: 960px) {
	.nd-location-hero__row { grid-template-columns: 1fr; gap: var(--nd-space-8); }
	.nd-location-hero__facts { grid-template-columns: 1fr 1fr; }
	.nd-location-hero__media .nd-photo-placeholder { aspect-ratio: 16/10; }
}
@media (max-width: 520px) {
	.nd-location-hero__facts { grid-template-columns: 1fr; }
}

/* ============================================================================
 * v2.4 - Visual separation between adjacent dark sections
 * (e.g., Comfort Menu chevron-bg directly followed by FAQ blue band)
 * ========================================================================== */
.nd-section.on-dark + .nd-section.on-dark,
.nd-comfort-band + .nd-section.on-dark,
.nd-section.on-dark + .nd-comfort-band,
.nd-hero + .nd-section.on-dark,
.nd-section--dark + .nd-section--blue,
.nd-section--blue + .nd-section--dark,
.nd-section--blue + .nd-section--blue,
.nd-section--dark + .nd-section--dark {
	/* Adjacent coloured/dark sections now sit flush — the previous space-12
	   margin exposed the light body background as an awkward white sliver
	   (e.g. Comfort Menu -> FAQ). Flush lets the chevron transition into blue. */
	margin-top: 0;
}

/* ============================================================================
 * v2.5 - Owners blurb (single photo + Chin family text)
 * ========================================================================== */
.nd-owners {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nd-space-12);
	align-items: center;
}
@media (max-width: 840px) { .nd-owners { grid-template-columns: 1fr; gap: var(--nd-space-6); } }
.nd-owners__media img {
	width: 100%;
	height: auto;
	border-radius: var(--nd-radius-lg);
	display: block;
	aspect-ratio: 4/3;
	object-fit: cover;
}
.nd-owners__text > * + * { margin-top: var(--nd-space-3); }
.nd-owners__text h2 { margin: 0; }
.nd-owners__text .nd-eyebrow { margin-bottom: 0; }
.nd-owners__text p { color: var(--nd-text-muted); line-height: var(--nd-leading-base); }
.nd-owners__link {
	font-family: var(--nd-font-sans);
	font-weight: 700;
	color: var(--nd-french-blue);
	text-decoration: none;
}
.nd-owners__link:hover { color: var(--nd-prussian); text-decoration: underline; }

/* ============================================================================
 * v2.6 - Interior grid figures (Alberta Ave real photos)
 * ========================================================================== */
.nd-interior-grid__item {
	margin: 0;
	position: relative;
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
	background: var(--nd-prussian);
}
.nd-interior-grid__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.nd-interior-grid__item figcaption {
	position: absolute;
	left: var(--nd-space-4);
	bottom: var(--nd-space-4);
	background: rgba(2,29,59,.85);
	color: var(--nd-text-inverse);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
}

.nd-location-hero__photo {
	width: 100%;
	height: auto;
	border-radius: var(--nd-radius-lg);
	display: block;
	aspect-ratio: 4/5;
	object-fit: cover;
	box-shadow: 0 12px 40px rgba(0,0,0,.35);
}

/* When the pillars grid has 4 items, prefer 4-up on desktop / 2-up on tablet */
.nd-pillars:has(> .nd-pillar:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.nd-pillars:has(> .nd-pillar:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.nd-pillars:has(> .nd-pillar:nth-child(4)) { grid-template-columns: 1fr; }
}

/* ============================================================================
 * v2.7 - Community Powered homepage section
 * ========================================================================== */
.nd-community__head { max-width: 60ch; margin: 0 0 var(--nd-space-10); }
.nd-community__head h2 { margin: var(--nd-space-2) 0 var(--nd-space-4); }
.nd-community__head p { color: var(--nd-text-muted); line-height: var(--nd-leading-base); }

.nd-community__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nd-space-6);
}
@media (max-width: 960px) { .nd-community__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .nd-community__grid { grid-template-columns: 1fr; } }

.nd-community-card {
	background: var(--nd-white);
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
	box-shadow: var(--nd-shadow-card);
	display: flex;
	flex-direction: column;
	transition: transform var(--nd-medium) var(--nd-ease), box-shadow var(--nd-medium) var(--nd-ease);
}
.nd-community-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--nd-shadow-card-hover);
}
.nd-community-card__media { aspect-ratio: 4/3; overflow: hidden; }
.nd-community-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd-community-card__body { padding: var(--nd-space-5) var(--nd-space-6) var(--nd-space-6); display: flex; flex-direction: column; gap: var(--nd-space-2); }
.nd-community-card__body h3 { font-family: var(--nd-font-display); font-size: var(--nd-h4); margin: 0; }
.nd-community-card__body p { margin: 0; color: var(--nd-text-muted); font-size: var(--nd-small); line-height: var(--nd-leading-base); }

.nd-community__footer {
	margin: var(--nd-space-8) 0 0;
	text-align: right;
}
.nd-community__footer a {
	font-family: var(--nd-font-sans);
	font-weight: 700;
	color: var(--nd-french-blue);
	text-decoration: none;
}
.nd-community__footer a:hover { color: var(--nd-prussian); text-decoration: underline; }

/* ============================================================================
 * v2.8 - Kids featured review with photo column
 * ========================================================================== */
.nd-kids-review--with-photo {
	display: grid;
	grid-template-columns: 5fr 6fr;
	gap: 0;
	padding: 0;
	overflow: hidden;
}
.nd-kids-review--with-photo .nd-kids-review__media {
	background: var(--nd-prussian);
}
.nd-kids-review--with-photo .nd-kids-review__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.nd-kids-review--with-photo .nd-kids-review__body-col {
	padding: var(--nd-space-10);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-4);
	justify-content: center;
}
@media (max-width: 840px) {
	.nd-kids-review--with-photo { grid-template-columns: 1fr; }
	.nd-kids-review--with-photo .nd-kids-review__media { aspect-ratio: 16/10; }
	.nd-kids-review--with-photo .nd-kids-review__body-col { padding: var(--nd-space-8); }
}

/* ============================================================================
 * v2.9 - Comfort Menu icon cards
 * ========================================================================== */
.nd-comfort-card {
	position: relative;
	padding: var(--nd-space-10) var(--nd-space-6) var(--nd-space-6);
}
.nd-comfort-card__icon {
	position: absolute;
	top: calc(var(--nd-space-8) * -1);
	left: var(--nd-space-6);
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--nd-lime);
	color: var(--nd-prussian);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 20px rgba(2,29,59,.25);
	transition: transform var(--nd-medium) var(--nd-ease);
}
.nd-comfort-card__icon svg {
	width: 44px;
	height: 44px;
	display: block;
}
.nd-comfort-card[data-tilt="l"] .nd-comfort-card__icon { transform: rotate(-4deg); }
.nd-comfort-card[data-tilt="r"] .nd-comfort-card__icon { transform: rotate(4deg); }

.nd-comfort-card:hover .nd-comfort-card__icon { transform: rotate(0deg) scale(1.05); }

.nd-comfort-card__num {
	display: inline-block;
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--nd-pacific-blue);
	margin: var(--nd-space-3) 0 var(--nd-space-2);
}

.nd-comfort-band__footer {
	text-align: center;
	margin: var(--nd-space-10) auto 0;
	color: var(--nd-text-inverse);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-small);
	font-weight: 700;
	letter-spacing: 0.04em;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.18);
	padding: var(--nd-space-3) var(--nd-space-6);
	border-radius: 999px;
	display: inline-block;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

@media (prefers-reduced-motion: reduce) {
	.nd-comfort-card .nd-comfort-card__icon { transition: none; }
	.nd-comfort-card:hover .nd-comfort-card__icon { transform: rotate(0deg); }
}

/* ============================================================================
 * v3.0 - Motion system (Tier 1)
 *  - data-anim scroll-reveal variants
 *  - floaty, chipIn, numPop, tickPop, ruleDraw, arrowNudge keyframes
 *  - Sticky nav shadow
 *  - Image hover zoom
 *  - prefers-reduced-motion fallback at the bottom of the block
 * ========================================================================== */

[data-anim] {
	opacity: 0;
	will-change: transform, opacity;
	transition: opacity 700ms cubic-bezier(.22,.61,.36,1),
	            transform 700ms cubic-bezier(.22,.61,.36,1);
}
[data-anim="up"]    { transform: translateY(36px); }
[data-anim="left"]  { transform: translateX(-48px); }
[data-anim="right"] { transform: translateX(48px); }
[data-anim="scale"] { transform: scale(.94); }
[data-anim="fade"]  { transform: none; }
[data-anim="pop"]   {
	transform: scale(.6);
	transition: opacity 500ms ease, transform 600ms cubic-bezier(.34,1.56,.64,1);
}
[data-anim].in,
[data-anim="fade"].in { opacity: 1; transform: none; }

/* Floaty — slow up/down loop for hero photo, badges, decorative shapes */
@keyframes nd-floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.nd-floaty { animation: nd-floaty 7s ease-in-out infinite; }
.nd-floaty--delayed { animation: nd-floaty 8s ease-in-out 1.2s infinite; }

/* ChipIn — pop in the hero badges after the photo lands */
@keyframes nd-chip-in {
	0%   { opacity: 0; transform: scale(.6) translateY(12px); }
	100% { opacity: 1; transform: none; }
}
.nd-hero__badge { opacity: 0; }
.nd-hero__badge.is-in { animation: nd-chip-in 600ms cubic-bezier(.34,1.56,.64,1) forwards; }

/* numPop — number labels scale-pop when their card enters viewport */
@keyframes nd-num-pop {
	0%   { opacity: 0; transform: scale(.4); }
	65%  { opacity: 1; transform: scale(1.14); }
	100% { opacity: 1; transform: scale(1); }
}
[data-anim].in .nd-step__num,
[data-anim].in .nd-comfort-card__num,
[data-anim].in .nd-timeline__year,
[data-anim].in .nd-step__num,
.nd-step__num.is-num-anim,
.nd-comfort-card__num.is-num-anim {
	animation: nd-num-pop 600ms cubic-bezier(.34,1.56,.64,1) 100ms both;
}

/* tickPop — checklist ticks scale up with overshoot */
@keyframes nd-tick-pop {
	0%   { transform: scale(0); }
	55%  { transform: scale(1.3); }
	100% { transform: scale(1); }
}
[data-anim].in .nd-checklist__items li::before,
[data-anim].in .nd-hero__proof-check {
	transform-origin: center;
	animation: nd-tick-pop 500ms cubic-bezier(.34,1.56,.64,1) 150ms both;
}

/* ruleDraw — the lime hairline rule in eyebrows draws from 0 width */
@keyframes nd-rule-draw {
	from { width: 0; }
	to   { width: 28px; }
}
[data-anim].in .nd-hero__eyebrow-rule {
	animation: nd-rule-draw 700ms cubic-bezier(.22,.61,.36,1) 150ms both;
}

/* arrowNudge — micro-interaction for clickable cards/links that end in an arrow */
@keyframes nd-arrow-nudge {
	0%,100% { transform: translateX(0); }
	50%     { transform: translateX(6px); }
}
.nd-community__footer a,
.nd-owners__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.nd-community-card:hover .nd-community-card__body h3 i,
.nd-community__footer a:hover { animation: nd-arrow-nudge 800ms ease infinite; }

/* Image hover zoom — used on community cards (and any nd-image-zoom wrapper) */
.nd-community-card__media,
.nd-image-zoom { overflow: hidden; }
.nd-community-card__media img,
.nd-image-zoom img {
	transition: transform 600ms cubic-bezier(.22,.61,.36,1);
}
.nd-community-card:hover .nd-community-card__media img,
.nd-image-zoom:hover img { transform: scale(1.05); }

/* Sticky nav shadow — Header already sticky; add shadow when scrolled */
.nd-site-header.is-scrolled {
	box-shadow: 0 6px 24px rgba(2,29,59,.18);
	transition: box-shadow 300ms ease;
}

/* Reduced-motion fallback — strip everything */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	[data-anim] { opacity: 1 !important; transform: none !important; }
	.nd-hero__badge { opacity: 1 !important; }
}

/* v3.1 - Comfort menu polish (drop pill, more row gap, more bottom padding for protruding icons) */
.nd-comfort-band { padding-bottom: calc(var(--nd-section-y) + var(--nd-space-4)); }

/* ============================================================================
 * v3.2 - Comfort Menu photo cards (replaces icon circle treatment)
 * ========================================================================== */

/* Now that the icons are gone, the row-gap doesn't need to leave room for protruding circles. */
.nd-comfort-menu--photos {
	column-gap: var(--nd-space-6);
	row-gap: var(--nd-space-8);
}

/* Photo card: image at the top edge, body below */
.nd-comfort-card--photo {
	padding: 0;
	overflow: hidden;
}

/* Drop the floating lime hairline (the photo IS the visual anchor now) */
.nd-comfort-card--photo::before { display: none; }

.nd-comfort-card__media {
	position: relative;
	margin: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--nd-white-smoke);
}
.nd-comfort-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 600ms var(--nd-ease);
}
.nd-comfort-card--photo:hover .nd-comfort-card__media img {
	transform: scale(1.04);
}

/* Number chip floats over the photo, bottom-left */
.nd-comfort-card--photo .nd-comfort-card__num {
	position: absolute;
	bottom: var(--nd-space-3);
	left: var(--nd-space-3);
	display: inline-block;
	background: var(--nd-lime);
	color: var(--nd-prussian);
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	font-weight: 700;
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
	margin: 0;
	line-height: 1;
	box-shadow: 0 4px 12px rgba(2,29,59,.18);
}

.nd-comfort-card__body {
	padding: var(--nd-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-2);
}
.nd-comfort-card--photo .nd-comfort-card__label {
	margin: 0;
}
.nd-comfort-card--photo .nd-comfort-card__desc {
	margin: 0;
}

@media (prefers-reduced-motion: reduce) {
	.nd-comfort-card--photo:hover .nd-comfort-card__media img { transform: none; }
}

/* ============================================================================
 * v3.3 - Kids reviews block: featured full-width + secondary row below
 * ========================================================================== */

/* Stacked layout: featured row spans the full container; 2-col row below */
.nd-kids-reviews--stacked {
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-6);
	grid-template-columns: none; /* override base 2-col grid */
}

.nd-kids-reviews--stacked .nd-kids-reviews__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nd-space-6);
}
@media (max-width: 840px) {
	.nd-kids-reviews--stacked .nd-kids-reviews__row { grid-template-columns: 1fr; }
}

/* Featured card full-width: photo on left, body on right, balanced split */
.nd-kids-review--full {
	width: 100%;
}
.nd-kids-review--full.nd-kids-review--with-photo {
	grid-template-columns: 5fr 7fr;
}
@media (max-width: 840px) {
	.nd-kids-review--full.nd-kids-review--with-photo {
		grid-template-columns: 1fr;
	}
}

/* ============================================================================
 * v3.4 - Our Story: team bios 2-up + full-bleed photo band
 * ========================================================================== */

/* Team bios: portrait card on top, body below — equal-height 2-up grid */
.nd-team-bios {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nd-space-8);
}
@media (max-width: 840px) {
	.nd-team-bios { grid-template-columns: 1fr; }
}

.nd-team-bio-card {
	background: var(--nd-white);
	color: var(--nd-text);
	border-radius: var(--nd-radius-lg);
	overflow: hidden;
	box-shadow: var(--nd-shadow-card);
	display: flex;
	flex-direction: column;
}
.nd-team-bio-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--nd-white-smoke);
}
.nd-team-bio-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
	transition: transform 600ms var(--nd-ease);
}
.nd-team-bio-card:hover .nd-team-bio-card__media img { transform: scale(1.03); }
.nd-team-bio-card__body {
	padding: var(--nd-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--nd-space-3);
}
.nd-team-bio-card__name {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h3);
	line-height: var(--nd-leading-tight);
	color: var(--nd-text);
	margin: 0;
}
.nd-team-bio-card__title {
	font-family: var(--nd-font-sans);
	font-size: var(--nd-xs);
	letter-spacing: var(--nd-tracking-wider);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--nd-pacific-blue);
	margin: 0 0 var(--nd-space-2);
}
.nd-team-bio-card__body p {
	color: var(--nd-text-muted);
	margin: 0;
	line-height: var(--nd-leading-base);
}

/* Full-bleed photo band — escapes the container, ends edge-to-edge */
.nd-photo-band {
	width: 100%;
	overflow: hidden;
	border-radius: 0;
}
.nd-photo-band img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	max-height: 60vh;
	object-position: center 30%;
}
@media (max-width: 840px) {
	.nd-photo-band img { max-height: 50vh; }
}

@media (prefers-reduced-motion: reduce) {
	.nd-team-bio-card:hover .nd-team-bio-card__media img { transform: none; }
}

/* Force dark text inside team bio cards when section is .on-dark (cards are white-backgrounded) */
.nd-section.on-dark .nd-team-bio-card,
.nd-section.on-dark .nd-team-bio-card h3,
.nd-section.on-dark .nd-team-bio-card .nd-team-bio-card__name { color: var(--nd-text); }
.nd-section.on-dark .nd-team-bio-card p,
.nd-section.on-dark .nd-team-bio-card .nd-team-bio-card__body p { color: var(--nd-text-muted); }
.nd-section.on-dark .nd-team-bio-card .nd-team-bio-card__title { color: var(--nd-pacific-blue); }

/* ============================================================================
 * v3.5 - Vertical timeline (Our Story) — single-column narrative
 *   Line on the left, all cards stacked to its right, lime dots + connector.
 * ========================================================================== */

.nd-timeline--vertical {
	display: block;
	position: relative;
	max-width: 1040px;
	margin-left: 0;
	margin-right: auto;
	padding: var(--nd-space-4) 0 var(--nd-space-4) var(--nd-space-10);
	grid-template-columns: none;
}

/* Vertical line on the left */
.nd-timeline--vertical::before {
	content: '';
	position: absolute;
	top: var(--nd-space-2);
	bottom: var(--nd-space-2);
	left: var(--nd-space-3);
	width: 3px;
	background: var(--nd-pacific-blue);
	opacity: 0.4;
	border-radius: 2px;
}

.nd-timeline--vertical .nd-timeline__item {
	position: relative;
	width: 100%;
	max-width: 760px;
	margin: 0 0 var(--nd-space-6) 0;
}

/* Lime dot on the line at each entry */
.nd-timeline--vertical .nd-timeline__item::before {
	content: '';
	position: absolute;
	top: var(--nd-space-6);
	left: calc(-1 * var(--nd-space-10) + var(--nd-space-3) - 9px + 1.5px);
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--nd-lime);
	border: 3px solid var(--nd-white);
	box-shadow: 0 0 0 2px var(--nd-pacific-blue);
}

/* Connector from dot to card edge */
.nd-timeline--vertical .nd-timeline__item::after {
	content: '';
	position: absolute;
	top: calc(var(--nd-space-6) + 7px);
	left: calc(-1 * var(--nd-space-10) + var(--nd-space-3) + 12px);
	width: calc(var(--nd-space-10) - var(--nd-space-3) - 12px);
	height: 3px;
	background: var(--nd-pacific-blue);
	opacity: 0.4;
	border-radius: 2px;
}

/* Override base media-query that would otherwise re-grid the layout */
@media (max-width: 1024px) {
	.nd-timeline--vertical { grid-template-columns: none; }
}

/* Mobile: tighter padding, line stays on left */
@media (max-width: 768px) {
	.nd-timeline--vertical {
		max-width: 100%;
		padding-left: var(--nd-space-8);
	}
	.nd-timeline--vertical .nd-timeline__item::before {
		left: calc(-1 * var(--nd-space-8) + var(--nd-space-3) - 9px + 1.5px);
	}
	.nd-timeline--vertical .nd-timeline__item::after {
		left: calc(-1 * var(--nd-space-8) + var(--nd-space-3) + 12px);
		width: calc(var(--nd-space-8) - var(--nd-space-3) - 12px);
	}
}

/* ============================================================================
 * Contact page location cards (phone / hours / map)
 * ========================================================================== */
.nd-contact-locations { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nd-space-8); }
@media (max-width: 840px) { .nd-contact-locations { grid-template-columns: 1fr; } }

.nd-contact-loc {
	background: var(--nd-white);
	border-radius: var(--nd-radius-lg);
	box-shadow: var(--nd-shadow-card);
	padding: var(--nd-space-8);
	display: flex;
	flex-direction: column;
}
.nd-contact-loc__name { font-family: var(--nd-font-display); font-size: var(--nd-h3); margin: 0 0 var(--nd-space-3); }
.nd-contact-loc__address { margin: 0 0 var(--nd-space-3); color: var(--nd-text-muted); line-height: 1.6; }
.nd-contact-loc__phone { margin: 0 0 var(--nd-space-1); }
.nd-contact-loc__phone a { font-family: var(--nd-font-sans); font-weight: 700; font-size: var(--nd-h4); color: var(--nd-text); text-decoration: none; }
.nd-contact-loc__phone a:hover { color: var(--nd-pacific-hover); }
.nd-contact-loc__email { margin: 0 0 var(--nd-space-3); overflow-wrap: anywhere; }
.nd-contact-loc__email a { color: var(--nd-pacific-blue); text-decoration: underline; text-underline-offset: 4px; }
.nd-contact-loc__hours { color: var(--nd-text-muted); font-size: var(--nd-body-sm); line-height: 1.8; margin-bottom: var(--nd-space-5); }
.nd-contact-loc__map { margin-top: auto; border-radius: var(--nd-radius-md); overflow: hidden; aspect-ratio: 16 / 10; background: var(--nd-white-smoke); }
.nd-contact-loc__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.nd-contact-loc__links { margin: var(--nd-space-4) 0 0; font-size: var(--nd-body-sm); display: flex; gap: var(--nd-space-2); align-items: center; }
.nd-contact-loc__links a { color: var(--nd-pacific-blue); text-decoration: underline; text-underline-offset: 4px; }
.nd-contact-loc__links a:hover { color: var(--nd-pacific-hover); }

/* ============================================================================
 * First Visit: "What to bring" cards
 * ========================================================================== */
.nd-bring__intro { margin-bottom: var(--nd-space-8); max-width: 60ch; }
.nd-bring__check {
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--nd-lime); color: var(--nd-prussian);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 1.25rem; font-weight: 700;
	margin-bottom: var(--nd-space-4);
}
.nd-card--blue { background: var(--nd-french-blue); }
.nd-card--blue h3 { color: var(--nd-text-inverse); }
.nd-card--blue p { color: var(--nd-text-inverse-muted); }

/* ============================================================================
 * Kids reviews: featured card with photo on top (half-width column layout)
 * ========================================================================== */
.nd-kids-review--photo-top { padding: 0; overflow: hidden; justify-content: flex-start; gap: 0; }
.nd-kids-review--photo-top .nd-kids-review__media { aspect-ratio: 3 / 2; background: var(--nd-prussian); }
.nd-kids-review--photo-top .nd-kids-review__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd-kids-review--photo-top .nd-kids-review__body-col {
	padding: var(--nd-space-8);
	display: flex; flex-direction: column; gap: var(--nd-space-4);
	flex: 1;
}
.nd-kids-review--photo-top .nd-kids-review__quote { font-size: clamp(1.5rem, 2vw, 1.875rem); }

/* ============================================================================
 * Light V3 background accent (vector diagonal band, pinned bottom).
 * Add .nd-bg-light-v3 to a light section; extra bottom padding gives the
 * band room so it reads as decoration, not clutter.
 * ========================================================================== */
.nd-bg-light-v3 {
	background-image: url('../images/bg-light-v3.svg');
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% auto;
	padding-bottom: clamp(5rem, 12vw, 10rem);
}

/* ============================================================================
 * Text-only community cards (Our Story) — placed AFTER the base .nd-community-card
 * rules and with higher specificity so the dark bg + light text actually win
 * (previously the later base white-bg rule overrode them -> invisible headings).
 * ========================================================================== */
.nd-community-card.nd-community-card--text { background: var(--nd-prussian); justify-content: center; }
.nd-community-card--text .nd-community-card__body { padding: var(--nd-space-8) var(--nd-space-6); }
.nd-community-card--text .nd-community-card__body h3 { color: var(--nd-text-inverse); }
.nd-community-card--text .nd-community-card__body p { color: var(--nd-text-inverse-muted); }

/* ============================================================================
 * Contained CTA band (e.g. Our Story "Get involved") — french-blue module that
 * differentiates a mid-page CTA from the light page-closing CTA below it.
 * ========================================================================== */
.nd-cta-band {
	background: var(--nd-french-blue);
	color: var(--nd-text-inverse);
	border-radius: var(--nd-radius-lg);
	padding: var(--nd-space-12) var(--nd-space-8);
	text-align: center;
}
.nd-cta-band .nd-eyebrow { color: var(--nd-lime); }
.nd-cta-band__lead {
	font-family: var(--nd-font-display);
	font-size: var(--nd-h3);
	line-height: var(--nd-leading-snug);
	color: var(--nd-text-inverse);
	max-width: 26ch;
	margin: var(--nd-space-3) auto var(--nd-space-6);
}
