:root {
	--njcms-color-primary: #012169;
	--njcms-color-primary-dark: #00164a;
	--njcms-color-accent: #012169;
	--njcms-color-gold: #c8a45d;
	--njcms-color-text: #1c2e4a;
	--njcms-color-muted: #60708a;
	--njcms-color-border: #d8e1ef;
	--njcms-color-surface: #ffffff;
	--njcms-color-surface-alt: #f4f7fc;
	--njcms-color-link: #012169;
	--njcms-color-link-hover: #00164a;
	--njcms-color-focus: #012169;
	--njcms-color-focus-on-dark: #e8eefc;
	--njcms-space-xs: 0.25rem;
	--njcms-space-sm: 0.5rem;
	--njcms-space-md: 1rem;
	--njcms-space-lg: 1.5rem;
	--njcms-space-xl: 2rem;
	--njcms-space-2xl: 3rem;
	--njcms-radius-xs: 0.25rem;
	--njcms-radius-sm: 0.375rem;
	--njcms-radius-md: 0.5rem;
	--njcms-radius-lg: 0.75rem;
	--njcms-radius-pill: 999px;
	--njcms-button-radius: 0.375rem;
	--njcms-button-height: 3rem;
	--njcms-button-height-sm: 2.5rem;
	--njcms-button-padding-y: 0.875rem;
	--njcms-button-padding-x: 1.375rem;
	--njcms-button-padding-y-sm: 0.625rem;
	--njcms-button-padding-x-sm: 0.875rem;
	--njcms-button-gap: 0.5rem;
	--njcms-button-font-size: 0.875rem;
	--njcms-button-font-size-sm: 0.8125rem;
	--njcms-button-shadow: 0 1px 2px rgba(1, 33, 105, 0.12);
	--njcms-button-shadow-hover: 0 6px 14px rgba(1, 33, 105, 0.16);
	--njcms-transition-fast: 160ms ease;
	--njcms-transition-normal: 190ms ease;
	--njcms-transition-slow: 420ms ease;
	--njcms-font-heading: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--njcms-font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.njcms-design-section {
	color: var(--njcms-color-text);
	font-family: var(--njcms-font-body);
}

/* .njcms-section {
	padding: clamp(2rem, 4vw, 4rem) 0;
} */

.njcms-section + .njcms-section {
	padding-top: 0;
}

.njcms-section-inner {
	width: min(1200px, calc(100% - 2rem));
	margin-inline: auto;
}

.njcms-grid {
	display: grid;
	gap: var(--njcms-space-lg);
}

.njcms-design-section h1,
.njcms-design-section h2,
.njcms-design-section h3,
.njcms-design-section h4 {
	font-family: var(--njcms-font-heading);
}

.njcms-section-dark {
	background: linear-gradient(180deg, #112a4e, #0f2544);
	color: #f6f9ff;
}

.njcms-section-dark a,
.njcms-section-dark h2,
.njcms-section-dark h3,
.njcms-section-dark h4 {
	color: #f6f9ff;
}

.njcms-section-gradient {
	background: linear-gradient(135deg, #f7fbff 0%, #edf3fb 100%);
}

.njcms-section-glass {
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(8px);
}

@media (max-width: 768px) {
	.njcms-section {
		padding: 1.75rem 0;
	}
	.njcms-section-inner {
		width: min(1200px, calc(100% - 1.25rem));
	}
}

@media (max-width: 480px) {
	.njcms-section-inner {
		width: min(1200px, calc(100% - 1rem));
	}
}

/*
 * Fluid defaults: prevent horizontal overflow and oversized media inside NJCMS output.
 * Complements per-component breakpoints in frontend.css, homepage, registry, etc.
 */
.njcms-design-section,
.njcms-registry-bundle {
	max-width: 100%;
}

.njcms-design-section img,
.njcms-design-section video,
.njcms-registry-bundle img,
.njcms-registry-bundle video {
	max-width: 100%;
	height: auto;
}

.njcms-design-section svg {
	max-width: 100%;
	height: auto;
}

.njcms-design-section iframe,
.njcms-contact-page__map iframe {
	max-width: 100%;
}

.njcms-design-section pre {
	overflow-x: auto;
	max-width: 100%;
	-webkit-overflow-scrolling: touch;
}

.njcms-design-section table {
	max-width: 100%;
}

.njcms-design-section .njcms-prose a,
.njcms-design-section .njcms-footer-intro a,
.njcms-design-section .njcms-about-card__content a {
	word-break: break-word;
}
